diff --git a/Mage.Sets/src/mage/cards/a/AvenRiftwatcher.java b/Mage.Sets/src/mage/cards/a/AvenRiftwatcher.java index 36427ed74cf..2b767ca4461 100644 --- a/Mage.Sets/src/mage/cards/a/AvenRiftwatcher.java +++ b/Mage.Sets/src/mage/cards/a/AvenRiftwatcher.java @@ -30,7 +30,7 @@ public final class AvenRiftwatcher extends CardImpl { this.addAbility(FlyingAbility.getInstance()); // Vanishing 3 - this.addAbility(new VanishingAbility(this, 3)); + this.addAbility(new VanishingAbility(3)); // When Aven Riftwatcher enters the battlefield or leaves the battlefield, you gain 2 life. this.addAbility(new EntersBattlefieldOrLeavesSourceTriggeredAbility(new GainLifeEffect(2), false)); diff --git a/Mage.Sets/src/mage/cards/c/Calciderm.java b/Mage.Sets/src/mage/cards/c/Calciderm.java index d9453c1faa8..5d76f2deaa7 100644 --- a/Mage.Sets/src/mage/cards/c/Calciderm.java +++ b/Mage.Sets/src/mage/cards/c/Calciderm.java @@ -26,7 +26,7 @@ public final class Calciderm extends CardImpl { this.addAbility(ShroudAbility.getInstance()); // Vanishing 4 - this.addAbility(new VanishingAbility(this, 4)); + this.addAbility(new VanishingAbility(4)); } private Calciderm(final Calciderm card) { diff --git a/Mage.Sets/src/mage/cards/c/Chronozoa.java b/Mage.Sets/src/mage/cards/c/Chronozoa.java index 9066c0a2c9a..39edd855a93 100644 --- a/Mage.Sets/src/mage/cards/c/Chronozoa.java +++ b/Mage.Sets/src/mage/cards/c/Chronozoa.java @@ -31,7 +31,7 @@ public final class Chronozoa extends CardImpl { this.addAbility(FlyingAbility.getInstance()); // Vanishing 3 (This permanent enters the battlefield with three time counters on it. At the beginning of your upkeep, remove a time counter from it. When the last is removed, sacrifice it.) - this.addAbility(new VanishingAbility(this, 3)); + this.addAbility(new VanishingAbility(3)); // When Chronozoa is put into a graveyard from play, if it had no time counters on it, create two tokens that are copies of it. Effect effect = new CreateTokenCopySourceEffect(2); diff --git a/Mage.Sets/src/mage/cards/d/DeadlyGrub.java b/Mage.Sets/src/mage/cards/d/DeadlyGrub.java index 0d5e4680962..80e03776e96 100644 --- a/Mage.Sets/src/mage/cards/d/DeadlyGrub.java +++ b/Mage.Sets/src/mage/cards/d/DeadlyGrub.java @@ -26,7 +26,7 @@ public final class DeadlyGrub extends CardImpl { this.toughness = new MageInt(1); // Vanishing 3 - this.addAbility(new VanishingAbility(this, 3)); + this.addAbility(new VanishingAbility(3)); // When Deadly Grub dies, if it had no time counters on it, create a 6/1 green Insect creature token with shroud. this.addAbility(new ConditionalInterveningIfTriggeredAbility(new DiesSourceTriggeredAbility(new CreateTokenEffect(new DeadlyGrubInsectToken(), 1)), diff --git a/Mage.Sets/src/mage/cards/d/DeadwoodTreefolk.java b/Mage.Sets/src/mage/cards/d/DeadwoodTreefolk.java index edcff325728..7246a3bea09 100644 --- a/Mage.Sets/src/mage/cards/d/DeadwoodTreefolk.java +++ b/Mage.Sets/src/mage/cards/d/DeadwoodTreefolk.java @@ -35,7 +35,7 @@ public final class DeadwoodTreefolk extends CardImpl { this.toughness = new MageInt(6); // Vanishing 3 - this.addAbility(new VanishingAbility(this, 3)); + this.addAbility(new VanishingAbility(3)); // When Deadwood Treefolk enters the battlefield or leaves the battlefield, return another target creature card from your graveyard to your hand. Ability ability = new EntersBattlefieldOrLeavesSourceTriggeredAbility(new ReturnFromGraveyardToHandTargetEffect(), false); diff --git a/Mage.Sets/src/mage/cards/d/DeepForestHermit.java b/Mage.Sets/src/mage/cards/d/DeepForestHermit.java index d6aff99fe66..d1637eea695 100644 --- a/Mage.Sets/src/mage/cards/d/DeepForestHermit.java +++ b/Mage.Sets/src/mage/cards/d/DeepForestHermit.java @@ -33,7 +33,7 @@ public final class DeepForestHermit extends CardImpl { this.toughness = new MageInt(1); // Vanishing 3 - this.addAbility(new VanishingAbility(this, 3)); + this.addAbility(new VanishingAbility(3)); // When Deep Forest Hermit enters the battlefield, create four 1/1 green Squirrel creature tokens. this.addAbility(new EntersBattlefieldTriggeredAbility( diff --git a/Mage.Sets/src/mage/cards/f/FourKnocks.java b/Mage.Sets/src/mage/cards/f/FourKnocks.java index c089a702612..4aebcb4f8d0 100644 --- a/Mage.Sets/src/mage/cards/f/FourKnocks.java +++ b/Mage.Sets/src/mage/cards/f/FourKnocks.java @@ -19,7 +19,7 @@ public final class FourKnocks extends CardImpl { super(ownerId, setInfo, new CardType[]{CardType.ENCHANTMENT}, "{2}{W}"); // Vanishing 4 - this.addAbility(new VanishingAbility(this, 4)); + this.addAbility(new VanishingAbility(4)); // At the beginning of your precombat main phase, draw a card. this.addAbility(new BeginningOfPreCombatMainTriggeredAbility( diff --git a/Mage.Sets/src/mage/cards/k/KeldonMarauders.java b/Mage.Sets/src/mage/cards/k/KeldonMarauders.java index 2d8d16835f1..085888e6561 100644 --- a/Mage.Sets/src/mage/cards/k/KeldonMarauders.java +++ b/Mage.Sets/src/mage/cards/k/KeldonMarauders.java @@ -27,7 +27,7 @@ public final class KeldonMarauders extends CardImpl { this.toughness = new MageInt(3); // Vanishing 2 - this.addAbility(new VanishingAbility(this, 2)); + this.addAbility(new VanishingAbility(2)); // When Keldon Marauders enters the battlefield or leaves the battlefield, it deals 1 damage to target player. Ability ability = new EntersBattlefieldOrLeavesSourceTriggeredAbility(new DamageTargetEffect(1, "it"), false); diff --git a/Mage.Sets/src/mage/cards/l/LavacoreElemental.java b/Mage.Sets/src/mage/cards/l/LavacoreElemental.java index 63e2cd5eb2b..484f4f152b1 100644 --- a/Mage.Sets/src/mage/cards/l/LavacoreElemental.java +++ b/Mage.Sets/src/mage/cards/l/LavacoreElemental.java @@ -27,7 +27,7 @@ public final class LavacoreElemental extends CardImpl { this.toughness = new MageInt(3); // Vanishing 1 - this.addAbility(new VanishingAbility(this, 1)); + this.addAbility(new VanishingAbility(1)); // Whenever a creature you control deals combat damage to a player, put a time counter on Lavacore Elemental. Effect effect = new AddCountersSourceEffect(CounterType.TIME.createInstance(1)); diff --git a/Mage.Sets/src/mage/cards/l/LostAuramancers.java b/Mage.Sets/src/mage/cards/l/LostAuramancers.java index cb36225986b..c6bac572133 100644 --- a/Mage.Sets/src/mage/cards/l/LostAuramancers.java +++ b/Mage.Sets/src/mage/cards/l/LostAuramancers.java @@ -31,7 +31,7 @@ public final class LostAuramancers extends CardImpl { this.toughness = new MageInt(3); // Vanishing 3 - this.addAbility(new VanishingAbility(this, 3)); + this.addAbility(new VanishingAbility(3)); // When Lost Auramancers dies, if it had no time counters on it, you may search your library // for an enchantment card and put it onto the battlefield. If you do, shuffle your library. diff --git a/Mage.Sets/src/mage/cards/m/MaelstromDjinn.java b/Mage.Sets/src/mage/cards/m/MaelstromDjinn.java index 7fd425e4578..2902459ec8e 100644 --- a/Mage.Sets/src/mage/cards/m/MaelstromDjinn.java +++ b/Mage.Sets/src/mage/cards/m/MaelstromDjinn.java @@ -40,7 +40,7 @@ public final class MaelstromDjinn extends CardImpl { new AddCountersSourceEffect(CounterType.TIME.createInstance(2)) ); ability.addEffect(new GainAbilitySourceEffect( - new VanishingAbility(this, 0), Duration.WhileOnBattlefield + new VanishingAbility(0), Duration.WhileOnBattlefield ).setText("and it gains vanishing")); this.addAbility(ability); } diff --git a/Mage.Sets/src/mage/cards/o/OutOfTime.java b/Mage.Sets/src/mage/cards/o/OutOfTime.java index 62e7e0c8845..a696ca65063 100644 --- a/Mage.Sets/src/mage/cards/o/OutOfTime.java +++ b/Mage.Sets/src/mage/cards/o/OutOfTime.java @@ -36,7 +36,7 @@ public final class OutOfTime extends CardImpl { this.addAbility(new EntersBattlefieldTriggeredAbility(new OutOfTimePhaseOutEffect())); // Vanishing - this.addAbility(new VanishingAbility(this, 0)); + this.addAbility(new VanishingAbility(0)); } private OutOfTime(final OutOfTime card) { diff --git a/Mage.Sets/src/mage/cards/r/RavagingRiftwurm.java b/Mage.Sets/src/mage/cards/r/RavagingRiftwurm.java index 7de51e903d6..28b89acb8a1 100644 --- a/Mage.Sets/src/mage/cards/r/RavagingRiftwurm.java +++ b/Mage.Sets/src/mage/cards/r/RavagingRiftwurm.java @@ -30,7 +30,7 @@ public final class RavagingRiftwurm extends CardImpl { this.addAbility(new KickerAbility("{4}")); // Vanishing 2 - this.addAbility(new VanishingAbility(this, 2)); + this.addAbility(new VanishingAbility(2)); // If Ravaging Riftwurm was kicked, it enters the battlefield with three additional time counters on it. this.addAbility(new EntersBattlefieldAbility(new AddCountersSourceEffect(CounterType.TIME.createInstance(3)), diff --git a/Mage.Sets/src/mage/cards/r/RealityAcid.java b/Mage.Sets/src/mage/cards/r/RealityAcid.java index 004f3b03209..46b38a1f437 100644 --- a/Mage.Sets/src/mage/cards/r/RealityAcid.java +++ b/Mage.Sets/src/mage/cards/r/RealityAcid.java @@ -38,7 +38,7 @@ public final class RealityAcid extends CardImpl { this.addAbility(ability); // Vanishing 3 - this.addAbility(new VanishingAbility(this, 3)); + this.addAbility(new VanishingAbility(3)); // When Reality Acid leaves the battlefield, enchanted permanent's controller sacrifices it. Effect effect = new SacrificeTargetEffect("enchanted permanent's controller sacrifices it"); diff --git a/Mage.Sets/src/mage/cards/s/SoultetherGolem.java b/Mage.Sets/src/mage/cards/s/SoultetherGolem.java index 6bfd759ea74..79380a675a4 100644 --- a/Mage.Sets/src/mage/cards/s/SoultetherGolem.java +++ b/Mage.Sets/src/mage/cards/s/SoultetherGolem.java @@ -35,7 +35,7 @@ public final class SoultetherGolem extends CardImpl { this.toughness = new MageInt(3); // Vanishing 1 - this.addAbility(new VanishingAbility(this, 1)); + this.addAbility(new VanishingAbility(1)); // Whenever another creature enters the battlefield under your control, put a time counter on Soultether Golem. this.addAbility(new EntersBattlefieldControlledTriggeredAbility( diff --git a/Mage.Sets/src/mage/cards/t/Tidewalker.java b/Mage.Sets/src/mage/cards/t/Tidewalker.java index fa24ee36f1a..355cb9e1a57 100644 --- a/Mage.Sets/src/mage/cards/t/Tidewalker.java +++ b/Mage.Sets/src/mage/cards/t/Tidewalker.java @@ -39,7 +39,7 @@ public final class Tidewalker extends CardImpl { this.addAbility(new EntersBattlefieldAbility(new AddCountersSourceEffect(CounterType.TIME.createInstance(0), new PermanentsOnBattlefieldCount(filter), true), "with a time counter on it for each Island you control")); // Vanishing - this.addAbility(new VanishingAbility(this, 0)); + this.addAbility(new VanishingAbility(0)); // Tidewalker's power and toughness are each equal to the number of time counters on it. this.addAbility(new SimpleStaticAbility(Zone.ALL, new SetBasePowerToughnessSourceEffect(new CountersSourceCount(CounterType.TIME)))); diff --git a/Mage.Sets/src/mage/cards/w/WaningWurm.java b/Mage.Sets/src/mage/cards/w/WaningWurm.java index dfec718e420..0d9c89bf8fd 100644 --- a/Mage.Sets/src/mage/cards/w/WaningWurm.java +++ b/Mage.Sets/src/mage/cards/w/WaningWurm.java @@ -22,7 +22,7 @@ public final class WaningWurm extends CardImpl { this.toughness = new MageInt(6); // Vanishing 2 - this.addAbility(new VanishingAbility(this, 2)); + this.addAbility(new VanishingAbility(2)); } private WaningWurm(final WaningWurm card) { diff --git a/Mage/src/main/java/mage/abilities/keyword/VanishingAbility.java b/Mage/src/main/java/mage/abilities/keyword/VanishingAbility.java index 9abc56bd91a..6a94262e3a0 100644 --- a/Mage/src/main/java/mage/abilities/keyword/VanishingAbility.java +++ b/Mage/src/main/java/mage/abilities/keyword/VanishingAbility.java @@ -9,7 +9,6 @@ import mage.abilities.decorator.ConditionalInterveningIfTriggeredAbility; import mage.abilities.effects.common.SacrificeSourceEffect; import mage.abilities.effects.common.counter.AddCountersSourceEffect; import mage.abilities.effects.common.counter.RemoveCounterSourceEffect; -import mage.cards.Card; import mage.constants.TargetController; import mage.constants.Zone; import mage.counters.CounterType; @@ -26,17 +25,17 @@ public class VanishingAbility extends EntersBattlefieldAbility { private static final Condition condition = new SourceHasCounterCondition(CounterType.TIME); private final int amount; - public VanishingAbility(Card card, int amount) { + public VanishingAbility(int amount) { super(new AddCountersSourceEffect(CounterType.TIME.createInstance(amount))); this.amount = amount; - card.addAbility(new ConditionalInterveningIfTriggeredAbility( + this.addSubAbility(new ConditionalInterveningIfTriggeredAbility( new BeginningOfUpkeepTriggeredAbility( new RemoveCounterSourceEffect(CounterType.TIME.createInstance()), TargetController.YOU, false ), condition, "At the beginning of your upkeep, if this permanent " + "has a time counter on it, remove a time counter from it." ).setRuleVisible(false)); - card.addAbility(new VanishingTriggeredAbility()); + this.addSubAbility(new VanishingTriggeredAbility()); } private VanishingAbility(final VanishingAbility ability) { @@ -84,7 +83,7 @@ class VanishingTriggeredAbility extends TriggeredAbilityImpl { @Override public boolean checkTrigger(GameEvent event, Game game) { - if (!CounterType.TIME.getName().equals(event.getData()) || !event.getSourceId().equals(getSourceId())) { + if (!CounterType.TIME.getName().equals(event.getData())) { return false; } Permanent permanent = getSourcePermanentIfItStillExists(game); diff --git a/Utils/keywords.txt b/Utils/keywords.txt index 640a6e9c5a9..478144d8ebb 100644 --- a/Utils/keywords.txt +++ b/Utils/keywords.txt @@ -127,7 +127,7 @@ Undaunted|new| Undying|new| Unearth|cost| Unleash|new| -Vanishing|card, number| +Vanishing|number| Vigilance|instance| Ward|cost| Wither|instance|