소스 검색

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;