Bazaar developer reference

CvCity::getStrengthValue(bool) const

Defined in
CvCity.cpp, line 11782
Class
CvCity
Hook name
CivHooks::CvCity_getStrengthValue

Hooks

static bool BeforeCvCity_getStrengthValue(const CvCity* self, bool bForRangeStrike, int& result);static void AfterCvCity_getStrengthValue(const CvCity* self, bool bForRangeStrike, int& result);static int ReplaceCvCity_getStrengthValue(int (*original)(const CvCity*, bool), const CvCity* self, bool bForRangeStrike);CivRegisterBefore<CivHooks::CvCity_getStrengthValue>(host, &BeforeCvCity_getStrengthValue);CivRegisterAfter<CivHooks::CvCity_getStrengthValue>(host, &AfterCvCity_getStrengthValue);CivRegisterReplace<CivHooks::CvCity_getStrengthValue>(host, &ReplaceCvCity_getStrengthValue);

Code

11782int CvCity::getStrengthValue(bool bForRangeStrike) const11783{11784	VALIDATE_OBJECT11785	// Strike strikes are weaker11786	if(bForRangeStrike)11787	{11788		int iValue = m_iStrengthValue;1178911790		iValue -= m_pCityBuildings->GetBuildingDefense();1179111792		CvAssertMsg(iValue > 0, "City strength should always be greater than zero. Please show Jon this and send your last 5 autosaves.");1179311794		iValue *= /*40*/ GC.getCITY_RANGED_ATTACK_STRENGTH_MULTIPLIER();11795		iValue /= 100;1179611797		if(GetGarrisonedUnit())11798		{11799			iValue *= (100 + GET_PLAYER(m_eOwner).GetGarrisonedCityRangeStrikeModifier());11800			iValue /= 100;11801		}1180211803		// Religion city strike mod11804		int iReligionCityStrikeMod = 0;11805		ReligionTypes eMajority = GetCityReligions()->GetReligiousMajority();11806		if(eMajority != NO_RELIGION)11807		{11808			const CvReligion* pReligion = GC.getGame().GetGameReligions()->GetReligion(eMajority, getOwner());11809			if(pReligion)11810			{11811				iReligionCityStrikeMod = pReligion->m_Beliefs.GetCityRangeStrikeModifier();11812				BeliefTypes eSecondaryPantheon = GetCityReligions()->GetSecondaryReligionPantheonBelief();11813				if (eSecondaryPantheon != NO_BELIEF)11814				{11815					iReligionCityStrikeMod += GC.GetGameBeliefs()->GetEntry(eSecondaryPantheon)->GetCityRangeStrikeModifier();11816				}11817				if(iReligionCityStrikeMod > 0)11818				{11819					iValue *= (100 + iReligionCityStrikeMod);11820					iValue /= 100;11821				}11822			}11823		}1182411825		return iValue;11826	}1182711828	return m_iStrengthValue;11829}

Calls

Called by