various text fixes

This commit is contained in:
Evan Kranzler 2022-03-03 17:57:39 -05:00
parent 4af54ef196
commit 2675b75c60
10 changed files with 23 additions and 17 deletions

View file

@ -50,7 +50,7 @@ public final class AlrundGodOfTheCosmos extends ModalDoubleFacesCard {
// Alrund gets +1/+1 for each card in your hand and each foretold card you own in exile.
Effect effect = new BoostSourceEffect(AlrundGodOfTheCosmosValue.instance, AlrundGodOfTheCosmosValue.instance, Duration.EndOfGame);
effect.setText("Alrund gets +1/+1 for each card in your hand and each foretold card you own in exile.");
effect.setText("{this} gets +1/+1 for each card in your hand and each foretold card you own in exile.");
Ability ability = new SimpleStaticAbility(effect);
this.getLeftHalfCard().addAbility(ability);
@ -89,7 +89,7 @@ class AlrundGodOfTheCosmosEffect extends OneShotEffect {
public AlrundGodOfTheCosmosEffect() {
super(Outcome.Neutral);
staticText = ", then reveal the top two cards of your library. Put all cards revealed this way of the chosen type into your hand and the rest on the bottom of your library in any order";
staticText = ", then reveal the top two cards of your library. Put all cards of the chosen type revealed this way into your hand and the rest on the bottom of your library in any order";
}
public AlrundGodOfTheCosmosEffect(final AlrundGodOfTheCosmosEffect effect) {

View file

@ -61,7 +61,7 @@ class BlizzardBrawlEffect extends OneShotEffect {
staticText = "Choose target creature you control and target creature you don't control. " +
"If you control three or more snow permanents, the creature you control gets +1/+0 " +
"and gains indestructible until end of turn. " +
"Then those creatures fight each other." +
"Then those creatures fight each other. " +
"<i>(Each deals damage equal to its power to the other.)</i>";
}

View file

@ -25,7 +25,7 @@ public final class BloodPrice extends CardImpl {
StaticFilters.FILTER_CARD, Zone.LIBRARY, false,
false, false, Zone.HAND, false,
false, true
).setText("Look at at the top four cards of your library." +
).setText("Look at at the top four cards of your library. " +
"Put two of them into your hand and the rest on the bottom of your library in any order "));
this.getSpellAbility().addEffect(new LoseLifeSourceControllerEffect(2));
}

View file

@ -42,7 +42,7 @@ public final class DwynenGiltLeafDaen extends CardImpl {
this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new BoostControlledEffect(1, 1, Duration.WhileOnBattlefield, new FilterCreaturePermanent(SubType.ELF, "Elf creatures"), true)));
// Whenever Dwynen, Gilt-Leaf Daen attacks, you gain 1 life for each attacking Elf you control.
this.addAbility(new AttacksTriggeredAbility(new GainLifeEffect(new PermanentsOnBattlefieldCount(filter)), false));
this.addAbility(new AttacksTriggeredAbility(new GainLifeEffect(new PermanentsOnBattlefieldCount(filter)).setText("you gain 1 life for each attacking Elf you control"), false));
}
private DwynenGiltLeafDaen(final DwynenGiltLeafDaen card) {

View file

@ -28,6 +28,7 @@ public final class EvangelOfHeliod extends CardImpl {
// When Evangel of Heliod enters the battlefield, create a number of 1/1 white Soldier creature tokens equal to your devotion to white.
this.addAbility(new EntersBattlefieldTriggeredAbility(
new CreateTokenEffect(new SoldierToken(), DevotionCount.W)
.setText("create a number of 1/1 white Soldier creature tokens equal to your devotion to white")
).addHint(DevotionCount.W.getHint()));
}

View file

@ -105,7 +105,7 @@ class GlimpseTheCosmosReplacementEffect extends ReplacementEffectImpl {
public GlimpseTheCosmosReplacementEffect() {
super(Duration.EndOfGame, Outcome.Benefit);
staticText = "As long as you control a Giant, you may cast {this} from your graveyard by paying {U} rather than paying its mana cost. If you cast {this} this way and it would be put into your graveyard, exile it instead";
staticText = "As long as you control a Giant, you may cast {this} from your graveyard by paying {U} rather than paying its mana cost. If you cast {this} this way and it would be put into your graveyard, exile it instead";
}
public GlimpseTheCosmosReplacementEffect(final GlimpseTheCosmosReplacementEffect effect) {

View file

@ -47,7 +47,7 @@ public final class JaggedScarArchers extends CardImpl {
// Jagged-Scar Archers's power and toughness are each equal to the number of Elves you control.
this.addAbility(new SimpleStaticAbility(Zone.ALL, new SetPowerToughnessSourceEffect(new PermanentsOnBattlefieldCount(controlledElvesFilter), Duration.EndOfGame)));
// {tap}: Jagged-Scar Archers deals damage equal to its power to target creature with flying.
Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new DamageTargetEffect(new SourcePermanentPowerCount()), new TapSourceCost());
Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new DamageTargetEffect(new SourcePermanentPowerCount()).setText("{this} deals damage equal to its power to target creature with flying"), new TapSourceCost());
ability.addTarget(new TargetCreaturePermanent(flyingCreatureFilter));
this.addAbility(ability);
}

View file

@ -182,6 +182,9 @@ class ValkmiraProtectorsShieldTriggeredAbility extends TriggeredAbilityImpl {
@Override
public boolean checkTrigger(GameEvent event, Game game) {
if (event.getTargetId().equals(getSourceId())) {
return false;
}
StackObject stackObject = game.getStack().getStackObject(event.getSourceId());
if (stackObject == null || !game.getOpponents(getControllerId()).contains(stackObject.getControllerId())) {
return false;
@ -200,7 +203,7 @@ class ValkmiraProtectorsShieldTriggeredAbility extends TriggeredAbilityImpl {
@Override
public String getRule() {
return "Whenever you or a permanent you control becomes the target of a spell or ability " +
return "Whenever you or another permanent you control becomes the target of a spell or ability " +
"an opponent controls, counter that spell or ability unless its controller pays {1}.";
}
}

View file

@ -62,7 +62,7 @@ public class VerifyCardDataTest {
private static final Logger logger = Logger.getLogger(VerifyCardDataTest.class);
private static final String FULL_ABILITIES_CHECK_SET_CODE = "M21"; // check all abilities and output cards with wrong abilities texts;
private static final String FULL_ABILITIES_CHECK_SET_CODE = "KHC"; // 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
@ -1630,16 +1630,16 @@ public class VerifyCardDataTest {
refText = refText.replaceAll("\\[([\\\\+]?\\d*)\\]\\: ", "$1: ").replaceAll("\\[\\X\\]\\: ", "-X: ");
// evergreen keyword fix
for (String s : refText.split("[\\$\\\n]")) {
for (String s : refText.replaceAll(" \\(.+?\\)", "").split("[\\$\\\n]")) {
if (Arrays
.stream(s.split(", "))
.stream(s.split("[,;] "))
.map(String::toLowerCase)
.allMatch(VerifyCardDataTest::evergreenCheck)) {
String replacement = Arrays
.stream(s.split(", "))
.stream(s.split("[,;] "))
.map(CardUtil::getTextWithFirstCharUpperCase)
.reduce("", (a, b) -> a + '\n' + b);
refText = refText.replace(s, replacement.substring(1));
.collect(Collectors.joining("\n"));
refText = refText.replace(s, replacement);
}
}
// modal spell fix

View file

@ -70,9 +70,11 @@ public class SetPowerToughnessTargetEffect extends ContinuousEffectImpl {
}
StringBuilder sb = new StringBuilder();
if (mode.getTargets().get(0).getMinNumberOfTargets() == 0) {
sb.append("up to ");
sb.append(CardUtil.numberToText(mode.getTargets().get(0).getMaxNumberOfTargets()));
sb.append(' ');
if (!mode.getTargets().get(0).getTargetName().startsWith("any")) {
sb.append("up to ");
sb.append(CardUtil.numberToText(mode.getTargets().get(0).getMaxNumberOfTargets()));
sb.append(' ');
}
}
if (!mode.getTargets().get(0).getTargetName().contains("target")) {
sb.append("target ");