From 761818c90f0f7dfabc131f852a27af154ecffd19 Mon Sep 17 00:00:00 2001 From: theelk801 Date: Tue, 18 Nov 2025 11:30:24 -0500 Subject: [PATCH] [TLE] various text fixes --- .../mage/cards/a/AvatarKyoshiEarthbender.java | 2 +- Mage.Sets/src/mage/cards/b/BaboonSpirit.java | 2 +- .../mage/cards/b/BeifongsBountyHunters.java | 2 +- Mage.Sets/src/mage/cards/b/BoscoJustABear.java | 2 +- .../src/mage/cards/b/BumisFeastLecture.java | 2 +- .../src/mage/cards/c/ChongAndLilyNomads.java | 4 ++-- .../mage/cards/c/CrackedEarthTechnique.java | 7 ++++--- .../src/mage/cards/f/FireNationTurret.java | 1 + .../src/mage/cards/g/GavelOfTheRighteous.java | 9 ++++++--- .../src/mage/cards/i/IrohDragonOfTheWest.java | 18 ++++++++++-------- Mage.Sets/src/mage/cards/r/Rockalanche.java | 2 +- .../src/mage/cards/s/ScarringMemories.java | 2 +- .../mage/cards/t/TheBoulderReadyToRumble.java | 2 +- .../src/mage/cards/t/TheLegendOfKyoshi.java | 2 +- .../mage/cards/t/TophEarthbendingMaster.java | 2 +- .../mage/cards/t/TophGreatestEarthbender.java | 2 +- .../costs/common/RemoveCountersSourceCost.java | 15 ++++++--------- .../effects/keyword/EarthbendTargetEffect.java | 14 ++++++++++++-- .../target/common/TargetAttackingCreature.java | 2 +- Mage/src/main/java/mage/util/CardUtil.java | 2 +- 20 files changed, 54 insertions(+), 40 deletions(-) diff --git a/Mage.Sets/src/mage/cards/a/AvatarKyoshiEarthbender.java b/Mage.Sets/src/mage/cards/a/AvatarKyoshiEarthbender.java index 3f10bdf55f9..69f20bef3cf 100644 --- a/Mage.Sets/src/mage/cards/a/AvatarKyoshiEarthbender.java +++ b/Mage.Sets/src/mage/cards/a/AvatarKyoshiEarthbender.java @@ -41,7 +41,7 @@ public final class AvatarKyoshiEarthbender extends CardImpl { ))); // At the beginning of combat on your turn, earthbend 8, then untap that land. - Ability ability = new BeginningOfCombatTriggeredAbility(new EarthbendTargetEffect(8)); + Ability ability = new BeginningOfCombatTriggeredAbility(new EarthbendTargetEffect(8, false)); ability.addEffect(new UntapTargetEffect().setText(", then untap that land")); ability.addTarget(new TargetControlledLandPermanent()); this.addAbility(ability); diff --git a/Mage.Sets/src/mage/cards/b/BaboonSpirit.java b/Mage.Sets/src/mage/cards/b/BaboonSpirit.java index c3c9c72746d..655bc2179cf 100644 --- a/Mage.Sets/src/mage/cards/b/BaboonSpirit.java +++ b/Mage.Sets/src/mage/cards/b/BaboonSpirit.java @@ -47,7 +47,7 @@ public final class BaboonSpirit extends CardImpl { // {3}{U}: Exile another target creature you control. Return it to the battlefield under its owner's control at the beginning of the next end step. Ability ability = new SimpleActivatedAbility( - new ExileReturnBattlefieldNextEndStepTargetEffect(), new ManaCostsImpl<>("{3}{U}") + new ExileReturnBattlefieldNextEndStepTargetEffect().withTextThatCard(false), new ManaCostsImpl<>("{3}{U}") ); ability.addTarget(new TargetPermanent(StaticFilters.FILTER_ANOTHER_TARGET_CREATURE_YOU_CONTROL)); this.addAbility(ability); diff --git a/Mage.Sets/src/mage/cards/b/BeifongsBountyHunters.java b/Mage.Sets/src/mage/cards/b/BeifongsBountyHunters.java index c1253abe2e9..6c47f575379 100644 --- a/Mage.Sets/src/mage/cards/b/BeifongsBountyHunters.java +++ b/Mage.Sets/src/mage/cards/b/BeifongsBountyHunters.java @@ -42,7 +42,7 @@ public final class BeifongsBountyHunters extends CardImpl { // Whenever a nonland creature you control dies, earthbend X, where X is that creature's power. Ability ability = new DiesCreatureTriggeredAbility( - new EarthbendTargetEffect(BeifongsBountyHuntersValue.instance), false, filter + new EarthbendTargetEffect(BeifongsBountyHuntersValue.instance, true), false, filter ); ability.addTarget(new TargetControlledLandPermanent()); this.addAbility(ability); diff --git a/Mage.Sets/src/mage/cards/b/BoscoJustABear.java b/Mage.Sets/src/mage/cards/b/BoscoJustABear.java index fb19192af94..9fd115d629f 100644 --- a/Mage.Sets/src/mage/cards/b/BoscoJustABear.java +++ b/Mage.Sets/src/mage/cards/b/BoscoJustABear.java @@ -47,7 +47,7 @@ public final class BoscoJustABear extends CardImpl { // {2}{G}, Sacrifice a Food: Put two +1/+1 counters on Bosco. He gains trample until end of turn. Ability ability = new SimpleActivatedAbility( - new AddCountersSourceEffect(CounterType.P1P1.createInstance()), new ManaCostsImpl<>("{2}{G}") + new AddCountersSourceEffect(CounterType.P1P1.createInstance(2)), new ManaCostsImpl<>("{2}{G}") ); ability.addCost(new SacrificeTargetCost(StaticFilters.FILTER_CONTROLLED_FOOD)); ability.addEffect(new GainAbilitySourceEffect( diff --git a/Mage.Sets/src/mage/cards/b/BumisFeastLecture.java b/Mage.Sets/src/mage/cards/b/BumisFeastLecture.java index f3850984bee..ef951b36622 100644 --- a/Mage.Sets/src/mage/cards/b/BumisFeastLecture.java +++ b/Mage.Sets/src/mage/cards/b/BumisFeastLecture.java @@ -35,7 +35,7 @@ public final class BumisFeastLecture extends CardImpl { // Create a Food token. Then earthbend X, where X is twice the number of Foods you control. this.getSpellAbility().addEffect(new CreateTokenEffect(new FoodToken())); - this.getSpellAbility().addEffect(new EarthbendTargetEffect(xValue).concatBy("Then")); + this.getSpellAbility().addEffect(new EarthbendTargetEffect(xValue, true).concatBy("Then")); this.getSpellAbility().addTarget(new TargetControlledLandPermanent()); this.getSpellAbility().addHint(hint); } diff --git a/Mage.Sets/src/mage/cards/c/ChongAndLilyNomads.java b/Mage.Sets/src/mage/cards/c/ChongAndLilyNomads.java index 817564189f5..08e51199222 100644 --- a/Mage.Sets/src/mage/cards/c/ChongAndLilyNomads.java +++ b/Mage.Sets/src/mage/cards/c/ChongAndLilyNomads.java @@ -46,12 +46,12 @@ public final class ChongAndLilyNomads extends CardImpl { // * Put a lore counter on each of any number of target Sagas you control. Ability ability = new AttacksWithCreaturesTriggeredAbility( new AddCountersTargetEffect(CounterType.LORE.createInstance()), 1, filter - ); + ).setTriggerPhrase("Whenever one or more Bards you control attack, "); ability.addTarget(new TargetPermanent(0, Integer.MAX_VALUE, ChongAndLilyNomadsValue.getFilter())); // * Creatures you control get +1/+0 until end of turn for each lore counter among Sagas you control. ability.addMode(new Mode(new BoostControlledEffect( - ChongAndLilyNomadsValue.instance, StaticValue.get(0), Duration.WhileOnBattlefield + ChongAndLilyNomadsValue.instance, StaticValue.get(0), Duration.EndOfTurn ))); this.addAbility(ability.addHint(ChongAndLilyNomadsValue.getHint())); } diff --git a/Mage.Sets/src/mage/cards/c/CrackedEarthTechnique.java b/Mage.Sets/src/mage/cards/c/CrackedEarthTechnique.java index 2230220930d..ffb223b38f0 100644 --- a/Mage.Sets/src/mage/cards/c/CrackedEarthTechnique.java +++ b/Mage.Sets/src/mage/cards/c/CrackedEarthTechnique.java @@ -22,10 +22,11 @@ public final class CrackedEarthTechnique extends CardImpl { this.subtype.add(SubType.LESSON); // Earthbend 3, then earthbend 3. You gain 3 life. - this.getSpellAbility().addEffect(new EarthbendTargetEffect(3)); - this.getSpellAbility().addEffect(new EarthbendTargetEffect(3) + this.getSpellAbility().addEffect(new EarthbendTargetEffect(3, false)); + this.getSpellAbility().addEffect(new EarthbendTargetEffect(3, false) + .concatBy(", then") .setTargetPointer(new SecondTargetPointer()) - .concatBy(", then")); + ); this.getSpellAbility().addTarget(new TargetControlledLandPermanent().withChooseHint("first target")); this.getSpellAbility().addTarget(new TargetControlledLandPermanent().withChooseHint("second target")); this.getSpellAbility().addEffect(new GainLifeEffect(3)); diff --git a/Mage.Sets/src/mage/cards/f/FireNationTurret.java b/Mage.Sets/src/mage/cards/f/FireNationTurret.java index be67f432b7c..5e66014bf20 100644 --- a/Mage.Sets/src/mage/cards/f/FireNationTurret.java +++ b/Mage.Sets/src/mage/cards/f/FireNationTurret.java @@ -44,6 +44,7 @@ public final class FireNationTurret extends CardImpl { ability = new SimpleActivatedAbility( new DamageTargetEffect(50, "it"), new RemoveCountersSourceCost(CounterType.CHARGE.createInstance(50)) + .setText("remove fifty charge counters from {this}") ); ability.addTarget(new TargetAnyTarget()); this.addAbility(ability); diff --git a/Mage.Sets/src/mage/cards/g/GavelOfTheRighteous.java b/Mage.Sets/src/mage/cards/g/GavelOfTheRighteous.java index bbe616ea942..00e03c24ce8 100644 --- a/Mage.Sets/src/mage/cards/g/GavelOfTheRighteous.java +++ b/Mage.Sets/src/mage/cards/g/GavelOfTheRighteous.java @@ -1,7 +1,6 @@ package mage.cards.g; import mage.abilities.Ability; -import mage.abilities.triggers.BeginningOfCombatTriggeredAbility; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.condition.Condition; import mage.abilities.costs.OrCost; @@ -14,9 +13,13 @@ import mage.abilities.effects.common.continuous.GainAbilityAttachedEffect; import mage.abilities.effects.common.counter.AddCountersSourceEffect; import mage.abilities.keyword.DoubleStrikeAbility; import mage.abilities.keyword.EquipAbility; +import mage.abilities.triggers.BeginningOfCombatTriggeredAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.constants.*; +import mage.constants.AttachmentType; +import mage.constants.CardType; +import mage.constants.Outcome; +import mage.constants.SubType; import mage.counters.Counter; import mage.counters.CounterType; import mage.game.Game; @@ -57,7 +60,7 @@ public final class GavelOfTheRighteous extends CardImpl { Outcome.BoostCreature, new OrCost( "Pay {3} or remove a counter from {this}", - new GenericManaCost(3), new RemoveCountersSourceCost() + new GenericManaCost(3), new RemoveCountersSourceCost(1) ), false )); diff --git a/Mage.Sets/src/mage/cards/i/IrohDragonOfTheWest.java b/Mage.Sets/src/mage/cards/i/IrohDragonOfTheWest.java index d18ed8d6e99..90c7a212d26 100644 --- a/Mage.Sets/src/mage/cards/i/IrohDragonOfTheWest.java +++ b/Mage.Sets/src/mage/cards/i/IrohDragonOfTheWest.java @@ -1,23 +1,23 @@ package mage.cards.i; -import java.util.UUID; import mage.MageInt; import mage.abilities.effects.common.continuous.GainAbilityControlledEffect; import mage.abilities.keyword.FirebendingAbility; -import mage.abilities.triggers.BeginningOfCombatTriggeredAbility; -import mage.constants.Duration; -import mage.constants.SubType; -import mage.constants.SuperType; import mage.abilities.keyword.HasteAbility; import mage.abilities.keyword.MentorAbility; +import mage.abilities.triggers.BeginningOfCombatTriggeredAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import mage.constants.Duration; +import mage.constants.SubType; +import mage.constants.SuperType; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.permanent.CounterAnyPredicate; +import java.util.UUID; + /** - * * @author anonymous */ public final class IrohDragonOfTheWest extends CardImpl { @@ -30,7 +30,7 @@ public final class IrohDragonOfTheWest extends CardImpl { public IrohDragonOfTheWest(UUID ownerId, CardSetInfo setInfo) { super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{2}{R}{R}"); - + this.supertype.add(SuperType.LEGENDARY); this.subtype.add(SubType.HUMAN); this.subtype.add(SubType.NOBLE); @@ -45,7 +45,9 @@ public final class IrohDragonOfTheWest extends CardImpl { this.addAbility(new MentorAbility()); // At the beginning of combat on your turn, each creature you control with a counter on it gains firebending 2 until end of turn. - this.addAbility(new BeginningOfCombatTriggeredAbility(new GainAbilityControlledEffect(new FirebendingAbility(2), Duration.EndOfTurn, filter))); + this.addAbility(new BeginningOfCombatTriggeredAbility(new GainAbilityControlledEffect( + new FirebendingAbility(2), Duration.EndOfTurn, filter + ).setText("each creature you control with a counter on it gains firebending 2 until end of turn"))); } private IrohDragonOfTheWest(final IrohDragonOfTheWest card) { diff --git a/Mage.Sets/src/mage/cards/r/Rockalanche.java b/Mage.Sets/src/mage/cards/r/Rockalanche.java index ef35c89bfce..a4843ce6bbd 100644 --- a/Mage.Sets/src/mage/cards/r/Rockalanche.java +++ b/Mage.Sets/src/mage/cards/r/Rockalanche.java @@ -32,7 +32,7 @@ public final class Rockalanche extends CardImpl { this.subtype.add(SubType.LESSON); // Earthbend X, where X is the number of Forests you control. - this.getSpellAbility().addEffect(new EarthbendTargetEffect(xValue)); + this.getSpellAbility().addEffect(new EarthbendTargetEffect(xValue, true)); this.getSpellAbility().addTarget(new TargetControlledLandPermanent()); this.getSpellAbility().addHint(hint); diff --git a/Mage.Sets/src/mage/cards/s/ScarringMemories.java b/Mage.Sets/src/mage/cards/s/ScarringMemories.java index 1c6058d0283..4ffccfad733 100644 --- a/Mage.Sets/src/mage/cards/s/ScarringMemories.java +++ b/Mage.Sets/src/mage/cards/s/ScarringMemories.java @@ -41,7 +41,7 @@ public final class ScarringMemories extends CardImpl { // You may cast this spell as though it had flash if you control an attacking legendary creature. this.addAbility(new CastAsThoughItHadFlashIfConditionAbility( - condition, "you may cast this spell as though it had flash if you control an attacking legendary creature" + condition, "you may cast this spell as though it had flash if you control an attacking legendary creature." )); // Target opponent sacrifices a creature of their choice, discards a card, and loses 3 life. diff --git a/Mage.Sets/src/mage/cards/t/TheBoulderReadyToRumble.java b/Mage.Sets/src/mage/cards/t/TheBoulderReadyToRumble.java index 431af27aec0..484bf07e95b 100644 --- a/Mage.Sets/src/mage/cards/t/TheBoulderReadyToRumble.java +++ b/Mage.Sets/src/mage/cards/t/TheBoulderReadyToRumble.java @@ -46,7 +46,7 @@ public final class TheBoulderReadyToRumble extends CardImpl { this.toughness = new MageInt(4); // Whenever The Boulder attacks, earthbend X, where X is the number of creatures you control with power 4 or greater. - Ability ability = new AttacksTriggeredAbility(new EarthbendTargetEffect(xValue)); + Ability ability = new AttacksTriggeredAbility(new EarthbendTargetEffect(xValue, true)); ability.addTarget(new TargetControlledLandPermanent()); this.addAbility(ability.addHint(hint)); } diff --git a/Mage.Sets/src/mage/cards/t/TheLegendOfKyoshi.java b/Mage.Sets/src/mage/cards/t/TheLegendOfKyoshi.java index bc0cd44a347..a07bc9bd4a9 100644 --- a/Mage.Sets/src/mage/cards/t/TheLegendOfKyoshi.java +++ b/Mage.Sets/src/mage/cards/t/TheLegendOfKyoshi.java @@ -44,7 +44,7 @@ public final class TheLegendOfKyoshi extends CardImpl { sagaAbility.addChapterEffect( this, SagaChapter.CHAPTER_II, new Effects( - new EarthbendTargetEffect(CardsInControllerHandCount.ANY) + new EarthbendTargetEffect(CardsInControllerHandCount.ANY, true) .setText("earthbend X, where X is the number of cards in your hand"), new AddCardSubTypeTargetEffect(SubType.ISLAND, Duration.Custom) .setText("That land becomes an Island in addition to its other types") diff --git a/Mage.Sets/src/mage/cards/t/TophEarthbendingMaster.java b/Mage.Sets/src/mage/cards/t/TophEarthbendingMaster.java index 40e3ace50f1..b47049de3fa 100644 --- a/Mage.Sets/src/mage/cards/t/TophEarthbendingMaster.java +++ b/Mage.Sets/src/mage/cards/t/TophEarthbendingMaster.java @@ -42,7 +42,7 @@ public final class TophEarthbendingMaster extends CardImpl { ))); // Whenever you attack, earthbend X, where X is the number of experience counters you have. - Ability ability = new AttacksWithCreaturesTriggeredAbility(new EarthbendTargetEffect(xValue), 1); + Ability ability = new AttacksWithCreaturesTriggeredAbility(new EarthbendTargetEffect(xValue, true), 1); ability.addTarget(new TargetControlledLandPermanent()); this.addAbility(ability); } diff --git a/Mage.Sets/src/mage/cards/t/TophGreatestEarthbender.java b/Mage.Sets/src/mage/cards/t/TophGreatestEarthbender.java index f40f25e154b..7a0d5fc3fa5 100644 --- a/Mage.Sets/src/mage/cards/t/TophGreatestEarthbender.java +++ b/Mage.Sets/src/mage/cards/t/TophGreatestEarthbender.java @@ -42,7 +42,7 @@ public final class TophGreatestEarthbender extends CardImpl { this.toughness = new MageInt(3); // When Toph enters, earthbend X, where X is the amount of mana spent to cast her. - Ability ability = new EntersBattlefieldTriggeredAbility(new EarthbendTargetEffect(ManaSpentToCastCount.instance)); + Ability ability = new EntersBattlefieldTriggeredAbility(new EarthbendTargetEffect(ManaSpentToCastCount.instance, true)); ability.addTarget(new TargetControlledLandPermanent()); this.addAbility(ability); diff --git a/Mage/src/main/java/mage/abilities/costs/common/RemoveCountersSourceCost.java b/Mage/src/main/java/mage/abilities/costs/common/RemoveCountersSourceCost.java index 2c5b8ac5552..1c51c8030c7 100644 --- a/Mage/src/main/java/mage/abilities/costs/common/RemoveCountersSourceCost.java +++ b/Mage/src/main/java/mage/abilities/costs/common/RemoveCountersSourceCost.java @@ -11,7 +11,9 @@ import mage.game.permanent.Permanent; import mage.players.Player; import mage.util.CardUtil; -import java.util.*; +import java.util.ArrayList; +import java.util.List; +import java.util.UUID; /** * @author BetaSteward_at_googlemail.com @@ -21,16 +23,11 @@ public class RemoveCountersSourceCost extends CostImpl { private final int amount; private final String name; - public RemoveCountersSourceCost() { - this.amount = 1; - this.name = ""; - this.text = "remove a counter from {this}"; - } - public RemoveCountersSourceCost(int amount) { this.amount = amount; this.name = ""; - this.text = "remove " + CardUtil.numberToText(amount) + " counters from {this}"; + this.text = "remove " + CardUtil.numberToText(amount, "a") + + " counter" + (amount > 1 ? "s" : "") + " from {this}"; } public RemoveCountersSourceCost(Counter counter) { @@ -87,7 +84,7 @@ public class RemoveCountersSourceCost extends CostImpl { } paid = true; } - } else if (permanent.getCounters(game).getCount(name) >= amount){ + } else if (permanent.getCounters(game).getCount(name) >= amount) { permanent.removeCounters(name, amount, source, game); this.paid = true; } diff --git a/Mage/src/main/java/mage/abilities/effects/keyword/EarthbendTargetEffect.java b/Mage/src/main/java/mage/abilities/effects/keyword/EarthbendTargetEffect.java index 849400a6219..339e992bd7b 100644 --- a/Mage/src/main/java/mage/abilities/effects/keyword/EarthbendTargetEffect.java +++ b/Mage/src/main/java/mage/abilities/effects/keyword/EarthbendTargetEffect.java @@ -28,19 +28,26 @@ import mage.util.CardUtil; public class EarthbendTargetEffect extends OneShotEffect { private final DynamicValue amount; + private final boolean withReminderText; public EarthbendTargetEffect(int amount) { - this(StaticValue.get(amount)); + this(amount, true); } - public EarthbendTargetEffect(DynamicValue amount) { + public EarthbendTargetEffect(int amount, boolean withReminderText) { + this(StaticValue.get(amount), withReminderText); + } + + public EarthbendTargetEffect(DynamicValue amount, boolean withReminderText) { super(Outcome.Benefit); this.amount = amount; + this.withReminderText = withReminderText; } private EarthbendTargetEffect(final EarthbendTargetEffect effect) { super(effect); this.amount = effect.amount; + this.withReminderText = effect.withReminderText; } @Override @@ -85,6 +92,9 @@ public class EarthbendTargetEffect extends OneShotEffect { sb.append("X, where X is "); sb.append(amount.getMessage()); } + if (!withReminderText) { + return sb.toString(); + } sb.append(". (Target land you control becomes a 0/0 creature with haste that's still a land. Put "); String value = amount instanceof StaticValue ? CardUtil.numberToText(((StaticValue) amount).getValue(), "a") diff --git a/Mage/src/main/java/mage/target/common/TargetAttackingCreature.java b/Mage/src/main/java/mage/target/common/TargetAttackingCreature.java index 8a2661734cc..36824803080 100644 --- a/Mage/src/main/java/mage/target/common/TargetAttackingCreature.java +++ b/Mage/src/main/java/mage/target/common/TargetAttackingCreature.java @@ -21,7 +21,7 @@ public class TargetAttackingCreature extends TargetPermanent { } public TargetAttackingCreature(int minNumTargets, int maxNumTargets, boolean notTarget) { - super(minNumTargets, maxNumTargets, StaticFilters.FILTER_ATTACKING_CREATURE, notTarget); + super(minNumTargets, maxNumTargets, maxNumTargets > 1 ? StaticFilters.FILTER_ATTACKING_CREATURES : StaticFilters.FILTER_ATTACKING_CREATURE, notTarget); } protected TargetAttackingCreature(final TargetAttackingCreature target) { diff --git a/Mage/src/main/java/mage/util/CardUtil.java b/Mage/src/main/java/mage/util/CardUtil.java index cdf2b25307e..7f1c1d05df9 100644 --- a/Mage/src/main/java/mage/util/CardUtil.java +++ b/Mage/src/main/java/mage/util/CardUtil.java @@ -979,7 +979,7 @@ public final class CardUtil { } if (!targetPlayerGets) { sb.append(add ? " on " : " from "); - if (description.contains("up to") && !description.contains("up to one")) { + if (description.contains("any number") || description.contains("up to") && !description.contains("up to one")) { sb.append("each of "); } sb.append(description);