diff --git a/Mage.Sets/src/mage/cards/w/WintersRest.java b/Mage.Sets/src/mage/cards/w/WintersRest.java index 948be615398..adbe0ee68a7 100644 --- a/Mage.Sets/src/mage/cards/w/WintersRest.java +++ b/Mage.Sets/src/mage/cards/w/WintersRest.java @@ -3,8 +3,6 @@ package mage.cards.w; import mage.abilities.Ability; import mage.abilities.common.EntersBattlefieldTriggeredAbility; import mage.abilities.common.SimpleStaticAbility; -import mage.abilities.condition.common.PermanentsOnTheBattlefieldCondition; -import mage.abilities.decorator.ConditionalContinuousEffect; import mage.abilities.effects.common.AttachEffect; import mage.abilities.effects.common.DontUntapInControllersUntapStepEnchantedEffect; import mage.abilities.effects.common.TapEnchantedEffect; @@ -19,6 +17,8 @@ import mage.filter.FilterPermanent; import mage.filter.common.FilterControlledPermanent; import mage.filter.predicate.mageobject.SupertypePredicate; import mage.filter.predicate.permanent.AnotherPredicate; +import mage.game.Game; +import mage.game.events.GameEvent; import mage.target.TargetPermanent; import mage.target.common.TargetCreaturePermanent; @@ -29,13 +29,6 @@ import java.util.UUID; */ public final class WintersRest extends CardImpl { - private static final FilterPermanent filter = new FilterControlledPermanent(); - - static { - filter.add(AnotherPredicate.instance); - filter.add(new SupertypePredicate(SuperType.SNOW)); - } - public WintersRest(UUID ownerId, CardSetInfo setInfo) { super(ownerId, setInfo, new CardType[]{CardType.ENCHANTMENT}, "{1}{U}"); @@ -53,12 +46,7 @@ public final class WintersRest extends CardImpl { this.addAbility(new EntersBattlefieldTriggeredAbility(new TapEnchantedEffect())); // As long as you control another snow permanent, enchanted creature doesn't untap during its controller's untap step. - this.addAbility(new SimpleStaticAbility(new ConditionalContinuousEffect( - new DontUntapInControllersUntapStepEnchantedEffect(), - new PermanentsOnTheBattlefieldCondition(filter), - "As long as you control another snow permanent, " + - "enchanted creature doesn't untap during its controller's untap step." - ))); + this.addAbility(new SimpleStaticAbility(new WintersRestEffect())); } private WintersRest(final WintersRest card) { @@ -70,3 +58,38 @@ public final class WintersRest extends CardImpl { return new WintersRest(this); } } + +class WintersRestEffect extends DontUntapInControllersUntapStepEnchantedEffect { + + private static final FilterPermanent filter = new FilterControlledPermanent(); + + static { + filter.add(AnotherPredicate.instance); + filter.add(new SupertypePredicate(SuperType.SNOW)); + } + + WintersRestEffect() { + super(); + staticText = "As long as you control another snow permanent, " + + "enchanted creature doesn't untap during its controller's untap step."; + } + + private WintersRestEffect(final WintersRestEffect effect) { + super(effect); + } + + @Override + public WintersRestEffect copy() { + return new WintersRestEffect(this); + } + + @Override + public boolean applies(GameEvent event, Ability source, Game game) { + if (game.getBattlefield().getActivePermanents( + filter, source.getControllerId(), source.getSourceId(), game + ).isEmpty()) { + return false; + } + return super.applies(event, source, game); + } +} \ No newline at end of file