EconomicAIHelpers::IsTestStrategy_LosingMoney(EconomicAIStrategyTypes, CvPlayer *)
- Defined in
- CvEconomicAI.cpp, line 3927
- Hook name
CivHooks::EconomicAIHelpers_IsTestStrategy_LosingMoney
Hooks
static bool BeforeEconomicAIHelpers_IsTestStrategy_LosingMoney(EconomicAIStrategyTypes eStrategy, CvPlayer* pPlayer, bool& result);static void AfterEconomicAIHelpers_IsTestStrategy_LosingMoney(EconomicAIStrategyTypes eStrategy, CvPlayer* pPlayer, bool& result);static bool ReplaceEconomicAIHelpers_IsTestStrategy_LosingMoney(bool (*original)(EconomicAIStrategyTypes, CvPlayer*), EconomicAIStrategyTypes eStrategy, CvPlayer* pPlayer);CivRegisterBefore<CivHooks::EconomicAIHelpers_IsTestStrategy_LosingMoney>(host, &BeforeEconomicAIHelpers_IsTestStrategy_LosingMoney);CivRegisterAfter<CivHooks::EconomicAIHelpers_IsTestStrategy_LosingMoney>(host, &AfterEconomicAIHelpers_IsTestStrategy_LosingMoney);CivRegisterReplace<CivHooks::EconomicAIHelpers_IsTestStrategy_LosingMoney>(host, &ReplaceEconomicAIHelpers_IsTestStrategy_LosingMoney);
Code
3926/// "Losing Money" Player Strategy: Stop building military if in a financial downturn3927bool EconomicAIHelpers::IsTestStrategy_LosingMoney(EconomicAIStrategyTypes eStrategy, CvPlayer* pPlayer)3928{3929 CvEconomicAIStrategyXMLEntry* pStrategy = pPlayer->GetEconomicAI()->GetEconomicAIStrategies()->GetEntry(eStrategy);3930 int iInterval = pStrategy->GetMinimumNumTurnsExecuted();39313932 // Need a certain number of turns of history before we can turn this on3933 if(GC.getGame().getGameTurn() <= iInterval)3934 {3935 return false;3936 }39373938 // Is average income below desired threshold over past X turns?3939 return (pPlayer->GetTreasury()->AverageIncome(iInterval) < (double)pStrategy->GetWeightThreshold() /* 2 */);3940}
Calls
- CvEconomicAI::GetEconomicAIStrategies()
- CvEconomicAIStrategyXMLEntries::GetEntry(int)
- CvEconomicAIStrategyXMLEntry::GetMinimumNumTurnsExecuted() const
- CvEconomicAIStrategyXMLEntry::GetWeightThreshold() const
- CvGame::getGameTurn()
- CvGlobals::getGame()
- CvPlayer::GetEconomicAI() const
- CvPlayer::GetTreasury() const
- CvTreasury::AverageIncome(int)