[ZNR] various text fixes

This commit is contained in:
Evan Kranzler 2020-10-07 20:04:34 -04:00
parent 665528b251
commit 6a3240fad3
12 changed files with 38 additions and 21 deletions

View file

@ -4,7 +4,7 @@ import mage.MageInt;
import mage.MageObjectReference; import mage.MageObjectReference;
import mage.abilities.Ability; import mage.abilities.Ability;
import mage.abilities.common.BeginningOfEndStepTriggeredAbility; import mage.abilities.common.BeginningOfEndStepTriggeredAbility;
import mage.abilities.common.DealsCombatDamageToAPlayerTriggeredAbility; import mage.abilities.common.DealsDamageToAPlayerAllTriggeredAbility;
import mage.abilities.condition.Condition; import mage.abilities.condition.Condition;
import mage.abilities.decorator.ConditionalInterveningIfTriggeredAbility; import mage.abilities.decorator.ConditionalInterveningIfTriggeredAbility;
import mage.abilities.effects.OneShotEffect; import mage.abilities.effects.OneShotEffect;
@ -13,6 +13,7 @@ import mage.abilities.keyword.FlyingAbility;
import mage.cards.CardImpl; import mage.cards.CardImpl;
import mage.cards.CardSetInfo; import mage.cards.CardSetInfo;
import mage.constants.*; import mage.constants.*;
import mage.filter.StaticFilters;
import mage.game.Game; import mage.game.Game;
import mage.game.events.GameEvent; import mage.game.events.GameEvent;
import mage.players.Player; import mage.players.Player;
@ -40,8 +41,9 @@ public final class AngelOfDestiny extends CardImpl {
this.addAbility(DoubleStrikeAbility.getInstance()); this.addAbility(DoubleStrikeAbility.getInstance());
// Whenever a creature you control deals combat damage to a player, you and that player each gain that much life. // Whenever a creature you control deals combat damage to a player, you and that player each gain that much life.
this.addAbility(new DealsCombatDamageToAPlayerTriggeredAbility( this.addAbility(new DealsDamageToAPlayerAllTriggeredAbility(
new AngelOfDestinyGainLifeEffect(), false, true new AngelOfDestinyGainLifeEffect(), StaticFilters.FILTER_CONTROLLED_A_CREATURE,
false, SetTargetPointer.NONE, true, true
)); ));
// At the beginning of your end step, if you have at least 15 life more than your starting life total, each player Angel of Destiny attacked this turn loses the game. // At the beginning of your end step, if you have at least 15 life more than your starting life total, each player Angel of Destiny attacked this turn loses the game.

View file

@ -17,7 +17,7 @@ public final class Deliberate extends CardImpl {
super(ownerId, setInfo, new CardType[]{CardType.INSTANT}, "{1}{U}"); super(ownerId, setInfo, new CardType[]{CardType.INSTANT}, "{1}{U}");
// Scry 2, then draw a card. // Scry 2, then draw a card.
this.getSpellAbility().addEffect(new ScryEffect(2)); this.getSpellAbility().addEffect(new ScryEffect(2).setText("scry 2"));
this.getSpellAbility().addEffect(new DrawCardSourceControllerEffect(1).concatBy(", then")); this.getSpellAbility().addEffect(new DrawCardSourceControllerEffect(1).concatBy(", then"));
} }

View file

@ -1,19 +1,19 @@
package mage.cards.e; package mage.cards.e;
import java.util.UUID;
import mage.MageInt; import mage.MageInt;
import mage.abilities.common.EntersBattlefieldTriggeredAbility; import mage.abilities.common.EntersBattlefieldTriggeredAbility;
import mage.abilities.dynamicvalue.common.PartyCount; import mage.abilities.dynamicvalue.common.PartyCount;
import mage.abilities.effects.common.counter.AddCountersSourceEffect; import mage.abilities.effects.common.counter.AddCountersSourceEffect;
import mage.constants.SubType;
import mage.abilities.keyword.FlyingAbility; import mage.abilities.keyword.FlyingAbility;
import mage.abilities.keyword.VigilanceAbility; import mage.abilities.keyword.VigilanceAbility;
import mage.cards.CardImpl; import mage.cards.CardImpl;
import mage.cards.CardSetInfo; import mage.cards.CardSetInfo;
import mage.constants.CardType; import mage.constants.CardType;
import mage.constants.SubType;
import mage.counters.CounterType; import mage.counters.CounterType;
import java.util.UUID;
/** /**
* @author TheElk801 * @author TheElk801
*/ */
@ -36,7 +36,7 @@ public final class EmeriaCaptain extends CardImpl {
// When Emeria Captain enters the battlefield, put a +1/+1 counter on it for each creature in your party. // When Emeria Captain enters the battlefield, put a +1/+1 counter on it for each creature in your party.
this.addAbility(new EntersBattlefieldTriggeredAbility(new AddCountersSourceEffect( this.addAbility(new EntersBattlefieldTriggeredAbility(new AddCountersSourceEffect(
CounterType.P1P1.createInstance(), PartyCount.instance, false CounterType.P1P1.createInstance(), PartyCount.instance, false
))); ).setText("put a +1/+1 counter on it for each creature in your party. " + PartyCount.getReminder())));
} }
private EmeriaCaptain(final EmeriaCaptain card) { private EmeriaCaptain(final EmeriaCaptain card) {

View file

@ -28,9 +28,10 @@ public final class FarsightAdept extends CardImpl {
// When Farsight Adept enters the battlefield, you and target opponent each draw a card. // When Farsight Adept enters the battlefield, you and target opponent each draw a card.
Ability ability = new EntersBattlefieldTriggeredAbility( Ability ability = new EntersBattlefieldTriggeredAbility(
new DrawCardSourceControllerEffect(1).setText("you and") new DrawCardSourceControllerEffect(1).setText("you")
); );
ability.addEffect(new DrawCardTargetEffect(1).setText("target opponent each draw a card")); ability.addEffect(new DrawCardTargetEffect(1)
.setText("target opponent each draw a card").concatBy("and"));
ability.addTarget(new TargetOpponent()); ability.addTarget(new TargetOpponent());
this.addAbility(ability); this.addAbility(ability);
} }

View file

@ -37,7 +37,7 @@ public final class InscriptionOfInsight extends CardImpl {
this.getSpellAbility().addTarget(new TargetCreaturePermanent(0, 2)); this.getSpellAbility().addTarget(new TargetCreaturePermanent(0, 2));
// Scry 2, then draw two cards. // Scry 2, then draw two cards.
Mode mode = new Mode(new ScryEffect(2)); Mode mode = new Mode(new ScryEffect(2).setText("scry 2"));
mode.addEffect(new DrawCardSourceControllerEffect(2).concatBy(", then")); mode.addEffect(new DrawCardSourceControllerEffect(2).concatBy(", then"));
this.getSpellAbility().addMode(mode); this.getSpellAbility().addMode(mode);

View file

@ -33,7 +33,7 @@ public final class MalakirBloodPriest extends CardImpl {
); );
ability.addEffect(new GainLifeEffect( ability.addEffect(new GainLifeEffect(
PartyCount.instance, "and you gain X life, " + PartyCount.instance, "and you gain X life, " +
"where X is your number of creatures in your party. " "where X is the number of creatures in your party. "
+ PartyCount.getReminder() + PartyCount.getReminder()
)); ));
this.addAbility(ability.addHint(PartyCountHint.instance)); this.addAbility(ability.addHint(PartyCountHint.instance));

View file

@ -11,7 +11,8 @@ import mage.cards.CardSetInfo;
import mage.constants.CardType; import mage.constants.CardType;
import mage.constants.SubType; import mage.constants.SubType;
import mage.constants.TargetController; import mage.constants.TargetController;
import mage.filter.StaticFilters; import mage.filter.common.FilterControlledLandPermanent;
import mage.filter.common.FilterControlledPermanent;
import mage.target.common.TargetControlledPermanent; import mage.target.common.TargetControlledPermanent;
import java.util.UUID; import java.util.UUID;
@ -21,6 +22,9 @@ import java.util.UUID;
*/ */
public final class PyroclasticHellion extends CardImpl { public final class PyroclasticHellion extends CardImpl {
private static final FilterControlledPermanent filter
= new FilterControlledLandPermanent("a land you control");
public PyroclasticHellion(UUID ownerId, CardSetInfo setInfo) { public PyroclasticHellion(UUID ownerId, CardSetInfo setInfo) {
super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{4}{R}"); super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{4}{R}");
@ -34,7 +38,7 @@ public final class PyroclasticHellion extends CardImpl {
new DamagePlayersEffect(2, TargetController.OPPONENT), new DamagePlayersEffect(2, TargetController.OPPONENT),
false, "{this} deals 2 damage to each opponent" false, "{this} deals 2 damage to each opponent"
), new ReturnToHandChosenControlledPermanentCost( ), new ReturnToHandChosenControlledPermanentCost(
new TargetControlledPermanent(StaticFilters.FILTER_CONTROLLED_PERMANENT_LAND) new TargetControlledPermanent(filter)
), "Return a land you control to its owner's hand?") ), "Return a land you control to its owner's hand?")
)); ));
} }

View file

@ -40,7 +40,7 @@ public final class VerazolTheSplitCurrent extends CardImpl {
this.addAbility(new SpellCastControllerTriggeredAbility( this.addAbility(new SpellCastControllerTriggeredAbility(
new DoIfCostPaid( new DoIfCostPaid(
new CopyTargetSpellEffect(false, true) new CopyTargetSpellEffect(false, true)
.withSpellName("that spell"), .setText("copy that spell. You may choose new targets for that copy"),
new RemoveCountersSourceCost(CounterType.P1P1.createInstance(2)) new RemoveCountersSourceCost(CounterType.P1P1.createInstance(2))
), StaticFilters.FILTER_SPELL_KICKED_A, false, true ), StaticFilters.FILTER_SPELL_KICKED_A, false, true
)); ));

View file

@ -52,7 +52,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 = "M21"; // check all abilities and output cards with wrong abilities texts; private static final String FULL_ABILITIES_CHECK_SET_CODE = "ZNR"; // check all abilities and output cards with wrong abilities texts;
private static final boolean AUTO_FIX_SAMPLE_DECKS = false; // debug only: fix sample decks if it contains errors like wrong card numbers private static final boolean AUTO_FIX_SAMPLE_DECKS = false; // debug only: fix sample decks if it contains errors like wrong card numbers
private static final HashMap<String, Set<String>> skipCheckLists = new HashMap<>(); private static final HashMap<String, Set<String>> skipCheckLists = new HashMap<>();

View file

@ -23,7 +23,7 @@ public class RemoveCountersSourceCost extends CostImpl {
public RemoveCountersSourceCost(Counter counter) { public RemoveCountersSourceCost(Counter counter) {
this.amount = counter.getCount(); this.amount = counter.getCount();
this.name = counter.getName(); this.name = counter.getName();
this.text = new StringBuilder("Remove ").append((amount == 1 ? "a" : CardUtil.numberToText(amount))) this.text = new StringBuilder("remove ").append((amount == 1 ? "a" : CardUtil.numberToText(amount)))
.append(' ').append(name).append(" counter").append((amount != 1 ? "s" : "")) .append(' ').append(name).append(" counter").append((amount != 1 ? "s" : ""))
.append(" from {this}").toString(); .append(" from {this}").toString();

View file

@ -1,6 +1,7 @@
package mage.abilities.effects.common; package mage.abilities.effects.common;
import mage.abilities.Ability; import mage.abilities.Ability;
import mage.abilities.Mode;
import mage.abilities.dynamicvalue.DynamicValue; import mage.abilities.dynamicvalue.DynamicValue;
import mage.abilities.dynamicvalue.common.StaticValue; import mage.abilities.dynamicvalue.common.StaticValue;
import mage.abilities.effects.OneShotEffect; import mage.abilities.effects.OneShotEffect;
@ -23,7 +24,6 @@ public class MillCardsTargetEffect extends OneShotEffect {
public MillCardsTargetEffect(DynamicValue numberCards) { public MillCardsTargetEffect(DynamicValue numberCards) {
super(Outcome.Discard); super(Outcome.Discard);
this.numberCards = numberCards; this.numberCards = numberCards;
this.staticText = setText();
} }
public MillCardsTargetEffect(final MillCardsTargetEffect effect) { public MillCardsTargetEffect(final MillCardsTargetEffect effect) {
@ -46,8 +46,18 @@ public class MillCardsTargetEffect extends OneShotEffect {
return false; return false;
} }
private String setText() { @Override
StringBuilder sb = new StringBuilder("target player mills "); public String getText(Mode mode) {
if (staticText != null && !staticText.isEmpty()) {
return staticText;
}
StringBuilder sb = new StringBuilder("target ");
if (!mode.getTargets().isEmpty()) {
sb.append(mode.getTargets().get(0).getTargetName());
} else {
sb.append("player");
}
sb.append(" mills ");
if (numberCards.toString().equals("1")) { if (numberCards.toString().equals("1")) {
sb.append("a card"); sb.append("a card");
} else { } else {