Browse Source

Fix division by zero in RewardEvaluator::getArmyReward

Andrej Dudenhefner 4 weeks ago
parent
commit
6253e8321b
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;