forked from External/mage
fix more text
This commit is contained in:
parent
867a8f54b0
commit
81f97c3b0e
43 changed files with 85 additions and 73 deletions
|
|
@ -38,7 +38,8 @@ public final class AltarOfShadows extends CardImpl {
|
|||
// {7}, {tap}: Destroy target creature. Then put a charge counter on Altar of Shadows.
|
||||
Ability destroyAbility = new SimpleActivatedAbility(Zone.BATTLEFIELD, new DestroyTargetEffect(), new GenericManaCost(7));
|
||||
destroyAbility.addCost(new TapSourceCost());
|
||||
destroyAbility.addEffect(new AddCountersSourceEffect(CounterType.CHARGE.createInstance(), true));
|
||||
destroyAbility.addEffect(new AddCountersSourceEffect(CounterType.CHARGE.createInstance(), true)
|
||||
.concatBy("Then"));
|
||||
destroyAbility.addTarget(new TargetCreaturePermanent());
|
||||
this.addAbility(destroyAbility);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -35,7 +35,7 @@ public final class BattleCry extends CardImpl {
|
|||
this.getSpellAbility().addEffect(new UntapAllEffect(filter));
|
||||
|
||||
// Whenever a creature blocks this turn, it gets +0/+1 until end of turn.
|
||||
this.getSpellAbility().addEffect(new CreateDelayedTriggeredAbilityEffect(new BattleCryTriggeredAbility()));
|
||||
this.getSpellAbility().addEffect(new CreateDelayedTriggeredAbilityEffect(new BattleCryTriggeredAbility()).concatBy("<br>"));
|
||||
}
|
||||
|
||||
private BattleCry(final BattleCry card) {
|
||||
|
|
|
|||
|
|
@ -33,7 +33,7 @@ public final class BattleFrenzy extends CardImpl {
|
|||
// Green creatures you control get +1/+1 until end of turn.
|
||||
this.getSpellAbility().addEffect(new BoostControlledEffect(1, 1, Duration.EndOfTurn, filter1));
|
||||
// Nongreen creatures you control get +1/+0 until end of turn.
|
||||
this.getSpellAbility().addEffect(new BoostControlledEffect(1, 0, Duration.EndOfTurn, filter2));
|
||||
this.getSpellAbility().addEffect(new BoostControlledEffect(1, 0, Duration.EndOfTurn, filter2).concatBy("<br>"));
|
||||
}
|
||||
|
||||
private BattleFrenzy(final BattleFrenzy card) {
|
||||
|
|
|
|||
|
|
@ -23,7 +23,7 @@ public final class BlindingFog extends CardImpl {
|
|||
this.getSpellAbility().addEffect(new PreventAllDamageToAllEffect(Duration.EndOfTurn, StaticFilters.FILTER_PERMANENT_CREATURES));
|
||||
|
||||
// Creatures you control gain hexproof until end of turn.
|
||||
this.getSpellAbility().addEffect(new GainAbilityControlledEffect(HexproofAbility.getInstance(), Duration.EndOfTurn, StaticFilters.FILTER_PERMANENT_CREATURE, false));
|
||||
this.getSpellAbility().addEffect(new GainAbilityControlledEffect(HexproofAbility.getInstance(), Duration.EndOfTurn, StaticFilters.FILTER_PERMANENT_CREATURES, false));
|
||||
}
|
||||
|
||||
private BlindingFog(final BlindingFog card) {
|
||||
|
|
|
|||
|
|
@ -33,7 +33,8 @@ public final class BloodcrazedHoplite extends CardImpl {
|
|||
this.toughness = new MageInt(1);
|
||||
|
||||
// Heroic - Whenever you cast a spell that targets Bloodcrazed Hoplite, put a +1/+1 counter on it.
|
||||
this.addAbility(new HeroicAbility(new AddCountersSourceEffect(CounterType.P1P1.createInstance(), false)));
|
||||
this.addAbility(new HeroicAbility(new AddCountersSourceEffect(CounterType.P1P1.createInstance(), false))
|
||||
.withRuleTextReplacement(true));
|
||||
// Whenever a +1/+1 counter is put on Bloodcrazed Hoplite, remove a +1/+1 counter from target creature an opponent controls.
|
||||
Ability ability = new BloodcrazedHopliteTriggeredAbility();
|
||||
ability.addTarget(new TargetCreaturePermanent(StaticFilters.FILTER_OPPONENTS_PERMANENT_CREATURE));
|
||||
|
|
|
|||
|
|
@ -27,7 +27,7 @@ public final class BloodfireColossus extends CardImpl {
|
|||
|
||||
this.power = new MageInt(6);
|
||||
this.toughness = new MageInt(6);
|
||||
Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new DamageEverythingEffect(6), new ColoredManaCost(ColoredManaSymbol.R));
|
||||
Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new DamageEverythingEffect(6, "it"), new ColoredManaCost(ColoredManaSymbol.R));
|
||||
ability.addCost(new SacrificeSourceCost());
|
||||
this.addAbility(ability);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -38,7 +38,7 @@ public final class CallerOfTheHunt extends CardImpl {
|
|||
|
||||
// As an additional cost to cast Caller of the Hunt, choose a creature type.
|
||||
// Caller of the Hunt's power and toughness are each equal to the number of creatures of the chosen type on the battlefield.
|
||||
this.addAbility(new SimpleStaticAbility(Zone.ALL, new InfoEffect("as an additional cost to cast this spell, choose a creature type. \r"
|
||||
this.addAbility(new SimpleStaticAbility(Zone.ALL, new InfoEffect("as an additional cost to cast this spell, choose a creature type.<br>"
|
||||
+ "{this}'s power and toughness are each equal to the number of creatures of the chosen type on the battlefield")));
|
||||
|
||||
this.getSpellAbility().setCostAdjuster(CallerOfTheHuntAdjuster.instance);
|
||||
|
|
|
|||
|
|
@ -97,6 +97,6 @@ class ChickenALaKingTriggeredAbility extends TriggeredAbilityImpl {
|
|||
|
||||
@Override
|
||||
public String getRule() {
|
||||
return "Whenever a 6 is rolled on a six-sided die, put a +1/+1 counter on each Bird";
|
||||
return "Whenever a 6 is rolled on a six-sided die, put a +1/+1 counter on each Bird.";
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -34,7 +34,8 @@ public final class CinderShade extends CardImpl {
|
|||
this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new BoostSourceEffect(1, 1, Duration.EndOfTurn), new ManaCostsImpl<>("{B}")));
|
||||
|
||||
// {R}, Sacrifice Cinder Shade: Cinder Shade deals damage equal to its power to target creature.
|
||||
Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new DamageTargetEffect(new SourcePermanentPowerCount()), new ManaCostsImpl<>("{R}"));
|
||||
Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new DamageTargetEffect(new SourcePermanentPowerCount())
|
||||
.setText("It deals damage equal to its power to target creature"), new ManaCostsImpl<>("{R}"));
|
||||
ability.addCost(new SacrificeSourceCost());
|
||||
ability.addTarget(new TargetCreaturePermanent());
|
||||
this.addAbility(ability);
|
||||
|
|
|
|||
|
|
@ -27,7 +27,8 @@ public final class Clairvoyance extends CardImpl {
|
|||
|
||||
// Draw a card at the beginning of the next turn's upkeep.
|
||||
this.getSpellAbility().addEffect(new CreateDelayedTriggeredAbilityEffect(
|
||||
new AtTheBeginOfNextUpkeepDelayedTriggeredAbility(new DrawCardSourceControllerEffect(1), Duration.OneUse), false));
|
||||
new AtTheBeginOfNextUpkeepDelayedTriggeredAbility(new DrawCardSourceControllerEffect(1), Duration.OneUse), false)
|
||||
.concatBy("<br>"));
|
||||
}
|
||||
|
||||
private Clairvoyance(final Clairvoyance card) {
|
||||
|
|
|
|||
|
|
@ -19,7 +19,7 @@ import mage.filter.common.FilterLandPermanent;
|
|||
*/
|
||||
public final class CrusadingKnight extends CardImpl {
|
||||
|
||||
private static final FilterLandPermanent swampFilter = new FilterLandPermanent("Swamp your opponent controls");
|
||||
private static final FilterLandPermanent swampFilter = new FilterLandPermanent("Swamp your opponents control");
|
||||
static {
|
||||
swampFilter.add(SubType.SWAMP.getPredicate());
|
||||
swampFilter.add(TargetController.OPPONENT.getControllerPredicate());
|
||||
|
|
|
|||
|
|
@ -43,7 +43,8 @@ public final class DazzlingBeauty extends CardImpl {
|
|||
this.getSpellAbility().addTarget(new TargetCreaturePermanent(filter));
|
||||
|
||||
// Draw a card at the beginning of the next turn's upkeep.
|
||||
this.getSpellAbility().addEffect(new CreateDelayedTriggeredAbilityEffect(new AtTheBeginOfNextUpkeepDelayedTriggeredAbility(new DrawCardSourceControllerEffect(1)), false));
|
||||
this.getSpellAbility().addEffect(new CreateDelayedTriggeredAbilityEffect(new AtTheBeginOfNextUpkeepDelayedTriggeredAbility(
|
||||
new DrawCardSourceControllerEffect(1)), false).concatBy("<br>"));
|
||||
}
|
||||
|
||||
private DazzlingBeauty(final DazzlingBeauty card) {
|
||||
|
|
|
|||
|
|
@ -25,7 +25,8 @@ public final class Flare extends CardImpl {
|
|||
this.getSpellAbility().addTarget(new TargetAnyTarget());
|
||||
|
||||
// Draw a card at the beginning of the next turn's upkeep.
|
||||
this.getSpellAbility().addEffect(new CreateDelayedTriggeredAbilityEffect(new AtTheBeginOfNextUpkeepDelayedTriggeredAbility(new DrawCardSourceControllerEffect(1)), false));
|
||||
this.getSpellAbility().addEffect(new CreateDelayedTriggeredAbilityEffect(new AtTheBeginOfNextUpkeepDelayedTriggeredAbility(
|
||||
new DrawCardSourceControllerEffect(1)), false).concatBy("<br>"));
|
||||
}
|
||||
|
||||
private Flare(final Flare card) {
|
||||
|
|
|
|||
|
|
@ -28,7 +28,8 @@ public final class ForceVoid extends CardImpl {
|
|||
|
||||
// Draw a card at the beginning of the next turn's upkeep.
|
||||
this.getSpellAbility().addEffect(new CreateDelayedTriggeredAbilityEffect(
|
||||
new AtTheBeginOfNextUpkeepDelayedTriggeredAbility(new DrawCardSourceControllerEffect(1), Duration.OneUse), false));
|
||||
new AtTheBeginOfNextUpkeepDelayedTriggeredAbility(new DrawCardSourceControllerEffect(1), Duration.OneUse), false)
|
||||
.concatBy("<br>"));
|
||||
}
|
||||
|
||||
private ForceVoid(final ForceVoid card) {
|
||||
|
|
|
|||
|
|
@ -28,7 +28,8 @@ public final class Formation extends CardImpl {
|
|||
|
||||
// Draw a card at the beginning of the next turn's upkeep.
|
||||
this.getSpellAbility().addEffect(new CreateDelayedTriggeredAbilityEffect(
|
||||
new AtTheBeginOfNextUpkeepDelayedTriggeredAbility(new DrawCardSourceControllerEffect(1)), false));
|
||||
new AtTheBeginOfNextUpkeepDelayedTriggeredAbility(new DrawCardSourceControllerEffect(1)), false)
|
||||
.concatBy("<br>"));
|
||||
}
|
||||
|
||||
private Formation(final Formation card) {
|
||||
|
|
|
|||
|
|
@ -26,11 +26,12 @@ public final class Foxfire extends CardImpl {
|
|||
// Untap target attacking creature. Prevent all combat damage that would be dealt to and dealt by that creature this turn.
|
||||
this.getSpellAbility().addTarget(new TargetAttackingCreature());
|
||||
this.getSpellAbility().addEffect(new UntapTargetEffect());
|
||||
this.getSpellAbility().addEffect(new PreventDamageByTargetEffect(Duration.EndOfTurn, true).setText("Prevent all combat damage that would be dealt to "));
|
||||
this.getSpellAbility().addEffect(new PreventDamageByTargetEffect(Duration.EndOfTurn, true).setText("Prevent all combat damage that would be dealt to"));
|
||||
this.getSpellAbility().addEffect(new PreventDamageToTargetEffect(Duration.EndOfTurn, true).setText("and dealt by that creature this turn."));
|
||||
|
||||
// Draw a card at the beginning of the next turn's upkeep.
|
||||
this.getSpellAbility().addEffect(new CreateDelayedTriggeredAbilityEffect(new AtTheBeginOfNextUpkeepDelayedTriggeredAbility(new DrawCardSourceControllerEffect(1)),false));
|
||||
this.getSpellAbility().addEffect(new CreateDelayedTriggeredAbilityEffect(new AtTheBeginOfNextUpkeepDelayedTriggeredAbility(
|
||||
new DrawCardSourceControllerEffect(1)),false).concatBy("<br>"));
|
||||
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -20,7 +20,7 @@ public final class GethsVerdict extends CardImpl {
|
|||
super(ownerId, setInfo, new CardType[]{CardType.INSTANT}, "{B}{B}");
|
||||
|
||||
this.getSpellAbility().addEffect(new SacrificeEffect(StaticFilters.FILTER_PERMANENT_CREATURE, 1, "Target player"));
|
||||
this.getSpellAbility().addEffect(new LoseLifeTargetEffect(1));
|
||||
this.getSpellAbility().addEffect(new LoseLifeTargetEffect(1).setText("and loses 1 life"));
|
||||
this.getSpellAbility().addTarget(new TargetPlayer());
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -18,7 +18,7 @@ public final class GlimmerOfGenius extends CardImpl {
|
|||
super(ownerId, setInfo, new CardType[]{CardType.INSTANT}, "{3}{U}");
|
||||
|
||||
// Scry 2, then draw two card. You get {E}{E}.
|
||||
this.getSpellAbility().addEffect(new ScryEffect(2));
|
||||
this.getSpellAbility().addEffect(new ScryEffect(2, false));
|
||||
this.getSpellAbility().addEffect(new DrawCardSourceControllerEffect(2).concatBy(", then"));
|
||||
this.getSpellAbility().addEffect(new GetEnergyCountersControllerEffect(2));
|
||||
}
|
||||
|
|
|
|||
|
|
@ -35,7 +35,7 @@ public final class GuiltyConscience extends CardImpl {
|
|||
this.addAbility(ability);
|
||||
|
||||
// Whenever enchanted creature deals damage, Guilty Conscience deals that much damage to that creature.
|
||||
this.addAbility(new DealsDamageAttachedTriggeredAbility(Zone.BATTLEFIELD, new DamageAttachedEffect(SavedDamageValue.MUCH).setText("that much damage to that creature"), false));
|
||||
this.addAbility(new DealsDamageAttachedTriggeredAbility(Zone.BATTLEFIELD, new DamageAttachedEffect(SavedDamageValue.MUCH).setText("{this} deals that much damage to that creature"), false));
|
||||
}
|
||||
|
||||
private GuiltyConscience(final GuiltyConscience card) {
|
||||
|
|
|
|||
|
|
@ -26,7 +26,8 @@ public final class Headstone extends CardImpl {
|
|||
|
||||
// Draw a card at the beginning of the next turn's upkeep.
|
||||
this.getSpellAbility().addEffect(new CreateDelayedTriggeredAbilityEffect(
|
||||
new AtTheBeginOfNextUpkeepDelayedTriggeredAbility(new DrawCardSourceControllerEffect(1)), false));
|
||||
new AtTheBeginOfNextUpkeepDelayedTriggeredAbility(new DrawCardSourceControllerEffect(1)), false)
|
||||
.concatBy("<br>"));
|
||||
}
|
||||
|
||||
private Headstone(final Headstone card) {
|
||||
|
|
|
|||
|
|
@ -30,7 +30,7 @@ public final class Heliophial extends CardImpl {
|
|||
this.addAbility(new SunburstAbility(this));
|
||||
// {2}, Sacrifice Heliophial: Heliophial deals damage equal to the number of charge counters on it to any target.
|
||||
Effect effect = new DamageTargetEffect(new CountersSourceCount(CounterType.CHARGE));
|
||||
effect.setText("{this} deals damage equal to the number of charge counters on it to any target");
|
||||
effect.setText("it deals damage equal to the number of charge counters on it to any target");
|
||||
Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, effect, new ManaCostsImpl<>("{2}"));
|
||||
ability.addCost(new SacrificeSourceCost());
|
||||
ability.addTarget(new TargetAnyTarget());
|
||||
|
|
|
|||
|
|
@ -45,7 +45,7 @@ class ImperialEdictEffect extends OneShotEffect {
|
|||
|
||||
ImperialEdictEffect() {
|
||||
super(Outcome.Benefit);
|
||||
this.staticText = "Target opponent chooses a creature they control. Destroy it.";
|
||||
this.staticText = "Target opponent chooses a creature they control. Destroy that creature.";
|
||||
}
|
||||
|
||||
private ImperialEdictEffect(final ImperialEdictEffect effect) {
|
||||
|
|
|
|||
|
|
@ -12,13 +12,9 @@ import mage.abilities.effects.common.DamageTargetEffect;
|
|||
import mage.cards.Card;
|
||||
import mage.cards.CardImpl;
|
||||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.CardType;
|
||||
import mage.constants.SubType;
|
||||
import mage.constants.Outcome;
|
||||
import mage.constants.Zone;
|
||||
import mage.constants.*;
|
||||
import mage.game.Game;
|
||||
import mage.game.events.GameEvent;
|
||||
import mage.game.events.GameEvent.EventType;
|
||||
import mage.game.permanent.Permanent;
|
||||
import mage.target.common.TargetLandPermanent;
|
||||
import mage.target.targetpointer.FixedTarget;
|
||||
|
|
@ -42,7 +38,7 @@ public final class InvaderParasite extends CardImpl {
|
|||
this.addAbility(ability);
|
||||
|
||||
// Whenever a land with the same name as the exiled card enters the battlefield under an opponent's control, Invader Parasite deals 2 damage to that player.
|
||||
this.addAbility(new InvaderParasiteTriggeredAbility());
|
||||
this.addAbility(new InvaderParasiteTriggeredAbility().setAbilityWord(AbilityWord.IMPRINT));
|
||||
}
|
||||
|
||||
private InvaderParasite(final InvaderParasite card) {
|
||||
|
|
|
|||
|
|
@ -27,7 +27,8 @@ public final class Jinx extends CardImpl {
|
|||
|
||||
// Draw a card at the beginning of the next turn's upkeep.
|
||||
this.getSpellAbility().addEffect(new CreateDelayedTriggeredAbilityEffect(
|
||||
new AtTheBeginOfNextUpkeepDelayedTriggeredAbility(new DrawCardSourceControllerEffect(1)), false));
|
||||
new AtTheBeginOfNextUpkeepDelayedTriggeredAbility(new DrawCardSourceControllerEffect(1)), false)
|
||||
.concatBy("<br>"));
|
||||
}
|
||||
|
||||
private Jinx(final Jinx card) {
|
||||
|
|
|
|||
|
|
@ -1,4 +1,3 @@
|
|||
|
||||
package mage.cards.j;
|
||||
|
||||
import java.util.UUID;
|
||||
|
|
@ -23,7 +22,7 @@ import mage.target.common.TargetCreaturePermanent;
|
|||
*/
|
||||
public final class JovensTools extends CardImpl {
|
||||
|
||||
private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("except by walls");
|
||||
private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("except by Walls");
|
||||
static {
|
||||
filter.add(Predicates.not(SubType.WALL.getPredicate()));
|
||||
}
|
||||
|
|
|
|||
|
|
@ -31,9 +31,9 @@ public final class LazotepPlating extends CardImpl {
|
|||
Effect effect2 = new GainAbilityControlledEffect(
|
||||
HexproofAbility.getInstance(), Duration.EndOfTurn
|
||||
);
|
||||
effect.setText("You and permanents you control gain hexproof until end of turn.");
|
||||
effect2.setText("");
|
||||
this.getSpellAbility().addEffect(effect);
|
||||
effect.setText("You");
|
||||
effect2.setText("and permanents you control gain hexproof until end of turn");
|
||||
this.getSpellAbility().addEffect(effect.concatBy("<br>"));
|
||||
this.getSpellAbility().addEffect(effect2);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -19,7 +19,7 @@ import mage.filter.common.FilterLandPermanent;
|
|||
*/
|
||||
public final class MaraudingKnight extends CardImpl {
|
||||
|
||||
private static final FilterLandPermanent plainsFilter = new FilterLandPermanent("Plains your opponent controls");
|
||||
private static final FilterLandPermanent plainsFilter = new FilterLandPermanent("Plains your opponents control");
|
||||
static {
|
||||
plainsFilter.add(SubType.PLAINS.getPredicate());
|
||||
plainsFilter.add(TargetController.OPPONENT.getControllerPredicate());
|
||||
|
|
|
|||
|
|
@ -25,7 +25,8 @@ public final class MindRavel extends CardImpl {
|
|||
this.getSpellAbility().addTarget(new TargetPlayer());
|
||||
|
||||
// Draw a card at the beginning of the next turn's upkeep.
|
||||
this.getSpellAbility().addEffect(new CreateDelayedTriggeredAbilityEffect(new AtTheBeginOfNextUpkeepDelayedTriggeredAbility(new DrawCardSourceControllerEffect(1)), false));
|
||||
this.getSpellAbility().addEffect(new CreateDelayedTriggeredAbilityEffect(new AtTheBeginOfNextUpkeepDelayedTriggeredAbility(
|
||||
new DrawCardSourceControllerEffect(1)), false).concatBy("<br>"));
|
||||
}
|
||||
|
||||
private MindRavel(final MindRavel card) {
|
||||
|
|
|
|||
|
|
@ -33,7 +33,8 @@ public final class MortisDogs extends CardImpl {
|
|||
// Whenever Mortis Dogs attacks, it gets +2/+0 until end of turn.
|
||||
this.addAbility(new AttacksTriggeredAbility(new BoostSourceEffect(2, 0, Duration.EndOfTurn), false));
|
||||
// When Mortis Dogs dies, target player loses life equal to its power.
|
||||
Ability ability = new DiesSourceTriggeredAbility(new LoseLifeTargetEffect(new SourcePermanentPowerCount(false)));
|
||||
Ability ability = new DiesSourceTriggeredAbility(new LoseLifeTargetEffect(new SourcePermanentPowerCount(false))
|
||||
.setText("target player loses life equal to its power"));
|
||||
ability.addTarget(new TargetPlayer());
|
||||
this.addAbility(ability);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -32,9 +32,9 @@ public final class OverloadedMageRing extends CardImpl {
|
|||
this.color.setBlue(true);
|
||||
this.nightCard = true;
|
||||
|
||||
// {1}, {T}, Sacrifice Overloaded Mage-Ring: Copy target spell you control.
|
||||
// {1}, {T}, Sacrifice Overloaded Mage-Ring: Copy target spell you control. You may choose new targets for the copy.
|
||||
Ability ability = new SimpleActivatedAbility(
|
||||
new CopyTargetSpellEffect(false, false, false), new GenericManaCost(1)
|
||||
new CopyTargetSpellEffect(false, false, true), new GenericManaCost(1)
|
||||
);
|
||||
ability.addCost(new TapSourceCost());
|
||||
ability.addCost(new SacrificeSourceCost());
|
||||
|
|
|
|||
|
|
@ -27,7 +27,8 @@ public final class RayOfErasure extends CardImpl {
|
|||
|
||||
// Draw a card at the beginning of the next turn's upkeep.
|
||||
this.getSpellAbility().addEffect(new CreateDelayedTriggeredAbilityEffect(
|
||||
new AtTheBeginOfNextUpkeepDelayedTriggeredAbility(new DrawCardSourceControllerEffect(1), Duration.OneUse), false));
|
||||
new AtTheBeginOfNextUpkeepDelayedTriggeredAbility(new DrawCardSourceControllerEffect(1), Duration.OneUse), false)
|
||||
.concatBy("<br>"));
|
||||
}
|
||||
|
||||
private RayOfErasure(final RayOfErasure card) {
|
||||
|
|
|
|||
|
|
@ -1,16 +1,15 @@
|
|||
|
||||
package mage.cards.r;
|
||||
|
||||
import java.util.UUID;
|
||||
import mage.MageInt;
|
||||
import mage.abilities.common.DealsDamageToAPlayerTriggeredAbility;
|
||||
import mage.abilities.effects.Effect;
|
||||
import mage.abilities.common.DealsDamageToOpponentTriggeredAbility;
|
||||
import mage.abilities.effects.common.MillCardsTargetEffect;
|
||||
import mage.cards.CardImpl;
|
||||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.CardType;
|
||||
import mage.constants.SubType;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author LoneFox
|
||||
|
|
@ -25,9 +24,8 @@ public final class ReefPirates extends CardImpl {
|
|||
this.toughness = new MageInt(2);
|
||||
|
||||
// Whenever Reef Pirates deals damage to an opponent, that player puts the top card of their library into their graveyard.
|
||||
Effect effect = new MillCardsTargetEffect(1);
|
||||
effect.setText("that player mills a card");
|
||||
this.addAbility(new DealsDamageToAPlayerTriggeredAbility(effect, false, true));
|
||||
this.addAbility(new DealsDamageToOpponentTriggeredAbility(new MillCardsTargetEffect(1),
|
||||
false, false, true));
|
||||
}
|
||||
|
||||
private ReefPirates(final ReefPirates card) {
|
||||
|
|
|
|||
|
|
@ -1,4 +1,3 @@
|
|||
|
||||
package mage.cards.s;
|
||||
|
||||
import java.util.UUID;
|
||||
|
|
@ -30,7 +29,7 @@ public final class Sanctimony extends CardImpl {
|
|||
|
||||
|
||||
// Whenever an opponent taps a Mountain for mana, you may gain 1 life.
|
||||
this.addAbility(new TapForManaAllTriggeredAbility(new GainLifeEffect(1), filter, SetTargetPointer.NONE));
|
||||
this.addAbility(new TapForManaAllTriggeredAbility(new GainLifeEffect(1), filter, SetTargetPointer.NONE, true));
|
||||
}
|
||||
|
||||
private Sanctimony(final Sanctimony card) {
|
||||
|
|
|
|||
|
|
@ -60,7 +60,7 @@ public final class SaprolingInfestation extends CardImpl {
|
|||
|
||||
@Override
|
||||
public String getRule() {
|
||||
return "Whenever a player kicks a spell, you creat a 1/1 green Saproling creature token.";
|
||||
return "Whenever a player kicks a spell, you create a 1/1 green Saproling creature token.";
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -28,6 +28,7 @@ public final class SeasonsBeatings extends CardImpl {
|
|||
|
||||
// Family gathering - Each creature target player controls deals damage equal to its power to another random creature that player controls.
|
||||
this.getSpellAbility().addEffect(new SeasonsBeatingsEffect());
|
||||
this.getSpellAbility().withFlavorWord("Family gathering");
|
||||
this.getSpellAbility().addTarget(new TargetPlayer());
|
||||
|
||||
}
|
||||
|
|
@ -46,7 +47,7 @@ class SeasonsBeatingsEffect extends OneShotEffect {
|
|||
|
||||
SeasonsBeatingsEffect() {
|
||||
super(Outcome.Damage);
|
||||
staticText = "Family gathering <i>Each creature target player controls deals damage equal to its power to another random creature that player controls.</i>";
|
||||
staticText = "Each creature target player controls deals damage equal to its power to another random creature that player controls";
|
||||
}
|
||||
|
||||
private SeasonsBeatingsEffect(final SeasonsBeatingsEffect effect) {
|
||||
|
|
|
|||
|
|
@ -22,8 +22,10 @@ public final class SnareTheSkies extends CardImpl {
|
|||
|
||||
|
||||
// Target creature gets +1/+1 and gains reach until end of turn.
|
||||
this.getSpellAbility().addEffect(new BoostTargetEffect(1, 1, Duration.EndOfTurn));
|
||||
this.getSpellAbility().addEffect(new GainAbilityTargetEffect(ReachAbility.getInstance(), Duration.EndOfTurn));
|
||||
this.getSpellAbility().addEffect(new BoostTargetEffect(1, 1, Duration.EndOfTurn)
|
||||
.setText("target creature gets +1/+1"));
|
||||
this.getSpellAbility().addEffect(new GainAbilityTargetEffect(ReachAbility.getInstance(), Duration.EndOfTurn)
|
||||
.setText("and gains reach until end of turn"));
|
||||
this.getSpellAbility().addTarget(new TargetCreaturePermanent());
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -29,7 +29,8 @@ public final class SoulRend extends CardImpl {
|
|||
this.getSpellAbility().addTarget(new TargetCreaturePermanent());
|
||||
|
||||
// Draw a card at the beginning of the next turn's upkeep.
|
||||
this.getSpellAbility().addEffect(new CreateDelayedTriggeredAbilityEffect(new AtTheBeginOfNextUpkeepDelayedTriggeredAbility(new DrawCardSourceControllerEffect(1)), false));
|
||||
this.getSpellAbility().addEffect(new CreateDelayedTriggeredAbilityEffect(new AtTheBeginOfNextUpkeepDelayedTriggeredAbility(
|
||||
new DrawCardSourceControllerEffect(1)), false).concatBy("<br>"));
|
||||
}
|
||||
|
||||
private SoulRend(final SoulRend card) {
|
||||
|
|
|
|||
|
|
@ -26,7 +26,7 @@ public final class SurgeNode extends CardImpl {
|
|||
|
||||
public SurgeNode(UUID ownerId, CardSetInfo setInfo) {
|
||||
super(ownerId, setInfo, new CardType[]{CardType.ARTIFACT}, "{1}");
|
||||
this.addAbility(new EntersBattlefieldAbility(new AddCountersSourceEffect(CounterType.CHARGE.createInstance(6)), "{this} gets six charge counters"));
|
||||
this.addAbility(new EntersBattlefieldAbility(new AddCountersSourceEffect(CounterType.CHARGE.createInstance(6)), "with six charge counters on it"));
|
||||
Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new AddCountersTargetEffect(CounterType.CHARGE.createInstance()), new GenericManaCost(1));
|
||||
ability.addCost(new TapSourceCost());
|
||||
ability.addCost(new RemoveCountersSourceCost(CounterType.CHARGE.createInstance()));
|
||||
|
|
|
|||
|
|
@ -1,4 +1,3 @@
|
|||
|
||||
package mage.cards.t;
|
||||
|
||||
import java.util.UUID;
|
||||
|
|
@ -25,7 +24,7 @@ public final class TelimTorsEdict extends CardImpl {
|
|||
private static final FilterPermanent filter = new FilterPermanent("permanent you own or control");
|
||||
|
||||
static {
|
||||
filter.add(new TelimTorsEdictPredicate());
|
||||
filter.add(TelimTorsEdictPredicate.instance);
|
||||
}
|
||||
|
||||
public TelimTorsEdict(UUID ownerId, CardSetInfo setInfo) {
|
||||
|
|
@ -36,7 +35,8 @@ public final class TelimTorsEdict extends CardImpl {
|
|||
this.getSpellAbility().addTarget(new TargetPermanent(filter));
|
||||
|
||||
// Draw a card at the beginning of the next turn's upkeep.
|
||||
this.getSpellAbility().addEffect(new CreateDelayedTriggeredAbilityEffect(new AtTheBeginOfNextUpkeepDelayedTriggeredAbility(new DrawCardSourceControllerEffect(1)), false));
|
||||
this.getSpellAbility().addEffect(new CreateDelayedTriggeredAbilityEffect(new AtTheBeginOfNextUpkeepDelayedTriggeredAbility(
|
||||
new DrawCardSourceControllerEffect(1)), false).concatBy("<br>"));
|
||||
}
|
||||
|
||||
private TelimTorsEdict(final TelimTorsEdict card) {
|
||||
|
|
@ -49,18 +49,13 @@ public final class TelimTorsEdict extends CardImpl {
|
|||
}
|
||||
}
|
||||
|
||||
class TelimTorsEdictPredicate implements ObjectSourcePlayerPredicate<Permanent> {
|
||||
|
||||
public TelimTorsEdictPredicate() {
|
||||
}
|
||||
enum TelimTorsEdictPredicate implements ObjectSourcePlayerPredicate<Permanent> {
|
||||
instance;
|
||||
|
||||
@Override
|
||||
public boolean apply(ObjectSourcePlayer<Permanent> input, Game game) {
|
||||
Permanent permanent = input.getObject();
|
||||
UUID playerId = input.getPlayerId();
|
||||
if (permanent.isControlledBy(playerId) || permanent.isOwnedBy(playerId)) {
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
return permanent.isControlledBy(playerId) || permanent.isOwnedBy(playerId);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -22,8 +22,10 @@ public final class UncannySpeed extends CardImpl {
|
|||
|
||||
|
||||
// Target creature gets +3/+0 and gains haste until end of turn.
|
||||
this.getSpellAbility().addEffect(new BoostTargetEffect(3, 0, Duration.EndOfTurn));
|
||||
this.getSpellAbility().addEffect(new GainAbilityTargetEffect(HasteAbility.getInstance(), Duration.EndOfTurn));
|
||||
this.getSpellAbility().addEffect(new BoostTargetEffect(3, 0, Duration.EndOfTurn)
|
||||
.setText("target creature gets +3/+0"));
|
||||
this.getSpellAbility().addEffect(new GainAbilityTargetEffect(HasteAbility.getInstance(), Duration.EndOfTurn)
|
||||
.setText("and gains haste until end of turn"));
|
||||
this.getSpellAbility().addTarget(new TargetCreaturePermanent());
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -27,7 +27,8 @@ public final class Updraft extends CardImpl {
|
|||
this.getSpellAbility().addTarget(new TargetCreaturePermanent());
|
||||
|
||||
// Draw a card at the beginning of the next turn's upkeep.
|
||||
this.getSpellAbility().addEffect(new CreateDelayedTriggeredAbilityEffect(new AtTheBeginOfNextUpkeepDelayedTriggeredAbility(new DrawCardSourceControllerEffect(1)), false));
|
||||
this.getSpellAbility().addEffect(new CreateDelayedTriggeredAbilityEffect(new AtTheBeginOfNextUpkeepDelayedTriggeredAbility(
|
||||
new DrawCardSourceControllerEffect(1)), false).concatBy("<br>"));
|
||||
}
|
||||
|
||||
private Updraft(final Updraft card) {
|
||||
|
|
|
|||
|
|
@ -226,7 +226,7 @@ public abstract class TriggeredAbilityImpl extends AbilityImpl implements Trigge
|
|||
}
|
||||
}
|
||||
if (replaceRuleText && triggerPhrase != null) {
|
||||
superRule = superRule.replaceFirst("^((?:you may )?sacrifice |put an? [^ ]+ counter on |return |transform |untap )?\\{this\\}", "$1it");
|
||||
superRule = superRule.replaceFirst("^((?:you may )?sacrifice |(put|remove) an? [^ ]+ counter (on|from) |return |transform |untap |regenerate )?\\{this\\}", "$1it");
|
||||
}
|
||||
sb.append(superRule);
|
||||
if (triggersOnceEachTurn) {
|
||||
|
|
|
|||
|
|
@ -24,7 +24,11 @@ public class TapForManaAllTriggeredAbility extends TriggeredAbilityImpl {
|
|||
private final SetTargetPointer setTargetPointer;
|
||||
|
||||
public TapForManaAllTriggeredAbility(Effect effect, FilterPermanent filter, SetTargetPointer setTargetPointer) {
|
||||
super(Zone.BATTLEFIELD, effect);
|
||||
this(effect, filter, setTargetPointer, false);
|
||||
}
|
||||
|
||||
public TapForManaAllTriggeredAbility(Effect effect, FilterPermanent filter, SetTargetPointer setTargetPointer, boolean optional) {
|
||||
super(Zone.BATTLEFIELD, effect, optional);
|
||||
this.filter = filter;
|
||||
this.setTargetPointer = setTargetPointer;
|
||||
setTriggerPhrase("Whenever " + filter.getMessage() + " for mana, ");
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue