From 98415e98da857c290e3200d78f76b0dea67f8512 Mon Sep 17 00:00:00 2001 From: Xilmi Date: Tue, 9 Jul 2024 22:55:39 +0200 Subject: [PATCH] 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. --- AI/BattleAI/BattleEvaluator.cpp | 3 +++ 1 file changed, 3 insertions(+) diff --git a/AI/BattleAI/BattleEvaluator.cpp b/AI/BattleAI/BattleEvaluator.cpp index 984d02d5d..7a950309f 100644 --- a/AI/BattleAI/BattleEvaluator.cpp +++ b/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