From af89fd80ee8181ebe7c4865d4fae02181f64a0d7 Mon Sep 17 00:00:00 2001 From: xenohedron Date: Sat, 1 Jun 2024 16:32:11 -0400 Subject: [PATCH] even more text fixes/updates --- .../src/mage/cards/b/BespokeBattlewagon.java | 2 +- .../mage/cards/c/CodieVociferousCodex.java | 2 +- Mage.Sets/src/mage/cards/d/Dreadmobile.java | 16 +++++- .../src/mage/cards/f/FetidGargantua.java | 2 +- Mage.Sets/src/mage/cards/f/FickleEfreet.java | 2 +- .../src/mage/cards/g/GhostfireSlice.java | 2 +- .../src/mage/cards/h/HopeEnderCoatl.java | 3 +- .../src/mage/cards/h/HowlOfTheHorde.java | 57 ++----------------- .../src/mage/cards/k/KumanoFacesKakkazan.java | 6 +- .../mage/cards/l/LocalizedDestruction.java | 2 +- .../src/mage/cards/l/LongListOfTheEnts.java | 2 +- .../src/mage/cards/n/NarsetTranscendent.java | 2 +- Mage.Sets/src/mage/cards/p/Pyrogoyf.java | 4 +- .../mage/cards/r/RalAndTheImplicitMaze.java | 3 +- .../src/mage/cards/r/RideTheAvalanche.java | 2 +- .../src/mage/cards/s/StormKingsThunder.java | 4 +- .../mage/cards/t/TamiyoSeasonedScholar.java | 4 +- .../src/mage/cards/t/ThunderclapDrake.java | 2 +- .../src/mage/cards/u/UlamogTheDefiler.java | 7 +-- .../mage/cards/v/VivienMonstersAdvocate.java | 2 +- ...neOrMoreCountersAddedTriggeredAbility.java | 1 + 21 files changed, 45 insertions(+), 82 deletions(-) diff --git a/Mage.Sets/src/mage/cards/b/BespokeBattlewagon.java b/Mage.Sets/src/mage/cards/b/BespokeBattlewagon.java index 609894fd875..1c282831782 100644 --- a/Mage.Sets/src/mage/cards/b/BespokeBattlewagon.java +++ b/Mage.Sets/src/mage/cards/b/BespokeBattlewagon.java @@ -48,7 +48,7 @@ public final class BespokeBattlewagon extends CardImpl { // Pay {E}{E}{E}{E}: Bespoke Battlewagon becomes an artifact creature until end of turn. this.addAbility(new SimpleActivatedAbility(new AddCardTypeSourceEffect( Duration.EndOfTurn, CardType.ARTIFACT, CardType.CREATURE - ), new PayEnergyCost(4))); + ).setText("{this} becomes an artifact creature until end of turn"), new PayEnergyCost(4))); // Crew 4 this.addAbility(new CrewAbility(4)); diff --git a/Mage.Sets/src/mage/cards/c/CodieVociferousCodex.java b/Mage.Sets/src/mage/cards/c/CodieVociferousCodex.java index e5e8c93bb1a..a8a337922ee 100644 --- a/Mage.Sets/src/mage/cards/c/CodieVociferousCodex.java +++ b/Mage.Sets/src/mage/cards/c/CodieVociferousCodex.java @@ -123,7 +123,7 @@ class CodieVociferousCodexDelayedTriggeredAbility extends DelayedTriggeredAbilit @Override public String getRule() { - return "When you cast your next spell this turn, exile cards from the top of your library " + return "When you next cast a spell this turn, exile cards from the top of your library " + "until you exile an instant or sorcery card with lesser mana value. Until end of turn, " + "you may cast that card without paying its mana cost. Put each other card exiled this way " + "on the bottom of your library in a random order."; diff --git a/Mage.Sets/src/mage/cards/d/Dreadmobile.java b/Mage.Sets/src/mage/cards/d/Dreadmobile.java index 2834fe12669..c2602dc2c30 100644 --- a/Mage.Sets/src/mage/cards/d/Dreadmobile.java +++ b/Mage.Sets/src/mage/cards/d/Dreadmobile.java @@ -13,7 +13,9 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.SubType; import mage.counters.CounterType; -import mage.filter.StaticFilters; +import mage.filter.FilterPermanent; +import mage.filter.predicate.Predicates; +import mage.filter.predicate.mageobject.AnotherPredicate; import java.util.UUID; @@ -22,6 +24,16 @@ import java.util.UUID; */ public final class Dreadmobile extends CardImpl { + private static final FilterPermanent filter = new FilterPermanent("another artifact or creature"); + + static { + filter.add(AnotherPredicate.instance); + filter.add(Predicates.or( + CardType.ARTIFACT.getPredicate(), + CardType.CREATURE.getPredicate() + )); + } + public Dreadmobile(UUID ownerId, CardSetInfo setInfo) { super(ownerId, setInfo, new CardType[]{CardType.ARTIFACT}, "{2}{B}"); @@ -36,7 +48,7 @@ public final class Dreadmobile extends CardImpl { Ability ability = new SimpleActivatedAbility( new AddCountersSourceEffect(CounterType.P1P1.createInstance()), new GenericManaCost(1) ); - ability.addCost(new SacrificeTargetCost(StaticFilters.FILTER_CONTROLLED_ANOTHER_CREATURE_OR_ARTIFACT)); + ability.addCost(new SacrificeTargetCost(filter)); this.addAbility(ability); // Crew 1 diff --git a/Mage.Sets/src/mage/cards/f/FetidGargantua.java b/Mage.Sets/src/mage/cards/f/FetidGargantua.java index a420049d30a..adfe8d36bfc 100644 --- a/Mage.Sets/src/mage/cards/f/FetidGargantua.java +++ b/Mage.Sets/src/mage/cards/f/FetidGargantua.java @@ -26,7 +26,7 @@ public final class FetidGargantua extends CardImpl { this.toughness = new MageInt(4); // {2}{B}: Adapt 2. - this.addAbility(new AdaptAbility(1, "{2}{B}")); + this.addAbility(new AdaptAbility(2, "{2}{B}")); // Whenever one or more +1/+1 counters are put on Fetid Gargantua, you may draw two cards. If you do, you lose 2 life. Ability ability = new OneOrMoreCountersAddedTriggeredAbility(new DrawCardSourceControllerEffect(2), true); diff --git a/Mage.Sets/src/mage/cards/f/FickleEfreet.java b/Mage.Sets/src/mage/cards/f/FickleEfreet.java index 7bf6dcbf045..264c4c59b93 100644 --- a/Mage.Sets/src/mage/cards/f/FickleEfreet.java +++ b/Mage.Sets/src/mage/cards/f/FickleEfreet.java @@ -53,7 +53,7 @@ class FickleEfreetChangeControlEffect extends OneShotEffect { FickleEfreetChangeControlEffect() { super(Outcome.Benefit); - this.staticText = "flip a coin at end of combat. If you lose the flip, choose one of your opponents. That player gains control of {this}"; + this.staticText = "flip a coin at end of combat. If you lose the flip, an opponent gains control of {this}"; } private FickleEfreetChangeControlEffect(final FickleEfreetChangeControlEffect effect) { diff --git a/Mage.Sets/src/mage/cards/g/GhostfireSlice.java b/Mage.Sets/src/mage/cards/g/GhostfireSlice.java index be31dcca0aa..d664f92950c 100644 --- a/Mage.Sets/src/mage/cards/g/GhostfireSlice.java +++ b/Mage.Sets/src/mage/cards/g/GhostfireSlice.java @@ -24,7 +24,7 @@ import java.util.UUID; */ public final class GhostfireSlice extends CardImpl { - private static final FilterPermanent filter = new FilterPermanent("a multicolored permanent"); + private static final FilterPermanent filter = new FilterPermanent("an opponent controls a multicolored permanent"); static { filter.add(MulticoloredPredicate.instance); diff --git a/Mage.Sets/src/mage/cards/h/HopeEnderCoatl.java b/Mage.Sets/src/mage/cards/h/HopeEnderCoatl.java index a91b7fdee98..d461e6b7cfa 100644 --- a/Mage.Sets/src/mage/cards/h/HopeEnderCoatl.java +++ b/Mage.Sets/src/mage/cards/h/HopeEnderCoatl.java @@ -44,7 +44,8 @@ public final class HopeEnderCoatl extends CardImpl { this.addAbility(FlashAbility.getInstance()); // When you cast this spell, counter target spell an opponent controls unless they pay {1}. - Ability ability = new CastSourceTriggeredAbility(new CounterUnlessPaysEffect(new GenericManaCost(1))); + Ability ability = new CastSourceTriggeredAbility(new CounterUnlessPaysEffect(new GenericManaCost(1)) + .setText("counter target spell an opponent controls unless they pay {1}")); ability.addTarget(new TargetSpell(filter)); this.addAbility(ability); diff --git a/Mage.Sets/src/mage/cards/h/HowlOfTheHorde.java b/Mage.Sets/src/mage/cards/h/HowlOfTheHorde.java index 5bb35f63aa1..9b0826964b5 100644 --- a/Mage.Sets/src/mage/cards/h/HowlOfTheHorde.java +++ b/Mage.Sets/src/mage/cards/h/HowlOfTheHorde.java @@ -1,20 +1,13 @@ package mage.cards.h; -import mage.abilities.DelayedTriggeredAbility; +import mage.abilities.common.delayed.CopyNextSpellDelayedTriggeredAbility; import mage.abilities.condition.common.RaidCondition; import mage.abilities.decorator.ConditionalOneShotEffect; -import mage.abilities.effects.Effect; -import mage.abilities.effects.common.CopyTargetStackObjectEffect; import mage.abilities.effects.common.CreateDelayedTriggeredAbilityEffect; import mage.abilities.hint.common.RaidHint; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; -import mage.constants.Duration; -import mage.game.Game; -import mage.game.events.GameEvent; -import mage.game.stack.Spell; -import mage.target.targetpointer.FixedTarget; import mage.watchers.common.PlayerAttackedWatcher; import java.util.UUID; @@ -29,15 +22,13 @@ public final class HowlOfTheHorde extends CardImpl { // When you cast your next instant or sorcery spell this turn, copy that spell. You may choose new targets for the copy. - Effect effect = new CreateDelayedTriggeredAbilityEffect(new HowlOfTheHordeDelayedTriggeredAbility()); - effect.setText("When you cast your next instant or sorcery spell this turn, copy that spell. You may choose new targets for the copy."); - this.getSpellAbility().addEffect(effect); + this.getSpellAbility().addEffect(new CreateDelayedTriggeredAbilityEffect(new CopyNextSpellDelayedTriggeredAbility())); // Raid — If you attacked with a creature this turn, when you cast your next instant or sorcery spell this turn, copy that spell an additional time. You may choose new targets for the copy. this.getSpellAbility().addEffect(new ConditionalOneShotEffect( - new CreateDelayedTriggeredAbilityEffect(new HowlOfTheHordeDelayedTriggeredAbility()), + new CreateDelayedTriggeredAbilityEffect(new CopyNextSpellDelayedTriggeredAbility()), RaidCondition.instance, - "

Raid — If you attacked this turn, when you cast your next instant or sorcery spell this turn, copy that spell an additional time. You may choose new targets for the copy.") + "

Raid — If you attacked this turn, when you next cast an instant or sorcery spell this turn, copy that spell an additional time. You may choose new targets for the copy.") ); this.getSpellAbility().addWatcher(new PlayerAttackedWatcher()); this.getSpellAbility().addHint(RaidHint.instance); @@ -52,43 +43,3 @@ public final class HowlOfTheHorde extends CardImpl { return new HowlOfTheHorde(this); } } - -class HowlOfTheHordeDelayedTriggeredAbility extends DelayedTriggeredAbility { - - HowlOfTheHordeDelayedTriggeredAbility() { - super(new CopyTargetStackObjectEffect(true), Duration.EndOfTurn); - } - - private HowlOfTheHordeDelayedTriggeredAbility(final HowlOfTheHordeDelayedTriggeredAbility ability) { - super(ability); - } - - @Override - public HowlOfTheHordeDelayedTriggeredAbility copy() { - return new HowlOfTheHordeDelayedTriggeredAbility(this); - } - - @Override - public boolean checkEventType(GameEvent event, Game game) { - return event.getType() == GameEvent.EventType.SPELL_CAST; - } - - @Override - public boolean checkTrigger(GameEvent event, Game game) { - if (event.getPlayerId().equals(this.getControllerId())) { - Spell spell = game.getStack().getSpell(event.getTargetId()); - if (spell != null && spell.isInstantOrSorcery(game)) { - for (Effect effect : this.getEffects()) { - effect.setTargetPointer(new FixedTarget(event.getTargetId())); - } - return true; - } - } - return false; - } - - @Override - public String getRule() { - return "When you cast your next instant or sorcery spell this turn, copy that spell. You may choose new targets for the copy."; - } -} diff --git a/Mage.Sets/src/mage/cards/k/KumanoFacesKakkazan.java b/Mage.Sets/src/mage/cards/k/KumanoFacesKakkazan.java index 9b5977f9052..44fb657edd7 100644 --- a/Mage.Sets/src/mage/cards/k/KumanoFacesKakkazan.java +++ b/Mage.Sets/src/mage/cards/k/KumanoFacesKakkazan.java @@ -99,7 +99,7 @@ class KumanoFacesKakkazanDamageEffect extends OneShotEffect { class KumanoFacesKakkazanTriggeredAbility extends DelayedTriggeredAbility { - public KumanoFacesKakkazanTriggeredAbility() { + KumanoFacesKakkazanTriggeredAbility() { super(null, Duration.EndOfTurn); } @@ -132,7 +132,7 @@ class KumanoFacesKakkazanTriggeredAbility extends DelayedTriggeredAbility { @Override public String getRule() { - return "When you cast your next creature spell this turn, that creature enters the battlefield with an additional +1/+1 counter on it."; + return "When you next cast a creature spell this turn, that creature enters the battlefield with an additional +1/+1 counter on it."; } } @@ -140,7 +140,7 @@ class KumanoFacesKakkazanCounterEffect extends ReplacementEffectImpl { private final UUID spellCastId; - public KumanoFacesKakkazanCounterEffect(UUID spellCastId) { + KumanoFacesKakkazanCounterEffect(UUID spellCastId) { super(Duration.EndOfTurn, Outcome.BoostCreature); this.spellCastId = spellCastId; } diff --git a/Mage.Sets/src/mage/cards/l/LocalizedDestruction.java b/Mage.Sets/src/mage/cards/l/LocalizedDestruction.java index 2f05d3de903..7978516edc6 100644 --- a/Mage.Sets/src/mage/cards/l/LocalizedDestruction.java +++ b/Mage.Sets/src/mage/cards/l/LocalizedDestruction.java @@ -41,7 +41,7 @@ public final class LocalizedDestruction extends CardImpl { this.getSpellAbility().addEffect(new LocalizedDestructionEffect()); // Destroy all creatures. - this.getSpellAbility().addEffect(new DestroyAllEffect(StaticFilters.FILTER_PERMANENT_CREATURES)); + this.getSpellAbility().addEffect(new DestroyAllEffect(StaticFilters.FILTER_PERMANENT_CREATURES).concatBy("
")); } private LocalizedDestruction(final LocalizedDestruction card) { diff --git a/Mage.Sets/src/mage/cards/l/LongListOfTheEnts.java b/Mage.Sets/src/mage/cards/l/LongListOfTheEnts.java index 619a7356d7b..057a119483f 100644 --- a/Mage.Sets/src/mage/cards/l/LongListOfTheEnts.java +++ b/Mage.Sets/src/mage/cards/l/LongListOfTheEnts.java @@ -90,7 +90,7 @@ class LongListOfTheEntsEffect extends OneShotEffect { LongListOfTheEntsEffect() { super(Outcome.Benefit); - staticText = "note a creature type that hasn't been noted for {this}. When you cast your next creature spell " + + staticText = "note a creature type that hasn't been noted for {this}. When you next cast a creature spell " + "of that type this turn, that creature enters the battlefield with an additional +1/+1 counter on it."; } diff --git a/Mage.Sets/src/mage/cards/n/NarsetTranscendent.java b/Mage.Sets/src/mage/cards/n/NarsetTranscendent.java index 58ed4e58215..85a32a7e953 100644 --- a/Mage.Sets/src/mage/cards/n/NarsetTranscendent.java +++ b/Mage.Sets/src/mage/cards/n/NarsetTranscendent.java @@ -106,7 +106,7 @@ class NarsetTranscendentTriggeredAbility extends DelayedTriggeredAbility { public NarsetTranscendentTriggeredAbility() { super(new NarsetTranscendentGainReboundEffect(), Duration.EndOfTurn, true); - setTriggerPhrase("When you cast your next instant or sorcery spell from your hand this turn, "); + setTriggerPhrase("When you next cast an instant or sorcery spell from your hand this turn, "); } private NarsetTranscendentTriggeredAbility(final NarsetTranscendentTriggeredAbility ability) { diff --git a/Mage.Sets/src/mage/cards/p/Pyrogoyf.java b/Mage.Sets/src/mage/cards/p/Pyrogoyf.java index aa9dded8db9..bfe4243f00c 100644 --- a/Mage.Sets/src/mage/cards/p/Pyrogoyf.java +++ b/Mage.Sets/src/mage/cards/p/Pyrogoyf.java @@ -25,7 +25,7 @@ import java.util.UUID; */ public final class Pyrogoyf extends CardImpl { - private static final FilterCreaturePermanent filter = new FilterCreaturePermanent(SubType.LHURGOYF, "{this} or another Lhurgoyf creature"); + private static final FilterCreaturePermanent filter = new FilterCreaturePermanent(SubType.LHURGOYF, "Lhurgoyf creature"); private static final DynamicValue powerValue = CardTypesInGraveyardCount.ALL; @@ -91,4 +91,4 @@ class PyrogoyfEffect extends OneShotEffect { } return false; } -} \ No newline at end of file +} diff --git a/Mage.Sets/src/mage/cards/r/RalAndTheImplicitMaze.java b/Mage.Sets/src/mage/cards/r/RalAndTheImplicitMaze.java index de22075b4a7..b26ba2ca117 100644 --- a/Mage.Sets/src/mage/cards/r/RalAndTheImplicitMaze.java +++ b/Mage.Sets/src/mage/cards/r/RalAndTheImplicitMaze.java @@ -40,7 +40,8 @@ public final class RalAndTheImplicitMaze extends CardImpl { // II -- You may discard a card. If you do, exile the top two cards of your library. You may play them until the end of your next turn. sagaAbility.addChapterEffect( this, SagaChapter.CHAPTER_II, - new DoIfCostPaid(new ExileTopXMayPlayUntilEffect(2, Duration.UntilEndOfYourNextTurn), new DiscardCardCost()) + new DoIfCostPaid(new ExileTopXMayPlayUntilEffect(2, Duration.UntilEndOfYourNextTurn) + .withTextOptions("them", true), new DiscardCardCost()) ); // III -- Create a Spellgorger Weird token. diff --git a/Mage.Sets/src/mage/cards/r/RideTheAvalanche.java b/Mage.Sets/src/mage/cards/r/RideTheAvalanche.java index c7d4b60948c..7563806eb58 100644 --- a/Mage.Sets/src/mage/cards/r/RideTheAvalanche.java +++ b/Mage.Sets/src/mage/cards/r/RideTheAvalanche.java @@ -152,7 +152,7 @@ class RideTheAvalancheTriggeredAbility extends DelayedTriggeredAbility { @Override public String getRule() { - return "When you cast your next spell this turn, " + + return "When you next cast a spell this turn, " + "put X +1/+1 counters on up to one target creature, " + "where X is the mana value of that spell."; } diff --git a/Mage.Sets/src/mage/cards/s/StormKingsThunder.java b/Mage.Sets/src/mage/cards/s/StormKingsThunder.java index 0638bcd1739..ec6d8484d03 100644 --- a/Mage.Sets/src/mage/cards/s/StormKingsThunder.java +++ b/Mage.Sets/src/mage/cards/s/StormKingsThunder.java @@ -40,7 +40,7 @@ class StormKingsThunderEffect extends OneShotEffect { StormKingsThunderEffect() { super(Outcome.Benefit); - staticText = "When you cast your next instant or sorcery spell this turn, " + + staticText = "When you next cast an instant or sorcery spell this turn, " + "copy that spell X times. You may choose new targets for the copies."; } @@ -95,7 +95,7 @@ class StormKingsThunderAbility extends DelayedTriggeredAbility { @Override public String getRule() { - return "When you cast your next instant or sorcery spell this turn, " + + return "When you next cast an instant or sorcery spell this turn, " + "copy that spell X times. You may choose new targets for the copies."; } diff --git a/Mage.Sets/src/mage/cards/t/TamiyoSeasonedScholar.java b/Mage.Sets/src/mage/cards/t/TamiyoSeasonedScholar.java index 1328a8dd7d0..22fb297f6d1 100644 --- a/Mage.Sets/src/mage/cards/t/TamiyoSeasonedScholar.java +++ b/Mage.Sets/src/mage/cards/t/TamiyoSeasonedScholar.java @@ -50,7 +50,7 @@ public final class TamiyoSeasonedScholar extends CardImpl { new AttacksAllTriggeredAbility( new BoostTargetEffect(-1, 0, Duration.EndOfTurn) .setText("it gets -1/-0 until end of turn"), - false, StaticFilters.FILTER_OPPONENTS_PERMANENT_A_CREATURE, + false, StaticFilters.FILTER_PERMANENT_CREATURE, SetTargetPointer.PERMANENT, true ) ) @@ -112,4 +112,4 @@ class TamiyoSeasonedScholarMinus3Effect extends OneShotEffect { } return true; } -} \ No newline at end of file +} diff --git a/Mage.Sets/src/mage/cards/t/ThunderclapDrake.java b/Mage.Sets/src/mage/cards/t/ThunderclapDrake.java index d2aefcc0bd0..1d726ddfb87 100644 --- a/Mage.Sets/src/mage/cards/t/ThunderclapDrake.java +++ b/Mage.Sets/src/mage/cards/t/ThunderclapDrake.java @@ -53,7 +53,7 @@ public final class ThunderclapDrake extends CardImpl { new CopyNextSpellDelayedTriggeredAbility( StaticFilters.FILTER_SPELL_INSTANT_OR_SORCERY, new ThunderclapDrakeEffect(), - "When you cast your next instant or sorcery spell this turn, " + "When you next cast an instant or sorcery spell this turn, " + "copy it for each time you've cast your commander from the command zone this game. " + "You may choose new targets for the copies." ) diff --git a/Mage.Sets/src/mage/cards/u/UlamogTheDefiler.java b/Mage.Sets/src/mage/cards/u/UlamogTheDefiler.java index 8f6962d37bb..b4d3f194dbd 100644 --- a/Mage.Sets/src/mage/cards/u/UlamogTheDefiler.java +++ b/Mage.Sets/src/mage/cards/u/UlamogTheDefiler.java @@ -7,7 +7,6 @@ import mage.abilities.common.EntersBattlefieldAbility; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.costs.common.SacrificeTargetCost; import mage.abilities.dynamicvalue.DynamicValue; -import mage.abilities.dynamicvalue.common.CountersSourceCount; import mage.abilities.effects.ContinuousEffectImpl; import mage.abilities.effects.Effect; import mage.abilities.effects.OneShotEffect; @@ -36,8 +35,6 @@ import java.util.UUID; */ public final class UlamogTheDefiler extends CardImpl { - private static final DynamicValue xValue = new CountersSourceCount(CounterType.P1P1); - public UlamogTheDefiler(UUID ownerId, CardSetInfo setInfo) { super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{10}"); @@ -52,7 +49,7 @@ public final class UlamogTheDefiler extends CardImpl { this.addAbility(ability); // Ward--Sacrifice two permanents. - this.addAbility(new WardAbility(new SacrificeTargetCost(2, StaticFilters.FILTER_PERMANENT))); + this.addAbility(new WardAbility(new SacrificeTargetCost(2, StaticFilters.FILTER_PERMANENTS))); // Ulamog, the Defiler enters the battlefield with a number of +1/+1 counters on it equal to the greatest mana value among cards in exile. this.addAbility( @@ -196,4 +193,4 @@ class UlamogTheDefilerContinuousAbility extends ContinuousEffectImpl { return true; } -} \ No newline at end of file +} diff --git a/Mage.Sets/src/mage/cards/v/VivienMonstersAdvocate.java b/Mage.Sets/src/mage/cards/v/VivienMonstersAdvocate.java index 47138bda3a1..a9f95e4ec9a 100644 --- a/Mage.Sets/src/mage/cards/v/VivienMonstersAdvocate.java +++ b/Mage.Sets/src/mage/cards/v/VivienMonstersAdvocate.java @@ -155,7 +155,7 @@ class VivienMonstersAdvocateTriggeredAbility extends DelayedTriggeredAbility { @Override public String getRule() { - return "When you cast your next creature spell this turn, " + return "When you next cast a creature spell this turn, " + "search your library for a creature card with lesser mana value, " + "put it onto the battlefield, then shuffle."; } diff --git a/Mage/src/main/java/mage/abilities/common/OneOrMoreCountersAddedTriggeredAbility.java b/Mage/src/main/java/mage/abilities/common/OneOrMoreCountersAddedTriggeredAbility.java index db1669cf0ef..1b3728815ae 100644 --- a/Mage/src/main/java/mage/abilities/common/OneOrMoreCountersAddedTriggeredAbility.java +++ b/Mage/src/main/java/mage/abilities/common/OneOrMoreCountersAddedTriggeredAbility.java @@ -23,6 +23,7 @@ public class OneOrMoreCountersAddedTriggeredAbility extends TriggeredAbilityImpl super(Zone.ALL, effect, optional); this.counterType = counterType; setTriggerPhrase("Whenever one or more " + counterType.getName() + " counters are put on {this}, "); + this.withRuleTextReplacement(true); } protected OneOrMoreCountersAddedTriggeredAbility(final OneOrMoreCountersAddedTriggeredAbility ability) {