From f4b37a2f72a4c5e6148cf9860c5da2435132f743 Mon Sep 17 00:00:00 2001 From: LevelX2 Date: Fri, 5 Feb 2016 17:54:17 +0100 Subject: [PATCH] Simplified Reduce to Dreams. --- .../betrayersofkamigawa/ReduceToDreams.java | 60 ++----------------- .../ReturnToHandFromBattlefieldAllEffect.java | 2 +- 2 files changed, 5 insertions(+), 57 deletions(-) diff --git a/Mage.Sets/src/mage/sets/betrayersofkamigawa/ReduceToDreams.java b/Mage.Sets/src/mage/sets/betrayersofkamigawa/ReduceToDreams.java index 1a8e01a6fa3..7ea8ac0f201 100644 --- a/Mage.Sets/src/mage/sets/betrayersofkamigawa/ReduceToDreams.java +++ b/Mage.Sets/src/mage/sets/betrayersofkamigawa/ReduceToDreams.java @@ -28,22 +28,11 @@ package mage.sets.betrayersofkamigawa; import java.util.UUID; - +import mage.abilities.effects.common.ReturnToHandFromBattlefieldAllEffect; +import mage.cards.CardImpl; import mage.constants.CardType; import mage.constants.Rarity; -import mage.abilities.Ability; -import mage.abilities.effects.OneShotEffect; -import mage.cards.CardImpl; -import mage.constants.Outcome; -import mage.constants.Zone; -import mage.filter.FilterPermanent; -import mage.filter.common.FilterControlledPermanent; -import mage.filter.predicate.Predicates; -import mage.filter.predicate.mageobject.CardTypePredicate; -import mage.filter.predicate.other.OwnerIdPredicate; -import mage.game.Game; -import mage.game.permanent.Permanent; -import mage.players.Player; +import mage.filter.common.FilterArtifactOrEnchantmentPermanent; /** * @@ -55,9 +44,8 @@ public class ReduceToDreams extends CardImpl { super(ownerId, 49, "Reduce to Dreams", Rarity.RARE, new CardType[]{CardType.SORCERY}, "{3}{U}{U}"); this.expansionSetCode = "BOK"; - // Return all artifacts and enchantments to their owners' hands. - this.getSpellAbility().addEffect(new ReduceToDreamsEffect()); + this.getSpellAbility().addEffect(new ReturnToHandFromBattlefieldAllEffect(new FilterArtifactOrEnchantmentPermanent())); } public ReduceToDreams(final ReduceToDreams card) { @@ -69,43 +57,3 @@ public class ReduceToDreams extends CardImpl { return new ReduceToDreams(this); } } - -class ReduceToDreamsEffect extends OneShotEffect { - - private static final FilterControlledPermanent filter = new FilterControlledPermanent("artifacts and enchantments"); - static { - filter.add(Predicates.or( - new CardTypePredicate(CardType.ARTIFACT), - new CardTypePredicate(CardType.ENCHANTMENT) - )); - } - - public ReduceToDreamsEffect() { - super(Outcome.ReturnToHand); - staticText = "Return all artifacts and enchantments to their owners' hands"; - } - - public ReduceToDreamsEffect(final ReduceToDreamsEffect effect) { - super(effect); - } - - @Override - public boolean apply(Game game, Ability source) { - Player controller = game.getPlayer(source.getControllerId()); - if (controller != null) { - for (UUID playerId : controller.getInRange()) { - FilterPermanent playerFilter = filter.copy(); - playerFilter.add(new OwnerIdPredicate(playerId)); - for (Permanent permanent : game.getBattlefield().getActivePermanents(playerFilter, playerId, game)) { - permanent.moveToZone(Zone.HAND, playerId, game, true); - } - } - } - return true; - } - - @Override - public ReduceToDreamsEffect copy() { - return new ReduceToDreamsEffect(this); - } -} diff --git a/Mage/src/main/java/mage/abilities/effects/common/ReturnToHandFromBattlefieldAllEffect.java b/Mage/src/main/java/mage/abilities/effects/common/ReturnToHandFromBattlefieldAllEffect.java index 2b0a53aba5f..67977bfa6d2 100644 --- a/Mage/src/main/java/mage/abilities/effects/common/ReturnToHandFromBattlefieldAllEffect.java +++ b/Mage/src/main/java/mage/abilities/effects/common/ReturnToHandFromBattlefieldAllEffect.java @@ -65,7 +65,7 @@ public class ReturnToHandFromBattlefieldAllEffect extends OneShotEffect { for (Permanent permanent : game.getBattlefield().getActivePermanents(filter, source.getControllerId(), source.getSourceId(), game)) { cardsToHand.add(permanent); } - controller.moveCards(cardsToHand, null, Zone.HAND, source, game); + controller.moveCards(cardsToHand, Zone.HAND, source, game); return true; } return false;