Selaa lähdekoodia

Fix potentially infinite attempts to upgrade units by AI

Ivan Savenko 9 kuukautta sitten
vanhempi
sitoutus
f9ce95756f
1 muutettua tiedostoa jossa 5 lisäystä ja 1 poistoa
  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;