Преглед изворни кода

Merge pull request #5176 from IvanSavenko/ai_upgrades

Fix potentially infinite attempts to upgrade units by AI
Ivan Savenko пре 9 месеци
родитељ
комит
dfa8a956cc
1 измењених фајлова са 5 додато и 1 уклоњено
  1. 5 1
      AI/Nullkiller/AIGateway.cpp

+ 5 - 1
AI/Nullkiller/AIGateway.cpp

@@ -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;