Yeah, but only in the one before this - you were showing, even before that, that there was trouble with growth. When he stated that the units stuck in the loop weren't causing the game to be stuck as a whole I realized that was a mistake to put that there.
Nevertheless, you'll see that despite the adjustments the AI is still only sending out one unit so I do think there's something of an issue with the strength of the best defender. I was finding that the AI was having trouble finding a valid buildable defender through
Code:
if (AI_chooseUnit("min defender", UNITAI_CITY_DEFENSE))
{
return;
}
which is really as basic a call as you can get.
Of course, analyzing this is hell because the unit selection process is terribly overcomplicated - there's portions I really don't see the point in for one thing. Finding the problem there is like finding a needle in a haystack.
The problem COULD be what happens when military units are built with food (such as they seem to be on some early civics.)
The 'get strength of' function leads here:
UnitTypes CvCityAI::AI_bestUnitAI(UnitAITypes eUnitAI, int& iBestValue, bool bAsync, bool bNoRand, CvUnitSelectionCriteria* criteria)
That starts getting into whether the unit should be built right now due to food.
Then, assuming the caching is working correctly, it makes a validity check on the unit's evaluation, then looks for the best evaluation among units similar, then appears to make a selection from among those that work...
The whole thing just strikes me as terribly over-engineered for this type of call.