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
- CvBeliefEntry::GetCityRangeStrikeModifier() const
- CvBeliefXMLEntries::GetEntry(int)
- CvCity::GetCityReligions() const
- CvCity::GetGarrisonedUnit() const
- CvCity::getOwner() const
- CvCityBuildings::GetBuildingDefense() const
- CvCityReligions::GetReligiousMajority()
- CvCityReligions::GetSecondaryReligionPantheonBelief()
- CvGame::GetGameReligions()
- CvGameReligions::GetReligion(ReligionTypes, PlayerTypes) const
- CvGlobals::getCITY_RANGED_ATTACK_STRENGTH_MULTIPLIER()
- CvGlobals::getGame()
- CvGlobals::GetGameBeliefs() const
- CvPlayer::GetGarrisonedCityRangeStrikeModifier() const
- CvPlayerAI::getPlayer(PlayerTypes)
- CvReligionBeliefs::GetCityRangeStrikeModifier() const
FAutoVariable::operator const int &FAutoVariable::operator const PlayerTypes &
Called by
- CvCity::GetAirStrikeDefenseDamage(const CvUnit *, bool) const
- CvCity::GetPower() const
- CvCity::rangeCombatDamage(const CvUnit *, CvCity *, bool) const
- CvDangerPlots::AssignCityDangerValue(CvCity *, CvPlot *)
- CvDllCity::GetStrengthValue(bool) const
- CvHomelandAI::MoveCivilianToSafety(CvUnit *, bool, bool)
- CvMilitaryAI::ScoreTarget(CvMilitaryTarget &, AIOperationTypes)
- CvTacticalAI::ComputeTotalExpectedDamage(CvTacticalTarget *, CvPlot *)
- CvTacticalAI::IdentifyPriorityTargets()
- CvTacticalAI::ScoreGreatGeneralPlot(UnitHandle, CvPlot *, CvArmyAI *)
- CvTacticalAnalysisMap::CalculateMilitaryStrengths()
- CvUnit::GetAirCombatDamage(const CvUnit *, CvCity *, bool, int) const
- CvUnit::GetRangeCombatDamage(const CvUnit *, CvCity *, bool, int) const
- CvUnitCombat::GenerateMeleeCombatInfo(CvUnit &, CvUnit *, CvPlot &, CvCombatInfo *)
- CvLuaCity::lGetStrengthValue(lua_State *)