Bazaar developer reference

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

Called by