[WWK] various text fixes

This commit is contained in:
Evan Kranzler 2022-03-08 21:24:22 -05:00
parent caa1b7a8d7
commit 7fb089db48
26 changed files with 77 additions and 78 deletions

View file

@ -39,7 +39,7 @@ public final class AkoumBattlesinger extends CardImpl {
// Haste
this.addAbility(HasteAbility.getInstance());
// Whenever Akoum Battlesinger or another Ally enters the battlefield under your control, you may have Ally creatures you control get +1/+0 until end of turn.
this.addAbility(new AllyEntersBattlefieldTriggeredAbility(new BoostControlledEffect(1, 0, Duration.EndOfTurn, filter, false), true));
this.addAbility(new AllyEntersBattlefieldTriggeredAbility(new BoostControlledEffect(1, 0, Duration.EndOfTurn, filter, false), true).setAbilityWord(null));
}
private AkoumBattlesinger(final AkoumBattlesinger card) {

View file

@ -26,7 +26,7 @@ public final class BojukaBrigand extends CardImpl {
this.toughness = new MageInt(1);
this.addAbility(new CantBlockAbility());
this.addAbility(new AllyEntersBattlefieldTriggeredAbility(new AddCountersSourceEffect(CounterType.P1P1.createInstance()), true));
this.addAbility(new AllyEntersBattlefieldTriggeredAbility(new AddCountersSourceEffect(CounterType.P1P1.createInstance()), true).setAbilityWord(null));
}
private BojukaBrigand(final BojukaBrigand card) {

View file

@ -43,7 +43,7 @@ public final class BrinkOfDisaster extends CardImpl {
this.addAbility(ability);
// When enchanted permanent becomes tapped, destroy it.
this.addAbility(new BecomesTappedAttachedTriggeredAbility(new DestroyAttachedToEffect("it"), "enchanted permanent"));
this.addAbility(new BecomesTappedAttachedTriggeredAbility(new DestroyAttachedToEffect("it"), "").setTriggerPhrase("When enchanted permanent becomes tapped, "));
}
private BrinkOfDisaster(final BrinkOfDisaster card) {

View file

@ -42,7 +42,7 @@ public final class ClawsOfValakut extends CardImpl {
SimpleStaticAbility ability = new SimpleStaticAbility(Zone.BATTLEFIELD, new BoostEnchantedEffect(new PermanentsOnBattlefieldCount(filter, 1),
new PermanentsOnBattlefieldCount(filter, 0),
Duration.WhileOnBattlefield));
ability.addEffect(new GainAbilityAttachedEffect(FirstStrikeAbility.getInstance(), AttachmentType.AURA));
ability.addEffect(new GainAbilityAttachedEffect(FirstStrikeAbility.getInstance(), AttachmentType.AURA).setText("and has first strike"));
this.addAbility(ability);
}

View file

@ -24,7 +24,7 @@ public final class CosisRavager extends CardImpl {
this.color.setRed(true);
this.power = new MageInt(2);
this.toughness = new MageInt(2);
Ability ability = new LandfallAbility(new DamageTargetEffect(1), false);
Ability ability = new LandfallAbility(new DamageTargetEffect(1), true);
ability.addTarget(new TargetPlayerOrPlaneswalker());
this.addAbility(ability);
}

View file

@ -28,7 +28,7 @@ public final class GraypeltHunter extends CardImpl {
this.toughness = new MageInt(2);
this.addAbility(TrampleAbility.getInstance());
this.addAbility(new AllyEntersBattlefieldTriggeredAbility(new AddCountersSourceEffect(CounterType.P1P1.createInstance()), true));
this.addAbility(new AllyEntersBattlefieldTriggeredAbility(new AddCountersSourceEffect(CounterType.P1P1.createInstance()), true).setAbilityWord(null));
}
private GraypeltHunter(final GraypeltHunter card) {

View file

@ -44,7 +44,7 @@ public final class GuardianZendikon extends CardImpl {
this.addAbility(ability);
Ability ability2 = new SimpleStaticAbility(Zone.BATTLEFIELD, new BecomesCreatureAttachedEffect(
new GuardianZendikonWallToken(), "Enchanted land is a 2/6 white wall creature with defender. It's still a land", Duration.WhileOnBattlefield, BecomesCreatureAttachedEffect.LoseType.COLOR));
new GuardianZendikonWallToken(), "Enchanted land is a 2/6 white Wall creature with defender. It's still a land", Duration.WhileOnBattlefield, BecomesCreatureAttachedEffect.LoseType.COLOR));
this.addAbility(ability2);
Ability ability3 = new DiesAttachedTriggeredAbility(new ReturnToHandAttachedEffect(), "enchanted land", false);
@ -64,7 +64,7 @@ public final class GuardianZendikon extends CardImpl {
class GuardianZendikonWallToken extends TokenImpl {
GuardianZendikonWallToken() {
super("", "2/6 white wall creature with defender");
super("", "2/6 white Wall creature with defender");
cardType.add(CardType.CREATURE);
color.setWhite(true);
subtype.add(SubType.WALL);

View file

@ -26,7 +26,7 @@ public final class HadaFreeblade extends CardImpl {
this.power = new MageInt(0);
this.toughness = new MageInt(1);
this.addAbility(new AllyEntersBattlefieldTriggeredAbility(new AddCountersSourceEffect(CounterType.P1P1.createInstance()), true));
this.addAbility(new AllyEntersBattlefieldTriggeredAbility(new AddCountersSourceEffect(CounterType.P1P1.createInstance()), true).setAbilityWord(null));
}
private HadaFreeblade(final HadaFreeblade card) {

View file

@ -38,7 +38,7 @@ public final class HalimarExcavator extends CardImpl {
this.toughness = new MageInt(3);
Ability ability = new AllyEntersBattlefieldTriggeredAbility(new PutLibraryIntoGraveTargetEffect(new PermanentsOnBattlefieldCount(filter)), false);
ability.addTarget(new TargetPlayer());
this.addAbility(ability);
this.addAbility(ability.setAbilityWord(null));
}
private HalimarExcavator(final HalimarExcavator card) {

View file

@ -1,7 +1,5 @@
package mage.cards.j;
import java.util.UUID;
import mage.MageInt;
import mage.abilities.common.AllyEntersBattlefieldTriggeredAbility;
import mage.abilities.effects.common.continuous.GainAbilityAllEffect;
@ -14,13 +12,14 @@ import mage.constants.SubType;
import mage.constants.TargetController;
import mage.filter.common.FilterCreaturePermanent;
import java.util.UUID;
/**
*
* @author North
*/
public final class JoragaBard extends CardImpl {
private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("Ally creatures you control");
private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("have Ally creatures you control");
static {
filter.add(SubType.ALLY.getPredicate());
@ -28,7 +27,7 @@ public final class JoragaBard extends CardImpl {
}
public JoragaBard(UUID ownerId, CardSetInfo setInfo) {
super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{3}{G}");
super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{3}{G}");
this.subtype.add(SubType.ELF);
this.subtype.add(SubType.ROGUE);
this.subtype.add(SubType.BARD);
@ -39,7 +38,7 @@ public final class JoragaBard extends CardImpl {
this.addAbility(new AllyEntersBattlefieldTriggeredAbility(new GainAbilityAllEffect(
VigilanceAbility.getInstance(), Duration.EndOfTurn, filter
).setText("you may have Ally creatures you control gain vigilance until end of turn"), true).setAbilityWord(null));
), true).setAbilityWord(null));
}
private JoragaBard(final JoragaBard card) {

View file

@ -78,7 +78,7 @@ class KazuulTyrantOfTheCliffsTriggeredAbility extends TriggeredAbilityImpl {
@Override
public String getRule() {
return "Whenever a creature an opponent controls attacks, if you're the defending player, " +
"create a 3/3 red Ogre creature token unless that creature's controller pays {3}";
"create a 3/3 red Ogre creature token unless that creature's controller pays {3}.";
}
}

View file

@ -1,8 +1,7 @@
package mage.cards.k;
import java.util.UUID;
import mage.MageInt;
import mage.abilities.Ability;
import mage.abilities.common.SimpleStaticAbility;
import mage.abilities.condition.common.EquippedSourceCondition;
import mage.abilities.decorator.ConditionalContinuousEffect;
@ -12,21 +11,18 @@ import mage.abilities.keyword.FlyingAbility;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
import mage.constants.CardType;
import mage.constants.SubType;
import mage.constants.Duration;
import mage.constants.Zone;
import mage.constants.SubType;
import java.util.UUID;
/**
*
* @author Loki
*/
public final class KitesailApprentice extends CardImpl {
private static final String rule1 = "As long as {this} is equipped, it gets +1/+1";
private static final String rule2 = "As long as {this} is equipped, it has flying";
public KitesailApprentice(UUID ownerId, CardSetInfo setInfo) {
super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{W}");
super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{W}");
this.subtype.add(SubType.KOR);
this.subtype.add(SubType.SOLDIER);
@ -34,10 +30,14 @@ public final class KitesailApprentice extends CardImpl {
this.power = new MageInt(1);
this.toughness = new MageInt(1);
ConditionalContinuousEffect effect1 = new ConditionalContinuousEffect(new BoostSourceEffect(1, 1, Duration.WhileOnBattlefield), EquippedSourceCondition.instance, rule1);
this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, effect1));
ConditionalContinuousEffect effect2 = new ConditionalContinuousEffect(new GainAbilitySourceEffect(FlyingAbility.getInstance()), EquippedSourceCondition.instance, rule2);
this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, effect2));
Ability ability = new SimpleStaticAbility(new ConditionalContinuousEffect(
new BoostSourceEffect(1, 1, Duration.WhileOnBattlefield),
EquippedSourceCondition.instance, "as long as {this} is equipped, it gets +1/+1"
));
ability.addEffect(new ConditionalContinuousEffect(new GainAbilitySourceEffect(
FlyingAbility.getInstance()), EquippedSourceCondition.instance, "and has flying"
));
this.addAbility(ability);
}
private KitesailApprentice(final KitesailApprentice card) {

View file

@ -99,7 +99,7 @@ class MordantDragonTriggeredAbility extends TriggeredAbilityImpl {
@Override
public String getRule() {
return "Whenever {this} deals combat damage to a player, "
+ "you may have it deal that much damage to target creature that player controls";
+ "you may have it deal that much damage to target creature that player controls.";
}
}

View file

@ -1,28 +1,32 @@
package mage.cards.m;
import java.util.UUID;
import mage.abilities.condition.common.LandfallCondition;
import mage.abilities.decorator.ConditionalOneShotEffect;
import mage.abilities.effects.common.DrawCardSourceControllerEffect;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
import mage.constants.AbilityWord;
import mage.constants.CardType;
import mage.watchers.common.LandfallWatcher;
import java.util.UUID;
/**
*
* @author jeffwadsworth
*/
public final class MysteriesOfTheDeep extends CardImpl {
public MysteriesOfTheDeep(UUID ownerId, CardSetInfo setInfo) {
super(ownerId,setInfo,new CardType[]{CardType.INSTANT},"{4}{U}");
super(ownerId, setInfo, new CardType[]{CardType.INSTANT}, "{4}{U}");
// Draw two cards.
// Landfall - If you had a land enter the battlefield under your control this turn, draw three cards instead.
this.getSpellAbility().addEffect(new ConditionalOneShotEffect(
new DrawCardSourceControllerEffect(3), new DrawCardSourceControllerEffect(2),
LandfallCondition.instance, "Draw two cards.<br>" + AbilityWord.LANDFALL.formatWord()
+ "If you had a land enter the battlefield under your control this turn, draw three cards instead"
));
this.getSpellAbility().addWatcher(new LandfallWatcher());
this.getSpellAbility().addEffect(new ConditionalOneShotEffect(new DrawCardSourceControllerEffect(3), new DrawCardSourceControllerEffect(2), LandfallCondition.instance, "Draw 2 cards. Landfall - If you had a land enter the battlefield under your control this turn, draw three cards instead"));
}
private MysteriesOfTheDeep(final MysteriesOfTheDeep card) {

View file

@ -35,7 +35,7 @@ public final class PermafrostTrap extends CardImpl {
// Tap up to two target creatures. Those creatures don't untap during their controller's next untap step.
this.getSpellAbility().addEffect(new TapTargetEffect());
this.getSpellAbility().addTarget(new TargetCreaturePermanent(0, 2));
this.getSpellAbility().addEffect(new DontUntapInControllersNextUntapStepTargetEffect());
this.getSpellAbility().addEffect(new DontUntapInControllersNextUntapStepTargetEffect("Those creatures"));
}
private PermafrostTrap(final PermafrostTrap card) {

View file

@ -34,8 +34,8 @@ public final class RazorBoomerang extends CardImpl {
// Equipped creature has "{tap}, Unattach Razor Boomerang: Razor Boomerang deals 1 damage to any target. Return Razor Boomerang to its owner's hand."
this.addAbility(new SimpleStaticAbility(new GainAbilityWithAttachmentEffect(
"equipped creature has \"{tap}, Unattach {this}: " +
"{this} deals 1 damage to any target. Return {this} to its owner's hand.\"",
"equipped creature has \"{T}, Unattach {this}: " +
"It deals 1 damage to any target. Return {this} to its owner's hand.\"",
new RazorBoomerangEffect(), new TargetAnyTarget(),
new UnattachCost(), new TapSourceCost()
)));

View file

@ -12,7 +12,7 @@ import mage.cards.CardSetInfo;
import mage.constants.CardType;
import mage.constants.SubType;
import mage.constants.Zone;
import mage.filter.common.FilterControlledLandPermanent;
import mage.filter.StaticFilters;
import mage.target.TargetPermanent;
import java.util.UUID;
@ -32,8 +32,8 @@ public final class RuinGhost extends CardImpl {
// {W}, {T}: Exile target land you control, then return it to the battlefield under your control.
Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new ExileTargetForSourceEffect(), new ManaCostsImpl("{W"));
ability.addCost(new TapSourceCost());
ability.addEffect(new ReturnToBattlefieldUnderYourControlTargetEffect(false));
ability.addTarget(new TargetPermanent(new FilterControlledLandPermanent()));
ability.addEffect(new ReturnToBattlefieldUnderYourControlTargetEffect(false).concatBy(", then"));
ability.addTarget(new TargetPermanent(StaticFilters.FILTER_CONTROLLED_PERMANENT_LAND));
this.addAbility(ability);
}

View file

@ -20,7 +20,7 @@ import mage.filter.common.FilterCreaturePermanent;
*/
public final class SeascapeAerialist extends CardImpl {
private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("Ally creatures you control");
private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("have Ally creatures you control");
static {
filter.add(SubType.ALLY.getPredicate());
@ -36,7 +36,7 @@ public final class SeascapeAerialist extends CardImpl {
this.power = new MageInt(2);
this.toughness = new MageInt(3);
this.addAbility(new AllyEntersBattlefieldTriggeredAbility(new GainAbilityAllEffect(FlyingAbility.getInstance(), Duration.EndOfTurn, filter).setText("you may have Ally creatures you control gain flying until end of turn"), true).setAbilityWord(null));
this.addAbility(new AllyEntersBattlefieldTriggeredAbility(new GainAbilityAllEffect(FlyingAbility.getInstance(), Duration.EndOfTurn, filter), true).setAbilityWord(null));
}
private SeascapeAerialist(final SeascapeAerialist card) {

View file

@ -1,9 +1,9 @@
package mage.cards.s;
import java.util.UUID;
import mage.MageInt;
import mage.abilities.Ability;
import mage.abilities.common.SimpleStaticAbility;
import mage.abilities.condition.Condition;
import mage.abilities.condition.common.PermanentsOnTheBattlefieldCondition;
import mage.abilities.decorator.ConditionalContinuousEffect;
import mage.abilities.effects.common.continuous.GainAbilitySourceEffect;
@ -13,25 +13,20 @@ import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
import mage.constants.CardType;
import mage.constants.SubType;
import mage.constants.Zone;
import mage.filter.common.FilterControlledPermanent;
import java.util.UUID;
/**
*
* @author North, nantuko
*/
public final class SejiriMerfolk extends CardImpl {
private static final String rule1 = "As long as you control a Plains, {this} has first strike.";
private static final String rule2 = "As long as you control a Plains, {this} has lifelink.";
private static final FilterControlledPermanent filter = new FilterControlledPermanent("Plains");
static {
filter.add(SubType.PLAINS.getPredicate());
}
private static final FilterControlledPermanent filter = new FilterControlledPermanent(SubType.PLAINS);
private static final Condition condition = new PermanentsOnTheBattlefieldCondition(filter);
public SejiriMerfolk(UUID ownerId, CardSetInfo setInfo) {
super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{1}{U}");
super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{1}{U}");
this.subtype.add(SubType.MERFOLK);
this.subtype.add(SubType.SOLDIER);
@ -39,11 +34,14 @@ public final class SejiriMerfolk extends CardImpl {
this.power = new MageInt(2);
this.toughness = new MageInt(1);
ConditionalContinuousEffect effect1 = new ConditionalContinuousEffect(new GainAbilitySourceEffect(LifelinkAbility.getInstance()), new PermanentsOnTheBattlefieldCondition(filter), rule1);
this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, effect1));
ConditionalContinuousEffect effect2 = new ConditionalContinuousEffect(new GainAbilitySourceEffect(FirstStrikeAbility.getInstance()), new PermanentsOnTheBattlefieldCondition(filter), rule2);
this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, effect2));
Ability ability = new SimpleStaticAbility(new ConditionalContinuousEffect(
new GainAbilitySourceEffect(LifelinkAbility.getInstance()), condition,
"as long as you control a Plains, {this} has first strike"
));
ability.addEffect(new ConditionalContinuousEffect(new GainAbilitySourceEffect(
FirstStrikeAbility.getInstance()), condition, "and lifelink"
));
this.addAbility(ability);
}
private SejiriMerfolk(final SejiriMerfolk card) {

View file

@ -27,7 +27,7 @@ public final class SpellContortion extends CardImpl {
// Counter target spell unless its controller pays {2}. Draw a card for each time Spell Contortion was kicked.
this.getSpellAbility().addEffect(new CounterUnlessPaysEffect(new GenericManaCost(2)));
this.getSpellAbility().addEffect(new DrawCardSourceControllerEffect(MultikickerCount.instance));
this.getSpellAbility().addEffect(new DrawCardSourceControllerEffect(MultikickerCount.instance).setText("draw a card for each time {this} was kicked"));
this.getSpellAbility().addTarget(new TargetSpell());
}

View file

@ -1,33 +1,31 @@
package mage.cards.t;
import java.util.UUID;
import mage.abilities.common.SimpleStaticAbility;
import mage.abilities.effects.Effect;
import mage.abilities.effects.common.continuous.GainAbilityAllEffect;
import mage.abilities.keyword.IndestructibleAbility;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
import mage.constants.CardType;
import mage.constants.Duration;
import mage.constants.Zone;
import mage.filter.FilterPermanent;
import mage.filter.common.FilterLandPermanent;
import java.util.UUID;
/**
*
* @author North
*/
public final class TerraEternal extends CardImpl {
public TerraEternal(UUID ownerId, CardSetInfo setInfo) {
super(ownerId,setInfo,new CardType[]{CardType.ENCHANTMENT},"{2}{W}");
private static final FilterPermanent filter = new FilterLandPermanent("all lands");
public TerraEternal(UUID ownerId, CardSetInfo setInfo) {
super(ownerId, setInfo, new CardType[]{CardType.ENCHANTMENT}, "{2}{W}");
// All lands are indestructible.
FilterLandPermanent filter = new FilterLandPermanent("All lands");
Effect effect = new GainAbilityAllEffect(IndestructibleAbility.getInstance(), Duration.WhileOnBattlefield, filter, false);
effect.setText("All lands are indestructible");
this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, effect));
this.addAbility(new SimpleStaticAbility(new GainAbilityAllEffect(
IndestructibleAbility.getInstance(), Duration.WhileOnBattlefield, filter, false
)));
}
private TerraEternal(final TerraEternal card) {

View file

@ -26,7 +26,7 @@ import mage.target.common.TargetCreaturePermanent;
*/
public final class TideforceElemental extends CardImpl {
private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("another creature");
private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("another target creature");
static {
filter.add(AnotherPredicate.instance);

View file

@ -34,7 +34,7 @@ public final class Twitch extends CardImpl {
// Draw a card.
this.getSpellAbility().addEffect(new MayTapOrUntapTargetEffect());
this.getSpellAbility().addTarget(new TargetPermanent(filter));
this.getSpellAbility().addEffect(new DrawCardSourceControllerEffect(1));
this.getSpellAbility().addEffect(new DrawCardSourceControllerEffect(1).concatBy("<br>"));
}
private Twitch(final Twitch card) {

View file

@ -21,7 +21,7 @@ public final class VeteransReflexes extends CardImpl {
super(ownerId,setInfo,new CardType[]{CardType.INSTANT},"{W}");
this.getSpellAbility().addEffect(new BoostTargetEffect(1, 1, Duration.EndOfTurn));
this.getSpellAbility().addEffect(new UntapTargetEffect());
this.getSpellAbility().addEffect(new UntapTargetEffect().setText("untap that creature"));
this.getSpellAbility().addTarget(new TargetCreaturePermanent());
}

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 = "ZEN"; // check all abilities and output cards with wrong abilities texts;
private static final String FULL_ABILITIES_CHECK_SET_CODE = "WWK"; // 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

@ -81,7 +81,7 @@ public class DiscardTargetEffect extends OneShotEffect {
sb.append("target ").append(mode.getTargets().get(0).getTargetName());
}
sb.append(" discards ");
if (amount.toString().equals("1")) {
if (amount.toString().equals("1") || amount.toString().equals("a")) {
sb.append("a card");
} else {
sb.append(CardUtil.numberToText(amount.toString())).append(" cards");