Browse Source

Merge pull request #6294 from mrhaandi/fix-ai-dividebyzero

Fix division by zero in RewardEvaluator::getArmyReward
Ivan Savenko 4 weeks ago
parent
commit
56b63a68cb
1 changed files with 3 additions and 1 deletions
  1. 3 1
      AI/Nullkiller/Engine/PriorityEvaluator.cpp

+ 3 - 1
AI/Nullkiller/Engine/PriorityEvaluator.cpp

@@ -281,7 +281,9 @@ uint64_t RewardEvaluator::getArmyReward(
 			for(const auto & stackInfo : info.reward.creatures)
 				rewardValue += stackInfo.getType()->getAIValue() * stackInfo.getCount();
 
-			totalValue += rewardValue > 0 ? rewardValue / (info.reward.grantedArtifacts.size() + info.reward.creatures.size()) : 0;
+			auto combined_size = std::min(static_cast<size_t>(1), info.reward.grantedArtifacts.size() + info.reward.creatures.size() + info.reward.grantedScrolls.size());
+
+			totalValue += rewardValue > 0 ? rewardValue / combined_size : 0;
 		}
 
 		return totalValue;