I think this is the culprit:
From
UnitTypes CvCityAI::AI_bestUnitAI(UnitAITypes eUnitAI, bool bAsync, AdvisorTypes eIgnoreAdvisor)
Overall, it is pretty smart -- but I think instead of counting the number of cities that the player owns, what if we count the number of cities in that land area?
That would make a city on an new continent want to pump out workers to start off.
A better refinement might just increase the cost of a food-requiring unit, rather than simply ignoring every food-requiring unit when we think the city should grow.
Thoughts?
From
UnitTypes CvCityAI::AI_bestUnitAI(UnitAITypes eUnitAI, bool bAsync, AdvisorTypes eIgnoreAdvisor)
Code:
if (GET_PLAYER(getOwnerINLINE()).getNumCities() <= 2)
{
bGrowMore = ((getPopulation() < 3) && (AI_countGoodTiles(true, false, 100) >= getPopulation()));
}
else
{
// I think the bug is here:
[b] bGrowMore = ((getPopulation() < 3) || (AI_countGoodTiles(true, false, 100) >= getPopulation()));[/b]
}
if (!bGrowMore && (getPopulation() < 6) && (AI_countGoodTiles(true, false, 80) >= getPopulation()))
{
if ((getFood() - (getFoodKept() / 2)) >= (growthThreshold() / 2))
{
if ((angryPopulation(1) == 0) && (healthRate(false, 1) == 0))
{
bGrowMore = true;
}
}
}
Overall, it is pretty smart -- but I think instead of counting the number of cities that the player owns, what if we count the number of cities in that land area?
That would make a city on an new continent want to pump out workers to start off.
A better refinement might just increase the cost of a food-requiring unit, rather than simply ignoring every food-requiring unit when we think the city should grow.
Thoughts?