From 518763667208699d93da0ca4c40e70393edd5014 Mon Sep 17 00:00:00 2001 From: Evan Kranzler Date: Tue, 6 Oct 2020 20:12:06 -0400 Subject: [PATCH] [THB] various text fixes --- .../src/mage/cards/a/AphemiaTheCacophony.java | 2 +- Mage.Sets/src/mage/cards/n/NyxHerald.java | 2 +- .../src/mage/cards/p/ProteanThaumaturge.java | 2 +- .../src/mage/cards/r/RageScarredBerserker.java | 3 ++- .../mage/cards/s/SionaCaptainOfThePyleas.java | 2 +- .../src/mage/cards/s/SkophosMazeWarden.java | 2 +- .../src/mage/cards/s/SkophosWarleader.java | 18 +++++++++++++----- .../mage/cards/s/SlaughterPriestOfMogis.java | 18 +++++++++++++----- .../src/mage/cards/s/SwimmerInNightmares.java | 7 ++++--- .../src/mage/cards/t/TreacherousBlessing.java | 2 +- .../src/mage/cards/w/WolfwillowHaven.java | 2 +- .../java/mage/verify/VerifyCardDataTest.java | 4 ++-- .../costs/common/ExileFromGraveCost.java | 6 +++--- 13 files changed, 44 insertions(+), 26 deletions(-) diff --git a/Mage.Sets/src/mage/cards/a/AphemiaTheCacophony.java b/Mage.Sets/src/mage/cards/a/AphemiaTheCacophony.java index 2c308c2955..1176dd0198 100644 --- a/Mage.Sets/src/mage/cards/a/AphemiaTheCacophony.java +++ b/Mage.Sets/src/mage/cards/a/AphemiaTheCacophony.java @@ -24,7 +24,7 @@ import java.util.UUID; */ public final class AphemiaTheCacophony extends CardImpl { - private static final FilterCard filter = new FilterEnchantmentCard(); + private static final FilterCard filter = new FilterEnchantmentCard("an enchantment card"); public AphemiaTheCacophony(UUID ownerId, CardSetInfo setInfo) { super(ownerId, setInfo, new CardType[]{CardType.ENCHANTMENT, CardType.CREATURE}, "{1}{B}"); diff --git a/Mage.Sets/src/mage/cards/n/NyxHerald.java b/Mage.Sets/src/mage/cards/n/NyxHerald.java index 2ee9f6499e..1508a34333 100644 --- a/Mage.Sets/src/mage/cards/n/NyxHerald.java +++ b/Mage.Sets/src/mage/cards/n/NyxHerald.java @@ -47,7 +47,7 @@ public final class NyxHerald extends CardImpl { ); ability.addEffect(new GainAbilityTargetEffect( TrampleAbility.getInstance(), Duration.EndOfTurn - ).setText("and gains trample")); + ).setText("and gains trample until end of turn")); ability.addTarget(new TargetPermanent(filter)); this.addAbility(ability); } diff --git a/Mage.Sets/src/mage/cards/p/ProteanThaumaturge.java b/Mage.Sets/src/mage/cards/p/ProteanThaumaturge.java index 337bbe5b63..241e3f937d 100644 --- a/Mage.Sets/src/mage/cards/p/ProteanThaumaturge.java +++ b/Mage.Sets/src/mage/cards/p/ProteanThaumaturge.java @@ -56,7 +56,7 @@ public final class ProteanThaumaturge extends CardImpl { Ability ability = new ConstellationAbility(new CopyPermanentEffect( StaticFilters.FILTER_PERMANENT_CREATURE, new ProteanThaumaturgeApplyToPermanent(), true - ).setText("have {this} become a copy of another target creature, except it has this ability"), true, false); + ).setText("{this} become a copy of another target creature, except it has this ability"), true, false); ability.addTarget(new TargetPermanent(filter)); return ability; } diff --git a/Mage.Sets/src/mage/cards/r/RageScarredBerserker.java b/Mage.Sets/src/mage/cards/r/RageScarredBerserker.java index ba972ef8e7..511e138a73 100644 --- a/Mage.Sets/src/mage/cards/r/RageScarredBerserker.java +++ b/Mage.Sets/src/mage/cards/r/RageScarredBerserker.java @@ -29,7 +29,8 @@ public final class RageScarredBerserker extends CardImpl { this.toughness = new MageInt(4); // When Rage-Scarred Berserker enters the battlefield, target creature you control gets +1/+0 and gains indestructible until end of turn. - Ability ability = new EntersBattlefieldTriggeredAbility(new BoostTargetEffect(1, 0)); + Ability ability = new EntersBattlefieldTriggeredAbility(new BoostTargetEffect(1, 0) + .setText("target creature you control gets +1/+0")); ability.addEffect(new GainAbilityTargetEffect( IndestructibleAbility.getInstance(), Duration.EndOfTurn ).setText("and gains indestructible until end of turn")); diff --git a/Mage.Sets/src/mage/cards/s/SionaCaptainOfThePyleas.java b/Mage.Sets/src/mage/cards/s/SionaCaptainOfThePyleas.java index 71d3986a05..5b428368e6 100644 --- a/Mage.Sets/src/mage/cards/s/SionaCaptainOfThePyleas.java +++ b/Mage.Sets/src/mage/cards/s/SionaCaptainOfThePyleas.java @@ -46,7 +46,7 @@ public final class SionaCaptainOfThePyleas extends CardImpl { StaticValue.get(7), false, StaticValue.get(1), filter, Zone.LIBRARY, false, true, false, Zone.HAND, true, false, false - ).setBackInRandomOrder(true).setText("Look at the top seven cards of your library. " + + ).setBackInRandomOrder(true).setText("look at the top seven cards of your library. " + "You may reveal an Aura card from among them and put it into your hand. " + "Put the rest on the bottom of your library in a random order.") )); diff --git a/Mage.Sets/src/mage/cards/s/SkophosMazeWarden.java b/Mage.Sets/src/mage/cards/s/SkophosMazeWarden.java index 77c10679c2..3882336ce8 100644 --- a/Mage.Sets/src/mage/cards/s/SkophosMazeWarden.java +++ b/Mage.Sets/src/mage/cards/s/SkophosMazeWarden.java @@ -99,6 +99,6 @@ class SkophosMazeWardenTriggeredAbility extends TriggeredAbilityImpl { @Override public String getRule() { return "Whenever another creature becomes the target of an ability of a land you control " + - "named Labyrinth of Skophos, you may have {this} fight that creature"; + "named Labyrinth of Skophos, you may have {this} fight that creature."; } } diff --git a/Mage.Sets/src/mage/cards/s/SkophosWarleader.java b/Mage.Sets/src/mage/cards/s/SkophosWarleader.java index e66fb07566..114b2bb080 100644 --- a/Mage.Sets/src/mage/cards/s/SkophosWarleader.java +++ b/Mage.Sets/src/mage/cards/s/SkophosWarleader.java @@ -1,6 +1,5 @@ package mage.cards.s; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -20,12 +19,24 @@ import mage.filter.predicate.Predicates; import mage.filter.predicate.permanent.AnotherPredicate; import mage.target.common.TargetControlledPermanent; +import java.util.UUID; + /** - * * @author LevelX2 */ public final class SkophosWarleader extends CardImpl { + private static final FilterControlledPermanent filter + = new FilterControlledPermanent("another creature or an enchantment"); + + static { + filter.add(Predicates.or( + CardType.CREATURE.getPredicate(), + CardType.ENCHANTMENT.getPredicate() + )); + filter.add(AnotherPredicate.instance); + } + public SkophosWarleader(UUID ownerId, CardSetInfo setInfo) { super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{4}{R}"); @@ -35,9 +46,6 @@ public final class SkophosWarleader extends CardImpl { this.toughness = new MageInt(5); // {R}, Sacrifice another creature or enchantment: Skophos Warleader gets +1/+0 and gains menace until end of turn. - FilterControlledPermanent filter = new FilterControlledPermanent("another creature or enchantment"); - filter.add(Predicates.or(CardType.CREATURE.getPredicate(), CardType.ENCHANTMENT.getPredicate())); - filter.add(AnotherPredicate.instance); Ability ability = new SimpleActivatedAbility( new BoostSourceEffect(1, 0, Duration.EndOfTurn) .setText("{this} gets +1/+0"), diff --git a/Mage.Sets/src/mage/cards/s/SlaughterPriestOfMogis.java b/Mage.Sets/src/mage/cards/s/SlaughterPriestOfMogis.java index a96a015fc7..1c6a1ba33b 100644 --- a/Mage.Sets/src/mage/cards/s/SlaughterPriestOfMogis.java +++ b/Mage.Sets/src/mage/cards/s/SlaughterPriestOfMogis.java @@ -1,6 +1,5 @@ package mage.cards.s; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.TriggeredAbilityImpl; @@ -23,12 +22,24 @@ import mage.game.Game; import mage.game.events.GameEvent; import mage.target.common.TargetControlledPermanent; +import java.util.UUID; + /** - * * @author LevelX2 */ public final class SlaughterPriestOfMogis extends CardImpl { + private static final FilterControlledPermanent filter + = new FilterControlledPermanent("another creature or an enchantment"); + + static { + filter.add(Predicates.or( + CardType.CREATURE.getPredicate(), + CardType.ENCHANTMENT.getPredicate() + )); + filter.add(AnotherPredicate.instance); + } + public SlaughterPriestOfMogis(UUID ownerId, CardSetInfo setInfo) { super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{B}{R}"); @@ -41,9 +52,6 @@ public final class SlaughterPriestOfMogis extends CardImpl { this.addAbility(new SlaughterPriestOfMogisAbility()); // {2}, Sacrifice another creature or enchantment: Slaughter-Priest of Mogis gains first strike until end of turn. - FilterControlledPermanent filter = new FilterControlledPermanent("another creature or enchantment"); - filter.add(Predicates.or(CardType.CREATURE.getPredicate(), CardType.ENCHANTMENT.getPredicate())); - filter.add(AnotherPredicate.instance); Ability ability = new SimpleActivatedAbility( new GainAbilitySourceEffect(FirstStrikeAbility.getInstance(), Duration.EndOfTurn), new GenericManaCost(2)); diff --git a/Mage.Sets/src/mage/cards/s/SwimmerInNightmares.java b/Mage.Sets/src/mage/cards/s/SwimmerInNightmares.java index a6933abd08..ba9a45a299 100644 --- a/Mage.Sets/src/mage/cards/s/SwimmerInNightmares.java +++ b/Mage.Sets/src/mage/cards/s/SwimmerInNightmares.java @@ -46,7 +46,7 @@ public final class SwimmerInNightmares extends CardImpl { this.addAbility(new SimpleStaticAbility(new ConditionalContinuousEffect( new BoostSourceEffect(3, 0, Duration.WhileOnBattlefield), SwimmerInNightmaresCondition.instance, - "{this} +3/+0 as long as there are ten or more cards in a single graveyard" + "{this} gets +3/+0 as long as there are ten or more cards in a single graveyard" )).addHint(new ValueHint("Max cards in single graveyard", SwimmerInNightmaresCardsInSingleGraveyardValue.instance))); // Swimmer in Nightmares can't be blocked as long as you control an Ashiok planeswalker. @@ -77,8 +77,9 @@ enum SwimmerInNightmaresCardsInSingleGraveyardValue implements DynamicValue { .stream() .map(game::getPlayer) .map(Player::getGraveyard) - .map(HashSet::size) - .mapToInt(x -> x).max().orElse(0); + .mapToInt(HashSet::size) + .max() + .orElse(0); } @Override diff --git a/Mage.Sets/src/mage/cards/t/TreacherousBlessing.java b/Mage.Sets/src/mage/cards/t/TreacherousBlessing.java index 577358542b..04bdbb4688 100644 --- a/Mage.Sets/src/mage/cards/t/TreacherousBlessing.java +++ b/Mage.Sets/src/mage/cards/t/TreacherousBlessing.java @@ -29,7 +29,7 @@ public final class TreacherousBlessing extends CardImpl { )); // When Treacherous Blessing becomes the target of a spell or ability, sacrifice it. - this.addAbility(new BecomesTargetTriggeredAbility(new SacrificeSourceEffect())); + this.addAbility(new BecomesTargetTriggeredAbility(new SacrificeSourceEffect().setText("sacrifice it"))); } private TreacherousBlessing(final TreacherousBlessing card) { diff --git a/Mage.Sets/src/mage/cards/w/WolfwillowHaven.java b/Mage.Sets/src/mage/cards/w/WolfwillowHaven.java index 69af2af768..6b467004d3 100644 --- a/Mage.Sets/src/mage/cards/w/WolfwillowHaven.java +++ b/Mage.Sets/src/mage/cards/w/WolfwillowHaven.java @@ -102,6 +102,6 @@ class WolfwillowHavenTriggeredAbility extends TriggeredManaAbility { @Override public String getRule() { - return "Whenever enchanted land is tapped for mana, its controller adds an additional {G}"; + return "Whenever enchanted land is tapped for mana, its controller adds an additional {G}."; } } diff --git a/Mage.Verify/src/test/java/mage/verify/VerifyCardDataTest.java b/Mage.Verify/src/test/java/mage/verify/VerifyCardDataTest.java index e968da905e..5e311357f4 100644 --- a/Mage.Verify/src/test/java/mage/verify/VerifyCardDataTest.java +++ b/Mage.Verify/src/test/java/mage/verify/VerifyCardDataTest.java @@ -72,7 +72,7 @@ public class VerifyCardDataTest { private static final String SKIP_LIST_SAMPLE_DECKS = "SAMPLE_DECKS"; private static final List evergreenKeywords = Arrays.asList( "flying", "lifelink", "menace", "trample", "haste", "first strike", "hexproof", - "deathtouch", "double strike", "indestructible", "reach", "flash", "defender" + "deathtouch", "double strike", "indestructible", "reach", "flash", "defender", "vigilance" ); static { @@ -1487,7 +1487,7 @@ public class VerifyCardDataTest { } } - if (!isAbilityFounded) { + if (!isAbilityFounded && cardRules[i].length() > 0) { isFine = false; warn(card, "card ability can't be found in ref [" + card.getName() + ": " + cardRules[i] + "]"); cardRules[i] = "- " + cardRules[i]; diff --git a/Mage/src/main/java/mage/abilities/costs/common/ExileFromGraveCost.java b/Mage/src/main/java/mage/abilities/costs/common/ExileFromGraveCost.java index e83cb0045a..ba2279b875 100644 --- a/Mage/src/main/java/mage/abilities/costs/common/ExileFromGraveCost.java +++ b/Mage/src/main/java/mage/abilities/costs/common/ExileFromGraveCost.java @@ -30,13 +30,13 @@ public class ExileFromGraveCost extends CostImpl { target.setNotTarget(true); this.addTarget(target); if (target.getMaxNumberOfTargets() > 1) { - this.text = "Exile " + this.text = "exile " + (target.getNumberOfTargets() == 1 && target.getMaxNumberOfTargets() == Integer.MAX_VALUE ? "one or more" : ((target.getNumberOfTargets() < target.getMaxNumberOfTargets() ? "up to " : "")) + CardUtil.numberToText(target.getMaxNumberOfTargets())) + ' ' + target.getTargetName(); } else { - this.text = "Exile " + this.text = "exile " + (target.getTargetName().startsWith("card ") ? "a ":"") + target.getTargetName(); } @@ -54,7 +54,7 @@ public class ExileFromGraveCost extends CostImpl { public ExileFromGraveCost(TargetCardInASingleGraveyard target) { target.setNotTarget(true); this.addTarget(target); - this.text = "Exile " + target.getTargetName(); + this.text = "exile " + target.getTargetName(); } public ExileFromGraveCost(final ExileFromGraveCost cost) {