mirror of
https://github.com/correl/mage.git
synced 2024-12-26 03:00:11 +00:00
[SHM] various text fixes
This commit is contained in:
parent
7f95929288
commit
8999a6e647
40 changed files with 121 additions and 121 deletions
|
@ -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) {
|
||||
|
|
|
@ -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("<br>"));
|
||||
}
|
||||
|
||||
public CeruleanWisps (final CeruleanWisps card) {
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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) {
|
||||
|
|
|
@ -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) {
|
||||
|
|
|
@ -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("<br>"));
|
||||
}
|
||||
|
||||
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);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
|
|
@ -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) {
|
||||
|
|
|
@ -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("<i>(Do both if {G}{W} was spent.)</i>"));
|
||||
|
||||
|
||||
|
|
|
@ -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));
|
||||
|
||||
}
|
||||
|
||||
|
|
|
@ -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) {
|
||||
|
|
|
@ -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")));
|
||||
|
||||
}
|
||||
|
||||
|
|
|
@ -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. <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) {
|
||||
|
|
|
@ -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());
|
||||
|
|
|
@ -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()));
|
||||
|
|
|
@ -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) {
|
||||
|
|
|
@ -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}"));
|
||||
|
|
|
@ -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("<br>"));
|
||||
}
|
||||
|
||||
private Manamorphose(final Manamorphose card) {
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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());
|
||||
|
|
|
@ -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("<br>"));
|
||||
}
|
||||
|
||||
public NiveousWisps (final NiveousWisps card) {
|
||||
|
|
|
@ -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());
|
||||
}
|
||||
|
||||
|
|
|
@ -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) {
|
||||
|
|
|
@ -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("<i>(Do both if {W}{U} was spent.)</i>"));
|
||||
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
|
|
|
@ -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.";
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -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));
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
|
|
|
@ -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"));
|
||||
|
|
|
@ -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.\"")));
|
||||
|
||||
}
|
||||
|
||||
|
|
|
@ -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) {
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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);
|
||||
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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) {
|
||||
|
|
|
@ -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) {
|
||||
|
|
|
@ -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("<br>"));
|
||||
}
|
||||
|
||||
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);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
|
|
@ -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) {
|
||||
|
|
|
@ -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.
|
||||
|
|
|
@ -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
|
||||
|
||||
|
|
|
@ -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 <i>(" + reminderText + ")</i>";
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
Loading…
Reference in a new issue