浏览代码

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;