[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(
new EntersBattlefieldTriggeredAbility(new ReturnToHandSourceEffect(true)),
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."
);
ability.addEffect(new VentureIntoTheDungeonEffect());

View file

@ -42,7 +42,8 @@ public final class ArcaneInvestigator extends CardImpl {
effect.addTableEntry(10, 20, new LookLibraryAndPickControllerEffect(
StaticValue.get(3), false, StaticValue.get(1),
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) {

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.
this.addAbility(new DiesAttachedTriggeredAbility(
new DancingSwordEffect(), "equipped creature", true
));
).setTriggerPhrase("When equipped creature dies, "));
// Equip {1}
this.addAbility(new EquipAbility(1));

View file

@ -56,7 +56,7 @@ class DelinaWildMageEffect extends OneShotEffect {
DelinaWildMageEffect() {
super(Outcome.Benefit);
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.\"" +
"<br>15-20 | Create one of those tokens. You may roll again.";
}

View file

@ -91,7 +91,7 @@ enum DemilichValue implements DynamicValue {
@Override
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() {
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) {

View file

@ -33,7 +33,7 @@ import java.util.UUID;
*/
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 {
filter.add(Predicates.not(SubType.OOZE.getPredicate()));

View file

@ -52,7 +52,7 @@ class KeenEaredSentryEffect extends ContinuousRuleModifyingEffectImpl {
KeenEaredSentryEffect() {
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) {

View file

@ -49,7 +49,7 @@ public final class OchreJelly extends CardImpl {
)), OchreJellyCondition.instance, CardUtil.italicizeWithEmDash("Split")
+ "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. " +
"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;
import java.util.UUID;
import mage.ConditionalMana;
import mage.MageObject;
import mage.Mana;
@ -21,16 +19,21 @@ import mage.cards.CardSetInfo;
import mage.constants.CardType;
import mage.constants.SubType;
import mage.constants.Zone;
import mage.filter.common.FilterBySubtypeCard;
import mage.filter.FilterCard;
import mage.game.Game;
import java.util.UUID;
/**
*
* @author weirddan455
*/
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) {
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,
Zone.LIBRARY, false, true, false, Zone.HAND,
true, false, false).setBackInRandomOrder(true),
new ManaCostsImpl("{R}")
new ManaCostsImpl<>("{R}")
);
ability.addCost(new TapSourceCost());
ability.addCost(new SacrificeSourceCost());
@ -72,7 +75,7 @@ class OrbOfDragonkindManaBuilder extends ConditionalManaBuilder {
@Override
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) {
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);
}
}

View file

@ -52,7 +52,7 @@ public final class RogueClass extends CardImpl {
this.addAbility(new SimpleStaticAbility(new GainClassAbilitySourceEffect(
new GainAbilityControlledEffect(
new MenaceAbility(), Duration.WhileOnBattlefield,
StaticFilters.FILTER_CONTROLLED_CREATURES
StaticFilters.FILTER_PERMANENT_CREATURES
), 2
)));
@ -182,7 +182,7 @@ class RogueClassManaEffect extends AsThoughEffectImpl implements AsThoughManaEff
RogueClassManaEffect() {
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) {

View file

@ -132,7 +132,7 @@ class SorcererClassEffect extends OneShotEffect {
SorcererClassEffect() {
super(Outcome.Benefit);
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) {

View file

@ -56,7 +56,7 @@ class SphereOfAnnihilationEffect extends OneShotEffect {
SphereOfAnnihilationEffect() {
super(Outcome.Benefit);
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";
}

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."
Ability ability = new SimpleStaticAbility(new BoostEquippedEffect(1, 1));
ability.addEffect(new TrickstersTalismanEffect());
this.addAbility(ability);
this.addAbility(ability.withFlavorWord("Invoke Duplicity"));
// Equip {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 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 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.
if (nextRule.startsWith("and ") || nextRule.startsWith("with ") || nextRule.startsWith("then ")) {
if (nextRule.startsWith("and ")
|| nextRule.startsWith("with ")
|| nextRule.startsWith("then ")
|| nextRule.startsWith("or ")) {
endString = " ";
} else if (nextRule.startsWith(",") || nextRule.startsWith(" ")) {
endString = "";

View file

@ -1,6 +1,5 @@
package mage.abilities.effects.common;
import java.util.UUID;
import mage.abilities.Ability;
import mage.abilities.Mode;
import mage.abilities.effects.OneShotEffect;
@ -9,8 +8,9 @@ import mage.game.Game;
import mage.game.permanent.Permanent;
import mage.target.Target;
import java.util.UUID;
/**
*
* @author fireshoes
*/
public class PhaseOutTargetEffect extends OneShotEffect {
@ -73,7 +73,11 @@ public class PhaseOutTargetEffect extends OneShotEffect {
} else {
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();
}

View file

@ -35,7 +35,7 @@ public class SearchLibraryGraveyardPutInHandEffect extends OneShotEffect {
this.filter = filter;
this.forceToSearchBoth = forceToSearchBoth;
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) {

View file

@ -30,7 +30,7 @@ public class IcingdeathFrostTongueToken extends TokenImpl {
public IcingdeathFrostTongueToken() {
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 " +
"defending player controls,\" and equip {2}");
supertype.add(SuperType.LEGENDARY);