[EVE] various text fixes

This commit is contained in:
Evan Kranzler 2022-03-07 21:04:59 -05:00
parent e820d9f4f0
commit 7f95929288
20 changed files with 42 additions and 41 deletions

View file

@ -31,7 +31,7 @@ public final class BattlegateMimic extends CardImpl {
filter.add(new ColorPredicate(ObjectColor.WHITE)); filter.add(new ColorPredicate(ObjectColor.WHITE));
} }
private static final String rule = "Whenever you cast a spell that's both red and white, {this} has base power and toughness 4/2 and gains first strike until end of turn."; private static final String rule = "Whenever you cast a spell that's both red and white, {this} has base power and toughness 4/2 until end of turn and gains first strike until end of turn.";
public BattlegateMimic(UUID ownerId, CardSetInfo setInfo) { public BattlegateMimic(UUID ownerId, CardSetInfo setInfo) {
super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{1}{R/W}"); super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{1}{R/W}");

View file

@ -52,7 +52,7 @@ class CankerousThirstEffect extends OneShotEffect {
public CankerousThirstEffect() { public CankerousThirstEffect() {
super(Outcome.Benefit); super(Outcome.Benefit);
this.staticText = "If {B} was spent to cast {this}, you may have target creature get -3/-3 until end of turn. If {G} was spent to cast this spell, you may have target creature get +3/+3 until end of turn"; this.staticText = "If {B} was spent to cast this spell, you may have target creature get -3/-3 until end of turn. If {G} was spent to cast this spell, you may have target creature get +3/+3 until end of turn";
} }
public CankerousThirstEffect(final CankerousThirstEffect effect) { public CankerousThirstEffect(final CankerousThirstEffect effect) {

View file

@ -32,8 +32,8 @@ import mage.target.common.TargetCreaturePermanent;
*/ */
public final class Crackleburr extends CardImpl { public final class Crackleburr extends CardImpl {
private static final FilterControlledCreaturePermanent filter = new FilterControlledCreaturePermanent("two untapped red creatures you control"); private static final FilterControlledCreaturePermanent filter = new FilterControlledCreaturePermanent("untapped red creatures you control");
private static final FilterControlledCreaturePermanent filter2 = new FilterControlledCreaturePermanent("two tapped blue creatures you control"); private static final FilterControlledCreaturePermanent filter2 = new FilterControlledCreaturePermanent("tapped blue creatures you control");
static { static {
filter.add(new ColorPredicate(ObjectColor.RED)); filter.add(new ColorPredicate(ObjectColor.RED));

View file

@ -27,7 +27,7 @@ public final class DreamFracture extends CardImpl {
this.getSpellAbility().addTarget(new TargetSpell()); this.getSpellAbility().addTarget(new TargetSpell());
// Draw a card. // Draw a card.
this.getSpellAbility().addEffect(new DrawCardSourceControllerEffect(1)); this.getSpellAbility().addEffect(new DrawCardSourceControllerEffect(1).concatBy("<br>"));
} }

View file

@ -30,7 +30,7 @@ public final class DuergarAssailant extends CardImpl {
this.toughness = new MageInt(1); this.toughness = new MageInt(1);
// Sacrifice Duergar Assailant: Duergar Assailant deals 1 damage to target attacking or blocking creature. // Sacrifice Duergar Assailant: Duergar Assailant deals 1 damage to target attacking or blocking creature.
Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new DamageTargetEffect(1), new SacrificeSourceCost()); Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new DamageTargetEffect(1, "it"), new SacrificeSourceCost());
ability.addTarget(new TargetAttackingOrBlockingCreature()); ability.addTarget(new TargetAttackingOrBlockingCreature());
this.addAbility(ability); this.addAbility(ability);

View file

@ -52,7 +52,7 @@ class EndlessHorizonsEffect extends OneShotEffect {
EndlessHorizonsEffect() { EndlessHorizonsEffect() {
super(Outcome.Neutral); super(Outcome.Neutral);
this.staticText = "search your library for any number of Plains cards and exile them. Then shuffle"; this.staticText = "search your library for any number of Plains cards, exile them, then shuffle";
} }
private EndlessHorizonsEffect(final EndlessHorizonsEffect effect) { private EndlessHorizonsEffect(final EndlessHorizonsEffect effect) {

View file

@ -42,7 +42,7 @@ class HallowedBurialEffect extends OneShotEffect {
public HallowedBurialEffect() { public HallowedBurialEffect() {
super(Outcome.Neutral); super(Outcome.Neutral);
this.staticText = "Put all creatures on the bottom of their owner's libraries"; this.staticText = "Put all creatures on the bottom of their owners' libraries";
} }
public HallowedBurialEffect(final HallowedBurialEffect effect) { public HallowedBurialEffect(final HallowedBurialEffect effect) {

View file

@ -40,7 +40,7 @@ public final class HotheadedGiant extends CardImpl {
this.addAbility(new EntersBattlefieldAbility( this.addAbility(new EntersBattlefieldAbility(
new AddCountersSourceEffect(CounterType.M1M1.createInstance(2)), new AddCountersSourceEffect(CounterType.M1M1.createInstance(2)),
HotheadedGiantWatcher::checkSpell, null, HotheadedGiantWatcher::checkSpell, null,
"\"with two -1/-1 counters on it unless you've cast another red spell this turn\"" "with two -1/-1 counters on it unless you've cast another red spell this turn"
), new HotheadedGiantWatcher()); ), new HotheadedGiantWatcher());
} }

View file

@ -26,7 +26,7 @@ public final class InsideOut extends CardImpl {
this.getSpellAbility().addTarget(new TargetCreaturePermanent()); this.getSpellAbility().addTarget(new TargetCreaturePermanent());
// Draw a card. // Draw a card.
this.getSpellAbility().addEffect(new DrawCardSourceControllerEffect(1)); this.getSpellAbility().addEffect(new DrawCardSourceControllerEffect(1).concatBy("<br>"));
} }

View file

@ -45,7 +45,7 @@ public final class InvertTheSkies extends CardImpl {
this.getSpellAbility().addEffect(new ConditionalContinuousEffect( this.getSpellAbility().addEffect(new ConditionalContinuousEffect(
new GainAbilityControlledEffect(FlyingAbility.getInstance(), Duration.EndOfTurn), new GainAbilityControlledEffect(FlyingAbility.getInstance(), Duration.EndOfTurn),
new LockedInCondition(new ManaWasSpentCondition(ColoredManaSymbol.U)), new LockedInCondition(new ManaWasSpentCondition(ColoredManaSymbol.U)),
"and creatures you control gain flying until end of turn if {U} was spent to cast it")); "and creatures you control gain flying until end of turn if {U} was spent to cast this spell"));
this.getSpellAbility().addEffect(new InfoEffect("<i>(Do both if {G}{U} was spent.)</i>")); this.getSpellAbility().addEffect(new InfoEffect("<i>(Do both if {G}{U} was spent.)</i>"));

View file

@ -34,7 +34,7 @@ public final class Moonhold extends CardImpl {
ContinuousRuleModifyingEffect effect = new MoonholdEffect(); ContinuousRuleModifyingEffect effect = new MoonholdEffect();
ContinuousRuleModifyingEffect effect2 = new MoonholdEffect2(); ContinuousRuleModifyingEffect effect2 = new MoonholdEffect2();
effect.setText("Target player can't play lands this turn if {R} was spent to cast this spell"); effect.setText("Target player can't play lands this turn if {R} was spent to cast this spell");
effect2.setText("and can't cast creature spells this turn if {W} was spent to cast it."); effect2.setText("and can't cast creature spells this turn if {W} was spent to cast this spell.");
this.getSpellAbility().addEffect(new ConditionalContinuousRuleModifyingEffect( this.getSpellAbility().addEffect(new ConditionalContinuousRuleModifyingEffect(
effect, effect,
new LockedInCondition(new ManaWasSpentCondition(ColoredManaSymbol.R)))); new LockedInCondition(new ManaWasSpentCondition(ColoredManaSymbol.R))));

View file

@ -28,7 +28,7 @@ public final class NoggleRansacker extends CardImpl {
// When Noggle Ransacker enters the battlefield, each player draws two cards, then discards a card at random. // When Noggle Ransacker enters the battlefield, each player draws two cards, then discards a card at random.
Ability ability = new EntersBattlefieldTriggeredAbility(new DrawCardAllEffect(2)); Ability ability = new EntersBattlefieldTriggeredAbility(new DrawCardAllEffect(2));
ability.addEffect(new DiscardEachPlayerEffect(1, true)); ability.addEffect(new DiscardEachPlayerEffect(1, true).setText(", then discards a card at random"));
this.addAbility(ability); this.addAbility(ability);
} }

View file

@ -1,12 +1,10 @@
package mage.cards.n; package mage.cards.n;
import java.util.UUID;
import mage.MageInt; import mage.MageInt;
import mage.ObjectColor; import mage.ObjectColor;
import mage.abilities.Ability; import mage.abilities.Ability;
import mage.abilities.common.EntersBattlefieldTriggeredAbility; import mage.abilities.common.EntersBattlefieldTriggeredAbility;
import mage.abilities.effects.common.ReturnToHandTargetEffect; import mage.abilities.effects.common.ReturnFromGraveyardToHandTargetEffect;
import mage.cards.CardImpl; import mage.cards.CardImpl;
import mage.cards.CardSetInfo; import mage.cards.CardSetInfo;
import mage.constants.CardType; import mage.constants.CardType;
@ -15,8 +13,9 @@ import mage.filter.FilterCard;
import mage.filter.predicate.mageobject.ColorPredicate; import mage.filter.predicate.mageobject.ColorPredicate;
import mage.target.common.TargetCardInYourGraveyard; import mage.target.common.TargetCardInYourGraveyard;
import java.util.UUID;
/** /**
*
* @author Loki * @author Loki
*/ */
public final class Nucklavee extends CardImpl { public final class Nucklavee extends CardImpl {
@ -31,18 +30,18 @@ public final class Nucklavee extends CardImpl {
} }
public Nucklavee(UUID ownerId, CardSetInfo setInfo) { public Nucklavee(UUID ownerId, CardSetInfo setInfo) {
super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{4}{U/R}{U/R}"); super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{4}{U/R}{U/R}");
this.subtype.add(SubType.BEAST); this.subtype.add(SubType.BEAST);
this.power = new MageInt(4); this.power = new MageInt(4);
this.toughness = new MageInt(4); this.toughness = new MageInt(4);
// When Nucklavee enters the battlefield, you may return target red sorcery card from your graveyard to your hand. // When Nucklavee enters the battlefield, you may return target red sorcery card from your graveyard to your hand.
Ability ability = new EntersBattlefieldTriggeredAbility(new ReturnToHandTargetEffect(), true); Ability ability = new EntersBattlefieldTriggeredAbility(new ReturnFromGraveyardToHandTargetEffect(), true);
ability.addTarget(new TargetCardInYourGraveyard(filterRed)); ability.addTarget(new TargetCardInYourGraveyard(filterRed));
this.addAbility(ability); this.addAbility(ability);
// When Nucklavee enters the battlefield, you may return target blue instant card from your graveyard to your hand. // When Nucklavee enters the battlefield, you may return target blue instant card from your graveyard to your hand.
ability = new EntersBattlefieldTriggeredAbility(new ReturnToHandTargetEffect(), true); ability = new EntersBattlefieldTriggeredAbility(new ReturnFromGraveyardToHandTargetEffect(), true);
ability.addTarget(new TargetCardInYourGraveyard(filterBlue)); ability.addTarget(new TargetCardInYourGraveyard(filterBlue));
this.addAbility(ability); this.addAbility(ability);
} }

View file

@ -37,7 +37,7 @@ public final class OverbeingOfMyth extends CardImpl {
this.addAbility(new SimpleStaticAbility(Zone.ALL, new SetPowerToughnessSourceEffect(number, Duration.EndOfGame))); this.addAbility(new SimpleStaticAbility(Zone.ALL, new SetPowerToughnessSourceEffect(number, Duration.EndOfGame)));
// At the beginning of your draw step, draw an additional card. // At the beginning of your draw step, draw an additional card.
this.addAbility(new BeginningOfDrawTriggeredAbility(new DrawCardSourceControllerEffect(1), TargetController.YOU, false)); this.addAbility(new BeginningOfDrawTriggeredAbility(new DrawCardSourceControllerEffect(1).setText("draw an additional card"), TargetController.YOU, false));
} }

View file

@ -1,12 +1,12 @@
package mage.cards.r; package mage.cards.r;
import mage.abilities.Ability;
import mage.abilities.common.BeginningOfUpkeepTriggeredAbility; import mage.abilities.common.BeginningOfUpkeepTriggeredAbility;
import mage.abilities.condition.common.OpponentHasNoCardsInHandCondition; import mage.abilities.condition.common.OpponentHasNoCardsInHandCondition;
import mage.abilities.decorator.ConditionalInterveningIfTriggeredAbility; import mage.abilities.decorator.ConditionalInterveningIfTriggeredAbility;
import mage.abilities.effects.common.DamageTargetEffect; import mage.abilities.effects.common.DamageTargetEffect;
import mage.abilities.effects.common.ReturnSourceFromGraveyardToHandEffect; import mage.abilities.effects.common.ReturnSourceFromGraveyardToHandEffect;
import mage.abilities.hint.ConditionHint; import mage.abilities.hint.ConditionHint;
import mage.abilities.hint.Hint;
import mage.cards.CardImpl; import mage.cards.CardImpl;
import mage.cards.CardSetInfo; import mage.cards.CardSetInfo;
import mage.constants.CardType; import mage.constants.CardType;
@ -21,6 +21,10 @@ import java.util.UUID;
*/ */
public final class RekindledFlame extends CardImpl { public final class RekindledFlame extends CardImpl {
private static final Hint hint = new ConditionHint(
OpponentHasNoCardsInHandCondition.instance, "Opponent has no cards in hand"
);
public RekindledFlame(UUID ownerId, CardSetInfo setInfo) { public RekindledFlame(UUID ownerId, CardSetInfo setInfo) {
super(ownerId, setInfo, new CardType[]{CardType.SORCERY}, "{2}{R}{R}"); super(ownerId, setInfo, new CardType[]{CardType.SORCERY}, "{2}{R}{R}");
@ -29,14 +33,13 @@ public final class RekindledFlame extends CardImpl {
this.getSpellAbility().addTarget(new TargetAnyTarget()); this.getSpellAbility().addTarget(new TargetAnyTarget());
// At the beginning of your upkeep, if an opponent has no cards in hand, you may return Rekindled Flame from your graveyard to your hand. // At the beginning of your upkeep, if an opponent has no cards in hand, you may return Rekindled Flame from your graveyard to your hand.
Ability ability = new ConditionalInterveningIfTriggeredAbility( this.addAbility(new ConditionalInterveningIfTriggeredAbility(
new BeginningOfUpkeepTriggeredAbility(Zone.GRAVEYARD, new ReturnSourceFromGraveyardToHandEffect(), TargetController.YOU, true), new BeginningOfUpkeepTriggeredAbility(
OpponentHasNoCardsInHandCondition.instance, Zone.GRAVEYARD, new ReturnSourceFromGraveyardToHandEffect(),
"If an opponent has no cards in hand, you may return Rekindled Flame from your graveyard to your hand."); TargetController.YOU, true
ability.addHint(new ConditionHint(OpponentHasNoCardsInHandCondition.instance, "Opponent has no cards in hand")); ), OpponentHasNoCardsInHandCondition.instance, "At the beginning of your upkeep, " +
ability.setRuleVisible(true); "if an opponent has no cards in hand, you may return {this} from your graveyard to your hand."
this.addAbility(ability); ).addHint(hint));
} }
private RekindledFlame(final RekindledFlame card) { private RekindledFlame(final RekindledFlame card) {

View file

@ -1,7 +1,5 @@
package mage.cards.s; package mage.cards.s;
import java.util.UUID;
import mage.abilities.effects.common.GainLifeEffect; import mage.abilities.effects.common.GainLifeEffect;
import mage.abilities.effects.common.LoseLifeTargetEffect; import mage.abilities.effects.common.LoseLifeTargetEffect;
import mage.abilities.keyword.RetraceAbility; import mage.abilities.keyword.RetraceAbility;
@ -10,20 +8,21 @@ import mage.cards.CardSetInfo;
import mage.constants.CardType; import mage.constants.CardType;
import mage.target.TargetPlayer; import mage.target.TargetPlayer;
import java.util.UUID;
/** /**
*
* @author Plopman * @author Plopman
*/ */
public final class SyphonLife extends CardImpl { public final class SyphonLife extends CardImpl {
public SyphonLife(UUID ownerId, CardSetInfo setInfo) { public SyphonLife(UUID ownerId, CardSetInfo setInfo) {
super(ownerId,setInfo,new CardType[]{CardType.SORCERY},"{1}{B}{B}"); super(ownerId, setInfo, new CardType[]{CardType.SORCERY}, "{1}{B}{B}");
// Target player loses 2 life and you gain 2 life. // Target player loses 2 life and you gain 2 life.
this.getSpellAbility().addEffect(new LoseLifeTargetEffect(2)); this.getSpellAbility().addEffect(new LoseLifeTargetEffect(2));
this.getSpellAbility().addTarget(new TargetPlayer()); this.getSpellAbility().addTarget(new TargetPlayer());
this.getSpellAbility().addEffect(new GainLifeEffect(2)); this.getSpellAbility().addEffect(new GainLifeEffect(2).concatBy("and"));
// Retrace // Retrace
this.addAbility(new RetraceAbility(this)); this.addAbility(new RetraceAbility(this));
} }

View file

@ -38,7 +38,7 @@ public final class TalarasBattalion extends CardImpl {
// Cast Talara's Battalion only if you've cast another green spell this turn. // Cast Talara's Battalion only if you've cast another green spell this turn.
this.addAbility(new CastOnlyIfConditionIsTrueAbility( this.addAbility(new CastOnlyIfConditionIsTrueAbility(
TalarasBattalionWatcher::checkSpell, TalarasBattalionWatcher::checkSpell,
"cast {this} only if you've cast another green spell this turn" "cast this spell only if you've cast another green spell this turn"
), new TalarasBattalionWatcher()); ), new TalarasBattalionWatcher());
} }

View file

@ -38,7 +38,7 @@ public final class UnnervingAssault extends CardImpl {
new ManaWasSpentCondition(ColoredManaSymbol.U), "Creatures your opponents control get -1/-0 until end of turn if {U} was spent to cast this spell,")); new ManaWasSpentCondition(ColoredManaSymbol.U), "Creatures your opponents control get -1/-0 until end of turn if {U} was spent to cast this spell,"));
this.getSpellAbility().addEffect(new ConditionalContinuousEffect( this.getSpellAbility().addEffect(new ConditionalContinuousEffect(
new BoostAllEffect(1, 0, Duration.EndOfTurn, filter2, false), new BoostAllEffect(1, 0, Duration.EndOfTurn, filter2, false),
new ManaWasSpentCondition(ColoredManaSymbol.R), " and creatures you control get +1/+0 until end of turn if {R} was spent to cast it")); new ManaWasSpentCondition(ColoredManaSymbol.R), " and creatures you control get +1/+0 until end of turn if {R} was spent to cast this spell"));
this.getSpellAbility().addEffect(new InfoEffect("<i>(Do both if {U}{R} was spent.)</i>")); this.getSpellAbility().addEffect(new InfoEffect("<i>(Do both if {U}{R} was spent.)</i>"));
} }

View file

@ -62,7 +62,7 @@ public class VerifyCardDataTest {
private static final Logger logger = Logger.getLogger(VerifyCardDataTest.class); private static final Logger logger = Logger.getLogger(VerifyCardDataTest.class);
private static final String FULL_ABILITIES_CHECK_SET_CODE = "LRW"; // check all abilities and output cards with wrong abilities texts; private static final String FULL_ABILITIES_CHECK_SET_CODE = "EVE"; // check all abilities and output cards with wrong abilities texts;
private static final boolean AUTO_FIX_SAMPLE_DECKS = false; // debug only: auto-fix sample decks by test_checkSampleDecks test run private static final boolean AUTO_FIX_SAMPLE_DECKS = false; // debug only: auto-fix sample decks by test_checkSampleDecks test run
private static final boolean ONLY_TEXT = false; // use when checking text locally, suppresses unnecessary checks and output messages private static final boolean ONLY_TEXT = false; // use when checking text locally, suppresses unnecessary checks and output messages

View file

@ -47,7 +47,7 @@ public class PersistAbility extends DiesSourceTriggeredAbility {
@Override @Override
public String getRule() { public String getRule() {
return "Persist <i>(When this creature dies, if it had no -1/-1 counters on it, return it to the battlefield under its owner's control with a -1/-1 counter on it.)</i>"; return "persist <i>(When this creature dies, if it had no -1/-1 counters on it, return it to the battlefield under its owner's control with a -1/-1 counter on it.)</i>";
} }
} }