浏览代码

Spellcasting-bug-fix

Fixed a bug that prevented the AI from using spells when attacking an enemy settlement that has towers.
The bug was caused by noticing how greatly effective spells would be against towers but not being able to actually target them.
By skipping invalid targets, this no longer is an issue.
Xilmi 1 年之前
父节点
当前提交
98415e98da
共有 1 个文件被更改,包括 3 次插入0 次删除
  1. 3 0
      AI/BattleAI/BattleEvaluator.cpp

+ 3 - 0
AI/BattleAI/BattleEvaluator.cpp

@@ -623,6 +623,9 @@ bool BattleEvaluator::attemptCastingSpell(const CStack * activeStack)
 
 				for(const auto & unit : allUnits)
 				{
+					if (!unit->isValidTarget())
+						continue;
+					
 					auto newHealth = unit->getAvailableHealth();
 					auto oldHealth = vstd::find_or(healthOfStack, unit->unitId(), 0); // old health value may not exist for newly summoned units