From 2447ea4fb086c02dd995c97fb0f11e4bd9d90bf3 Mon Sep 17 00:00:00 2001 From: Agetian Date: Tue, 30 Jan 2018 08:34:01 +0300 Subject: [PATCH] - AiAttackController/AiBlockController: do not count activated abilities that can't target the attacker/blocker when trying to predict P/T bonus from AF Pump (fixes the AI suicide attacking/blocking with cards like Pia Nalaar) --- .../src/main/java/forge/ai/ComputerUtilCombat.java | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/forge-ai/src/main/java/forge/ai/ComputerUtilCombat.java b/forge-ai/src/main/java/forge/ai/ComputerUtilCombat.java index 9636196752a..75fb096efd9 100644 --- a/forge-ai/src/main/java/forge/ai/ComputerUtilCombat.java +++ b/forge-ai/src/main/java/forge/ai/ComputerUtilCombat.java @@ -997,6 +997,9 @@ public class ComputerUtilCombat { if (ability.hasParam("ActivationPhases") || ability.hasParam("SorcerySpeed") || ability.hasParam("ActivationZone")) { continue; } + if (!ability.canTarget(blocker)) { + continue; + } if (ability.getApi() == ApiType.Pump) { if (!ability.hasParam("NumAtt")) { @@ -1158,6 +1161,9 @@ public class ComputerUtilCombat { if (ability.hasParam("ActivationPhases") || ability.hasParam("SorcerySpeed") || ability.hasParam("ActivationZone")) { continue; } + if (!ability.canTarget(blocker)) { + continue; + } if (ability.getApi() == ApiType.Pump) { if (!ability.hasParam("NumDef")) { @@ -1360,6 +1366,9 @@ public class ComputerUtilCombat { if (ability.hasParam("ActivationPhases") || ability.hasParam("SorcerySpeed") || ability.hasParam("ActivationZone")) { continue; } + if (!ability.canTarget(attacker)) { + continue; + } if (ability.getApi() == ApiType.Pump) { if (!ability.hasParam("NumAtt")) { @@ -1577,6 +1586,9 @@ public class ComputerUtilCombat { if (ability.hasParam("ActivationPhases") || ability.hasParam("SorcerySpeed") || ability.hasParam("ActivationZone")) { continue; } + if (!ability.canTarget(attacker)) { + continue; + } if (ability.getApi() == ApiType.Pump) { if (!ability.hasParam("NumDef")) {