[FIX] Fixes Fiend Hunters may enters the battlefield ability (issue 282) and also the found bug with multiple Fiend Hunters using the same exile zone, therefore one Fiend Hunter Exiling another causes the exiled Fiend Hunter's leaves the battlefield trigger to remove itself from the exile zone from the other. This same issue affected Journey to Nowhere, Oblivion Ring and Leonin Relic Warcer

This commit is contained in:
maurer.it 2011-10-18 20:28:50 -04:00
parent 73abbd2e87
commit e0f3e367fa
6 changed files with 211 additions and 16 deletions

View file

@ -34,14 +34,14 @@ import mage.MageInt;
import mage.abilities.Ability;
import mage.abilities.common.EntersBattlefieldTriggeredAbility;
import mage.abilities.common.LeavesBattlefieldTriggeredAbility;
import mage.abilities.effects.common.ExileTargetEffect;
import mage.abilities.effects.common.ReturnFromExileEffect;
import mage.cards.CardImpl;
import mage.filter.common.FilterCreaturePermanent;
import mage.target.Target;
import mage.target.TargetPermanent;
import java.util.UUID;
import mage.abilities.effects.common.ExileTargetForSourceEffect;
import mage.abilities.effects.common.ReturnFromExileForSourceEffect;
/**
* @author nantuko
@ -64,14 +64,14 @@ public class FiendHunter extends CardImpl<FiendHunter> {
this.toughness = new MageInt(3);
// When Fiend Hunter enters the battlefield, you may exile another target creature.
Ability ability1 = new EntersBattlefieldTriggeredAbility(new ExileTargetEffect(this.getId(), "Fiend Hunter Exile"), false);
Ability ability1 = new EntersBattlefieldTriggeredAbility(new ExileTargetForSourceEffect("Fiend Hunter Exile"), true);
Target target = new TargetPermanent(filter);
target.setRequired(true);
ability1.addTarget(target);
this.addAbility(ability1);
// When Fiend Hunter leaves the battlefield, return the exiled card to the battlefield under its owner's control.
Ability ability2 = new LeavesBattlefieldTriggeredAbility(new ReturnFromExileEffect(this.getId(), Constants.Zone.BATTLEFIELD), false);
Ability ability2 = new LeavesBattlefieldTriggeredAbility(new ReturnFromExileForSourceEffect(Constants.Zone.BATTLEFIELD), false);
this.addAbility(ability2);
}

View file

@ -37,8 +37,8 @@ import mage.MageInt;
import mage.abilities.Ability;
import mage.abilities.common.EntersBattlefieldTriggeredAbility;
import mage.abilities.common.LeavesBattlefieldTriggeredAbility;
import mage.abilities.effects.common.ExileTargetEffect;
import mage.abilities.effects.common.ReturnFromExileEffect;
import mage.abilities.effects.common.ExileTargetForSourceEffect;
import mage.abilities.effects.common.ReturnFromExileForSourceEffect;
import mage.cards.CardImpl;
import mage.filter.Filter;
import mage.filter.FilterPermanent;
@ -67,13 +67,13 @@ public class LeoninRelicWarder extends CardImpl<LeoninRelicWarder> {
this.power = new MageInt(2);
this.toughness = new MageInt(2);
Ability ability = new EntersBattlefieldTriggeredAbility(new ExileTargetEffect(this.getId(), "Leonin Relic-Warder exile"), true);
Ability ability = new EntersBattlefieldTriggeredAbility(new ExileTargetForSourceEffect("Leonin Relic-Warder exile"), true);
Target target = new TargetPermanent(filter);
target.setRequired(true);
ability.addTarget(target);
this.addAbility(ability);
Ability ability2 = new LeavesBattlefieldTriggeredAbility(new ReturnFromExileEffect(this.getId(), Constants.Zone.BATTLEFIELD), false);
Ability ability2 = new LeavesBattlefieldTriggeredAbility(new ReturnFromExileForSourceEffect(Constants.Zone.BATTLEFIELD), false);
this.addAbility(ability2);
}

View file

@ -28,7 +28,6 @@
package mage.sets.shardsofalara;
import mage.abilities.effects.common.ReturnFromExileEffect;
import java.util.UUID;
import mage.Constants.CardType;
import mage.Constants.Rarity;
@ -36,7 +35,8 @@ import mage.Constants.Zone;
import mage.abilities.Ability;
import mage.abilities.common.EntersBattlefieldTriggeredAbility;
import mage.abilities.common.LeavesBattlefieldTriggeredAbility;
import mage.abilities.effects.common.ExileTargetEffect;
import mage.abilities.effects.common.ExileTargetForSourceEffect;
import mage.abilities.effects.common.ReturnFromExileForSourceEffect;
import mage.cards.CardImpl;
import mage.filter.common.FilterNonlandPermanent;
import mage.target.Target;
@ -54,12 +54,12 @@ public class OblivionRing extends CardImpl<OblivionRing> {
this.color.setWhite(true);
FilterNonlandPermanent filter = new FilterNonlandPermanent("another nonland permanent");
filter.setAnother(true);
Ability ability1 = new EntersBattlefieldTriggeredAbility(new ExileTargetEffect(this.getId(), "Oblivion Ring exile"), false);
Ability ability1 = new EntersBattlefieldTriggeredAbility(new ExileTargetForSourceEffect( "Oblivion Ring exile"), false);
Target target = new TargetPermanent(filter);
target.setRequired(true);
ability1.addTarget(target);
this.addAbility(ability1);
Ability ability2 = new LeavesBattlefieldTriggeredAbility(new ReturnFromExileEffect(this.getId(), Zone.BATTLEFIELD), false);
Ability ability2 = new LeavesBattlefieldTriggeredAbility(new ReturnFromExileForSourceEffect(Zone.BATTLEFIELD), false);
this.addAbility(ability2);
}

View file

@ -35,8 +35,8 @@ import mage.Constants.Zone;
import mage.abilities.Ability;
import mage.abilities.common.EntersBattlefieldTriggeredAbility;
import mage.abilities.common.LeavesBattlefieldTriggeredAbility;
import mage.abilities.effects.common.ExileTargetEffect;
import mage.abilities.effects.common.ReturnFromExileEffect;
import mage.abilities.effects.common.ExileTargetForSourceEffect;
import mage.abilities.effects.common.ReturnFromExileForSourceEffect;
import mage.cards.CardImpl;
import mage.filter.common.FilterCreaturePermanent;
import mage.target.Target;
@ -54,12 +54,12 @@ public class JourneyToNowhere extends CardImpl<JourneyToNowhere> {
this.color.setWhite(true);
FilterCreaturePermanent filter = new FilterCreaturePermanent();
filter.setAnother(true);
Ability ability1 = new EntersBattlefieldTriggeredAbility(new ExileTargetEffect(this.getId(), "Journey to Nowhere exile"), false);
Ability ability1 = new EntersBattlefieldTriggeredAbility(new ExileTargetForSourceEffect("Journey to Nowhere exile"), false);
Target target = new TargetPermanent(filter);
target.setRequired(true);
ability1.addTarget(target);
this.addAbility(ability1);
Ability ability2 = new LeavesBattlefieldTriggeredAbility(new ReturnFromExileEffect(this.getId(), Zone.BATTLEFIELD), false);
Ability ability2 = new LeavesBattlefieldTriggeredAbility(new ReturnFromExileForSourceEffect(Zone.BATTLEFIELD), false);
this.addAbility(ability2);
}