Fix potentially infinite attempts to upgrade units by AI

This commit is contained in:
Ivan Savenko
2024-12-31 13:27:12 +00:00
parent 1fd2c88167
commit f9ce95756f
+5 -1
View File
@@ -805,7 +805,11 @@ bool AIGateway::makePossibleUpgrades(const CArmedInstance * obj)
{
return id.toCreature()->getAIValue();
});
if(nullkiller->getFreeResources().canAfford(upgradeInfo.getUpgradeCostsFor(upgID) * s->count))
int oldValue = s->getCreature()->getAIValue();
int newValue = upgID.toCreature()->getAIValue();
if(newValue > oldValue && nullkiller->getFreeResources().canAfford(upgradeInfo.getUpgradeCostsFor(upgID) * s->count))
{
myCb->upgradeCreature(obj, SlotID(i), upgID);
upgraded = true;