Bazaar developer reference

CvReligionAI::BuyMissionary(ReligionTypes)

Defined in
CvReligionClasses.cpp, line 5980
Class
CvReligionAI
Hook name
CivHooks::CvReligionAI_BuyMissionary

Hooks

static bool BeforeCvReligionAI_BuyMissionary(CvReligionAI* self, ReligionTypes eReligion);static void AfterCvReligionAI_BuyMissionary(CvReligionAI* self, ReligionTypes eReligion);static void ReplaceCvReligionAI_BuyMissionary(void (*original)(CvReligionAI*, ReligionTypes), CvReligionAI* self, ReligionTypes eReligion);CivRegisterBefore<CivHooks::CvReligionAI_BuyMissionary>(host, &BeforeCvReligionAI_BuyMissionary);CivRegisterAfter<CivHooks::CvReligionAI_BuyMissionary>(host, &AfterCvReligionAI_BuyMissionary);CivRegisterReplace<CivHooks::CvReligionAI_BuyMissionary>(host, &ReplaceCvReligionAI_BuyMissionary);

Code

5979/// Pick the right city to purchase a missionary in5980void CvReligionAI::BuyMissionary(ReligionTypes eReligion)5981{5982	CvPlayer &kPlayer = GET_PLAYER(m_pPlayer->GetID());5983#if defined(MOD_BUGFIX_UNITCLASS_NOT_UNIT)5984	UnitTypes eMissionary = kPlayer.GetSpecificUnitType("UNITCLASS_MISSIONARY");5985#else5986	UnitTypes eMissionary = (UnitTypes)GC.getInfoTypeForString("UNIT_MISSIONARY");5987#endif5988	CvCity *pCapital = kPlayer.getCapitalCity();5989	if (pCapital)5990	{5991		int iCost = pCapital->GetFaithPurchaseCost(eMissionary, true /*bIncludeBeliefDiscounts*/);5992		if (iCost <= kPlayer.GetFaith())5993		{5994			CvCity *pBestCity = CvReligionAIHelpers::GetBestCityFaithUnitPurchase(kPlayer, eMissionary, eReligion);5995			if (pBestCity)5996			{5997				pBestCity->Purchase(eMissionary, (BuildingTypes)-1, (ProjectTypes)-1, YIELD_FAITH);5998			}5999		}6000	}6001}

Calls

Called by