Bazaar developer reference

CvCity::rangeCombatUnitDefense(const CvUnit *) const

Defined in
CvCity.cpp, line 16272
Class
CvCity
Hook name
CivHooks::CvCity_rangeCombatUnitDefense

Hooks

static bool BeforeCvCity_rangeCombatUnitDefense(const CvCity* self, const CvUnit* pDefender, int& result);static void AfterCvCity_rangeCombatUnitDefense(const CvCity* self, const CvUnit* pDefender, int& result);static int ReplaceCvCity_rangeCombatUnitDefense(int (*original)(const CvCity*, const CvUnit*), const CvCity* self, const CvUnit* pDefender);CivRegisterBefore<CivHooks::CvCity_rangeCombatUnitDefense>(host, &BeforeCvCity_rangeCombatUnitDefense);CivRegisterAfter<CivHooks::CvCity_rangeCombatUnitDefense>(host, &AfterCvCity_rangeCombatUnitDefense);CivRegisterReplace<CivHooks::CvCity_rangeCombatUnitDefense>(host, &ReplaceCvCity_rangeCombatUnitDefense);

Code

16272int CvCity::rangeCombatUnitDefense(const CvUnit* pDefender) const16273{16274	int iDefenderStrength = 0;1627516276	// Use Ranged combat value for defender, UNLESS it's a boat16277	if (pDefender->isEmbarked())16278	{16279		iDefenderStrength = pDefender->GetEmbarkedUnitDefense();;16280	}1628116282	else if(!pDefender->isRangedSupportFire() && !pDefender->getDomainType() == DOMAIN_SEA && pDefender->GetMaxRangedCombatStrength(NULL, /*pCity*/ NULL, false, false) > 0)16283	{16284		iDefenderStrength = pDefender->GetMaxRangedCombatStrength(NULL, /*pCity*/ NULL, false, false);1628516286		// Ranged units take less damage from one another16287		iDefenderStrength *= /*125*/ GC.getRANGE_ATTACK_RANGED_DEFENDER_MOD();16288		iDefenderStrength /= 100;16289	}16290	else16291	{16292		iDefenderStrength = pDefender->GetMaxDefenseStrength(pDefender->plot(), NULL, /*bFromRangedAttack*/ true);16293	}1629416295	return iDefenderStrength;16296}

Calls

Called by