[IKO] various text fixes

This commit is contained in:
Evan Kranzler 2022-03-02 21:18:10 -05:00
parent 2e44b3246c
commit 68cf2a36c3
17 changed files with 30 additions and 37 deletions

View file

@ -44,7 +44,9 @@ public final class AlertHeedbonder extends CardImpl {
// At the beginning of your end step, you gain 1 life for each creature you control with vigilance. // At the beginning of your end step, you gain 1 life for each creature you control with vigilance.
this.addAbility(new BeginningOfEndStepTriggeredAbility( this.addAbility(new BeginningOfEndStepTriggeredAbility(
new GainLifeEffect(xValue), TargetController.YOU, false new GainLifeEffect(xValue)
.setText("you gain 1 life for each creature you control with vigilance"),
TargetController.YOU, false
)); ));
} }

View file

@ -34,7 +34,7 @@ public final class Archipelagore extends CardImpl {
// Whenever this creature mutates, tap up to X target creatures, where X is the number of times this creature has mutated. Those creatures don't untap during their controller's next untap step. // Whenever this creature mutates, tap up to X target creatures, where X is the number of times this creature has mutated. Those creatures don't untap during their controller's next untap step.
Ability ability = new MutatesSourceTriggeredAbility(new TapTargetEffect( Ability ability = new MutatesSourceTriggeredAbility(new TapTargetEffect(
"up to X target creatures, where X is the number of times this creature has mutated." "tap up to X target creatures, where X is the number of times this creature has mutated."
)); ));
ability.addEffect(new DontUntapInControllersNextUntapStepTargetEffect("Those creatures")); ability.addEffect(new DontUntapInControllersNextUntapStepTargetEffect("Those creatures"));
ability.setTargetAdjuster(ArchipelagoreAdjuster.instance); ability.setTargetAdjuster(ArchipelagoreAdjuster.instance);

View file

@ -12,9 +12,7 @@ import mage.cards.CardSetInfo;
import mage.constants.CardType; import mage.constants.CardType;
import mage.constants.Outcome; import mage.constants.Outcome;
import mage.constants.SubType; import mage.constants.SubType;
import mage.filter.common.FilterControlledCreaturePermanent; import mage.filter.StaticFilters;
import mage.filter.common.FilterControlledPermanent;
import mage.filter.predicate.mageobject.AnotherPredicate;
import mage.game.Game; import mage.game.Game;
import mage.game.permanent.Permanent; import mage.game.permanent.Permanent;
import mage.players.Player; import mage.players.Player;
@ -27,12 +25,6 @@ import java.util.UUID;
*/ */
public final class BushmeatPoacher extends CardImpl { public final class BushmeatPoacher extends CardImpl {
private static final FilterControlledPermanent filter = new FilterControlledCreaturePermanent("another creature");
static {
filter.add(AnotherPredicate.instance);
}
public BushmeatPoacher(UUID ownerId, CardSetInfo setInfo) { public BushmeatPoacher(UUID ownerId, CardSetInfo setInfo) {
super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{3}{B}"); super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{3}{B}");
@ -44,7 +36,7 @@ public final class BushmeatPoacher extends CardImpl {
// {1}, {T}, Sacrifice another creature: You gain life equal to that creature's toughness. Draw a card. // {1}, {T}, Sacrifice another creature: You gain life equal to that creature's toughness. Draw a card.
Ability ability = new SimpleActivatedAbility(new BushmeatPoacherEffect(), new GenericManaCost(1)); Ability ability = new SimpleActivatedAbility(new BushmeatPoacherEffect(), new GenericManaCost(1));
ability.addCost(new TapSourceCost()); ability.addCost(new TapSourceCost());
ability.addCost(new SacrificeTargetCost(new TargetControlledPermanent(filter))); ability.addCost(new SacrificeTargetCost(new TargetControlledPermanent(StaticFilters.FILTER_CONTROLLED_ANOTHER_CREATURE)));
this.addAbility(ability); this.addAbility(ability);
} }
@ -62,7 +54,7 @@ class BushmeatPoacherEffect extends OneShotEffect {
BushmeatPoacherEffect() { BushmeatPoacherEffect() {
super(Outcome.Benefit); super(Outcome.Benefit);
staticText = "you gain life equal to that creature's toughness. Draw a card"; staticText = "you gain life equal to the sacrificed creature's toughness. Draw a card";
} }
private BushmeatPoacherEffect(final BushmeatPoacherEffect effect) { private BushmeatPoacherEffect(final BushmeatPoacherEffect effect) {

View file

@ -25,7 +25,7 @@ public final class ChanneledForce extends CardImpl {
super(ownerId, setInfo, new CardType[]{CardType.INSTANT}, "{2}{U}{R}"); super(ownerId, setInfo, new CardType[]{CardType.INSTANT}, "{2}{U}{R}");
// As an additional cost to cast this spell, discard X cards. // As an additional cost to cast this spell, discard X cards.
this.getSpellAbility().addCost(new DiscardXTargetCost(StaticFilters.FILTER_CARD_CARDS, true)); this.getSpellAbility().addCost(new DiscardXTargetCost(StaticFilters.FILTER_CARD_CARDS));
// Target player draws X cards. Channeled Force deals X damage to up to one target creature or planeswalker. // Target player draws X cards. Channeled Force deals X damage to up to one target creature or planeswalker.
this.getSpellAbility().addEffect(new ChanneledForceEffect()); this.getSpellAbility().addEffect(new ChanneledForceEffect());

View file

@ -38,7 +38,7 @@ public final class EscapeProtocol extends CardImpl {
ReflexiveTriggeredAbility ability = new ReflexiveTriggeredAbility( ReflexiveTriggeredAbility ability = new ReflexiveTriggeredAbility(
new ExileTargetForSourceEffect(), false, new ExileTargetForSourceEffect(), false,
"exile target artifact or creature you control, " + "exile target artifact or creature you control, " +
"then return it to the battlefield under its owner's control." "then return it to the battlefield under its owner's control"
); );
ability.addEffect(new ReturnToBattlefieldUnderOwnerControlTargetEffect(false, false)); ability.addEffect(new ReturnToBattlefieldUnderOwnerControlTargetEffect(false, false));
ability.addTarget(new TargetPermanent(filter)); ability.addTarget(new TargetPermanent(filter));

View file

@ -55,7 +55,7 @@ class ExuberantWolfbearEffect extends OneShotEffect {
ExuberantWolfbearEffect() { ExuberantWolfbearEffect() {
super(Outcome.Benefit); super(Outcome.Benefit);
staticText = "change the base power and toughness of target Human you control " + staticText = "you may change the base power and toughness of target Human you control " +
"to {this}'s power and toughness until end of turn"; "to {this}'s power and toughness until end of turn";
} }

View file

@ -27,8 +27,7 @@ public final class FerociousTigorilla extends CardImpl {
// Ferocious Tigorilla enters the battlefield with your choice of a trample counter or a menace counter on it. // Ferocious Tigorilla enters the battlefield with your choice of a trample counter or a menace counter on it.
this.addAbility(new EntersBattlefieldAbility( this.addAbility(new EntersBattlefieldAbility(
new AddCounterChoiceSourceEffect(CounterType.TRAMPLE, CounterType.MENACE), new AddCounterChoiceSourceEffect(CounterType.TRAMPLE, CounterType.MENACE),
"Ferocious Tigorilla enters the battlefield with your choice of " + "with your choice of a trample counter or a menace counter on it. " +
"a trample counter or a menace counter on it. " +
"<i>(A creature with menace can't be blocked except by two or more creatures.)</i>" "<i>(A creature with menace can't be blocked except by two or more creatures.)</i>"
)); ));
} }

View file

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

View file

@ -32,7 +32,7 @@ public final class HuntmasterLiger extends CardImpl {
// Whenever this creature mutates, other creatures you control get +X/+X until end of turn, where X is the number of times this creature has mutated. // Whenever this creature mutates, other creatures you control get +X/+X until end of turn, where X is the number of times this creature has mutated.
this.addAbility(new MutatesSourceTriggeredAbility(new BoostControlledEffect( this.addAbility(new MutatesSourceTriggeredAbility(new BoostControlledEffect(
SourceMutatedCount.instance, SourceMutatedCount.instance, Duration.EndOfTurn, SourceMutatedCount.instance, SourceMutatedCount.instance, Duration.EndOfTurn,
StaticFilters.FILTER_PERMANENT_CREATURE, true, true StaticFilters.FILTER_PERMANENT_CREATURES, true, true
))); )));
} }

View file

@ -80,7 +80,7 @@ enum KaheeraTheOrphanguardCompanionCondition implements CompanionCondition {
@Override @Override
public String getRule() { public String getRule() {
return "Each creature card in your starting deck is a Cat, Elemental, Nightmare, Dinosaur or Beast card."; return "Each creature card in your starting deck is a Cat, Elemental, Nightmare, Dinosaur, or Beast card.";
} }
private static final List<SubType> subtypes = Arrays.asList( private static final List<SubType> subtypes = Arrays.asList(

View file

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

View file

@ -8,7 +8,6 @@ import mage.abilities.effects.common.CreateTokenEffect;
import mage.abilities.hint.common.RaidHint; import mage.abilities.hint.common.RaidHint;
import mage.cards.CardImpl; import mage.cards.CardImpl;
import mage.cards.CardSetInfo; import mage.cards.CardSetInfo;
import mage.constants.AbilityWord;
import mage.constants.CardType; import mage.constants.CardType;
import mage.constants.SubType; import mage.constants.SubType;
import mage.game.permanent.token.HumanSoldierToken; import mage.game.permanent.token.HumanSoldierToken;
@ -31,12 +30,10 @@ public final class NightsquadCommando extends CardImpl {
// When Nightsquad Commando enters the battlefield, if you attacked this turn, create a 1/1 white Human Soldier creature token. // When Nightsquad Commando enters the battlefield, if you attacked this turn, create a 1/1 white Human Soldier creature token.
this.addAbility(new ConditionalInterveningIfTriggeredAbility( this.addAbility(new ConditionalInterveningIfTriggeredAbility(
new EntersBattlefieldTriggeredAbility(new CreateTokenEffect(new HumanSoldierToken())), new EntersBattlefieldTriggeredAbility(new CreateTokenEffect(new HumanSoldierToken())),
RaidCondition.instance, "When {this} enters the battlefield, " + RaidCondition.instance, "When {this} enters the battlefield, " +
"if you attacked this turn, create a 1/1 white Human Soldier creature token.") "if you attacked this turn, create a 1/1 white Human Soldier creature token."
.setAbilityWord(AbilityWord.RAID) ).addHint(RaidHint.instance), new PlayerAttackedWatcher());
.addHint(RaidHint.instance),
new PlayerAttackedWatcher());
} }
private NightsquadCommando(final NightsquadCommando card) { private NightsquadCommando(final NightsquadCommando card) {

View file

@ -32,9 +32,12 @@ public final class Porcuparrot extends CardImpl {
this.addAbility(new MutateAbility(this, "{2}{R}")); this.addAbility(new MutateAbility(this, "{2}{R}"));
// {T}: This creature deals X damage to any target, where X is the number of times this creature has mutated. // {T}: This creature deals X damage to any target, where X is the number of times this creature has mutated.
Ability ability = new SimpleActivatedAbility(new DamageTargetEffect( Ability ability = new SimpleActivatedAbility(
SourceMutatedCount.instance, "this creature" new DamageTargetEffect(SourceMutatedCount.instance)
), new TapSourceCost()); .setText("this creature deals X damage to any target, " +
"where X is the number of times this creature has mutated"),
new TapSourceCost()
);
ability.addTarget(new TargetAnyTarget()); ability.addTarget(new TargetAnyTarget());
this.addAbility(ability); this.addAbility(ability);
} }

View file

@ -30,7 +30,7 @@ public final class RegalLeosaur extends CardImpl {
// Whenever this creature mutates, other creatures you control get +2/+1 until end of turn. // Whenever this creature mutates, other creatures you control get +2/+1 until end of turn.
this.addAbility(new MutatesSourceTriggeredAbility( this.addAbility(new MutatesSourceTriggeredAbility(
new BoostControlledEffect(2, 1, Duration.EndOfTurn, false) new BoostControlledEffect(2, 1, Duration.EndOfTurn, true)
)); ));
} }

View file

@ -33,7 +33,7 @@ public final class SeaDasherOctopus extends CardImpl {
// Whenever this creature deals combat damage to a player, draw a card. // Whenever this creature deals combat damage to a player, draw a card.
this.addAbility(new DealsCombatDamageToAPlayerTriggeredAbility( this.addAbility(new DealsCombatDamageToAPlayerTriggeredAbility(
new DrawCardSourceControllerEffect(1), false new DrawCardSourceControllerEffect(1), false
)); ).setTriggerPhrase("Whenever this creature deals combat damage to a player, "));
} }
private SeaDasherOctopus(final SeaDasherOctopus card) { private SeaDasherOctopus(final SeaDasherOctopus card) {

View file

@ -92,7 +92,7 @@ class TitansNestManaAbility extends ActivatedManaAbilityImpl {
TitansNestManaAbility() { TitansNestManaAbility() {
super(Zone.BATTLEFIELD, (BasicManaEffect) new BasicManaEffect( super(Zone.BATTLEFIELD, (BasicManaEffect) new BasicManaEffect(
new TitansNestConditionalMana(), new CardsInControllerGraveyardCount()) new TitansNestConditionalMana(), new CardsInControllerGraveyardCount())
.setText("Add {C}. Spend this mana only to cast a colored spell without {X} in its mana cost."), .setText("Add {C}. Spend this mana only to cast a spell that's one or more colors without {X} in its mana cost."),
new ExileFromGraveCost(new TargetCardInYourGraveyard())); new ExileFromGraveCost(new TargetCardInYourGraveyard()));
this.netMana.add(Mana.ColorlessMana(1)); this.netMana.add(Mana.ColorlessMana(1));
} }
@ -111,7 +111,7 @@ class TitansNestConditionalMana extends ConditionalMana {
TitansNestConditionalMana() { TitansNestConditionalMana() {
super(Mana.ColorlessMana(1)); super(Mana.ColorlessMana(1));
staticText = "Spend this mana only to cast a colored spell without {X} in its mana cost."; staticText = "Spend this mana only to cast a spell that's one or more colors without {X} in its mana cost.";
addCondition(new TitansNestManaCondition()); addCondition(new TitansNestManaCondition());
} }
} }

View file

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