diff --git a/src/main/java/forge/card/staticability/StaticAbility.java b/src/main/java/forge/card/staticability/StaticAbility.java index 630862a0028..43e0275193c 100644 --- a/src/main/java/forge/card/staticability/StaticAbility.java +++ b/src/main/java/forge/card/staticability/StaticAbility.java @@ -440,37 +440,18 @@ public class StaticAbility { return false; } - /** - * Apply ability. - * - * @param mode - * the mode - * @param card - * the card - * @param target - * the target - * @return true, if successful - */ - public final Cost getCostAbility(final String mode, final Card card, final GameEntity target) { - - // don't apply the ability if it hasn't got the right mode - if (!this.params.get("Mode").equals(mode)) { + public final Cost getAttackCost(final Card attacker, final GameEntity target) { + if (this.isSuppressed() || !params.get("Mode").equals("CantAttackUnless") || !this.checkConditions()) { return null; } + return StaticAbilityCantAttackBlock.getAttackCost(this, attacker, target); + } - if (this.isSuppressed() || !this.checkConditions()) { + public final Cost getBlockCost(final Card blocker, final Card attacker) { + if (this.isSuppressed() || !params.get("Mode").equals("CantBlockUnless") || !this.checkConditions()) { return null; } - - if (mode.equals("CantAttackUnless")) { - return StaticAbilityCantAttackBlock.applyCantAttackUnlessAbility(this, card, target); - } - - if (mode.equals("CantBlockUnless")) { - return StaticAbilityCantAttackBlock.applyCantBlockUnlessAbility(this, card, target); - } - - return null; + return StaticAbilityCantAttackBlock.getBlockCost(this, blocker, attacker); } /** diff --git a/src/main/java/forge/card/staticability/StaticAbilityCantAttackBlock.java b/src/main/java/forge/card/staticability/StaticAbilityCantAttackBlock.java index 23fa6de1fda..ad1abb54c45 100644 --- a/src/main/java/forge/card/staticability/StaticAbilityCantAttackBlock.java +++ b/src/main/java/forge/card/staticability/StaticAbilityCantAttackBlock.java @@ -64,7 +64,7 @@ public class StaticAbilityCantAttackBlock { * the card * @return a Cost */ - public static Cost applyCantAttackUnlessAbility(final StaticAbility stAb, final Card card, final GameEntity target) { + public static Cost getAttackCost(final StaticAbility stAb, final Card card, final GameEntity target) { final HashMap params = stAb.getMapParams(); final Card hostCard = stAb.getHostCard(); @@ -100,7 +100,7 @@ public class StaticAbilityCantAttackBlock { * the card * @return a Cost */ - public static Cost applyCantBlockUnlessAbility(final StaticAbility stAb, final Card blocker, final GameEntity attacker) { + public static Cost getBlockCost(final StaticAbility stAb, final Card blocker, final GameEntity attacker) { final HashMap params = stAb.getMapParams(); final Card hostCard = stAb.getHostCard(); diff --git a/src/main/java/forge/game/phase/CombatUtil.java b/src/main/java/forge/game/phase/CombatUtil.java index 5f5214db189..07e2d497f02 100644 --- a/src/main/java/forge/game/phase/CombatUtil.java +++ b/src/main/java/forge/game/phase/CombatUtil.java @@ -1131,7 +1131,7 @@ public class CombatUtil { for (Card card : game.getCardsIn(ZoneType.Battlefield)) { final ArrayList staticAbilities = card.getStaticAbilities(); for (final StaticAbility stAb : staticAbilities) { - Cost additionalCost = stAb.getCostAbility("CantAttackUnless", c, game.getCombat().getDefenderByAttacker(c)); + Cost additionalCost = stAb.getAttackCost(c, game.getCombat().getDefenderByAttacker(c)); if ( null != additionalCost ) attackCost.add(additionalCost); } diff --git a/src/main/java/forge/game/phase/PhaseUtil.java b/src/main/java/forge/game/phase/PhaseUtil.java index cca08a8747c..9c8cc04d8f8 100644 --- a/src/main/java/forge/game/phase/PhaseUtil.java +++ b/src/main/java/forge/game/phase/PhaseUtil.java @@ -218,7 +218,7 @@ public class PhaseUtil { for (Card card : game.getCardsIn(ZoneType.Battlefield)) { final ArrayList staticAbilities = card.getStaticAbilities(); for (final StaticAbility stAb : staticAbilities) { - Cost c1 = stAb.getCostAbility("CantBlockUnless", blocker, attacker); + Cost c1 = stAb.getBlockCost(blocker, attacker); if ( c1 != null ) blockCost.add(c1); }