From 08ac7ab342c2dc5aeb6a0b13e08414aaa42d5ec2 Mon Sep 17 00:00:00 2001 From: JOAC69 Date: Sat, 24 Sep 2016 23:28:43 -0500 Subject: [PATCH] Refactor - moved MistmeadowWeitchEffect to shared area --- .../mage/sets/shadowmoor/MistmeadowWitch.java | 41 +---------------- .../src/mage/sets/shadowmoor/TurnToMist.java | 2 + .../effects/common/MistmeadowWitchEffect.java | 46 +++++++++++++++++++ 3 files changed, 50 insertions(+), 39 deletions(-) create mode 100644 Mage/src/main/java/mage/abilities/effects/common/MistmeadowWitchEffect.java diff --git a/Mage.Sets/src/mage/sets/shadowmoor/MistmeadowWitch.java b/Mage.Sets/src/mage/sets/shadowmoor/MistmeadowWitch.java index 5fa8958d6f5..9d25a2f8a80 100644 --- a/Mage.Sets/src/mage/sets/shadowmoor/MistmeadowWitch.java +++ b/Mage.Sets/src/mage/sets/shadowmoor/MistmeadowWitch.java @@ -28,20 +28,16 @@ package mage.sets.shadowmoor; import java.util.UUID; + +import mage.abilities.effects.common.MistmeadowWitchEffect; import mage.constants.CardType; -import mage.constants.Outcome; import mage.constants.Rarity; import mage.constants.Zone; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; -import mage.abilities.common.delayed.AtTheBeginOfNextEndStepDelayedTriggeredAbility; import mage.abilities.costs.mana.ManaCostsImpl; -import mage.abilities.effects.OneShotEffect; -import mage.abilities.effects.common.ReturnFromExileEffect; import mage.cards.CardImpl; -import mage.game.Game; -import mage.game.permanent.Permanent; import mage.target.common.TargetCreaturePermanent; /** @@ -75,36 +71,3 @@ public class MistmeadowWitch extends CardImpl { } } -class MistmeadowWitchEffect extends OneShotEffect { - - public MistmeadowWitchEffect() { - super(Outcome.Detriment); - staticText = "Exile target creature. Return that card to the battlefield under its owner's control at the beginning of the next end step"; - } - - public MistmeadowWitchEffect(final MistmeadowWitchEffect effect) { - super(effect); - } - - @Override - public boolean apply(Game game, Ability source) { - Permanent permanent = game.getPermanent(source.getFirstTarget()); - if (permanent != null) { - if (permanent.moveToExile(source.getSourceId(), "Mistmeadow Witch Exile", source.getSourceId(), game)) { - //create delayed triggered ability - AtTheBeginOfNextEndStepDelayedTriggeredAbility delayedAbility = new AtTheBeginOfNextEndStepDelayedTriggeredAbility(new ReturnFromExileEffect(source.getSourceId(), Zone.BATTLEFIELD)); - delayedAbility.setSourceId(source.getSourceId()); - delayedAbility.setControllerId(source.getControllerId()); - delayedAbility.setSourceObject(source.getSourceObject(game), game); - game.addDelayedTriggeredAbility(delayedAbility); - return true; - } - } - return false; - } - - @Override - public MistmeadowWitchEffect copy() { - return new MistmeadowWitchEffect(this); - } -} diff --git a/Mage.Sets/src/mage/sets/shadowmoor/TurnToMist.java b/Mage.Sets/src/mage/sets/shadowmoor/TurnToMist.java index 8b6a25796dd..b08dcd50e21 100644 --- a/Mage.Sets/src/mage/sets/shadowmoor/TurnToMist.java +++ b/Mage.Sets/src/mage/sets/shadowmoor/TurnToMist.java @@ -28,6 +28,8 @@ package mage.sets.shadowmoor; import java.util.UUID; + +import mage.abilities.effects.common.MistmeadowWitchEffect; import mage.constants.CardType; import mage.constants.Rarity; import mage.cards.CardImpl; diff --git a/Mage/src/main/java/mage/abilities/effects/common/MistmeadowWitchEffect.java b/Mage/src/main/java/mage/abilities/effects/common/MistmeadowWitchEffect.java new file mode 100644 index 00000000000..c67f16ee3b0 --- /dev/null +++ b/Mage/src/main/java/mage/abilities/effects/common/MistmeadowWitchEffect.java @@ -0,0 +1,46 @@ +package mage.abilities.effects.common; + +import mage.abilities.Ability; +import mage.abilities.common.delayed.AtTheBeginOfNextEndStepDelayedTriggeredAbility; +import mage.abilities.effects.OneShotEffect; +import mage.constants.Outcome; +import mage.constants.Zone; +import mage.game.Game; +import mage.game.permanent.Permanent; + +/** + * Created by Eric on 9/24/2016. + */ +public class MistmeadowWitchEffect extends OneShotEffect { + + public MistmeadowWitchEffect() { + super(Outcome.Detriment); + staticText = "Exile target creature. Return that card to the battlefield under its owner's control at the beginning of the next end step"; + } + + public MistmeadowWitchEffect(final MistmeadowWitchEffect effect) { + super(effect); + } + + @Override + public boolean apply(Game game, Ability source) { + Permanent permanent = game.getPermanent(source.getFirstTarget()); + if (permanent != null) { + if (permanent.moveToExile(source.getSourceId(), "Mistmeadow Witch Exile", source.getSourceId(), game)) { + //create delayed triggered ability + AtTheBeginOfNextEndStepDelayedTriggeredAbility delayedAbility = new AtTheBeginOfNextEndStepDelayedTriggeredAbility(new ReturnFromExileEffect(source.getSourceId(), Zone.BATTLEFIELD)); + delayedAbility.setSourceId(source.getSourceId()); + delayedAbility.setControllerId(source.getControllerId()); + delayedAbility.setSourceObject(source.getSourceObject(game), game); + game.addDelayedTriggeredAbility(delayedAbility); + return true; + } + } + return false; + } + + @Override + public MistmeadowWitchEffect copy() { + return new MistmeadowWitchEffect(this); + } +}