diff --git a/Mage.Sets/src/mage/cards/e/EmergencyPowers.java b/Mage.Sets/src/mage/cards/e/EmergencyPowers.java index 652aaaf58e..e2495e3607 100644 --- a/Mage.Sets/src/mage/cards/e/EmergencyPowers.java +++ b/Mage.Sets/src/mage/cards/e/EmergencyPowers.java @@ -1,7 +1,8 @@ package mage.cards.e; +import mage.abilities.Ability; import mage.abilities.condition.common.AddendumCondition; -import mage.abilities.decorator.ConditionalOneShotEffect; +import mage.abilities.effects.OneShotEffect; import mage.abilities.effects.common.DrawCardAllEffect; import mage.abilities.effects.common.ExileSpellEffect; import mage.abilities.effects.common.PutCardFromHandOntoBattlefieldEffect; @@ -10,8 +11,10 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.ComparisonType; +import mage.constants.Outcome; import mage.filter.common.FilterPermanentCard; import mage.filter.predicate.mageobject.ConvertedManaCostPredicate; +import mage.game.Game; import java.util.UUID; @@ -20,30 +23,15 @@ import java.util.UUID; */ public final class EmergencyPowers extends CardImpl { - public static final FilterPermanentCard filter - = new FilterPermanentCard("a permanent card with converted mana cost 7 or less"); - - static { - filter.add(new ConvertedManaCostPredicate(ComparisonType.FEWER_THAN, 8)); - } - public EmergencyPowers(UUID ownerId, CardSetInfo setInfo) { super(ownerId, setInfo, new CardType[]{CardType.INSTANT}, "{5}{W}{U}"); // Each player shuffles their hand and graveyard into their library, then draws seven cards. Exile Emergency Powers. this.getSpellAbility().addEffect(new ShuffleHandGraveyardAllEffect()); this.getSpellAbility().addEffect(new DrawCardAllEffect(7).setText(", then draws seven cards")); - this.getSpellAbility().addEffect(ExileSpellEffect.getInstance()); // Addendum — If you cast this spell during your main phase, you may put a permanent card with converted mana cost 7 or less from your hand onto the battlefield. - this.getSpellAbility().addEffect(new ConditionalOneShotEffect( - new PutCardFromHandOntoBattlefieldEffect(filter), - AddendumCondition.instance, - "
Addendum — " + - "If you cast this spell during your main phase, " + - "you may put a permanent card with converted mana cost 7 or less " + - "from your hand onto the battlefield." - )); + this.getSpellAbility().addEffect(new EmergencyPowersEffect()); } private EmergencyPowers(final EmergencyPowers card) { @@ -55,4 +43,37 @@ public final class EmergencyPowers extends CardImpl { return new EmergencyPowers(this); } } + +class EmergencyPowersEffect extends OneShotEffect { + + public static final FilterPermanentCard filter + = new FilterPermanentCard("a permanent card with converted mana cost 7 or less"); + + static { + filter.add(new ConvertedManaCostPredicate(ComparisonType.FEWER_THAN, 8)); + } + + EmergencyPowersEffect() { + super(Outcome.Benefit); + staticText = "Exile {this}.
Addendum — If you cast this spell during your main phase, " + + "you may put a permanent card with converted mana cost 7 or less from your hand onto the battlefield."; + } + + private EmergencyPowersEffect(final EmergencyPowersEffect effect) { + super(effect); + } + + @Override + public EmergencyPowersEffect copy() { + return new EmergencyPowersEffect(this); + } + + @Override + public boolean apply(Game game, Ability source) { + if (AddendumCondition.instance.apply(game, source)) { + new PutCardFromHandOntoBattlefieldEffect(filter).apply(game, source); + } + return ExileSpellEffect.getInstance().apply(game, source); + } +} // I am the senate!