EconomicAIHelpers::IsTestStrategy_IslandStart(EconomicAIStrategyTypes, CvPlayer *)
- Defined in
- CvEconomicAI.cpp, line 3988
- Hook name
CivHooks::EconomicAIHelpers_IsTestStrategy_IslandStart
Hooks
static bool BeforeEconomicAIHelpers_IsTestStrategy_IslandStart(EconomicAIStrategyTypes eStrategy, CvPlayer* pPlayer, bool& result);static void AfterEconomicAIHelpers_IsTestStrategy_IslandStart(EconomicAIStrategyTypes eStrategy, CvPlayer* pPlayer, bool& result);static bool ReplaceEconomicAIHelpers_IsTestStrategy_IslandStart(bool (*original)(EconomicAIStrategyTypes, CvPlayer*), EconomicAIStrategyTypes eStrategy, CvPlayer* pPlayer);CivRegisterBefore<CivHooks::EconomicAIHelpers_IsTestStrategy_IslandStart>(host, &BeforeEconomicAIHelpers_IsTestStrategy_IslandStart);CivRegisterAfter<CivHooks::EconomicAIHelpers_IsTestStrategy_IslandStart>(host, &AfterEconomicAIHelpers_IsTestStrategy_IslandStart);CivRegisterReplace<CivHooks::EconomicAIHelpers_IsTestStrategy_IslandStart>(host, &ReplaceEconomicAIHelpers_IsTestStrategy_IslandStart);
Code
3987/// Did we start the game on a small continent (50 tiles or less)?3988bool EconomicAIHelpers::IsTestStrategy_IslandStart(EconomicAIStrategyTypes eStrategy, CvPlayer* pPlayer)3989{3990 int iStartArea;3991 CvPlot* pLoopPlot;3992 int iCoastalTiles = 0;3993 int iRevealedCoastalTiles = 0;39943995 CvEconomicAIStrategyXMLEntry* pStrategy = pPlayer->GetEconomicAI()->GetEconomicAIStrategies()->GetEntry(eStrategy);39963997 // Only kick off this strategy in the first 25 turns of the game (though it will last 50 turns once selected)3998 if(GC.getGame().getGameTurn() < 25 && pPlayer->getStartingPlot())3999 {4000 if(GET_TEAM(pPlayer->getTeam()).getCanEmbarkCount() < 1)4001 {4002 iStartArea = pPlayer->getStartingPlot()->getArea();40034004 // Have we revealed a high enough percentage of the coast of our landmass?4005 for(int iI = 0; iI < GC.getMap().numPlots(); iI++)4006 {4007 pLoopPlot = GC.getMap().plotByIndexUnchecked(iI);4008 if(pLoopPlot->getArea() == iStartArea)4009 {4010 if(pLoopPlot->isCoastalLand())4011 {4012 iCoastalTiles++;4013 }4014 if(pLoopPlot->isRevealed(pPlayer->getTeam()))4015 {4016 iRevealedCoastalTiles++;4017 }4018 }4019 }40204021 if((iRevealedCoastalTiles * 100 / (iCoastalTiles + 1)) > GC.getAI_STRATEGY_ISLAND_START_COAST_REVEAL_PERCENT() &&4022 GC.getMap().getArea(iStartArea)->getNumTiles() < pStrategy->GetWeightThreshold())4023 {4024 return true;4025 }4026 }4027 }40284029 return false;4030}
Calls
- CvArea::getNumTiles() const
- CvEconomicAI::GetEconomicAIStrategies()
- CvEconomicAIStrategyXMLEntries::GetEntry(int)
- CvEconomicAIStrategyXMLEntry::GetWeightThreshold() const
- CvGame::getGameTurn()
- CvGlobals::getAI_STRATEGY_ISLAND_START_COAST_REVEAL_PERCENT()
- CvGlobals::getGame()
- CvGlobals::getMap()
- CvMap::getArea(int)
- CvMap::numPlots() const
- CvMap::plotByIndexUnchecked(int) const
- CvPlayer::GetEconomicAI() const
- CvPlayer::getStartingPlot() const
- CvPlayer::getTeam() const
- CvPlot::getArea() const
- CvPlot::isCoastalLand(int) const
- CvPlot::isRevealed(TeamTypes) const
- CvTeam::getCanEmbarkCount() const
- CvTeam::getTeam(TeamTypes)