CvCity::GetFaithPurchaseCost(BuildingTypes)
- Defined in
- CvCity.cpp, line 5279
- Class
- CvCity
- Hook name
CivHooks::CvCity_GetFaithPurchaseCost_with_BuildingTypes
Hooks
static bool BeforeCvCity_GetFaithPurchaseCost_with_BuildingTypes(CvCity* self, BuildingTypes eBuilding, int& result);static void AfterCvCity_GetFaithPurchaseCost_with_BuildingTypes(CvCity* self, BuildingTypes eBuilding, int& result);static int ReplaceCvCity_GetFaithPurchaseCost_with_BuildingTypes(int (*original)(CvCity*, BuildingTypes), CvCity* self, BuildingTypes eBuilding);CivRegisterBefore<CivHooks::CvCity_GetFaithPurchaseCost_with_BuildingTypes>(host, &BeforeCvCity_GetFaithPurchaseCost_with_BuildingTypes);CivRegisterAfter<CivHooks::CvCity_GetFaithPurchaseCost_with_BuildingTypes>(host, &AfterCvCity_GetFaithPurchaseCost_with_BuildingTypes);CivRegisterReplace<CivHooks::CvCity_GetFaithPurchaseCost_with_BuildingTypes>(host, &ReplaceCvCity_GetFaithPurchaseCost_with_BuildingTypes);
Code
5279int CvCity::GetFaithPurchaseCost(BuildingTypes eBuilding)5280{5281 int iCost;52825283 CvBuildingEntry* pkBuildingInfo = GC.getBuildingInfo(eBuilding);5284 if(pkBuildingInfo == NULL)5285 {5286 //Should never happen5287 return 0;5288 }52895290 // Cost goes up in later eras5291 iCost = pkBuildingInfo->GetFaithCost();5292 EraTypes eEra = GET_TEAM(GET_PLAYER(getOwner()).getTeam()).GetCurrentEra();5293 int iMultiplier = GC.getEraInfo(eEra)->getFaithCostMultiplier();5294 iCost = iCost * iMultiplier / 100;5295 iMultiplier = (100 + GET_PLAYER(getOwner()).GetPlayerPolicies()->GetNumericModifier(POLICYMOD_FAITH_COST_MODIFIER));5296 iCost = iCost * iMultiplier / 100;52975298 // Adjust for game speed5299 iCost *= GC.getGame().getGameSpeedInfo().getConstructPercent();5300 iCost /= 100;53015302 // Adjust for difficulty5303 if(!isHuman() && !GET_PLAYER(getOwner()).IsAITeammateOfHuman() && !isBarbarian())5304 {5305 iCost *= GC.getGame().getHandicapInfo().getAIConstructPercent();5306 iCost /= 100;5307 }53085309 // Make the number not be funky5310 int iDivisor = /*10*/ GC.getGOLD_PURCHASE_VISIBLE_DIVISOR();5311 iCost /= iDivisor;5312 iCost *= iDivisor;53135314 return iCost;5315}
Calls
- CvBuildingEntry::GetFaithCost() const
- CvCity::getOwner() const
- CvCity::isBarbarian() const
- CvCity::isHuman() const
- CvEraInfo::getFaithCostMultiplier() const
- CvGame::getGameSpeedInfo() const
- CvGame::getHandicapInfo() const
- CvGameSpeedInfo::getConstructPercent() const
- CvGlobals::getBuildingInfo(BuildingTypes)
- CvGlobals::getEraInfo(EraTypes)
- CvGlobals::getGame()
- CvGlobals::getGOLD_PURCHASE_VISIBLE_DIVISOR()
- CvHandicapInfo::getAIConstructPercent() const
- CvPlayer::GetPlayerPolicies() const
- CvPlayer::getTeam() const
- CvPlayer::IsAITeammateOfHuman() const
- CvPlayerAI::getPlayer(PlayerTypes)
- CvPlayerPolicies::GetNumericModifier(PolicyModifierType)
- CvTeam::GetCurrentEra() const
- CvTeam::getTeam(TeamTypes)
Called by
- CvCity::IsCanPurchase(bool, bool, UnitTypes, BuildingTypes, ProjectTypes, YieldTypes)
- CvCity::Purchase(UnitTypes, BuildingTypes, ProjectTypes, YieldTypes)
- CvPlayerReligions::CanAffordFaithPurchase(int) const
- CvReligionAI::BuyFaithBuilding(ReligionTypes, BuildingClassTypes)
- CvLuaCity::lGetBuildingFaithPurchaseCost(lua_State *)
- CvLuaCity::lGetFaithPurchaseBuildingTooltip(lua_State *)