[STA] text fixes

This commit is contained in:
Evan Kranzler 2021-04-17 16:34:21 -04:00
parent 21b3c11781
commit cb0df438dd
16 changed files with 51 additions and 47 deletions

View file

@ -79,7 +79,7 @@ class ChaosWarpRevealEffect extends OneShotEffect {
public ChaosWarpRevealEffect() { public ChaosWarpRevealEffect() {
super(Outcome.PutCardInPlay); super(Outcome.PutCardInPlay);
this.staticText = "then reveals the top card of their library. If it's a permanent card, they put it onto the battlefield"; this.staticText = ", then reveals the top card of their library. If it's a permanent card, they put it onto the battlefield";
} }
public ChaosWarpRevealEffect(final ChaosWarpRevealEffect effect) { public ChaosWarpRevealEffect(final ChaosWarpRevealEffect effect) {

View file

@ -45,12 +45,13 @@ class CultivateEffect extends OneShotEffect {
protected static final FilterCard filter = new FilterCard("card to put on the battlefield tapped"); protected static final FilterCard filter = new FilterCard("card to put on the battlefield tapped");
public CultivateEffect() { CultivateEffect() {
super(Outcome.PutLandInPlay); super(Outcome.PutLandInPlay);
staticText = "Search your library for up to two basic land cards, reveal those cards, and put one onto the battlefield tapped and the other into your hand. Then shuffle your library"; staticText = "search your library for up to two basic land cards, reveal those cards, " +
"put one onto the battlefield tapped and the other into your hand, then shuffle";
} }
public CultivateEffect(final CultivateEffect effect) { private CultivateEffect(final CultivateEffect effect) {
super(effect); super(effect);
} }

View file

@ -22,11 +22,11 @@ public final class Electrolyze extends CardImpl {
// Electrolyze deals 2 damage divided as you choose among one or two target creatures and/or players. // Electrolyze deals 2 damage divided as you choose among one or two target creatures and/or players.
Effect effect = new DamageMultiEffect(2); Effect effect = new DamageMultiEffect(2);
effect.setText("{this} deals 2 damage divided as you choose among one or two target creatures and/or players"); effect.setText("{this} deals 2 damage divided as you choose among one or two targets");
this.getSpellAbility().addEffect(effect); this.getSpellAbility().addEffect(effect);
this.getSpellAbility().addTarget(new TargetAnyTargetAmount(2)); this.getSpellAbility().addTarget(new TargetAnyTargetAmount(2));
// Draw a card. // Draw a card.
this.getSpellAbility().addEffect(new DrawCardSourceControllerEffect(1)); this.getSpellAbility().addEffect(new DrawCardSourceControllerEffect(1).concatBy("<br>"));
} }
private Electrolyze(final Electrolyze card) { private Electrolyze(final Electrolyze card) {

View file

@ -21,7 +21,7 @@ public final class Ephemerate extends CardImpl {
// Exile target creature you control, then return it to the battlefield under its owner's control. // Exile target creature you control, then return it to the battlefield under its owner's control.
this.getSpellAbility().addTarget(new TargetControlledCreaturePermanent()); this.getSpellAbility().addTarget(new TargetControlledCreaturePermanent());
this.getSpellAbility().addEffect(new ExileTargetForSourceEffect()); this.getSpellAbility().addEffect(new ExileTargetForSourceEffect());
this.getSpellAbility().addEffect(new ReturnToBattlefieldUnderOwnerControlTargetEffect(false, false)); this.getSpellAbility().addEffect(new ReturnToBattlefieldUnderOwnerControlTargetEffect(false, false).setText(", then return it to the battlefield under its owner's control"));
// Rebound // Rebound
this.addAbility(new ReboundAbility()); this.addAbility(new ReboundAbility());

View file

@ -1,7 +1,5 @@
package mage.cards.g; package mage.cards.g;
import java.util.UUID;
import mage.abilities.condition.common.OpponentControlsMoreCondition; import mage.abilities.condition.common.OpponentControlsMoreCondition;
import mage.abilities.decorator.ConditionalOneShotEffect; import mage.abilities.decorator.ConditionalOneShotEffect;
import mage.abilities.effects.common.search.SearchLibraryPutInHandEffect; import mage.abilities.effects.common.search.SearchLibraryPutInHandEffect;
@ -13,8 +11,9 @@ import mage.filter.FilterCard;
import mage.filter.StaticFilters; import mage.filter.StaticFilters;
import mage.target.common.TargetCardInLibrary; import mage.target.common.TargetCardInLibrary;
import java.util.UUID;
/** /**
*
* @author LevelX2 * @author LevelX2
*/ */
public final class GiftOfEstates extends CardImpl { public final class GiftOfEstates extends CardImpl {
@ -25,15 +24,17 @@ public final class GiftOfEstates extends CardImpl {
filter.add(SubType.PLAINS.getPredicate()); filter.add(SubType.PLAINS.getPredicate());
} }
public GiftOfEstates(UUID ownerId, CardSetInfo setInfo) { public GiftOfEstates(UUID ownerId, CardSetInfo setInfo) {
super(ownerId, setInfo, new CardType[]{CardType.SORCERY}, "{1}{W}"); super(ownerId, setInfo, new CardType[]{CardType.SORCERY}, "{1}{W}");
// If an opponent controls more lands than you, search your library for up to three Plains cards, reveal them, and put them into your hand. Then shuffle your library. // If an opponent controls more lands than you, search your library for up to three Plains cards, reveal them, and put them into your hand. Then shuffle your library.
this.getSpellAbility().addEffect(new ConditionalOneShotEffect( this.getSpellAbility().addEffect(new ConditionalOneShotEffect(
new SearchLibraryPutInHandEffect(new TargetCardInLibrary(0, 3, filter), true), new SearchLibraryPutInHandEffect(
new OpponentControlsMoreCondition(StaticFilters.FILTER_LANDS))); new TargetCardInLibrary(0, 3, filter), true
), new OpponentControlsMoreCondition(StaticFilters.FILTER_LANDS), "if an opponent controls " +
"more lands than you, search your library for up to three Plains cards, " +
"reveal them, and put them into your hand. Then shuffle your library"
));
} }
private GiftOfEstates(final GiftOfEstates card) { private GiftOfEstates(final GiftOfEstates card) {

View file

@ -22,7 +22,7 @@ public final class GodsWilling extends CardImpl {
// Target creature you control gains protection from the color of your choice until end of turn. Scry 1. // Target creature you control gains protection from the color of your choice until end of turn. Scry 1.
this.getSpellAbility().addEffect(new GainProtectionFromColorTargetEffect(Duration.EndOfTurn)); this.getSpellAbility().addEffect(new GainProtectionFromColorTargetEffect(Duration.EndOfTurn));
this.getSpellAbility().addTarget(new TargetControlledCreaturePermanent()); this.getSpellAbility().addTarget(new TargetControlledCreaturePermanent());
this.getSpellAbility().addEffect(new ScryEffect(1)); this.getSpellAbility().addEffect(new ScryEffect(1).concatBy("<br>"));
} }
private GodsWilling(final GodsWilling card) { private GodsWilling(final GodsWilling card) {

View file

@ -21,7 +21,7 @@ public final class Opt extends CardImpl {
this.getSpellAbility().addEffect(new ScryEffect(1)); this.getSpellAbility().addEffect(new ScryEffect(1));
// Draw a card. // Draw a card.
this.getSpellAbility().addEffect(new DrawCardSourceControllerEffect(1)); this.getSpellAbility().addEffect(new DrawCardSourceControllerEffect(1).concatBy("<br>"));
} }
private Opt(final Opt card) { private Opt(final Opt card) {

View file

@ -1,26 +1,23 @@
package mage.cards.r; package mage.cards.r;
import java.util.UUID; import mage.abilities.effects.common.ReturnFromGraveyardToHandTargetEffect;
import mage.abilities.effects.common.ReturnToHandTargetEffect;
import mage.cards.CardImpl; import mage.cards.CardImpl;
import mage.cards.CardSetInfo; import mage.cards.CardSetInfo;
import mage.constants.CardType; import mage.constants.CardType;
import mage.target.common.TargetCardInYourGraveyard; import mage.target.common.TargetCardInYourGraveyard;
/** import java.util.UUID;
*
* @author KholdFuzion
/**
* @author KholdFuzion
*/ */
public final class Regrowth extends CardImpl { public final class Regrowth extends CardImpl {
public Regrowth(UUID ownerId, CardSetInfo setInfo) { public Regrowth(UUID ownerId, CardSetInfo setInfo) {
super(ownerId, setInfo, new CardType[]{CardType.SORCERY}, "{1}{G}"); super(ownerId, setInfo, new CardType[]{CardType.SORCERY}, "{1}{G}");
// Return target card from your graveyard to your hand. // Return target card from your graveyard to your hand.
this.getSpellAbility().addEffect(new ReturnToHandTargetEffect()); this.getSpellAbility().addEffect(new ReturnFromGraveyardToHandTargetEffect());
this.getSpellAbility().addTarget(new TargetCardInYourGraveyard()); this.getSpellAbility().addTarget(new TargetCardInYourGraveyard());
} }

View file

@ -20,7 +20,7 @@ public final class Revitalize extends CardImpl {
this.getSpellAbility().addEffect(new GainLifeEffect(3)); this.getSpellAbility().addEffect(new GainLifeEffect(3));
// Draw a card. // Draw a card.
this.getSpellAbility().addEffect(new DrawCardSourceControllerEffect(1)); this.getSpellAbility().addEffect(new DrawCardSourceControllerEffect(1).concatBy("<br>"));
} }
private Revitalize(final Revitalize card) { private Revitalize(final Revitalize card) {

View file

@ -78,7 +78,7 @@ class TeferisProtectionEffect extends OneShotEffect {
*/ */
public TeferisProtectionEffect() { public TeferisProtectionEffect() {
super(Outcome.Protect); super(Outcome.Protect);
staticText = ", and you gain protection from everything"; staticText = " and you gain protection from everything";
} }
public TeferisProtectionEffect(final TeferisProtectionEffect effect) { public TeferisProtectionEffect(final TeferisProtectionEffect effect) {
@ -126,7 +126,7 @@ class TeferisProtectionPhaseOutEffect extends OneShotEffect {
public TeferisProtectionPhaseOutEffect() { public TeferisProtectionPhaseOutEffect() {
super(Outcome.Benefit); super(Outcome.Benefit);
this.staticText = "All permanents you control phase out. (While they're phased out, they're treated as though they don't exist. They phase in before you untap during your untap step.)"; this.staticText = "All permanents you control phase out. <i>(While they're phased out, they're treated as though they don't exist. They phase in before you untap during your untap step.)</i><br>";
} }
public TeferisProtectionPhaseOutEffect(final TeferisProtectionPhaseOutEffect effect) { public TeferisProtectionPhaseOutEffect(final TeferisProtectionPhaseOutEffect effect) {

View file

@ -22,7 +22,7 @@ public final class TendrilsOfAgony extends CardImpl {
// Target player loses 2 life and you gain 2 life. // Target player loses 2 life and you gain 2 life.
this.getSpellAbility().addTarget(new TargetPlayer()); this.getSpellAbility().addTarget(new TargetPlayer());
this.getSpellAbility().addEffect(new LoseLifeTargetEffect(2)); this.getSpellAbility().addEffect(new LoseLifeTargetEffect(2));
this.getSpellAbility().addEffect(new GainLifeEffect(2)); this.getSpellAbility().addEffect(new GainLifeEffect(2).concatBy("and"));
// Storm (When you cast this spell, copy it for each spell cast before it this turn. You may choose new targets for the copies.) // Storm (When you cast this spell, copy it for each spell cast before it this turn. You may choose new targets for the copies.)
this.addAbility(new StormAbility()); this.addAbility(new StormAbility());
} }

View file

@ -1,7 +1,5 @@
package mage.cards.u; package mage.cards.u;
import java.util.UUID;
import mage.abilities.Ability; import mage.abilities.Ability;
import mage.abilities.common.SimpleStaticAbility; import mage.abilities.common.SimpleStaticAbility;
import mage.abilities.condition.common.KickedCondition; import mage.abilities.condition.common.KickedCondition;
@ -16,8 +14,9 @@ import mage.constants.CardType;
import mage.constants.Zone; import mage.constants.Zone;
import mage.target.common.TargetAnyTarget; import mage.target.common.TargetAnyTarget;
import java.util.UUID;
/** /**
*
* @author FenrisulfrX * @author FenrisulfrX
*/ */
public final class UrzasRage extends CardImpl { public final class UrzasRage extends CardImpl {
@ -36,9 +35,11 @@ public final class UrzasRage extends CardImpl {
this.addAbility(ability); this.addAbility(ability);
// Urza's Rage deals 3 damage to any target. If Urza's Rage was kicked, instead it deals 10 damage to that creature or player and the damage can't be prevented. // Urza's Rage deals 3 damage to any target. If Urza's Rage was kicked, instead it deals 10 damage to that creature or player and the damage can't be prevented.
this.getSpellAbility().addEffect(new ConditionalOneShotEffect(new DamageTargetEffect(10, false), this.getSpellAbility().addEffect(new ConditionalOneShotEffect(
new DamageTargetEffect(3), KickedCondition.instance, new DamageTargetEffect(10, false), new DamageTargetEffect(3),
"{this} deals 3 damage to any target. if this spell was kicked, instead it deals 10 damage to that permanent or player and the damage can't be prevented.")); KickedCondition.instance, "{this} deals 3 damage to any target. If this spell was kicked, " +
"instead it deals 10 damage to that permanent or player and the damage can't be prevented."
));
this.getSpellAbility().addTarget(new TargetAnyTarget()); this.getSpellAbility().addTarget(new TargetAnyTarget());
} }

View file

@ -56,7 +56,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 = "TSR"; // check all abilities and output cards with wrong abilities texts; private static final String FULL_ABILITIES_CHECK_SET_CODE = "STA"; // 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 HashMap<String, Set<String>> skipCheckLists = new HashMap<>(); private static final HashMap<String, Set<String>> skipCheckLists = new HashMap<>();

View file

@ -54,8 +54,12 @@ public class Effects extends ArrayList<Effect> {
String concatPrefix = effect.getConcatPrefix(); String concatPrefix = effect.getConcatPrefix();
if (effectNum > 1 && !concatPrefix.isEmpty() && !concatPrefix.equals(".")) { if (effectNum > 1 && !concatPrefix.isEmpty() && !concatPrefix.equals(".")) {
if (concatPrefix.contains("<br>")) {
nextRule = concatPrefix + CardUtil.getTextWithFirstCharUpperCase(nextRule);
} else {
nextRule = concatPrefix + " " + nextRule; nextRule = concatPrefix + " " + nextRule;
} }
}
//check if nextRule is a new sentence or not. //check if nextRule is a new sentence or not.

View file

@ -99,10 +99,10 @@ public class SearchLibraryPutInHandEffect extends SearchEffect {
sb.append(target.getTargetName()); sb.append(target.getTargetName());
if (forceShuffle) { if (forceShuffle) {
sb.append(revealCards ? ", reveal them" : ""); sb.append(revealCards ? ", reveal them" : "");
sb.append(", put them into your hand, then shuffle your library"); sb.append(", put them into your hand, then shuffle");
} else { } else {
sb.append(revealCards ? ", reveal them," : ""); sb.append(revealCards ? ", reveal them," : "");
sb.append(" and put them into your hand. If you do, shuffle your library"); sb.append(" and put them into your hand. If you do, shuffle");
} }
} else { } else {
if (!target.getTargetName().startsWith("a ") && !target.getTargetName().startsWith("an ")) { if (!target.getTargetName().startsWith("a ") && !target.getTargetName().startsWith("an ")) {
@ -110,11 +110,11 @@ public class SearchLibraryPutInHandEffect extends SearchEffect {
} }
sb.append(target.getTargetName()); sb.append(target.getTargetName());
if (forceShuffle) { if (forceShuffle) {
sb.append(revealCards ? ", reveal it" : ""); sb.append(revealCards ? ", reveal it, put it" : ", put that card");
sb.append(", put it into your hand, then shuffle your library"); sb.append(" into your hand, then shuffle");
} else { } else {
sb.append(revealCards ? ", reveal it," : ""); sb.append(revealCards ? ", reveal it," : "");
sb.append(" and put that card into your hand. If you do, shuffle your library"); sb.append(" and put that card into your hand. If you do, shuffle");
} }
} }
staticText = sb.toString(); staticText = sb.toString();

View file

@ -97,9 +97,9 @@ public class SearchLibraryPutInPlayEffect extends SearchEffect {
sb.append(" tapped"); sb.append(" tapped");
} }
if (forceShuffle) { if (forceShuffle) {
sb.append(", then shuffle your library"); sb.append(", then shuffle");
} else { } else {
sb.append(". If you do, shuffle your library"); sb.append(". If you do, shuffle");
} }
staticText = sb.toString(); staticText = sb.toString();
} }