CvCityCulture::GetThemingBonus(BuildingClassTypes) const
- Defined in
- CvCultureClasses.cpp, line 5134
- Class
- CvCityCulture
- Hook name
CivHooks::CvCityCulture_GetThemingBonus
Hooks
static bool BeforeCvCityCulture_GetThemingBonus(const CvCityCulture* self, BuildingClassTypes eBuildingClass, int& result);static void AfterCvCityCulture_GetThemingBonus(const CvCityCulture* self, BuildingClassTypes eBuildingClass, int& result);static int ReplaceCvCityCulture_GetThemingBonus(int (*original)(const CvCityCulture*, BuildingClassTypes), const CvCityCulture* self, BuildingClassTypes eBuildingClass);CivRegisterBefore<CivHooks::CvCityCulture_GetThemingBonus>(host, &BeforeCvCityCulture_GetThemingBonus);CivRegisterAfter<CivHooks::CvCityCulture_GetThemingBonus>(host, &AfterCvCityCulture_GetThemingBonus);CivRegisterReplace<CivHooks::CvCityCulture_GetThemingBonus>(host, &ReplaceCvCityCulture_GetThemingBonus);
Code
5134int CvCityCulture::GetThemingBonus(BuildingClassTypes eBuildingClass) const5135{5136 CvPlayer &kPlayer = GET_PLAYER(m_pCity->getOwner());5137 int iRtnValue = 0;51385139 if (IsThemingBonusPossible(eBuildingClass))5140 {5141 int iIndex = GetThemingBonusIndex(eBuildingClass);5142 if (iIndex >= 0)5143 {5144 BuildingTypes eBuilding = (BuildingTypes)kPlayer.getCivilizationInfo().getCivilizationBuildings(eBuildingClass);5145 CvBuildingEntry *pkBuilding = GC.GetGameBuildings()->GetEntry(eBuilding);5146 if (pkBuilding)5147 {5148 int iBonus = pkBuilding->GetThemingBonusInfo(iIndex)->GetBonus();5149 int iModifier = kPlayer.GetPlayerPolicies()->GetNumericModifier(POLICYMOD_THEMING_BONUS);5150 iRtnValue = iBonus * (100 + iModifier) / 100;5151 if (m_pCity->isCapital())5152 {5153 iModifier = kPlayer.GetPlayerTraits()->GetCapitalThemingBonusModifier();5154 if (iModifier > 0)5155 {5156 iRtnValue = iRtnValue * (100 + iModifier) / 100;51575158#if !defined(NO_ACHIEVEMENTS)5159 if (kPlayer.isHuman() && !GC.getGame().isGameMultiPlayer() && iRtnValue >= 16)5160 {5161 gDLL->UnlockAchievement(ACHIEVEMENT_XP2_40);5162 }5163#endif5164 }5165 }5166 }5167 }5168 }51695170 return iRtnValue;5171}
Calls
- CvBuildingEntry::GetThemingBonusInfo(int) const
- CvBuildingXMLEntries::GetEntry(int)
- CvCity::getOwner() const
- CvCity::isCapital() const
- CvCityCulture::GetThemingBonusIndex(BuildingClassTypes) const
- CvCityCulture::IsThemingBonusPossible(BuildingClassTypes) const
- CvCivilizationInfo::getCivilizationBuildings(int) const
- CvGlobals::GetGameBuildings() const
- CvPlayer::getCivilizationInfo() const
- CvPlayer::GetPlayerPolicies() const
- CvPlayer::GetPlayerTraits() const
- CvPlayerAI::getPlayer(PlayerTypes)
- CvPlayerPolicies::GetNumericModifier(PolicyModifierType)
- CvPlayerTraits::GetCapitalThemingBonusModifier() const
- CvThemingBonusInfo::GetBonus()