From e122e9d512c02ba749da0c5eaac6aaca88581d9f Mon Sep 17 00:00:00 2001 From: xenohedron Date: Sat, 4 Nov 2023 17:44:36 -0400 Subject: [PATCH] various and sundry text fixes --- .../src/mage/cards/a/AngelicSkirmisher.java | 2 +- Mage.Sets/src/mage/cards/b/Biovisionary.java | 3 +- Mage.Sets/src/mage/cards/c/ClericClass.java | 3 +- Mage.Sets/src/mage/cards/c/CryptGhast.java | 2 +- Mage.Sets/src/mage/cards/d/DyingWish.java | 54 +++---------------- .../src/mage/cards/f/FruitOfTheFirstTree.java | 49 ++++------------- .../src/mage/cards/l/LeylinePhantom.java | 40 ++------------ Mage.Sets/src/mage/cards/m/Mirozel.java | 2 +- .../src/mage/cards/n/NavSquadCommandos.java | 2 +- .../src/mage/cards/n/Necrosynthesis.java | 42 +-------------- Mage.Sets/src/mage/cards/p/Petrahydrox.java | 3 +- .../src/mage/cards/p/PowerOfPersuasion.java | 2 +- Mage.Sets/src/mage/cards/s/ShivanPhoenix.java | 2 +- Mage.Sets/src/mage/cards/s/SparkTrooper.java | 2 +- Mage.Sets/src/mage/cards/s/SpikeDrone.java | 3 +- .../src/mage/cards/u/UndercityInformer.java | 3 +- Mage.Sets/src/mage/cards/v/Vesuva.java | 3 +- Mage.Sets/src/mage/cards/z/ZodiacDragon.java | 5 +- .../mage/abilities/TriggeredAbilityImpl.java | 2 +- .../BecomesBlockedSourceTriggeredAbility.java | 2 +- .../DealsCombatDamageTriggeredAbility.java | 3 +- 21 files changed, 46 insertions(+), 183 deletions(-) diff --git a/Mage.Sets/src/mage/cards/a/AngelicSkirmisher.java b/Mage.Sets/src/mage/cards/a/AngelicSkirmisher.java index 6b570bcd614..37f7a06203e 100644 --- a/Mage.Sets/src/mage/cards/a/AngelicSkirmisher.java +++ b/Mage.Sets/src/mage/cards/a/AngelicSkirmisher.java @@ -57,7 +57,7 @@ class AngelicSkirmisherEffect extends OneShotEffect { AngelicSkirmisherEffect() { super(Outcome.AddAbility); - staticText = "choose first strike, vigilance or lifelink. Creatures you control gain that ability until end of turn"; + staticText = "choose first strike, vigilance, or lifelink. Creatures you control gain that ability until end of turn"; } private AngelicSkirmisherEffect(final AngelicSkirmisherEffect effect) { diff --git a/Mage.Sets/src/mage/cards/b/Biovisionary.java b/Mage.Sets/src/mage/cards/b/Biovisionary.java index 06001a24553..4cbcf4733d7 100644 --- a/Mage.Sets/src/mage/cards/b/Biovisionary.java +++ b/Mage.Sets/src/mage/cards/b/Biovisionary.java @@ -32,7 +32,7 @@ public final class Biovisionary extends CardImpl { //At the beginning of the end step, if you control four or more creatures named Biovisionary, you win the game. this.addAbility(new BeginningOfEndStepTriggeredAbility( Zone.BATTLEFIELD, new WinGameSourceControllerEffect(), - TargetController.ANY, + TargetController.NEXT, new PermanentsOnTheBattlefieldCondition(filter, ComparisonType.MORE_THAN, 3), false)); } @@ -46,4 +46,3 @@ public final class Biovisionary extends CardImpl { return new Biovisionary(this); } } - diff --git a/Mage.Sets/src/mage/cards/c/ClericClass.java b/Mage.Sets/src/mage/cards/c/ClericClass.java index aa7d5d0a174..35ad2e84130 100644 --- a/Mage.Sets/src/mage/cards/c/ClericClass.java +++ b/Mage.Sets/src/mage/cards/c/ClericClass.java @@ -77,7 +77,7 @@ class ClericClassReturnEffect extends OneShotEffect { ClericClassReturnEffect() { super(Outcome.Benefit); staticText = "return target creature card from your graveyard to the battlefield. " + - "You gain life equal to its toughness"; + "You gain life equal to that creature's toughness"; } private ClericClassReturnEffect(final ClericClassReturnEffect effect) { @@ -97,6 +97,7 @@ class ClericClassReturnEffect extends OneShotEffect { return false; } player.moveCards(card, Zone.BATTLEFIELD, source, game); + game.getState().processAction(game); Permanent permanent = game.getPermanent(card.getId()); int toughness = permanent != null ? permanent.getToughness().getValue() : card.getToughness().getValue(); player.gainLife(toughness, game, source); diff --git a/Mage.Sets/src/mage/cards/c/CryptGhast.java b/Mage.Sets/src/mage/cards/c/CryptGhast.java index 8ea4de2135b..da98a61c627 100644 --- a/Mage.Sets/src/mage/cards/c/CryptGhast.java +++ b/Mage.Sets/src/mage/cards/c/CryptGhast.java @@ -75,6 +75,6 @@ class CryptGhastTriggeredAbility extends TriggeredManaAbility { @Override public String getRule() { - return "Whenever you tap a Swamp for mana, add {B} (in addition to the mana the land produces)."; + return "Whenever you tap a Swamp for mana, add an additional {B}."; } } diff --git a/Mage.Sets/src/mage/cards/d/DyingWish.java b/Mage.Sets/src/mage/cards/d/DyingWish.java index a889f3b529f..97b990303fe 100644 --- a/Mage.Sets/src/mage/cards/d/DyingWish.java +++ b/Mage.Sets/src/mage/cards/d/DyingWish.java @@ -1,11 +1,8 @@ - package mage.cards.d; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.DiesAttachedTriggeredAbility; -import mage.abilities.dynamicvalue.DynamicValue; -import mage.abilities.effects.Effect; +import mage.abilities.dynamicvalue.common.AttachedPermanentPowerCount; import mage.abilities.effects.common.AttachEffect; import mage.abilities.effects.common.GainLifeEffect; import mage.abilities.effects.common.LoseLifeTargetEffect; @@ -13,15 +10,14 @@ import mage.abilities.keyword.EnchantAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; -import mage.constants.SubType; import mage.constants.Outcome; -import mage.constants.Zone; -import mage.game.Game; -import mage.game.permanent.Permanent; +import mage.constants.SubType; import mage.target.TargetPermanent; import mage.target.TargetPlayer; import mage.target.common.TargetControlledCreaturePermanent; +import java.util.UUID; + /** * * @author LevelX2 @@ -41,9 +37,10 @@ public final class DyingWish extends CardImpl { this.addAbility(ability); // When enchanted creature dies, target player loses X life and you gain X life, where X is its power. - DynamicValue attachedPower = new DyingWishAttachedPermanentPowerCount(); - ability = new DiesAttachedTriggeredAbility(new LoseLifeTargetEffect(attachedPower), "enchanted creature"); - ability.addEffect(new GainLifeEffect(attachedPower)); + ability = new DiesAttachedTriggeredAbility(new LoseLifeTargetEffect(AttachedPermanentPowerCount.instance) + .setText("target player loses X life"), "enchanted creature"); + ability.addEffect(new GainLifeEffect(AttachedPermanentPowerCount.instance) + .setText("and you gain X life, where X is its power")); ability.addTarget(new TargetPlayer()); this.addAbility(ability); } @@ -57,38 +54,3 @@ public final class DyingWish extends CardImpl { return new DyingWish(this); } } - -class DyingWishAttachedPermanentPowerCount implements DynamicValue { - - @Override - public int calculate(Game game, Ability sourceAbility, Effect effect) { - Permanent attachmentPermanent = game.getPermanent(sourceAbility.getSourceId()); - if (attachmentPermanent == null) { - attachmentPermanent = (Permanent) game.getLastKnownInformation(sourceAbility.getSourceId(), Zone.BATTLEFIELD, sourceAbility.getSourceObjectZoneChangeCounter()); - } - if (attachmentPermanent != null && attachmentPermanent.getAttachedTo() != null) { - if (effect.getValue("attachedTo") != null) { - Permanent attached = (Permanent) effect.getValue("attachedTo"); - if (attached != null) { - return attached.getPower().getValue(); - } - } - } - return 0; - } - - @Override - public DyingWishAttachedPermanentPowerCount copy() { - return new DyingWishAttachedPermanentPowerCount(); - } - - @Override - public String toString() { - return "X"; - } - - @Override - public String getMessage() { - return "its power"; - } -} diff --git a/Mage.Sets/src/mage/cards/f/FruitOfTheFirstTree.java b/Mage.Sets/src/mage/cards/f/FruitOfTheFirstTree.java index 2d3208d597f..f61df61dae2 100644 --- a/Mage.Sets/src/mage/cards/f/FruitOfTheFirstTree.java +++ b/Mage.Sets/src/mage/cards/f/FruitOfTheFirstTree.java @@ -1,24 +1,22 @@ - package mage.cards.f; -import java.util.UUID; import mage.abilities.Ability; -import mage.abilities.Mode; import mage.abilities.common.DiesAttachedTriggeredAbility; -import mage.abilities.effects.OneShotEffect; +import mage.abilities.dynamicvalue.common.AttachedPermanentToughnessCount; import mage.abilities.effects.common.AttachEffect; +import mage.abilities.effects.common.DrawCardSourceControllerEffect; +import mage.abilities.effects.common.GainLifeEffect; import mage.abilities.keyword.EnchantAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; -import mage.constants.SubType; import mage.constants.Outcome; -import mage.game.Game; -import mage.game.permanent.Permanent; -import mage.players.Player; +import mage.constants.SubType; import mage.target.TargetPermanent; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author LevelX2 @@ -37,7 +35,11 @@ public final class FruitOfTheFirstTree extends CardImpl { this.addAbility(ability); // When enchanted creature dies, you gain X life and draw X cards, where X is its toughness. - this.addAbility( new DiesAttachedTriggeredAbility(new FruitOfTheFirstTreeEffect(), "enchanted creature")); + ability = new DiesAttachedTriggeredAbility(new GainLifeEffect(AttachedPermanentToughnessCount.instance) + .setText("you gain X life"), "enchanted creature"); + ability.addEffect(new DrawCardSourceControllerEffect(AttachedPermanentToughnessCount.instance) + .setText("and draw X cards, where X is its toughness")); + this.addAbility(ability); } private FruitOfTheFirstTree(final FruitOfTheFirstTree card) { @@ -49,32 +51,3 @@ public final class FruitOfTheFirstTree extends CardImpl { return new FruitOfTheFirstTree(this); } } - -class FruitOfTheFirstTreeEffect extends OneShotEffect { - - public FruitOfTheFirstTreeEffect() { - super(Outcome.Benefit); - this.staticText = "you gain X life and draw X cards, where X is its toughness"; - } - - private FruitOfTheFirstTreeEffect(final FruitOfTheFirstTreeEffect copy) { - super(copy); - } - - @Override - public FruitOfTheFirstTreeEffect copy() { - return new FruitOfTheFirstTreeEffect(this); - } - - @Override - public boolean apply(Game game, Ability source) { - Player controller = game.getPlayer(source.getControllerId()); - Permanent creature = (Permanent) getValue("attachedTo"); - if (controller != null && creature != null) { - controller.gainLife(creature.getToughness().getValue(), game, source); - controller.drawCards(creature.getToughness().getValue(), source, game); - return true; - } - return false; - } -} diff --git a/Mage.Sets/src/mage/cards/l/LeylinePhantom.java b/Mage.Sets/src/mage/cards/l/LeylinePhantom.java index 31cd0a11dc9..b9dcff02c19 100644 --- a/Mage.Sets/src/mage/cards/l/LeylinePhantom.java +++ b/Mage.Sets/src/mage/cards/l/LeylinePhantom.java @@ -1,18 +1,14 @@ package mage.cards.l; -import java.util.UUID; import mage.MageInt; -import mage.abilities.TriggeredAbilityImpl; +import mage.abilities.common.DealsCombatDamageTriggeredAbility; import mage.abilities.effects.common.ReturnToHandSourceEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.SubType; -import mage.constants.Zone; -import mage.game.Game; -import mage.game.events.DamagedEvent; -import mage.game.events.GameEvent; -import mage.game.events.GameEvent.EventType; + +import java.util.UUID; /** * @@ -28,7 +24,7 @@ public final class LeylinePhantom extends CardImpl { this.toughness = new MageInt(5); //Whenever Leyline Phantom deals combat damage, return it to its owner's hand. - this.addAbility(new LeylinePhantomTriggeredAbility()); + this.addAbility(new DealsCombatDamageTriggeredAbility(new ReturnToHandSourceEffect(true), false)); } private LeylinePhantom(final LeylinePhantom card) { @@ -40,31 +36,3 @@ public final class LeylinePhantom extends CardImpl { return new LeylinePhantom(this); } } - -class LeylinePhantomTriggeredAbility extends TriggeredAbilityImpl { - - public LeylinePhantomTriggeredAbility() { - super(Zone.BATTLEFIELD, new ReturnToHandSourceEffect(true), false); - setTriggerPhrase("Whenever {this} deals combat damage, "); - } - - private LeylinePhantomTriggeredAbility(final LeylinePhantomTriggeredAbility ability) { - super(ability); - } - - @Override - public LeylinePhantomTriggeredAbility copy() { - return new LeylinePhantomTriggeredAbility(this); - } - - @Override - public boolean checkEventType(GameEvent event, Game game) { - return event.getType() == GameEvent.EventType.DAMAGED_PERMANENT - || event.getType() == GameEvent.EventType.DAMAGED_PLAYER; - } - - @Override - public boolean checkTrigger(GameEvent event, Game game) { - return ((DamagedEvent) event).isCombatDamage() && event.getSourceId().equals(this.getSourceId()); - } -} diff --git a/Mage.Sets/src/mage/cards/m/Mirozel.java b/Mage.Sets/src/mage/cards/m/Mirozel.java index 8eea6ec34e1..1ba57c024cc 100644 --- a/Mage.Sets/src/mage/cards/m/Mirozel.java +++ b/Mage.Sets/src/mage/cards/m/Mirozel.java @@ -28,7 +28,7 @@ public final class Mirozel extends CardImpl { this.addAbility(FlyingAbility.getInstance()); // When Mirozel becomes the target of a spell or ability, return Mirozel to its owner's hand. - this.addAbility(new BecomesTargetSourceTriggeredAbility(new ReturnToHandSourceEffect(true))); + this.addAbility(new BecomesTargetSourceTriggeredAbility(new ReturnToHandSourceEffect(true)).withRuleTextReplacement(false)); } private Mirozel(final Mirozel card) { diff --git a/Mage.Sets/src/mage/cards/n/NavSquadCommandos.java b/Mage.Sets/src/mage/cards/n/NavSquadCommandos.java index 76281fe3590..6162653e6f8 100644 --- a/Mage.Sets/src/mage/cards/n/NavSquadCommandos.java +++ b/Mage.Sets/src/mage/cards/n/NavSquadCommandos.java @@ -29,7 +29,7 @@ public final class NavSquadCommandos extends CardImpl { // Battalion — Whenever Nav Squad Commandos and at least two other creatures attack, Nav Squad Commandos gets +1/+1 until end of turn. Untap it. Ability ability = new BattalionAbility(new BoostSourceEffect(1,1, Duration.EndOfTurn)); - ability.addEffect(new UntapSourceEffect()); + ability.addEffect(new UntapSourceEffect().setText("untap it")); this.addAbility(ability); } diff --git a/Mage.Sets/src/mage/cards/n/Necrosynthesis.java b/Mage.Sets/src/mage/cards/n/Necrosynthesis.java index 0cf34886515..4af09bab5b6 100644 --- a/Mage.Sets/src/mage/cards/n/Necrosynthesis.java +++ b/Mage.Sets/src/mage/cards/n/Necrosynthesis.java @@ -4,7 +4,7 @@ import mage.abilities.Ability; import mage.abilities.common.DiesAttachedTriggeredAbility; import mage.abilities.common.DiesCreatureTriggeredAbility; import mage.abilities.common.SimpleStaticAbility; -import mage.abilities.dynamicvalue.DynamicValue; +import mage.abilities.dynamicvalue.common.AttachedPermanentPowerCount; import mage.abilities.effects.Effect; import mage.abilities.effects.common.AttachEffect; import mage.abilities.effects.common.LookLibraryAndPickControllerEffect; @@ -15,8 +15,6 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.*; import mage.counters.CounterType; -import mage.game.Game; -import mage.game.permanent.Permanent; import mage.target.TargetPermanent; import mage.target.common.TargetCreaturePermanent; @@ -47,8 +45,7 @@ public final class Necrosynthesis extends CardImpl { // When enchanted creature dies, look at the top X cards of your library, where X is its power. // Put one of those cards into your hand and the rest on the bottom of your library in a random order. - DynamicValue attachedPower = new NecrosynthesisAttachedPermanentPowerCount(); - effect = new LookLibraryAndPickControllerEffect(attachedPower, 1, PutCards.HAND, PutCards.BOTTOM_RANDOM); + effect = new LookLibraryAndPickControllerEffect(AttachedPermanentPowerCount.instance, 1, PutCards.HAND, PutCards.BOTTOM_RANDOM); effect.setText("look at the top X cards of your library, where X is its power. " + "Put one of those cards into your hand and the rest on the bottom of your library in a random order"); ability = new DiesAttachedTriggeredAbility(effect, "enchanted creature"); @@ -64,38 +61,3 @@ public final class Necrosynthesis extends CardImpl { return new Necrosynthesis(this); } } - -class NecrosynthesisAttachedPermanentPowerCount implements DynamicValue { - - @Override - public int calculate(Game game, Ability sourceAbility, Effect effect) { - Permanent attachmentPermanent = game.getPermanent(sourceAbility.getSourceId()); - if (attachmentPermanent == null) { - attachmentPermanent = (Permanent) game.getLastKnownInformation(sourceAbility.getSourceId(), Zone.BATTLEFIELD, sourceAbility.getSourceObjectZoneChangeCounter()); - } - if (attachmentPermanent != null && attachmentPermanent.getAttachedTo() != null) { - if (effect.getValue("attachedTo") != null) { - Permanent attached = (Permanent) effect.getValue("attachedTo"); - if (attached != null) { - return attached.getPower().getValue(); - } - } - } - return 0; - } - - @Override - public NecrosynthesisAttachedPermanentPowerCount copy() { - return new NecrosynthesisAttachedPermanentPowerCount(); - } - - @Override - public String toString() { - return "X"; - } - - @Override - public String getMessage() { - return "its power"; - } -} diff --git a/Mage.Sets/src/mage/cards/p/Petrahydrox.java b/Mage.Sets/src/mage/cards/p/Petrahydrox.java index 270d27a3ae2..1d8bd247bf9 100644 --- a/Mage.Sets/src/mage/cards/p/Petrahydrox.java +++ b/Mage.Sets/src/mage/cards/p/Petrahydrox.java @@ -24,7 +24,8 @@ public final class Petrahydrox extends CardImpl { this.toughness = new MageInt(3); // When Petrahydrox becomes the target of a spell or ability, return Petrahydrox to its owner's hand. - this.addAbility(new BecomesTargetSourceTriggeredAbility(new ReturnToHandSourceEffect(true))); + this.addAbility(new BecomesTargetSourceTriggeredAbility(new ReturnToHandSourceEffect(true)) + .withRuleTextReplacement(false)); } private Petrahydrox(final Petrahydrox card) { diff --git a/Mage.Sets/src/mage/cards/p/PowerOfPersuasion.java b/Mage.Sets/src/mage/cards/p/PowerOfPersuasion.java index 9f3c975acce..b0570f7680e 100644 --- a/Mage.Sets/src/mage/cards/p/PowerOfPersuasion.java +++ b/Mage.Sets/src/mage/cards/p/PowerOfPersuasion.java @@ -32,7 +32,7 @@ public final class PowerOfPersuasion extends CardImpl { // 10-19 | Its owner puts it on the top of bottom of their library. effect.addTableEntry(10, 19, new PutOnTopOrBottomLibraryTargetEffect( - "its owner puts it on the top of bottom of their library" + "its owner puts it on the top or bottom of their library" )); // 20 | Gain control of it until the end of your next turn. diff --git a/Mage.Sets/src/mage/cards/s/ShivanPhoenix.java b/Mage.Sets/src/mage/cards/s/ShivanPhoenix.java index 73d5e7128ea..b3a3c9a1373 100644 --- a/Mage.Sets/src/mage/cards/s/ShivanPhoenix.java +++ b/Mage.Sets/src/mage/cards/s/ShivanPhoenix.java @@ -27,7 +27,7 @@ public final class ShivanPhoenix extends CardImpl { // Flying this.addAbility(FlyingAbility.getInstance()); // When Shivan Phoenix dies, return Shivan Phoenix to its owner's hand. - this.addAbility(new DiesSourceTriggeredAbility(new ReturnToHandSourceEffect())); + this.addAbility(new DiesSourceTriggeredAbility(new ReturnToHandSourceEffect()).withRuleTextReplacement(false)); } private ShivanPhoenix(final ShivanPhoenix card) { diff --git a/Mage.Sets/src/mage/cards/s/SparkTrooper.java b/Mage.Sets/src/mage/cards/s/SparkTrooper.java index d6415e10bd2..f557bbb7411 100644 --- a/Mage.Sets/src/mage/cards/s/SparkTrooper.java +++ b/Mage.Sets/src/mage/cards/s/SparkTrooper.java @@ -35,7 +35,7 @@ public final class SparkTrooper extends CardImpl { this.addAbility(HasteAbility.getInstance()); // At the beginning of the end step, sacrifice Spark Trooper. - this.addAbility(new BeginningOfEndStepTriggeredAbility(new SacrificeSourceEffect(), TargetController.ANY, false)); + this.addAbility(new BeginningOfEndStepTriggeredAbility(new SacrificeSourceEffect(), TargetController.NEXT, false)); } diff --git a/Mage.Sets/src/mage/cards/s/SpikeDrone.java b/Mage.Sets/src/mage/cards/s/SpikeDrone.java index 29b50db1244..6d32b17ef8a 100644 --- a/Mage.Sets/src/mage/cards/s/SpikeDrone.java +++ b/Mage.Sets/src/mage/cards/s/SpikeDrone.java @@ -1,4 +1,3 @@ - package mage.cards.s; import java.util.UUID; @@ -33,7 +32,7 @@ public final class SpikeDrone extends CardImpl { this.toughness = new MageInt(0); this.addAbility(new EntersBattlefieldAbility(new AddCountersSourceEffect(CounterType.P1P1.createInstance(1)), - "{this} enters the battlefield with a +1/+1 counter on it")); + "with a +1/+1 counter on it")); Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new AddCountersTargetEffect(CounterType.P1P1.createInstance(1)), new GenericManaCost(2)); ability.addCost(new RemoveCountersSourceCost(CounterType.P1P1.createInstance(1))); diff --git a/Mage.Sets/src/mage/cards/u/UndercityInformer.java b/Mage.Sets/src/mage/cards/u/UndercityInformer.java index 5aefe924bc1..b65c3d6eb34 100644 --- a/Mage.Sets/src/mage/cards/u/UndercityInformer.java +++ b/Mage.Sets/src/mage/cards/u/UndercityInformer.java @@ -20,7 +20,6 @@ import mage.filter.StaticFilters; import mage.game.Game; import mage.players.Player; import mage.target.TargetPlayer; -import mage.target.common.TargetControlledCreaturePermanent; /** * @@ -58,7 +57,7 @@ class UndercityInformerEffect extends OneShotEffect { public UndercityInformerEffect() { super(Outcome.PutCardInPlay); - this.staticText = "Target player reveals the top card of their library until they reveal a land card, then puts those cards into their graveyard"; + this.staticText = "Target player reveals cards from the top of their library until they reveal a land card, then puts those cards into their graveyard"; } private UndercityInformerEffect(final UndercityInformerEffect effect) { diff --git a/Mage.Sets/src/mage/cards/v/Vesuva.java b/Mage.Sets/src/mage/cards/v/Vesuva.java index 168ad4aafa6..0e51ae8efd2 100644 --- a/Mage.Sets/src/mage/cards/v/Vesuva.java +++ b/Mage.Sets/src/mage/cards/v/Vesuva.java @@ -1,4 +1,3 @@ - package mage.cards.v; import java.util.UUID; @@ -32,7 +31,7 @@ public final class Vesuva extends CardImpl { effect.setText("tapped"); Ability ability = new EntersBattlefieldAbility(effect, true); effect = new CopyPermanentEffect(filter); - effect.setText("as a copy of any land on the battlefield"); + effect.setText(" as a copy of any land on the battlefield"); ability.addEffect(effect); this.addAbility(ability); } diff --git a/Mage.Sets/src/mage/cards/z/ZodiacDragon.java b/Mage.Sets/src/mage/cards/z/ZodiacDragon.java index 31c45413d3f..e3fb82a4dcf 100644 --- a/Mage.Sets/src/mage/cards/z/ZodiacDragon.java +++ b/Mage.Sets/src/mage/cards/z/ZodiacDragon.java @@ -1,9 +1,8 @@ - package mage.cards.z; import java.util.UUID; import mage.MageInt; -import mage.abilities.common.DiesSourceTriggeredAbility; +import mage.abilities.common.PutIntoGraveFromBattlefieldSourceTriggeredAbility; import mage.abilities.effects.common.ReturnToHandSourceEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; @@ -23,7 +22,7 @@ public final class ZodiacDragon extends CardImpl { this.toughness = new MageInt(8); // When Zodiac Dragon is put into your graveyard from the battlefield, you may return it to your hand. - this.addAbility(new DiesSourceTriggeredAbility(new ReturnToHandSourceEffect(), true)); + this.addAbility(new PutIntoGraveFromBattlefieldSourceTriggeredAbility(new ReturnToHandSourceEffect(), true, true)); } private ZodiacDragon(final ZodiacDragon card) { diff --git a/Mage/src/main/java/mage/abilities/TriggeredAbilityImpl.java b/Mage/src/main/java/mage/abilities/TriggeredAbilityImpl.java index bd183cccaf6..b6248d1b1ae 100644 --- a/Mage/src/main/java/mage/abilities/TriggeredAbilityImpl.java +++ b/Mage/src/main/java/mage/abilities/TriggeredAbilityImpl.java @@ -226,7 +226,7 @@ public abstract class TriggeredAbilityImpl extends AbilityImpl implements Trigge } } if (replaceRuleText && triggerPhrase != null) { - superRule = superRule.replaceFirst("^((?:you may )?sacrifice |put a [^ ]+ counter on )?\\{this\\}", "$1it"); + superRule = superRule.replaceFirst("^((?:you may )?sacrifice |put a [^ ]+ counter on |return )?\\{this\\}", "$1it"); } sb.append(superRule); if (triggersOnceEachTurn) { diff --git a/Mage/src/main/java/mage/abilities/common/BecomesBlockedSourceTriggeredAbility.java b/Mage/src/main/java/mage/abilities/common/BecomesBlockedSourceTriggeredAbility.java index 78ce6cff2d5..aaeaa6a3954 100644 --- a/Mage/src/main/java/mage/abilities/common/BecomesBlockedSourceTriggeredAbility.java +++ b/Mage/src/main/java/mage/abilities/common/BecomesBlockedSourceTriggeredAbility.java @@ -21,7 +21,7 @@ public class BecomesBlockedSourceTriggeredAbility extends TriggeredAbilityImpl { public BecomesBlockedSourceTriggeredAbility(Effect effect, boolean optional, boolean setTargetPointer) { super(Zone.BATTLEFIELD, effect, optional); this.setTargetPointer = setTargetPointer; - setTriggerPhrase("Whenever {this} becomes blocked, "); + setTriggerPhrase(getWhen() + "{this} becomes blocked, "); this.replaceRuleText = true; // default true to replace "{this}" with "it" } diff --git a/Mage/src/main/java/mage/abilities/common/DealsCombatDamageTriggeredAbility.java b/Mage/src/main/java/mage/abilities/common/DealsCombatDamageTriggeredAbility.java index f8f0b90fc69..d59c7a6bf50 100644 --- a/Mage/src/main/java/mage/abilities/common/DealsCombatDamageTriggeredAbility.java +++ b/Mage/src/main/java/mage/abilities/common/DealsCombatDamageTriggeredAbility.java @@ -22,7 +22,8 @@ public class DealsCombatDamageTriggeredAbility extends TriggeredAbilityImpl { public DealsCombatDamageTriggeredAbility(Effect effect, boolean optional) { super(Zone.BATTLEFIELD, effect, optional); this.usedThisStep = false; - setTriggerPhrase("Whenever {this} deals combat damage, "); + setTriggerPhrase(getWhen() + "{this} deals combat damage, "); + this.replaceRuleText = true; } protected DealsCombatDamageTriggeredAbility(final DealsCombatDamageTriggeredAbility ability) {