From a10e906ddbb6d270e233c9d93b254961c7f28594 Mon Sep 17 00:00:00 2001 From: Northmoc Date: Thu, 26 May 2022 13:58:59 -0400 Subject: [PATCH] CostTap change keyword check to static check --- forge-game/src/main/java/forge/game/cost/CostTap.java | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/forge-game/src/main/java/forge/game/cost/CostTap.java b/forge-game/src/main/java/forge/game/cost/CostTap.java index 2f57d20589d..bf2d35cef5a 100644 --- a/forge-game/src/main/java/forge/game/cost/CostTap.java +++ b/forge-game/src/main/java/forge/game/cost/CostTap.java @@ -20,6 +20,7 @@ package forge.game.cost; import forge.game.card.Card; import forge.game.player.Player; import forge.game.spellability.SpellAbility; +import forge.game.staticability.StaticAbilityActivateAbilityAsIfHaste; /** * The Class CostTap. @@ -61,7 +62,7 @@ public class CostTap extends CostPart { @Override public final boolean canPay(final SpellAbility ability, final Player payer, final boolean effect) { final Card source = ability.getHostCard(); - return source.isUntapped() && (!source.isSick() || source.hasKeyword("CARDNAME may activate abilities as though it has haste.")); + return source.isUntapped() && !isAbilitySick(source); } @Override @@ -74,4 +75,10 @@ public class CostTap extends CostPart { return visitor.visit(this); } + public boolean isAbilitySick(final Card source) { + if (!source.isSick()) { + return false; + } + return !StaticAbilityActivateAbilityAsIfHaste.canActivate(source); + } }