diff --git a/forge-ai/src/main/java/forge/ai/ability/CounterAi.java b/forge-ai/src/main/java/forge/ai/ability/CounterAi.java index f60c65c4cdd..1b2848ed480 100644 --- a/forge-ai/src/main/java/forge/ai/ability/CounterAi.java +++ b/forge-ai/src/main/java/forge/ai/ability/CounterAi.java @@ -7,6 +7,9 @@ import forge.game.ability.ApiType; import forge.game.card.Card; import forge.game.card.CardFactoryUtil; import forge.game.cost.Cost; +import forge.game.cost.CostDiscard; +import forge.game.cost.CostExile; +import forge.game.cost.CostSacrifice; import forge.game.player.Player; import forge.game.spellability.SpellAbility; import forge.game.spellability.SpellAbilityStackInstance; @@ -201,6 +204,17 @@ public class CounterAi extends SpellAbilityAi { } } + // Should ALWAYS counter if it doesn't spend a card, otherwise it wastes an opportunity + // to gain card advantage + if (sa.isAbility() + && (!sa.getPayCosts().hasSpecificCostType(CostDiscard.class)) + && (!sa.getPayCosts().hasSpecificCostType(CostSacrifice.class)) + && (!sa.getPayCosts().hasSpecificCostType(CostExile.class)) + // maybe also disallow CostPayLife? + ) { + dontCounter = false; + } + if (dontCounter) { return false; }