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) {