Fix cards 'N' to 'R' with card name instead of {this}, generify ParasiticStrix

This commit is contained in:
Steven Knipe 2025-07-08 01:56:25 -07:00
parent 5d5ac9219e
commit b8f3a462f9
19 changed files with 74 additions and 101 deletions

View file

@ -1,7 +1,6 @@
package mage.cards.n; package mage.cards.n;
import java.util.UUID;
import mage.MageInt; import mage.MageInt;
import mage.abilities.Ability; import mage.abilities.Ability;
import mage.abilities.common.SimpleStaticAbility; import mage.abilities.common.SimpleStaticAbility;
@ -13,12 +12,13 @@ import mage.abilities.keyword.ShroudAbility;
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.Duration; import mage.constants.Duration;
import mage.constants.Zone; import mage.constants.SubType;
import mage.filter.common.FilterControlledPermanent; import mage.filter.common.FilterControlledPermanent;
import mage.filter.predicate.mageobject.MulticoloredPredicate;
import mage.filter.predicate.mageobject.AnotherPredicate; import mage.filter.predicate.mageobject.AnotherPredicate;
import mage.filter.predicate.mageobject.MulticoloredPredicate;
import java.util.UUID;
/** /**
* *
@ -46,9 +46,9 @@ public final class NayaHushblade extends CardImpl {
// As long as you control another multicolored permanent, Naya Hushblade gets +1/+1 and has shroud. // As long as you control another multicolored permanent, Naya Hushblade gets +1/+1 and has shroud.
Ability ability = new SimpleStaticAbility(new ConditionalContinuousEffect( Ability ability = new SimpleStaticAbility(new ConditionalContinuousEffect(
new BoostSourceEffect(1,1, Duration.WhileOnBattlefield), new BoostSourceEffect(1, 1, Duration.WhileOnBattlefield),
new PermanentsOnTheBattlefieldCondition(filter), new PermanentsOnTheBattlefieldCondition(filter),
"As long as you control another multicolored permanent, Naya Hushblade gets +1/+1")); "As long as you control another multicolored permanent, {this} gets +1/+1"));
ability.addEffect(new ConditionalContinuousEffect( ability.addEffect(new ConditionalContinuousEffect(
new GainAbilitySourceEffect(ShroudAbility.getInstance()), new GainAbilitySourceEffect(ShroudAbility.getInstance()),
new PermanentsOnTheBattlefieldCondition(filter), new PermanentsOnTheBattlefieldCondition(filter),

View file

@ -1,7 +1,6 @@
package mage.cards.n; package mage.cards.n;
import java.util.UUID;
import mage.MageInt; import mage.MageInt;
import mage.abilities.Ability; import mage.abilities.Ability;
import mage.abilities.common.SimpleStaticAbility; import mage.abilities.common.SimpleStaticAbility;
@ -14,9 +13,10 @@ 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.Zone; import mage.constants.SubType;
import java.util.UUID;
/** /**
* *
@ -35,7 +35,7 @@ public final class NobleQuarry extends CardImpl {
this.addAbility(new BestowAbility(this, "{5}{G}")); this.addAbility(new BestowAbility(this, "{5}{G}"));
// All creatures able to block Noble Quarry or enchanted creature do so. // All creatures able to block Noble Quarry or enchanted creature do so.
Effect effect = new MustBeBlockedByAllSourceEffect(Duration.WhileOnBattlefield); Effect effect = new MustBeBlockedByAllSourceEffect(Duration.WhileOnBattlefield);
effect.setText("All creatures able to block Noble Quarry"); effect.setText("All creatures able to block {this}");
Ability ability = new SimpleStaticAbility(effect); Ability ability = new SimpleStaticAbility(effect);
effect = new MustBeBlockedByAllAttachedEffect(Duration.WhileOnBattlefield, AttachmentType.AURA); effect = new MustBeBlockedByAllAttachedEffect(Duration.WhileOnBattlefield, AttachmentType.AURA);
effect.setText("or enchanted creature do so"); effect.setText("or enchanted creature do so");

View file

@ -1,7 +1,6 @@
package mage.cards.n; package mage.cards.n;
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;
@ -13,14 +12,16 @@ import mage.abilities.effects.common.counter.AddCountersSourceEffect;
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.Outcome; import mage.constants.Outcome;
import mage.constants.SubType;
import mage.counters.CounterType; import mage.counters.CounterType;
import mage.game.Game; import mage.game.Game;
import mage.game.permanent.Permanent; import mage.game.permanent.Permanent;
import mage.game.permanent.token.ZombieToken; import mage.game.permanent.token.ZombieToken;
import mage.players.Player; import mage.players.Player;
import java.util.UUID;
/** /**
* *
* @author fireshoes * @author fireshoes
@ -54,7 +55,7 @@ class NoosegrafMobEffect extends OneShotEffect {
NoosegrafMobEffect() { NoosegrafMobEffect() {
super(Outcome.Benefit); super(Outcome.Benefit);
staticText = "remove a +1/+1 counter from Noosegraf Mob. If you do, create a 2/2 black Zombie creature token"; staticText = "remove a +1/+1 counter from {this}. If you do, create a 2/2 black Zombie creature token";
} }
private NoosegrafMobEffect(final NoosegrafMobEffect effect) { private NoosegrafMobEffect(final NoosegrafMobEffect effect) {

View file

@ -31,7 +31,7 @@ public final class ObsidianFireheart extends CardImpl {
private static final String rule = "For as long as that land has a blaze counter " private static final String rule = "For as long as that land has a blaze counter "
+ "on it, it has \"At the beginning of your upkeep, this land deals 1 damage " + "on it, it has \"At the beginning of your upkeep, this land deals 1 damage "
+ "to you.\" <i>(The land continues to burn after Obsidian Fireheart has left the battlefield.)</i>"; + "to you.\" <i>(The land continues to burn after {this} has left the battlefield.)</i>";
private static final FilterPermanent filter = new FilterLandPermanent("land without a blaze counter on it"); private static final FilterPermanent filter = new FilterLandPermanent("land without a blaze counter on it");
static { static {

View file

@ -1,7 +1,6 @@
package mage.cards.o; package mage.cards.o;
import java.util.UUID;
import mage.abilities.condition.LockedInCondition; import mage.abilities.condition.LockedInCondition;
import mage.abilities.condition.common.KickedCondition; import mage.abilities.condition.common.KickedCondition;
import mage.abilities.decorator.ConditionalReplacementEffect; import mage.abilities.decorator.ConditionalReplacementEffect;
@ -14,6 +13,8 @@ import mage.constants.CardType;
import mage.constants.Duration; import mage.constants.Duration;
import mage.target.common.TargetAnyTarget; import mage.target.common.TargetAnyTarget;
import java.util.UUID;
/** /**
* *
* @author fireshoes * @author fireshoes
@ -31,7 +32,7 @@ public final class OrimsTouch extends CardImpl {
new PreventDamageToTargetEffect(Duration.EndOfTurn, 4), new PreventDamageToTargetEffect(Duration.EndOfTurn, 4),
new LockedInCondition(KickedCondition.ONCE), new LockedInCondition(KickedCondition.ONCE),
new PreventDamageToTargetEffect(Duration.EndOfTurn, 2)); new PreventDamageToTargetEffect(Duration.EndOfTurn, 2));
effect.setText("Prevent the next 2 damage that would be dealt to any target this turn. If Orim's Touch was kicked, prevent the next 4 damage that would be dealt to that permanent or player this turn instead"); effect.setText("Prevent the next 2 damage that would be dealt to any target this turn. If {this} was kicked, prevent the next 4 damage that would be dealt to that permanent or player this turn instead");
this.getSpellAbility().addTarget(new TargetAnyTarget()); this.getSpellAbility().addTarget(new TargetAnyTarget());
this.getSpellAbility().addEffect(effect); this.getSpellAbility().addEffect(effect);
} }

View file

@ -53,7 +53,7 @@ class OwlbearCubTriggeredAbility extends TriggeredAbilityImpl {
OwlbearCubTriggeredAbility() { OwlbearCubTriggeredAbility() {
super(Zone.BATTLEFIELD, new OwlbearCubEffect()); super(Zone.BATTLEFIELD, new OwlbearCubEffect());
this.withFlavorWord("Mama's Coming"); this.withFlavorWord("Mama's Coming");
setTriggerPhrase("Whenever Owlbear Cub attacks a player who controls eight or more lands, "); setTriggerPhrase("Whenever {this} attacks a player who controls eight or more lands, ");
} }
private OwlbearCubTriggeredAbility(final OwlbearCubTriggeredAbility ability) { private OwlbearCubTriggeredAbility(final OwlbearCubTriggeredAbility ability) {

View file

@ -1,10 +1,11 @@
package mage.cards.p; package mage.cards.p;
import java.util.UUID;
import mage.MageInt; import mage.MageInt;
import mage.ObjectColor; import mage.ObjectColor;
import mage.abilities.TriggeredAbilityImpl; import mage.abilities.TriggeredAbility;
import mage.abilities.common.EntersBattlefieldTriggeredAbility;
import mage.abilities.condition.common.YouControlPermanentCondition;
import mage.abilities.effects.common.GainLifeEffect; import mage.abilities.effects.common.GainLifeEffect;
import mage.abilities.effects.common.LoseLifeTargetEffect; import mage.abilities.effects.common.LoseLifeTargetEffect;
import mage.abilities.keyword.FlyingAbility; import mage.abilities.keyword.FlyingAbility;
@ -12,21 +13,24 @@ 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.filter.FilterPermanent; import mage.filter.FilterPermanent;
import mage.filter.predicate.mageobject.ColorPredicate; import mage.filter.predicate.mageobject.ColorPredicate;
import mage.game.Game;
import mage.game.events.GameEvent;
import mage.game.events.GameEvent.EventType;
import mage.target.TargetPlayer; import mage.target.TargetPlayer;
import java.util.UUID;
/** /**
* @author mluds * @author mluds
*/ */
public final class ParasiticStrix extends CardImpl { public final class ParasiticStrix extends CardImpl {
private static final FilterPermanent filter = new FilterPermanent("black permanent");
static {
filter.add(new ColorPredicate(ObjectColor.BLACK));
}
public ParasiticStrix(UUID ownerId, CardSetInfo setInfo) { public ParasiticStrix(UUID ownerId, CardSetInfo setInfo) {
super(ownerId,setInfo,new CardType[]{CardType.ARTIFACT,CardType.CREATURE},"{2}{U}"); super(ownerId, setInfo, new CardType[]{CardType.ARTIFACT, CardType.CREATURE}, "{2}{U}");
this.subtype.add(SubType.BIRD); this.subtype.add(SubType.BIRD);
this.power = new MageInt(2); this.power = new MageInt(2);
@ -36,7 +40,11 @@ public final class ParasiticStrix extends CardImpl {
this.addAbility(FlyingAbility.getInstance()); this.addAbility(FlyingAbility.getInstance());
// When Parasitic Strix enters the battlefield, if you control a black permanent, target player loses 2 life and you gain 2 life. // When Parasitic Strix enters the battlefield, if you control a black permanent, target player loses 2 life and you gain 2 life.
this.addAbility(new ParasiticStrixTriggeredAbility()); TriggeredAbility ability = new EntersBattlefieldTriggeredAbility(new LoseLifeTargetEffect(2));
ability.addEffect(new GainLifeEffect(2).concatBy("and"));
ability.withInterveningIf(new YouControlPermanentCondition(filter));
ability.addTarget(new TargetPlayer());
this.addAbility(ability);
} }
private ParasiticStrix(final ParasiticStrix card) { private ParasiticStrix(final ParasiticStrix card) {
@ -48,46 +56,3 @@ public final class ParasiticStrix extends CardImpl {
return new ParasiticStrix(this); return new ParasiticStrix(this);
} }
} }
class ParasiticStrixTriggeredAbility extends TriggeredAbilityImpl {
public ParasiticStrixTriggeredAbility() {
super(Zone.BATTLEFIELD, new LoseLifeTargetEffect(2));
this.addEffect(new GainLifeEffect(2));
this.addTarget(new TargetPlayer());
}
private ParasiticStrixTriggeredAbility(final ParasiticStrixTriggeredAbility ability) {
super(ability);
}
@Override
public ParasiticStrixTriggeredAbility copy() {
return new ParasiticStrixTriggeredAbility(this);
}
@Override
public boolean checkEventType(GameEvent event, Game game) {
return event.getType() == GameEvent.EventType.ENTERS_THE_BATTLEFIELD;
}
@Override
public boolean checkTrigger(GameEvent event, Game game) {
return event.getTargetId().equals(this.getSourceId());
}
@Override
public boolean checkInterveningIfClause(Game game) {
FilterPermanent filter = new FilterPermanent();
filter.add(new ColorPredicate(ObjectColor.BLACK));
if (game.getBattlefield().countAll(filter, this.controllerId, game) >= 1) {
return true;
}
return false;
}
@Override
public String getRule() {
return "When Parasitic Strix enters the battlefield, if you control a black permanent, target player loses 2 life and you gain 2 life.";
}
}

View file

@ -1,7 +1,6 @@
package mage.cards.p; package mage.cards.p;
import java.util.UUID;
import mage.MageInt; import mage.MageInt;
import mage.abilities.common.EntersBattlefieldAbility; import mage.abilities.common.EntersBattlefieldAbility;
import mage.abilities.condition.common.KickedCondition; import mage.abilities.condition.common.KickedCondition;
@ -14,6 +13,8 @@ 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 LoneFox * @author LoneFox
@ -31,7 +32,7 @@ public final class PhyrexianScuta extends CardImpl {
// Kicker-Pay 3 life. // Kicker-Pay 3 life.
this.addAbility(new KickerAbility(new PayLifeCost(3))); this.addAbility(new KickerAbility(new PayLifeCost(3)));
// If Phyrexian Scuta was kicked, it enters with two +1/+1 counters on it. // If Phyrexian Scuta was kicked, it enters with two +1/+1 counters on it.
this.addAbility(new EntersBattlefieldAbility(new AddCountersSourceEffect(CounterType.P1P1.createInstance(2)), KickedCondition.ONCE, "If Phyrexian Scuta was kicked, it enters with two +1/+1 counters on it.", "")); this.addAbility(new EntersBattlefieldAbility(new AddCountersSourceEffect(CounterType.P1P1.createInstance(2)), KickedCondition.ONCE, "If {this} was kicked, it enters with two +1/+1 counters on it.", ""));
} }
private PhyrexianScuta(final PhyrexianScuta card) { private PhyrexianScuta(final PhyrexianScuta card) {

View file

@ -1,22 +1,20 @@
package mage.cards.p; package mage.cards.p;
import java.util.UUID;
import mage.MageInt; import mage.MageInt;
import mage.abilities.Ability; import mage.abilities.Ability;
import mage.abilities.triggers.BeginningOfUpkeepTriggeredAbility;
import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.common.SimpleActivatedAbility;
import mage.abilities.costs.common.RemoveCountersSourceCost; import mage.abilities.costs.common.RemoveCountersSourceCost;
import mage.abilities.costs.common.TapSourceCost; import mage.abilities.costs.common.TapSourceCost;
import mage.abilities.effects.OneShotEffect; import mage.abilities.effects.OneShotEffect;
import mage.abilities.effects.common.GainLifeEffect; import mage.abilities.effects.common.GainLifeEffect;
import mage.abilities.effects.common.counter.AddCountersSourceEffect; import mage.abilities.effects.common.counter.AddCountersSourceEffect;
import mage.abilities.triggers.BeginningOfUpkeepTriggeredAbility;
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.Outcome; import mage.constants.Outcome;
import mage.constants.Zone; import mage.constants.SubType;
import mage.counters.CounterType; import mage.counters.CounterType;
import mage.filter.common.FilterCreaturePermanent; import mage.filter.common.FilterCreaturePermanent;
import mage.filter.predicate.mageobject.NamePredicate; import mage.filter.predicate.mageobject.NamePredicate;
@ -24,6 +22,8 @@ import mage.game.Game;
import mage.game.permanent.Permanent; import mage.game.permanent.Permanent;
import mage.players.Player; import mage.players.Player;
import java.util.UUID;
/** /**
* *
* @author LevelX2 * @author LevelX2
@ -66,7 +66,7 @@ class PiousKitsuneEffect extends OneShotEffect {
public PiousKitsuneEffect() { public PiousKitsuneEffect() {
super(Outcome.Benefit); super(Outcome.Benefit);
this.staticText = "put a devotion counter on Pious Kitsune. Then if a creature named Eight-and-a-Half-Tails is on the battlefield, you gain 1 life for each devotion counter on Pious Kitsune"; this.staticText = "put a devotion counter on {this}. Then if a creature named Eight-and-a-Half-Tails is on the battlefield, you gain 1 life for each devotion counter on {this}";
} }
private PiousKitsuneEffect(final PiousKitsuneEffect effect) { private PiousKitsuneEffect(final PiousKitsuneEffect effect) {

View file

@ -42,7 +42,7 @@ class PlaneswalkersFuryEffect extends OneShotEffect {
PlaneswalkersFuryEffect() { PlaneswalkersFuryEffect() {
super(Outcome.Damage); super(Outcome.Damage);
staticText = "Target opponent reveals a card at random from their hand. Planeswalker's Fury deals damage equal to that card's mana value to that player"; staticText = "Target opponent reveals a card at random from their hand. {this} deals damage equal to that card's mana value to that player";
} }
private PlaneswalkersFuryEffect(final PlaneswalkersFuryEffect effect) { private PlaneswalkersFuryEffect(final PlaneswalkersFuryEffect effect) {

View file

@ -1,6 +1,5 @@
package mage.cards.p; package mage.cards.p;
import java.util.UUID;
import mage.MageInt; import mage.MageInt;
import mage.abilities.Ability; import mage.abilities.Ability;
import mage.abilities.common.EntersBattlefieldTriggeredAbility; import mage.abilities.common.EntersBattlefieldTriggeredAbility;
@ -11,19 +10,21 @@ import mage.abilities.effects.common.DoIfAnyNumberCostPaid;
import mage.abilities.effects.common.continuous.BecomesCreatureTargetEffect; import mage.abilities.effects.common.continuous.BecomesCreatureTargetEffect;
import mage.abilities.effects.common.counter.AddCountersSourceEffect; import mage.abilities.effects.common.counter.AddCountersSourceEffect;
import mage.abilities.keyword.HasteAbility; import mage.abilities.keyword.HasteAbility;
import mage.constants.Duration;
import mage.constants.Outcome;
import mage.constants.SubType;
import mage.abilities.keyword.TrampleAbility; import mage.abilities.keyword.TrampleAbility;
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.Outcome;
import mage.constants.SubType;
import mage.counters.CounterType; import mage.counters.CounterType;
import mage.filter.StaticFilters; import mage.filter.StaticFilters;
import mage.game.Game; import mage.game.Game;
import mage.game.permanent.token.TokenImpl; import mage.game.permanent.token.TokenImpl;
import mage.target.TargetPermanent; import mage.target.TargetPermanent;
import java.util.UUID;
/** /**
* *
* @author weirddan455 * @author weirddan455
@ -62,7 +63,7 @@ class PrimalAdversaryEffect extends OneShotEffect {
PrimalAdversaryEffect() { PrimalAdversaryEffect() {
super(Outcome.Benefit); super(Outcome.Benefit);
staticText = "put that many +1/+1 counters on Primal Adversary, " + staticText = "put that many +1/+1 counters on {this}, " +
"then up to that many target lands you control become 3/3 Wolf creatures with haste that are still lands"; "then up to that many target lands you control become 3/3 Wolf creatures with haste that are still lands";
} }

View file

@ -32,7 +32,7 @@ public final class Primalcrux extends CardImpl {
// Chroma - Primalcrux's power and toughness are each equal to the number of green mana symbols in the mana costs of permanents you control. // Chroma - Primalcrux's power and toughness are each equal to the number of green mana symbols in the mana costs of permanents you control.
DynamicValue xValue = new ChromaCount(ManaType.GREEN); DynamicValue xValue = new ChromaCount(ManaType.GREEN);
Effect effect = new SetBasePowerToughnessSourceEffect(xValue); Effect effect = new SetBasePowerToughnessSourceEffect(xValue);
effect.setText("<i>Chroma</i> &mdash; Primalcrux's power and toughness are each equal to the number of green mana symbols in the mana costs of permanents you control."); effect.setText("<i>Chroma</i> &mdash; {this}'s power and toughness are each equal to the number of green mana symbols in the mana costs of permanents you control.");
this.addAbility(new SimpleStaticAbility(Zone.ALL, effect) this.addAbility(new SimpleStaticAbility(Zone.ALL, effect)
.addHint(new ValueHint("Green mana symbols in your permanents", xValue)) .addHint(new ValueHint("Green mana symbols in your permanents", xValue))
); );

View file

@ -1,7 +1,6 @@
package mage.cards.r; package mage.cards.r;
import java.util.UUID;
import mage.abilities.condition.common.SpellMasteryCondition; import mage.abilities.condition.common.SpellMasteryCondition;
import mage.abilities.decorator.ConditionalOneShotEffect; import mage.abilities.decorator.ConditionalOneShotEffect;
import mage.abilities.dynamicvalue.common.GetXValue; import mage.abilities.dynamicvalue.common.GetXValue;
@ -12,6 +11,8 @@ import mage.cards.CardSetInfo;
import mage.constants.CardType; import mage.constants.CardType;
import mage.target.common.TargetCreaturePermanent; import mage.target.common.TargetCreaturePermanent;
import java.util.UUID;
/** /**
* *
* @author LevelX2 * @author LevelX2
@ -26,7 +27,7 @@ public final class RavagingBlaze extends CardImpl {
this.getSpellAbility().addTarget(new TargetCreaturePermanent()); this.getSpellAbility().addTarget(new TargetCreaturePermanent());
// <i>Spell mastery</i> &mdash; If there are two or more instant and/or sorcery cards in your graveyard, Ravaging Blaze also deals X damage to that creature's controller. // <i>Spell mastery</i> &mdash; If there are two or more instant and/or sorcery cards in your graveyard, Ravaging Blaze also deals X damage to that creature's controller.
this.getSpellAbility().addEffect(new ConditionalOneShotEffect(new DamageTargetControllerEffect(GetXValue.instance), this.getSpellAbility().addEffect(new ConditionalOneShotEffect(new DamageTargetControllerEffect(GetXValue.instance),
SpellMasteryCondition.instance, "<br><i>Spell mastery</i> &mdash; If there are two or more instant and/or sorcery cards in your graveyard, Ravaging Blaze also deals X damage to that creature's controller.")); SpellMasteryCondition.instance, "<br><i>Spell mastery</i> &mdash; If there are two or more instant and/or sorcery cards in your graveyard, {this} also deals X damage to that creature's controller."));
} }
private RavagingBlaze(final RavagingBlaze card) { private RavagingBlaze(final RavagingBlaze card) {

View file

@ -52,7 +52,7 @@ class RefuseEffect extends OneShotEffect {
RefuseEffect() { RefuseEffect() {
super(Outcome.Damage); super(Outcome.Damage);
staticText = "Refuse deals damage to target spell's controller equal to that spell's mana value"; staticText = "{this} deals damage to target spell's controller equal to that spell's mana value";
} }
private RefuseEffect(final RefuseEffect effect) { private RefuseEffect(final RefuseEffect effect) {

View file

@ -1,6 +1,5 @@
package mage.cards.r; package mage.cards.r;
import java.util.UUID;
import mage.MageInt; import mage.MageInt;
import mage.MageObject; import mage.MageObject;
import mage.abilities.Ability; import mage.abilities.Ability;
@ -9,13 +8,13 @@ import mage.abilities.common.delayed.ReflexiveTriggeredAbility;
import mage.abilities.costs.common.ExileFromGraveCost; import mage.abilities.costs.common.ExileFromGraveCost;
import mage.abilities.effects.OneShotEffect; import mage.abilities.effects.OneShotEffect;
import mage.abilities.effects.common.DoWhenCostPaid; import mage.abilities.effects.common.DoWhenCostPaid;
import mage.cards.Card;
import mage.constants.Outcome;
import mage.constants.SubType;
import mage.abilities.keyword.FlyingAbility; import mage.abilities.keyword.FlyingAbility;
import mage.cards.Card;
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.Outcome;
import mage.constants.SubType;
import mage.counters.CounterType; import mage.counters.CounterType;
import mage.filter.StaticFilters; import mage.filter.StaticFilters;
import mage.filter.common.FilterCreatureCard; import mage.filter.common.FilterCreatureCard;
@ -25,6 +24,8 @@ import mage.game.permanent.Permanent;
import mage.players.Player; import mage.players.Player;
import mage.target.common.TargetCardInYourGraveyard; import mage.target.common.TargetCardInYourGraveyard;
import java.util.UUID;
/** /**
* *
* @author weirddan455 * @author weirddan455
@ -54,7 +55,7 @@ public final class ResplendentMarshal extends CardImpl {
this.addAbility(new EntersBattlefieldOrDiesSourceTriggeredAbility( this.addAbility(new EntersBattlefieldOrDiesSourceTriggeredAbility(
new DoWhenCostPaid( new DoWhenCostPaid(
new ReflexiveTriggeredAbility(new ResplendentMarshalEffect(), false, new ReflexiveTriggeredAbility(new ResplendentMarshalEffect(), false,
"put a +1/+1 counter on each creature you control other than Resplendent Marshal that shares a creature type with the exiled card"), "put a +1/+1 counter on each creature you control other than {this} that shares a creature type with the exiled card"),
new ExileFromGraveCost(new TargetCardInYourGraveyard(filter), true), new ExileFromGraveCost(new TargetCardInYourGraveyard(filter), true),
"Exile another creature card from your graveyard?" "Exile another creature card from your graveyard?"
), false ), false

View file

@ -1,7 +1,6 @@
package mage.cards.r; package mage.cards.r;
import java.util.UUID;
import mage.abilities.TriggeredAbilityImpl; import mage.abilities.TriggeredAbilityImpl;
import mage.abilities.effects.Effect; import mage.abilities.effects.Effect;
import mage.abilities.effects.common.DamageTargetEffect; import mage.abilities.effects.common.DamageTargetEffect;
@ -12,9 +11,10 @@ import mage.constants.Zone;
import mage.filter.StaticFilters; import mage.filter.StaticFilters;
import mage.game.Game; import mage.game.Game;
import mage.game.events.GameEvent; import mage.game.events.GameEvent;
import mage.game.events.GameEvent.EventType;
import mage.target.targetpointer.FixedTarget; import mage.target.targetpointer.FixedTarget;
import java.util.UUID;
/** /**
* *
* @author Plopman * @author Plopman
@ -87,6 +87,6 @@ class RivalryTriggeredAbility extends TriggeredAbilityImpl {
@Override @Override
public String getRule() { public String getRule() {
return "At the beginning of each player's upkeep, if that player controls more lands than each other player, Rivalry deals 2 damage to them."; return "At the beginning of each player's upkeep, if that player controls more lands than each other player, {this} deals 2 damage to them.";
} }
} }

View file

@ -1,7 +1,6 @@
package mage.cards.r; package mage.cards.r;
import java.util.UUID;
import mage.abilities.effects.Effect; import mage.abilities.effects.Effect;
import mage.abilities.effects.common.DamageAllEffect; import mage.abilities.effects.common.DamageAllEffect;
import mage.abilities.keyword.FlyingAbility; import mage.abilities.keyword.FlyingAbility;
@ -13,6 +12,8 @@ import mage.filter.common.FilterCreaturePermanent;
import mage.filter.predicate.Predicates; import mage.filter.predicate.Predicates;
import mage.filter.predicate.mageobject.AbilityPredicate; import mage.filter.predicate.mageobject.AbilityPredicate;
import java.util.UUID;
/** /**
* *
* @author LevelX2 * @author LevelX2
@ -33,13 +34,13 @@ public final class RoughTumble extends SplitCard {
// Rough // Rough
// Rough deals 2 damage to each creature without flying. // Rough deals 2 damage to each creature without flying.
Effect effect = new DamageAllEffect(2, filterWithoutFlying); Effect effect = new DamageAllEffect(2, filterWithoutFlying);
effect.setText("Rough deals 2 damage to each creature without flying"); effect.setText("{this} deals 2 damage to each creature without flying");
getLeftHalfCard().getSpellAbility().addEffect(effect); getLeftHalfCard().getSpellAbility().addEffect(effect);
// Tumble // Tumble
// Tumble deals 6 damage to each creature with flying. // Tumble deals 6 damage to each creature with flying.
effect = new DamageAllEffect(6, filterFlying); effect = new DamageAllEffect(6, filterFlying);
effect.setText("Tumble deals 6 damage to each creature with flying"); effect.setText("{this} deals 6 damage to each creature with flying");
getRightHalfCard().getSpellAbility().addEffect(effect); getRightHalfCard().getSpellAbility().addEffect(effect);
} }

View file

@ -1,7 +1,6 @@
package mage.cards.r; package mage.cards.r;
import java.util.UUID;
import mage.ObjectColor; import mage.ObjectColor;
import mage.abilities.TriggeredAbilityImpl; import mage.abilities.TriggeredAbilityImpl;
import mage.abilities.costs.mana.ManaCostsImpl; import mage.abilities.costs.mana.ManaCostsImpl;
@ -22,6 +21,8 @@ import mage.game.permanent.Permanent;
import mage.players.Player; import mage.players.Player;
import mage.target.targetpointer.FixedTarget; import mage.target.targetpointer.FixedTarget;
import java.util.UUID;
/** /**
* *
* @author L_J * @author L_J
@ -94,6 +95,6 @@ class RoyalDecreeAbility extends TriggeredAbilityImpl {
@Override @Override
public String getRule() { public String getRule() {
return "Whenever a Swamp, Mountain, black permanent, or red permanent becomes tapped, Royal Decree deals 1 damage to that permanent's controller."; return "Whenever a Swamp, Mountain, black permanent, or red permanent becomes tapped, {this} deals 1 damage to that permanent's controller.";
} }
} }

View file

@ -52,7 +52,7 @@ class RuptureEffect extends OneShotEffect {
public RuptureEffect() { public RuptureEffect() {
super(Outcome.Damage); super(Outcome.Damage);
staticText = "Sacrifice a creature. Rupture deals damage equal to that creature's power to each creature without flying and each player"; staticText = "Sacrifice a creature. {this} deals damage equal to that creature's power to each creature without flying and each player";
} }
private RuptureEffect(final RuptureEffect effect) { private RuptureEffect(final RuptureEffect effect) {