int CvCity::rangeCombatUnitDefense(const CvUnit* pDefender) const
{
int iDefenderStrength = 0;
// Use Ranged combat value for defender, UNLESS it's a boat
if (pDefender->isEmbarked())
{
iDefenderStrength = pDefender->GetEmbarkedUnitDefense();;
}
//M.A. City v Ranged fix mod start
//else if(!pDefender->isRangedSupportFire() && !pDefender->getDomainType() == DOMAIN_SEA && pDefender->GetMaxRangedCombatStrength(NULL, /*pCity*/ NULL, false, false) > 0)
//{
// iDefenderStrength = pDefender->GetMaxRangedCombatStrength(NULL, /*pCity*/ NULL, false, false);
// // Ranged units take less damage from one another
// iDefenderStrength *= /*125*/ GC.getRANGE_ATTACK_RANGED_DEFENDER_MOD();
// iDefenderStrength /= 100;
//}
else
{
iDefenderStrength = pDefender->GetMaxDefenseStrength(pDefender->plot(), NULL, /*bFromRangedAttack*/ true);
if (pDefender->GetMaxRangedCombatStrength(NULL, /*pCity*/ NULL, false, false) > 0)
{
// Ranged units take less damage from one another
iDefenderStrength *= /*125*/ GC.getRANGE_ATTACK_RANGED_DEFENDER_MOD();
iDefenderStrength /= 100;
}//M.A. City v Ranged fix mod end
}
return iDefenderStrength;
}