[AFC] reverted change to Sefris of the Hidden Ways, changed

This commit is contained in:
Evan Kranzler 2022-03-15 18:57:24 -04:00
parent bb03ed4e19
commit 6e132c999c
2 changed files with 10 additions and 64 deletions

View file

@ -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<Card> 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.";
}
}

View file

@ -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());