From c539f5d1a3b97112653efdb356b5d355cb6c3e00 Mon Sep 17 00:00:00 2001 From: Agetian Date: Thu, 15 Nov 2018 20:21:44 +0300 Subject: [PATCH] - Improved damage trigger detection in AttachAi. --- .../src/main/java/forge/ai/ability/AttachAi.java | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/forge-ai/src/main/java/forge/ai/ability/AttachAi.java b/forge-ai/src/main/java/forge/ai/ability/AttachAi.java index 64de7d65a3d..0ffb370de21 100644 --- a/forge-ai/src/main/java/forge/ai/ability/AttachAi.java +++ b/forge-ai/src/main/java/forge/ai/ability/AttachAi.java @@ -910,9 +910,15 @@ public class AttachAi extends SpellAbilityAi { for (Trigger t : attachSource.getTriggers()) { if (t.getMode() == TriggerType.ChangesZone) { final Map params = t.getMapParams(); - if ("Card.Self".equals(params.get("ValidCard")) && "Battlefield".equals(params.get("Destination")) && t.hasParam("Execute")) { - SpellAbility trigSa = AbilityFactory.getAbility(attachSource.getSVar(params.get("Execute")), attachSource); - if (trigSa.getApi() == ApiType.DealDamage && "Enchanted".equals(trigSa.getParam("Defined"))) { + if ("Card.Self".equals(params.get("ValidCard")) + && "Battlefield".equals(params.get("Destination"))) { + SpellAbility trigSa = null; + if (t.hasParam("Execute") && attachSource.hasSVar(t.getParam("Execute"))) { + trigSa = AbilityFactory.getAbility(attachSource.getSVar(params.get("Execute")), attachSource); + } else if (t.getOverridingAbility() != null) { + trigSa = t.getOverridingAbility(); + } + if (trigSa != null && trigSa.getApi() == ApiType.DealDamage && "Enchanted".equals(trigSa.getParam("Defined"))) { for (Card target : list) { if (!target.getController().isOpponentOf(ai)) { int numDmg = AbilityUtils.calculateAmount(target, trigSa.getParam("NumDmg"), trigSa);