[AFR] more text fixes

This commit is contained in:
Evan Kranzler 2021-08-23 19:14:50 -04:00
parent 31a559be23
commit 85dfa58e5d
18 changed files with 40 additions and 29 deletions

View file

@ -44,7 +44,7 @@ public final class AcererakTheArchlich extends CardImpl {
Ability ability = new ConditionalInterveningIfTriggeredAbility( Ability ability = new ConditionalInterveningIfTriggeredAbility(
new EntersBattlefieldTriggeredAbility(new ReturnToHandSourceEffect(true)), new EntersBattlefieldTriggeredAbility(new ReturnToHandSourceEffect(true)),
AcererakTheArchlichCondition.instance, "When {this} enters the battlefield, " + AcererakTheArchlichCondition.instance, "When {this} enters the battlefield, " +
"if you have not completed Tomb of Annihilation, return {this} " + "if you haven't completed Tomb of Annihilation, return {this} " +
"to its owner's hand and venture into the dungeon." "to its owner's hand and venture into the dungeon."
); );
ability.addEffect(new VentureIntoTheDungeonEffect()); ability.addEffect(new VentureIntoTheDungeonEffect());

View file

@ -42,7 +42,8 @@ public final class ArcaneInvestigator extends CardImpl {
effect.addTableEntry(10, 20, new LookLibraryAndPickControllerEffect( effect.addTableEntry(10, 20, new LookLibraryAndPickControllerEffect(
StaticValue.get(3), false, StaticValue.get(1), StaticValue.get(3), false, StaticValue.get(1),
StaticFilters.FILTER_CARD, Zone.LIBRARY, false, false StaticFilters.FILTER_CARD, Zone.LIBRARY, false, false
)); ).setText("look at the top three cards of your library. Put one of them " +
"into your hand and the rest on the bottom of your library in any order"));
} }
private ArcaneInvestigator(final ArcaneInvestigator card) { private ArcaneInvestigator(final ArcaneInvestigator card) {

View file

@ -33,7 +33,7 @@ public final class DancingSword extends CardImpl {
// When equipped creature dies, you may have Dancing Sword become a 2/1 Construct artifact creature with flying and ward {1}. If you do, it isn't an Equipment. // When equipped creature dies, you may have Dancing Sword become a 2/1 Construct artifact creature with flying and ward {1}. If you do, it isn't an Equipment.
this.addAbility(new DiesAttachedTriggeredAbility( this.addAbility(new DiesAttachedTriggeredAbility(
new DancingSwordEffect(), "equipped creature", true new DancingSwordEffect(), "equipped creature", true
)); ).setTriggerPhrase("When equipped creature dies, "));
// Equip {1} // Equip {1}
this.addAbility(new EquipAbility(1)); this.addAbility(new EquipAbility(1));

View file

@ -56,7 +56,7 @@ class DelinaWildMageEffect extends OneShotEffect {
DelinaWildMageEffect() { DelinaWildMageEffect() {
super(Outcome.Benefit); super(Outcome.Benefit);
staticText = "choose target creature you control, then roll a d20." + staticText = "choose target creature you control, then roll a d20." +
"<br>1-14 | Create a tapped and attacking token that's a copy of that creature " + "<br>1-14 | Create a tapped and attacking token that's a copy of that creature, " +
"except it's not legendary and it has \"Exile this creature at end of combat.\"" + "except it's not legendary and it has \"Exile this creature at end of combat.\"" +
"<br>15-20 | Create one of those tokens. You may roll again."; "<br>15-20 | Create one of those tokens. You may roll again.";
} }

View file

@ -91,7 +91,7 @@ enum DemilichValue implements DynamicValue {
@Override @Override
public String getMessage() { public String getMessage() {
return "instant and sorcery you've cast this turn"; return "instant and sorcery spell you've cast this turn";
} }
} }
@ -134,7 +134,7 @@ class DemilichPlayEffect extends AsThoughEffectImpl {
public DemilichPlayEffect() { public DemilichPlayEffect() {
super(AsThoughEffectType.PLAY_FROM_NOT_OWN_HAND_ZONE, Duration.EndOfGame, Outcome.Benefit); super(AsThoughEffectType.PLAY_FROM_NOT_OWN_HAND_ZONE, Duration.EndOfGame, Outcome.Benefit);
this.staticText = "You may cast {this} from your graveyard by exiling four instants and/or sorcery cards from your graveyard in addition to paying its other costs"; this.staticText = "You may cast {this} from your graveyard by exiling four instant and/or sorcery cards from your graveyard in addition to paying its other costs";
} }
private DemilichPlayEffect(final DemilichPlayEffect effect) { private DemilichPlayEffect(final DemilichPlayEffect effect) {

View file

@ -33,7 +33,7 @@ import java.util.UUID;
*/ */
public final class GelatinousCube extends CardImpl { public final class GelatinousCube extends CardImpl {
private static final FilterPermanent filter = new FilterOpponentsCreaturePermanent("non-Ooze creature an opponent controls"); private static final FilterPermanent filter = new FilterOpponentsCreaturePermanent("non-Ooze creature");
static { static {
filter.add(Predicates.not(SubType.OOZE.getPredicate())); filter.add(Predicates.not(SubType.OOZE.getPredicate()));

View file

@ -52,7 +52,7 @@ class KeenEaredSentryEffect extends ContinuousRuleModifyingEffectImpl {
KeenEaredSentryEffect() { KeenEaredSentryEffect() {
super(Duration.WhileOnBattlefield, Outcome.Detriment); super(Duration.WhileOnBattlefield, Outcome.Detriment);
staticText = "your opponents can't venture into the dungeon more than once each turn"; staticText = "each opponent can't venture into the dungeon more than once each turn";
} }
private KeenEaredSentryEffect(final KeenEaredSentryEffect effect) { private KeenEaredSentryEffect(final KeenEaredSentryEffect effect) {

View file

@ -49,7 +49,7 @@ public final class OchreJelly extends CardImpl {
)), OchreJellyCondition.instance, CardUtil.italicizeWithEmDash("Split") )), OchreJellyCondition.instance, CardUtil.italicizeWithEmDash("Split")
+ "When {this} dies, if it had two or more +1/+1 counters on it, " + + "When {this} dies, if it had two or more +1/+1 counters on it, " +
"create a token that's a copy of it at the beginning of the next end step. " + "create a token that's a copy of it at the beginning of the next end step. " +
"That token enters the battlefield with half that many +1/+1 counters on it, rounded down." "The token enters the battlefield with half that many +1/+1 counters on it, rounded down."
)); ));
} }

View file

@ -1,7 +1,5 @@
package mage.cards.o; package mage.cards.o;
import java.util.UUID;
import mage.ConditionalMana; import mage.ConditionalMana;
import mage.MageObject; import mage.MageObject;
import mage.Mana; import mage.Mana;
@ -21,16 +19,21 @@ import mage.cards.CardSetInfo;
import mage.constants.CardType; import mage.constants.CardType;
import mage.constants.SubType; import mage.constants.SubType;
import mage.constants.Zone; import mage.constants.Zone;
import mage.filter.common.FilterBySubtypeCard; import mage.filter.FilterCard;
import mage.game.Game; import mage.game.Game;
import java.util.UUID;
/** /**
*
* @author weirddan455 * @author weirddan455
*/ */
public final class OrbOfDragonkind extends CardImpl { public final class OrbOfDragonkind extends CardImpl {
private static final FilterBySubtypeCard filter = new FilterBySubtypeCard(SubType.DRAGON); private static final FilterCard filter = new FilterCard("a Dragon card");
static {
filter.add(SubType.DRAGON.getPredicate());
}
public OrbOfDragonkind(UUID ownerId, CardSetInfo setInfo) { public OrbOfDragonkind(UUID ownerId, CardSetInfo setInfo) {
super(ownerId, setInfo, new CardType[]{CardType.ARTIFACT}, "{1}{R}"); super(ownerId, setInfo, new CardType[]{CardType.ARTIFACT}, "{1}{R}");
@ -46,7 +49,7 @@ public final class OrbOfDragonkind extends CardImpl {
StaticValue.get(7), false, StaticValue.get(1), filter, StaticValue.get(7), false, StaticValue.get(1), filter,
Zone.LIBRARY, false, true, false, Zone.HAND, Zone.LIBRARY, false, true, false, Zone.HAND,
true, false, false).setBackInRandomOrder(true), true, false, false).setBackInRandomOrder(true),
new ManaCostsImpl("{R}") new ManaCostsImpl<>("{R}")
); );
ability.addCost(new TapSourceCost()); ability.addCost(new TapSourceCost());
ability.addCost(new SacrificeSourceCost()); ability.addCost(new SacrificeSourceCost());
@ -72,7 +75,7 @@ class OrbOfDragonkindManaBuilder extends ConditionalManaBuilder {
@Override @Override
public String getRule() { public String getRule() {
return "Spend this mana only to cast Dragon spells or to activate abilities of Dragons"; return "Spend this mana only to cast Dragon spells or activate abilities of Dragons";
} }
} }
@ -80,7 +83,7 @@ class OrbOfDragonkindConditionalMana extends ConditionalMana {
public OrbOfDragonkindConditionalMana(Mana mana) { public OrbOfDragonkindConditionalMana(Mana mana) {
super(mana); super(mana);
this.staticText = "Spend this mana only to cast Dragon spells or to activate abilities of Dragons"; this.staticText = "Spend this mana only to cast Dragon spells or activate abilities of Dragons";
addCondition(OrbOfDragonkindManaCondition.instance); addCondition(OrbOfDragonkindManaCondition.instance);
} }
} }

View file

@ -52,7 +52,7 @@ public final class RogueClass extends CardImpl {
this.addAbility(new SimpleStaticAbility(new GainClassAbilitySourceEffect( this.addAbility(new SimpleStaticAbility(new GainClassAbilitySourceEffect(
new GainAbilityControlledEffect( new GainAbilityControlledEffect(
new MenaceAbility(), Duration.WhileOnBattlefield, new MenaceAbility(), Duration.WhileOnBattlefield,
StaticFilters.FILTER_CONTROLLED_CREATURES StaticFilters.FILTER_PERMANENT_CREATURES
), 2 ), 2
))); )));
@ -182,7 +182,7 @@ class RogueClassManaEffect extends AsThoughEffectImpl implements AsThoughManaEff
RogueClassManaEffect() { RogueClassManaEffect() {
super(AsThoughEffectType.SPEND_OTHER_MANA, Duration.WhileOnBattlefield, Outcome.Benefit); super(AsThoughEffectType.SPEND_OTHER_MANA, Duration.WhileOnBattlefield, Outcome.Benefit);
this.staticText = ", and you may spend mana as through it were mana of any color to cast them"; this.staticText = ", and you may spend mana as though it were mana of any color to cast those spells";
} }
private RogueClassManaEffect(final RogueClassManaEffect effect) { private RogueClassManaEffect(final RogueClassManaEffect effect) {

View file

@ -132,7 +132,7 @@ class SorcererClassEffect extends OneShotEffect {
SorcererClassEffect() { SorcererClassEffect() {
super(Outcome.Benefit); super(Outcome.Benefit);
staticText = "that spell deals damage to each opponent equal " + staticText = "that spell deals damage to each opponent equal " +
"to the number of instant or sorcery spells you've cast this turn"; "to the number of instant and sorcery spells you've cast this turn";
} }
private SorcererClassEffect(final SorcererClassEffect effect) { private SorcererClassEffect(final SorcererClassEffect effect) {

View file

@ -56,7 +56,7 @@ class SphereOfAnnihilationEffect extends OneShotEffect {
SphereOfAnnihilationEffect() { SphereOfAnnihilationEffect() {
super(Outcome.Benefit); super(Outcome.Benefit);
staticText = "exile {this}, all creatures and planeswalkers with mana value less than or equal to " + staticText = "exile {this}, all creatures and planeswalkers with mana value less than or equal to " +
"the number of void counters on it, and all creature and planeswalker cards in all graveyards " + "the number of void counters on it, and all creature and planeswalker cards in graveyards " +
"with mana value less than or equal to the number of void counters on it"; "with mana value less than or equal to the number of void counters on it";
} }

View file

@ -31,7 +31,7 @@ public final class TrickstersTalisman extends CardImpl {
// Equipped creature gets +1/+1 and has "Whenever this creature deals combat damage to a player, you may sacrifice Trickster's Talisman. If you do, create a token that's a copy of this creature." // Equipped creature gets +1/+1 and has "Whenever this creature deals combat damage to a player, you may sacrifice Trickster's Talisman. If you do, create a token that's a copy of this creature."
Ability ability = new SimpleStaticAbility(new BoostEquippedEffect(1, 1)); Ability ability = new SimpleStaticAbility(new BoostEquippedEffect(1, 1));
ability.addEffect(new TrickstersTalismanEffect()); ability.addEffect(new TrickstersTalismanEffect());
this.addAbility(ability); this.addAbility(ability.withFlavorWord("Invoke Duplicity"));
// Equip {2} // Equip {2}
this.addAbility(new EquipAbility(2)); this.addAbility(new EquipAbility(2));

View file

@ -57,7 +57,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 = "AFC"; // check all abilities and output cards with wrong abilities texts; private static final String FULL_ABILITIES_CHECK_SET_CODE = "AFR"; // 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

@ -62,7 +62,10 @@ public class Effects extends ArrayList<Effect> {
} }
//check if nextRule is a new sentence or not. //check if nextRule is a new sentence or not.
if (nextRule.startsWith("and ") || nextRule.startsWith("with ") || nextRule.startsWith("then ")) { if (nextRule.startsWith("and ")
|| nextRule.startsWith("with ")
|| nextRule.startsWith("then ")
|| nextRule.startsWith("or ")) {
endString = " "; endString = " ";
} else if (nextRule.startsWith(",") || nextRule.startsWith(" ")) { } else if (nextRule.startsWith(",") || nextRule.startsWith(" ")) {
endString = ""; endString = "";

View file

@ -1,6 +1,5 @@
package mage.abilities.effects.common; package mage.abilities.effects.common;
import java.util.UUID;
import mage.abilities.Ability; import mage.abilities.Ability;
import mage.abilities.Mode; import mage.abilities.Mode;
import mage.abilities.effects.OneShotEffect; import mage.abilities.effects.OneShotEffect;
@ -9,8 +8,9 @@ import mage.game.Game;
import mage.game.permanent.Permanent; import mage.game.permanent.Permanent;
import mage.target.Target; import mage.target.Target;
import java.util.UUID;
/** /**
*
* @author fireshoes * @author fireshoes
*/ */
public class PhaseOutTargetEffect extends OneShotEffect { public class PhaseOutTargetEffect extends OneShotEffect {
@ -73,7 +73,11 @@ public class PhaseOutTargetEffect extends OneShotEffect {
} else { } else {
sb.append("Target ").append(mode.getTargets().get(0).getTargetName()); sb.append("Target ").append(mode.getTargets().get(0).getTargetName());
} }
sb.append(" phases out"); sb.append(" phase");
if (mode.getTargets().get(0).getMaxNumberOfTargets() <= 1) {
sb.append('s');
}
sb.append(" out");
return sb.toString(); return sb.toString();
} }

View file

@ -35,7 +35,7 @@ public class SearchLibraryGraveyardPutInHandEffect extends OneShotEffect {
this.filter = filter; this.filter = filter;
this.forceToSearchBoth = forceToSearchBoth; this.forceToSearchBoth = forceToSearchBoth;
staticText = (youMay ? "you may " : "") + "search your library and" + (forceToSearchBoth ? "" : "/or") + " graveyard for a card named " + filter.getMessage() staticText = (youMay ? "you may " : "") + "search your library and" + (forceToSearchBoth ? "" : "/or") + " graveyard for a card named " + filter.getMessage()
+ ", reveal it, and put it into your hand. " + (forceToSearchBoth ? "Then shuffle" : "If you search your library this way, shuffle it"); + ", reveal it, and put it into your hand. " + (forceToSearchBoth ? "Then shuffle" : "If you search your library this way, shuffle");
} }
public SearchLibraryGraveyardPutInHandEffect(final SearchLibraryGraveyardPutInHandEffect effect) { public SearchLibraryGraveyardPutInHandEffect(final SearchLibraryGraveyardPutInHandEffect effect) {

View file

@ -30,7 +30,7 @@ public class IcingdeathFrostTongueToken extends TokenImpl {
public IcingdeathFrostTongueToken() { public IcingdeathFrostTongueToken() {
super("Icingdeath, Frost Tongue", "Icingdeath, Frost Tongue, a legendary white " + super("Icingdeath, Frost Tongue", "Icingdeath, Frost Tongue, a legendary white " +
"Equipment artifact token with \"Equipped creature gets +2/+0\", " + "Equipment artifact token with \"Equipped creature gets +2/+0,\" " +
"\"Whenever equipped creature attacks, tap target creature " + "\"Whenever equipped creature attacks, tap target creature " +
"defending player controls,\" and equip {2}"); "defending player controls,\" and equip {2}");
supertype.add(SuperType.LEGENDARY); supertype.add(SuperType.LEGENDARY);