本文整理汇总了C++中CvUnit::cityDefenseModifier方法的典型用法代码示例。如果您正苦于以下问题:C++ CvUnit::cityDefenseModifier方法的具体用法?C++ CvUnit::cityDefenseModifier怎么用?C++ CvUnit::cityDefenseModifier使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类CvUnit
的用法示例。
在下文中一共展示了CvUnit::cityDefenseModifier方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: AI_ejectBestDefender
CvUnit* CvSelectionGroupAI::AI_ejectBestDefender(CvPlot* pDefendPlot)
{
CLLNode<IDInfo>* pEntityNode;
CvUnit* pLoopUnit;
pEntityNode = headUnitNode();
CvUnit* pBestUnit = NULL;
int iBestUnitValue = 0;
while (pEntityNode != NULL)
{
pLoopUnit = ::getUnit(pEntityNode->m_data);
pEntityNode = nextUnitNode(pEntityNode);
//if (!pLoopUnit->noDefensiveBonus())
// commented out by K-Mod. The noDefBonus thing is already taken into account.
{
int iValue = pLoopUnit->currEffectiveStr(pDefendPlot, NULL) * 100;
if (pDefendPlot->isCity(true, getTeam()))
{
iValue *= 100 + pLoopUnit->cityDefenseModifier();
iValue /= 100;
}
iValue *= 100;
iValue /= (100 + pLoopUnit->cityAttackModifier() + pLoopUnit->getExtraCityAttackPercent());
iValue /= 2 + pLoopUnit->getLevel();
if (iValue > iBestUnitValue)
{
iBestUnitValue = iValue;
pBestUnit = pLoopUnit;
}
}
}
if (NULL != pBestUnit && getNumUnits() > 1)
{
pBestUnit->joinGroup(NULL);
}
return pBestUnit;
}