fix some card text

This commit is contained in:
xenohedron 2025-09-13 18:55:14 -04:00
parent 10a8059eae
commit 9a6504c1fa
25 changed files with 34 additions and 37 deletions

View file

@ -27,9 +27,9 @@ public final class AlabornZealot extends CardImpl {
// When Alaborn Zealot blocks a creature, destroy that creature and Alaborn Zealot. // When Alaborn Zealot blocks a creature, destroy that creature and Alaborn Zealot.
TriggeredAbility ability = new BlocksCreatureTriggeredAbility( TriggeredAbility ability = new BlocksCreatureTriggeredAbility(
new DestroyTargetEffect().setText("destroy that creature") new DestroyTargetEffect().setText("destroy both")
); );
ability.addEffect(new DestroySourceEffect().setText("and {this}")); ability.addEffect(new DestroySourceEffect().setText(" creatures"));
ability.setTriggerPhrase("When {this} blocks a creature, "); ability.setTriggerPhrase("When {this} blocks a creature, ");
this.addAbility(ability); this.addAbility(ability);
} }

View file

@ -1,4 +1,3 @@
package mage.cards.b; package mage.cards.b;
import java.util.UUID; import java.util.UUID;
@ -34,7 +33,9 @@ public final class Blight extends CardImpl {
this.addAbility(ability); this.addAbility(ability);
// When enchanted land becomes tapped, destroy it. // When enchanted land becomes tapped, destroy it.
this.addAbility(new BecomesTappedAttachedTriggeredAbility(new DestroyAttachedToEffect("it"), "enchanted land")); this.addAbility(new BecomesTappedAttachedTriggeredAbility(
new DestroyAttachedToEffect("it"), "enchanted land"
).setTriggerPhrase("When enchanted land becomes tapped, "));
} }
private Blight(final Blight card) { private Blight(final Blight card) {

View file

@ -82,6 +82,6 @@ class DredgingClawTriggeredAbility extends TriggeredAbilityImpl {
@Override @Override
public String getRule() { public String getRule() {
return "Whenever a creature enters the battlefield from your graveyard, you may attach {this} to it."; return "Whenever a creature enters from your graveyard, you may attach {this} to it.";
} }
} }

View file

@ -60,7 +60,7 @@ class FavorOfTheMightyEffect extends ContinuousEffectImpl {
FavorOfTheMightyEffect() { FavorOfTheMightyEffect() {
super(Duration.WhileOnBattlefield, Layer.AbilityAddingRemovingEffects_6, SubLayer.NA, Outcome.AddAbility); super(Duration.WhileOnBattlefield, Layer.AbilityAddingRemovingEffects_6, SubLayer.NA, Outcome.AddAbility);
this.staticText = "Each creature with the highest mana value has protection from all colors."; this.staticText = "Each creature with the greatest mana value has protection from each color.";
} }
private FavorOfTheMightyEffect(final FavorOfTheMightyEffect effect) { private FavorOfTheMightyEffect(final FavorOfTheMightyEffect effect) {

View file

@ -27,7 +27,7 @@ import java.util.UUID;
*/ */
public final class HakodaSelflessCommander extends CardImpl { public final class HakodaSelflessCommander extends CardImpl {
private static final FilterCard filter = new FilterCard(SubType.ALLY, "Ally spells"); private static final FilterCard filter = new FilterCard(SubType.ALLY, "cast Ally spells");
public HakodaSelflessCommander(UUID ownerId, CardSetInfo setInfo) { public HakodaSelflessCommander(UUID ownerId, CardSetInfo setInfo) {
super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{3}{W}"); super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{3}{W}");

View file

@ -29,8 +29,8 @@ public final class KinjallisSunwing extends CardImpl {
// Creatures your opponents control enter the battlefield tapped. // Creatures your opponents control enter the battlefield tapped.
this.addAbility(new SimpleStaticAbility(new PermanentsEnterBattlefieldTappedEffect( this.addAbility(new SimpleStaticAbility(new PermanentsEnterBattlefieldTappedEffect(
StaticFilters.FILTER_OPPONENTS_PERMANENT_CREATURE StaticFilters.FILTER_OPPONENTS_PERMANENT_CREATURES
).setText("creatures your opponents control enter the battlefield tapped"))); )));
} }
private KinjallisSunwing(final KinjallisSunwing card) { private KinjallisSunwing(final KinjallisSunwing card) {

View file

@ -51,7 +51,7 @@ class MishrasWarMachineEffect extends OneShotEffect {
MishrasWarMachineEffect() { MishrasWarMachineEffect() {
super(Outcome.Sacrifice); super(Outcome.Sacrifice);
staticText = "{this} deals 3 damage to you unless you discard a card. If {this} deals damage to you this way, tap it"; staticText = "{this} deals 3 damage to you unless you discard a card. If it deals damage to you this way, tap it";
} }
private MishrasWarMachineEffect(final MishrasWarMachineEffect effect) { private MishrasWarMachineEffect(final MishrasWarMachineEffect effect) {

View file

@ -46,7 +46,7 @@ class MisthollowGriffinPlayEffect extends AsThoughEffectImpl {
MisthollowGriffinPlayEffect() { MisthollowGriffinPlayEffect() {
super(AsThoughEffectType.CAST_FROM_NOT_OWN_HAND_ZONE, Duration.EndOfGame, Outcome.Benefit); super(AsThoughEffectType.CAST_FROM_NOT_OWN_HAND_ZONE, Duration.EndOfGame, Outcome.Benefit);
staticText = "You may cast {this} from exile"; staticText = "You may cast this card from exile";
} }
private MisthollowGriffinPlayEffect(final MisthollowGriffinPlayEffect effect) { private MisthollowGriffinPlayEffect(final MisthollowGriffinPlayEffect effect) {

View file

@ -50,7 +50,7 @@ class MoxDiamondReplacementEffect extends ReplacementEffectImpl {
MoxDiamondReplacementEffect() { MoxDiamondReplacementEffect() {
super(Duration.WhileOnBattlefield, Outcome.Exile); super(Duration.WhileOnBattlefield, Outcome.Exile);
staticText = "If {this} would enter the battlefield, you may discard a land card instead. If you do, put {this} onto the battlefield. If you don't, put it into its owner's graveyard"; staticText = "If {this} would enter, you may discard a land card instead. If you do, put {this} onto the battlefield. If you don't, put it into its owner's graveyard";
} }
private MoxDiamondReplacementEffect(final MoxDiamondReplacementEffect effect) { private MoxDiamondReplacementEffect(final MoxDiamondReplacementEffect effect) {

View file

@ -21,7 +21,7 @@ public final class PillarLaunch extends CardImpl {
// Target creature gets +2/+2 and gains reach until end of turn. Untap it. // Target creature gets +2/+2 and gains reach until end of turn. Untap it.
this.getSpellAbility().addEffect(new BoostTargetEffect(2, 2).setText("target creature gets +2/+2")); this.getSpellAbility().addEffect(new BoostTargetEffect(2, 2).setText("target creature gets +2/+2"));
this.getSpellAbility().addEffect(new GainAbilityTargetEffect(ReachAbility.getInstance()).setText("and gain reach until end of turn")); this.getSpellAbility().addEffect(new GainAbilityTargetEffect(ReachAbility.getInstance()).setText("and gains reach until end of turn"));
this.getSpellAbility().addEffect(new UntapTargetEffect("Untap it")); this.getSpellAbility().addEffect(new UntapTargetEffect("Untap it"));
this.getSpellAbility().addTarget(new TargetCreaturePermanent()); this.getSpellAbility().addTarget(new TargetCreaturePermanent());
} }

View file

@ -35,10 +35,10 @@ public final class PincerSpider extends CardImpl {
this.addAbility(ReachAbility.getInstance()); this.addAbility(ReachAbility.getInstance());
// If Pincer Spider was kicked, it enters with a +1/+1 counter on it. // If Pincer Spider was kicked, it enters with a +1/+1 counter on it.
Ability ability = new EntersBattlefieldAbility( this.addAbility(new EntersBattlefieldAbility(
new ConditionalOneShotEffect(new AddCountersSourceEffect(CounterType.P1P1.createInstance(1)), KickedCondition.ONCE, ""), new AddCountersSourceEffect(CounterType.P1P1.createInstance()), KickedCondition.ONCE,
"If {this} was kicked, it enters with a +1/+1 counter on it."); "If {this} was kicked, it enters with a +1/+1 counter on it.", ""
this.addAbility(ability); ));
} }

View file

@ -38,7 +38,7 @@ public final class PrisonBarricade extends CardImpl {
// If Prison Barricade was kicked, it enters with a +1/+1 counter on it and with "Prison Barricade can attack as though it didn't have defender." // If Prison Barricade was kicked, it enters with a +1/+1 counter on it and with "Prison Barricade can attack as though it didn't have defender."
Ability ability = new EntersBattlefieldAbility(new AddCountersSourceEffect(CounterType.P1P1.createInstance(1)), Ability ability = new EntersBattlefieldAbility(new AddCountersSourceEffect(CounterType.P1P1.createInstance(1)),
KickedCondition.ONCE, "If {this} was kicked, it enters with a +1/+1 counter on it and with \"{this} can attack as though it didn't have defender.\"", ""); KickedCondition.ONCE, "If {this} was kicked, it enters with a +1/+1 counter on it and with \"This creature can attack as though it didn't have defender.\"", "");
ability.addEffect(new CanAttackAsThoughItDidntHaveDefenderSourceEffect(Duration.WhileOnBattlefield)); ability.addEffect(new CanAttackAsThoughItDidntHaveDefenderSourceEffect(Duration.WhileOnBattlefield));
this.addAbility(ability); this.addAbility(ability);
} }

View file

@ -69,7 +69,7 @@ class RadiantGraceEffect extends OneShotEffect {
RadiantGraceEffect() { RadiantGraceEffect() {
super(Outcome.Benefit); super(Outcome.Benefit);
staticText = "return {this} to the battlefield transformed under your control attached to target opponent"; staticText = "return this card to the battlefield transformed under your control attached to target opponent";
} }
private RadiantGraceEffect(final RadiantGraceEffect effect) { private RadiantGraceEffect(final RadiantGraceEffect effect) {

View file

@ -31,7 +31,7 @@ public final class ScorchingLava extends CardImpl {
// that creature can't be regenerated this turn and if it would die this turn, exile it instead. // that creature can't be regenerated this turn and if it would die this turn, exile it instead.
this.getSpellAbility().addEffect(new DamageTargetEffect(2)); this.getSpellAbility().addEffect(new DamageTargetEffect(2));
this.getSpellAbility().addEffect(new ConditionalContinuousRuleModifyingEffect( this.getSpellAbility().addEffect(new ConditionalContinuousRuleModifyingEffect(
new CantRegenerateTargetEffect(Duration.EndOfTurn, "If {this} was kicked, that creature"), new CantRegenerateTargetEffect(Duration.EndOfTurn, "If this spell was kicked, that creature"),
new LockedInCondition(KickedCondition.ONCE))); new LockedInCondition(KickedCondition.ONCE)));
this.getSpellAbility().addEffect(new ConditionalOneShotEffect( this.getSpellAbility().addEffect(new ConditionalOneShotEffect(
new ExileTargetIfDiesEffect(), new ExileTargetIfDiesEffect(),

View file

@ -44,7 +44,7 @@ public final class SpectrumSentinel extends CardImpl {
// Whenever a nonbasic land enters the battlefield under an opponent's control, you gain 1 life. // Whenever a nonbasic land enters the battlefield under an opponent's control, you gain 1 life.
this.addAbility(new EntersBattlefieldAllTriggeredAbility(new GainLifeEffect(1), filter2) this.addAbility(new EntersBattlefieldAllTriggeredAbility(new GainLifeEffect(1), filter2)
.setTriggerPhrase("Whenever a nonbasic land enters the battlefield under an opponent's control, ")); .setTriggerPhrase("Whenever a nonbasic land an opponent controls enters, "));
} }
private SpectrumSentinel(final SpectrumSentinel card) { private SpectrumSentinel(final SpectrumSentinel card) {

View file

@ -22,7 +22,7 @@ import java.util.UUID;
*/ */
public final class StingerbackTerror extends CardImpl { public final class StingerbackTerror extends CardImpl {
private static final DynamicValue xValue = new SignInversionDynamicValue(CardsInControllerHandCount.ANY); private static final DynamicValue xValue = new SignInversionDynamicValue(CardsInControllerHandCount.ANY_SINGULAR);
public StingerbackTerror(UUID ownerId, CardSetInfo setInfo) { public StingerbackTerror(UUID ownerId, CardSetInfo setInfo) {
super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{2}{R}{R}"); super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{2}{R}{R}");

View file

@ -56,7 +56,7 @@ public final class TheFourthDoctor extends CardImpl {
null, null,
true true
)) ))
.withFlavorWord("Would You Like A?"), .withFlavorWord("Would You Like A...?"),
new TheFourthDoctorWatcher() new TheFourthDoctorWatcher()
); );
this.addAbility(new TheFourthDoctorTriggeredAbility()); this.addAbility(new TheFourthDoctorTriggeredAbility());

View file

@ -42,7 +42,7 @@ public final class TritonWavebreaker extends CardImpl {
// As long as Triton Wavebreaker is a creature, it has prowess. // As long as Triton Wavebreaker is a creature, it has prowess.
this.addAbility(new SimpleStaticAbility(new ConditionalContinuousEffect( this.addAbility(new SimpleStaticAbility(new ConditionalContinuousEffect(
new GainAbilitySourceEffect(new ProwessAbility(), Duration.WhileOnBattlefield), new GainAbilitySourceEffect(new ProwessAbility(), Duration.WhileOnBattlefield),
condition, "as long as {this} is a creature, it has prowess" condition, "as long as this permanent is a creature, it has prowess"
))); )));
// Enchanted creature gets +1/+1 and has prowess. // Enchanted creature gets +1/+1 and has prowess.

View file

@ -46,7 +46,7 @@ class TurfWoundEffect extends ContinuousRuleModifyingEffectImpl {
TurfWoundEffect() { TurfWoundEffect() {
super(Duration.EndOfTurn, Outcome.Detriment); super(Duration.EndOfTurn, Outcome.Detriment);
staticText = "Target player can't play land cards this turn"; staticText = "Target player can't play lands this turn";
} }
private TurfWoundEffect(final TurfWoundEffect effect) { private TurfWoundEffect(final TurfWoundEffect effect) {
@ -74,10 +74,7 @@ class TurfWoundEffect extends ContinuousRuleModifyingEffectImpl {
@Override @Override
public boolean applies(GameEvent event, Ability source, Game game) { public boolean applies(GameEvent event, Ability source, Game game) {
if (event.getPlayerId().equals(source.getFirstTarget())) { return event.getPlayerId().equals(source.getFirstTarget());
return true;
}
return false;
} }
} }

View file

@ -333,7 +333,7 @@ public abstract class TriggeredAbilityImpl extends AbilityImpl implements Trigge
} }
} }
if (replaceRuleText && triggerPhrase != null) { if (replaceRuleText && triggerPhrase != null) {
superRule = superRule.replaceFirst("^((?:you may )?sacrifice |(put|remove) [^ ]+ [^ ]+ counters? (on|from) |return |transform |untap |regenerate |attach )?\\{this\\}", "$1it"); superRule = superRule.replaceFirst("^((?:you may )?sacrifice |(put|remove) [^ ]+ [^ ]+ counters? (on|from) |return |transform |untap |regenerate |attach |exile )?\\{this\\}", "$1it");
} }
sb.append(superRule); sb.append(superRule);
if (triggerLimitEachTurn != Integer.MAX_VALUE) { if (triggerLimitEachTurn != Integer.MAX_VALUE) {

View file

@ -30,7 +30,7 @@ public class WhileSearchingPlayFromLibraryAbility extends StaticAbility implemen
@Override @Override
public String getRule() { public String getRule() {
return "While you're searching your library, you may cast {this} from your library."; return "While you're searching your library, you may cast this card from your library.";
} }
@Override @Override

View file

@ -10,7 +10,7 @@ import mage.filter.StaticFilters;
public class CopyNextSpellDelayedTriggeredAbility extends CastNextSpellDelayedTriggeredAbility { public class CopyNextSpellDelayedTriggeredAbility extends CastNextSpellDelayedTriggeredAbility {
public CopyNextSpellDelayedTriggeredAbility() { public CopyNextSpellDelayedTriggeredAbility() {
this(StaticFilters.FILTER_SPELL_INSTANT_OR_SORCERY); this(StaticFilters.FILTER_SPELL_AN_INSTANT_OR_SORCERY);
} }
public CopyNextSpellDelayedTriggeredAbility(FilterSpell filter) { public CopyNextSpellDelayedTriggeredAbility(FilterSpell filter) {

View file

@ -13,7 +13,7 @@ public class CanBlockAsThoughtItHadShadowEffect extends AsThoughEffectImpl {
public CanBlockAsThoughtItHadShadowEffect(Duration duration) { public CanBlockAsThoughtItHadShadowEffect(Duration duration) {
super(AsThoughEffectType.BLOCK_SHADOW, duration, Outcome.Benefit); super(AsThoughEffectType.BLOCK_SHADOW, duration, Outcome.Benefit);
staticText = "{this} can block creatures with shadow as though {this} had shadow"; staticText = "{this} can block creatures with shadow as though it had shadow";
} }
protected CanBlockAsThoughtItHadShadowEffect(final CanBlockAsThoughtItHadShadowEffect effect) { protected CanBlockAsThoughtItHadShadowEffect(final CanBlockAsThoughtItHadShadowEffect effect) {

View file

@ -29,8 +29,7 @@ public class BoostSourceWhileControlsEffect extends WhileConditionContinuousEffe
staticText = "{this} gets " staticText = "{this} gets "
+ CardUtil.getBoostCountAsStr(power, toughness) + CardUtil.getBoostCountAsStr(power, toughness)
+ " as long as you control " + " as long as you control "
+ (filterDescription.startsWith("an ") ? "" : "a ") + CardUtil.addArticle(filterDescription);
+ filterDescription;
} }
protected BoostSourceWhileControlsEffect(final BoostSourceWhileControlsEffect effect) { protected BoostSourceWhileControlsEffect(final BoostSourceWhileControlsEffect effect) {

View file

@ -13,7 +13,7 @@ import mage.constants.CardType;
public final class BananaToken extends TokenImpl { public final class BananaToken extends TokenImpl {
public BananaToken() { public BananaToken() {
super("Banana", "colorless artifact token named Banana with \"{T}, Sacrifice this artifact: Add {R} or {G}. You gain 2 life.\""); super("Banana", "colorless artifact token named Banana with \"{T}, Sacrifice this token: Add {R} or {G}. You gain 2 life.\"");
cardType.add(CardType.ARTIFACT); cardType.add(CardType.ARTIFACT);
// {T}, Sacrifice this artifact: Add {R} or {G}. You gain 2 life. // {T}, Sacrifice this artifact: Add {R} or {G}. You gain 2 life.
@ -22,7 +22,7 @@ public final class BananaToken extends TokenImpl {
ability.addEffect(new GainLifeEffect(2)); ability.addEffect(new GainLifeEffect(2));
this.addAbility(ability); this.addAbility(ability);
ability = new GreenManaAbility(); ability = new GreenManaAbility();
ability.addCost(new SacrificeSourceCost().setText("sacrifice this artifact")); ability.addCost(new SacrificeSourceCost().setText("sacrifice this token"));
ability.addEffect(new GainLifeEffect(2)); ability.addEffect(new GainLifeEffect(2));
this.addAbility(ability); this.addAbility(ability);
} }