From 312cff0c0fcf3e64b3910e4a5e0205a4a1b5fb14 Mon Sep 17 00:00:00 2001 From: theelk801 <theelk801@gmail.com> Date: Tue, 11 Apr 2023 09:32:31 -0400 Subject: [PATCH] [MOM] various text fixes --- .../cards/a/AlabasterHostIntercessor.java | 1 + .../src/mage/cards/a/AncientImperiosaur.java | 2 +- .../src/mage/cards/a/ArchangelElspeth.java | 3 ++- .../src/mage/cards/a/AttentiveSkywarden.java | 2 +- .../src/mage/cards/b/BeamtownBeatstick.java | 2 +- Mage.Sets/src/mage/cards/c/ChompingKavu.java | 7 ++++++- .../src/mage/cards/c/CompleatedConjurer.java | 5 ++++- .../src/mage/cards/c/CrystalCarapace.java | 1 + .../src/mage/cards/e/EtaliPrimalSickness.java | 2 +- .../src/mage/cards/e/ExpeditionLookout.java | 2 +- .../src/mage/cards/f/FlittingGuerrilla.java | 2 +- .../mage/cards/g/GlisteningGoremonger.java | 2 +- .../src/mage/cards/g/GraftedButcher.java | 2 +- .../src/mage/cards/h/HaloChargedSkaab.java | 2 +- .../mage/cards/h/HeliodTheWarpedEclipse.java | 17 ++++++--------- .../src/mage/cards/k/KroxaAndKunoros.java | 1 - .../mage/cards/o/OrderOfTheAlabasterHost.java | 2 +- .../src/mage/cards/p/PhyrexianGargantua.java | 11 +++++----- .../mage/cards/s/StreetwiseNegotiator.java | 5 +++-- .../src/mage/cards/u/UnsealTheNecropolis.java | 2 +- Mage.Sets/src/mage/cards/u/UrnOfGodfire.java | 1 + .../mage/cards/v/VoldarenThrillseeker.java | 4 +++- .../java/mage/verify/VerifyCardDataTest.java | 2 +- .../common/MillThenPutInHandEffect.java | 2 +- ...romGraveyardToBattlefieldTargetEffect.java | 12 ++++++----- .../effects/common/TransformTargetEffect.java | 12 ++++++----- .../effects/common/UntapTargetEffect.java | 2 +- .../BecomesCreatureTargetEffect.java | 21 +++++++++++-------- .../ModifyCountersAddedEffect.java | 2 +- 29 files changed, 73 insertions(+), 58 deletions(-) diff --git a/Mage.Sets/src/mage/cards/a/AlabasterHostIntercessor.java b/Mage.Sets/src/mage/cards/a/AlabasterHostIntercessor.java index b9fdda071c..6737e855e1 100644 --- a/Mage.Sets/src/mage/cards/a/AlabasterHostIntercessor.java +++ b/Mage.Sets/src/mage/cards/a/AlabasterHostIntercessor.java @@ -33,6 +33,7 @@ public final class AlabasterHostIntercessor extends CardImpl { Ability ability = new EntersBattlefieldTriggeredAbility(new ExileUntilSourceLeavesEffect()); ability.addTarget(new TargetOpponentsCreaturePermanent()); ability.addEffect(new CreateDelayedTriggeredAbilityEffect(new OnLeaveReturnExiledToBattlefieldAbility())); + this.addAbility(ability); // Plainscycling {2} this.addAbility(new PlainscyclingAbility(new ManaCostsImpl<>("{2}"))); diff --git a/Mage.Sets/src/mage/cards/a/AncientImperiosaur.java b/Mage.Sets/src/mage/cards/a/AncientImperiosaur.java index 1177109340..dcc8b86ab8 100644 --- a/Mage.Sets/src/mage/cards/a/AncientImperiosaur.java +++ b/Mage.Sets/src/mage/cards/a/AncientImperiosaur.java @@ -45,7 +45,7 @@ public final class AncientImperiosaur extends CardImpl { this.addAbility(new EntersBattlefieldAbility(new AddCountersSourceEffect( CounterType.P1P1.createInstance(), xValue, true ), null, "{this} enters the battlefield with two " + - "+1/+1 counters on it for each creature that convoked it", null)); + "+1/+1 counters on it for each creature that convoked it.", null)); } private AncientImperiosaur(final AncientImperiosaur card) { diff --git a/Mage.Sets/src/mage/cards/a/ArchangelElspeth.java b/Mage.Sets/src/mage/cards/a/ArchangelElspeth.java index c3aefdde49..968b384785 100644 --- a/Mage.Sets/src/mage/cards/a/ArchangelElspeth.java +++ b/Mage.Sets/src/mage/cards/a/ArchangelElspeth.java @@ -40,7 +40,8 @@ public final class ArchangelElspeth extends CardImpl { // -2: Put two +1/+1 counters on target creature. It becomes an Angel in addition to its other types and gains flying. Ability ability = new LoyaltyAbility(new AddCountersTargetEffect(CounterType.P1P1.createInstance(2)), -2); - ability.addEffect(new AddCardSubTypeTargetEffect(SubType.ANGEL, Duration.Custom)); + ability.addEffect(new AddCardSubTypeTargetEffect(SubType.ANGEL, Duration.Custom) + .setText("It becomes an Angel in addition to its other types")); ability.addEffect(new GainAbilityTargetEffect(FlyingAbility.getInstance(), Duration.Custom).setText("and gains flying")); ability.addTarget(new TargetCreaturePermanent()); this.addAbility(ability); diff --git a/Mage.Sets/src/mage/cards/a/AttentiveSkywarden.java b/Mage.Sets/src/mage/cards/a/AttentiveSkywarden.java index 3f72a0d403..3bdb617e58 100644 --- a/Mage.Sets/src/mage/cards/a/AttentiveSkywarden.java +++ b/Mage.Sets/src/mage/cards/a/AttentiveSkywarden.java @@ -42,7 +42,7 @@ public final class AttentiveSkywarden extends CardImpl { Ability ability = new DealsCombatDamageToAPlayerTriggeredAbility( new TransformTargetEffect(), false ).setOrBattle(true); - ability.addTarget(new TargetPermanent(filter)); + ability.addTarget(new TargetPermanent(0, 1, filter)); this.addAbility(ability); } diff --git a/Mage.Sets/src/mage/cards/b/BeamtownBeatstick.java b/Mage.Sets/src/mage/cards/b/BeamtownBeatstick.java index 2a66ea85f7..e60dff5064 100644 --- a/Mage.Sets/src/mage/cards/b/BeamtownBeatstick.java +++ b/Mage.Sets/src/mage/cards/b/BeamtownBeatstick.java @@ -33,7 +33,7 @@ public final class BeamtownBeatstick extends CardImpl { this.subtype.add(SubType.EQUIPMENT); // Equipped creature gets +1/+0 and has menace. - Ability ability = new SimpleStaticAbility(new BoostEquippedEffect(2, 2)); + Ability ability = new SimpleStaticAbility(new BoostEquippedEffect(1, 0)); ability.addEffect(new GainAbilityAttachedEffect( new MenaceAbility(), AttachmentType.EQUIPMENT ).setText("and has menace. <i>(It can't be blocked except by two or more creatures.)</i>")); diff --git a/Mage.Sets/src/mage/cards/c/ChompingKavu.java b/Mage.Sets/src/mage/cards/c/ChompingKavu.java index 26ea8e967e..d9bc461778 100644 --- a/Mage.Sets/src/mage/cards/c/ChompingKavu.java +++ b/Mage.Sets/src/mage/cards/c/ChompingKavu.java @@ -1,11 +1,14 @@ package mage.cards.c; import mage.MageInt; +import mage.abilities.common.SimpleStaticAbility; +import mage.abilities.effects.common.combat.CantBeBlockedByCreaturesSourceEffect; import mage.abilities.keyword.BackupAbility; import mage.abilities.keyword.DauntAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import mage.constants.Duration; import mage.constants.SubType; import java.util.UUID; @@ -27,7 +30,9 @@ public final class ChompingKavu extends CardImpl { this.addAbility(backupAbility); // This creature can't be blocked by creatures with power 2 or less. - backupAbility.addAbility(new DauntAbility()); + backupAbility.addAbility(new SimpleStaticAbility(new CantBeBlockedByCreaturesSourceEffect( + DauntAbility.getFilter(), Duration.WhileOnBattlefield + ).setText("this creature can't be blocked by creatures with power 2 or less"))); } private ChompingKavu(final ChompingKavu card) { diff --git a/Mage.Sets/src/mage/cards/c/CompleatedConjurer.java b/Mage.Sets/src/mage/cards/c/CompleatedConjurer.java index a55613596d..4e1aa2d628 100644 --- a/Mage.Sets/src/mage/cards/c/CompleatedConjurer.java +++ b/Mage.Sets/src/mage/cards/c/CompleatedConjurer.java @@ -6,6 +6,7 @@ import mage.abilities.effects.common.ExileTopXMayPlayUntilEndOfTurnEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import mage.constants.Duration; import mage.constants.SubType; import java.util.UUID; @@ -27,7 +28,9 @@ public final class CompleatedConjurer extends CardImpl { this.nightCard = true; // When this creature transforms into Compleated Conjurer, exile the top card of your library. Until the end of your next turn, you may play that card. - this.addAbility(new TransformIntoSourceTriggeredAbility(new ExileTopXMayPlayUntilEndOfTurnEffect(1))); + this.addAbility(new TransformIntoSourceTriggeredAbility( + new ExileTopXMayPlayUntilEndOfTurnEffect(1, false, Duration.UntilEndOfYourNextTurn) + )); } private CompleatedConjurer(final CompleatedConjurer card) { diff --git a/Mage.Sets/src/mage/cards/c/CrystalCarapace.java b/Mage.Sets/src/mage/cards/c/CrystalCarapace.java index 089a3b5c53..7668a7b37a 100644 --- a/Mage.Sets/src/mage/cards/c/CrystalCarapace.java +++ b/Mage.Sets/src/mage/cards/c/CrystalCarapace.java @@ -42,6 +42,7 @@ public final class CrystalCarapace extends CardImpl { ability.addEffect(new GainAbilityAttachedEffect( new WardAbility(new GenericManaCost(2), false), AttachmentType.AURA ).setText("and has ward {2}")); + this.addAbility(ability); // Cycling {2} this.addAbility(new CyclingAbility(new ManaCostsImpl<>("{2}"))); diff --git a/Mage.Sets/src/mage/cards/e/EtaliPrimalSickness.java b/Mage.Sets/src/mage/cards/e/EtaliPrimalSickness.java index c779785d01..0ba17bc900 100644 --- a/Mage.Sets/src/mage/cards/e/EtaliPrimalSickness.java +++ b/Mage.Sets/src/mage/cards/e/EtaliPrimalSickness.java @@ -44,7 +44,7 @@ public final class EtaliPrimalSickness extends CardImpl { // Whenever Etali, Primal Sickness deals combat damage to a player, they get that many poison counters. this.addAbility(new DealsCombatDamageToAPlayerTriggeredAbility( - new EtaliPrimalConquerorEffect(), false, true + new EtaliPrimalSicknessEffect(), false, true )); } diff --git a/Mage.Sets/src/mage/cards/e/ExpeditionLookout.java b/Mage.Sets/src/mage/cards/e/ExpeditionLookout.java index e549ccbb8a..7e6852c264 100644 --- a/Mage.Sets/src/mage/cards/e/ExpeditionLookout.java +++ b/Mage.Sets/src/mage/cards/e/ExpeditionLookout.java @@ -40,7 +40,7 @@ public final class ExpeditionLookout extends CardImpl { ).setText("as long as an opponent has eight or more cards in their graveyard, " + "{this} can attack as though it didn't have defender")); ability.addEffect(new ConditionalRestrictionEffect( - new CantBeBlockedSourceEffect(), CardsInOpponentGraveyardCondition.EIGHT, "and can't be blocked" + new CantBeBlockedSourceEffect(), CardsInOpponentGraveyardCondition.EIGHT, "and it can't be blocked" )); this.addAbility(ability.addHint(CardsInOpponentGraveyardCondition.EIGHT.getHint())); } diff --git a/Mage.Sets/src/mage/cards/f/FlittingGuerrilla.java b/Mage.Sets/src/mage/cards/f/FlittingGuerrilla.java index a0d6480337..28b4fa8332 100644 --- a/Mage.Sets/src/mage/cards/f/FlittingGuerrilla.java +++ b/Mage.Sets/src/mage/cards/f/FlittingGuerrilla.java @@ -49,7 +49,7 @@ public final class FlittingGuerrilla extends CardImpl { ReflexiveTriggeredAbility rAbility = new ReflexiveTriggeredAbility(new PutOnLibraryTargetEffect(true), false); rAbility.addTarget(new TargetCardInYourGraveyard(filter)); Ability ability = new DiesSourceTriggeredAbility(new MillCardsEachPlayerEffect(2, TargetController.EACH_PLAYER)); - ability.addEffect(new DoWhenCostPaid(rAbility, new ExileSourceFromGraveCost(), "Exile this from your graveyard?")); + ability.addEffect(new DoWhenCostPaid(rAbility, new ExileSourceFromGraveCost().setText("exile {this}"), "Exile this from your graveyard?").concatBy("Then")); this.addAbility(ability); } diff --git a/Mage.Sets/src/mage/cards/g/GlisteningGoremonger.java b/Mage.Sets/src/mage/cards/g/GlisteningGoremonger.java index c31cb3f3f1..aa68224742 100644 --- a/Mage.Sets/src/mage/cards/g/GlisteningGoremonger.java +++ b/Mage.Sets/src/mage/cards/g/GlisteningGoremonger.java @@ -28,7 +28,7 @@ public final class GlisteningGoremonger extends CardImpl { this.nightCard = true; // When Glistening Goremonger dies, each opponent sacrifices an artifact or creature. - this.addAbility(new DiesSourceTriggeredAbility(new SacrificeOpponentsEffect(StaticFilters.FILTER_PERMANENT_ARTIFACT_CREATURE))); + this.addAbility(new DiesSourceTriggeredAbility(new SacrificeOpponentsEffect(StaticFilters.FILTER_PERMANENT_ARTIFACT_OR_CREATURE))); } private GlisteningGoremonger(final GlisteningGoremonger card) { diff --git a/Mage.Sets/src/mage/cards/g/GraftedButcher.java b/Mage.Sets/src/mage/cards/g/GraftedButcher.java index dcd2031b6a..2770eda82f 100644 --- a/Mage.Sets/src/mage/cards/g/GraftedButcher.java +++ b/Mage.Sets/src/mage/cards/g/GraftedButcher.java @@ -51,7 +51,7 @@ public final class GraftedButcher extends CardImpl { // {3}{B}, Sacrifice an artifact or creature: Return Grafted Butcher from your graveyard to the battlefield. Activate only as a sorcery. Ability ability = new ActivateAsSorceryActivatedAbility( - Zone.GRAVEYARD, new ReturnSourceFromGraveyardToBattlefieldEffect(), new ManaCostsImpl<>("{3}{B}") + Zone.GRAVEYARD, new ReturnSourceFromGraveyardToBattlefieldEffect(false, false), new ManaCostsImpl<>("{3}{B}") ); ability.addCost(new SacrificeTargetCost(StaticFilters.FILTER_CONTROLLED_ARTIFACT_OR_CREATURE_SHORT_TEXT)); this.addAbility(ability); diff --git a/Mage.Sets/src/mage/cards/h/HaloChargedSkaab.java b/Mage.Sets/src/mage/cards/h/HaloChargedSkaab.java index a61e0cd504..3aa71b5bbb 100644 --- a/Mage.Sets/src/mage/cards/h/HaloChargedSkaab.java +++ b/Mage.Sets/src/mage/cards/h/HaloChargedSkaab.java @@ -65,7 +65,7 @@ class HaloChargedSkaabEffect extends OneShotEffect { HaloChargedSkaabEffect() { super(Outcome.Benefit); - staticText = "then you may put an instant, sorcery, or battle card from your graveyard on top of your library"; + staticText = "Then you may put an instant, sorcery, or battle card from your graveyard on top of your library"; } private HaloChargedSkaabEffect(final HaloChargedSkaabEffect effect) { diff --git a/Mage.Sets/src/mage/cards/h/HeliodTheWarpedEclipse.java b/Mage.Sets/src/mage/cards/h/HeliodTheWarpedEclipse.java index d2645116de..282326aa10 100644 --- a/Mage.Sets/src/mage/cards/h/HeliodTheWarpedEclipse.java +++ b/Mage.Sets/src/mage/cards/h/HeliodTheWarpedEclipse.java @@ -4,27 +4,24 @@ import mage.MageInt; import mage.abilities.Ability; import mage.abilities.SpellAbility; import mage.abilities.common.SimpleStaticAbility; -import mage.abilities.dynamicvalue.DynamicValue; import mage.abilities.effects.common.continuous.CastAsThoughItHadFlashAllEffect; import mage.abilities.effects.common.cost.CostModificationEffectImpl; -import mage.abilities.effects.common.cost.SpellsCostReductionControllerEffect; -import mage.abilities.keyword.TransformAbility; import mage.cards.Card; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.*; -import mage.counters.CounterType; -import mage.filter.StaticFilters; +import mage.filter.FilterCard; +import mage.filter.common.FilterNonlandCard; import mage.game.Game; -import mage.players.Player; import mage.util.CardUtil; import mage.watchers.common.CardsDrawnThisTurnWatcher; -import java.util.Objects; -import java.util.Optional; import java.util.UUID; public class HeliodTheWarpedEclipse extends CardImpl { + + private static final FilterCard filter = new FilterNonlandCard("spells"); + public HeliodTheWarpedEclipse(UUID ownerId, CardSetInfo setInfo) { super(ownerId, setInfo, new CardType[]{CardType.ENCHANTMENT, CardType.CREATURE}, ""); this.color.setWhite(true); @@ -37,9 +34,7 @@ public class HeliodTheWarpedEclipse extends CardImpl { this.nightCard = true; //You may cast spells as though they had flash. - this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new CastAsThoughItHadFlashAllEffect( - Duration.WhileOnBattlefield, StaticFilters.FILTER_CARD_NON_LAND - ))); + this.addAbility(new SimpleStaticAbility(new CastAsThoughItHadFlashAllEffect(Duration.WhileOnBattlefield, filter))); //Spells you cast cost {1} less to cast for each card your opponents have drawn this turn. this.addAbility(new SimpleStaticAbility(new HeliodTheWarpedEclipseEffect())); diff --git a/Mage.Sets/src/mage/cards/k/KroxaAndKunoros.java b/Mage.Sets/src/mage/cards/k/KroxaAndKunoros.java index c207d3cf30..1266cc5541 100644 --- a/Mage.Sets/src/mage/cards/k/KroxaAndKunoros.java +++ b/Mage.Sets/src/mage/cards/k/KroxaAndKunoros.java @@ -48,7 +48,6 @@ public final class KroxaAndKunoros extends CardImpl { new ReturnFromGraveyardToBattlefieldTargetEffect(), false ); ability.addTarget(new TargetCardInYourGraveyard(StaticFilters.FILTER_CARD_CREATURE_YOUR_GRAVEYARD)); - this.addAbility(ability); this.addAbility(new EntersBattlefieldOrAttacksSourceTriggeredAbility(new DoWhenCostPaid( ability, new ExileFromGraveCost(new TargetCardInYourGraveyard(5)), "Exile five cards from your graveyard?" diff --git a/Mage.Sets/src/mage/cards/o/OrderOfTheAlabasterHost.java b/Mage.Sets/src/mage/cards/o/OrderOfTheAlabasterHost.java index e8df7def56..32745385bf 100644 --- a/Mage.Sets/src/mage/cards/o/OrderOfTheAlabasterHost.java +++ b/Mage.Sets/src/mage/cards/o/OrderOfTheAlabasterHost.java @@ -27,7 +27,7 @@ public final class OrderOfTheAlabasterHost extends CardImpl { this.nightCard = true; // Whenever Order of the Alabaster Host becomes blocked by a creature, that creature gets -1/-1 until end of turn. - this.addAbility(new BecomesBlockedByCreatureTriggeredAbility(new BoostTargetEffect(-1, -1), false)); + this.addAbility(new BecomesBlockedByCreatureTriggeredAbility(new BoostTargetEffect(-1, -1).setText("that creature gets -1/-1 until end of turn"), false)); } private OrderOfTheAlabasterHost(final OrderOfTheAlabasterHost card) { diff --git a/Mage.Sets/src/mage/cards/p/PhyrexianGargantua.java b/Mage.Sets/src/mage/cards/p/PhyrexianGargantua.java index a3f6df076d..d79d5f59e2 100644 --- a/Mage.Sets/src/mage/cards/p/PhyrexianGargantua.java +++ b/Mage.Sets/src/mage/cards/p/PhyrexianGargantua.java @@ -1,7 +1,5 @@ - package mage.cards.p; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.EntersBattlefieldTriggeredAbility; @@ -12,21 +10,22 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.SubType; +import java.util.UUID; + /** - * * @author Loki */ public final class PhyrexianGargantua extends CardImpl { public PhyrexianGargantua(UUID ownerId, CardSetInfo setInfo) { - super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{4}{B}{B}"); + super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{4}{B}{B}"); this.subtype.add(SubType.PHYREXIAN); this.subtype.add(SubType.HORROR); this.power = new MageInt(4); this.toughness = new MageInt(4); - Ability ability = new EntersBattlefieldTriggeredAbility(new DrawCardSourceControllerEffect(2), false); - ability.addEffect(new LoseLifeSourceControllerEffect(2)); + Ability ability = new EntersBattlefieldTriggeredAbility(new DrawCardSourceControllerEffect(2, "you"), false); + ability.addEffect(new LoseLifeSourceControllerEffect(2).concatBy("and")); this.addAbility(ability); } diff --git a/Mage.Sets/src/mage/cards/s/StreetwiseNegotiator.java b/Mage.Sets/src/mage/cards/s/StreetwiseNegotiator.java index 89aba5948b..653b278359 100644 --- a/Mage.Sets/src/mage/cards/s/StreetwiseNegotiator.java +++ b/Mage.Sets/src/mage/cards/s/StreetwiseNegotiator.java @@ -22,7 +22,7 @@ import java.util.UUID; */ public final class StreetwiseNegotiator extends CardImpl { - private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("this creature"); + private static final FilterCreaturePermanent filter = new FilterCreaturePermanent(); static { filter.add(StreetwiseNegotiatorPredicate.instance); @@ -41,7 +41,8 @@ public final class StreetwiseNegotiator extends CardImpl { this.addAbility(backupAbility); // This creature assigns combat damage equal to its toughness rather than its power. - backupAbility.addAbility(new SimpleStaticAbility(new CombatDamageByToughnessEffect(filter, false))); + backupAbility.addAbility(new SimpleStaticAbility(new CombatDamageByToughnessEffect(filter, false) + .setText("this creature assigns combat damage equal to its toughness rather than its power"))); } private StreetwiseNegotiator(final StreetwiseNegotiator card) { diff --git a/Mage.Sets/src/mage/cards/u/UnsealTheNecropolis.java b/Mage.Sets/src/mage/cards/u/UnsealTheNecropolis.java index 7962f6417f..90a77b7877 100644 --- a/Mage.Sets/src/mage/cards/u/UnsealTheNecropolis.java +++ b/Mage.Sets/src/mage/cards/u/UnsealTheNecropolis.java @@ -46,7 +46,7 @@ class UnsealTheNecropolisEffect extends OneShotEffect { UnsealTheNecropolisEffect() { super(Outcome.Benefit); - staticText = "then you return up to two creature cards from your graveyard to your hand"; + staticText = "Then you return up to two creature cards from your graveyard to your hand"; } private UnsealTheNecropolisEffect(final UnsealTheNecropolisEffect effect) { diff --git a/Mage.Sets/src/mage/cards/u/UrnOfGodfire.java b/Mage.Sets/src/mage/cards/u/UrnOfGodfire.java index e91586cf21..129510c43b 100644 --- a/Mage.Sets/src/mage/cards/u/UrnOfGodfire.java +++ b/Mage.Sets/src/mage/cards/u/UrnOfGodfire.java @@ -41,6 +41,7 @@ public final class UrnOfGodfire extends CardImpl { ability.addCost(new TapSourceCost()); ability.addCost(new SacrificeSourceCost()); ability.addTarget(new TargetPermanent(filter)); + this.addAbility(ability); } private UrnOfGodfire(final UrnOfGodfire card) { diff --git a/Mage.Sets/src/mage/cards/v/VoldarenThrillseeker.java b/Mage.Sets/src/mage/cards/v/VoldarenThrillseeker.java index 67d25533f5..25acc61c09 100644 --- a/Mage.Sets/src/mage/cards/v/VoldarenThrillseeker.java +++ b/Mage.Sets/src/mage/cards/v/VoldarenThrillseeker.java @@ -38,7 +38,9 @@ public final class VoldarenThrillseeker extends CardImpl { // {1}, Sacrifice this creature: It deals damage equal to its power to any target. Ability ability = new SimpleActivatedAbility( - new DamageTargetEffect(xValue, "it"), new GenericManaCost(1) + new DamageTargetEffect(xValue) + .setText("it deals damage equal to its power to any target"), + new GenericManaCost(1) ); ability.addCost(new SacrificeSourceCost().setText("sacrifice this creature")); ability.addTarget(new TargetAnyTarget()); diff --git a/Mage.Verify/src/test/java/mage/verify/VerifyCardDataTest.java b/Mage.Verify/src/test/java/mage/verify/VerifyCardDataTest.java index a0023ca8f4..e1cf15cd94 100644 --- a/Mage.Verify/src/test/java/mage/verify/VerifyCardDataTest.java +++ b/Mage.Verify/src/test/java/mage/verify/VerifyCardDataTest.java @@ -63,7 +63,7 @@ public class VerifyCardDataTest { private static final Logger logger = Logger.getLogger(VerifyCardDataTest.class); - private static final String FULL_ABILITIES_CHECK_SET_CODE = "40K"; // check all abilities and output cards with wrong abilities texts; + private static final String FULL_ABILITIES_CHECK_SET_CODE = "MOM"; // check all abilities and output cards with wrong abilities texts; private static final boolean CHECK_ONLY_ABILITIES_TEXT = false; // use when checking text locally, suppresses unnecessary checks and output messages private static final boolean AUTO_FIX_SAMPLE_DECKS = false; // debug only: auto-fix sample decks by test_checkSampleDecks test run diff --git a/Mage/src/main/java/mage/abilities/effects/common/MillThenPutInHandEffect.java b/Mage/src/main/java/mage/abilities/effects/common/MillThenPutInHandEffect.java index 086b346833..ef72b3fa9c 100644 --- a/Mage/src/main/java/mage/abilities/effects/common/MillThenPutInHandEffect.java +++ b/Mage/src/main/java/mage/abilities/effects/common/MillThenPutInHandEffect.java @@ -86,7 +86,7 @@ public class MillThenPutInHandEffect extends OneShotEffect { sb.append(CardUtil.numberToText(amount)); sb.append(" cards. You may put "); sb.append(filter.getMessage()); - sb.append(" from among the cards milled this way into your hand"); + sb.append(" from among the milled cards into your hand"); if (otherwiseEffect != null) { sb.append(". If you don't, "); sb.append(otherwiseEffect.getText(mode)); diff --git a/Mage/src/main/java/mage/abilities/effects/common/ReturnFromGraveyardToBattlefieldTargetEffect.java b/Mage/src/main/java/mage/abilities/effects/common/ReturnFromGraveyardToBattlefieldTargetEffect.java index 74fe7ddcd0..3070d28eb5 100644 --- a/Mage/src/main/java/mage/abilities/effects/common/ReturnFromGraveyardToBattlefieldTargetEffect.java +++ b/Mage/src/main/java/mage/abilities/effects/common/ReturnFromGraveyardToBattlefieldTargetEffect.java @@ -87,11 +87,13 @@ public class ReturnFromGraveyardToBattlefieldTargetEffect extends OneShotEffect if (target.getMaxNumberOfTargets() == Integer.MAX_VALUE && target.getMinNumberOfTargets() == 0) { sb.append("any number of "); - } else { - if (target.getMaxNumberOfTargets() != target.getNumberOfTargets()) { - sb.append("up to "); - } - sb.append(CardUtil.numberToText(target.getMaxNumberOfTargets())).append(' '); + } else if (target.getMaxNumberOfTargets() != target.getNumberOfTargets()) { + sb.append("up to "); + sb.append(CardUtil.numberToText(target.getMaxNumberOfTargets())); + sb.append(' '); + } else if (target.getMaxNumberOfTargets() > 1) { + sb.append(CardUtil.numberToText(target.getMaxNumberOfTargets())); + sb.append(' '); } String targetName = mode.getTargets().get(0).getTargetName(); if (!targetName.contains("target ")) { diff --git a/Mage/src/main/java/mage/abilities/effects/common/TransformTargetEffect.java b/Mage/src/main/java/mage/abilities/effects/common/TransformTargetEffect.java index 31f2acfa63..021a8a2adc 100644 --- a/Mage/src/main/java/mage/abilities/effects/common/TransformTargetEffect.java +++ b/Mage/src/main/java/mage/abilities/effects/common/TransformTargetEffect.java @@ -50,11 +50,13 @@ public class TransformTargetEffect extends OneShotEffect { if (target.getMaxNumberOfTargets() == Integer.MAX_VALUE && target.getMinNumberOfTargets() == 0) { sb.append("any number of "); - } else { - if (target.getMaxNumberOfTargets() != target.getNumberOfTargets()) { - sb.append("up to "); - } - sb.append(CardUtil.numberToText(target.getMaxNumberOfTargets())).append(' '); + } else if (target.getMaxNumberOfTargets() != target.getNumberOfTargets()) { + sb.append("up to "); + sb.append(CardUtil.numberToText(target.getMaxNumberOfTargets())); + sb.append(' '); + } else if (target.getMaxNumberOfTargets() > 1) { + sb.append(CardUtil.numberToText(target.getMaxNumberOfTargets())); + sb.append(' '); } String targetName = mode.getTargets().get(0).getTargetName(); if (!targetName.contains("target ")) { diff --git a/Mage/src/main/java/mage/abilities/effects/common/UntapTargetEffect.java b/Mage/src/main/java/mage/abilities/effects/common/UntapTargetEffect.java index 5a2992845f..6e8756a27d 100644 --- a/Mage/src/main/java/mage/abilities/effects/common/UntapTargetEffect.java +++ b/Mage/src/main/java/mage/abilities/effects/common/UntapTargetEffect.java @@ -69,7 +69,7 @@ public class UntapTargetEffect extends OneShotEffect { sb.append(CardUtil.numberToText(target.getMaxNumberOfTargets())); sb.append(haveTargetWord ? " " : " target "); sb.append(target.getTargetName()); - if (!target.getTargetName().endsWith("s")) { + if (target.getMaxNumberOfTargets() > 1 && !target.getTargetName().endsWith("s")) { sb.append('s'); } } else { diff --git a/Mage/src/main/java/mage/abilities/effects/common/continuous/BecomesCreatureTargetEffect.java b/Mage/src/main/java/mage/abilities/effects/common/continuous/BecomesCreatureTargetEffect.java index fca7cf59d5..f0613677d5 100644 --- a/Mage/src/main/java/mage/abilities/effects/common/continuous/BecomesCreatureTargetEffect.java +++ b/Mage/src/main/java/mage/abilities/effects/common/continuous/BecomesCreatureTargetEffect.java @@ -39,16 +39,16 @@ public class BecomesCreatureTargetEffect extends ContinuousEffectImpl { /** * @param token - * @param loseAllAbilities loses all creature subtypes, colors and abilities - * @param stillALand add rule text, "it's still a land" - * @param loseName permanent loses name and gets it from token - * @param keepAbilities lose subtypes/colors, but keep abilities (example: - * Scale Up) + * @param loseAllAbilities loses all creature subtypes, colors and abilities + * @param stillALand add rule text, "it's still a land" + * @param loseName permanent loses name and gets it from token + * @param keepAbilities lose subtypes/colors, but keep abilities (example: + * Scale Up) * @param duration * @param loseOtherCardTypes permanent loses other (original) card types, exclusively obtains card types of token */ public BecomesCreatureTargetEffect(Token token, boolean loseAllAbilities, boolean stillALand, Duration duration, boolean loseName, - boolean keepAbilities, boolean loseOtherCardTypes) { + boolean keepAbilities, boolean loseOtherCardTypes) { super(duration, Outcome.BecomeCreature); this.token = token; this.loseAllAbilities = loseAllAbilities; @@ -179,10 +179,13 @@ public class BecomesCreatureTargetEffect extends ContinuousEffectImpl { } StringBuilder sb = new StringBuilder(); Target target = mode.getTargets().get(0); - if (target.getMaxNumberOfTargets() > 1) { - if (target.getNumberOfTargets() < target.getMaxNumberOfTargets()) { - sb.append("up to "); + if (target.getNumberOfTargets() < target.getMaxNumberOfTargets()) { + sb.append("up to "); + if (target.getMaxNumberOfTargets() == 1) { + sb.append("one "); } + } + if (target.getMaxNumberOfTargets() > 1) { sb.append(CardUtil.numberToText(target.getMaxNumberOfTargets())).append(" target ").append(target.getTargetName()); if (loseAllAbilities) { sb.append(" lose all their abilities and "); diff --git a/Mage/src/main/java/mage/abilities/effects/common/replacement/ModifyCountersAddedEffect.java b/Mage/src/main/java/mage/abilities/effects/common/replacement/ModifyCountersAddedEffect.java index 917da46beb..9db4e64344 100644 --- a/Mage/src/main/java/mage/abilities/effects/common/replacement/ModifyCountersAddedEffect.java +++ b/Mage/src/main/java/mage/abilities/effects/common/replacement/ModifyCountersAddedEffect.java @@ -24,7 +24,7 @@ public class ModifyCountersAddedEffect extends ReplacementEffectImpl { this.filter = filter; this.counterType = counterType; staticText = "if one or more " + (counterType != null ? counterType + " " : "") + "counters would be put on " + - CardUtil.addArticle(filter.getMessage()) + " you control, that many plus one " + + CardUtil.addArticle(filter.getMessage()) + ", that many plus one " + (counterType != null ? counterType : "of each of those kinds of") + " counters are put on it instead"; }