diff --git a/Mage.Sets/src/mage/cards/a/ArmageddonClock.java b/Mage.Sets/src/mage/cards/a/ArmageddonClock.java index 5f842b17d20..546f882d775 100644 --- a/Mage.Sets/src/mage/cards/a/ArmageddonClock.java +++ b/Mage.Sets/src/mage/cards/a/ArmageddonClock.java @@ -12,7 +12,10 @@ import mage.abilities.triggers.BeginningOfDrawTriggeredAbility; import mage.abilities.triggers.BeginningOfUpkeepTriggeredAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.constants.*; +import mage.constants.CardType; +import mage.constants.Outcome; +import mage.constants.PhaseStep; +import mage.constants.TargetController; import mage.counters.CounterType; import java.util.UUID; @@ -38,9 +41,8 @@ public final class ArmageddonClock extends CardImpl { // {4}: Remove a doom counter from Armageddon Clock. Any player may activate this ability but only during any upkeep step. this.addAbility(new ConditionalActivatedAbility( - Zone.BATTLEFIELD, new RemoveCounterSourceEffect(CounterType.DOOM.createInstance()), new GenericManaCost(4), - condition, "any player may activate this ability but only during any upkeep step" - ).setMayActivate(TargetController.ANY)); + new RemoveCounterSourceEffect(CounterType.DOOM.createInstance()), new GenericManaCost(4), condition + ).withConditionText("any player may activate this ability but only during any upkeep step").setMayActivate(TargetController.ANY)); } private ArmageddonClock(final ArmageddonClock card) { diff --git a/Mage.Sets/src/mage/cards/s/SkarrganHellkite.java b/Mage.Sets/src/mage/cards/s/SkarrganHellkite.java index 44d17c6b30e..6b750b934ad 100644 --- a/Mage.Sets/src/mage/cards/s/SkarrganHellkite.java +++ b/Mage.Sets/src/mage/cards/s/SkarrganHellkite.java @@ -13,7 +13,6 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.SubType; -import mage.constants.Zone; import mage.counters.CounterType; import mage.target.common.TargetAnyTargetAmount; @@ -41,9 +40,8 @@ public final class SkarrganHellkite extends CardImpl { // {3}{R}: Skarrgan Hellkite deals 2 damage divided as you choose among one or two targets. Activate this ability only if Skarrgan Hellkite has a +1/+1 counter on it. Ability ability = new ConditionalActivatedAbility( - Zone.BATTLEFIELD, new DamageMultiEffect(), new ManaCostsImpl<>("{3}{R}"), - condition, "activate only if {this} has a +1/+1 counter on it" - ); + new DamageMultiEffect(), new ManaCostsImpl<>("{3}{R}"), condition + ).withConditionText("activate only if {this} has a +1/+1 counter on it"); ability.addTarget(new TargetAnyTargetAmount(2)); this.addAbility(ability); } diff --git a/Mage/src/main/java/mage/abilities/decorator/ConditionalActivatedAbility.java b/Mage/src/main/java/mage/abilities/decorator/ConditionalActivatedAbility.java index fc6817d26eb..bac401c7206 100644 --- a/Mage/src/main/java/mage/abilities/decorator/ConditionalActivatedAbility.java +++ b/Mage/src/main/java/mage/abilities/decorator/ConditionalActivatedAbility.java @@ -18,27 +18,20 @@ public class ConditionalActivatedAbility extends ActivatedAbilityImpl { private static final Effects emptyEffects = new Effects(); - private final String conditionText; - private boolean showCondition = true; + private String conditionText = null; public ConditionalActivatedAbility(Effect effect, Cost cost, Condition condition) { this(Zone.BATTLEFIELD, effect, cost, condition); } public ConditionalActivatedAbility(Zone zone, Effect effect, Cost cost, Condition condition) { - this(zone, effect, cost, condition, null); - } - - public ConditionalActivatedAbility(Zone zone, Effect effect, Cost cost, Condition condition, String conditionText) { super(zone, effect, cost); this.condition = condition; - this.conditionText = conditionText; } protected ConditionalActivatedAbility(final ConditionalActivatedAbility ability) { super(ability); this.conditionText = ability.conditionText; - this.showCondition = ability.showCondition; } @Override @@ -55,7 +48,11 @@ public class ConditionalActivatedAbility extends ActivatedAbilityImpl { } public ConditionalActivatedAbility hideCondition() { - this.showCondition = false; + return withConditionText(""); + } + + public ConditionalActivatedAbility withConditionText(String conditionText) { + this.conditionText = conditionText; return this; } @@ -68,18 +65,16 @@ public class ConditionalActivatedAbility extends ActivatedAbilityImpl { return super.getRule() + ' ' + CardUtil.getTextWithFirstCharUpperCase(conditionText) + '.'; } StringBuilder sb = new StringBuilder(super.getRule()); - if (showCondition) { - sb.append(" Activate only "); - if (timing == TimingRule.SORCERY) { - sb.append("as a sorcery and only "); - } - String conditionText = condition.toString(); - if (!conditionText.startsWith("during") && !conditionText.startsWith("before") && !conditionText.startsWith("if")) { - sb.append("if "); - } - sb.append(conditionText); - sb.append('.'); + sb.append(" Activate only "); + if (timing == TimingRule.SORCERY) { + sb.append("as a sorcery and only "); } + String conditionText = condition.toString(); + if (!conditionText.startsWith("during") && !conditionText.startsWith("before") && !conditionText.startsWith("if")) { + sb.append("if "); + } + sb.append(conditionText); + sb.append('.'); return sb.toString(); } }