+ Ответить в теме
Страница 2 из 2 ПерваяПервая 12
Показано с 21 по 31 из 31

Тема: Руководство по требованию дани с ГГ Civ5

  1. #21
    Администратор


    Аватар для Dynamic


    Регистрация
    07.04.2005
    Адрес
    Санкт-Петербург
    Сообщений
    12,186
    Некоторые юниты дают больше, чем +25. Галеасы, например, +75, правда, я не знаю, как долго...
    продвинь это сообщение в соцсеть:  
    PBEM-169 - Зулу, PBEM-170 - Америка, PBEM-172 - Египет, PBEM-174 - Англия

  2. #22
    Вообщем господа, все намного сложнее сделали... или так и было в ГК, просто неправильно разобрались. Понятия "современных" юнитов тут нет вообще.
    1. Считаем сумму силы каждого юнита, умноженное на свой % хп минус тоже самое по войску гг. Назовем эту разницу "Военное преимущество" - ВП
    2. Назовем защиту города ГГ - сила базы - СЗ (для 1 жителя это 11, для двух - 13 и т.д.)
    3. Дальше мы делим ВП на СЗ и округляем до 0.5 вниз. (т.е. получится система чисел 0.5, 1, 1.5... и т.д.) Каждые 0.5 - это 25 очков влияния на гг. Т.е. если получилось например 1.73, т.е. 1.5, то значит это 75 очков влияния. Ну с военной мощью по демо все понятно. Вообщем если сумма этих цифр больше 110+(особенности гг - военный, враждебный, защита другой цивы), то будет вам денешка))
    продвинь это сообщение в соцсеть:  
    Последний раз редактировалось ProfiTroll; 22.11.2013 в 00:47.

  3. #23
    Цитата Сообщение от ProfiTroll Посмотреть сообщение
    Вообщем господа, все намного сложнее сделали... или так и было в ГК, просто неправильно разобрались. Понятия "современных" юнитов тут нет вообще.
    1. Считаем сумму силы каждого юнита, умноженное на свой % хп минус тоже самое по войску гг. Назовем эту разницу "Военное преимущество" - ВП
    2. Назовем защиту города ГГ - сила базы - СЗ (для 1 жителя это 11, для двух - 13 и т.д.)
    3. Дальше мы делим ВП на СЗ и округляем до 0.5 вниз. (т.е. получится система чисел 0.5, 1, 1.5... и т.д.) Каждые 0.5 - это 25 очков влияния на гг. Т.е. если получилось например 1.73, т.е. 1.5, то значит это 75 очков влияния. Ну с военной мощью по демо все понятно. Вообщем если сумма этих цифр больше 110+(особенности гг - военный, враждебный, защита другой цивы), то будет вам денешка))
    То, что сверху описано, не совсем правильно, но !примерно! похоже. Потому как без формулы невозможно точно сказать.
    Тут оказывается не сила важна, а именно показатель из демографии по конкретному юниту. Я не знаю как высчитывается демо по юниту (мне бы формулу, которая, повторюсь, зависит и от хп юнита), но именно разница показателей демо ваших юнитов около ГГ и юнитов самого ГГ, деленное на какой-то растущий показатель, зависящий от (силы самого города*1000), и вот этот округленный до 0.5 результат после деления и отвечает за кол-во очков давления с удельным множителем 25.
    продвинь это сообщение в соцсеть:  

  4. #24
    Цитата Сообщение от Dynamic Посмотреть сообщение
    Некоторые юниты дают больше, чем +25. Галеасы, например, +75, правда, я не знаю, как долго...
    хм... Может быть игра отдельно рассчитывает силу морских, и отдельно сухопутных юнитов? То есть при подведении галеаса согласно посту Профитроля учитывается лишь базовая сила города? Тогда в принципе это похоже на правду...
    продвинь это сообщение в соцсеть:  

  5. #25
    Цитата Сообщение от сидри Посмотреть сообщение
    хм... Может быть игра отдельно рассчитывает силу морских, и отдельно сухопутных юнитов? То есть при подведении галеаса согласно посту Профитроля учитывается лишь базовая сила города? Тогда в принципе это похоже на правду...
    Это маловероятно чтобы за 1 юнит давало 75 очков, мне кажется динамик не учел другие свои юниты в радиусе 6 клеток от гг. в любом случае нужен хотя бы скрин. Но если динамик прав, то у гг не должно быть вообще юнитов и город не более 12-13 защиты.
    ПС разделения на морские и сухопутные юниты в расчете демо и соответственно очков влияния нет.
    продвинь это сообщение в соцсеть:  

  6. #26
    Администратор


    Аватар для Dynamic


    Регистрация
    07.04.2005
    Адрес
    Санкт-Петербург
    Сообщений
    12,186
    Скрин дать не могу, т.к. это текущая почтовка. Но, там, возможно, было 2 Гала в радиусе 6.
    продвинь это сообщение в соцсеть:  
    PBEM-169 - Зулу, PBEM-170 - Америка, PBEM-172 - Египет, PBEM-174 - Англия

  7. #27
    Цитата Сообщение от Dynamic Посмотреть сообщение
    Скрин дать не могу, т.к. это текущая почтовка. Но, там, возможно, было 2 Гала в радиусе 6.
    А вот это очень похоже на правду. Если они построены не очень поздно и гг не успел разрастись(зависит от уровня сложности игры). То чаще 1 галеас дает 25 очков, а два дают 75.
    продвинь это сообщение в соцсеть:  

  8. #28
    Из SDK, расчёт силы юнита:
    Код:
    /// Update military Power
    void CvUnitEntry::DoUpdatePower()
    {
    	int iPower;
    
    // ***************
    // Main Factors - Strength & Moves
    // ***************
    
    	// We want a Unit that has twice the strength to be roughly worth 3x as much with regards to Power
    	iPower = int(pow((double) GetCombat(), 1.5));
    
    	// Ranged Strength
    	int iRangedStrength = int(pow((double) GetRangedCombat(), 1.45));
    
    	// Naval ranged attacks are less useful
    	if(GetDomainType() == DOMAIN_SEA)
    	{
    		iRangedStrength /= 2;
    	}
    
    	if(iRangedStrength > 0)
    	{
    		iPower = iRangedStrength;
    	}
    
    	// We want Movement rate to be important, but not a dominating factor; a Unit with double the moves of a similarly-strengthed Unit should be ~1.5x as Powerful
    	iPower = int((float) iPower * pow((double) GetMoves(), 0.3));
    
    // ***************
    // Other modifiers
    // ***************
    
    	// Suicide Units are obviously less useful
    	if(IsSuicide())
    	{
    		iPower /= 2;
    	}
    
    	// Nukes are cool
    	if(GetNukeDamageLevel() > 0)
    	{
    		iPower += 4000;
    	}
    
    // ***************
    // Promotion modifiers
    // ***************
    
    	int iTemp;
    	int iLoop;
    
    	for(int iPromotionLoop = 0; iPromotionLoop < GC.getNumPromotionInfos(); iPromotionLoop++)
    	{
    		CvPromotionEntry* kPromotion = GC.getPromotionInfo((PromotionTypes)iPromotionLoop);
    		if(kPromotion == NULL)
    			continue;
    
    		if(GetFreePromotions(iPromotionLoop))
    		{
    			// City Attack - add half of the bonus
    			if(kPromotion->GetCityAttackPercent() > 0)
    			{
    				iTemp = (iPower * kPromotion->GetCityAttackPercent() / 2);
    				iTemp /= 100;
    				iPower += iTemp;
    			}
    
    			// Attack - add half of the bonus
    			if(kPromotion->GetAttackMod() > 0)
    			{
    				iTemp = (iPower * kPromotion->GetAttackMod() / 2);
    				iTemp /= 100;
    				iPower += iTemp;
    			}
    
    			// Defense - add half of the bonus
    			if(kPromotion->GetDefenseMod() > 0)
    			{
    				iTemp = (iPower * kPromotion->GetDefenseMod() / 2);
    				iTemp /= 100;
    				iPower += iTemp;
    			}
    
    			// Paradrop - add 25%
    			if(kPromotion->GetDropRange() > 0)
    			{
    				iTemp = iPower;
    				iTemp /= 4;
    				iPower += iTemp;
    			}
    
    			// Blitz - add 20%
    			if(kPromotion->IsBlitz())
    			{
    				iTemp = iPower;
    				iTemp /= 5;
    				iPower += iTemp;
    			}
    
    			// Set Up For Ranged Attack - reduce by 20%
    			if(kPromotion->IsMustSetUpToRangedAttack())
    			{
    				iTemp = iPower;
    				iTemp /= 5;
    				iPower -= iTemp;
    			}
    
    			// Only Defensive - reduce  by 25%, but only if the Unit has no ranged capability
    			if(kPromotion->IsOnlyDefensive() && GetRangedCombat() == 0)
    			{
    				iTemp = iPower;
    				iTemp /= 4;
    				iPower -= iTemp;
    			}
    
    			for(iLoop = 0; iLoop < GC.getNumTerrainInfos(); iLoop++)
    			{
    				// Terrain Attack - add one quarter of the bonus
    				if(kPromotion->GetTerrainAttackPercent(iLoop) > 0)
    				{
    					iTemp = (iPower * kPromotion->GetTerrainAttackPercent(iLoop) / 4);
    					iTemp /= 100;
    					iPower += iTemp;
    				}
    				// Terrain Defense - add one quarter of the bonus
    				if(kPromotion->GetTerrainDefensePercent(iLoop) > 0)
    				{
    					iTemp = (iPower * kPromotion->GetTerrainDefensePercent(iLoop) / 4);
    					iTemp /= 100;
    					iPower += iTemp;
    				}
    			}
    
    			for(iLoop = 0; iLoop < GC.getNumFeatureInfos(); iLoop++)
    			{
    				// Feature Attack - add one quarter of the bonus
    				if(kPromotion->GetFeatureAttackPercent(iLoop) > 0)
    				{
    					iTemp = (iPower * kPromotion->GetFeatureAttackPercent(iLoop) / 4);
    					iTemp /= 100;
    					iPower += iTemp;
    				}
    				// Feature Defense - add one quarter of the bonus
    				if(kPromotion->GetFeatureDefensePercent(iLoop) > 0)
    				{
    					iTemp = (iPower * kPromotion->GetFeatureDefensePercent(iLoop) / 4);
    					iTemp /= 100;
    					iPower += iTemp;
    				}
    			}
    
    			for(iLoop = 0; iLoop < GC.getNumUnitCombatClassInfos(); iLoop++)
    			{
    				// Unit Combat Class (e.g. Pikemen) - add one quarter of the bonus
    				if(kPromotion->GetUnitCombatModifierPercent(iLoop) > 0)
    				{
    					iTemp = (iPower * kPromotion->GetUnitCombatModifierPercent(iLoop) / 4);
    					iTemp /= 100;
    					iPower += iTemp;
    				}
    			}
    
    			for(iLoop = 0; iLoop < GC.getNumUnitClassInfos(); iLoop++)
    			{
    				// Unit Class (e.g. bonus ONLY against Galleys) - add one eighth of the bonus
    				// We're assuming here that the bonus against the other Unit is at least going to be somewhat useful - trust the XML! :o
    				if(kPromotion->GetUnitClassModifierPercent(iLoop) > 0)
    				{
    					iTemp = (iPower * kPromotion->GetUnitClassModifierPercent(iLoop) / 8);
    					iTemp /= 100;
    					iPower += iTemp;
    				}
    				// Unit Class Attack - one tenth of the bonus
    				if(kPromotion->GetUnitClassAttackModifier(iLoop) > 0)
    				{
    					iTemp = (iPower * kPromotion->GetUnitClassAttackModifier(iLoop) / 10);
    					iTemp /= 100;
    					iPower += iTemp;
    				}
    				// Unit Class Defense - one tenth of the bonus
    				if(kPromotion->GetUnitClassDefenseModifier(iLoop) > 0)
    				{
    					iTemp = (iPower * kPromotion->GetUnitClassDefenseModifier(iLoop) / 10);
    					iTemp /= 100;
    					iPower += iTemp;
    				}
    			}
    
    			for(iLoop = 0; iLoop < NUM_DOMAIN_TYPES; iLoop++)
    			{
    				// Domain - add one quarter of the bonus
    				if(kPromotion->GetDomainModifierPercent(iLoop) > 0)
    				{
    					iTemp = (iPower * kPromotion->GetDomainModifierPercent(iLoop) / 4);
    					iTemp /= 100;
    					iPower += iTemp;
    				}
    			}
    		}
    	}
    
    	// Debug output
    	//char temp[256];
    	//sprintf(temp, "%s: %i\n", GetDescription(), iPower);
    	//OutputDebugString(temp);
    
    	m_iCachedPower = iPower;
    }
    //...
    /// Current power of unit (raw unit type power adjusted for health)
    int CvUnit::GetPower() const
    {
    	VALIDATE_OBJECT
    	int iPower = getUnitInfo().GetPower();
    	//Take promotions into account: unit with 4 promotions worth ~50% more
    	iPower = int((float) iPower * pow((double) getLevel(), 0.3));
    	iPower *= GetCurrHitPoints();
    	iPower /= GetMaxHitPoints();
    	return iPower;
    }
    Вся функция расчёта:
    Код:
    // Calculates a basic score for whether the major can bully this minor based on many factors.
    // Negative score if bully attempt is a failure, zero or positive if success.
    // May be modified after return, if the task is easier or harder (ex. bully a worker vs. bully gold)
    int CvMinorCivAI::CalculateBullyMetric(PlayerTypes eBullyPlayer)
    {
    	//antonjs: todo: once the algorithm is more decided on, put values into constant/XML
    	const int iDefaultScore = -110;
    	const int iFailScore = -999;
    
    	CvAssertMsg(GetPlayer()->GetID() != eBullyPlayer, "Minor civ and bully civ not expected to have the same ID!");
    	if(GetPlayer()->GetID() == eBullyPlayer) return iFailScore;
    
    	CvAssertMsg(eBullyPlayer >= 0, "eBullyPlayer is expected to be non-negative (invalid Index)");
    	CvAssertMsg(eBullyPlayer < MAX_MAJOR_CIVS, "eBullyPlayer is expected to be within maximum bounds (invalid Index)");
    	if(eBullyPlayer < 0 || eBullyPlayer >= MAX_MAJOR_CIVS) return iFailScore;
    
    	// Can't bully the dead
    	if(!GetPlayer()->isAlive())
    		return iFailScore;
    
    	// The score beings negative, and has to be bumped up to positive by the below factors in order for the bullying to be successful
    	int iScore = iDefaultScore;
    
    	// **************************
    	// Global military power ranking of major
    	//
    	// +0 ~ +100
    	// **************************
    	CvWeightedVector<PlayerTypes, MAX_MAJOR_CIVS, true> veMilitaryRankings;
    	PlayerTypes eMajorLoop;
    	for(int iMajorLoop = 0; iMajorLoop < MAX_MAJOR_CIVS; iMajorLoop++)
    	{
    		eMajorLoop = (PlayerTypes) iMajorLoop;
    		if(GET_PLAYER(eMajorLoop).isAlive() && !GET_PLAYER(eMajorLoop).isMinorCiv())
    		{
    			veMilitaryRankings.push_back(eMajorLoop, GET_PLAYER(eMajorLoop).GetMilitaryMight()); // Don't recalculate within a turn, can cause inconsistency
    		}
    	}
    	CvAssertMsg(veMilitaryRankings.size() > 0, "WeightedVector of military might rankings not expected to be size 0");
    	veMilitaryRankings.SortItems();
    	for(int iRanking = 0; iRanking < veMilitaryRankings.size(); iRanking++)
    	{
    		if(veMilitaryRankings.GetElement(iRanking) == eBullyPlayer)
    		{
    			float fRankRatio = (float)(veMilitaryRankings.size() - iRanking) / (float)(veMilitaryRankings.size());
    			int iScoreMod = (int)(fRankRatio * 100); // A score between 100*(1 / num majors alive) and 100, with the highest rank major getting 100
    			iScore += iScoreMod;
    			break;
    		}
    	}
    
    	// **************************
    	// General military power comparison
    	// **************************
    
    
    	// **************************
    	// Local military power comparison
    	//
    	// +0 ~ +100
    	// **************************
    	int iComparisonRadius = std::max(GC.getMap().getGridWidth() / 10, 5);
    	CvCity* pMinorCapital = GetPlayer()->getCapitalCity();
    	if(pMinorCapital == NULL)
    		return iFailScore;
    	CvPlot* pMinorCapitalPlot = pMinorCapital->plot();
    	if(pMinorCapitalPlot == NULL)
    		return iFailScore;
    	int iMinorCapitalX = pMinorCapitalPlot->getX();
    	int iMinorCapitalY = pMinorCapitalPlot->getY();
    	int iMinorLocalPower = 0;
    	int iBullyLocalPower = 0;
    	CvPlot* pLoopPlot;
    	IDInfo* pUnitNode;
    	CvUnit* pLoopUnit;
    
    	// Include the minor's city power
    	iMinorLocalPower += pMinorCapital->GetPower();
    
    	for(int iDX = -iComparisonRadius; iDX <= iComparisonRadius; iDX++)
    	{
    		for(int iDY = -iComparisonRadius; iDY <= iComparisonRadius; iDY++)
    		{
    			pLoopPlot = ::plotXYWithRangeCheck(iMinorCapitalX, iMinorCapitalY, iDX, iDY, iComparisonRadius);
    
    			if(pLoopPlot != NULL)
    			{
    				// If there are Units here, loop through them
    				if(pLoopPlot->getNumUnits() > 0)
    				{
    					pUnitNode = pLoopPlot->headUnitNode();
    
    					while(pUnitNode != NULL)
    					{
    						pLoopUnit = ::getUnit(*pUnitNode);
    						pUnitNode = pLoopPlot->nextUnitNode(pUnitNode);
    
    						// Is a combat unit
    						if(pLoopUnit && pLoopUnit->IsCombatUnit())
    						{
    							if(pLoopUnit->getOwner() == eBullyPlayer)
    							{
    								iBullyLocalPower += pLoopUnit->GetPower();
    							}
    							else if(pLoopUnit->getOwner() == GetPlayer()->GetID())
    							{
    								iMinorLocalPower += pLoopUnit->GetPower();
    							}
    						}
    					}
    				}
    
    			}
    		}
    	}
    	float fLocalPowerRatio = (float)iBullyLocalPower / (float)iMinorLocalPower;
    	if(fLocalPowerRatio >= 3.0)
    	{
    		iScore += 100;
    	}
    	else if(fLocalPowerRatio >= 2.0)
    	{
    		iScore += 80;
    	}
    	else if(fLocalPowerRatio >= 1.5)
    	{
    		iScore += 60;
    	}
    	else if(fLocalPowerRatio >= 1.0)
    	{
    		iScore += 40;
    	}
    	else if(fLocalPowerRatio >= 0.5)
    	{
    		iScore += 20;
    	}
    
    	// **************************
    	// Local military threat from major
    	// **************************
    	//antonjs: consider: count the number of threatening units (similar to counting threatening barbarians), and/or their power
    
    
    
    	// **************************
    	// Proximity to major
    	// **************************
    
    
    
    	// **************************
    	// Previous bully attempts
    	//
    	// InstantFail ~ -0
    	// **************************
    	int iLastBullyTurn = GetTurnLastBulliedByMajor(eBullyPlayer);
    	if(iLastBullyTurn >= 0)
    	{
    		if(iLastBullyTurn + 10 >= GC.getGame().getGameTurn())
    		{
    			return iFailScore;
    		}
    		else if(iLastBullyTurn + 20 >= GC.getGame().getGameTurn())
    		{
    			iScore += -40;
    		}
    	}
    
    	// **************************
    	// Current influence of major
    	//
    	// InstantFail ~ -0
    	// **************************
    	if(GetEffectiveFriendshipWithMajor(eBullyPlayer) < GC.getFRIENDSHIP_THRESHOLD_CAN_BULLY())
    	{
    		return iFailScore;
    	}
    	/*antonjs: consider: scale based on how low the influence is, like:
    	float iNegativeInfluenceMultiplier = 1.2f;
    	if (GetFriendshipWithMajor(eBullyPlayer) < 0)
    	{
    		iScore += (int) (iNegativeInfluenceMultiplier * GetFriendshipWithMajor(eBullyPlayer));
    		//antonjs: consider: exponent, like influence^1.1
    	}
    	*/
    
    	// **************************
    	// Diplomatic reputation of major
    	// **************************
    
    
    	// **************************
    	// Passive Support from other majors
    	//
    	// -10 ~ -0
    	// **************************
    	if(GetAlly() != NO_PLAYER && GetAlly() != eBullyPlayer)
    	{
    		iScore += -10;
    	}
    	//antonjs: todo: fulfilled support quests, esp. gold gift
    	//antonjs: todo: friendly support units
    
    
    	// **************************
    	// Pledges of Protection from other majors
    	//
    	// -20 ~ -0
    	// **************************
    	//antonjs: consider: don't have PtP be a factor here, only have it factor in major civ diplo reaction
    	for(int iMajorLoop = 0; iMajorLoop < MAX_MAJOR_CIVS; iMajorLoop++)
    	{
    		eMajorLoop = (PlayerTypes) iMajorLoop;
    		if(eMajorLoop != eBullyPlayer && IsProtectedByMajor(eMajorLoop))
    		{
    			iScore += -20;
    			break;
    		}
    	}
    
    	// **************************
    	// Major Civ UA, policies
    	// **************************
    
    
    
    	// **************************
    	// Minor Civ Type
    	//
    	// -20 ~ -0
    	// **************************
    	if(GetPersonality() == MINOR_CIV_PERSONALITY_HOSTILE)
    	{
    		iScore += -10;
    	}
    	if(GetTrait() == MINOR_CIV_TRAIT_MILITARISTIC)
    	{
    		iScore += -10;
    	}
    
    	return iScore;
    }
    Т.е. в основном - войска могут дать от 0 до 100 очков давления, для получения 100 нужно иметь армию в 3 раза сильнее, чем у гг. При расчёте мощь юнитов на морских клетках сокращается в 2 раза, кроме того учитываются очки передвижения и юниты ближнего боя дают больше влияния. Сила столицы гг тоже учитывается. От ядерного оружия гг серят кирпичами . Но "ифов" там много.
    продвинь это сообщение в соцсеть:  

  9. #29
    Интересно, а монгольский бонус против ГГ влияет как-то на их сговорчивость?
    продвинь это сообщение в соцсеть:  

  10. #30
    Император

    Rating Eragon: 107 место
    Steam
    dmitr00

    Регистрация
    09.12.2010
    Адрес
    Нижний Новгород
    Сообщений
    2,486
    Кто-то мне говорил что влияет.
    Сам не видел.
    продвинь это сообщение в соцсеть:  
    Приглашаю играть в цив5 без одновременных ходов. Ник в стиме dmitr00.
    Азбука сетевой игры. Новичкам для обучения, опытным для обсуждения и критики.

  11. #31


    Не влияет. Проверено.

    Mongolia


    Tricks

    Unique Ability: Mongol Terror

    Declaring war directly on two or more City-States in quick succession will lower your influence resting point with nearby City-States and increase the rate of influence decay. To avoid this, declare war on a Civ allied to the City-State - there's no such associated penalty then.

    Unique Unit: Keshik

    As the unit retains the ability to move after attacking, it's able to move within city range, fire and move out in a single turn. Keshiks therefore are excellent against cities, although they can't capture them by themselves. Bring a non-upgraded Horseman or Lancer along with them to be able to safely finish the city off.
    As ranged units, Keshiks only need two promotions prior to March becoming available (Barrage/Accuracy I and II.) Supported by Khans, you can easily get a horde of Keshiks healing 25HP every single turn.

    Unique Great Person: Khan

    Any Civ can receive a Khan of their own by completing the Patronage Social Policy tree and allying with City-States.

    Hidden Features

    Unique Great Person: Khan

    Aside from land units, air units are also affected by the healing rate bonus, although naval units are not. Combine with the Air Repair promotion and the Faith Healers Pantheon for extra effectiveness.

    Clarifications

    Unique Ability: Mongol Terror

    The bonus against City-States does not affect your ability to intimidate them.
    Ranged mounted units (Chariot Archers, Keshiks) do not gain extra movement from the UA. Keshiks have 5 movement points, but that is a specific feature of the unit - if another Civ was gifted the unit, it would still have 5 movement points.

    Unique Unit: Keshik

    Camel Archers are classed as ranged units rather than mounted units, meaning:
    Bonuses against mounted units do not affect them (e.g. Spearmen, Pikemen, Lancers)
    They will use ranged promotions
    Stables won't help you build them faster, but the Temple of Artemis will.
    Despite being classifed as ranged units for combat, for purposes of construction, Keshiks still count as mounted units (so stables will boost their production while the Temple of Artemis will not.)
    Keshiks, like all land-based ranged units, use their ranged strength when defending against ranged attacks. As such they defend slightly better against cities, Crossbowmen and suchlike than they do against Longswordsmen, Knights and other melee units.
    Great Generals I offers a 50% bonus to Great General gain, but so does the Quick Study promotion (in addition to its XP benefit.) These stack multiplicatively, but the output is rounded during the calculation meaning the net contribution to Great General points isn't exactly 225%.
    The Quick Study and Great Generals I promotions carry over on upgrade.
    Melee-specific promotions (Shock, Drill, etc.) earned by Horsemen do not work when upgraded to Keshiks (with the exception of Blitz,) and ranged-specific promotions earned by Keshiks (with the exception of Logistics) do not work when the unit's upgraded to Cavalry.

    Unique Great Person: Khan

    Units only receive the healing bonus while they're in a state of healing (either not taking an action or with the March promotion.)
    The healing bonus offered stacks with all other boosts to healing rate except the Medic promotions.
    A unit stacked with a Khan does not recieve the healing bonus, although the Khan itself does.


    Специально выделила соответствующую строку.
    продвинь это сообщение в соцсеть:  

+ Ответить в теме
Страница 2 из 2 ПерваяПервая 12

Похожие темы

  1. Стратегическое руководство для новичков
    от GobblinS в разделе Civ4 - Стратегия игры
    Ответов: 89
    Новое: 02.02.2018, 12:31
  2. Руководство по одновременке
    от Nickollo в разделе Civ 5 - Технические вопросы сетевой игры
    Ответов: 2
    Новое: 07.08.2013, 14:13

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
Рейтинг@Mail.ru

free counters