[M20] various text fixes

This commit is contained in:
Evan Kranzler 2020-10-08 09:15:38 -04:00
parent 50a0954606
commit 8c7d7f0b77
9 changed files with 34 additions and 28 deletions

View file

@ -59,7 +59,7 @@ class AngelOfVitalityEffect extends ReplacementEffectImpl {
AngelOfVitalityEffect() { AngelOfVitalityEffect() {
super(Duration.WhileOnBattlefield, Outcome.Benefit); super(Duration.WhileOnBattlefield, Outcome.Benefit);
staticText = "If you would gain life, you gain that much life plus one instead"; staticText = "If you would gain life, you gain that much life plus 1 instead";
} }
private AngelOfVitalityEffect(final AngelOfVitalityEffect effect) { private AngelOfVitalityEffect(final AngelOfVitalityEffect effect) {

View file

@ -1,27 +1,29 @@
package mage.cards.a; package mage.cards.a;
import java.util.UUID;
import mage.abilities.dynamicvalue.common.StaticValue; import mage.abilities.dynamicvalue.common.StaticValue;
import mage.abilities.effects.common.LookLibraryAndPickControllerEffect; import mage.abilities.effects.common.LookLibraryAndPickControllerEffect;
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.Zone; import mage.constants.Zone;
import mage.filter.FilterCard; import mage.filter.StaticFilters;
import java.util.UUID;
/** /**
*
* @author fireshoes * @author fireshoes
*/ */
public final class Anticipate extends CardImpl { public final class Anticipate extends CardImpl {
public Anticipate(UUID ownerId, CardSetInfo setInfo) { public Anticipate(UUID ownerId, CardSetInfo setInfo) {
super(ownerId,setInfo,new CardType[]{CardType.INSTANT},"{1}{U}"); super(ownerId, setInfo, new CardType[]{CardType.INSTANT}, "{1}{U}");
// 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. // 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.
this.getSpellAbility().addEffect(new LookLibraryAndPickControllerEffect this.getSpellAbility().addEffect(new LookLibraryAndPickControllerEffect(
(StaticValue.get(3), false, StaticValue.get(1), new FilterCard(), Zone.LIBRARY, false, false)); 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"));
} }
public Anticipate(final Anticipate card) { public Anticipate(final Anticipate card) {

View file

@ -55,12 +55,12 @@ public final class CavalierOfNight extends CardImpl {
// When Cavalier of Night enters the battlefield, you may sacrifice another creature. When you do, destroy target creature an opponent controls. // When Cavalier of Night enters the battlefield, you may sacrifice another creature. When you do, destroy target creature an opponent controls.
ReflexiveTriggeredAbility triggeredAbility = new ReflexiveTriggeredAbility( ReflexiveTriggeredAbility triggeredAbility = new ReflexiveTriggeredAbility(
new DestroyTargetEffect(), false, "Sacrifice a creature?" new DestroyTargetEffect(), false, "destroy target creature an opponent controls"
); );
triggeredAbility.addTarget(new TargetOpponentsCreaturePermanent()); triggeredAbility.addTarget(new TargetOpponentsCreaturePermanent());
this.addAbility(new EntersBattlefieldTriggeredAbility(new DoWhenCostPaid( this.addAbility(new EntersBattlefieldTriggeredAbility(new DoWhenCostPaid(
triggeredAbility, new SacrificeTargetCost(new TargetControlledPermanent(filter)), triggeredAbility, new SacrificeTargetCost(new TargetControlledPermanent(filter)),
"destroy target creature an opponent controls" "Sacrifice a creature?"
))); )));
// When Cavalier of Night dies, return target creature card with converted mana cost 3 or less from your graveyard to the battlefield. // When Cavalier of Night dies, return target creature card with converted mana cost 3 or less from your graveyard to the battlefield.

View file

@ -67,7 +67,7 @@ class ChandraFlamesFuryEffect extends OneShotEffect {
ChandraFlamesFuryEffect() { ChandraFlamesFuryEffect() {
super(Outcome.Benefit); super(Outcome.Benefit);
staticText = "deals 4 damage to target creature and 2 damage to that creature's controller."; staticText = "{this} deals 4 damage to target creature and 2 damage to that creature's controller.";
} }
private ChandraFlamesFuryEffect(final ChandraFlamesFuryEffect effect) { private ChandraFlamesFuryEffect(final ChandraFlamesFuryEffect effect) {

View file

@ -1,6 +1,5 @@
package mage.cards.i; package mage.cards.i;
import java.util.UUID;
import mage.abilities.Ability; import mage.abilities.Ability;
import mage.abilities.common.AsEntersBattlefieldAbility; import mage.abilities.common.AsEntersBattlefieldAbility;
import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.common.SimpleActivatedAbility;
@ -19,6 +18,8 @@ import mage.filter.common.FilterCreaturePermanent;
import mage.filter.predicate.mageobject.ChosenSubtypePredicate; import mage.filter.predicate.mageobject.ChosenSubtypePredicate;
import mage.game.Game; import mage.game.Game;
import java.util.UUID;
/** /**
* @author TheElk801 * @author TheElk801
*/ */
@ -39,14 +40,13 @@ public final class IconOfAncestry extends CardImpl {
this.addAbility(new AsEntersBattlefieldAbility(new ChooseCreatureTypeEffect(Outcome.BoostCreature))); this.addAbility(new AsEntersBattlefieldAbility(new ChooseCreatureTypeEffect(Outcome.BoostCreature)));
// Creatures you control of the chosen type get +1/+1. // Creatures you control of the chosen type get +1/+1.
this.addAbility(new SimpleStaticAbility( this.addAbility(new SimpleStaticAbility(new BoostAllEffect(
new BoostAllEffect(1, 1, Duration.WhileOnBattlefield, filter, false) 1, 1, Duration.WhileOnBattlefield, filter, false
)); )));
// {3}, {T}: Look at the top three cards of your library. You may reveal a creature card of the // {3}, {T}: Look at the top three cards of your library. You may reveal a creature card of the
// chosen type from among them and put it into your hand. Put the rest on the bottom of your library in a random order. // chosen type from among them and put it into your hand. Put the rest on the bottom of your library in a random order.
FilterCreatureCard filter2 = new FilterCreatureCard("creature card that matches the chosen subtype"); Ability ability = new SimpleActivatedAbility(new IconOfAncestryEffect(), new GenericManaCost(3));
Ability ability = new SimpleActivatedAbility(new IconOfAncestryEffect(filter2), new GenericManaCost(3));
ability.addCost(new TapSourceCost()); ability.addCost(new TapSourceCost());
this.addAbility(ability); this.addAbility(ability);
} }
@ -63,22 +63,26 @@ public final class IconOfAncestry extends CardImpl {
class IconOfAncestryEffect extends LookLibraryAndPickControllerEffect { class IconOfAncestryEffect extends LookLibraryAndPickControllerEffect {
public IconOfAncestryEffect(FilterCreatureCard filter) { public IconOfAncestryEffect() {
super(StaticValue.get(3), false, StaticValue.get(1), filter, Zone.LIBRARY, false, super(StaticValue.get(3), false, StaticValue.get(1), new FilterCreatureCard(
true, false, Zone.HAND, true, false, false); "creature card that matches the chosen subtype"
), Zone.LIBRARY, false, true, false,
Zone.HAND, true, false, false);
this.setOutcome(Outcome.AIDontUseIt); this.setOutcome(Outcome.AIDontUseIt);
this.setBackInRandomOrder(true); this.setBackInRandomOrder(true);
staticText = "look at the top three cards of your library. " +
"You may reveal a creature card of the chosen type from among them and put it into your hand. " +
"Put the rest on the bottom of your library in a random order";
} }
@Override @Override
public boolean apply(Game game, Ability source) { public boolean apply(Game game, Ability source) {
SubType subtype = (SubType) game.getState().getValue(source.getSourceId() + "_type"); SubType subtype = (SubType) game.getState().getValue(source.getSourceId() + "_type");
if (subtype != null) { if (subtype == null) {
filter.add(subtype.getPredicate());
filter.setMessage("creature card of subtype " + subtype.toString());
} else {
return false; return false;
} }
filter.add(subtype.getPredicate());
filter.setMessage(subtype.toString() + " creature card");
return super.apply(game, source); return super.apply(game, source);
} }

View file

@ -38,7 +38,7 @@ public final class VivienNaturesAvenger extends CardImpl {
// 1: Reveal cards from the top of your library until you reveal a creature card. Put that card into your hand and the rest on the bottom of your library in a random order. // 1: Reveal cards from the top of your library until you reveal a creature card. Put that card into your hand and the rest on the bottom of your library in a random order.
this.addAbility(new LoyaltyAbility(new RevealCardsFromLibraryUntilEffect( this.addAbility(new LoyaltyAbility(new RevealCardsFromLibraryUntilEffect(
StaticFilters.FILTER_CARD_CREATURE_A, Zone.HAND, Zone.HAND, false, false StaticFilters.FILTER_CARD_CREATURE, Zone.HAND, Zone.HAND, false, false
), -1)); ), -1));
// 6: Target creature gets +10/+10 and gains trample until end of turn. // 6: Target creature gets +10/+10 and gains trample until end of turn.

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

@ -22,7 +22,7 @@ public class CantBeCounteredSourceAbility extends StaticAbility {
@Override @Override
public String getRule() { public String getRule() {
return "{this} can't be countered."; return "This spell can't be countered.";
} }
@Override @Override

View file

@ -110,7 +110,7 @@ public class RevealCardsFromLibraryUntilEffect extends OneShotEffect {
switch (zoneToPutCard) { switch (zoneToPutCard) {
case HAND: { case HAND: {
sb.append("into your hand "); sb.append("into your hand");
break; break;
} }
case BATTLEFIELD: { case BATTLEFIELD: {