From 6e132c999c2086dfe136d7c87b0bfae236cf57da Mon Sep 17 00:00:00 2001 From: Evan Kranzler Date: Tue, 15 Mar 2022 18:57:24 -0400 Subject: [PATCH] [AFC] reverted change to Sefris of the Hidden Ways, changed --- .../mage/cards/s/SefrisOfTheHiddenWays.java | 71 +++---------------- ...oGraveFromAnywhereAllTriggeredAbility.java | 3 +- 2 files changed, 10 insertions(+), 64 deletions(-) diff --git a/Mage.Sets/src/mage/cards/s/SefrisOfTheHiddenWays.java b/Mage.Sets/src/mage/cards/s/SefrisOfTheHiddenWays.java index eeb7310b841..6ddb6ca649c 100644 --- a/Mage.Sets/src/mage/cards/s/SefrisOfTheHiddenWays.java +++ b/Mage.Sets/src/mage/cards/s/SefrisOfTheHiddenWays.java @@ -1,9 +1,9 @@ package mage.cards.s; -import java.util.Set; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.CompletedDungeonTriggeredAbility; +import mage.abilities.common.PutCardIntoGraveFromAnywhereAllTriggeredAbility; import mage.abilities.effects.common.ReturnFromGraveyardToBattlefieldTargetEffect; import mage.abilities.effects.keyword.VentureIntoTheDungeonEffect; import mage.cards.CardImpl; @@ -11,24 +11,21 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.SubType; import mage.constants.SuperType; +import mage.constants.TargetController; +import mage.filter.FilterCard; import mage.filter.StaticFilters; +import mage.filter.common.FilterCreatureCard; import mage.target.common.TargetCardInYourGraveyard; import java.util.UUID; -import mage.abilities.TriggeredAbilityImpl; -import mage.abilities.effects.Effect; -import mage.cards.Card; -import mage.constants.Zone; -import mage.game.Game; -import mage.game.events.GameEvent; -import mage.game.events.ZoneChangeGroupEvent; -import mage.game.permanent.Permanent; /** * @author TheElk801 */ public final class SefrisOfTheHiddenWays extends CardImpl { + private static final FilterCard filter = new FilterCreatureCard("one or more creature cards"); + public SefrisOfTheHiddenWays(UUID ownerId, CardSetInfo setInfo) { super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{W}{U}{B}"); @@ -39,8 +36,8 @@ public final class SefrisOfTheHiddenWays extends CardImpl { this.toughness = new MageInt(3); // Whenever one or more creature cards are put into your graveyard from anywhere, venture into the dungeon. This ability triggers only once each turn. - this.addAbility(new SefrisOfTheHiddenWaysTriggeredAbility( - new VentureIntoTheDungeonEffect().setText("") + this.addAbility(new PutCardIntoGraveFromAnywhereAllTriggeredAbility( + new VentureIntoTheDungeonEffect(), false, filter, TargetController.YOU ).setTriggersOnce(true)); // Create Undead — Whenever you complete a dungeon, return target creature card from your graveyard to the battlefield. @@ -58,55 +55,3 @@ public final class SefrisOfTheHiddenWays extends CardImpl { return new SefrisOfTheHiddenWays(this); } } - -class SefrisOfTheHiddenWaysTriggeredAbility extends TriggeredAbilityImpl { - - public SefrisOfTheHiddenWaysTriggeredAbility(Effect effect) { - super(Zone.ALL, effect, false); - } - - public SefrisOfTheHiddenWaysTriggeredAbility(final SefrisOfTheHiddenWaysTriggeredAbility ability) { - super(ability); - } - - @Override - public SefrisOfTheHiddenWaysTriggeredAbility copy() { - return new SefrisOfTheHiddenWaysTriggeredAbility(this); - } - - @Override - public boolean checkEventType(GameEvent event, Game game) { - return event.getType() == GameEvent.EventType.ZONE_CHANGE_GROUP; - } - - @Override - public boolean checkTrigger(GameEvent event, Game game) { - Boolean applies = false; - /* - Sefris of the Hidden Ways must be on the battlefield for its first ability to trigger. - It does not trigger when Sefris goes to the graveyard from the battlefield, even if other - creature cards also went to the graveyard at the same time. - */ - Permanent sourceCard = game.getPermanent(sourceId); - if (((ZoneChangeGroupEvent) event).getToZone() != Zone.GRAVEYARD - || sourceCard == null) { - return false; - } - ZoneChangeGroupEvent zEvent = (ZoneChangeGroupEvent) event; - Set cards = zEvent.getCards(); - for (Card card : cards) { - if (card.isCreature(game) - && (Card) sourceCard != card // 603.6c, 603.10a, and 603.10. - && !card.isCopy() - && card.isOwnedBy(controllerId)) { - applies = true; - } - } - return applies; - } - - @Override - public String getTriggerPhrase() { - return "Whenever one or more creature cards are put into your graveyard from anywhere, venture into the dungeon."; - } -} diff --git a/Mage/src/main/java/mage/abilities/common/PutCardIntoGraveFromAnywhereAllTriggeredAbility.java b/Mage/src/main/java/mage/abilities/common/PutCardIntoGraveFromAnywhereAllTriggeredAbility.java index 9fc36f87cf4..01f60349936 100644 --- a/Mage/src/main/java/mage/abilities/common/PutCardIntoGraveFromAnywhereAllTriggeredAbility.java +++ b/Mage/src/main/java/mage/abilities/common/PutCardIntoGraveFromAnywhereAllTriggeredAbility.java @@ -77,7 +77,8 @@ public class PutCardIntoGraveFromAnywhereAllTriggeredAbility extends TriggeredAb @Override public boolean checkTrigger(GameEvent event, Game game) { - if (((ZoneChangeEvent) event).getToZone() != Zone.GRAVEYARD) { + if (((ZoneChangeEvent) event).getToZone() != Zone.GRAVEYARD + || !zone.match(game.getState().getZone(getSourceId()))) { return false; } Card card = game.getCard(event.getTargetId());