From a5488228b85af67338e21a88f1b0e9afb22890a2 Mon Sep 17 00:00:00 2001 From: xenohedron Date: Sun, 9 Jun 2024 22:15:04 -0400 Subject: [PATCH] fix usable zone logic for abilities that function from other zones (#12446) * remove superfluous constructor params * fix Syrix, Carrier of the Flame * standardize Zone = Battlefield * rename class * remove redundant class * add docs * adjustment --- .../mage/cards/a/AnaxHardenedInTheForge.java | 4 +- .../src/mage/cards/a/ArchghoulOfThraben.java | 4 +- .../cards/a/AzlaskTheSwellingScourge.java | 4 +- .../src/mage/cards/b/BasrisLieutenant.java | 4 +- Mage.Sets/src/mage/cards/b/BloodArtist.java | 4 +- .../src/mage/cards/b/ButcherOfMalakir.java | 4 +- .../src/mage/cards/c/CacklingCulprit.java | 4 +- .../src/mage/cards/c/CaldaiaGuardian.java | 4 +- .../src/mage/cards/c/ColfenorTheLastYew.java | 6 +- .../src/mage/cards/c/CordialVampire.java | 4 +- .../src/mage/cards/c/CruelCelebrant.java | 5 +- Mage.Sets/src/mage/cards/d/DeathTyrant.java | 4 +- Mage.Sets/src/mage/cards/d/DeathsOasis.java | 5 +- .../src/mage/cards/d/DragonKamisEgg.java | 4 +- Mage.Sets/src/mage/cards/d/DrossScorpion.java | 4 +- Mage.Sets/src/mage/cards/h/HeadlessRider.java | 4 +- .../src/mage/cards/k/KalastriaHighborn.java | 4 +- Mage.Sets/src/mage/cards/l/Lifeline.java | 2 +- .../mage/cards/m/MiaraThornOfTheGlade.java | 4 +- .../src/mage/cards/m/MidnightEntourage.java | 4 +- .../mage/cards/n/NickValentinePrivateEye.java | 4 +- .../src/mage/cards/o/OdricsOutrider.java | 4 +- .../src/mage/cards/o/OmnathLocusOfRage.java | 4 +- .../src/mage/cards/p/PanickedBystander.java | 4 +- Mage.Sets/src/mage/cards/p/PashalikMons.java | 4 +- Mage.Sets/src/mage/cards/p/PawnOfUlamog.java | 4 +- .../mage/cards/p/PolukranosEngineOfRuin.java | 4 +- .../src/mage/cards/r/RotlungReanimator.java | 4 +- .../src/mage/cards/r/RundveltHordemaster.java | 4 +- .../src/mage/cards/s/ScionOfOpulence.java | 4 +- .../src/mage/cards/s/SelhoffOccultist.java | 4 +- .../src/mage/cards/s/SkirkDrillSergeant.java | 4 +- .../src/mage/cards/s/SlurrkAllIngesting.java | 4 +- .../mage/cards/s/SyrixCarrierOfTheFlame.java | 2 +- .../src/mage/cards/t/TotentanzSwarmPiper.java | 4 +- Mage.Sets/src/mage/cards/u/UndeadAugur.java | 4 +- Mage.Sets/src/mage/cards/v/VengefulDead.java | 4 +- .../src/mage/cards/v/VoldarenBloodcaster.java | 4 +- .../src/mage/cards/w/WarbeastOfGorgoroth.java | 4 +- Mage.Sets/src/mage/cards/w/WarteyeWitch.java | 4 +- .../src/mage/cards/w/WaywardDisciple.java | 4 +- .../src/mage/cards/w/WeddingCrasher.java | 4 +- .../src/mage/cards/x/XathridNecromancer.java | 4 +- .../src/mage/cards/z/ZulaportCutthroat.java | 4 +- .../ncc/SyrixCarrierOfTheFlameTest.java | 6 +- .../mage/abilities/TriggeredAbilityImpl.java | 6 ++ .../common/DiesCreatureTriggeredAbility.java | 6 +- ...reatureOrPlaneswalkerTriggeredAbility.java | 66 ------------------- ...=> DiesThisOrAnotherTriggeredAbility.java} | 17 ++--- ...aveFromBattlefieldAllTriggeredAbility.java | 4 +- ...FromBattlefieldSourceTriggeredAbility.java | 2 +- 51 files changed, 111 insertions(+), 172 deletions(-) delete mode 100644 Mage/src/main/java/mage/abilities/common/DiesThisOrAnotherCreatureOrPlaneswalkerTriggeredAbility.java rename Mage/src/main/java/mage/abilities/common/{DiesThisOrAnotherCreatureTriggeredAbility.java => DiesThisOrAnotherTriggeredAbility.java} (72%) diff --git a/Mage.Sets/src/mage/cards/a/AnaxHardenedInTheForge.java b/Mage.Sets/src/mage/cards/a/AnaxHardenedInTheForge.java index e470fa8f651..acdf5ce5e8e 100644 --- a/Mage.Sets/src/mage/cards/a/AnaxHardenedInTheForge.java +++ b/Mage.Sets/src/mage/cards/a/AnaxHardenedInTheForge.java @@ -14,7 +14,7 @@ import mage.game.events.ZoneChangeEvent; import mage.game.permanent.token.SatyrCantBlockToken; import java.util.UUID; -import mage.abilities.common.DiesThisOrAnotherCreatureTriggeredAbility; +import mage.abilities.common.DiesThisOrAnotherTriggeredAbility; import mage.abilities.effects.Effect; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.permanent.TokenPredicate; @@ -61,7 +61,7 @@ public final class AnaxHardenedInTheForge extends CardImpl { } } -class AnaxHardenedInTheForgeTriggeredAbility extends DiesThisOrAnotherCreatureTriggeredAbility { +class AnaxHardenedInTheForgeTriggeredAbility extends DiesThisOrAnotherTriggeredAbility { AnaxHardenedInTheForgeTriggeredAbility(Effect effect, boolean optional, FilterCreaturePermanent filter) { super(effect, optional, filter); diff --git a/Mage.Sets/src/mage/cards/a/ArchghoulOfThraben.java b/Mage.Sets/src/mage/cards/a/ArchghoulOfThraben.java index 6681fdfb166..aa0df49522b 100644 --- a/Mage.Sets/src/mage/cards/a/ArchghoulOfThraben.java +++ b/Mage.Sets/src/mage/cards/a/ArchghoulOfThraben.java @@ -3,7 +3,7 @@ package mage.cards.a; import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; -import mage.abilities.common.DiesThisOrAnotherCreatureTriggeredAbility; +import mage.abilities.common.DiesThisOrAnotherTriggeredAbility; import mage.abilities.effects.OneShotEffect; import mage.cards.Card; import mage.cards.CardsImpl; @@ -36,7 +36,7 @@ public final class ArchghoulOfThraben extends CardImpl { // Whenever Archghoul of Thraben or another Zombie you control dies, look at the top card of your library. // If it's a Zombie card, you may reveal it and put it into your hand. // If you don't put the card into your hand, you may put it into your graveyard. - this.addAbility(new DiesThisOrAnotherCreatureTriggeredAbility(new ArchghoulOfThrabenEffect(), false, filter)); + this.addAbility(new DiesThisOrAnotherTriggeredAbility(new ArchghoulOfThrabenEffect(), false, filter)); } private ArchghoulOfThraben(final ArchghoulOfThraben card) { diff --git a/Mage.Sets/src/mage/cards/a/AzlaskTheSwellingScourge.java b/Mage.Sets/src/mage/cards/a/AzlaskTheSwellingScourge.java index 4fd784ed881..49aecc6b63a 100644 --- a/Mage.Sets/src/mage/cards/a/AzlaskTheSwellingScourge.java +++ b/Mage.Sets/src/mage/cards/a/AzlaskTheSwellingScourge.java @@ -2,7 +2,7 @@ package mage.cards.a; import mage.MageInt; import mage.abilities.Ability; -import mage.abilities.common.DiesThisOrAnotherCreatureTriggeredAbility; +import mage.abilities.common.DiesThisOrAnotherTriggeredAbility; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.mana.ManaCostsImpl; import mage.abilities.dynamicvalue.common.SourceControllerCountersCount; @@ -46,7 +46,7 @@ public final class AzlaskTheSwellingScourge extends CardImpl { this.toughness = new MageInt(2); // Whenever Azlask, the Swelling Scourge or another colorless creature you control dies, you get an experience counter. - this.addAbility(new DiesThisOrAnotherCreatureTriggeredAbility(new AddCountersPlayersEffect( + this.addAbility(new DiesThisOrAnotherTriggeredAbility(new AddCountersPlayersEffect( CounterType.EXPERIENCE.createInstance(), TargetController.YOU ), false, filter)); diff --git a/Mage.Sets/src/mage/cards/b/BasrisLieutenant.java b/Mage.Sets/src/mage/cards/b/BasrisLieutenant.java index 443a61a4bc3..3780e084abf 100644 --- a/Mage.Sets/src/mage/cards/b/BasrisLieutenant.java +++ b/Mage.Sets/src/mage/cards/b/BasrisLieutenant.java @@ -4,7 +4,7 @@ import java.util.UUID; import mage.MageInt; import mage.MageObject; import mage.abilities.Ability; -import mage.abilities.common.DiesThisOrAnotherCreatureTriggeredAbility; +import mage.abilities.common.DiesThisOrAnotherTriggeredAbility; import mage.abilities.common.EntersBattlefieldTriggeredAbility; import mage.abilities.effects.common.CreateTokenEffect; import mage.abilities.effects.common.counter.AddCountersTargetEffect; @@ -57,7 +57,7 @@ public final class BasrisLieutenant extends CardImpl { this.addAbility(ability); // Whenever Basri's Lieutenant or another creature you control dies, if it had a +1/+1 counter on it, create a 2/2 white Knight creature token with vigilance. - this.addAbility(new DiesThisOrAnotherCreatureTriggeredAbility( + this.addAbility(new DiesThisOrAnotherTriggeredAbility( new CreateTokenEffect(new KnightToken()).setText("if it had a +1/+1 counter on it, create a 2/2 white Knight creature token with vigilance"), false, controlledCreatureWithP1P1CounterFilter diff --git a/Mage.Sets/src/mage/cards/b/BloodArtist.java b/Mage.Sets/src/mage/cards/b/BloodArtist.java index 3c7dcbb2287..7d70186b9b8 100644 --- a/Mage.Sets/src/mage/cards/b/BloodArtist.java +++ b/Mage.Sets/src/mage/cards/b/BloodArtist.java @@ -4,7 +4,7 @@ package mage.cards.b; import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; -import mage.abilities.common.DiesThisOrAnotherCreatureTriggeredAbility; +import mage.abilities.common.DiesThisOrAnotherTriggeredAbility; import mage.abilities.effects.common.GainLifeEffect; import mage.abilities.effects.common.LoseLifeTargetEffect; import mage.cards.CardImpl; @@ -28,7 +28,7 @@ public final class BloodArtist extends CardImpl { this.toughness = new MageInt(1); // Whenever Blood Artist or another creature dies, target player loses 1 life and you gain 1 life. - Ability ability = new DiesThisOrAnotherCreatureTriggeredAbility(new LoseLifeTargetEffect(1), false); + Ability ability = new DiesThisOrAnotherTriggeredAbility(new LoseLifeTargetEffect(1), false); ability.addEffect(new GainLifeEffect(1).concatBy("and")); Target target = new TargetPlayer(); ability.addTarget(target); diff --git a/Mage.Sets/src/mage/cards/b/ButcherOfMalakir.java b/Mage.Sets/src/mage/cards/b/ButcherOfMalakir.java index be6995a79db..ad9f6f08600 100644 --- a/Mage.Sets/src/mage/cards/b/ButcherOfMalakir.java +++ b/Mage.Sets/src/mage/cards/b/ButcherOfMalakir.java @@ -3,7 +3,7 @@ package mage.cards.b; import java.util.UUID; import mage.MageInt; -import mage.abilities.common.DiesThisOrAnotherCreatureTriggeredAbility; +import mage.abilities.common.DiesThisOrAnotherTriggeredAbility; import mage.abilities.effects.common.SacrificeOpponentsEffect; import mage.abilities.keyword.FlyingAbility; import mage.cards.CardImpl; @@ -36,7 +36,7 @@ public final class ButcherOfMalakir extends CardImpl { this.addAbility(FlyingAbility.getInstance()); // Whenever Butcher of Malakir or another creature you control dies, each opponent sacrifices a creature. - this.addAbility(new DiesThisOrAnotherCreatureTriggeredAbility(new SacrificeOpponentsEffect(StaticFilters.FILTER_PERMANENT_CREATURE), false, filter)); + this.addAbility(new DiesThisOrAnotherTriggeredAbility(new SacrificeOpponentsEffect(StaticFilters.FILTER_PERMANENT_CREATURE), false, filter)); } private ButcherOfMalakir(final ButcherOfMalakir card) { diff --git a/Mage.Sets/src/mage/cards/c/CacklingCulprit.java b/Mage.Sets/src/mage/cards/c/CacklingCulprit.java index 0d6ed4dc548..c3cbc192ecf 100644 --- a/Mage.Sets/src/mage/cards/c/CacklingCulprit.java +++ b/Mage.Sets/src/mage/cards/c/CacklingCulprit.java @@ -1,7 +1,7 @@ package mage.cards.c; import mage.MageInt; -import mage.abilities.common.DiesThisOrAnotherCreatureTriggeredAbility; +import mage.abilities.common.DiesThisOrAnotherTriggeredAbility; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.mana.ManaCostsImpl; import mage.abilities.effects.common.GainLifeEffect; @@ -32,7 +32,7 @@ public final class CacklingCulprit extends CardImpl { this.nightCard = true; // Whenever Cackling Culprit or another creature you control dies, you gain 1 life. - this.addAbility(new DiesThisOrAnotherCreatureTriggeredAbility( + this.addAbility(new DiesThisOrAnotherTriggeredAbility( new GainLifeEffect(1), false, StaticFilters.FILTER_CONTROLLED_CREATURE )); diff --git a/Mage.Sets/src/mage/cards/c/CaldaiaGuardian.java b/Mage.Sets/src/mage/cards/c/CaldaiaGuardian.java index b431dfc8016..3955905c1f0 100644 --- a/Mage.Sets/src/mage/cards/c/CaldaiaGuardian.java +++ b/Mage.Sets/src/mage/cards/c/CaldaiaGuardian.java @@ -1,7 +1,7 @@ package mage.cards.c; import mage.MageInt; -import mage.abilities.common.DiesThisOrAnotherCreatureTriggeredAbility; +import mage.abilities.common.DiesThisOrAnotherTriggeredAbility; import mage.abilities.effects.common.CreateTokenEffect; import mage.abilities.keyword.BlitzAbility; import mage.cards.CardImpl; @@ -37,7 +37,7 @@ public final class CaldaiaGuardian extends CardImpl { this.toughness = new MageInt(3); // Whenever Caldaia Guardian or another creature you control with mana value 4 or greater dies, create two 1/1 green and white Citizen creature tokens. - this.addAbility(new DiesThisOrAnotherCreatureTriggeredAbility( + this.addAbility(new DiesThisOrAnotherTriggeredAbility( new CreateTokenEffect(new CitizenGreenWhiteToken(), 2), false, filter )); diff --git a/Mage.Sets/src/mage/cards/c/ColfenorTheLastYew.java b/Mage.Sets/src/mage/cards/c/ColfenorTheLastYew.java index 55c07ebbf8d..7c4f5018f3e 100644 --- a/Mage.Sets/src/mage/cards/c/ColfenorTheLastYew.java +++ b/Mage.Sets/src/mage/cards/c/ColfenorTheLastYew.java @@ -2,7 +2,7 @@ package mage.cards.c; import mage.MageInt; import mage.MageObjectReference; -import mage.abilities.common.DiesThisOrAnotherCreatureTriggeredAbility; +import mage.abilities.common.DiesThisOrAnotherTriggeredAbility; import mage.abilities.effects.common.ReturnFromGraveyardToHandTargetEffect; import mage.abilities.keyword.ReachAbility; import mage.abilities.keyword.VigilanceAbility; @@ -57,7 +57,7 @@ public final class ColfenorTheLastYew extends CardImpl { } } -class ColfenorTheLastYewTriggeredAbility extends DiesThisOrAnotherCreatureTriggeredAbility { +class ColfenorTheLastYewTriggeredAbility extends DiesThisOrAnotherTriggeredAbility { ColfenorTheLastYewTriggeredAbility() { super(new ReturnFromGraveyardToHandTargetEffect(), false, StaticFilters.FILTER_CONTROLLED_CREATURE); @@ -68,7 +68,7 @@ class ColfenorTheLastYewTriggeredAbility extends DiesThisOrAnotherCreatureTrigge } @Override - public DiesThisOrAnotherCreatureTriggeredAbility copy() { + public DiesThisOrAnotherTriggeredAbility copy() { return new ColfenorTheLastYewTriggeredAbility(this); } diff --git a/Mage.Sets/src/mage/cards/c/CordialVampire.java b/Mage.Sets/src/mage/cards/c/CordialVampire.java index 784664bc84d..cc143848913 100644 --- a/Mage.Sets/src/mage/cards/c/CordialVampire.java +++ b/Mage.Sets/src/mage/cards/c/CordialVampire.java @@ -1,7 +1,7 @@ package mage.cards.c; import mage.MageInt; -import mage.abilities.common.DiesThisOrAnotherCreatureTriggeredAbility; +import mage.abilities.common.DiesThisOrAnotherTriggeredAbility; import mage.abilities.effects.common.counter.AddCountersAllEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; @@ -29,7 +29,7 @@ public final class CordialVampire extends CardImpl { this.toughness = new MageInt(1); // Whenever Cordial Vampire or another creature dies, put a +1/+1 counter on each vampire creature you control. - this.addAbility(new DiesThisOrAnotherCreatureTriggeredAbility( + this.addAbility(new DiesThisOrAnotherTriggeredAbility( new AddCountersAllEffect(CounterType.P1P1.createInstance(), filter), false )); } diff --git a/Mage.Sets/src/mage/cards/c/CruelCelebrant.java b/Mage.Sets/src/mage/cards/c/CruelCelebrant.java index 1046fcef6d0..8db9cb10db4 100644 --- a/Mage.Sets/src/mage/cards/c/CruelCelebrant.java +++ b/Mage.Sets/src/mage/cards/c/CruelCelebrant.java @@ -1,9 +1,8 @@ - package mage.cards.c; import mage.MageInt; import mage.abilities.Ability; -import mage.abilities.common.DiesThisOrAnotherCreatureOrPlaneswalkerTriggeredAbility; +import mage.abilities.common.DiesThisOrAnotherTriggeredAbility; import mage.abilities.effects.common.GainLifeEffect; import mage.abilities.effects.common.LoseLifeOpponentsEffect; import mage.cards.CardImpl; @@ -34,7 +33,7 @@ public final class CruelCelebrant extends CardImpl { this.toughness = new MageInt(2); // Whenever Cruel Celebrant or another creature or planeswalker you control dies, each opponent loses 1 life and you gain 1 life. - Ability ability = new DiesThisOrAnotherCreatureOrPlaneswalkerTriggeredAbility(new LoseLifeOpponentsEffect(1), false, filter); + Ability ability = new DiesThisOrAnotherTriggeredAbility(new LoseLifeOpponentsEffect(1), false, filter); ability.addEffect(new GainLifeEffect(1).concatBy("and")); this.addAbility(ability); diff --git a/Mage.Sets/src/mage/cards/d/DeathTyrant.java b/Mage.Sets/src/mage/cards/d/DeathTyrant.java index b391cf238fa..5c2826e3451 100644 --- a/Mage.Sets/src/mage/cards/d/DeathTyrant.java +++ b/Mage.Sets/src/mage/cards/d/DeathTyrant.java @@ -59,8 +59,8 @@ public final class DeathTyrant extends CardImpl { class DeathTyrantTriggeredAbility extends TriggeredAbilityImpl { - public DeathTyrantTriggeredAbility() { - super(Zone.ALL, new CreateTokenEffect(new ZombieToken())); + DeathTyrantTriggeredAbility() { + super(Zone.BATTLEFIELD, new CreateTokenEffect(new ZombieToken())); setTriggerPhrase("Whenever an attacking creature you control or a blocking creature an opponent controls dies, "); } diff --git a/Mage.Sets/src/mage/cards/d/DeathsOasis.java b/Mage.Sets/src/mage/cards/d/DeathsOasis.java index d4ff9a10f91..c156ca86a39 100644 --- a/Mage.Sets/src/mage/cards/d/DeathsOasis.java +++ b/Mage.Sets/src/mage/cards/d/DeathsOasis.java @@ -17,12 +17,9 @@ import mage.constants.ComparisonType; import mage.constants.Outcome; import mage.constants.Zone; import mage.filter.FilterCard; -import mage.filter.FilterPermanent; import mage.filter.StaticFilters; -import mage.filter.common.FilterControlledCreaturePermanent; import mage.filter.common.FilterCreatureCard; import mage.filter.predicate.mageobject.ManaValuePredicate; -import mage.filter.predicate.permanent.TokenPredicate; import mage.game.Game; import mage.game.events.GameEvent; import mage.game.events.ZoneChangeEvent; @@ -67,7 +64,7 @@ public final class DeathsOasis extends CardImpl { class DeathsOasisTriggeredAbility extends DiesCreatureTriggeredAbility { DeathsOasisTriggeredAbility() { - super(Zone.BATTLEFIELD, null, false, StaticFilters.FILTER_CONTROLLED_CREATURE_NON_TOKEN, false); + super(null, false, StaticFilters.FILTER_CONTROLLED_CREATURE_NON_TOKEN, false); } private DeathsOasisTriggeredAbility(final DeathsOasisTriggeredAbility ability) { diff --git a/Mage.Sets/src/mage/cards/d/DragonKamisEgg.java b/Mage.Sets/src/mage/cards/d/DragonKamisEgg.java index ec980a36827..6e6b8c2d588 100644 --- a/Mage.Sets/src/mage/cards/d/DragonKamisEgg.java +++ b/Mage.Sets/src/mage/cards/d/DragonKamisEgg.java @@ -2,7 +2,7 @@ package mage.cards.d; import mage.MageInt; import mage.abilities.Ability; -import mage.abilities.common.DiesThisOrAnotherCreatureTriggeredAbility; +import mage.abilities.common.DiesThisOrAnotherTriggeredAbility; import mage.abilities.effects.OneShotEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; @@ -39,7 +39,7 @@ public final class DragonKamisEgg extends CardImpl { this.nightCard = true; // Whenever Dragon-Kami's Egg or a Dragon you control dies, you may cast a creature spell from among cards you own in exile with hatching counters on them without paying its mana cost. - this.addAbility(new DiesThisOrAnotherCreatureTriggeredAbility( + this.addAbility(new DiesThisOrAnotherTriggeredAbility( new DragonKamisEggEffect(), false, filter ).setTriggerPhrase("Whenever {this} or a Dragon you control dies, ")); } diff --git a/Mage.Sets/src/mage/cards/d/DrossScorpion.java b/Mage.Sets/src/mage/cards/d/DrossScorpion.java index c5e3b0c3bc5..94e0d5223ce 100644 --- a/Mage.Sets/src/mage/cards/d/DrossScorpion.java +++ b/Mage.Sets/src/mage/cards/d/DrossScorpion.java @@ -4,7 +4,7 @@ package mage.cards.d; import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; -import mage.abilities.common.DiesThisOrAnotherCreatureTriggeredAbility; +import mage.abilities.common.DiesThisOrAnotherTriggeredAbility; import mage.abilities.effects.common.UntapTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; @@ -32,7 +32,7 @@ public final class DrossScorpion extends CardImpl { this.toughness = new MageInt(1); // Whenever Dross Scorpion or another artifact creature dies, you may untap target artifact. - Ability ability = new DiesThisOrAnotherCreatureTriggeredAbility(new UntapTargetEffect(), true, filter); + Ability ability = new DiesThisOrAnotherTriggeredAbility(new UntapTargetEffect(), true, filter); ability.addTarget(new TargetArtifactPermanent()); this.addAbility(ability); } diff --git a/Mage.Sets/src/mage/cards/h/HeadlessRider.java b/Mage.Sets/src/mage/cards/h/HeadlessRider.java index 30540a34783..a98223b1a51 100644 --- a/Mage.Sets/src/mage/cards/h/HeadlessRider.java +++ b/Mage.Sets/src/mage/cards/h/HeadlessRider.java @@ -1,7 +1,7 @@ package mage.cards.h; import mage.MageInt; -import mage.abilities.common.DiesThisOrAnotherCreatureTriggeredAbility; +import mage.abilities.common.DiesThisOrAnotherTriggeredAbility; import mage.abilities.effects.common.CreateTokenEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; @@ -34,7 +34,7 @@ public final class HeadlessRider extends CardImpl { this.toughness = new MageInt(1); // Wheenver Headless Rider or another nontoken Zombie you control dies, create a 2/2 black Zombie creature token. - this.addAbility(new DiesThisOrAnotherCreatureTriggeredAbility( + this.addAbility(new DiesThisOrAnotherTriggeredAbility( new CreateTokenEffect(new ZombieToken()), false, filter )); } diff --git a/Mage.Sets/src/mage/cards/k/KalastriaHighborn.java b/Mage.Sets/src/mage/cards/k/KalastriaHighborn.java index f581405a460..0fdb1e80498 100644 --- a/Mage.Sets/src/mage/cards/k/KalastriaHighborn.java +++ b/Mage.Sets/src/mage/cards/k/KalastriaHighborn.java @@ -3,7 +3,7 @@ package mage.cards.k; import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; -import mage.abilities.common.DiesThisOrAnotherCreatureTriggeredAbility; +import mage.abilities.common.DiesThisOrAnotherTriggeredAbility; import mage.abilities.costs.mana.ManaCostsImpl; import mage.abilities.effects.OneShotEffect; import mage.abilities.effects.common.DoIfCostPaid; @@ -40,7 +40,7 @@ public final class KalastriaHighborn extends CardImpl { this.toughness = new MageInt(2); // Whenever Kalastria Highborn or another Vampire you control dies, you may pay {B}. If you do, target player loses 2 life and you gain 2 life. - Ability ability = new DiesThisOrAnotherCreatureTriggeredAbility(new DoIfCostPaid(new LoseGainEffect(), new ManaCostsImpl<>("{B}")), false, filter); + Ability ability = new DiesThisOrAnotherTriggeredAbility(new DoIfCostPaid(new LoseGainEffect(), new ManaCostsImpl<>("{B}")), false, filter); ability.addTarget(new TargetPlayer()); this.addAbility(ability); } diff --git a/Mage.Sets/src/mage/cards/l/Lifeline.java b/Mage.Sets/src/mage/cards/l/Lifeline.java index 7a22efbc1fb..cbdfb9b0447 100644 --- a/Mage.Sets/src/mage/cards/l/Lifeline.java +++ b/Mage.Sets/src/mage/cards/l/Lifeline.java @@ -30,7 +30,7 @@ public final class Lifeline extends CardImpl { // Whenever a creature dies, if another creature is on the battlefield, return the first card to the battlefield under its owner's control at the beginning of the next end step. Ability ability = new ConditionalInterveningIfTriggeredAbility( - new DiesCreatureTriggeredAbility(Zone.BATTLEFIELD, new LifelineEffect(), false, StaticFilters.FILTER_PERMANENT_CREATURE, true), + new DiesCreatureTriggeredAbility(new LifelineEffect(), false, StaticFilters.FILTER_PERMANENT_CREATURE, true), new PermanentsOnTheBattlefieldCondition(StaticFilters.FILTER_PERMANENT_CREATURE, false), "Whenever a creature dies, if another creature is on the battlefield, return the first card to the battlefield under its owner's control at the beginning of the next end step."); this.addAbility(ability); diff --git a/Mage.Sets/src/mage/cards/m/MiaraThornOfTheGlade.java b/Mage.Sets/src/mage/cards/m/MiaraThornOfTheGlade.java index 412d38bfe5c..9110d725e00 100644 --- a/Mage.Sets/src/mage/cards/m/MiaraThornOfTheGlade.java +++ b/Mage.Sets/src/mage/cards/m/MiaraThornOfTheGlade.java @@ -1,7 +1,7 @@ package mage.cards.m; import mage.MageInt; -import mage.abilities.common.DiesThisOrAnotherCreatureTriggeredAbility; +import mage.abilities.common.DiesThisOrAnotherTriggeredAbility; import mage.abilities.costs.CompositeCost; import mage.abilities.costs.common.PayLifeCost; import mage.abilities.costs.mana.GenericManaCost; @@ -39,7 +39,7 @@ public final class MiaraThornOfTheGlade extends CardImpl { this.toughness = new MageInt(2); // Whenever Miara, Thorn of the Glade or another Elf you control dies, you may pay {1} and 1 life. If you do, draw a card. - this.addAbility(new DiesThisOrAnotherCreatureTriggeredAbility( + this.addAbility(new DiesThisOrAnotherTriggeredAbility( new DoIfCostPaid( new DrawCardSourceControllerEffect(1), new CompositeCost( diff --git a/Mage.Sets/src/mage/cards/m/MidnightEntourage.java b/Mage.Sets/src/mage/cards/m/MidnightEntourage.java index ee23012cd22..2c6aaadb492 100644 --- a/Mage.Sets/src/mage/cards/m/MidnightEntourage.java +++ b/Mage.Sets/src/mage/cards/m/MidnightEntourage.java @@ -2,7 +2,7 @@ package mage.cards.m; import mage.MageInt; import mage.abilities.Ability; -import mage.abilities.common.DiesThisOrAnotherCreatureTriggeredAbility; +import mage.abilities.common.DiesThisOrAnotherTriggeredAbility; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.effects.Effect; import mage.abilities.effects.common.DrawCardSourceControllerEffect; @@ -39,7 +39,7 @@ public final class MidnightEntourage extends CardImpl { this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new BoostAllEffect(1, 1, Duration.WhileOnBattlefield, filter, true))); // Whenever Midnight Entourage or another Aetherborn you control dies, you draw a card and you lose 1 life. - Ability ability = new DiesThisOrAnotherCreatureTriggeredAbility(new DrawCardSourceControllerEffect(1, "you"), false, filter); + Ability ability = new DiesThisOrAnotherTriggeredAbility(new DrawCardSourceControllerEffect(1, "you"), false, filter); Effect effect = new LoseLifeSourceControllerEffect(1); ability.addEffect(effect.concatBy("and")); this.addAbility(ability); diff --git a/Mage.Sets/src/mage/cards/n/NickValentinePrivateEye.java b/Mage.Sets/src/mage/cards/n/NickValentinePrivateEye.java index 78189c5ca2e..4402c48d464 100644 --- a/Mage.Sets/src/mage/cards/n/NickValentinePrivateEye.java +++ b/Mage.Sets/src/mage/cards/n/NickValentinePrivateEye.java @@ -3,7 +3,7 @@ package mage.cards.n; import java.util.UUID; import mage.MageInt; -import mage.abilities.common.DiesThisOrAnotherCreatureTriggeredAbility; +import mage.abilities.common.DiesThisOrAnotherTriggeredAbility; import mage.abilities.common.SimpleEvasionAbility; import mage.abilities.effects.common.combat.CantBeBlockedByCreaturesSourceEffect; import mage.abilities.effects.keyword.InvestigateEffect; @@ -46,7 +46,7 @@ public final class NickValentinePrivateEye extends CardImpl { new CantBeBlockedByCreaturesSourceEffect(filterNonArtifact, Duration.WhileOnBattlefield))); // Whenever Nick Valentine or another artifact creature you control dies, you may investigate. - this.addAbility(new DiesThisOrAnotherCreatureTriggeredAbility( + this.addAbility(new DiesThisOrAnotherTriggeredAbility( new InvestigateEffect() .setText("investigate. (To investigate, create a Clue token. " + "It's an artifact with \"{2}, Sacrifice this artifact: Draw a card.\")"), diff --git a/Mage.Sets/src/mage/cards/o/OdricsOutrider.java b/Mage.Sets/src/mage/cards/o/OdricsOutrider.java index 28c5a7ef0db..90d21d9abdf 100644 --- a/Mage.Sets/src/mage/cards/o/OdricsOutrider.java +++ b/Mage.Sets/src/mage/cards/o/OdricsOutrider.java @@ -2,7 +2,7 @@ package mage.cards.o; import mage.MageInt; import mage.abilities.Ability; -import mage.abilities.common.DiesThisOrAnotherCreatureTriggeredAbility; +import mage.abilities.common.DiesThisOrAnotherTriggeredAbility; import mage.abilities.effects.common.counter.AddCountersTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; @@ -28,7 +28,7 @@ public final class OdricsOutrider extends CardImpl { this.toughness = new MageInt(4); // Whenever Odric's Outrider or another creature you control dies, put a +1/+1 counter on target creature you control. - Ability ability = new DiesThisOrAnotherCreatureTriggeredAbility( + Ability ability = new DiesThisOrAnotherTriggeredAbility( new AddCountersTargetEffect(CounterType.P1P1.createInstance()), false, StaticFilters.FILTER_CONTROLLED_CREATURE ); diff --git a/Mage.Sets/src/mage/cards/o/OmnathLocusOfRage.java b/Mage.Sets/src/mage/cards/o/OmnathLocusOfRage.java index 2defbf27541..fbf81cf64d4 100644 --- a/Mage.Sets/src/mage/cards/o/OmnathLocusOfRage.java +++ b/Mage.Sets/src/mage/cards/o/OmnathLocusOfRage.java @@ -4,7 +4,7 @@ package mage.cards.o; import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; -import mage.abilities.common.DiesThisOrAnotherCreatureTriggeredAbility; +import mage.abilities.common.DiesThisOrAnotherTriggeredAbility; import mage.abilities.common.LandfallAbility; import mage.abilities.effects.common.CreateTokenEffect; import mage.abilities.effects.common.DamageTargetEffect; @@ -42,7 +42,7 @@ public final class OmnathLocusOfRage extends CardImpl { this.addAbility(new LandfallAbility(new CreateTokenEffect(new OmnathElementalToken()), false)); // Whenever Omnath, Locus of Rage or another Elemental you control dies, Omnath deals 3 damage to any target. - Ability ability = new DiesThisOrAnotherCreatureTriggeredAbility(new DamageTargetEffect(3), false, filter); + Ability ability = new DiesThisOrAnotherTriggeredAbility(new DamageTargetEffect(3), false, filter); ability.addTarget(new TargetAnyTarget()); this.addAbility(ability); } diff --git a/Mage.Sets/src/mage/cards/p/PanickedBystander.java b/Mage.Sets/src/mage/cards/p/PanickedBystander.java index 3b16985cbee..696650dc4f4 100644 --- a/Mage.Sets/src/mage/cards/p/PanickedBystander.java +++ b/Mage.Sets/src/mage/cards/p/PanickedBystander.java @@ -2,7 +2,7 @@ package mage.cards.p; import mage.MageInt; import mage.abilities.common.BeginningOfEndStepTriggeredAbility; -import mage.abilities.common.DiesThisOrAnotherCreatureTriggeredAbility; +import mage.abilities.common.DiesThisOrAnotherTriggeredAbility; import mage.abilities.condition.Condition; import mage.abilities.condition.common.YouGainedLifeCondition; import mage.abilities.effects.common.GainLifeEffect; @@ -33,7 +33,7 @@ public final class PanickedBystander extends CardImpl { this.secondSideCardClazz = mage.cards.c.CacklingCulprit.class; // Whenever Panicked Bystander or another creature you control dies, you gain 1 life. - this.addAbility(new DiesThisOrAnotherCreatureTriggeredAbility( + this.addAbility(new DiesThisOrAnotherTriggeredAbility( new GainLifeEffect(1), false, StaticFilters.FILTER_CONTROLLED_CREATURE )); diff --git a/Mage.Sets/src/mage/cards/p/PashalikMons.java b/Mage.Sets/src/mage/cards/p/PashalikMons.java index dbf34c9f14d..90cd1da5c6e 100644 --- a/Mage.Sets/src/mage/cards/p/PashalikMons.java +++ b/Mage.Sets/src/mage/cards/p/PashalikMons.java @@ -2,7 +2,7 @@ package mage.cards.p; import mage.MageInt; import mage.abilities.Ability; -import mage.abilities.common.DiesThisOrAnotherCreatureTriggeredAbility; +import mage.abilities.common.DiesThisOrAnotherTriggeredAbility; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.common.SacrificeTargetCost; import mage.abilities.costs.mana.ManaCostsImpl; @@ -47,7 +47,7 @@ public final class PashalikMons extends CardImpl { this.toughness = new MageInt(2); // Whenever Pashalik Mons or another Goblin you control dies, Pashalik Mons deals 1 damage to any target. - Ability ability = new DiesThisOrAnotherCreatureTriggeredAbility( + Ability ability = new DiesThisOrAnotherTriggeredAbility( new DamageTargetEffect(1), false, filter ); ability.addTarget(new TargetAnyTarget()); diff --git a/Mage.Sets/src/mage/cards/p/PawnOfUlamog.java b/Mage.Sets/src/mage/cards/p/PawnOfUlamog.java index 8b4acc73d8c..aceed637e0d 100644 --- a/Mage.Sets/src/mage/cards/p/PawnOfUlamog.java +++ b/Mage.Sets/src/mage/cards/p/PawnOfUlamog.java @@ -2,7 +2,7 @@ package mage.cards.p; import java.util.UUID; import mage.MageInt; -import mage.abilities.common.DiesThisOrAnotherCreatureTriggeredAbility; +import mage.abilities.common.DiesThisOrAnotherTriggeredAbility; import mage.abilities.effects.common.CreateTokenEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; @@ -36,7 +36,7 @@ public final class PawnOfUlamog extends CardImpl { // Whenever Pawn of Ulamog or another nontoken creature you control dies, you may create a 0/1 colorless // Eldrazi Spawn creature token. It has "Sacrifice this creature: Add {C}." - this.addAbility(new DiesThisOrAnotherCreatureTriggeredAbility( + this.addAbility(new DiesThisOrAnotherTriggeredAbility( new CreateTokenEffect(new EldraziSpawnToken()).withTextOptions(true), true, filter)); } diff --git a/Mage.Sets/src/mage/cards/p/PolukranosEngineOfRuin.java b/Mage.Sets/src/mage/cards/p/PolukranosEngineOfRuin.java index 27279a7f45f..8b92c0f466c 100644 --- a/Mage.Sets/src/mage/cards/p/PolukranosEngineOfRuin.java +++ b/Mage.Sets/src/mage/cards/p/PolukranosEngineOfRuin.java @@ -2,7 +2,7 @@ package mage.cards.p; import mage.MageInt; import mage.abilities.Ability; -import mage.abilities.common.DiesThisOrAnotherCreatureTriggeredAbility; +import mage.abilities.common.DiesThisOrAnotherTriggeredAbility; import mage.abilities.effects.common.CreateTokenEffect; import mage.abilities.keyword.LifelinkAbility; import mage.abilities.keyword.ReachAbility; @@ -50,7 +50,7 @@ public final class PolukranosEngineOfRuin extends CardImpl { this.addAbility(LifelinkAbility.getInstance()); // Whenever Polukranos, Engine of Ruin or another nontoken Hydra you control dies, create a 3/3 green and white Phyrexian Hydra creature token with reach and a 3/3 green and white Phyrexian Hydra creature token with lifelink. - Ability ability = new DiesThisOrAnotherCreatureTriggeredAbility( + Ability ability = new DiesThisOrAnotherTriggeredAbility( new CreateTokenEffect(new PhyrexianHydraWithReachToken()), false, filter ); ability.addEffect(new CreateTokenEffect(new PhyrexianHydraWithLifelinkToken()) diff --git a/Mage.Sets/src/mage/cards/r/RotlungReanimator.java b/Mage.Sets/src/mage/cards/r/RotlungReanimator.java index c21304aa9cb..7975ebd440d 100644 --- a/Mage.Sets/src/mage/cards/r/RotlungReanimator.java +++ b/Mage.Sets/src/mage/cards/r/RotlungReanimator.java @@ -3,7 +3,7 @@ package mage.cards.r; import java.util.UUID; import mage.MageInt; -import mage.abilities.common.DiesThisOrAnotherCreatureTriggeredAbility; +import mage.abilities.common.DiesThisOrAnotherTriggeredAbility; import mage.abilities.effects.common.CreateTokenEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; @@ -28,7 +28,7 @@ public final class RotlungReanimator extends CardImpl { this.toughness = new MageInt(2); // Whenever Rotlung Reanimator or another Cleric dies, create a 2/2 black Zombie creature token. - this.addAbility(new DiesThisOrAnotherCreatureTriggeredAbility(new CreateTokenEffect(new ZombieToken()), false, filter)); + this.addAbility(new DiesThisOrAnotherTriggeredAbility(new CreateTokenEffect(new ZombieToken()), false, filter)); } private RotlungReanimator(final RotlungReanimator card) { diff --git a/Mage.Sets/src/mage/cards/r/RundveltHordemaster.java b/Mage.Sets/src/mage/cards/r/RundveltHordemaster.java index 4dfac2c64c3..d017f5a0ecf 100644 --- a/Mage.Sets/src/mage/cards/r/RundveltHordemaster.java +++ b/Mage.Sets/src/mage/cards/r/RundveltHordemaster.java @@ -2,7 +2,7 @@ package mage.cards.r; import mage.MageInt; import mage.abilities.Ability; -import mage.abilities.common.DiesThisOrAnotherCreatureTriggeredAbility; +import mage.abilities.common.DiesThisOrAnotherTriggeredAbility; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.effects.OneShotEffect; import mage.abilities.effects.common.continuous.BoostControlledEffect; @@ -41,7 +41,7 @@ public final class RundveltHordemaster extends CardImpl { ))); // Whenever Rundvelt Hordemaster or another Goblin you control dies, exile the top card of your library. If it's a Goblin creature card, you may cast that card until the end of your next turn. - this.addAbility(new DiesThisOrAnotherCreatureTriggeredAbility( + this.addAbility(new DiesThisOrAnotherTriggeredAbility( new RundveltHordemasterEffect(), false, filter2 )); } diff --git a/Mage.Sets/src/mage/cards/s/ScionOfOpulence.java b/Mage.Sets/src/mage/cards/s/ScionOfOpulence.java index a435bd39135..706786c8c20 100644 --- a/Mage.Sets/src/mage/cards/s/ScionOfOpulence.java +++ b/Mage.Sets/src/mage/cards/s/ScionOfOpulence.java @@ -2,7 +2,7 @@ package mage.cards.s; import mage.MageInt; import mage.abilities.Ability; -import mage.abilities.common.DiesThisOrAnotherCreatureTriggeredAbility; +import mage.abilities.common.DiesThisOrAnotherTriggeredAbility; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.common.SacrificeTargetCost; import mage.abilities.costs.mana.ManaCostsImpl; @@ -44,7 +44,7 @@ public final class ScionOfOpulence extends CardImpl { this.toughness = new MageInt(1); // Whenever Scion of Opulence or another nontoken Vampire you control dies, create a Treasure token. - this.addAbility(new DiesThisOrAnotherCreatureTriggeredAbility( + this.addAbility(new DiesThisOrAnotherTriggeredAbility( new CreateTokenEffect(new TreasureToken()), false, filter )); diff --git a/Mage.Sets/src/mage/cards/s/SelhoffOccultist.java b/Mage.Sets/src/mage/cards/s/SelhoffOccultist.java index a0597f8b60f..0b605504fce 100644 --- a/Mage.Sets/src/mage/cards/s/SelhoffOccultist.java +++ b/Mage.Sets/src/mage/cards/s/SelhoffOccultist.java @@ -4,7 +4,7 @@ package mage.cards.s; import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; -import mage.abilities.common.DiesThisOrAnotherCreatureTriggeredAbility; +import mage.abilities.common.DiesThisOrAnotherTriggeredAbility; import mage.abilities.effects.common.MillCardsTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; @@ -27,7 +27,7 @@ public final class SelhoffOccultist extends CardImpl { this.toughness = new MageInt(3); // Whenever Selhoff Occultist or another creature dies, target player puts the top card of their library into their graveyard. - Ability ability = new DiesThisOrAnotherCreatureTriggeredAbility(new MillCardsTargetEffect(1), false); + Ability ability = new DiesThisOrAnotherTriggeredAbility(new MillCardsTargetEffect(1), false); ability.addTarget(new TargetPlayer()); this.addAbility(ability); } diff --git a/Mage.Sets/src/mage/cards/s/SkirkDrillSergeant.java b/Mage.Sets/src/mage/cards/s/SkirkDrillSergeant.java index fd43cfc0ed2..24eee359c2c 100644 --- a/Mage.Sets/src/mage/cards/s/SkirkDrillSergeant.java +++ b/Mage.Sets/src/mage/cards/s/SkirkDrillSergeant.java @@ -4,7 +4,7 @@ package mage.cards.s; import mage.MageInt; import mage.MageObject; import mage.abilities.Ability; -import mage.abilities.common.DiesThisOrAnotherCreatureTriggeredAbility; +import mage.abilities.common.DiesThisOrAnotherTriggeredAbility; import mage.abilities.costs.mana.ManaCostsImpl; import mage.abilities.effects.OneShotEffect; import mage.abilities.effects.common.DoIfCostPaid; @@ -43,7 +43,7 @@ public final class SkirkDrillSergeant extends CardImpl { this.toughness = new MageInt(1); // Whenever Skirk Drill Sergeant or another Goblin dies, you may pay {2}{R}. If you do, reveal the top card of your library. If it's a Goblin permanent card, put it onto the battlefield. Otherwise, put it into your graveyard. - this.addAbility(new DiesThisOrAnotherCreatureTriggeredAbility(new DoIfCostPaid(new SkirkDrillSergeantEffect(), new ManaCostsImpl<>("{2}{R}")), false, filter)); + this.addAbility(new DiesThisOrAnotherTriggeredAbility(new DoIfCostPaid(new SkirkDrillSergeantEffect(), new ManaCostsImpl<>("{2}{R}")), false, filter)); } diff --git a/Mage.Sets/src/mage/cards/s/SlurrkAllIngesting.java b/Mage.Sets/src/mage/cards/s/SlurrkAllIngesting.java index 810d9b4d28c..2b1c2ba7ecb 100644 --- a/Mage.Sets/src/mage/cards/s/SlurrkAllIngesting.java +++ b/Mage.Sets/src/mage/cards/s/SlurrkAllIngesting.java @@ -1,7 +1,7 @@ package mage.cards.s; import mage.MageInt; -import mage.abilities.common.DiesThisOrAnotherCreatureTriggeredAbility; +import mage.abilities.common.DiesThisOrAnotherTriggeredAbility; import mage.abilities.common.EntersBattlefieldAbility; import mage.abilities.effects.common.counter.AddCountersAllEffect; import mage.abilities.effects.common.counter.AddCountersSourceEffect; @@ -44,7 +44,7 @@ public final class SlurrkAllIngesting extends CardImpl { )); // Whenever Slurrk or another creature you control dies, if it had a +1/+1 counter on it, put a +1/+1 counter on each creature you control that has a +1/+1 counter on it. - this.addAbility(new DiesThisOrAnotherCreatureTriggeredAbility(new AddCountersAllEffect( + this.addAbility(new DiesThisOrAnotherTriggeredAbility(new AddCountersAllEffect( CounterType.P1P1.createInstance(), filter ).setText("if it had a +1/+1 counter on it, put a +1/+1 counter " + "on each creature you control that has a +1/+1 counter on it"), false, filter)); diff --git a/Mage.Sets/src/mage/cards/s/SyrixCarrierOfTheFlame.java b/Mage.Sets/src/mage/cards/s/SyrixCarrierOfTheFlame.java index df82d3450e2..b6cac498197 100644 --- a/Mage.Sets/src/mage/cards/s/SyrixCarrierOfTheFlame.java +++ b/Mage.Sets/src/mage/cards/s/SyrixCarrierOfTheFlame.java @@ -64,7 +64,7 @@ public class SyrixCarrierOfTheFlame extends CardImpl { this.addAbility(new DiesCreatureTriggeredAbility( Zone.GRAVEYARD, new SyrixCarrierOfTheFlameCastEffect(), - true, + false, // already accounted for in effect anotherPhoenixFilter, false) ); diff --git a/Mage.Sets/src/mage/cards/t/TotentanzSwarmPiper.java b/Mage.Sets/src/mage/cards/t/TotentanzSwarmPiper.java index 91fe5595fe0..ecbbdf204c0 100644 --- a/Mage.Sets/src/mage/cards/t/TotentanzSwarmPiper.java +++ b/Mage.Sets/src/mage/cards/t/TotentanzSwarmPiper.java @@ -2,7 +2,7 @@ package mage.cards.t; import mage.MageInt; import mage.abilities.Ability; -import mage.abilities.common.DiesThisOrAnotherCreatureTriggeredAbility; +import mage.abilities.common.DiesThisOrAnotherTriggeredAbility; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.mana.ManaCostsImpl; import mage.abilities.effects.common.CreateTokenEffect; @@ -45,7 +45,7 @@ public final class TotentanzSwarmPiper extends CardImpl { this.toughness = new MageInt(3); // Whenever Totentanz, Swarm Piper or another nontoken creature you control dies, create a 1/1 black Rat creature token with "This creature can't block." - this.addAbility(new DiesThisOrAnotherCreatureTriggeredAbility( + this.addAbility(new DiesThisOrAnotherTriggeredAbility( new CreateTokenEffect(new RatCantBlockToken()), false, StaticFilters.FILTER_CONTROLLED_CREATURE_NON_TOKEN )); diff --git a/Mage.Sets/src/mage/cards/u/UndeadAugur.java b/Mage.Sets/src/mage/cards/u/UndeadAugur.java index 3e0026c581f..0a14cfaf167 100644 --- a/Mage.Sets/src/mage/cards/u/UndeadAugur.java +++ b/Mage.Sets/src/mage/cards/u/UndeadAugur.java @@ -2,7 +2,7 @@ package mage.cards.u; import mage.MageInt; import mage.abilities.Ability; -import mage.abilities.common.DiesThisOrAnotherCreatureTriggeredAbility; +import mage.abilities.common.DiesThisOrAnotherTriggeredAbility; import mage.abilities.effects.common.DrawCardSourceControllerEffect; import mage.abilities.effects.common.LoseLifeSourceControllerEffect; import mage.cards.CardImpl; @@ -35,7 +35,7 @@ public final class UndeadAugur extends CardImpl { this.toughness = new MageInt(2); // Whenever Undead Augur or another Zombie you control dies, you draw a card and you lose 1 life. - Ability ability = new DiesThisOrAnotherCreatureTriggeredAbility( + Ability ability = new DiesThisOrAnotherTriggeredAbility( new DrawCardSourceControllerEffect(1).setText("you draw a card"), false, filter ); ability.addEffect(new LoseLifeSourceControllerEffect(1).concatBy("and")); diff --git a/Mage.Sets/src/mage/cards/v/VengefulDead.java b/Mage.Sets/src/mage/cards/v/VengefulDead.java index e57c9d529f3..b5f286df072 100644 --- a/Mage.Sets/src/mage/cards/v/VengefulDead.java +++ b/Mage.Sets/src/mage/cards/v/VengefulDead.java @@ -3,7 +3,7 @@ package mage.cards.v; import java.util.UUID; import mage.MageInt; -import mage.abilities.common.DiesThisOrAnotherCreatureTriggeredAbility; +import mage.abilities.common.DiesThisOrAnotherTriggeredAbility; import mage.abilities.effects.common.LoseLifeOpponentsEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; @@ -30,7 +30,7 @@ public final class VengefulDead extends CardImpl { this.toughness = new MageInt(2); // Whenever Vengeful Dead or another Zombie dies, each opponent loses 1 life. - this.addAbility(new DiesThisOrAnotherCreatureTriggeredAbility(new LoseLifeOpponentsEffect(1), false, filter)); + this.addAbility(new DiesThisOrAnotherTriggeredAbility(new LoseLifeOpponentsEffect(1), false, filter)); } private VengefulDead(final VengefulDead card) { diff --git a/Mage.Sets/src/mage/cards/v/VoldarenBloodcaster.java b/Mage.Sets/src/mage/cards/v/VoldarenBloodcaster.java index 4795e38dfb0..87a3a831d6e 100644 --- a/Mage.Sets/src/mage/cards/v/VoldarenBloodcaster.java +++ b/Mage.Sets/src/mage/cards/v/VoldarenBloodcaster.java @@ -2,7 +2,7 @@ package mage.cards.v; import mage.MageInt; import mage.abilities.TriggeredAbilityImpl; -import mage.abilities.common.DiesThisOrAnotherCreatureTriggeredAbility; +import mage.abilities.common.DiesThisOrAnotherTriggeredAbility; import mage.abilities.dynamicvalue.common.PermanentsOnBattlefieldCount; import mage.abilities.effects.common.CreateTokenEffect; import mage.abilities.effects.common.TransformSourceEffect; @@ -51,7 +51,7 @@ public final class VoldarenBloodcaster extends CardImpl { this.addAbility(FlyingAbility.getInstance()); // Whenever Voldaren Bloodcaster or another nontoken creature you control dies, create a Blood token. - this.addAbility(new DiesThisOrAnotherCreatureTriggeredAbility( + this.addAbility(new DiesThisOrAnotherTriggeredAbility( new CreateTokenEffect(new BloodToken()), false, filter )); diff --git a/Mage.Sets/src/mage/cards/w/WarbeastOfGorgoroth.java b/Mage.Sets/src/mage/cards/w/WarbeastOfGorgoroth.java index 48ef02c7b68..4313d0db45c 100644 --- a/Mage.Sets/src/mage/cards/w/WarbeastOfGorgoroth.java +++ b/Mage.Sets/src/mage/cards/w/WarbeastOfGorgoroth.java @@ -1,7 +1,7 @@ package mage.cards.w; import mage.MageInt; -import mage.abilities.common.DiesThisOrAnotherCreatureTriggeredAbility; +import mage.abilities.common.DiesThisOrAnotherTriggeredAbility; import mage.abilities.effects.keyword.AmassEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; @@ -34,7 +34,7 @@ public final class WarbeastOfGorgoroth extends CardImpl { this.toughness = new MageInt(4); // Whenever Warbeast of Gorgoroth or another creature you control with power 4 or greater dies, amass Orcs 2. - this.addAbility(new DiesThisOrAnotherCreatureTriggeredAbility( + this.addAbility(new DiesThisOrAnotherTriggeredAbility( new AmassEffect(2, SubType.ORC), false, filter )); } diff --git a/Mage.Sets/src/mage/cards/w/WarteyeWitch.java b/Mage.Sets/src/mage/cards/w/WarteyeWitch.java index bd3406b324f..343c8508e5d 100644 --- a/Mage.Sets/src/mage/cards/w/WarteyeWitch.java +++ b/Mage.Sets/src/mage/cards/w/WarteyeWitch.java @@ -1,7 +1,7 @@ package mage.cards.w; import mage.MageInt; -import mage.abilities.common.DiesThisOrAnotherCreatureTriggeredAbility; +import mage.abilities.common.DiesThisOrAnotherTriggeredAbility; import mage.abilities.effects.keyword.ScryEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; @@ -33,7 +33,7 @@ public final class WarteyeWitch extends CardImpl { this.toughness = new MageInt(2); // Whenever Warteye Witch or another creature you control dies, scry 1. - this.addAbility(new DiesThisOrAnotherCreatureTriggeredAbility( + this.addAbility(new DiesThisOrAnotherTriggeredAbility( new ScryEffect(1, false), false, filter )); } diff --git a/Mage.Sets/src/mage/cards/w/WaywardDisciple.java b/Mage.Sets/src/mage/cards/w/WaywardDisciple.java index f86fa0dc856..fc43c45ec88 100644 --- a/Mage.Sets/src/mage/cards/w/WaywardDisciple.java +++ b/Mage.Sets/src/mage/cards/w/WaywardDisciple.java @@ -2,7 +2,7 @@ package mage.cards.w; import mage.MageInt; import mage.abilities.Ability; -import mage.abilities.common.DiesThisOrAnotherCreatureTriggeredAbility; +import mage.abilities.common.DiesThisOrAnotherTriggeredAbility; import mage.abilities.effects.common.GainLifeEffect; import mage.abilities.effects.common.LoseLifeTargetEffect; import mage.cards.CardImpl; @@ -38,7 +38,7 @@ public final class WaywardDisciple extends CardImpl { this.nightCard = true; // Whenever Wayward Disciple or another creature you control dies, target opponent loses 1 life and you gain 1 life. - Ability ability = new DiesThisOrAnotherCreatureTriggeredAbility(new LoseLifeTargetEffect(1), false, filter); + Ability ability = new DiesThisOrAnotherTriggeredAbility(new LoseLifeTargetEffect(1), false, filter); ability.addEffect(new GainLifeEffect(1).concatBy("and")); ability.addTarget(new TargetOpponent()); this.addAbility(ability); diff --git a/Mage.Sets/src/mage/cards/w/WeddingCrasher.java b/Mage.Sets/src/mage/cards/w/WeddingCrasher.java index 4dfe68c8dee..662b9eea17b 100644 --- a/Mage.Sets/src/mage/cards/w/WeddingCrasher.java +++ b/Mage.Sets/src/mage/cards/w/WeddingCrasher.java @@ -1,7 +1,7 @@ package mage.cards.w; import mage.MageInt; -import mage.abilities.common.DiesThisOrAnotherCreatureTriggeredAbility; +import mage.abilities.common.DiesThisOrAnotherTriggeredAbility; import mage.abilities.effects.common.DrawCardSourceControllerEffect; import mage.abilities.keyword.NightboundAbility; import mage.cards.CardImpl; @@ -38,7 +38,7 @@ public final class WeddingCrasher extends CardImpl { this.nightCard = true; // Whenever Wedding Crasher or another Wolf or Werewolf you control dies, draw a card. - this.addAbility(new DiesThisOrAnotherCreatureTriggeredAbility( + this.addAbility(new DiesThisOrAnotherTriggeredAbility( new DrawCardSourceControllerEffect(1), false, filter )); diff --git a/Mage.Sets/src/mage/cards/x/XathridNecromancer.java b/Mage.Sets/src/mage/cards/x/XathridNecromancer.java index d4fcc57da4a..1247e4b8326 100644 --- a/Mage.Sets/src/mage/cards/x/XathridNecromancer.java +++ b/Mage.Sets/src/mage/cards/x/XathridNecromancer.java @@ -4,7 +4,7 @@ package mage.cards.x; import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; -import mage.abilities.common.DiesThisOrAnotherCreatureTriggeredAbility; +import mage.abilities.common.DiesThisOrAnotherTriggeredAbility; import mage.abilities.effects.Effect; import mage.abilities.effects.common.CreateTokenEffect; import mage.cards.CardImpl; @@ -38,7 +38,7 @@ public final class XathridNecromancer extends CardImpl { // Whenever Xathrid Necromancer or another Human creature you control dies, create a tapped 2/2 black Zombie creature token. Effect effect = new CreateTokenEffect(new ZombieToken(), 1, true, false); - Ability ability = new DiesThisOrAnotherCreatureTriggeredAbility(effect, false, filter); + Ability ability = new DiesThisOrAnotherTriggeredAbility(effect, false, filter); this.addAbility(ability); } diff --git a/Mage.Sets/src/mage/cards/z/ZulaportCutthroat.java b/Mage.Sets/src/mage/cards/z/ZulaportCutthroat.java index 375e2ccaaa0..53458077649 100644 --- a/Mage.Sets/src/mage/cards/z/ZulaportCutthroat.java +++ b/Mage.Sets/src/mage/cards/z/ZulaportCutthroat.java @@ -4,7 +4,7 @@ package mage.cards.z; import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; -import mage.abilities.common.DiesThisOrAnotherCreatureTriggeredAbility; +import mage.abilities.common.DiesThisOrAnotherTriggeredAbility; import mage.abilities.effects.Effect; import mage.abilities.effects.common.GainLifeEffect; import mage.abilities.effects.common.LoseLifeOpponentsEffect; @@ -28,7 +28,7 @@ public final class ZulaportCutthroat extends CardImpl { this.toughness = new MageInt(1); // Whenever Zulaport Cutthroat or another creature you control dies, each opponent loses 1 life and you gain 1 life. - Ability ability = new DiesThisOrAnotherCreatureTriggeredAbility(new LoseLifeOpponentsEffect(1), false, StaticFilters.FILTER_PERMANENT_CREATURE_CONTROLLED); + Ability ability = new DiesThisOrAnotherTriggeredAbility(new LoseLifeOpponentsEffect(1), false, StaticFilters.FILTER_PERMANENT_CREATURE_CONTROLLED); Effect effect = new GainLifeEffect(1); effect.setText("and you gain 1 life"); ability.addEffect(effect); diff --git a/Mage.Tests/src/test/java/org/mage/test/cards/single/ncc/SyrixCarrierOfTheFlameTest.java b/Mage.Tests/src/test/java/org/mage/test/cards/single/ncc/SyrixCarrierOfTheFlameTest.java index 9e03139b766..23a818b28b2 100644 --- a/Mage.Tests/src/test/java/org/mage/test/cards/single/ncc/SyrixCarrierOfTheFlameTest.java +++ b/Mage.Tests/src/test/java/org/mage/test/cards/single/ncc/SyrixCarrierOfTheFlameTest.java @@ -2,7 +2,6 @@ package org.mage.test.cards.single.ncc; import mage.constants.PhaseStep; import mage.constants.Zone; -import org.junit.Ignore; import org.junit.Test; import org.mage.test.serverside.base.CardTestPlayerBase; @@ -74,13 +73,12 @@ public class SyrixCarrierOfTheFlameTest extends CardTestPlayerBase { } - @Ignore("Usable zone issue, see #10550") @Test public void testCast() { addCard(Zone.GRAVEYARD, playerA, syrix); addCard(Zone.BATTLEFIELD, playerA, phoenix); addCard(Zone.HAND, playerA, shock); - addCard(Zone.BATTLEFIELD, playerA, "Badlands", 6); + addCard(Zone.BATTLEFIELD, playerA, "Badlands", 5); castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, shock, phoenix); // phoenix dies, syrix ability triggers @@ -95,7 +93,7 @@ public class SyrixCarrierOfTheFlameTest extends CardTestPlayerBase { assertPowerToughness(playerA, syrix, 3, 3); assertGraveyardCount(playerA, phoenix, 1); assertGraveyardCount(playerA, shock, 1); - assertTappedCount("Badlands", true, 6); + assertTappedCount("Badlands", true, 5); } diff --git a/Mage/src/main/java/mage/abilities/TriggeredAbilityImpl.java b/Mage/src/main/java/mage/abilities/TriggeredAbilityImpl.java index e25646942a1..32ff2606236 100644 --- a/Mage/src/main/java/mage/abilities/TriggeredAbilityImpl.java +++ b/Mage/src/main/java/mage/abilities/TriggeredAbilityImpl.java @@ -430,6 +430,12 @@ public abstract class TriggeredAbilityImpl extends AbilityImpl implements Trigge return this; } + /** + * For triggered abilities that function from the battlefield that must trigger when the source permanent dies + * and/or for any other events that happen simultaneously to the source permanent dying. + * (Similar logic must be used for any leaves-the-battlefield, but this method assumes to graveyard only.) + * NOTE: If your ability functions from another zone (not battlefield) then must use standard logic, not this. + */ public static boolean isInUseableZoneDiesTrigger(TriggeredAbility source, GameEvent event, Game game) { // Get the source permanent of the ability MageObject sourceObject = null; diff --git a/Mage/src/main/java/mage/abilities/common/DiesCreatureTriggeredAbility.java b/Mage/src/main/java/mage/abilities/common/DiesCreatureTriggeredAbility.java index 0c06392fec4..cc6f9fc8624 100644 --- a/Mage/src/main/java/mage/abilities/common/DiesCreatureTriggeredAbility.java +++ b/Mage/src/main/java/mage/abilities/common/DiesCreatureTriggeredAbility.java @@ -82,6 +82,10 @@ public class DiesCreatureTriggeredAbility extends TriggeredAbilityImpl { @Override public boolean isInUseableZone(Game game, MageObject source, GameEvent event) { - return TriggeredAbilityImpl.isInUseableZoneDiesTrigger(this, event, game); + if (this.zone == Zone.BATTLEFIELD) { + return TriggeredAbilityImpl.isInUseableZoneDiesTrigger(this, event, game); + } else { + return super.isInUseableZone(game, source, event); + } } } diff --git a/Mage/src/main/java/mage/abilities/common/DiesThisOrAnotherCreatureOrPlaneswalkerTriggeredAbility.java b/Mage/src/main/java/mage/abilities/common/DiesThisOrAnotherCreatureOrPlaneswalkerTriggeredAbility.java deleted file mode 100644 index 36decf995c4..00000000000 --- a/Mage/src/main/java/mage/abilities/common/DiesThisOrAnotherCreatureOrPlaneswalkerTriggeredAbility.java +++ /dev/null @@ -1,66 +0,0 @@ - -package mage.abilities.common; - -import mage.MageObject; -import mage.abilities.TriggeredAbilityImpl; -import mage.abilities.effects.Effect; -import mage.constants.Zone; -import mage.filter.common.FilterCreatureOrPlaneswalkerPermanent; -import mage.game.Game; -import mage.game.events.GameEvent; -import mage.game.events.ZoneChangeEvent; - -/** - * @author noxx - */ -public class DiesThisOrAnotherCreatureOrPlaneswalkerTriggeredAbility extends TriggeredAbilityImpl { - - protected FilterCreatureOrPlaneswalkerPermanent filter; - - public DiesThisOrAnotherCreatureOrPlaneswalkerTriggeredAbility(Effect effect, boolean optional) { - this(effect, optional, new FilterCreatureOrPlaneswalkerPermanent()); - } - - public DiesThisOrAnotherCreatureOrPlaneswalkerTriggeredAbility(Effect effect, boolean optional, FilterCreatureOrPlaneswalkerPermanent filter) { - super(Zone.ALL, effect, optional); // Needs "ALL" if the source itself should trigger or multiple (incl. source go to grave) - this.filter = filter; - setTriggerPhrase("Whenever {this} or another " + filter.getMessage() + " dies, "); - } - - public DiesThisOrAnotherCreatureOrPlaneswalkerTriggeredAbility(DiesThisOrAnotherCreatureOrPlaneswalkerTriggeredAbility ability) { - super(ability); - this.filter = ability.filter; - } - - @Override - public DiesThisOrAnotherCreatureOrPlaneswalkerTriggeredAbility copy() { - return new DiesThisOrAnotherCreatureOrPlaneswalkerTriggeredAbility(this); - } - - @Override - public boolean checkEventType(GameEvent event, Game game) { - return event.getType() == GameEvent.EventType.ZONE_CHANGE; - } - - @Override - public boolean checkTrigger(GameEvent event, Game game) { - ZoneChangeEvent zEvent = (ZoneChangeEvent) event; - if (zEvent.isDiesEvent()) { - if (zEvent.getTarget() != null) { - if (zEvent.getTarget().getId().equals(this.getSourceId())) { - return true; - } else { - if (filter.match(zEvent.getTarget(), getControllerId(), this, game)) { - return true; - } - } - } - } - return false; - } - - @Override - public boolean isInUseableZone(Game game, MageObject source, GameEvent event) { - return TriggeredAbilityImpl.isInUseableZoneDiesTrigger(this, event, game); - } -} diff --git a/Mage/src/main/java/mage/abilities/common/DiesThisOrAnotherCreatureTriggeredAbility.java b/Mage/src/main/java/mage/abilities/common/DiesThisOrAnotherTriggeredAbility.java similarity index 72% rename from Mage/src/main/java/mage/abilities/common/DiesThisOrAnotherCreatureTriggeredAbility.java rename to Mage/src/main/java/mage/abilities/common/DiesThisOrAnotherTriggeredAbility.java index 06b8645aac6..056f001c92f 100644 --- a/Mage/src/main/java/mage/abilities/common/DiesThisOrAnotherCreatureTriggeredAbility.java +++ b/Mage/src/main/java/mage/abilities/common/DiesThisOrAnotherTriggeredAbility.java @@ -13,17 +13,17 @@ import mage.game.events.ZoneChangeEvent; /** * @author noxx */ -public class DiesThisOrAnotherCreatureTriggeredAbility extends TriggeredAbilityImpl { +public class DiesThisOrAnotherTriggeredAbility extends TriggeredAbilityImpl { protected FilterPermanent filter; private boolean applyFilterOnSource = false; - public DiesThisOrAnotherCreatureTriggeredAbility(Effect effect, boolean optional) { + public DiesThisOrAnotherTriggeredAbility(Effect effect, boolean optional) { this(effect, optional, StaticFilters.FILTER_PERMANENT_CREATURE); } - public DiesThisOrAnotherCreatureTriggeredAbility(Effect effect, boolean optional, FilterPermanent filter) { - super(Zone.ALL, effect, optional); // Needs "ALL" if the source itself should trigger or multiple (incl. source go to grave) + public DiesThisOrAnotherTriggeredAbility(Effect effect, boolean optional, FilterPermanent filter) { + super(Zone.BATTLEFIELD, effect, optional); this.filter = filter; String filterMessage = filter.getMessage(); if (filterMessage.startsWith("a ")) { @@ -32,20 +32,20 @@ public class DiesThisOrAnotherCreatureTriggeredAbility extends TriggeredAbilityI setTriggerPhrase("Whenever {this} or another " + filterMessage + " dies, "); } - protected DiesThisOrAnotherCreatureTriggeredAbility(final DiesThisOrAnotherCreatureTriggeredAbility ability) { + protected DiesThisOrAnotherTriggeredAbility(final DiesThisOrAnotherTriggeredAbility ability) { super(ability); this.filter = ability.filter; this.applyFilterOnSource = ability.applyFilterOnSource; } - public DiesThisOrAnotherCreatureTriggeredAbility setApplyFilterOnSource(boolean applyFilterOnSource) { + public DiesThisOrAnotherTriggeredAbility setApplyFilterOnSource(boolean applyFilterOnSource) { this.applyFilterOnSource = applyFilterOnSource; return this; } @Override - public DiesThisOrAnotherCreatureTriggeredAbility copy() { - return new DiesThisOrAnotherCreatureTriggeredAbility(this); + public DiesThisOrAnotherTriggeredAbility copy() { + return new DiesThisOrAnotherTriggeredAbility(this); } @Override @@ -59,6 +59,7 @@ public class DiesThisOrAnotherCreatureTriggeredAbility extends TriggeredAbilityI if (zEvent.isDiesEvent()) { if (zEvent.getTarget() != null) { if (!applyFilterOnSource && zEvent.getTarget().getId().equals(this.getSourceId())) { + // TODO: remove this workaround for Basri's Lieutenant return true; } else { if (filter.match(zEvent.getTarget(), getControllerId(), this, game)) { diff --git a/Mage/src/main/java/mage/abilities/common/PutIntoGraveFromBattlefieldAllTriggeredAbility.java b/Mage/src/main/java/mage/abilities/common/PutIntoGraveFromBattlefieldAllTriggeredAbility.java index 597892debfe..b86baa07a3a 100644 --- a/Mage/src/main/java/mage/abilities/common/PutIntoGraveFromBattlefieldAllTriggeredAbility.java +++ b/Mage/src/main/java/mage/abilities/common/PutIntoGraveFromBattlefieldAllTriggeredAbility.java @@ -17,8 +17,8 @@ import mage.target.targetpointer.FixedTarget; public class PutIntoGraveFromBattlefieldAllTriggeredAbility extends TriggeredAbilityImpl { private final FilterPermanent filter; - private boolean setTargetPointer; - private boolean onlyToControllerGraveyard; + private final boolean setTargetPointer; + private final boolean onlyToControllerGraveyard; public PutIntoGraveFromBattlefieldAllTriggeredAbility(Effect effect, boolean optional, FilterPermanent filter, boolean setTargetPointer) { this(effect, optional, filter, setTargetPointer, false); diff --git a/Mage/src/main/java/mage/abilities/common/PutIntoGraveFromBattlefieldSourceTriggeredAbility.java b/Mage/src/main/java/mage/abilities/common/PutIntoGraveFromBattlefieldSourceTriggeredAbility.java index a02a561397d..629f3cd1937 100644 --- a/Mage/src/main/java/mage/abilities/common/PutIntoGraveFromBattlefieldSourceTriggeredAbility.java +++ b/Mage/src/main/java/mage/abilities/common/PutIntoGraveFromBattlefieldSourceTriggeredAbility.java @@ -21,7 +21,7 @@ public class PutIntoGraveFromBattlefieldSourceTriggeredAbility extends Triggered } public PutIntoGraveFromBattlefieldSourceTriggeredAbility(Effect effect, boolean optional, boolean onlyToControllerGraveyard) { - super(Zone.ALL, effect, optional); + super(Zone.BATTLEFIELD, effect, optional); setLeavesTheBattlefieldTrigger(true); this.onlyToControllerGraveyard = onlyToControllerGraveyard; setTriggerPhrase("When {this} is put into " + (onlyToControllerGraveyard ? "your" : "a") + " graveyard from the battlefield, ");