From faa8ca0b343acef85c28c0a5b0b010d40366f3e6 Mon Sep 17 00:00:00 2001 From: Hanmac Date: Sun, 8 Oct 2017 13:38:38 +0000 Subject: [PATCH] DelayedTriggerAI: use getAdditionalAbility if able --- .../forge/ai/ability/DelayedTriggerAi.java | 24 ++++++++++++++----- 1 file changed, 18 insertions(+), 6 deletions(-) diff --git a/forge-ai/src/main/java/forge/ai/ability/DelayedTriggerAi.java b/forge-ai/src/main/java/forge/ai/ability/DelayedTriggerAi.java index bb8a03fecf6..fce716447ef 100644 --- a/forge-ai/src/main/java/forge/ai/ability/DelayedTriggerAi.java +++ b/forge-ai/src/main/java/forge/ai/ability/DelayedTriggerAi.java @@ -18,8 +18,12 @@ public class DelayedTriggerAi extends SpellAbilityAi { // TODO: improve ai return true; } - final String svarName = sa.getParam("Execute"); - final SpellAbility trigsa = AbilityFactory.getAbility(sa.getHostCard().getSVar(svarName), sa.getHostCard()); + SpellAbility trigsa = null; + if (sa.hasAdditionalAbility("Execute")) { + trigsa = sa.getAdditionalAbility("Execute"); + } else { + trigsa = AbilityFactory.getAbility(sa.getHostCard(), sa.getParam("Execute")); + } trigsa.setActivatingPlayer(ai); if (trigsa instanceof AbilitySub) { @@ -31,8 +35,12 @@ public class DelayedTriggerAi extends SpellAbilityAi { @Override protected boolean doTriggerAINoCost(Player ai, SpellAbility sa, boolean mandatory) { - final String svarName = sa.getParam("Execute"); - final SpellAbility trigsa = AbilityFactory.getAbility(sa.getHostCard().getSVar(svarName), sa.getHostCard()); + SpellAbility trigsa = null; + if (sa.hasAdditionalAbility("Execute")) { + trigsa = sa.getAdditionalAbility("Execute"); + } else { + trigsa = AbilityFactory.getAbility(sa.getHostCard(), sa.getParam("Execute")); + } AiController aic = ((PlayerControllerAi)ai.getController()).getAi(); trigsa.setActivatingPlayer(ai); @@ -45,8 +53,12 @@ public class DelayedTriggerAi extends SpellAbilityAi { @Override protected boolean canPlayAI(Player ai, SpellAbility sa) { - final String svarName = sa.getParam("Execute"); - final SpellAbility trigsa = AbilityFactory.getAbility(sa.getSVar(svarName), sa.getHostCard()); + SpellAbility trigsa = null; + if (sa.hasAdditionalAbility("Execute")) { + trigsa = sa.getAdditionalAbility("Execute"); + } else { + trigsa = AbilityFactory.getAbility(sa.getHostCard(), sa.getParam("Execute")); + } trigsa.setActivatingPlayer(ai); return AiPlayDecision.WillPlay == ((PlayerControllerAi)ai.getController()).getAi().canPlaySa(trigsa); }