diff --git a/Mage.Sets/src/mage/cards/c/CemeteryPuca.java b/Mage.Sets/src/mage/cards/c/CemeteryPuca.java index 2950b2e4c8..cc4a08d17b 100644 --- a/Mage.Sets/src/mage/cards/c/CemeteryPuca.java +++ b/Mage.Sets/src/mage/cards/c/CemeteryPuca.java @@ -57,7 +57,7 @@ class CemeteryPucaEffect extends OneShotEffect { public CemeteryPucaEffect() { super(Outcome.Copy); - staticText = " {this} becomes a copy of that creature, except it has this ability"; + staticText = "{this} becomes a copy of that creature, except it has this ability"; } public CemeteryPucaEffect(final CemeteryPucaEffect effect) { diff --git a/Mage.Sets/src/mage/cards/c/CeruleanWisps.java b/Mage.Sets/src/mage/cards/c/CeruleanWisps.java index 3cc5469f80..bfb26fbc71 100644 --- a/Mage.Sets/src/mage/cards/c/CeruleanWisps.java +++ b/Mage.Sets/src/mage/cards/c/CeruleanWisps.java @@ -28,7 +28,7 @@ public final class CeruleanWisps extends CardImpl { this.getSpellAbility().addEffect(new UntapTargetEffect().setText("Untap that creature")); // Draw a card. - this.getSpellAbility().addEffect(new DrawCardSourceControllerEffect(1)); + this.getSpellAbility().addEffect(new DrawCardSourceControllerEffect(1).concatBy("
")); } public CeruleanWisps (final CeruleanWisps card) { diff --git a/Mage.Sets/src/mage/cards/c/Chainbreaker.java b/Mage.Sets/src/mage/cards/c/Chainbreaker.java index b45f94e512..ac21c9ced0 100644 --- a/Mage.Sets/src/mage/cards/c/Chainbreaker.java +++ b/Mage.Sets/src/mage/cards/c/Chainbreaker.java @@ -1,51 +1,51 @@ - package mage.cards.c; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.EntersBattlefieldAbility; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.common.TapSourceCost; -import mage.abilities.costs.mana.ManaCostsImpl; +import mage.abilities.costs.mana.GenericManaCost; import mage.abilities.effects.common.counter.AddCountersSourceEffect; import mage.abilities.effects.common.counter.RemoveCounterTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.SubType; -import mage.constants.Zone; import mage.counters.CounterType; -import mage.filter.common.FilterCreaturePermanent; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** - * * @author jeffwadsworth */ public final class Chainbreaker extends CardImpl { - + public Chainbreaker(UUID ownerId, CardSetInfo setInfo) { - super(ownerId,setInfo,new CardType[]{CardType.ARTIFACT,CardType.CREATURE},"{2}"); + super(ownerId, setInfo, new CardType[]{CardType.ARTIFACT, CardType.CREATURE}, "{2}"); this.subtype.add(SubType.SCARECROW); this.power = new MageInt(3); this.toughness = new MageInt(3); // Chainbreaker enters the battlefield with two -1/-1 counters on it. - this.addAbility(new EntersBattlefieldAbility(new AddCountersSourceEffect(CounterType.M1M1.createInstance(2), false), "with two -1/-1 counters on it")); + this.addAbility(new EntersBattlefieldAbility(new AddCountersSourceEffect( + CounterType.M1M1.createInstance(2), false + ), "with two -1/-1 counters on it")); // {3}, {tap}: Remove a -1/-1 counter from target creature. - Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new RemoveCounterTargetEffect(CounterType.M1M1.createInstance()), new ManaCostsImpl("{3}")); + Ability ability = new SimpleActivatedAbility( + new RemoveCounterTargetEffect(CounterType.M1M1.createInstance()), new GenericManaCost(3) + ); ability.addCost(new TapSourceCost()); - ability.addTarget(new TargetCreaturePermanent(new FilterCreaturePermanent("target creature"))); + ability.addTarget(new TargetCreaturePermanent()); this.addAbility(ability); - } - + private Chainbreaker(final Chainbreaker card) { super(card); } - + @Override public Chainbreaker copy() { return new Chainbreaker(this); diff --git a/Mage.Sets/src/mage/cards/c/Counterbore.java b/Mage.Sets/src/mage/cards/c/Counterbore.java index 23c6b43756..e32a041c13 100644 --- a/Mage.Sets/src/mage/cards/c/Counterbore.java +++ b/Mage.Sets/src/mage/cards/c/Counterbore.java @@ -21,7 +21,7 @@ public final class Counterbore extends CardImpl { // Counter target spell. // Search its controller's graveyard, hand, and library for all cards with the same name as that spell and exile them. Then that player shuffles their library. this.getSpellAbility().addTarget(new TargetSpell()); - this.getSpellAbility().addEffect(new CounterTargetAndSearchGraveyardHandLibraryEffect()); + this.getSpellAbility().addEffect(new CounterTargetAndSearchGraveyardHandLibraryEffect().concatBy(".")); } private Counterbore(final Counterbore card) { diff --git a/Mage.Sets/src/mage/cards/c/CragganwickCremator.java b/Mage.Sets/src/mage/cards/c/CragganwickCremator.java index 2106008dfe..e8eddeca76 100644 --- a/Mage.Sets/src/mage/cards/c/CragganwickCremator.java +++ b/Mage.Sets/src/mage/cards/c/CragganwickCremator.java @@ -52,7 +52,7 @@ class CragganwickCrematorEffect extends OneShotEffect { public CragganwickCrematorEffect() { super(Outcome.Neutral); - this.staticText = "discard a card at random. If you discard a creature card this way, {this} deals damage equal to that card's power to target player"; + this.staticText = "discard a card at random. If you discard a creature card this way, {this} deals damage equal to that card's power to target player or planeswalker"; } public CragganwickCrematorEffect(final CragganwickCrematorEffect effect) { diff --git a/Mage.Sets/src/mage/cards/c/CrimsonWisps.java b/Mage.Sets/src/mage/cards/c/CrimsonWisps.java index 1d45f2931b..7d0bcb5d88 100644 --- a/Mage.Sets/src/mage/cards/c/CrimsonWisps.java +++ b/Mage.Sets/src/mage/cards/c/CrimsonWisps.java @@ -1,8 +1,5 @@ - - package mage.cards.c; -import java.util.UUID; import mage.ObjectColor; import mage.abilities.effects.common.DrawCardSourceControllerEffect; import mage.abilities.effects.common.continuous.BecomesColorTargetEffect; @@ -14,25 +11,30 @@ import mage.constants.CardType; import mage.constants.Duration; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** - * * @author LevelX */ public final class CrimsonWisps extends CardImpl { - public CrimsonWisps (UUID ownerId, CardSetInfo setInfo) { - super(ownerId,setInfo,new CardType[]{CardType.INSTANT},"{R}"); + public CrimsonWisps(UUID ownerId, CardSetInfo setInfo) { + super(ownerId, setInfo, new CardType[]{CardType.INSTANT}, "{R}"); // Target creature becomes red and gains haste until end of turn. + this.getSpellAbility().addEffect(new BecomesColorTargetEffect( + ObjectColor.RED, Duration.EndOfTurn + ).setText("target creature becomes red")); + this.getSpellAbility().addEffect(new GainAbilityTargetEffect( + HasteAbility.getInstance(), Duration.EndOfTurn + ).setText("and gains haste until end of turn")); this.getSpellAbility().addTarget(new TargetCreaturePermanent()); - this.getSpellAbility().addEffect(new BecomesColorTargetEffect(ObjectColor.RED, Duration.EndOfTurn)); - this.getSpellAbility().addEffect(new GainAbilityTargetEffect(HasteAbility.getInstance(), Duration.EndOfTurn)); // Draw a card. - this.getSpellAbility().addEffect(new DrawCardSourceControllerEffect(1)); + this.getSpellAbility().addEffect(new DrawCardSourceControllerEffect(1).concatBy("
")); } - public CrimsonWisps (final CrimsonWisps card) { + public CrimsonWisps(final CrimsonWisps card) { super(card); } @@ -40,6 +42,4 @@ public final class CrimsonWisps extends CardImpl { public CrimsonWisps copy() { return new CrimsonWisps(this); } - } - diff --git a/Mage.Sets/src/mage/cards/c/CurseOfChains.java b/Mage.Sets/src/mage/cards/c/CurseOfChains.java index 0032d82026..e195ae14a8 100644 --- a/Mage.Sets/src/mage/cards/c/CurseOfChains.java +++ b/Mage.Sets/src/mage/cards/c/CurseOfChains.java @@ -35,7 +35,7 @@ public final class CurseOfChains extends CardImpl { this.addAbility(ability); // At the beginning of each upkeep, tap enchanted creature. - this.addAbility(new BeginningOfUpkeepTriggeredAbility(new TapEnchantedEffect(), TargetController.ANY, false)); + this.addAbility(new BeginningOfUpkeepTriggeredAbility(new TapEnchantedEffect(), TargetController.EACH_PLAYER, false)); } private CurseOfChains(final CurseOfChains card) { diff --git a/Mage.Sets/src/mage/cards/d/DawnglowInfusion.java b/Mage.Sets/src/mage/cards/d/DawnglowInfusion.java index bea66dae04..fc5a75c042 100644 --- a/Mage.Sets/src/mage/cards/d/DawnglowInfusion.java +++ b/Mage.Sets/src/mage/cards/d/DawnglowInfusion.java @@ -30,7 +30,7 @@ public final class DawnglowInfusion extends CardImpl { new ManaWasSpentCondition(ColoredManaSymbol.G), "You gain X life if {G} was spent to cast this spell")); this.getSpellAbility().addEffect(new ConditionalOneShotEffect( new GainLifeEffect(xValue), - new ManaWasSpentCondition(ColoredManaSymbol.W), " And X life if {W} was spent to cast it")); + new ManaWasSpentCondition(ColoredManaSymbol.W), "and X life if {W} was spent to cast this spell")); this.getSpellAbility().addEffect(new InfoEffect("(Do both if {G}{W} was spent.)")); diff --git a/Mage.Sets/src/mage/cards/d/DeepSlumberTitan.java b/Mage.Sets/src/mage/cards/d/DeepSlumberTitan.java index 974c122c81..c45342bc9b 100644 --- a/Mage.Sets/src/mage/cards/d/DeepSlumberTitan.java +++ b/Mage.Sets/src/mage/cards/d/DeepSlumberTitan.java @@ -36,7 +36,7 @@ public final class DeepSlumberTitan extends CardImpl { this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new DontUntapInControllersUntapStepSourceEffect())); // Whenever Deep-Slumber Titan is dealt damage, untap it. - this.addAbility(new DealtDamageToSourceTriggeredAbility(new UntapSourceEffect(), false)); + this.addAbility(new DealtDamageToSourceTriggeredAbility(new UntapSourceEffect().setText("untap it"), false)); } diff --git a/Mage.Sets/src/mage/cards/d/DisturbingPlot.java b/Mage.Sets/src/mage/cards/d/DisturbingPlot.java index f8b24e66d3..d2a8cf2c63 100644 --- a/Mage.Sets/src/mage/cards/d/DisturbingPlot.java +++ b/Mage.Sets/src/mage/cards/d/DisturbingPlot.java @@ -1,31 +1,32 @@ - package mage.cards.d; -import java.util.UUID; import mage.abilities.effects.common.ReturnToHandTargetEffect; import mage.abilities.keyword.ConspireAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import mage.filter.FilterCard; import mage.filter.common.FilterCreatureCard; import mage.target.common.TargetCardInGraveyard; +import java.util.UUID; + /** - * * @author jeffwadsworth */ public final class DisturbingPlot extends CardImpl { + private static final FilterCard filter = new FilterCreatureCard("creature card from a graveyard"); + public DisturbingPlot(UUID ownerId, CardSetInfo setInfo) { - super(ownerId,setInfo,new CardType[]{CardType.SORCERY},"{1}{B}"); + super(ownerId, setInfo, new CardType[]{CardType.SORCERY}, "{1}{B}"); // Return target creature card from a graveyard to its owner's hand. this.getSpellAbility().addEffect(new ReturnToHandTargetEffect()); - this.getSpellAbility().addTarget(new TargetCardInGraveyard(new FilterCreatureCard("creature card in a graveyard"))); + this.getSpellAbility().addTarget(new TargetCardInGraveyard(filter)); // Conspire this.addAbility(new ConspireAbility(ConspireAbility.ConspireTargets.ONE)); - } private DisturbingPlot(final DisturbingPlot card) { diff --git a/Mage.Sets/src/mage/cards/d/DuskUrchins.java b/Mage.Sets/src/mage/cards/d/DuskUrchins.java index fa3a758d40..bc614bf1bc 100644 --- a/Mage.Sets/src/mage/cards/d/DuskUrchins.java +++ b/Mage.Sets/src/mage/cards/d/DuskUrchins.java @@ -28,10 +28,10 @@ public final class DuskUrchins extends CardImpl { this.toughness = new MageInt(3); // Whenever Dusk Urchins attacks or blocks, put a -1/-1 counter on it. - this.addAbility(new AttacksOrBlocksTriggeredAbility(new AddCountersSourceEffect(CounterType.M1M1.createInstance()), false)); + this.addAbility(new AttacksOrBlocksTriggeredAbility(new AddCountersSourceEffect(CounterType.M1M1.createInstance()).setText("put a -1/-1 counter on it"), false)); // When Dusk Urchins dies, draw a card for each -1/-1 counter on it. - this.addAbility(new DiesSourceTriggeredAbility(new DrawCardSourceControllerEffect(new CountersSourceCount(CounterType.M1M1)))); + this.addAbility(new DiesSourceTriggeredAbility(new DrawCardSourceControllerEffect(new CountersSourceCount(CounterType.M1M1)).setText("draw a card for each -1/-1 counter on it"))); } diff --git a/Mage.Sets/src/mage/cards/f/Firespout.java b/Mage.Sets/src/mage/cards/f/Firespout.java index 395f2b7214..232736848b 100644 --- a/Mage.Sets/src/mage/cards/f/Firespout.java +++ b/Mage.Sets/src/mage/cards/f/Firespout.java @@ -38,7 +38,7 @@ public final class Firespout extends CardImpl { new ManaWasSpentCondition(ColoredManaSymbol.R), "{this} deals 3 damage to each creature without flying if {R} was spent to cast this spell")); this.getSpellAbility().addEffect(new ConditionalOneShotEffect( new DamageAllEffect(3, filter2), - new ManaWasSpentCondition(ColoredManaSymbol.G), "and 3 damage to each creature with flying if {G} was spent to cast it. (Do both if {R}{G} was spent.)")); + new ManaWasSpentCondition(ColoredManaSymbol.G), "and 3 damage to each creature with flying if {G} was spent to cast this spell. (Do both if {R}{G} was spent.)")); } private Firespout(final Firespout card) { diff --git a/Mage.Sets/src/mage/cards/g/GriefTyrant.java b/Mage.Sets/src/mage/cards/g/GriefTyrant.java index 2897b77d1a..554125ec05 100644 --- a/Mage.Sets/src/mage/cards/g/GriefTyrant.java +++ b/Mage.Sets/src/mage/cards/g/GriefTyrant.java @@ -31,7 +31,7 @@ public final class GriefTyrant extends CardImpl { this.toughness = new MageInt(8); // Grief Tyrant enters the battlefield with four -1/-1 counters on it. - this.addAbility(new EntersBattlefieldAbility(new AddCountersSourceEffect(CounterType.M1M1.createInstance(4)))); + this.addAbility(new EntersBattlefieldAbility(new AddCountersSourceEffect(CounterType.M1M1.createInstance(4)),"with four -1/-1 counters on it")); // When Grief Tyrant dies, put a -1/-1 counter on target creature for each -1/-1 counter on Grief Tyrant. Ability ability = new DiesSourceTriggeredAbility(new GriefTyrantEffect()); diff --git a/Mage.Sets/src/mage/cards/g/GrimPoppet.java b/Mage.Sets/src/mage/cards/g/GrimPoppet.java index 02acd71073..8d365e8ee1 100644 --- a/Mage.Sets/src/mage/cards/g/GrimPoppet.java +++ b/Mage.Sets/src/mage/cards/g/GrimPoppet.java @@ -38,7 +38,7 @@ public final class GrimPoppet extends CardImpl { this.toughness = new MageInt(4); // Grim Poppet enters the battlefield with three -1/-1 counters on it. - this.addAbility(new EntersBattlefieldAbility(new AddCountersSourceEffect(CounterType.M1M1.createInstance(3), false))); + this.addAbility(new EntersBattlefieldAbility(new AddCountersSourceEffect(CounterType.M1M1.createInstance(3)), "with three -1/-1 counters on it")); // Remove a -1/-1 counter from Grim Poppet: Put a -1/-1 counter on another target creature. Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new AddCountersTargetEffect(CounterType.M1M1.createInstance()), new RemoveCountersSourceCost(CounterType.M1M1.createInstance())); diff --git a/Mage.Sets/src/mage/cards/h/HungrySpriggan.java b/Mage.Sets/src/mage/cards/h/HungrySpriggan.java index d5e49e56c4..adb7d064f2 100644 --- a/Mage.Sets/src/mage/cards/h/HungrySpriggan.java +++ b/Mage.Sets/src/mage/cards/h/HungrySpriggan.java @@ -27,7 +27,7 @@ public final class HungrySpriggan extends CardImpl { this.toughness = new MageInt(1); this.addAbility(TrampleAbility.getInstance()); - this.addAbility(new AttacksTriggeredAbility(new BoostSourceEffect(3, 3, Duration.EndOfTurn), false)); + this.addAbility(new AttacksTriggeredAbility(new BoostSourceEffect(3, 3, Duration.EndOfTurn).setText("it gets +3/+3 until end of turn"), false)); } private HungrySpriggan(final HungrySpriggan card) { diff --git a/Mage.Sets/src/mage/cards/l/LeechBonder.java b/Mage.Sets/src/mage/cards/l/LeechBonder.java index c6a617def3..9959fd2881 100644 --- a/Mage.Sets/src/mage/cards/l/LeechBonder.java +++ b/Mage.Sets/src/mage/cards/l/LeechBonder.java @@ -43,7 +43,7 @@ public final class LeechBonder extends CardImpl { this.toughness = new MageInt(3); // Leech Bonder enters the battlefield with two -1/-1 counters on it. - this.addAbility(new EntersBattlefieldAbility(new AddCountersSourceEffect(CounterType.M1M1.createInstance(2)))); + this.addAbility(new EntersBattlefieldAbility(new AddCountersSourceEffect(CounterType.M1M1.createInstance(2)), "with two -1/-1 counters on it")); // {U}, {untap}: Move a counter from target creature onto another target creature. Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new LeechBonderEffect(), new ManaCostsImpl("{U}")); diff --git a/Mage.Sets/src/mage/cards/m/Manamorphose.java b/Mage.Sets/src/mage/cards/m/Manamorphose.java index ea68f24812..02eea02382 100644 --- a/Mage.Sets/src/mage/cards/m/Manamorphose.java +++ b/Mage.Sets/src/mage/cards/m/Manamorphose.java @@ -22,7 +22,7 @@ public final class Manamorphose extends CardImpl { this.getSpellAbility().addEffect(new AddManaInAnyCombinationEffect(2)); // Draw a card. - this.getSpellAbility().addEffect(new DrawCardSourceControllerEffect(1)); + this.getSpellAbility().addEffect(new DrawCardSourceControllerEffect(1).concatBy("
")); } private Manamorphose(final Manamorphose card) { diff --git a/Mage.Sets/src/mage/cards/m/MineExcavation.java b/Mage.Sets/src/mage/cards/m/MineExcavation.java index 6c533d7080..34b98505b5 100644 --- a/Mage.Sets/src/mage/cards/m/MineExcavation.java +++ b/Mage.Sets/src/mage/cards/m/MineExcavation.java @@ -3,6 +3,7 @@ package mage.cards.m; import java.util.UUID; import mage.abilities.effects.common.ReturnFromGraveyardToHandTargetEffect; +import mage.abilities.effects.common.ReturnToHandTargetEffect; import mage.abilities.keyword.ConspireAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; @@ -17,7 +18,7 @@ import mage.target.common.TargetCardInGraveyard; */ public final class MineExcavation extends CardImpl { - private static final FilterCard filter = new FilterCard("artifact or enchantment card in a graveyard"); + private static final FilterCard filter = new FilterCard("artifact or enchantment card from a graveyard"); static { filter.add(Predicates.or(CardType.ARTIFACT.getPredicate(), @@ -28,7 +29,7 @@ public final class MineExcavation extends CardImpl { super(ownerId,setInfo,new CardType[]{CardType.SORCERY},"{1}{W}"); // Return target artifact or enchantment card from a graveyard to its owner's hand. - this.getSpellAbility().addEffect(new ReturnFromGraveyardToHandTargetEffect()); + this.getSpellAbility().addEffect(new ReturnToHandTargetEffect()); this.getSpellAbility().addTarget(new TargetCardInGraveyard(filter)); // Conspire diff --git a/Mage.Sets/src/mage/cards/m/Morselhoarder.java b/Mage.Sets/src/mage/cards/m/Morselhoarder.java index ab38678b3e..7ec9d675ca 100644 --- a/Mage.Sets/src/mage/cards/m/Morselhoarder.java +++ b/Mage.Sets/src/mage/cards/m/Morselhoarder.java @@ -30,7 +30,7 @@ public final class Morselhoarder extends CardImpl { this.toughness = new MageInt(4); // Morselhoarder enters the battlefield with two -1/-1 counters on it. - this.addAbility(new EntersBattlefieldAbility(new AddCountersSourceEffect(CounterType.M1M1.createInstance(2), false))); + this.addAbility(new EntersBattlefieldAbility(new AddCountersSourceEffect(CounterType.M1M1.createInstance(2)), "with two -1/-1 counters on it")); // Remove a -1/-1 counter from Morselhoarder: Add one mana of any color. this.addAbility(new MorselhoarderAbility()); diff --git a/Mage.Sets/src/mage/cards/n/NiveousWisps.java b/Mage.Sets/src/mage/cards/n/NiveousWisps.java index cd0912ad90..acdec41970 100644 --- a/Mage.Sets/src/mage/cards/n/NiveousWisps.java +++ b/Mage.Sets/src/mage/cards/n/NiveousWisps.java @@ -25,9 +25,9 @@ public final class NiveousWisps extends CardImpl { // Target creature becomes white until end of turn. Tap that creature. this.getSpellAbility().addTarget(new TargetCreaturePermanent()); this.getSpellAbility().addEffect(new BecomesColorTargetEffect(ObjectColor.WHITE, Duration.EndOfTurn)); - this.getSpellAbility().addEffect(new TapTargetEffect()); + this.getSpellAbility().addEffect(new TapTargetEffect("tap that creature")); // Draw a card. - this.getSpellAbility().addEffect(new DrawCardSourceControllerEffect(1)); + this.getSpellAbility().addEffect(new DrawCardSourceControllerEffect(1).concatBy("
")); } public NiveousWisps (final NiveousWisps card) { diff --git a/Mage.Sets/src/mage/cards/p/PunctureBolt.java b/Mage.Sets/src/mage/cards/p/PunctureBolt.java index 7a1faf54ab..da2625f805 100644 --- a/Mage.Sets/src/mage/cards/p/PunctureBolt.java +++ b/Mage.Sets/src/mage/cards/p/PunctureBolt.java @@ -19,10 +19,9 @@ public final class PunctureBolt extends CardImpl { public PunctureBolt(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.INSTANT},"{1}{R}"); - // Puncture Bolt deals 1 damage to target creature. Put a -1/-1 counter on that creature. this.getSpellAbility().addEffect(new DamageTargetEffect(1)); - this.getSpellAbility().addEffect(new AddCountersTargetEffect(CounterType.M1M1.createInstance())); + this.getSpellAbility().addEffect(new AddCountersTargetEffect(CounterType.M1M1.createInstance()).setText("put a -1/-1 counter on that creature")); this.getSpellAbility().addTarget(new TargetCreaturePermanent()); } diff --git a/Mage.Sets/src/mage/cards/r/RageReflection.java b/Mage.Sets/src/mage/cards/r/RageReflection.java index 67084a1014..f0879bbd54 100644 --- a/Mage.Sets/src/mage/cards/r/RageReflection.java +++ b/Mage.Sets/src/mage/cards/r/RageReflection.java @@ -23,7 +23,7 @@ public final class RageReflection extends CardImpl { super(ownerId, setInfo, new CardType[]{CardType.ENCHANTMENT}, "{4}{R}{R}"); // Creatures you control have double strike. - this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new GainAbilityControlledEffect(DoubleStrikeAbility.getInstance(), Duration.WhileOnBattlefield, StaticFilters.FILTER_PERMANENT_CREATURE, false))); + this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new GainAbilityControlledEffect(DoubleStrikeAbility.getInstance(), Duration.WhileOnBattlefield, StaticFilters.FILTER_PERMANENT_CREATURES, false))); } private RageReflection(final RageReflection card) { diff --git a/Mage.Sets/src/mage/cards/r/RepelIntruders.java b/Mage.Sets/src/mage/cards/r/RepelIntruders.java index 14ddd8b7df..a3956709f5 100644 --- a/Mage.Sets/src/mage/cards/r/RepelIntruders.java +++ b/Mage.Sets/src/mage/cards/r/RepelIntruders.java @@ -32,7 +32,7 @@ public final class RepelIntruders extends CardImpl { new ManaWasSpentCondition(ColoredManaSymbol.W), "Create two 1/1 white Kithkin Soldier creature tokens if {W} was spent to cast this spell")); this.getSpellAbility().addEffect(new ConditionalOneShotEffect( new CounterTargetEffect(), - new ManaWasSpentCondition(ColoredManaSymbol.U), " Counter up to one target creature spell if {U} was spent to cast this spell")); + new ManaWasSpentCondition(ColoredManaSymbol.U), "Counter up to one target creature spell if {U} was spent to cast this spell")); this.getSpellAbility().addTarget(target); this.getSpellAbility().addEffect(new InfoEffect("(Do both if {W}{U} was spent.)")); diff --git a/Mage.Sets/src/mage/cards/r/RevelsongHorn.java b/Mage.Sets/src/mage/cards/r/RevelsongHorn.java index 4850edd458..f93ecca0dd 100644 --- a/Mage.Sets/src/mage/cards/r/RevelsongHorn.java +++ b/Mage.Sets/src/mage/cards/r/RevelsongHorn.java @@ -1,35 +1,43 @@ - package mage.cards.r; -import java.util.UUID; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.common.TapSourceCost; import mage.abilities.costs.common.TapTargetCost; -import mage.abilities.costs.mana.ManaCostsImpl; +import mage.abilities.costs.mana.GenericManaCost; import mage.abilities.effects.common.continuous.BoostTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Duration; -import mage.constants.Zone; -import mage.target.common.TargetControlledCreaturePermanent; +import mage.filter.common.FilterControlledCreaturePermanent; +import mage.filter.common.FilterControlledPermanent; +import mage.filter.predicate.permanent.TappedPredicate; +import mage.target.common.TargetControlledPermanent; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** - * * @author North */ public final class RevelsongHorn extends CardImpl { + private static final FilterControlledPermanent filter + = new FilterControlledCreaturePermanent("an untapped creature you control"); + + static { + filter.add(TappedPredicate.UNTAPPED); + } + public RevelsongHorn(UUID ownerId, CardSetInfo setInfo) { - super(ownerId,setInfo,new CardType[]{CardType.ARTIFACT},"{2}"); + super(ownerId, setInfo, new CardType[]{CardType.ARTIFACT}, "{2}"); // {1}, {tap}, Tap an untapped creature you control: Target creature gets +1/+1 until end of turn. - SimpleActivatedAbility ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, - new BoostTargetEffect(1, 1, Duration.EndOfTurn), - new ManaCostsImpl("{1}")); + SimpleActivatedAbility ability = new SimpleActivatedAbility( + new BoostTargetEffect(1, 1, Duration.EndOfTurn), new GenericManaCost(1) + ); ability.addCost(new TapSourceCost()); - ability.addCost(new TapTargetCost(new TargetControlledCreaturePermanent())); + ability.addCost(new TapTargetCost(new TargetControlledPermanent(filter))); ability.addTarget(new TargetCreaturePermanent()); this.addAbility(ability); } diff --git a/Mage.Sets/src/mage/cards/r/RiverKelpie.java b/Mage.Sets/src/mage/cards/r/RiverKelpie.java index e8d136a1dd..84fce32de1 100644 --- a/Mage.Sets/src/mage/cards/r/RiverKelpie.java +++ b/Mage.Sets/src/mage/cards/r/RiverKelpie.java @@ -76,7 +76,7 @@ class RiverKelpieTriggeredAbility extends TriggeredAbilityImpl { @Override public String getRule() { - return "Whenever {this} or another permanent is put onto the battlefield from a graveyard, draw a card."; + return "Whenever {this} or another permanent enters the battlefield from a graveyard, draw a card."; } } diff --git a/Mage.Sets/src/mage/cards/r/RiversGrasp.java b/Mage.Sets/src/mage/cards/r/RiversGrasp.java index 95b3fb8426..e5fd3a9c48 100644 --- a/Mage.Sets/src/mage/cards/r/RiversGrasp.java +++ b/Mage.Sets/src/mage/cards/r/RiversGrasp.java @@ -34,7 +34,7 @@ public final class RiversGrasp extends CardImpl { this.getSpellAbility().addEffect(new ConditionalOneShotEffect( new DiscardCardYouChooseTargetEffect(StaticFilters.FILTER_CARD_NON_LAND, TargetController.ANY), new ManaWasSpentCondition(ColoredManaSymbol.B), - " If {B} was spent to cast this spell, target player reveals their hand, you choose a nonland card from it, then that player discards that card") + "If {B} was spent to cast this spell, target player reveals their hand, you choose a nonland card from it, then that player discards that card") .setTargetPointer(new SecondTargetPointer())); this.getSpellAbility().addTarget(new TargetCreaturePermanent(0, 1)); diff --git a/Mage.Sets/src/mage/cards/s/SeedcradleWitch.java b/Mage.Sets/src/mage/cards/s/SeedcradleWitch.java index a06280bbb3..295b0056a4 100644 --- a/Mage.Sets/src/mage/cards/s/SeedcradleWitch.java +++ b/Mage.Sets/src/mage/cards/s/SeedcradleWitch.java @@ -31,7 +31,7 @@ public final class SeedcradleWitch extends CardImpl { // {2}{G}{W}: Target creature gets +3/+3 until end of turn. Untap that creature. SimpleActivatedAbility ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new BoostTargetEffect(3, 3, Duration.EndOfTurn), new ManaCostsImpl("{2}{G}{W}")); - ability.addEffect(new UntapTargetEffect()); + ability.addEffect(new UntapTargetEffect().setText("untap that creature")); ability.addTarget(new TargetCreaturePermanent()); this.addAbility(ability); } diff --git a/Mage.Sets/src/mage/cards/s/ShieldOfTheOversoul.java b/Mage.Sets/src/mage/cards/s/ShieldOfTheOversoul.java index d371b8b838..8af2a2d6c0 100644 --- a/Mage.Sets/src/mage/cards/s/ShieldOfTheOversoul.java +++ b/Mage.Sets/src/mage/cards/s/ShieldOfTheOversoul.java @@ -42,7 +42,7 @@ public final class ShieldOfTheOversoul extends CardImpl { this.addAbility(ability); // As long as enchanted creature is green, it gets +1/+1 and is indestructible. SimpleStaticAbility greenAbility = new SimpleStaticAbility(Zone.BATTLEFIELD, new ConditionalContinuousEffect(new BoostEnchantedEffect(1, 1), new EnchantedCreatureColorCondition(ObjectColor.GREEN), "As long as enchanted creature is green, it gets +1/+1")); - greenAbility.addEffect(new ConditionalContinuousEffect(new GainAbilityAttachedEffect(IndestructibleAbility.getInstance() ,AttachmentType.AURA), new EnchantedCreatureColorCondition(ObjectColor.GREEN), "and is indestructible")); + greenAbility.addEffect(new ConditionalContinuousEffect(new GainAbilityAttachedEffect(IndestructibleAbility.getInstance() ,AttachmentType.AURA), new EnchantedCreatureColorCondition(ObjectColor.GREEN), "and has indestructible")); this.addAbility(greenAbility); // As long as enchanted creature is white, it gets +1/+1 and has flying. SimpleStaticAbility whiteAbility = new SimpleStaticAbility(Zone.BATTLEFIELD, new ConditionalContinuousEffect(new BoostEnchantedEffect(1, 1), new EnchantedCreatureColorCondition(ObjectColor.WHITE), "As long as enchanted creature is white, it gets +1/+1")); diff --git a/Mage.Sets/src/mage/cards/s/SinkingFeeling.java b/Mage.Sets/src/mage/cards/s/SinkingFeeling.java index 5d216b1ead..eb5098dc99 100644 --- a/Mage.Sets/src/mage/cards/s/SinkingFeeling.java +++ b/Mage.Sets/src/mage/cards/s/SinkingFeeling.java @@ -47,8 +47,8 @@ public final class SinkingFeeling extends CardImpl { // Enchanted creature has "{1}, Put a -1/-1 counter on this creature: Untap this creature. Ability ability2 = new SimpleActivatedAbility(Zone.BATTLEFIELD, new UntapSourceEffect(), new ManaCostsImpl("{1}")); - ability2.addCost(new PutCountersSourceCost(CounterType.M1M1.createInstance())); - this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new GainAbilityAttachedEffect(ability2, AttachmentType.AURA, Duration.Custom, "Enchanted creature has \"{1}, Put a -1/-1 counter on this creature: Untap this creature."))); + ability2.addCost(new PutCountersSourceCost(CounterType.M1M1.createInstance()).setText("put a -1/-1 counter on this creature")); + this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new GainAbilityAttachedEffect(ability2, AttachmentType.AURA, Duration.Custom, "Enchanted creature has \"{1}, Put a -1/-1 counter on this creature: Untap this creature.\""))); } diff --git a/Mage.Sets/src/mage/cards/s/SlinkingGiant.java b/Mage.Sets/src/mage/cards/s/SlinkingGiant.java index dc9a0af374..f5d58e3e95 100644 --- a/Mage.Sets/src/mage/cards/s/SlinkingGiant.java +++ b/Mage.Sets/src/mage/cards/s/SlinkingGiant.java @@ -28,7 +28,7 @@ public final class SlinkingGiant extends CardImpl { this.addAbility(WitherAbility.getInstance()); // Whenever Slinking Giant blocks or becomes blocked, it gets -3/-0 until end of turn. - this.addAbility(new BlocksOrBecomesBlockedSourceTriggeredAbility(new BoostSourceEffect(-3, 0, Duration.EndOfTurn), false)); + this.addAbility(new BlocksOrBecomesBlockedSourceTriggeredAbility(new BoostSourceEffect(-3, 0, Duration.EndOfTurn).setText("it gets -3/-0 until end of turn"), false).setTriggerPhrase("Whenever {this} blocks or becomes blocked, ")); } private SlinkingGiant(final SlinkingGiant card) { diff --git a/Mage.Sets/src/mage/cards/s/SpitefulVisions.java b/Mage.Sets/src/mage/cards/s/SpitefulVisions.java index 2f6b7c5a5a..7ab15780d0 100644 --- a/Mage.Sets/src/mage/cards/s/SpitefulVisions.java +++ b/Mage.Sets/src/mage/cards/s/SpitefulVisions.java @@ -29,7 +29,7 @@ public final class SpitefulVisions extends CardImpl { // At the beginning of each player's draw step, that player draws an additional card. - this.addAbility(new BeginningOfDrawTriggeredAbility(new DrawCardTargetEffect(1), TargetController.ANY, false)); + this.addAbility(new BeginningOfDrawTriggeredAbility(new DrawCardTargetEffect(1).setText("that player draws an additional card"), TargetController.ANY, false)); // Whenever a player draws a card, Spiteful Visions deals 1 damage to that player. TriggeredAbility triggeredAbility = new SpitefulVisionsTriggeredAbility(new DamageTargetEffect(1), false); @@ -74,7 +74,7 @@ class SpitefulVisionsTriggeredAbility extends TriggeredAbilityImpl { @Override public String getRule() { - return "Whenever a player draws a card, Spiteful Visions deals 1 damage to that player."; + return "Whenever a player draws a card, {this} deals 1 damage to that player."; } @Override diff --git a/Mage.Sets/src/mage/cards/t/TattermungeWitch.java b/Mage.Sets/src/mage/cards/t/TattermungeWitch.java index f0ca061f3d..e1521f1b75 100644 --- a/Mage.Sets/src/mage/cards/t/TattermungeWitch.java +++ b/Mage.Sets/src/mage/cards/t/TattermungeWitch.java @@ -38,7 +38,7 @@ public final class TattermungeWitch extends CardImpl { this.toughness = new MageInt(1); // {R}{G}: Each blocked creature gets +1/+0 and gains trample until end of turn. - Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new BoostAllEffect(1, 0, Duration.EndOfTurn, filter, false), new ManaCostsImpl("{R}{G}")); + Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new BoostAllEffect(1, 0, Duration.EndOfTurn, filter, false).setText("each blocked creature gets +1/+0"), new ManaCostsImpl("{R}{G}")); ability.addEffect(new GainAbilityAllEffect(TrampleAbility.getInstance(), Duration.EndOfTurn, filter, "and gains trample until end of turn")); this.addAbility(ability); diff --git a/Mage.Sets/src/mage/cards/t/TorrentOfSouls.java b/Mage.Sets/src/mage/cards/t/TorrentOfSouls.java index 066a935d58..28dd0af542 100644 --- a/Mage.Sets/src/mage/cards/t/TorrentOfSouls.java +++ b/Mage.Sets/src/mage/cards/t/TorrentOfSouls.java @@ -44,7 +44,7 @@ public final class TorrentOfSouls extends CardImpl { new ManaWasSpentCondition(ColoredManaSymbol.B), "Return up to one target creature card from your graveyard to the battlefield if {B} was spent to cast this spell")); this.getSpellAbility().addEffect(new ConditionalOneShotEffect( new TorrentOfSoulsEffect(), - new ManaWasSpentCondition(ColoredManaSymbol.R), " Creatures target player controls get +2/+0 and gain haste until end of turn if {R} was spent to cast this spell")); + new ManaWasSpentCondition(ColoredManaSymbol.R), "Creatures target player controls get +2/+0 and gain haste until end of turn if {R} was spent to cast this spell")); this.getSpellAbility().addTarget(targetCreature); this.getSpellAbility().addTarget(targetPlayer); diff --git a/Mage.Sets/src/mage/cards/t/TowerAbove.java b/Mage.Sets/src/mage/cards/t/TowerAbove.java index 835602e56f..3a3af4b74c 100644 --- a/Mage.Sets/src/mage/cards/t/TowerAbove.java +++ b/Mage.Sets/src/mage/cards/t/TowerAbove.java @@ -52,7 +52,7 @@ class TowerAboveEffect extends OneShotEffect { public TowerAboveEffect() { super(Outcome.BoostCreature); - staticText = "Until end of turn, target creature gets +4/+4 and gains trample, wither, and \"When this creature attacks, target creature blocks it this turn if able."; + staticText = "Until end of turn, target creature gets +4/+4 and gains trample, wither, and \"When this creature attacks, target creature blocks it this turn if able.\""; } public TowerAboveEffect(final TowerAboveEffect effect) { diff --git a/Mage.Sets/src/mage/cards/u/UmbralMantle.java b/Mage.Sets/src/mage/cards/u/UmbralMantle.java index dca9ebb842..5ab1af3c0a 100644 --- a/Mage.Sets/src/mage/cards/u/UmbralMantle.java +++ b/Mage.Sets/src/mage/cards/u/UmbralMantle.java @@ -1,12 +1,10 @@ - package mage.cards.u; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.costs.common.UntapSourceCost; -import mage.abilities.costs.mana.ManaCostsImpl; +import mage.abilities.costs.mana.GenericManaCost; import mage.abilities.effects.common.continuous.BoostSourceEffect; import mage.abilities.effects.common.continuous.GainAbilityAttachedEffect; import mage.abilities.keyword.EquipAbility; @@ -14,27 +12,27 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.AttachmentType; import mage.constants.CardType; -import mage.constants.SubType; import mage.constants.Duration; -import mage.constants.Outcome; -import mage.constants.Zone; +import mage.constants.SubType; + +import java.util.UUID; /** - * * @author Plopman */ public final class UmbralMantle extends CardImpl { public UmbralMantle(UUID ownerId, CardSetInfo setInfo) { - super(ownerId,setInfo,new CardType[]{CardType.ARTIFACT},"{3}"); + super(ownerId, setInfo, new CardType[]{CardType.ARTIFACT}, "{3}"); this.subtype.add(SubType.EQUIPMENT); // Equipped creature has "{3}, {untap}: This creature gets +2/+2 until end of turn." - Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new BoostSourceEffect(2, 2, Duration.EndOfTurn), new ManaCostsImpl("{3}")); + Ability ability = new SimpleActivatedAbility(new BoostSourceEffect(2, 2, Duration.EndOfTurn).setText("this creature gets +2/+2 until end of turn"), new GenericManaCost(3)); ability.addCost(new UntapSourceCost()); - this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new GainAbilityAttachedEffect(ability, AttachmentType.EQUIPMENT))); + this.addAbility(new SimpleStaticAbility(new GainAbilityAttachedEffect(ability, AttachmentType.EQUIPMENT))); + // Equip {0} - this.addAbility(new EquipAbility(Outcome.AddAbility, new ManaCostsImpl())); + this.addAbility(new EquipAbility(0)); } private UmbralMantle(final UmbralMantle card) { diff --git a/Mage.Sets/src/mage/cards/v/ViridescentWisps.java b/Mage.Sets/src/mage/cards/v/ViridescentWisps.java index d14abd7e92..bbefe90796 100644 --- a/Mage.Sets/src/mage/cards/v/ViridescentWisps.java +++ b/Mage.Sets/src/mage/cards/v/ViridescentWisps.java @@ -1,8 +1,5 @@ - - package mage.cards.v; -import java.util.UUID; import mage.ObjectColor; import mage.abilities.effects.common.DrawCardSourceControllerEffect; import mage.abilities.effects.common.continuous.BecomesColorTargetEffect; @@ -13,24 +10,30 @@ import mage.constants.CardType; import mage.constants.Duration; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** - * * @author LevelX */ public final class ViridescentWisps extends CardImpl { - public ViridescentWisps (UUID ownerId, CardSetInfo setInfo) { - super(ownerId,setInfo,new CardType[]{CardType.INSTANT},"{G}"); + public ViridescentWisps(UUID ownerId, CardSetInfo setInfo) { + super(ownerId, setInfo, new CardType[]{CardType.INSTANT}, "{G}"); // Target creature becomes green and gets +1/+0 until end of turn. + this.getSpellAbility().addEffect(new BecomesColorTargetEffect( + ObjectColor.GREEN, Duration.EndOfTurn + ).setText("target creature becomes green")); + this.getSpellAbility().addEffect(new BoostTargetEffect( + 1, 0, Duration.EndOfTurn + ).setText("and gets +1/+0 until end of turn")); this.getSpellAbility().addTarget(new TargetCreaturePermanent()); - this.getSpellAbility().addEffect(new BecomesColorTargetEffect(ObjectColor.GREEN, Duration.EndOfTurn)); - this.getSpellAbility().addEffect(new BoostTargetEffect(1,0, Duration.EndOfTurn)); + // Draw a card. - this.getSpellAbility().addEffect(new DrawCardSourceControllerEffect(1)); + this.getSpellAbility().addEffect(new DrawCardSourceControllerEffect(1).concatBy("
")); } - public ViridescentWisps (final ViridescentWisps card) { + public ViridescentWisps(final ViridescentWisps card) { super(card); } @@ -38,6 +41,4 @@ public final class ViridescentWisps extends CardImpl { public ViridescentWisps copy() { return new ViridescentWisps(this); } - } - diff --git a/Mage.Sets/src/mage/cards/w/WickerWarcrawler.java b/Mage.Sets/src/mage/cards/w/WickerWarcrawler.java index deea93a018..27d61d8d20 100644 --- a/Mage.Sets/src/mage/cards/w/WickerWarcrawler.java +++ b/Mage.Sets/src/mage/cards/w/WickerWarcrawler.java @@ -1,12 +1,8 @@ - package mage.cards.w; -import java.util.UUID; import mage.MageInt; -import mage.abilities.DelayedTriggeredAbility; import mage.abilities.common.AttacksOrBlocksTriggeredAbility; import mage.abilities.common.delayed.AtTheEndOfCombatDelayedTriggeredAbility; -import mage.abilities.effects.Effect; import mage.abilities.effects.common.CreateDelayedTriggeredAbilityEffect; import mage.abilities.effects.common.counter.AddCountersSourceEffect; import mage.cards.CardImpl; @@ -15,24 +11,25 @@ import mage.constants.CardType; import mage.constants.SubType; import mage.counters.CounterType; +import java.util.UUID; + /** - * * @author jeffwadsworth */ public final class WickerWarcrawler extends CardImpl { public WickerWarcrawler(UUID ownerId, CardSetInfo setInfo) { - super(ownerId,setInfo,new CardType[]{CardType.ARTIFACT,CardType.CREATURE},"{5}"); + super(ownerId, setInfo, new CardType[]{CardType.ARTIFACT, CardType.CREATURE}, "{5}"); this.subtype.add(SubType.SCARECROW); this.power = new MageInt(6); this.toughness = new MageInt(6); // Whenever Wicker Warcrawler attacks or blocks, put a -1/-1 counter on it at end of combat. - Effect effect = new AddCountersSourceEffect(CounterType.M1M1.createInstance(), true); - effect.setText("put a -1/-1 counter on it at end of combat"); - DelayedTriggeredAbility ability = new AtTheEndOfCombatDelayedTriggeredAbility(effect); - this.addAbility(new AttacksOrBlocksTriggeredAbility(new CreateDelayedTriggeredAbilityEffect(ability, false, false), false)); - + this.addAbility(new AttacksOrBlocksTriggeredAbility( + new CreateDelayedTriggeredAbilityEffect(new AtTheEndOfCombatDelayedTriggeredAbility( + new AddCountersSourceEffect(CounterType.M1M1.createInstance(), true) + ), false, false).setText("put a -1/-1 counter on it at end of combat"), false + ).setTriggerPhrase("Whenever {this} attacks or blocks, ")); } private WickerWarcrawler(final WickerWarcrawler card) { diff --git a/Mage.Sets/src/mage/cards/w/WitherscaleWurm.java b/Mage.Sets/src/mage/cards/w/WitherscaleWurm.java index 2c5ab14081..05d46868d4 100644 --- a/Mage.Sets/src/mage/cards/w/WitherscaleWurm.java +++ b/Mage.Sets/src/mage/cards/w/WitherscaleWurm.java @@ -34,7 +34,7 @@ public final class WitherscaleWurm extends CardImpl { // Whenever Witherscale Wurm blocks or becomes blocked by a creature, that creature gains wither until end of turn. Effect effect = new GainAbilityTargetEffect(WitherAbility.getInstance(), Duration.EndOfTurn); effect.setText("that creature gains wither until end of turn"); - Ability ability = new BlocksOrBecomesBlockedSourceTriggeredAbility(effect, StaticFilters.FILTER_PERMANENT_A_CREATURE, false, null, true); + Ability ability = new BlocksOrBecomesBlockedSourceTriggeredAbility(effect, StaticFilters.FILTER_PERMANENT_CREATURE, false, null, true); this.addAbility(ability); // Whenever Witherscale Wurm deals damage to an opponent, remove all -1/-1 counters from it. diff --git a/Mage.Verify/src/test/java/mage/verify/VerifyCardDataTest.java b/Mage.Verify/src/test/java/mage/verify/VerifyCardDataTest.java index 229e5b1fff..fb64a2ab65 100644 --- a/Mage.Verify/src/test/java/mage/verify/VerifyCardDataTest.java +++ b/Mage.Verify/src/test/java/mage/verify/VerifyCardDataTest.java @@ -62,7 +62,7 @@ public class VerifyCardDataTest { private static final Logger logger = Logger.getLogger(VerifyCardDataTest.class); - private static final String FULL_ABILITIES_CHECK_SET_CODE = "EVE"; // check all abilities and output cards with wrong abilities texts; + private static final String FULL_ABILITIES_CHECK_SET_CODE = "SHM"; // 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 ONLY_TEXT = false; // use when checking text locally, suppresses unnecessary checks and output messages diff --git a/Mage/src/main/java/mage/abilities/keyword/ConspireAbility.java b/Mage/src/main/java/mage/abilities/keyword/ConspireAbility.java index 7532725b29..8edac415e6 100644 --- a/Mage/src/main/java/mage/abilities/keyword/ConspireAbility.java +++ b/Mage/src/main/java/mage/abilities/keyword/ConspireAbility.java @@ -144,12 +144,7 @@ public class ConspireAbility extends StaticAbility implements OptionalAdditional @Override public String getRule() { - StringBuilder sb = new StringBuilder(); - if (conspireCost != null) { - sb.append(conspireCost.getText(false)); - sb.append(' ').append(conspireCost.getReminderText()); - } - return sb.toString(); + return "Conspire (" + reminderText + ")"; } @Override