[FDN] various text fixes

This commit is contained in:
theelk801 2025-04-28 19:03:26 -04:00
parent 0013e075be
commit 33012783a6
19 changed files with 61 additions and 88 deletions

View file

@ -19,14 +19,13 @@ import mage.target.common.TargetCreatureOrPlaneswalkerAmount;
import java.util.UUID;
/**
*
* @author ciaccona007
*/
public final class ChandraFlameshaper extends CardImpl {
public ChandraFlameshaper(UUID ownerId, CardSetInfo setInfo) {
super(ownerId, setInfo, new CardType[]{CardType.PLANESWALKER}, "{5}{R}{R}");
this.supertype.add(SuperType.LEGENDARY);
this.subtype.add(SubType.CHANDRA);
this.setStartingLoyalty(6);
@ -37,13 +36,15 @@ public final class ChandraFlameshaper extends CardImpl {
this.addAbility(plusTwoAbility);
// +1: Create a token that's a copy of target creature you control, except it has haste and "At the beginning of the end step, sacrifice this token."
Ability[] extraAbilities = new Ability[2];
extraAbilities[0] = HasteAbility.getInstance();
extraAbilities[1] = new BeginningOfEndStepTriggeredAbility(
TargetController.NEXT, new SacrificeSourceEffect(), false
);
Ability plusOneAbility = new LoyaltyAbility(
new CreateTokenCopyTargetEffect().addAdditionalAbilities(extraAbilities), 1
new CreateTokenCopyTargetEffect()
.addAdditionalAbilities(
HasteAbility.getInstance(),
new BeginningOfEndStepTriggeredAbility(
TargetController.NEXT, new SacrificeSourceEffect(), false
)).setText("create a token that's a copy of target creature you control, " +
"except it has haste and \"At the beginning of the end step, sacrifice this token.\""),
1
);
plusOneAbility.addTarget(new TargetControlledCreaturePermanent());
this.addAbility(plusOneAbility);

View file

@ -53,7 +53,7 @@ class DeadlyBrewEffect extends OneShotEffect {
DeadlyBrewEffect() {
super(Outcome.Benefit);
staticText = "each player sacrifices a creature or planeswalker. If you sacrificed a permanent this way, " +
staticText = "each player sacrifices a creature or planeswalker of their choice. If you sacrificed a permanent this way, " +
"you may return another permanent card from your graveyard to your hand";
}

View file

@ -54,7 +54,7 @@ public final class DesecrationDemon extends CardImpl {
class DesecrationDemonEffect extends OneShotEffect {
DesecrationDemonEffect() {
super(Outcome.BoostCreature);
staticText = "any opponent may sacrifice a creature. If a player does, tap {this} and put a +1/+1 counter on it";
staticText = "any opponent may sacrifice a creature of their choice. If a player does, tap {this} and put a +1/+1 counter on it";
}
private DesecrationDemonEffect(final DesecrationDemonEffect effect) {

View file

@ -2,21 +2,17 @@ package mage.cards.f;
import mage.MageInt;
import mage.abilities.common.AttacksEachCombatStaticAbility;
import mage.abilities.triggers.BeginningOfCombatTriggeredAbility;
import mage.abilities.condition.common.FerociousCondition;
import mage.abilities.costs.mana.ManaCostsImpl;
import mage.abilities.decorator.ConditionalInterveningIfTriggeredAbility;
import mage.abilities.effects.common.DoIfCostPaid;
import mage.abilities.effects.common.ReturnToBattlefieldUnderOwnerControlSourceEffect;
import mage.abilities.effects.common.ReturnSourceFromGraveyardToBattlefieldEffect;
import mage.abilities.hint.common.FerociousHint;
import mage.abilities.keyword.FlyingAbility;
import mage.abilities.keyword.HasteAbility;
import mage.abilities.triggers.BeginningOfCombatTriggeredAbility;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
import mage.constants.CardType;
import mage.constants.SubType;
import mage.constants.TargetController;
import mage.constants.Zone;
import mage.constants.*;
import java.util.UUID;
@ -33,20 +29,19 @@ public final class FlamewakePhoenix extends CardImpl {
// Flying
this.addAbility(FlyingAbility.getInstance());
// Haste
this.addAbility(HasteAbility.getInstance());
// Flamewake Phoenix attacks each turn if able.
this.addAbility(new AttacksEachCombatStaticAbility());
// <i>Ferocious</i> &mdash; At the beginning of combat on your turn, if you control a creature with power 4 or greater, you may pay {R}. If you do, return Flamewake Phoenix from your graveyard to the battlefield.
this.addAbility(new ConditionalInterveningIfTriggeredAbility(
new BeginningOfCombatTriggeredAbility(
Zone.GRAVEYARD,
TargetController.YOU, new DoIfCostPaid(new ReturnToBattlefieldUnderOwnerControlSourceEffect(), new ManaCostsImpl<>("{R}")),
false),
FerociousCondition.instance,
"<i>Ferocious</i> &mdash; At the beginning of combat on your turn, if you control a creature with power 4 or greater, you may pay {R}. If you do, return {this} from your graveyard to the battlefield."
).addHint(FerociousHint.instance));
this.addAbility(new BeginningOfCombatTriggeredAbility(
Zone.GRAVEYARD, TargetController.YOU,
new DoIfCostPaid(new ReturnSourceFromGraveyardToBattlefieldEffect(), new ManaCostsImpl<>("{R}")),
false
).withInterveningIf(FerociousCondition.instance).setAbilityWord(AbilityWord.FEROCIOUS).addHint(FerociousHint.instance));
}
private FlamewakePhoenix(final FlamewakePhoenix card) {

View file

@ -44,7 +44,7 @@ public final class GateColossus extends CardImpl {
this.addAbility(new EntersBattlefieldControlledTriggeredAbility(
Zone.GRAVEYARD,
new PutOnLibrarySourceEffect(
true, "put {this} from your graveyard on top of your library"
true, "put this card from your graveyard on top of your library"
), filter, true
));
}

View file

@ -1,36 +1,27 @@
package mage.cards.g;
import java.util.UUID;
import mage.MageInt;
import mage.abilities.Ability;
import mage.abilities.common.EntersBattlefieldTriggeredAbility;
import mage.abilities.condition.common.KickedCondition;
import mage.abilities.decorator.ConditionalInterveningIfTriggeredAbility;
import mage.abilities.effects.common.SacrificeEffect;
import mage.abilities.keyword.KickerAbility;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
import mage.constants.CardType;
import mage.constants.SubType;
import mage.filter.common.FilterControlledPermanent;
import mage.filter.StaticFilters;
import mage.target.TargetPlayer;
import java.util.UUID;
/**
*
* @author maurer.it_at_gmail.com
*/
public final class GatekeeperOfMalakir extends CardImpl {
private static final FilterControlledPermanent filter;
static {
filter = new FilterControlledPermanent("creature");
filter.add(CardType.CREATURE.getPredicate());
}
public GatekeeperOfMalakir(UUID ownerId, CardSetInfo setInfo) {
super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{B}{B}");
super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{B}{B}");
this.subtype.add(SubType.VAMPIRE);
this.subtype.add(SubType.WARRIOR);
@ -41,12 +32,11 @@ public final class GatekeeperOfMalakir extends CardImpl {
this.addAbility(new KickerAbility("{B}"));
// When this creature enters, if it was kicked, target player sacrifices a creature.
EntersBattlefieldTriggeredAbility ability =
new EntersBattlefieldTriggeredAbility(new SacrificeEffect(filter, 1, "target player"))
.setTriggerPhrase("When this creature enters, ");
Ability conditionalAbility = new ConditionalInterveningIfTriggeredAbility(ability, KickedCondition.ONCE, "When this creature enters, if it was kicked, target player sacrifices a creature.");
conditionalAbility.addTarget(new TargetPlayer());
this.addAbility(conditionalAbility);
Ability ability = new EntersBattlefieldTriggeredAbility(
new SacrificeEffect(StaticFilters.FILTER_PERMANENT_CREATURE, 1, "target player")
).withInterveningIf(KickedCondition.ONCE);
ability.addTarget(new TargetPlayer());
this.addAbility(ability);
}
private GatekeeperOfMalakir(final GatekeeperOfMalakir card) {

View file

@ -31,6 +31,7 @@ public final class GorehornRaider extends CardImpl {
// Raid -- When this creature enters, if you attacked this turn, this creature deals 2 damage to any target.
Ability ability = new EntersBattlefieldTriggeredAbility(new DamageTargetEffect(2))
.withRuleTextReplacement(false)
.withInterveningIf(RaidCondition.instance);
ability.addTarget(new TargetAnyTarget());
this.addAbility(ability.setAbilityWord(AbilityWord.RAID).addHint(RaidHint.instance), new PlayerAttackedWatcher());

View file

@ -43,7 +43,7 @@ class GratuitousViolenceReplacementEffect extends ReplacementEffectImpl {
GratuitousViolenceReplacementEffect() {
super(Duration.WhileOnBattlefield, Outcome.Damage);
staticText = "If a creature you control would deal damage to a permanent or player, it deals double that damage to that permanent or player instead";
staticText = "If a creature you control would deal damage to a permanent or player, it deals double that damage instead";
}
private GratuitousViolenceReplacementEffect(final GratuitousViolenceReplacementEffect effect) {

View file

@ -61,7 +61,7 @@ class KellanPlanarTrailblazerDetectiveEffect extends OneShotEffect {
KellanPlanarTrailblazerDetectiveEffect() {
super(Outcome.Benefit);
staticText = "if {this} is a Scout, it becomes a Human Faerie Detective and gains "
+ "\"Whenever this creature deals combat damage to a player, exile the top card of your library. "
+ "\"Whenever {this} deals combat damage to a player, exile the top card of your library. "
+ "You may play that card this turn.\"";
}
@ -125,4 +125,4 @@ class KellanPlanarTrailblazerRogueEffect extends OneShotEffect {
), source);
return true;
}
}
}

View file

@ -74,7 +74,7 @@ class QuilledGreatwurmEffect extends AsThoughEffectImpl {
QuilledGreatwurmEffect() {
super(AsThoughEffectType.CAST_FROM_NOT_OWN_HAND_ZONE, Duration.EndOfGame, Outcome.Benefit);
this.staticText = "you may cast {this} from your graveyard by removing six counters " +
this.staticText = "you may cast this card from your graveyard by removing six counters " +
"from among creatures you control in addition to paying its other costs";
}

View file

@ -51,7 +51,7 @@ public final class SunBlessedHealer extends CardImpl {
Ability ability = new EntersBattlefieldTriggeredAbility(
new ReturnFromGraveyardToBattlefieldTargetEffect()
).withInterveningIf(KickedCondition.ONCE);
ability.addTarget(new TargetCardInYourGraveyard());
ability.addTarget(new TargetCardInYourGraveyard(filter));
this.addAbility(ability);
}

View file

@ -34,7 +34,7 @@ public final class TragicBanshee extends CardImpl {
new AddContinuousEffectToGame(new BoostTargetEffect(-13, -13)),
new AddContinuousEffectToGame(new BoostTargetEffect(-1, -1)),
MorbidCondition.instance, "target creature an opponent controls gets -1/-1 until end of turn. " +
"If a creature died this turn, that creature gets -13/-13 instead"
"If a creature died this turn, that creature gets -13/-13 until end of turn instead"
));
ability.addTarget(new TargetOpponentsCreaturePermanent());
this.addAbility(ability.addHint(MorbidHint.instance).setAbilityWord(AbilityWord.MORBID));

View file

@ -45,7 +45,7 @@ class TributeToHungerEffect extends OneShotEffect {
TributeToHungerEffect() {
super(Outcome.Sacrifice);
staticText = "Target opponent sacrifices a creature. You gain life equal to that creature's toughness";
staticText = "Target opponent sacrifices a creature of their choice. You gain life equal to that creature's toughness";
}
private TributeToHungerEffect(final TributeToHungerEffect effect) {

View file

@ -1,15 +1,12 @@
package mage.cards.u;
import mage.abilities.common.AsEntersBattlefieldAbility;
import mage.abilities.common.EntersBattlefieldTappedAbility;
import mage.abilities.common.EntersBattlefieldTappedAsItEntersChooseColorAbility;
import mage.abilities.costs.common.TapSourceCost;
import mage.abilities.effects.common.ChooseColorEffect;
import mage.abilities.effects.mana.AddManaChosenColorEffect;
import mage.abilities.mana.SimpleManaAbility;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
import mage.constants.CardType;
import mage.constants.Outcome;
import mage.constants.Zone;
import java.util.UUID;
@ -23,10 +20,8 @@ public final class UnchartedHaven extends CardImpl {
super(ownerId, setInfo, new CardType[]{CardType.LAND}, "");
// Uncharted Haven enters the battlefield tapped.
this.addAbility(new EntersBattlefieldTappedAbility());
// As Uncharted Haven enters the battlefield, choose a color.
this.addAbility(new AsEntersBattlefieldAbility(new ChooseColorEffect(Outcome.Neutral)));
this.addAbility(new EntersBattlefieldTappedAsItEntersChooseColorAbility());
// {T}: Add one mana of the chosen color.
this.addAbility(new SimpleManaAbility(Zone.BATTLEFIELD, new AddManaChosenColorEffect(), new TapSourceCost()));

View file

@ -57,7 +57,7 @@ class VizierOfTheMenagerieManaEffect extends AsThoughEffectImpl implements AsTho
public VizierOfTheMenagerieManaEffect() {
super(AsThoughEffectType.SPEND_OTHER_MANA, Duration.WhileOnBattlefield, Outcome.Benefit);
staticText = "You may spend mana as though it were mana of any type to cast creature spells";
staticText = "You can spend mana of any type to cast creature spells";
}
private VizierOfTheMenagerieManaEffect(final VizierOfTheMenagerieManaEffect effect) {

View file

@ -29,6 +29,6 @@ public enum KickedCondition implements Condition {
@Override
public String toString() {
return "{this} was kicked" + (text.isEmpty() ? "" : " " + text);
return "it was kicked" + (text.isEmpty() ? "" : " " + text);
}
}

View file

@ -1,4 +1,3 @@
package mage.abilities.effects.common;
import mage.abilities.Ability;
@ -9,7 +8,6 @@ import mage.constants.Outcome;
import mage.constants.Zone;
import mage.game.Game;
import mage.game.events.GameEvent;
import mage.game.events.GameEvent.EventType;
import mage.game.events.ZoneChangeEvent;
import mage.game.stack.StackObject;
import mage.players.Player;
@ -21,7 +19,7 @@ public class DiscardOntoBattlefieldEffect extends ReplacementEffectImpl {
public DiscardOntoBattlefieldEffect() {
super(Duration.EndOfGame, Outcome.PutCardInPlay);
staticText = "If a spell or ability an opponent controls causes you to discard {this}, put it onto the battlefield instead of putting it into your graveyard";
staticText = "If a spell or ability an opponent controls causes you to discard this card, put it onto the battlefield instead of putting it into your graveyard";
}
protected DiscardOntoBattlefieldEffect(final DiscardOntoBattlefieldEffect effect) {
@ -40,30 +38,24 @@ public class DiscardOntoBattlefieldEffect extends ReplacementEffectImpl {
@Override
public boolean applies(GameEvent event, Ability source, Game game) {
if (event.getTargetId().equals(source.getSourceId())) {
ZoneChangeEvent zcEvent = (ZoneChangeEvent) event;
if (zcEvent.getFromZone() == Zone.HAND && zcEvent.getToZone() == Zone.GRAVEYARD) {
StackObject spell = game.getStack().getStackObject(event.getSourceId());
if (spell != null && game.getOpponents(source.getControllerId()).contains(spell.getControllerId())) {
return true;
}
}
if (!event.getTargetId().equals(source.getSourceId())) {
return false;
}
return false;
ZoneChangeEvent zcEvent = (ZoneChangeEvent) event;
if (zcEvent.getFromZone() != Zone.HAND || zcEvent.getToZone() != Zone.GRAVEYARD) {
return false;
}
StackObject spell = game.getStack().getStackObject(event.getSourceId());
return spell != null && game.getOpponents(source.getControllerId()).contains(spell.getControllerId());
}
@Override
public boolean replaceEvent(GameEvent event, Ability source, Game game) {
Card card = game.getCard(source.getSourceId());
if (card != null) {
Player owner = game.getPlayer(card.getOwnerId());
if (owner != null) {
if (owner.moveCards(card, Zone.BATTLEFIELD, source, game)) {
return true;
}
}
if (card == null) {
return false;
}
return false;
Player owner = game.getPlayer(card.getOwnerId());
return owner != null && owner.moveCards(card, Zone.BATTLEFIELD, source, game);
}
}

View file

@ -1,7 +1,5 @@
package mage.abilities.keyword;
import java.io.ObjectStreamException;
import mage.abilities.MageSingleton;
import mage.abilities.OpeningHandAction;
import mage.abilities.StaticAbility;
@ -11,8 +9,9 @@ import mage.constants.Zone;
import mage.game.Game;
import mage.players.Player;
import java.io.ObjectStreamException;
/**
*
* @author BetaSteward_at_googlemail.com
*/
public class LeylineAbility extends StaticAbility implements MageSingleton, OpeningHandAction {
@ -33,7 +32,7 @@ public class LeylineAbility extends StaticAbility implements MageSingleton, Open
@Override
public String getRule() {
return "If {this} is in your opening hand, you may begin the game with it on the battlefield.";
return "If this card is in your opening hand, you may begin the game with it on the battlefield.";
}
@Override

View file

@ -13,7 +13,7 @@ import mage.constants.SubType;
public final class RatCantBlockToken extends TokenImpl {
public RatCantBlockToken() {
super("Rat Token", "1/1 black Rat creature token with \"This creature can't block.\"");
super("Rat Token", "1/1 black Rat creature token with \"This token can't block.\"");
cardType.add(CardType.CREATURE);
color.setBlack(true);
subtype.add(SubType.RAT);
@ -22,7 +22,7 @@ public final class RatCantBlockToken extends TokenImpl {
this.addAbility(new SimpleStaticAbility(
new CantBlockSourceEffect(Duration.WhileOnBattlefield)
.setText("this creature can't block")
.setText("this token can't block")
));
}