[SHM] various text fixes

This commit is contained in:
Evan Kranzler 2022-03-07 22:53:52 -05:00
parent 7f95929288
commit 8999a6e647
40 changed files with 121 additions and 121 deletions

View file

@ -57,7 +57,7 @@ class CemeteryPucaEffect extends OneShotEffect {
public CemeteryPucaEffect() { public CemeteryPucaEffect() {
super(Outcome.Copy); 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) { public CemeteryPucaEffect(final CemeteryPucaEffect effect) {

View file

@ -28,7 +28,7 @@ public final class CeruleanWisps extends CardImpl {
this.getSpellAbility().addEffect(new UntapTargetEffect().setText("Untap that creature")); this.getSpellAbility().addEffect(new UntapTargetEffect().setText("Untap that creature"));
// Draw a card. // Draw a card.
this.getSpellAbility().addEffect(new DrawCardSourceControllerEffect(1)); this.getSpellAbility().addEffect(new DrawCardSourceControllerEffect(1).concatBy("<br>"));
} }
public CeruleanWisps (final CeruleanWisps card) { public CeruleanWisps (final CeruleanWisps card) {

View file

@ -1,45 +1,45 @@
package mage.cards.c; package mage.cards.c;
import java.util.UUID;
import mage.MageInt; import mage.MageInt;
import mage.abilities.Ability; import mage.abilities.Ability;
import mage.abilities.common.EntersBattlefieldAbility; import mage.abilities.common.EntersBattlefieldAbility;
import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.common.SimpleActivatedAbility;
import mage.abilities.costs.common.TapSourceCost; 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.AddCountersSourceEffect;
import mage.abilities.effects.common.counter.RemoveCounterTargetEffect; import mage.abilities.effects.common.counter.RemoveCounterTargetEffect;
import mage.cards.CardImpl; import mage.cards.CardImpl;
import mage.cards.CardSetInfo; import mage.cards.CardSetInfo;
import mage.constants.CardType; import mage.constants.CardType;
import mage.constants.SubType; import mage.constants.SubType;
import mage.constants.Zone;
import mage.counters.CounterType; import mage.counters.CounterType;
import mage.filter.common.FilterCreaturePermanent;
import mage.target.common.TargetCreaturePermanent; import mage.target.common.TargetCreaturePermanent;
import java.util.UUID;
/** /**
*
* @author jeffwadsworth * @author jeffwadsworth
*/ */
public final class Chainbreaker extends CardImpl { public final class Chainbreaker extends CardImpl {
public Chainbreaker(UUID ownerId, CardSetInfo setInfo) { 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.subtype.add(SubType.SCARECROW);
this.power = new MageInt(3); this.power = new MageInt(3);
this.toughness = new MageInt(3); this.toughness = new MageInt(3);
// Chainbreaker enters the battlefield with two -1/-1 counters on it. // 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. // {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.addCost(new TapSourceCost());
ability.addTarget(new TargetCreaturePermanent(new FilterCreaturePermanent("target creature"))); ability.addTarget(new TargetCreaturePermanent());
this.addAbility(ability); this.addAbility(ability);
} }
private Chainbreaker(final Chainbreaker card) { private Chainbreaker(final Chainbreaker card) {

View file

@ -21,7 +21,7 @@ public final class Counterbore extends CardImpl {
// Counter target spell. // 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. // 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().addTarget(new TargetSpell());
this.getSpellAbility().addEffect(new CounterTargetAndSearchGraveyardHandLibraryEffect()); this.getSpellAbility().addEffect(new CounterTargetAndSearchGraveyardHandLibraryEffect().concatBy("."));
} }
private Counterbore(final Counterbore card) { private Counterbore(final Counterbore card) {

View file

@ -52,7 +52,7 @@ class CragganwickCrematorEffect extends OneShotEffect {
public CragganwickCrematorEffect() { public CragganwickCrematorEffect() {
super(Outcome.Neutral); 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) { public CragganwickCrematorEffect(final CragganwickCrematorEffect effect) {

View file

@ -1,8 +1,5 @@
package mage.cards.c; package mage.cards.c;
import java.util.UUID;
import mage.ObjectColor; import mage.ObjectColor;
import mage.abilities.effects.common.DrawCardSourceControllerEffect; import mage.abilities.effects.common.DrawCardSourceControllerEffect;
import mage.abilities.effects.common.continuous.BecomesColorTargetEffect; import mage.abilities.effects.common.continuous.BecomesColorTargetEffect;
@ -14,25 +11,30 @@ import mage.constants.CardType;
import mage.constants.Duration; import mage.constants.Duration;
import mage.target.common.TargetCreaturePermanent; import mage.target.common.TargetCreaturePermanent;
import java.util.UUID;
/** /**
*
* @author LevelX * @author LevelX
*/ */
public final class CrimsonWisps extends CardImpl { public final class CrimsonWisps extends CardImpl {
public CrimsonWisps (UUID ownerId, CardSetInfo setInfo) { public CrimsonWisps(UUID ownerId, CardSetInfo setInfo) {
super(ownerId,setInfo,new CardType[]{CardType.INSTANT},"{R}"); super(ownerId, setInfo, new CardType[]{CardType.INSTANT}, "{R}");
// Target creature becomes red and gains haste until end of turn. // 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().addTarget(new TargetCreaturePermanent());
this.getSpellAbility().addEffect(new BecomesColorTargetEffect(ObjectColor.RED, Duration.EndOfTurn));
this.getSpellAbility().addEffect(new GainAbilityTargetEffect(HasteAbility.getInstance(), Duration.EndOfTurn));
// Draw a card. // Draw a card.
this.getSpellAbility().addEffect(new DrawCardSourceControllerEffect(1)); this.getSpellAbility().addEffect(new DrawCardSourceControllerEffect(1).concatBy("<br>"));
} }
public CrimsonWisps (final CrimsonWisps card) { public CrimsonWisps(final CrimsonWisps card) {
super(card); super(card);
} }
@ -40,6 +42,4 @@ public final class CrimsonWisps extends CardImpl {
public CrimsonWisps copy() { public CrimsonWisps copy() {
return new CrimsonWisps(this); return new CrimsonWisps(this);
} }
} }

View file

@ -35,7 +35,7 @@ public final class CurseOfChains extends CardImpl {
this.addAbility(ability); this.addAbility(ability);
// At the beginning of each upkeep, tap enchanted creature. // 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) { private CurseOfChains(final CurseOfChains card) {

View file

@ -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")); new ManaWasSpentCondition(ColoredManaSymbol.G), "You gain X life if {G} was spent to cast this spell"));
this.getSpellAbility().addEffect(new ConditionalOneShotEffect( this.getSpellAbility().addEffect(new ConditionalOneShotEffect(
new GainLifeEffect(xValue), 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("<i>(Do both if {G}{W} was spent.)</i>")); this.getSpellAbility().addEffect(new InfoEffect("<i>(Do both if {G}{W} was spent.)</i>"));

View file

@ -36,7 +36,7 @@ public final class DeepSlumberTitan extends CardImpl {
this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new DontUntapInControllersUntapStepSourceEffect())); this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new DontUntapInControllersUntapStepSourceEffect()));
// Whenever Deep-Slumber Titan is dealt damage, untap it. // 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));
} }

View file

@ -1,31 +1,32 @@
package mage.cards.d; package mage.cards.d;
import java.util.UUID;
import mage.abilities.effects.common.ReturnToHandTargetEffect; import mage.abilities.effects.common.ReturnToHandTargetEffect;
import mage.abilities.keyword.ConspireAbility; import mage.abilities.keyword.ConspireAbility;
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.filter.FilterCard;
import mage.filter.common.FilterCreatureCard; import mage.filter.common.FilterCreatureCard;
import mage.target.common.TargetCardInGraveyard; import mage.target.common.TargetCardInGraveyard;
import java.util.UUID;
/** /**
*
* @author jeffwadsworth * @author jeffwadsworth
*/ */
public final class DisturbingPlot extends CardImpl { public final class DisturbingPlot extends CardImpl {
private static final FilterCard filter = new FilterCreatureCard("creature card from a graveyard");
public DisturbingPlot(UUID ownerId, CardSetInfo setInfo) { 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. // Return target creature card from a graveyard to its owner's hand.
this.getSpellAbility().addEffect(new ReturnToHandTargetEffect()); this.getSpellAbility().addEffect(new ReturnToHandTargetEffect());
this.getSpellAbility().addTarget(new TargetCardInGraveyard(new FilterCreatureCard("creature card in a graveyard"))); this.getSpellAbility().addTarget(new TargetCardInGraveyard(filter));
// Conspire // Conspire
this.addAbility(new ConspireAbility(ConspireAbility.ConspireTargets.ONE)); this.addAbility(new ConspireAbility(ConspireAbility.ConspireTargets.ONE));
} }
private DisturbingPlot(final DisturbingPlot card) { private DisturbingPlot(final DisturbingPlot card) {

View file

@ -28,10 +28,10 @@ public final class DuskUrchins extends CardImpl {
this.toughness = new MageInt(3); this.toughness = new MageInt(3);
// Whenever Dusk Urchins attacks or blocks, put a -1/-1 counter on it. // 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. // 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")));
} }

View file

@ -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")); 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( this.getSpellAbility().addEffect(new ConditionalOneShotEffect(
new DamageAllEffect(3, filter2), new DamageAllEffect(3, filter2),
new ManaWasSpentCondition(ColoredManaSymbol.G), "and 3 damage to each creature with flying if {G} was spent to cast it. <i>(Do both if {R}{G} was spent.)</i>")); new ManaWasSpentCondition(ColoredManaSymbol.G), "and 3 damage to each creature with flying if {G} was spent to cast this spell. <i>(Do both if {R}{G} was spent.)</i>"));
} }
private Firespout(final Firespout card) { private Firespout(final Firespout card) {

View file

@ -31,7 +31,7 @@ public final class GriefTyrant extends CardImpl {
this.toughness = new MageInt(8); this.toughness = new MageInt(8);
// Grief Tyrant enters the battlefield with four -1/-1 counters on it. // 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. // 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()); Ability ability = new DiesSourceTriggeredAbility(new GriefTyrantEffect());

View file

@ -38,7 +38,7 @@ public final class GrimPoppet extends CardImpl {
this.toughness = new MageInt(4); this.toughness = new MageInt(4);
// Grim Poppet enters the battlefield with three -1/-1 counters on it. // 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. // 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())); Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new AddCountersTargetEffect(CounterType.M1M1.createInstance()), new RemoveCountersSourceCost(CounterType.M1M1.createInstance()));

View file

@ -27,7 +27,7 @@ public final class HungrySpriggan extends CardImpl {
this.toughness = new MageInt(1); this.toughness = new MageInt(1);
this.addAbility(TrampleAbility.getInstance()); 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) { private HungrySpriggan(final HungrySpriggan card) {

View file

@ -43,7 +43,7 @@ public final class LeechBonder extends CardImpl {
this.toughness = new MageInt(3); this.toughness = new MageInt(3);
// Leech Bonder enters the battlefield with two -1/-1 counters on it. // 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. // {U}, {untap}: Move a counter from target creature onto another target creature.
Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new LeechBonderEffect(), new ManaCostsImpl("{U}")); Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new LeechBonderEffect(), new ManaCostsImpl("{U}"));

View file

@ -22,7 +22,7 @@ public final class Manamorphose extends CardImpl {
this.getSpellAbility().addEffect(new AddManaInAnyCombinationEffect(2)); this.getSpellAbility().addEffect(new AddManaInAnyCombinationEffect(2));
// Draw a card. // Draw a card.
this.getSpellAbility().addEffect(new DrawCardSourceControllerEffect(1)); this.getSpellAbility().addEffect(new DrawCardSourceControllerEffect(1).concatBy("<br>"));
} }
private Manamorphose(final Manamorphose card) { private Manamorphose(final Manamorphose card) {

View file

@ -3,6 +3,7 @@ package mage.cards.m;
import java.util.UUID; import java.util.UUID;
import mage.abilities.effects.common.ReturnFromGraveyardToHandTargetEffect; import mage.abilities.effects.common.ReturnFromGraveyardToHandTargetEffect;
import mage.abilities.effects.common.ReturnToHandTargetEffect;
import mage.abilities.keyword.ConspireAbility; import mage.abilities.keyword.ConspireAbility;
import mage.cards.CardImpl; import mage.cards.CardImpl;
import mage.cards.CardSetInfo; import mage.cards.CardSetInfo;
@ -17,7 +18,7 @@ import mage.target.common.TargetCardInGraveyard;
*/ */
public final class MineExcavation extends CardImpl { 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 { static {
filter.add(Predicates.or(CardType.ARTIFACT.getPredicate(), 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}"); super(ownerId,setInfo,new CardType[]{CardType.SORCERY},"{1}{W}");
// Return target artifact or enchantment card from a graveyard to its owner's hand. // 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)); this.getSpellAbility().addTarget(new TargetCardInGraveyard(filter));
// Conspire // Conspire

View file

@ -30,7 +30,7 @@ public final class Morselhoarder extends CardImpl {
this.toughness = new MageInt(4); this.toughness = new MageInt(4);
// Morselhoarder enters the battlefield with two -1/-1 counters on it. // 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. // Remove a -1/-1 counter from Morselhoarder: Add one mana of any color.
this.addAbility(new MorselhoarderAbility()); this.addAbility(new MorselhoarderAbility());

View file

@ -25,9 +25,9 @@ public final class NiveousWisps extends CardImpl {
// Target creature becomes white until end of turn. Tap that creature. // Target creature becomes white until end of turn. Tap that creature.
this.getSpellAbility().addTarget(new TargetCreaturePermanent()); this.getSpellAbility().addTarget(new TargetCreaturePermanent());
this.getSpellAbility().addEffect(new BecomesColorTargetEffect(ObjectColor.WHITE, Duration.EndOfTurn)); 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. // Draw a card.
this.getSpellAbility().addEffect(new DrawCardSourceControllerEffect(1)); this.getSpellAbility().addEffect(new DrawCardSourceControllerEffect(1).concatBy("<br>"));
} }
public NiveousWisps (final NiveousWisps card) { public NiveousWisps (final NiveousWisps card) {

View file

@ -19,10 +19,9 @@ public final class PunctureBolt extends CardImpl {
public PunctureBolt(UUID ownerId, CardSetInfo setInfo) { public PunctureBolt(UUID ownerId, CardSetInfo setInfo) {
super(ownerId,setInfo,new CardType[]{CardType.INSTANT},"{1}{R}"); 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. // 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 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()); this.getSpellAbility().addTarget(new TargetCreaturePermanent());
} }

View file

@ -23,7 +23,7 @@ public final class RageReflection extends CardImpl {
super(ownerId, setInfo, new CardType[]{CardType.ENCHANTMENT}, "{4}{R}{R}"); super(ownerId, setInfo, new CardType[]{CardType.ENCHANTMENT}, "{4}{R}{R}");
// Creatures you control have double strike. // 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) { private RageReflection(final RageReflection card) {

View file

@ -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")); 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( this.getSpellAbility().addEffect(new ConditionalOneShotEffect(
new CounterTargetEffect(), 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().addTarget(target);
this.getSpellAbility().addEffect(new InfoEffect("<i>(Do both if {W}{U} was spent.)</i>")); this.getSpellAbility().addEffect(new InfoEffect("<i>(Do both if {W}{U} was spent.)</i>"));

View file

@ -1,35 +1,43 @@
package mage.cards.r; package mage.cards.r;
import java.util.UUID;
import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.common.SimpleActivatedAbility;
import mage.abilities.costs.common.TapSourceCost; import mage.abilities.costs.common.TapSourceCost;
import mage.abilities.costs.common.TapTargetCost; 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.abilities.effects.common.continuous.BoostTargetEffect;
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.Duration; import mage.constants.Duration;
import mage.constants.Zone; import mage.filter.common.FilterControlledCreaturePermanent;
import mage.target.common.TargetControlledCreaturePermanent; import mage.filter.common.FilterControlledPermanent;
import mage.filter.predicate.permanent.TappedPredicate;
import mage.target.common.TargetControlledPermanent;
import mage.target.common.TargetCreaturePermanent; import mage.target.common.TargetCreaturePermanent;
import java.util.UUID;
/** /**
*
* @author North * @author North
*/ */
public final class RevelsongHorn extends CardImpl { 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) { 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. // {1}, {tap}, Tap an untapped creature you control: Target creature gets +1/+1 until end of turn.
SimpleActivatedAbility ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, SimpleActivatedAbility ability = new SimpleActivatedAbility(
new BoostTargetEffect(1, 1, Duration.EndOfTurn), new BoostTargetEffect(1, 1, Duration.EndOfTurn), new GenericManaCost(1)
new ManaCostsImpl("{1}")); );
ability.addCost(new TapSourceCost()); ability.addCost(new TapSourceCost());
ability.addCost(new TapTargetCost(new TargetControlledCreaturePermanent())); ability.addCost(new TapTargetCost(new TargetControlledPermanent(filter)));
ability.addTarget(new TargetCreaturePermanent()); ability.addTarget(new TargetCreaturePermanent());
this.addAbility(ability); this.addAbility(ability);
} }

View file

@ -76,7 +76,7 @@ class RiverKelpieTriggeredAbility extends TriggeredAbilityImpl {
@Override @Override
public String getRule() { 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.";
} }
} }

View file

@ -34,7 +34,7 @@ public final class RiversGrasp extends CardImpl {
this.getSpellAbility().addEffect(new ConditionalOneShotEffect( this.getSpellAbility().addEffect(new ConditionalOneShotEffect(
new DiscardCardYouChooseTargetEffect(StaticFilters.FILTER_CARD_NON_LAND, TargetController.ANY), new DiscardCardYouChooseTargetEffect(StaticFilters.FILTER_CARD_NON_LAND, TargetController.ANY),
new ManaWasSpentCondition(ColoredManaSymbol.B), 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())); .setTargetPointer(new SecondTargetPointer()));
this.getSpellAbility().addTarget(new TargetCreaturePermanent(0, 1)); this.getSpellAbility().addTarget(new TargetCreaturePermanent(0, 1));

View file

@ -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. // {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}")); 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()); ability.addTarget(new TargetCreaturePermanent());
this.addAbility(ability); this.addAbility(ability);
} }

View file

@ -42,7 +42,7 @@ public final class ShieldOfTheOversoul extends CardImpl {
this.addAbility(ability); this.addAbility(ability);
// As long as enchanted creature is green, it gets +1/+1 and is indestructible. // 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")); 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); this.addAbility(greenAbility);
// As long as enchanted creature is white, it gets +1/+1 and has flying. // 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")); 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"));

View file

@ -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. // 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}")); Ability ability2 = new SimpleActivatedAbility(Zone.BATTLEFIELD, new UntapSourceEffect(), new ManaCostsImpl("{1}"));
ability2.addCost(new PutCountersSourceCost(CounterType.M1M1.createInstance())); 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."))); 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.\"")));
} }

View file

@ -28,7 +28,7 @@ public final class SlinkingGiant extends CardImpl {
this.addAbility(WitherAbility.getInstance()); this.addAbility(WitherAbility.getInstance());
// Whenever Slinking Giant blocks or becomes blocked, it gets -3/-0 until end of turn. // 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) { private SlinkingGiant(final SlinkingGiant card) {

View file

@ -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. // 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. // Whenever a player draws a card, Spiteful Visions deals 1 damage to that player.
TriggeredAbility triggeredAbility = new SpitefulVisionsTriggeredAbility(new DamageTargetEffect(1), false); TriggeredAbility triggeredAbility = new SpitefulVisionsTriggeredAbility(new DamageTargetEffect(1), false);
@ -74,7 +74,7 @@ class SpitefulVisionsTriggeredAbility extends TriggeredAbilityImpl {
@Override @Override
public String getRule() { 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 @Override

View file

@ -38,7 +38,7 @@ public final class TattermungeWitch extends CardImpl {
this.toughness = new MageInt(1); this.toughness = new MageInt(1);
// {R}{G}: Each blocked creature gets +1/+0 and gains trample until end of turn. // {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")); ability.addEffect(new GainAbilityAllEffect(TrampleAbility.getInstance(), Duration.EndOfTurn, filter, "and gains trample until end of turn"));
this.addAbility(ability); this.addAbility(ability);

View file

@ -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")); 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( this.getSpellAbility().addEffect(new ConditionalOneShotEffect(
new TorrentOfSoulsEffect(), 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(targetCreature);
this.getSpellAbility().addTarget(targetPlayer); this.getSpellAbility().addTarget(targetPlayer);

View file

@ -52,7 +52,7 @@ class TowerAboveEffect extends OneShotEffect {
public TowerAboveEffect() { public TowerAboveEffect() {
super(Outcome.BoostCreature); 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) { public TowerAboveEffect(final TowerAboveEffect effect) {

View file

@ -1,12 +1,10 @@
package mage.cards.u; package mage.cards.u;
import java.util.UUID;
import mage.abilities.Ability; import mage.abilities.Ability;
import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.common.SimpleActivatedAbility;
import mage.abilities.common.SimpleStaticAbility; import mage.abilities.common.SimpleStaticAbility;
import mage.abilities.costs.common.UntapSourceCost; 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.BoostSourceEffect;
import mage.abilities.effects.common.continuous.GainAbilityAttachedEffect; import mage.abilities.effects.common.continuous.GainAbilityAttachedEffect;
import mage.abilities.keyword.EquipAbility; import mage.abilities.keyword.EquipAbility;
@ -14,27 +12,27 @@ import mage.cards.CardImpl;
import mage.cards.CardSetInfo; import mage.cards.CardSetInfo;
import mage.constants.AttachmentType; import mage.constants.AttachmentType;
import mage.constants.CardType; import mage.constants.CardType;
import mage.constants.SubType;
import mage.constants.Duration; import mage.constants.Duration;
import mage.constants.Outcome; import mage.constants.SubType;
import mage.constants.Zone;
import java.util.UUID;
/** /**
*
* @author Plopman * @author Plopman
*/ */
public final class UmbralMantle extends CardImpl { public final class UmbralMantle extends CardImpl {
public UmbralMantle(UUID ownerId, CardSetInfo setInfo) { 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); this.subtype.add(SubType.EQUIPMENT);
// Equipped creature has "{3}, {untap}: This creature gets +2/+2 until end of turn." // 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()); 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} // Equip {0}
this.addAbility(new EquipAbility(Outcome.AddAbility, new ManaCostsImpl())); this.addAbility(new EquipAbility(0));
} }
private UmbralMantle(final UmbralMantle card) { private UmbralMantle(final UmbralMantle card) {

View file

@ -1,8 +1,5 @@
package mage.cards.v; package mage.cards.v;
import java.util.UUID;
import mage.ObjectColor; import mage.ObjectColor;
import mage.abilities.effects.common.DrawCardSourceControllerEffect; import mage.abilities.effects.common.DrawCardSourceControllerEffect;
import mage.abilities.effects.common.continuous.BecomesColorTargetEffect; import mage.abilities.effects.common.continuous.BecomesColorTargetEffect;
@ -13,24 +10,30 @@ import mage.constants.CardType;
import mage.constants.Duration; import mage.constants.Duration;
import mage.target.common.TargetCreaturePermanent; import mage.target.common.TargetCreaturePermanent;
import java.util.UUID;
/** /**
*
* @author LevelX * @author LevelX
*/ */
public final class ViridescentWisps extends CardImpl { public final class ViridescentWisps extends CardImpl {
public ViridescentWisps (UUID ownerId, CardSetInfo setInfo) { public ViridescentWisps(UUID ownerId, CardSetInfo setInfo) {
super(ownerId,setInfo,new CardType[]{CardType.INSTANT},"{G}"); super(ownerId, setInfo, new CardType[]{CardType.INSTANT}, "{G}");
// Target creature becomes green and gets +1/+0 until end of turn. // 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().addTarget(new TargetCreaturePermanent());
this.getSpellAbility().addEffect(new BecomesColorTargetEffect(ObjectColor.GREEN, Duration.EndOfTurn));
this.getSpellAbility().addEffect(new BoostTargetEffect(1,0, Duration.EndOfTurn));
// Draw a card. // Draw a card.
this.getSpellAbility().addEffect(new DrawCardSourceControllerEffect(1)); this.getSpellAbility().addEffect(new DrawCardSourceControllerEffect(1).concatBy("<br>"));
} }
public ViridescentWisps (final ViridescentWisps card) { public ViridescentWisps(final ViridescentWisps card) {
super(card); super(card);
} }
@ -38,6 +41,4 @@ public final class ViridescentWisps extends CardImpl {
public ViridescentWisps copy() { public ViridescentWisps copy() {
return new ViridescentWisps(this); return new ViridescentWisps(this);
} }
} }

View file

@ -1,12 +1,8 @@
package mage.cards.w; package mage.cards.w;
import java.util.UUID;
import mage.MageInt; import mage.MageInt;
import mage.abilities.DelayedTriggeredAbility;
import mage.abilities.common.AttacksOrBlocksTriggeredAbility; import mage.abilities.common.AttacksOrBlocksTriggeredAbility;
import mage.abilities.common.delayed.AtTheEndOfCombatDelayedTriggeredAbility; import mage.abilities.common.delayed.AtTheEndOfCombatDelayedTriggeredAbility;
import mage.abilities.effects.Effect;
import mage.abilities.effects.common.CreateDelayedTriggeredAbilityEffect; import mage.abilities.effects.common.CreateDelayedTriggeredAbilityEffect;
import mage.abilities.effects.common.counter.AddCountersSourceEffect; import mage.abilities.effects.common.counter.AddCountersSourceEffect;
import mage.cards.CardImpl; import mage.cards.CardImpl;
@ -15,24 +11,25 @@ import mage.constants.CardType;
import mage.constants.SubType; import mage.constants.SubType;
import mage.counters.CounterType; import mage.counters.CounterType;
import java.util.UUID;
/** /**
*
* @author jeffwadsworth * @author jeffwadsworth
*/ */
public final class WickerWarcrawler extends CardImpl { public final class WickerWarcrawler extends CardImpl {
public WickerWarcrawler(UUID ownerId, CardSetInfo setInfo) { 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.subtype.add(SubType.SCARECROW);
this.power = new MageInt(6); this.power = new MageInt(6);
this.toughness = 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. // 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); this.addAbility(new AttacksOrBlocksTriggeredAbility(
effect.setText("put a -1/-1 counter on it at end of combat"); new CreateDelayedTriggeredAbilityEffect(new AtTheEndOfCombatDelayedTriggeredAbility(
DelayedTriggeredAbility ability = new AtTheEndOfCombatDelayedTriggeredAbility(effect); new AddCountersSourceEffect(CounterType.M1M1.createInstance(), true)
this.addAbility(new AttacksOrBlocksTriggeredAbility(new CreateDelayedTriggeredAbilityEffect(ability, false, false), false)); ), 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) { private WickerWarcrawler(final WickerWarcrawler card) {

View file

@ -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. // 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 effect = new GainAbilityTargetEffect(WitherAbility.getInstance(), Duration.EndOfTurn);
effect.setText("that creature gains wither until end of turn"); 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); this.addAbility(ability);
// Whenever Witherscale Wurm deals damage to an opponent, remove all -1/-1 counters from it. // Whenever Witherscale Wurm deals damage to an opponent, remove all -1/-1 counters from it.

View file

@ -62,7 +62,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 = "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 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 private static final boolean ONLY_TEXT = false; // use when checking text locally, suppresses unnecessary checks and output messages

View file

@ -144,12 +144,7 @@ public class ConspireAbility extends StaticAbility implements OptionalAdditional
@Override @Override
public String getRule() { public String getRule() {
StringBuilder sb = new StringBuilder(); return "Conspire <i>(" + reminderText + ")</i>";
if (conspireCost != null) {
sb.append(conspireCost.getText(false));
sb.append(' ').append(conspireCost.getReminderText());
}
return sb.toString();
} }
@Override @Override