From 213564f8cd484f02275375c11299db99ad85f427 Mon Sep 17 00:00:00 2001 From: Evan Kranzler Date: Sat, 17 Apr 2021 18:47:45 -0400 Subject: [PATCH] changed ExileSpellEffect from being singleton --- Mage.Sets/src/mage/cards/a/AllHallowsEve.java | 2 +- Mage.Sets/src/mage/cards/a/AllSunsDawn.java | 2 +- .../src/mage/cards/a/AlrundsEpiphany.java | 2 +- Mage.Sets/src/mage/cards/a/ArcBlade.java | 2 +- Mage.Sets/src/mage/cards/b/BondOfInsight.java | 2 +- Mage.Sets/src/mage/cards/b/BurningWish.java | 2 +- .../src/mage/cards/c/ChronomanticEscape.java | 2 +- Mage.Sets/src/mage/cards/c/CunningWish.java | 2 +- .../src/mage/cards/c/CyclicalEvolution.java | 2 +- Mage.Sets/src/mage/cards/d/DeathWish.java | 2 +- .../src/mage/cards/d/DeliverUntoEvil.java | 2 +- .../mage/cards/d/DraconicIntervention.java | 2 +- .../mage/cards/e/EcologicalAppreciation.java | 2 +- .../src/mage/cards/e/EldritchEvolution.java | 2 +- .../src/mage/cards/e/EmergencyPowers.java | 2 +- .../src/mage/cards/e/EmergentUltimatum.java | 2 +- .../mage/cards/e/ExperimentalOverload.java | 2 +- Mage.Sets/src/mage/cards/e/Expropriate.java | 2 +- .../src/mage/cards/f/FesteringMarch.java | 2 +- .../src/mage/cards/f/FinaleOfRevelation.java | 2 +- .../mage/cards/f/FlamescrollCelebrant.java | 2 +- .../src/mage/cards/f/FloodOfRecollection.java | 2 +- Mage.Sets/src/mage/cards/g/GamePlan.java | 2 +- .../src/mage/cards/g/GenesisUltimatum.java | 2 +- .../src/mage/cards/g/GlitteringWish.java | 2 +- Mage.Sets/src/mage/cards/g/GoldenWish.java | 2 +- .../src/mage/cards/h/HarnessInfinity.java | 2 +- .../src/mage/cards/h/HealingTechnique.java | 2 +- .../src/mage/cards/i/IllGottenGains.java | 2 +- .../src/mage/cards/i/InspiringRefrain.java | 2 +- .../mage/cards/k/KarnsTemporalSundering.java | 2 +- Mage.Sets/src/mage/cards/l/LivingWish.java | 2 +- .../src/mage/cards/m/MizzixsMastery.java | 4 +-- .../src/mage/cards/m/MnemonicBetrayal.java | 2 +- .../src/mage/cards/m/MnemonicDeluge.java | 2 +- .../mage/cards/n/NecromanticSelection.java | 2 +- .../src/mage/cards/n/NostalgicDreams.java | 2 +- Mage.Sets/src/mage/cards/o/OnceAndFuture.java | 6 ++-- .../src/mage/cards/o/OnceMoreWithFeeling.java | 2 +- .../src/mage/cards/p/PartTheWaterveil.java | 2 +- .../src/mage/cards/p/PestilentCauldron.java | 2 +- .../src/mage/cards/p/PraetorsCounsel.java | 2 +- .../src/mage/cards/p/PullFromTheDeep.java | 2 +- .../src/mage/cards/r/RallyTheAncestors.java | 2 +- Mage.Sets/src/mage/cards/r/RealityStrobe.java | 2 +- Mage.Sets/src/mage/cards/r/ReapThePast.java | 2 +- Mage.Sets/src/mage/cards/r/Recall.java | 2 +- .../src/mage/cards/r/ReconstructHistory.java | 2 +- .../mage/cards/r/RescueFromTheUnderworld.java | 2 +- Mage.Sets/src/mage/cards/r/Restock.java | 2 +- .../src/mage/cards/r/RevivalExperiment.java | 2 +- .../src/mage/cards/r/RousingRefrain.java | 2 +- .../src/mage/cards/s/SeedsOfRenewal.java | 2 +- Mage.Sets/src/mage/cards/s/Spelltwine.java | 2 +- .../src/mage/cards/s/StunningReversal.java | 2 +- .../src/mage/cards/t/TeferisProtection.java | 2 +- .../src/mage/cards/t/TemporalMastery.java | 2 +- .../src/mage/cards/t/TemporalTrespass.java | 2 +- .../src/mage/cards/t/TheGreatAurora.java | 2 +- Mage.Sets/src/mage/cards/t/TimeReversal.java | 2 +- Mage.Sets/src/mage/cards/t/TimeSpiral.java | 2 +- Mage.Sets/src/mage/cards/t/TreasuredFind.java | 2 +- .../src/mage/cards/v/VengefulRebirth.java | 2 +- Mage.Sets/src/mage/cards/v/VividRevival.java | 2 +- .../src/mage/cards/v/VolcanicVision.java | 2 +- Mage.Sets/src/mage/cards/w/WildestDreams.java | 2 +- .../src/mage/cards/w/WoodlandGuidance.java | 2 +- Mage.Sets/src/mage/cards/w/WorstFears.java | 2 +- .../mage/cards/y/YawgmothsVileOffering.java | 2 +- .../effects/common/ExileSpellEffect.java | 28 ++++++------------- 70 files changed, 81 insertions(+), 91 deletions(-) diff --git a/Mage.Sets/src/mage/cards/a/AllHallowsEve.java b/Mage.Sets/src/mage/cards/a/AllHallowsEve.java index a67d154e1a..825b8ec750 100644 --- a/Mage.Sets/src/mage/cards/a/AllHallowsEve.java +++ b/Mage.Sets/src/mage/cards/a/AllHallowsEve.java @@ -31,7 +31,7 @@ public final class AllHallowsEve extends CardImpl { super(ownerId, setInfo, new CardType[]{CardType.SORCERY}, "{2}{B}{B}"); // Exile All Hallow's Eve with two scream counters on it. - this.getSpellAbility().addEffect(ExileSpellEffect.getInstance()); + this.getSpellAbility().addEffect(new ExileSpellEffect()); this.getSpellAbility().addEffect(new AddCountersSourceEffect( CounterType.SCREAM.createInstance(), StaticValue.get(2), true, true ).setText("with 2 scream counters on it")); diff --git a/Mage.Sets/src/mage/cards/a/AllSunsDawn.java b/Mage.Sets/src/mage/cards/a/AllSunsDawn.java index 2a882a21f7..d714cf51f8 100644 --- a/Mage.Sets/src/mage/cards/a/AllSunsDawn.java +++ b/Mage.Sets/src/mage/cards/a/AllSunsDawn.java @@ -48,7 +48,7 @@ public final class AllSunsDawn extends CardImpl { this.getSpellAbility().addTarget(new TargetCardInYourGraveyard(0, 1, filterBlack)); this.getSpellAbility().addTarget(new TargetCardInYourGraveyard(0, 1, filterWhite)); // Exile All Suns' Dawn. - this.getSpellAbility().addEffect(ExileSpellEffect.getInstance()); + this.getSpellAbility().addEffect(new ExileSpellEffect()); } private AllSunsDawn(final AllSunsDawn card) { diff --git a/Mage.Sets/src/mage/cards/a/AlrundsEpiphany.java b/Mage.Sets/src/mage/cards/a/AlrundsEpiphany.java index 8e582f23c7..9a3b9216d5 100644 --- a/Mage.Sets/src/mage/cards/a/AlrundsEpiphany.java +++ b/Mage.Sets/src/mage/cards/a/AlrundsEpiphany.java @@ -22,7 +22,7 @@ public final class AlrundsEpiphany extends CardImpl { // Create two 1/1 blue Bird creature tokens with flying. Take an extra turn after this one. Exile Alrund's Epiphany. this.getSpellAbility().addEffect(new CreateTokenEffect(new OwlToken(), 2)); this.getSpellAbility().addEffect(new AddExtraTurnControllerEffect()); - this.getSpellAbility().addEffect(ExileSpellEffect.getInstance()); + this.getSpellAbility().addEffect(new ExileSpellEffect()); // Foretell {4}{U}{U} this.addAbility(new ForetellAbility(this, "{4}{U}{U}")); diff --git a/Mage.Sets/src/mage/cards/a/ArcBlade.java b/Mage.Sets/src/mage/cards/a/ArcBlade.java index 283dbb551a..9944aea415 100644 --- a/Mage.Sets/src/mage/cards/a/ArcBlade.java +++ b/Mage.Sets/src/mage/cards/a/ArcBlade.java @@ -27,7 +27,7 @@ public final class ArcBlade extends CardImpl { // Arc Blade deals 2 damage to any target. this.getSpellAbility().addEffect(new DamageTargetEffect(2)); // Exile Arc Blade - this.getSpellAbility().addEffect(ExileSpellEffect.getInstance()); + this.getSpellAbility().addEffect(new ExileSpellEffect()); // with three time counters on it. Effect effect = new AddCountersSourceEffect(CounterType.TIME.createInstance(), StaticValue.get(3), false, true); effect.setText("with three time counters on it"); diff --git a/Mage.Sets/src/mage/cards/b/BondOfInsight.java b/Mage.Sets/src/mage/cards/b/BondOfInsight.java index fbec825de1..960fe72b09 100644 --- a/Mage.Sets/src/mage/cards/b/BondOfInsight.java +++ b/Mage.Sets/src/mage/cards/b/BondOfInsight.java @@ -27,7 +27,7 @@ public final class BondOfInsight extends CardImpl { // Each player puts the top four cards of their library into their graveyard. Return up to two instant and/or sorcery cards from your graveyard to your hand. Exile Bond of Insight. this.getSpellAbility().addEffect(new BondOfInsightEffect()); - this.getSpellAbility().addEffect(ExileSpellEffect.getInstance()); + this.getSpellAbility().addEffect(new ExileSpellEffect()); } private BondOfInsight(final BondOfInsight card) { diff --git a/Mage.Sets/src/mage/cards/b/BurningWish.java b/Mage.Sets/src/mage/cards/b/BurningWish.java index 9be224e305..1d2bf6d72b 100644 --- a/Mage.Sets/src/mage/cards/b/BurningWish.java +++ b/Mage.Sets/src/mage/cards/b/BurningWish.java @@ -28,7 +28,7 @@ public final class BurningWish extends CardImpl { this.getSpellAbility().addEffect(new WishEffect(filter)); // Exile Burning Wish. - this.getSpellAbility().addEffect(ExileSpellEffect.getInstance()); + this.getSpellAbility().addEffect(new ExileSpellEffect()); } private BurningWish(final BurningWish card) { diff --git a/Mage.Sets/src/mage/cards/c/ChronomanticEscape.java b/Mage.Sets/src/mage/cards/c/ChronomanticEscape.java index 9bef667ce3..a6057b39bc 100644 --- a/Mage.Sets/src/mage/cards/c/ChronomanticEscape.java +++ b/Mage.Sets/src/mage/cards/c/ChronomanticEscape.java @@ -28,7 +28,7 @@ public final class ChronomanticEscape extends CardImpl { // Until your next turn, creatures can't attack you. Exile Chronomantic Escape with three time counters on it. getSpellAbility().addEffect(new CantAttackYouAllEffect(Duration.UntilYourNextTurn, StaticFilters.FILTER_PERMANENT_CREATURES)); - getSpellAbility().addEffect(ExileSpellEffect.getInstance()); + getSpellAbility().addEffect(new ExileSpellEffect()); Effect effect = new AddCountersSourceEffect(CounterType.TIME.createInstance(), StaticValue.get(3), true, true); effect.setText("with 3 time counters on it"); getSpellAbility().addEffect(effect); diff --git a/Mage.Sets/src/mage/cards/c/CunningWish.java b/Mage.Sets/src/mage/cards/c/CunningWish.java index cae07012f3..cc61a71f38 100644 --- a/Mage.Sets/src/mage/cards/c/CunningWish.java +++ b/Mage.Sets/src/mage/cards/c/CunningWish.java @@ -28,7 +28,7 @@ public final class CunningWish extends CardImpl { this.getSpellAbility().addEffect(new WishEffect(filter)); // Exile Cunning Wish. - this.getSpellAbility().addEffect(ExileSpellEffect.getInstance()); + this.getSpellAbility().addEffect(new ExileSpellEffect()); } private CunningWish(final CunningWish card) { diff --git a/Mage.Sets/src/mage/cards/c/CyclicalEvolution.java b/Mage.Sets/src/mage/cards/c/CyclicalEvolution.java index 081fbb74a8..b6d3c453d1 100644 --- a/Mage.Sets/src/mage/cards/c/CyclicalEvolution.java +++ b/Mage.Sets/src/mage/cards/c/CyclicalEvolution.java @@ -28,7 +28,7 @@ public final class CyclicalEvolution extends CardImpl { // Target creature gets +3/+3 until end of turn. Exile Cyclical Evolution with three time counters on it. getSpellAbility().addEffect(new BoostTargetEffect(3, 3, Duration.EndOfTurn)); getSpellAbility().addTarget(new TargetCreaturePermanent()); - getSpellAbility().addEffect(ExileSpellEffect.getInstance()); + getSpellAbility().addEffect(new ExileSpellEffect()); Effect effect = new AddCountersSourceEffect(CounterType.TIME.createInstance(), StaticValue.get(3), true, true); effect.setText("with 3 time counters on it"); getSpellAbility().addEffect(effect); diff --git a/Mage.Sets/src/mage/cards/d/DeathWish.java b/Mage.Sets/src/mage/cards/d/DeathWish.java index 07476de011..6b133b73fa 100644 --- a/Mage.Sets/src/mage/cards/d/DeathWish.java +++ b/Mage.Sets/src/mage/cards/d/DeathWish.java @@ -25,7 +25,7 @@ public final class DeathWish extends CardImpl { this.getSpellAbility().addEffect(new LoseHalfLifeEffect()); // Exile Death Wish. - this.getSpellAbility().addEffect(ExileSpellEffect.getInstance()); + this.getSpellAbility().addEffect(new ExileSpellEffect()); } private DeathWish(final DeathWish card) { diff --git a/Mage.Sets/src/mage/cards/d/DeliverUntoEvil.java b/Mage.Sets/src/mage/cards/d/DeliverUntoEvil.java index dd8cf7be8b..5f1a212885 100644 --- a/Mage.Sets/src/mage/cards/d/DeliverUntoEvil.java +++ b/Mage.Sets/src/mage/cards/d/DeliverUntoEvil.java @@ -36,7 +36,7 @@ public final class DeliverUntoEvil extends CardImpl { this.getSpellAbility().addTarget(new TargetCardInYourGraveyard(0, 4)); // Exile Deliver Unto Evil. - this.getSpellAbility().addEffect(ExileSpellEffect.getInstance()); + this.getSpellAbility().addEffect(new ExileSpellEffect()); } private DeliverUntoEvil(final DeliverUntoEvil card) { diff --git a/Mage.Sets/src/mage/cards/d/DraconicIntervention.java b/Mage.Sets/src/mage/cards/d/DraconicIntervention.java index 59b53d1184..eb91ebc9e7 100644 --- a/Mage.Sets/src/mage/cards/d/DraconicIntervention.java +++ b/Mage.Sets/src/mage/cards/d/DraconicIntervention.java @@ -50,7 +50,7 @@ public final class DraconicIntervention extends CardImpl { this.getSpellAbility().addWatcher(new DamagedByWatcher(false)); // Exile Draconic Intervention. - this.getSpellAbility().addEffect(ExileSpellEffect.getInstance()); + this.getSpellAbility().addEffect(new ExileSpellEffect()); } private DraconicIntervention(final DraconicIntervention card) { diff --git a/Mage.Sets/src/mage/cards/e/EcologicalAppreciation.java b/Mage.Sets/src/mage/cards/e/EcologicalAppreciation.java index 89d5224a4b..51900dabba 100644 --- a/Mage.Sets/src/mage/cards/e/EcologicalAppreciation.java +++ b/Mage.Sets/src/mage/cards/e/EcologicalAppreciation.java @@ -38,7 +38,7 @@ public final class EcologicalAppreciation extends CardImpl { // Search your library and graveyard for up to four creature cards with different names that each have mana value X or less and reveal them. An opponent chooses two of those cards. Shuffle the chosen cards into your library and put the rest onto the battlefield. Exile Ecological Appreciation. this.getSpellAbility().addEffect(new EcologicalAppreciationEffect()); - this.getSpellAbility().addEffect(ExileSpellEffect.getInstance()); + this.getSpellAbility().addEffect(new ExileSpellEffect()); } private EcologicalAppreciation(final EcologicalAppreciation card) { diff --git a/Mage.Sets/src/mage/cards/e/EldritchEvolution.java b/Mage.Sets/src/mage/cards/e/EldritchEvolution.java index 96e1afce4a..0e0d0aac78 100644 --- a/Mage.Sets/src/mage/cards/e/EldritchEvolution.java +++ b/Mage.Sets/src/mage/cards/e/EldritchEvolution.java @@ -38,7 +38,7 @@ public final class EldritchEvolution extends CardImpl { // Search your library for a creature card with converted mana cost X or less, where X is 2 plus the sacrificed creature's converted mana cost. // Put that card onto the battlefield, then shuffle your library. Exile Eldritch Evolution. this.getSpellAbility().addEffect(new EldritchEvolutionEffect()); - this.getSpellAbility().addEffect(ExileSpellEffect.getInstance()); + this.getSpellAbility().addEffect(new ExileSpellEffect()); } private EldritchEvolution(final EldritchEvolution card) { diff --git a/Mage.Sets/src/mage/cards/e/EmergencyPowers.java b/Mage.Sets/src/mage/cards/e/EmergencyPowers.java index 4e081610b3..2ccf92d80e 100644 --- a/Mage.Sets/src/mage/cards/e/EmergencyPowers.java +++ b/Mage.Sets/src/mage/cards/e/EmergencyPowers.java @@ -73,7 +73,7 @@ class EmergencyPowersEffect extends OneShotEffect { if (AddendumCondition.instance.apply(game, source)) { new PutCardFromHandOntoBattlefieldEffect(filter).apply(game, source); } - return ExileSpellEffect.getInstance().apply(game, source); + return new ExileSpellEffect().apply(game, source); } } // I am the senate! diff --git a/Mage.Sets/src/mage/cards/e/EmergentUltimatum.java b/Mage.Sets/src/mage/cards/e/EmergentUltimatum.java index f971b7538e..98a21bd5d9 100644 --- a/Mage.Sets/src/mage/cards/e/EmergentUltimatum.java +++ b/Mage.Sets/src/mage/cards/e/EmergentUltimatum.java @@ -30,7 +30,7 @@ public final class EmergentUltimatum extends CardImpl { // Search your library for up to three monocolored cards with different names and exile them. An opponent chooses one of those cards. Shuffle that card into your library. You may cast the other cards without paying their mana costs. Exile Emergent Ultimatum. this.getSpellAbility().addEffect(new EmergentUltimatumEffect()); - this.getSpellAbility().addEffect(ExileSpellEffect.getInstance()); + this.getSpellAbility().addEffect(new ExileSpellEffect()); } private EmergentUltimatum(final EmergentUltimatum card) { diff --git a/Mage.Sets/src/mage/cards/e/ExperimentalOverload.java b/Mage.Sets/src/mage/cards/e/ExperimentalOverload.java index 76321ab38a..b9e69b9f42 100644 --- a/Mage.Sets/src/mage/cards/e/ExperimentalOverload.java +++ b/Mage.Sets/src/mage/cards/e/ExperimentalOverload.java @@ -27,7 +27,7 @@ public final class ExperimentalOverload extends CardImpl { // Create an X/X blue and red Weird creature token, where X is the number of instant and sorcery cards in your graveyard. Then you may return an instant or sorcery card from your graveyard to your hand. Exile Experimental Overload. this.getSpellAbility().addEffect(new ExperimentalOverloadEffect()); - this.getSpellAbility().addEffect(ExileSpellEffect.getInstance()); + this.getSpellAbility().addEffect(new ExileSpellEffect()); } private ExperimentalOverload(final ExperimentalOverload card) { diff --git a/Mage.Sets/src/mage/cards/e/Expropriate.java b/Mage.Sets/src/mage/cards/e/Expropriate.java index ef0bd37281..04aa42b4f3 100644 --- a/Mage.Sets/src/mage/cards/e/Expropriate.java +++ b/Mage.Sets/src/mage/cards/e/Expropriate.java @@ -35,7 +35,7 @@ public final class Expropriate extends CardImpl { // Council's dilemma — Starting with you, each player votes for time or money. For each time vote, // take an extra turn after this one. For each money vote, choose a permanent owned by the voter and gain control of it. Exile Expropriate this.getSpellAbility().addEffect(new ExpropriateEffect()); - this.getSpellAbility().addEffect(ExileSpellEffect.getInstance()); + this.getSpellAbility().addEffect(new ExileSpellEffect()); } private Expropriate(final Expropriate card) { diff --git a/Mage.Sets/src/mage/cards/f/FesteringMarch.java b/Mage.Sets/src/mage/cards/f/FesteringMarch.java index f758dc6cc6..ccf4b0cb31 100644 --- a/Mage.Sets/src/mage/cards/f/FesteringMarch.java +++ b/Mage.Sets/src/mage/cards/f/FesteringMarch.java @@ -27,7 +27,7 @@ public final class FesteringMarch extends CardImpl { // Creatures your opponents control get -1/-1 until end of turn. this.getSpellAbility().addEffect(new BoostOpponentsEffect(-1, -1, Duration.EndOfTurn)); // Exile Festering March - this.getSpellAbility().addEffect(ExileSpellEffect.getInstance()); + this.getSpellAbility().addEffect(new ExileSpellEffect()); // with three time counters on it. Effect effect = new AddCountersSourceEffect(CounterType.TIME.createInstance(), StaticValue.get(3), false, true); effect.setText("with 3 time counters on it"); diff --git a/Mage.Sets/src/mage/cards/f/FinaleOfRevelation.java b/Mage.Sets/src/mage/cards/f/FinaleOfRevelation.java index 30fb5dc41e..2c4da25a15 100644 --- a/Mage.Sets/src/mage/cards/f/FinaleOfRevelation.java +++ b/Mage.Sets/src/mage/cards/f/FinaleOfRevelation.java @@ -27,7 +27,7 @@ public final class FinaleOfRevelation extends CardImpl { this.getSpellAbility().addEffect(new FinaleOfRevelationEffect()); // Exile Finale of Revelation. - this.getSpellAbility().addEffect(ExileSpellEffect.getInstance()); + this.getSpellAbility().addEffect(new ExileSpellEffect()); } private FinaleOfRevelation(final FinaleOfRevelation card) { diff --git a/Mage.Sets/src/mage/cards/f/FlamescrollCelebrant.java b/Mage.Sets/src/mage/cards/f/FlamescrollCelebrant.java index a88db82775..19456c56be 100644 --- a/Mage.Sets/src/mage/cards/f/FlamescrollCelebrant.java +++ b/Mage.Sets/src/mage/cards/f/FlamescrollCelebrant.java @@ -58,7 +58,7 @@ public final class FlamescrollCelebrant extends ModalDoubleFacesCard { this.getRightHalfCard().getSpellAbility().addEffect(new RevelInSilenceEffect()); // Exile Revel in Silence. - this.getRightHalfCard().getSpellAbility().addEffect(ExileSpellEffect.getInstance()); + this.getRightHalfCard().getSpellAbility().addEffect(new ExileSpellEffect()); } private FlamescrollCelebrant(final FlamescrollCelebrant card) { diff --git a/Mage.Sets/src/mage/cards/f/FloodOfRecollection.java b/Mage.Sets/src/mage/cards/f/FloodOfRecollection.java index 5229fde4b4..4e53027695 100644 --- a/Mage.Sets/src/mage/cards/f/FloodOfRecollection.java +++ b/Mage.Sets/src/mage/cards/f/FloodOfRecollection.java @@ -22,7 +22,7 @@ public final class FloodOfRecollection extends CardImpl { // Return target instant or sorcery card from your graveyard to your hand. Exile Flood of Recollection. this.getSpellAbility().addEffect(new ReturnFromGraveyardToHandTargetEffect()); this.getSpellAbility().addTarget(new TargetCardInYourGraveyard(new FilterInstantOrSorceryCard("instant or sorcery card from your graveyard"))); - this.getSpellAbility().addEffect(ExileSpellEffect.getInstance()); + this.getSpellAbility().addEffect(new ExileSpellEffect()); } private FloodOfRecollection(final FloodOfRecollection card) { diff --git a/Mage.Sets/src/mage/cards/g/GamePlan.java b/Mage.Sets/src/mage/cards/g/GamePlan.java index db0532897d..7fc45b72ba 100644 --- a/Mage.Sets/src/mage/cards/g/GamePlan.java +++ b/Mage.Sets/src/mage/cards/g/GamePlan.java @@ -28,7 +28,7 @@ public final class GamePlan extends CardImpl { Effect effect = new DrawCardAllEffect(7); effect.setText(", then draws seven cards"); this.getSpellAbility().addEffect(effect); - this.getSpellAbility().addEffect(ExileSpellEffect.getInstance()); + this.getSpellAbility().addEffect(new ExileSpellEffect()); } private GamePlan(final GamePlan card) { diff --git a/Mage.Sets/src/mage/cards/g/GenesisUltimatum.java b/Mage.Sets/src/mage/cards/g/GenesisUltimatum.java index 129c44bf2a..210cf9f168 100644 --- a/Mage.Sets/src/mage/cards/g/GenesisUltimatum.java +++ b/Mage.Sets/src/mage/cards/g/GenesisUltimatum.java @@ -29,7 +29,7 @@ public final class GenesisUltimatum extends CardImpl { // Look at the top five cards of your library. Put any number of permanent cards from among them onto the battlefield and the rest into your hand. Exile Genesis Ultimatum. this.getSpellAbility().addEffect(new GenesisUltimatumEffect()); - this.getSpellAbility().addEffect(ExileSpellEffect.getInstance()); + this.getSpellAbility().addEffect(new ExileSpellEffect()); } private GenesisUltimatum(final GenesisUltimatum card) { diff --git a/Mage.Sets/src/mage/cards/g/GlitteringWish.java b/Mage.Sets/src/mage/cards/g/GlitteringWish.java index 988147a253..9a68a3525a 100644 --- a/Mage.Sets/src/mage/cards/g/GlitteringWish.java +++ b/Mage.Sets/src/mage/cards/g/GlitteringWish.java @@ -29,7 +29,7 @@ public final class GlitteringWish extends CardImpl { this.getSpellAbility().addEffect(new WishEffect(filter)); // Exile Glittering Wish. - this.getSpellAbility().addEffect(ExileSpellEffect.getInstance()); + this.getSpellAbility().addEffect(new ExileSpellEffect()); } private GlitteringWish(final GlitteringWish card) { diff --git a/Mage.Sets/src/mage/cards/g/GoldenWish.java b/Mage.Sets/src/mage/cards/g/GoldenWish.java index fb516b6b39..276d79134d 100644 --- a/Mage.Sets/src/mage/cards/g/GoldenWish.java +++ b/Mage.Sets/src/mage/cards/g/GoldenWish.java @@ -31,7 +31,7 @@ public final class GoldenWish extends CardImpl { this.getSpellAbility().addEffect(new WishEffect(filter)); // Exile Golden Wish. - this.getSpellAbility().addEffect(ExileSpellEffect.getInstance()); + this.getSpellAbility().addEffect(new ExileSpellEffect()); } private GoldenWish(final GoldenWish card) { diff --git a/Mage.Sets/src/mage/cards/h/HarnessInfinity.java b/Mage.Sets/src/mage/cards/h/HarnessInfinity.java index 55d0712552..d68cb43987 100644 --- a/Mage.Sets/src/mage/cards/h/HarnessInfinity.java +++ b/Mage.Sets/src/mage/cards/h/HarnessInfinity.java @@ -27,7 +27,7 @@ public final class HarnessInfinity extends CardImpl { this.getSpellAbility().addEffect(new HarnessInfinityEffect()); // Exile Harness Infinity. - this.getSpellAbility().addEffect(ExileSpellEffect.getInstance()); + this.getSpellAbility().addEffect(new ExileSpellEffect()); } private HarnessInfinity(final HarnessInfinity card) { diff --git a/Mage.Sets/src/mage/cards/h/HealingTechnique.java b/Mage.Sets/src/mage/cards/h/HealingTechnique.java index 4e88e6b80f..2c7b818065 100644 --- a/Mage.Sets/src/mage/cards/h/HealingTechnique.java +++ b/Mage.Sets/src/mage/cards/h/HealingTechnique.java @@ -30,7 +30,7 @@ public final class HealingTechnique extends CardImpl { // Return target card from your graveyard to your hand. You gain life equal to that card's mana value. Exile Healing Technique. this.getSpellAbility().addEffect(new HealingTechniqueEffect()); - this.getSpellAbility().addEffect(ExileSpellEffect.getInstance()); + this.getSpellAbility().addEffect(new ExileSpellEffect()); this.getSpellAbility().addTarget(new TargetCardInYourGraveyard()); } diff --git a/Mage.Sets/src/mage/cards/i/IllGottenGains.java b/Mage.Sets/src/mage/cards/i/IllGottenGains.java index 8d99828eb5..707325a27c 100644 --- a/Mage.Sets/src/mage/cards/i/IllGottenGains.java +++ b/Mage.Sets/src/mage/cards/i/IllGottenGains.java @@ -28,7 +28,7 @@ public final class IllGottenGains extends CardImpl { super(ownerId,setInfo,new CardType[]{CardType.SORCERY},"{2}{B}{B}"); // Exile Ill-Gotten Gains. - this.getSpellAbility().addEffect(ExileSpellEffect.getInstance()); + this.getSpellAbility().addEffect(new ExileSpellEffect()); // Each player discards their hand, this.getSpellAbility().addEffect(new DiscardHandAllEffect()); diff --git a/Mage.Sets/src/mage/cards/i/InspiringRefrain.java b/Mage.Sets/src/mage/cards/i/InspiringRefrain.java index 19c03f8e0d..e3a5214ef8 100644 --- a/Mage.Sets/src/mage/cards/i/InspiringRefrain.java +++ b/Mage.Sets/src/mage/cards/i/InspiringRefrain.java @@ -23,7 +23,7 @@ public final class InspiringRefrain extends CardImpl { // Draw two cards. Exile Inspiring Refrain with three time counters on it. this.getSpellAbility().addEffect(new DrawCardSourceControllerEffect(1)); - this.getSpellAbility().addEffect(ExileSpellEffect.getInstance()); + this.getSpellAbility().addEffect(new ExileSpellEffect()); this.getSpellAbility().addEffect(new AddCountersSourceEffect( CounterType.TIME.createInstance(), StaticValue.get(3), false, true ).setText("with 3 time counters on it")); diff --git a/Mage.Sets/src/mage/cards/k/KarnsTemporalSundering.java b/Mage.Sets/src/mage/cards/k/KarnsTemporalSundering.java index 5e4bf69457..8b7b254233 100644 --- a/Mage.Sets/src/mage/cards/k/KarnsTemporalSundering.java +++ b/Mage.Sets/src/mage/cards/k/KarnsTemporalSundering.java @@ -33,7 +33,7 @@ public final class KarnsTemporalSundering extends CardImpl { this.getSpellAbility().addEffect(new KarnsTemporalSunderingEffect()); this.getSpellAbility().addTarget(new TargetPlayer()); this.getSpellAbility().addTarget(new TargetNonlandPermanent(0, 1, false)); - this.getSpellAbility().addEffect(ExileSpellEffect.getInstance()); + this.getSpellAbility().addEffect(new ExileSpellEffect()); } private KarnsTemporalSundering(final KarnsTemporalSundering card) { diff --git a/Mage.Sets/src/mage/cards/l/LivingWish.java b/Mage.Sets/src/mage/cards/l/LivingWish.java index cf9bc00910..8302027b29 100644 --- a/Mage.Sets/src/mage/cards/l/LivingWish.java +++ b/Mage.Sets/src/mage/cards/l/LivingWish.java @@ -31,7 +31,7 @@ public final class LivingWish extends CardImpl { this.getSpellAbility().addEffect(new WishEffect(filter)); // Exile Living Wish. - this.getSpellAbility().addEffect(ExileSpellEffect.getInstance()); + this.getSpellAbility().addEffect(new ExileSpellEffect()); } private LivingWish(final LivingWish card) { diff --git a/Mage.Sets/src/mage/cards/m/MizzixsMastery.java b/Mage.Sets/src/mage/cards/m/MizzixsMastery.java index 1bde17c138..9dd993e158 100644 --- a/Mage.Sets/src/mage/cards/m/MizzixsMastery.java +++ b/Mage.Sets/src/mage/cards/m/MizzixsMastery.java @@ -34,12 +34,12 @@ public final class MizzixsMastery extends CardImpl { this.getSpellAbility().addEffect(new MizzixsMasteryEffect()); this.getSpellAbility().addTarget(new TargetCardInYourGraveyard( new FilterInstantOrSorceryCard("card that's an instant or sorcery from your graveyard"))); - this.getSpellAbility().addEffect(ExileSpellEffect.getInstance()); + this.getSpellAbility().addEffect(new ExileSpellEffect()); // Overload {5}{R}{R}{R} Ability ability = new OverloadAbility(this, new MizzixsMasteryOverloadEffect(), new ManaCostsImpl("{5}{R}{R}{R}")); - ability.addEffect(ExileSpellEffect.getInstance()); + ability.addEffect(new ExileSpellEffect()); this.addAbility(ability); } diff --git a/Mage.Sets/src/mage/cards/m/MnemonicBetrayal.java b/Mage.Sets/src/mage/cards/m/MnemonicBetrayal.java index ad87e2ded6..c2333bd1a2 100644 --- a/Mage.Sets/src/mage/cards/m/MnemonicBetrayal.java +++ b/Mage.Sets/src/mage/cards/m/MnemonicBetrayal.java @@ -32,7 +32,7 @@ public final class MnemonicBetrayal extends CardImpl { this.getSpellAbility().addEffect(new MnemonicBetrayalExileEffect()); // Exile Mnemonic Betrayal. - this.getSpellAbility().addEffect(ExileSpellEffect.getInstance()); + this.getSpellAbility().addEffect(new ExileSpellEffect()); } private MnemonicBetrayal(final MnemonicBetrayal card) { diff --git a/Mage.Sets/src/mage/cards/m/MnemonicDeluge.java b/Mage.Sets/src/mage/cards/m/MnemonicDeluge.java index c66bd0d9dc..cc21aed30a 100644 --- a/Mage.Sets/src/mage/cards/m/MnemonicDeluge.java +++ b/Mage.Sets/src/mage/cards/m/MnemonicDeluge.java @@ -26,7 +26,7 @@ public final class MnemonicDeluge extends CardImpl { // Exile target instant or sorcery card from a graveyard. Copy that card three times. You may cast the copies without paying their mana costs. Exile Mnemonic Deluge. this.getSpellAbility().addEffect(new MnemonicDelugeEffect()); - this.getSpellAbility().addEffect(ExileSpellEffect.getInstance()); + this.getSpellAbility().addEffect(new ExileSpellEffect()); this.getSpellAbility().addTarget(new TargetCardInGraveyard(StaticFilters.FILTER_CARD_INSTANT_OR_SORCERY)); } diff --git a/Mage.Sets/src/mage/cards/n/NecromanticSelection.java b/Mage.Sets/src/mage/cards/n/NecromanticSelection.java index c8592e14ca..5b7e42c5b0 100644 --- a/Mage.Sets/src/mage/cards/n/NecromanticSelection.java +++ b/Mage.Sets/src/mage/cards/n/NecromanticSelection.java @@ -39,7 +39,7 @@ public final class NecromanticSelection extends CardImpl { // Destroy all creatures, then return a creature card put into a graveyard this way to the battlefield under your control. It's a black Zombie in addition to its other colors and types. Exile Necromantic Selection. this.getSpellAbility().addEffect(new NecromanticSelectionEffect()); - this.getSpellAbility().addEffect(ExileSpellEffect.getInstance()); + this.getSpellAbility().addEffect(new ExileSpellEffect()); } diff --git a/Mage.Sets/src/mage/cards/n/NostalgicDreams.java b/Mage.Sets/src/mage/cards/n/NostalgicDreams.java index 71d08bb687..6d9aeed918 100644 --- a/Mage.Sets/src/mage/cards/n/NostalgicDreams.java +++ b/Mage.Sets/src/mage/cards/n/NostalgicDreams.java @@ -35,7 +35,7 @@ public final class NostalgicDreams extends CardImpl { this.getSpellAbility().setTargetAdjuster(NostalgicDreamsAdjuster.instance); // Exile Nostalgic Dreams. - this.getSpellAbility().addEffect(ExileSpellEffect.getInstance()); + this.getSpellAbility().addEffect(new ExileSpellEffect()); } private NostalgicDreams(final NostalgicDreams card) { diff --git a/Mage.Sets/src/mage/cards/o/OnceAndFuture.java b/Mage.Sets/src/mage/cards/o/OnceAndFuture.java index f1fd695ac4..792d329a4a 100644 --- a/Mage.Sets/src/mage/cards/o/OnceAndFuture.java +++ b/Mage.Sets/src/mage/cards/o/OnceAndFuture.java @@ -85,17 +85,17 @@ class OnceAndFutureEffect extends OneShotEffect { } if (card2 == null) { player.putInHand(card1, game); - return ExileSpellEffect.getInstance().apply(game, source); + return new ExileSpellEffect().apply(game, source); } if (AdamantCondition.GREEN.apply(game, source)) { Cards cards = new CardsImpl(); cards.add(card1); cards.add(card2); player.moveCards(cards, Zone.HAND, source, game); - return ExileSpellEffect.getInstance().apply(game, source); + return new ExileSpellEffect().apply(game, source); } player.putInHand(card1, game); player.putCardsOnTopOfLibrary(new CardsImpl(card2), game, source, false); - return ExileSpellEffect.getInstance().apply(game, source); + return new ExileSpellEffect().apply(game, source); } } \ No newline at end of file diff --git a/Mage.Sets/src/mage/cards/o/OnceMoreWithFeeling.java b/Mage.Sets/src/mage/cards/o/OnceMoreWithFeeling.java index e3cdd7d4bd..41d2714385 100644 --- a/Mage.Sets/src/mage/cards/o/OnceMoreWithFeeling.java +++ b/Mage.Sets/src/mage/cards/o/OnceMoreWithFeeling.java @@ -34,7 +34,7 @@ public final class OnceMoreWithFeeling extends CardImpl { effect.setText(", then draws seven cards"); this.getSpellAbility().addEffect(effect); this.getSpellAbility().addEffect(new SetPlayerLifeAllEffect(10)); - this.getSpellAbility().addEffect(ExileSpellEffect.getInstance()); + this.getSpellAbility().addEffect(new ExileSpellEffect()); // DCI ruling — A deck can have only one card named Once More with Feeling. // (according to rule 112.6m, this shouldn't do anything) diff --git a/Mage.Sets/src/mage/cards/p/PartTheWaterveil.java b/Mage.Sets/src/mage/cards/p/PartTheWaterveil.java index 91974017df..ab46d3aec9 100644 --- a/Mage.Sets/src/mage/cards/p/PartTheWaterveil.java +++ b/Mage.Sets/src/mage/cards/p/PartTheWaterveil.java @@ -20,7 +20,7 @@ public final class PartTheWaterveil extends CardImpl { // Take an extra turn after this one. Exile Part the Waterveil. this.getSpellAbility().addEffect(new AddExtraTurnControllerEffect()); - this.getSpellAbility().addEffect(ExileSpellEffect.getInstance()); + this.getSpellAbility().addEffect(new ExileSpellEffect()); // Awaken 6-{6}{U}{U}{U} this.addAbility(new AwakenAbility(this, 6, "{6}{U}{U}{U}")); diff --git a/Mage.Sets/src/mage/cards/p/PestilentCauldron.java b/Mage.Sets/src/mage/cards/p/PestilentCauldron.java index 2a90e0d08b..8b54f08adc 100644 --- a/Mage.Sets/src/mage/cards/p/PestilentCauldron.java +++ b/Mage.Sets/src/mage/cards/p/PestilentCauldron.java @@ -83,7 +83,7 @@ public final class PestilentCauldron extends ModalDoubleFacesCard { // Return up to two target creature, land, and/or planeswalker cards from your graveyard to your hand. Each player gains 4 life. Exile Restorative Burst. this.getRightHalfCard().getSpellAbility().addEffect(new ReturnFromGraveyardToHandTargetEffect()); this.getRightHalfCard().getSpellAbility().addEffect(new RestorativeBurstEffect()); - this.getRightHalfCard().getSpellAbility().addEffect(ExileSpellEffect.getInstance()); + this.getRightHalfCard().getSpellAbility().addEffect(new ExileSpellEffect()); this.getRightHalfCard().getSpellAbility().addTarget(new TargetCardInYourGraveyard(0, 2, filter)); } diff --git a/Mage.Sets/src/mage/cards/p/PraetorsCounsel.java b/Mage.Sets/src/mage/cards/p/PraetorsCounsel.java index a916b44432..25b94bfc35 100644 --- a/Mage.Sets/src/mage/cards/p/PraetorsCounsel.java +++ b/Mage.Sets/src/mage/cards/p/PraetorsCounsel.java @@ -27,7 +27,7 @@ public final class PraetorsCounsel extends CardImpl { // Return all cards from your graveyard to your hand. Exile Praetor's Counsel. You have no maximum hand size for the rest of the game. this.getSpellAbility().addEffect(new PraetorsCounselEffect()); - this.getSpellAbility().addEffect(ExileSpellEffect.getInstance()); + this.getSpellAbility().addEffect(new ExileSpellEffect()); this.getSpellAbility().addEffect(new MaximumHandSizeControllerEffect(Integer.MAX_VALUE, Duration.EndOfGame, HandSizeModification.SET)); } diff --git a/Mage.Sets/src/mage/cards/p/PullFromTheDeep.java b/Mage.Sets/src/mage/cards/p/PullFromTheDeep.java index 5f05df033b..b8a8cd9712 100644 --- a/Mage.Sets/src/mage/cards/p/PullFromTheDeep.java +++ b/Mage.Sets/src/mage/cards/p/PullFromTheDeep.java @@ -40,7 +40,7 @@ public final class PullFromTheDeep extends CardImpl { effect.setTargetPointer(new SecondTargetPointer()); this.getSpellAbility().addEffect(effect); this.getSpellAbility().addTarget(new TargetCardInYourGraveyard(0,1,filterSorcery)); - this.getSpellAbility().addEffect(ExileSpellEffect.getInstance()); + this.getSpellAbility().addEffect(new ExileSpellEffect()); } private PullFromTheDeep(final PullFromTheDeep card) { diff --git a/Mage.Sets/src/mage/cards/r/RallyTheAncestors.java b/Mage.Sets/src/mage/cards/r/RallyTheAncestors.java index 383876fabc..a2880193ba 100644 --- a/Mage.Sets/src/mage/cards/r/RallyTheAncestors.java +++ b/Mage.Sets/src/mage/cards/r/RallyTheAncestors.java @@ -39,7 +39,7 @@ public final class RallyTheAncestors extends CardImpl { // Return each creature card with converted mana cost X or less from your graveyard to the battlefield. // Exile those creatures at the beginning of your next upkeep. Exile Rally the Ancestors. this.getSpellAbility().addEffect(new RallyTheAncestorsEffect()); - this.getSpellAbility().addEffect(ExileSpellEffect.getInstance()); + this.getSpellAbility().addEffect(new ExileSpellEffect()); } private RallyTheAncestors(final RallyTheAncestors card) { diff --git a/Mage.Sets/src/mage/cards/r/RealityStrobe.java b/Mage.Sets/src/mage/cards/r/RealityStrobe.java index b375ce3d9b..2e4ae802a4 100644 --- a/Mage.Sets/src/mage/cards/r/RealityStrobe.java +++ b/Mage.Sets/src/mage/cards/r/RealityStrobe.java @@ -28,7 +28,7 @@ public final class RealityStrobe extends CardImpl { // Return target permanent to its owner's hand. this.getSpellAbility().addEffect(new ReturnToHandTargetEffect()); // Exile Reality Strobe - this.getSpellAbility().addEffect(ExileSpellEffect.getInstance()); + this.getSpellAbility().addEffect(new ExileSpellEffect()); // with three time counters on it. Effect effect = new AddCountersSourceEffect(CounterType.TIME.createInstance(), StaticValue.get(3), false, true); effect.setText("with 3 time counters on it"); diff --git a/Mage.Sets/src/mage/cards/r/ReapThePast.java b/Mage.Sets/src/mage/cards/r/ReapThePast.java index d10ed9f27e..f43604279d 100644 --- a/Mage.Sets/src/mage/cards/r/ReapThePast.java +++ b/Mage.Sets/src/mage/cards/r/ReapThePast.java @@ -65,6 +65,6 @@ class ReapThePastEffect extends OneShotEffect { cards.remove(cards.getRandom(game)); } player.moveCards(cards, Zone.HAND, source, game); - return ExileSpellEffect.getInstance().apply(game, source); + return new ExileSpellEffect().apply(game, source); } } \ No newline at end of file diff --git a/Mage.Sets/src/mage/cards/r/Recall.java b/Mage.Sets/src/mage/cards/r/Recall.java index 507fca5121..974f8ba028 100644 --- a/Mage.Sets/src/mage/cards/r/Recall.java +++ b/Mage.Sets/src/mage/cards/r/Recall.java @@ -29,7 +29,7 @@ public final class Recall extends CardImpl { // Discard X cards, then return a card from your graveyard to your hand for each card discarded this way. this.getSpellAbility().addEffect(new RecallEffect()); // Exile Recall. - this.getSpellAbility().addEffect(ExileSpellEffect.getInstance()); + this.getSpellAbility().addEffect(new ExileSpellEffect()); } private Recall(final Recall card) { diff --git a/Mage.Sets/src/mage/cards/r/ReconstructHistory.java b/Mage.Sets/src/mage/cards/r/ReconstructHistory.java index 61e3d10731..7ec7d69bf1 100644 --- a/Mage.Sets/src/mage/cards/r/ReconstructHistory.java +++ b/Mage.Sets/src/mage/cards/r/ReconstructHistory.java @@ -55,7 +55,7 @@ public final class ReconstructHistory extends CardImpl { )); // Exile Reconstruct History. - this.getSpellAbility().addEffect(ExileSpellEffect.getInstance()); + this.getSpellAbility().addEffect(new ExileSpellEffect()); } private ReconstructHistory(final ReconstructHistory card) { diff --git a/Mage.Sets/src/mage/cards/r/RescueFromTheUnderworld.java b/Mage.Sets/src/mage/cards/r/RescueFromTheUnderworld.java index beb6d5ba2e..a225bec80e 100644 --- a/Mage.Sets/src/mage/cards/r/RescueFromTheUnderworld.java +++ b/Mage.Sets/src/mage/cards/r/RescueFromTheUnderworld.java @@ -64,7 +64,7 @@ public final class RescueFromTheUnderworld extends CardImpl { this.getSpellAbility().addEffect(new RescueFromTheUnderworldCreateDelayedTriggeredAbilityEffect(new RescueFromTheUnderworldDelayedTriggeredAbility())); Target target = new TargetCardInYourGraveyard(new FilterCreatureCard("creature card in your graveyard")); this.getSpellAbility().addTarget(target); - this.getSpellAbility().addEffect(ExileSpellEffect.getInstance()); + this.getSpellAbility().addEffect(new ExileSpellEffect()); } private RescueFromTheUnderworld(final RescueFromTheUnderworld card) { diff --git a/Mage.Sets/src/mage/cards/r/Restock.java b/Mage.Sets/src/mage/cards/r/Restock.java index 52ce844d28..ff61bd7043 100644 --- a/Mage.Sets/src/mage/cards/r/Restock.java +++ b/Mage.Sets/src/mage/cards/r/Restock.java @@ -25,7 +25,7 @@ public final class Restock extends CardImpl { effect.setText("Return two target cards from your graveyard to your hand"); this.getSpellAbility().addEffect(effect); this.getSpellAbility().addTarget(new TargetCardInYourGraveyard(2, StaticFilters.FILTER_CARD_FROM_YOUR_GRAVEYARD)); - this.getSpellAbility().addEffect(ExileSpellEffect.getInstance()); + this.getSpellAbility().addEffect(new ExileSpellEffect()); } private Restock(final Restock card) { diff --git a/Mage.Sets/src/mage/cards/r/RevivalExperiment.java b/Mage.Sets/src/mage/cards/r/RevivalExperiment.java index 3a9941e995..86c35f7b9c 100644 --- a/Mage.Sets/src/mage/cards/r/RevivalExperiment.java +++ b/Mage.Sets/src/mage/cards/r/RevivalExperiment.java @@ -27,7 +27,7 @@ public final class RevivalExperiment extends CardImpl { // For each permanent type, return up to one card of that type from your graveyard to the battlefield. You lose 3 life for each card returned this way. Exile Revival Experiment. this.getSpellAbility().addEffect(new RevivalExperimentEffect()); - this.getSpellAbility().addEffect(ExileSpellEffect.getInstance()); + this.getSpellAbility().addEffect(new ExileSpellEffect()); } private RevivalExperiment(final RevivalExperiment card) { diff --git a/Mage.Sets/src/mage/cards/r/RousingRefrain.java b/Mage.Sets/src/mage/cards/r/RousingRefrain.java index 1b8f4f7a01..1e833ce7d4 100644 --- a/Mage.Sets/src/mage/cards/r/RousingRefrain.java +++ b/Mage.Sets/src/mage/cards/r/RousingRefrain.java @@ -30,7 +30,7 @@ public final class RousingRefrain extends CardImpl { // Add {R} for each card in target opponent's hand. Until end of turn, you don't lose this mana as steps and phases end. Exile Rousing Refrain with three time counters on it. this.getSpellAbility().addEffect(new RousingRefrainEffect()); - this.getSpellAbility().addEffect(ExileSpellEffect.getInstance()); + this.getSpellAbility().addEffect(new ExileSpellEffect()); this.getSpellAbility().addEffect(new AddCountersSourceEffect( CounterType.TIME.createInstance(), StaticValue.get(3), false, true ).setText("with 3 time counters on it")); diff --git a/Mage.Sets/src/mage/cards/s/SeedsOfRenewal.java b/Mage.Sets/src/mage/cards/s/SeedsOfRenewal.java index f7fb2cb122..f933b2bd27 100644 --- a/Mage.Sets/src/mage/cards/s/SeedsOfRenewal.java +++ b/Mage.Sets/src/mage/cards/s/SeedsOfRenewal.java @@ -28,7 +28,7 @@ public final class SeedsOfRenewal extends CardImpl { effect.setText("Return up to two target cards from your graveyard to your hand"); this.getSpellAbility().addEffect(effect); this.getSpellAbility().addTarget(new TargetCardInYourGraveyard(0, 2, StaticFilters.FILTER_CARD_FROM_YOUR_GRAVEYARD)); - this.getSpellAbility().addEffect(ExileSpellEffect.getInstance()); + this.getSpellAbility().addEffect(new ExileSpellEffect()); } diff --git a/Mage.Sets/src/mage/cards/s/Spelltwine.java b/Mage.Sets/src/mage/cards/s/Spelltwine.java index cb4c857284..e7ce2fe74b 100644 --- a/Mage.Sets/src/mage/cards/s/Spelltwine.java +++ b/Mage.Sets/src/mage/cards/s/Spelltwine.java @@ -48,7 +48,7 @@ public final class Spelltwine extends CardImpl { this.getSpellAbility().addEffect(new SpelltwineEffect()); this.getSpellAbility().addTarget(new TargetCardInYourGraveyard(filter)); this.getSpellAbility().addTarget(new TargetCardInOpponentsGraveyard(filter2)); - this.getSpellAbility().addEffect(ExileSpellEffect.getInstance()); + this.getSpellAbility().addEffect(new ExileSpellEffect()); } diff --git a/Mage.Sets/src/mage/cards/s/StunningReversal.java b/Mage.Sets/src/mage/cards/s/StunningReversal.java index f30461c1fb..f1b6a14ab5 100644 --- a/Mage.Sets/src/mage/cards/s/StunningReversal.java +++ b/Mage.Sets/src/mage/cards/s/StunningReversal.java @@ -27,7 +27,7 @@ public final class StunningReversal extends CardImpl { this.getSpellAbility().addEffect(new StunningReversalEffect()); // Exile Stunning Reversal. - this.getSpellAbility().addEffect(ExileSpellEffect.getInstance()); + this.getSpellAbility().addEffect(new ExileSpellEffect()); } private StunningReversal(final StunningReversal card) { diff --git a/Mage.Sets/src/mage/cards/t/TeferisProtection.java b/Mage.Sets/src/mage/cards/t/TeferisProtection.java index 83274cf5bc..42dc0d65b0 100644 --- a/Mage.Sets/src/mage/cards/t/TeferisProtection.java +++ b/Mage.Sets/src/mage/cards/t/TeferisProtection.java @@ -39,7 +39,7 @@ public final class TeferisProtection extends CardImpl { this.getSpellAbility().addEffect(new TeferisProtectionPhaseOutEffect()); // Exile Teferi's Protection. - this.getSpellAbility().addEffect(ExileSpellEffect.getInstance()); + this.getSpellAbility().addEffect(new ExileSpellEffect()); } private TeferisProtection(final TeferisProtection card) { diff --git a/Mage.Sets/src/mage/cards/t/TemporalMastery.java b/Mage.Sets/src/mage/cards/t/TemporalMastery.java index 987265f138..444cfff28f 100644 --- a/Mage.Sets/src/mage/cards/t/TemporalMastery.java +++ b/Mage.Sets/src/mage/cards/t/TemporalMastery.java @@ -21,7 +21,7 @@ public final class TemporalMastery extends CardImpl { // Take an extra turn after this one. Exile Temporal Mastery. this.getSpellAbility().addEffect(new AddExtraTurnControllerEffect()); - this.getSpellAbility().addEffect(ExileSpellEffect.getInstance()); + this.getSpellAbility().addEffect(new ExileSpellEffect()); // Miracle {1}{U} this.addAbility(new MiracleAbility(this, new ManaCostsImpl("{1}{U}"))); diff --git a/Mage.Sets/src/mage/cards/t/TemporalTrespass.java b/Mage.Sets/src/mage/cards/t/TemporalTrespass.java index ab2e83cf92..d493616320 100644 --- a/Mage.Sets/src/mage/cards/t/TemporalTrespass.java +++ b/Mage.Sets/src/mage/cards/t/TemporalTrespass.java @@ -22,7 +22,7 @@ public final class TemporalTrespass extends CardImpl { this.addAbility(new DelveAbility()); // Take an extra turn after this one. Exile Temporal Trespass. this.getSpellAbility().addEffect(new AddExtraTurnControllerEffect()); - this.getSpellAbility().addEffect(ExileSpellEffect.getInstance()); + this.getSpellAbility().addEffect(new ExileSpellEffect()); } private TemporalTrespass(final TemporalTrespass card) { diff --git a/Mage.Sets/src/mage/cards/t/TheGreatAurora.java b/Mage.Sets/src/mage/cards/t/TheGreatAurora.java index e24c21d41d..227fc96cb0 100644 --- a/Mage.Sets/src/mage/cards/t/TheGreatAurora.java +++ b/Mage.Sets/src/mage/cards/t/TheGreatAurora.java @@ -30,7 +30,7 @@ public final class TheGreatAurora extends CardImpl { // Each player shuffles all cards from their hand and all permanents they own into their library, then draws that many cards. Each player may put any number of land cards from their hand onto the battlefield. Exile The Great Aurora. this.getSpellAbility().addEffect(new TheGreatAuroraEffect()); - this.getSpellAbility().addEffect(ExileSpellEffect.getInstance()); + this.getSpellAbility().addEffect(new ExileSpellEffect()); } private TheGreatAurora(final TheGreatAurora card) { diff --git a/Mage.Sets/src/mage/cards/t/TimeReversal.java b/Mage.Sets/src/mage/cards/t/TimeReversal.java index 60917a985b..b2b234d5b4 100644 --- a/Mage.Sets/src/mage/cards/t/TimeReversal.java +++ b/Mage.Sets/src/mage/cards/t/TimeReversal.java @@ -24,7 +24,7 @@ public final class TimeReversal extends CardImpl { Effect effect = new DrawCardAllEffect(7); effect.setText(", then draws seven cards"); this.getSpellAbility().addEffect(effect); - this.getSpellAbility().addEffect(ExileSpellEffect.getInstance()); + this.getSpellAbility().addEffect(new ExileSpellEffect()); } private TimeReversal(final TimeReversal card) { diff --git a/Mage.Sets/src/mage/cards/t/TimeSpiral.java b/Mage.Sets/src/mage/cards/t/TimeSpiral.java index c52e6caf46..7ea1050374 100644 --- a/Mage.Sets/src/mage/cards/t/TimeSpiral.java +++ b/Mage.Sets/src/mage/cards/t/TimeSpiral.java @@ -26,7 +26,7 @@ public final class TimeSpiral extends CardImpl { super(ownerId, setInfo, new CardType[]{CardType.SORCERY}, "{4}{U}{U}"); // Exile Time Spiral. Each player shuffles their graveyard and hand into their library, then draws seven cards. You untap up to six lands. - this.getSpellAbility().addEffect(ExileSpellEffect.getInstance()); + this.getSpellAbility().addEffect(new ExileSpellEffect()); this.getSpellAbility().addEffect(new TimeSpiralEffect()); Effect effect = new DrawCardAllEffect(7); effect.setText(", then draws seven cards"); diff --git a/Mage.Sets/src/mage/cards/t/TreasuredFind.java b/Mage.Sets/src/mage/cards/t/TreasuredFind.java index ad2bf7d6d2..7ddf7d47fe 100644 --- a/Mage.Sets/src/mage/cards/t/TreasuredFind.java +++ b/Mage.Sets/src/mage/cards/t/TreasuredFind.java @@ -23,7 +23,7 @@ public final class TreasuredFind extends CardImpl { // Return target card from your graveyard to your hand. Exile Treasured Find. this.getSpellAbility().addEffect(new ReturnFromGraveyardToHandTargetEffect()); this.getSpellAbility().addTarget(new TargetCardInYourGraveyard()); - this.getSpellAbility().addEffect(ExileSpellEffect.getInstance()); + this.getSpellAbility().addEffect(new ExileSpellEffect()); } private TreasuredFind(final TreasuredFind card) { diff --git a/Mage.Sets/src/mage/cards/v/VengefulRebirth.java b/Mage.Sets/src/mage/cards/v/VengefulRebirth.java index 06e7d9d34f..730d161b34 100644 --- a/Mage.Sets/src/mage/cards/v/VengefulRebirth.java +++ b/Mage.Sets/src/mage/cards/v/VengefulRebirth.java @@ -31,7 +31,7 @@ public final class VengefulRebirth extends CardImpl { this.getSpellAbility().addEffect(new VengefulRebirthEffect()); // Exile Vengeful Rebirth. - this.getSpellAbility().addEffect(ExileSpellEffect.getInstance()); + this.getSpellAbility().addEffect(new ExileSpellEffect()); } private VengefulRebirth(final VengefulRebirth card) { diff --git a/Mage.Sets/src/mage/cards/v/VividRevival.java b/Mage.Sets/src/mage/cards/v/VividRevival.java index fddf3bead4..af0c0aad95 100644 --- a/Mage.Sets/src/mage/cards/v/VividRevival.java +++ b/Mage.Sets/src/mage/cards/v/VividRevival.java @@ -28,7 +28,7 @@ public final class VividRevival extends CardImpl { // Return up to three target multicolor cards from your graveyard to your hand. Exile Vivid Revival. this.getSpellAbility().addEffect(new ReturnFromGraveyardToHandTargetEffect()); this.getSpellAbility().addTarget(new TargetCardInYourGraveyard(0, 3, filter)); - this.getSpellAbility().addEffect(ExileSpellEffect.getInstance()); + this.getSpellAbility().addEffect(new ExileSpellEffect()); } private VividRevival(final VividRevival card) { diff --git a/Mage.Sets/src/mage/cards/v/VolcanicVision.java b/Mage.Sets/src/mage/cards/v/VolcanicVision.java index 252f5bb975..7db71625e6 100644 --- a/Mage.Sets/src/mage/cards/v/VolcanicVision.java +++ b/Mage.Sets/src/mage/cards/v/VolcanicVision.java @@ -31,7 +31,7 @@ public final class VolcanicVision extends CardImpl { // Return target instant or sorcery card from your graveyard to your hand. Volcanic Visions deals damage equal to that card's converted mana cost to each creature your opponents control. Exile Volcanic Vision. this.getSpellAbility().addEffect(new VolcanicVisionReturnToHandTargetEffect()); this.getSpellAbility().addTarget(new TargetCardInYourGraveyard(new FilterInstantOrSorceryCard("instant or sorcery card from your graveyard"))); - this.getSpellAbility().addEffect(ExileSpellEffect.getInstance()); + this.getSpellAbility().addEffect(new ExileSpellEffect()); } private VolcanicVision(final VolcanicVision card) { diff --git a/Mage.Sets/src/mage/cards/w/WildestDreams.java b/Mage.Sets/src/mage/cards/w/WildestDreams.java index 7390cc04d1..427cb2b71a 100644 --- a/Mage.Sets/src/mage/cards/w/WildestDreams.java +++ b/Mage.Sets/src/mage/cards/w/WildestDreams.java @@ -29,7 +29,7 @@ public final class WildestDreams extends CardImpl { effect.setText("Return X target cards from your graveyard to your hand"); this.getSpellAbility().addEffect(effect); this.getSpellAbility().setTargetAdjuster(WildestDreamsAdjuster.instance); - this.getSpellAbility().addEffect(ExileSpellEffect.getInstance()); + this.getSpellAbility().addEffect(new ExileSpellEffect()); } private WildestDreams(final WildestDreams card) { diff --git a/Mage.Sets/src/mage/cards/w/WoodlandGuidance.java b/Mage.Sets/src/mage/cards/w/WoodlandGuidance.java index 5b4d687948..216d51d54b 100644 --- a/Mage.Sets/src/mage/cards/w/WoodlandGuidance.java +++ b/Mage.Sets/src/mage/cards/w/WoodlandGuidance.java @@ -30,7 +30,7 @@ public final class WoodlandGuidance extends CardImpl { this.getSpellAbility().addEffect(new DoIfClashWonEffect(new UntapAllLandsControllerEffect(new FilterLandPermanent(SubType.FOREST, "Forests")))); // Remove WoodlandGuidance from the game - this.getSpellAbility().addEffect(ExileSpellEffect.getInstance()); + this.getSpellAbility().addEffect(new ExileSpellEffect()); } private WoodlandGuidance(final WoodlandGuidance card) { diff --git a/Mage.Sets/src/mage/cards/w/WorstFears.java b/Mage.Sets/src/mage/cards/w/WorstFears.java index 6e940e35ae..1403f76857 100644 --- a/Mage.Sets/src/mage/cards/w/WorstFears.java +++ b/Mage.Sets/src/mage/cards/w/WorstFears.java @@ -22,7 +22,7 @@ public final class WorstFears extends CardImpl { // You control target player during that player's next turn. Exile Worst Fears. (You see all cards that player could see and make all decisions for that player.) this.getSpellAbility().addEffect(new ControlTargetPlayerNextTurnEffect()); this.getSpellAbility().addTarget(new TargetPlayer()); - this.getSpellAbility().addEffect(ExileSpellEffect.getInstance()); + this.getSpellAbility().addEffect(new ExileSpellEffect()); } private WorstFears(final WorstFears card) { diff --git a/Mage.Sets/src/mage/cards/y/YawgmothsVileOffering.java b/Mage.Sets/src/mage/cards/y/YawgmothsVileOffering.java index d811465f21..2237c9038c 100644 --- a/Mage.Sets/src/mage/cards/y/YawgmothsVileOffering.java +++ b/Mage.Sets/src/mage/cards/y/YawgmothsVileOffering.java @@ -48,7 +48,7 @@ public final class YawgmothsVileOffering extends CardImpl { this.getSpellAbility().addEffect(new YawgmothsVileOfferingEffect()); this.getSpellAbility().addTarget(new TargetCardInGraveyard(0, 1, cardFilter)); this.getSpellAbility().addTarget(new TargetCreatureOrPlaneswalker(0, 1, new FilterCreatureOrPlaneswalkerPermanent(), false)); - this.getSpellAbility().addEffect(ExileSpellEffect.getInstance()); + this.getSpellAbility().addEffect(new ExileSpellEffect()); } private YawgmothsVileOffering(final YawgmothsVileOffering card) { diff --git a/Mage/src/main/java/mage/abilities/effects/common/ExileSpellEffect.java b/Mage/src/main/java/mage/abilities/effects/common/ExileSpellEffect.java index c8648f4aff..f7c9826f3f 100644 --- a/Mage/src/main/java/mage/abilities/effects/common/ExileSpellEffect.java +++ b/Mage/src/main/java/mage/abilities/effects/common/ExileSpellEffect.java @@ -1,9 +1,7 @@ package mage.abilities.effects.common; import mage.abilities.Ability; -import mage.abilities.MageSingleton; import mage.abilities.effects.OneShotEffect; -import mage.cards.Card; import mage.constants.Outcome; import mage.constants.Zone; import mage.game.Game; @@ -13,37 +11,29 @@ import mage.players.Player; /** * @author BetaSteward_at_googlemail.com */ -public class ExileSpellEffect extends OneShotEffect implements MageSingleton { - - private static final ExileSpellEffect instance = new ExileSpellEffect(); - - public static ExileSpellEffect getInstance() { - return instance; - } +public class ExileSpellEffect extends OneShotEffect { private ExileSpellEffect() { super(Outcome.Exile); staticText = "Exile {this}"; } + private ExileSpellEffect(final ExileSpellEffect effect) { + super(effect); + } + @Override public ExileSpellEffect copy() { - return instance; + return new ExileSpellEffect(); } @Override public boolean apply(Game game, Ability source) { Player controller = game.getPlayer(source.getControllerId()); - if (controller != null) { - Spell spell = game.getStack().getSpell(source.getId()); - if (spell != null) { - Card spellCard = spell.getCard(); - if (spellCard != null) { - controller.moveCards(spellCard, Zone.EXILED, source, game); - } - } + Spell spell = game.getStack().getSpell(source.getId()); + if (controller == null || spell == null) { return true; } - return false; + return controller.moveCards(spell.getCard(), Zone.EXILED, source, game); } }