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
- CustomMods::isAI_SMART_V3()
- CvGame::GetNumArchaeologySites() const
- CvGame::GetNumHiddenArchaeologySites() const
- CvGlobals::getGame()
- CvGlobals::getInfoTypeForString(const char *, bool) const
- CvPlayer::GetNumUnitsWithUnitAI(UnitAITypes, bool, bool)
- CvPlayer::GetPlayerPolicies() const
- CvPlayerPolicies::HasPolicy(PolicyTypes) const