From 813d16814b42e3ac74f6e6962b47f2407cc629ea Mon Sep 17 00:00:00 2001 From: tool4EvEr Date: Mon, 16 Jan 2023 19:37:39 +0100 Subject: [PATCH] AI fix --- forge-ai/src/main/java/forge/ai/AiAttackController.java | 7 ++++--- .../main/java/forge/game/staticability/StaticAbility.java | 2 +- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/forge-ai/src/main/java/forge/ai/AiAttackController.java b/forge-ai/src/main/java/forge/ai/AiAttackController.java index e88259afe6e..e467b742292 100644 --- a/forge-ai/src/main/java/forge/ai/AiAttackController.java +++ b/forge-ai/src/main/java/forge/ai/AiAttackController.java @@ -20,6 +20,7 @@ package forge.ai; import java.util.ArrayList; import java.util.List; +import forge.game.staticability.StaticAbility; import forge.game.staticability.StaticAbilityAssignCombatDamageAsUnblocked; import org.apache.commons.lang3.tuple.Pair; @@ -1432,11 +1433,11 @@ public class AiAttackController { // if card has a Exert Trigger which would target, // but there are no creatures it can target, no need to exert with it boolean missTarget = false; - for (Trigger t : c.getTriggers()) { - if (!TriggerType.Exerted.equals(t.getMode())) { + for (StaticAbility st : c.getStaticAbilities()) { + if (!"OptionalAttackCost".equals(st.getParam("Mode"))) { continue; } - SpellAbility sa = t.ensureAbility(); + SpellAbility sa = st.getPayingTrigSA(); if (sa == null) { continue; } diff --git a/forge-game/src/main/java/forge/game/staticability/StaticAbility.java b/forge-game/src/main/java/forge/game/staticability/StaticAbility.java index eb24be96a3d..f4d04647c98 100644 --- a/forge-game/src/main/java/forge/game/staticability/StaticAbility.java +++ b/forge-game/src/main/java/forge/game/staticability/StaticAbility.java @@ -84,7 +84,7 @@ public class StaticAbility extends CardTraitBase implements IIdentifiable, Clone public SpellAbility getPayingTrigSA() { // already cached? - if (payingTrigSA == null) { + if (payingTrigSA == null && hasParam("Trigger")) { payingTrigSA = AbilityFactory.getAbility(getSVar(getParam("Trigger")), getHostCard()); } return payingTrigSA;