Bazaar developer reference

EconomicAIHelpers::IsTestStrategy_EnoughArchaeologists(CvPlayer *)

Defined in
CvEconomicAI.cpp, line 4316
Hook name
CivHooks::EconomicAIHelpers_IsTestStrategy_EnoughArchaeologists

Hooks

static bool BeforeEconomicAIHelpers_IsTestStrategy_EnoughArchaeologists(CvPlayer* pPlayer, bool& result);static void AfterEconomicAIHelpers_IsTestStrategy_EnoughArchaeologists(CvPlayer* pPlayer, bool& result);static bool ReplaceEconomicAIHelpers_IsTestStrategy_EnoughArchaeologists(bool (*original)(CvPlayer*), CvPlayer* pPlayer);CivRegisterBefore<CivHooks::EconomicAIHelpers_IsTestStrategy_EnoughArchaeologists>(host, &BeforeEconomicAIHelpers_IsTestStrategy_EnoughArchaeologists);CivRegisterAfter<CivHooks::EconomicAIHelpers_IsTestStrategy_EnoughArchaeologists>(host, &AfterEconomicAIHelpers_IsTestStrategy_EnoughArchaeologists);CivRegisterReplace<CivHooks::EconomicAIHelpers_IsTestStrategy_EnoughArchaeologists>(host, &ReplaceEconomicAIHelpers_IsTestStrategy_EnoughArchaeologists);

Code

4315/// There are more archaeologists than sites4316bool EconomicAIHelpers::IsTestStrategy_EnoughArchaeologists(CvPlayer* pPlayer)4317{4318	int iNumSites = GC.getGame().GetNumArchaeologySites();4319	double iMaxRatio = .5; //Ratio of archaeologists to sites4320#if defined(MOD_AI_SMART_V3)4321	if (MOD_AI_SMART_V3) iMaxRatio = .25;4322#endif4323	int iNumArchaeologists = pPlayer->GetNumUnitsWithUnitAI(UNITAI_ARCHAEOLOGIST, true);4324	PolicyTypes eExpFinisher = (PolicyTypes) GC.getInfoTypeForString("POLICY_EXPLORATION_FINISHER", true /*bHideAssert*/);4325	4326	if (eExpFinisher != NO_POLICY)4327	{4328		if (pPlayer->GetPlayerPolicies()->HasPolicy(eExpFinisher))4329		{4330			iNumSites += GC.getGame().GetNumHiddenArchaeologySites();4331		}4332	}4333		4334	if ((double)iNumSites * iMaxRatio + 1 < iNumArchaeologists)4335	{4336		return true;4337	}43384339	return false;4340}

Calls

Called by