CvReligionAI::BuyGreatPerson(UnitTypes)
- Defined in
- CvReligionClasses.cpp, line 6028
- Class
- CvReligionAI
- Hook name
CivHooks::CvReligionAI_BuyGreatPerson
Hooks
static bool BeforeCvReligionAI_BuyGreatPerson(CvReligionAI* self, UnitTypes eUnit);static void AfterCvReligionAI_BuyGreatPerson(CvReligionAI* self, UnitTypes eUnit);static void ReplaceCvReligionAI_BuyGreatPerson(void (*original)(CvReligionAI*, UnitTypes), CvReligionAI* self, UnitTypes eUnit);CivRegisterBefore<CivHooks::CvReligionAI_BuyGreatPerson>(host, &BeforeCvReligionAI_BuyGreatPerson);CivRegisterAfter<CivHooks::CvReligionAI_BuyGreatPerson>(host, &AfterCvReligionAI_BuyGreatPerson);CivRegisterReplace<CivHooks::CvReligionAI_BuyGreatPerson>(host, &ReplaceCvReligionAI_BuyGreatPerson);
Code
6027/// Pick the right city to purchase a great person in6028void CvReligionAI::BuyGreatPerson(UnitTypes eUnit)6029{6030 CvPlayer &kPlayer = GET_PLAYER(m_pPlayer->GetID());6031 CvCity *pCapital = kPlayer.getCapitalCity();6032 if (pCapital)6033 {6034 int iCost = pCapital->GetFaithPurchaseCost(eUnit, true /*bIncludeBeliefDiscounts*/);6035 if (iCost <= kPlayer.GetFaith())6036 {6037 CvCity *pBestCity = CvReligionAIHelpers::GetBestCityFaithUnitPurchase(kPlayer, eUnit, NO_RELIGION);6038 if (pBestCity)6039 {6040 pBestCity->Purchase(eUnit, (BuildingTypes)-1, (ProjectTypes)-1, YIELD_FAITH);6041 }6042 }6043 }6044}
Calls
- CvCity::GetFaithPurchaseCost(UnitTypes, bool)
- CvCity::Purchase(UnitTypes, BuildingTypes, ProjectTypes, YieldTypes)
- CvPlayer::getCapitalCity()
- CvPlayer::GetFaith() const
- CvPlayer::GetID() const
- CvPlayerAI::getPlayer(PlayerTypes)
- CvReligionAIHelpers::GetBestCityFaithUnitPurchase(CvPlayer &, UnitTypes, ReligionTypes)