various and sundry text fixes

This commit is contained in:
xenohedron 2023-11-04 17:44:36 -04:00
parent 26605220f7
commit e122e9d512
21 changed files with 46 additions and 183 deletions

View file

@ -57,7 +57,7 @@ class AngelicSkirmisherEffect extends OneShotEffect {
AngelicSkirmisherEffect() { AngelicSkirmisherEffect() {
super(Outcome.AddAbility); super(Outcome.AddAbility);
staticText = "choose first strike, vigilance or lifelink. Creatures you control gain that ability until end of turn"; staticText = "choose first strike, vigilance, or lifelink. Creatures you control gain that ability until end of turn";
} }
private AngelicSkirmisherEffect(final AngelicSkirmisherEffect effect) { private AngelicSkirmisherEffect(final AngelicSkirmisherEffect effect) {

View file

@ -32,7 +32,7 @@ public final class Biovisionary extends CardImpl {
//At the beginning of the end step, if you control four or more creatures named Biovisionary, you win the game. //At the beginning of the end step, if you control four or more creatures named Biovisionary, you win the game.
this.addAbility(new BeginningOfEndStepTriggeredAbility( this.addAbility(new BeginningOfEndStepTriggeredAbility(
Zone.BATTLEFIELD, new WinGameSourceControllerEffect(), Zone.BATTLEFIELD, new WinGameSourceControllerEffect(),
TargetController.ANY, TargetController.NEXT,
new PermanentsOnTheBattlefieldCondition(filter, ComparisonType.MORE_THAN, 3), new PermanentsOnTheBattlefieldCondition(filter, ComparisonType.MORE_THAN, 3),
false)); false));
} }
@ -46,4 +46,3 @@ public final class Biovisionary extends CardImpl {
return new Biovisionary(this); return new Biovisionary(this);
} }
} }

View file

@ -77,7 +77,7 @@ class ClericClassReturnEffect extends OneShotEffect {
ClericClassReturnEffect() { ClericClassReturnEffect() {
super(Outcome.Benefit); super(Outcome.Benefit);
staticText = "return target creature card from your graveyard to the battlefield. " + staticText = "return target creature card from your graveyard to the battlefield. " +
"You gain life equal to its toughness"; "You gain life equal to that creature's toughness";
} }
private ClericClassReturnEffect(final ClericClassReturnEffect effect) { private ClericClassReturnEffect(final ClericClassReturnEffect effect) {
@ -97,6 +97,7 @@ class ClericClassReturnEffect extends OneShotEffect {
return false; return false;
} }
player.moveCards(card, Zone.BATTLEFIELD, source, game); player.moveCards(card, Zone.BATTLEFIELD, source, game);
game.getState().processAction(game);
Permanent permanent = game.getPermanent(card.getId()); Permanent permanent = game.getPermanent(card.getId());
int toughness = permanent != null ? permanent.getToughness().getValue() : card.getToughness().getValue(); int toughness = permanent != null ? permanent.getToughness().getValue() : card.getToughness().getValue();
player.gainLife(toughness, game, source); player.gainLife(toughness, game, source);

View file

@ -75,6 +75,6 @@ class CryptGhastTriggeredAbility extends TriggeredManaAbility {
@Override @Override
public String getRule() { public String getRule() {
return "Whenever you tap a Swamp for mana, add {B} <i>(in addition to the mana the land produces)</i>."; return "Whenever you tap a Swamp for mana, add an additional {B}.";
} }
} }

View file

@ -1,11 +1,8 @@
package mage.cards.d; package mage.cards.d;
import java.util.UUID;
import mage.abilities.Ability; import mage.abilities.Ability;
import mage.abilities.common.DiesAttachedTriggeredAbility; import mage.abilities.common.DiesAttachedTriggeredAbility;
import mage.abilities.dynamicvalue.DynamicValue; import mage.abilities.dynamicvalue.common.AttachedPermanentPowerCount;
import mage.abilities.effects.Effect;
import mage.abilities.effects.common.AttachEffect; import mage.abilities.effects.common.AttachEffect;
import mage.abilities.effects.common.GainLifeEffect; import mage.abilities.effects.common.GainLifeEffect;
import mage.abilities.effects.common.LoseLifeTargetEffect; import mage.abilities.effects.common.LoseLifeTargetEffect;
@ -13,15 +10,14 @@ import mage.abilities.keyword.EnchantAbility;
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.game.Game;
import mage.game.permanent.Permanent;
import mage.target.TargetPermanent; import mage.target.TargetPermanent;
import mage.target.TargetPlayer; import mage.target.TargetPlayer;
import mage.target.common.TargetControlledCreaturePermanent; import mage.target.common.TargetControlledCreaturePermanent;
import java.util.UUID;
/** /**
* *
* @author LevelX2 * @author LevelX2
@ -41,9 +37,10 @@ public final class DyingWish extends CardImpl {
this.addAbility(ability); this.addAbility(ability);
// When enchanted creature dies, target player loses X life and you gain X life, where X is its power. // When enchanted creature dies, target player loses X life and you gain X life, where X is its power.
DynamicValue attachedPower = new DyingWishAttachedPermanentPowerCount(); ability = new DiesAttachedTriggeredAbility(new LoseLifeTargetEffect(AttachedPermanentPowerCount.instance)
ability = new DiesAttachedTriggeredAbility(new LoseLifeTargetEffect(attachedPower), "enchanted creature"); .setText("target player loses X life"), "enchanted creature");
ability.addEffect(new GainLifeEffect(attachedPower)); ability.addEffect(new GainLifeEffect(AttachedPermanentPowerCount.instance)
.setText("and you gain X life, where X is its power"));
ability.addTarget(new TargetPlayer()); ability.addTarget(new TargetPlayer());
this.addAbility(ability); this.addAbility(ability);
} }
@ -57,38 +54,3 @@ public final class DyingWish extends CardImpl {
return new DyingWish(this); return new DyingWish(this);
} }
} }
class DyingWishAttachedPermanentPowerCount implements DynamicValue {
@Override
public int calculate(Game game, Ability sourceAbility, Effect effect) {
Permanent attachmentPermanent = game.getPermanent(sourceAbility.getSourceId());
if (attachmentPermanent == null) {
attachmentPermanent = (Permanent) game.getLastKnownInformation(sourceAbility.getSourceId(), Zone.BATTLEFIELD, sourceAbility.getSourceObjectZoneChangeCounter());
}
if (attachmentPermanent != null && attachmentPermanent.getAttachedTo() != null) {
if (effect.getValue("attachedTo") != null) {
Permanent attached = (Permanent) effect.getValue("attachedTo");
if (attached != null) {
return attached.getPower().getValue();
}
}
}
return 0;
}
@Override
public DyingWishAttachedPermanentPowerCount copy() {
return new DyingWishAttachedPermanentPowerCount();
}
@Override
public String toString() {
return "X";
}
@Override
public String getMessage() {
return "its power";
}
}

View file

@ -1,24 +1,22 @@
package mage.cards.f; package mage.cards.f;
import java.util.UUID;
import mage.abilities.Ability; import mage.abilities.Ability;
import mage.abilities.Mode;
import mage.abilities.common.DiesAttachedTriggeredAbility; import mage.abilities.common.DiesAttachedTriggeredAbility;
import mage.abilities.effects.OneShotEffect; import mage.abilities.dynamicvalue.common.AttachedPermanentToughnessCount;
import mage.abilities.effects.common.AttachEffect; import mage.abilities.effects.common.AttachEffect;
import mage.abilities.effects.common.DrawCardSourceControllerEffect;
import mage.abilities.effects.common.GainLifeEffect;
import mage.abilities.keyword.EnchantAbility; import mage.abilities.keyword.EnchantAbility;
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.game.Game; import mage.constants.SubType;
import mage.game.permanent.Permanent;
import mage.players.Player;
import mage.target.TargetPermanent; import mage.target.TargetPermanent;
import mage.target.common.TargetCreaturePermanent; import mage.target.common.TargetCreaturePermanent;
import java.util.UUID;
/** /**
* *
* @author LevelX2 * @author LevelX2
@ -37,7 +35,11 @@ public final class FruitOfTheFirstTree extends CardImpl {
this.addAbility(ability); this.addAbility(ability);
// When enchanted creature dies, you gain X life and draw X cards, where X is its toughness. // When enchanted creature dies, you gain X life and draw X cards, where X is its toughness.
this.addAbility( new DiesAttachedTriggeredAbility(new FruitOfTheFirstTreeEffect(), "enchanted creature")); ability = new DiesAttachedTriggeredAbility(new GainLifeEffect(AttachedPermanentToughnessCount.instance)
.setText("you gain X life"), "enchanted creature");
ability.addEffect(new DrawCardSourceControllerEffect(AttachedPermanentToughnessCount.instance)
.setText("and draw X cards, where X is its toughness"));
this.addAbility(ability);
} }
private FruitOfTheFirstTree(final FruitOfTheFirstTree card) { private FruitOfTheFirstTree(final FruitOfTheFirstTree card) {
@ -49,32 +51,3 @@ public final class FruitOfTheFirstTree extends CardImpl {
return new FruitOfTheFirstTree(this); return new FruitOfTheFirstTree(this);
} }
} }
class FruitOfTheFirstTreeEffect extends OneShotEffect {
public FruitOfTheFirstTreeEffect() {
super(Outcome.Benefit);
this.staticText = "you gain X life and draw X cards, where X is its toughness";
}
private FruitOfTheFirstTreeEffect(final FruitOfTheFirstTreeEffect copy) {
super(copy);
}
@Override
public FruitOfTheFirstTreeEffect copy() {
return new FruitOfTheFirstTreeEffect(this);
}
@Override
public boolean apply(Game game, Ability source) {
Player controller = game.getPlayer(source.getControllerId());
Permanent creature = (Permanent) getValue("attachedTo");
if (controller != null && creature != null) {
controller.gainLife(creature.getToughness().getValue(), game, source);
controller.drawCards(creature.getToughness().getValue(), source, game);
return true;
}
return false;
}
}

View file

@ -1,18 +1,14 @@
package mage.cards.l; package mage.cards.l;
import java.util.UUID;
import mage.MageInt; import mage.MageInt;
import mage.abilities.TriggeredAbilityImpl; import mage.abilities.common.DealsCombatDamageTriggeredAbility;
import mage.abilities.effects.common.ReturnToHandSourceEffect; import mage.abilities.effects.common.ReturnToHandSourceEffect;
import mage.cards.CardImpl; import mage.cards.CardImpl;
import mage.cards.CardSetInfo; import mage.cards.CardSetInfo;
import mage.constants.CardType; import mage.constants.CardType;
import mage.constants.SubType; import mage.constants.SubType;
import mage.constants.Zone;
import mage.game.Game; import java.util.UUID;
import mage.game.events.DamagedEvent;
import mage.game.events.GameEvent;
import mage.game.events.GameEvent.EventType;
/** /**
* *
@ -28,7 +24,7 @@ public final class LeylinePhantom extends CardImpl {
this.toughness = new MageInt(5); this.toughness = new MageInt(5);
//Whenever Leyline Phantom deals combat damage, return it to its owner's hand. //Whenever Leyline Phantom deals combat damage, return it to its owner's hand.
this.addAbility(new LeylinePhantomTriggeredAbility()); this.addAbility(new DealsCombatDamageTriggeredAbility(new ReturnToHandSourceEffect(true), false));
} }
private LeylinePhantom(final LeylinePhantom card) { private LeylinePhantom(final LeylinePhantom card) {
@ -40,31 +36,3 @@ public final class LeylinePhantom extends CardImpl {
return new LeylinePhantom(this); return new LeylinePhantom(this);
} }
} }
class LeylinePhantomTriggeredAbility extends TriggeredAbilityImpl {
public LeylinePhantomTriggeredAbility() {
super(Zone.BATTLEFIELD, new ReturnToHandSourceEffect(true), false);
setTriggerPhrase("Whenever {this} deals combat damage, ");
}
private LeylinePhantomTriggeredAbility(final LeylinePhantomTriggeredAbility ability) {
super(ability);
}
@Override
public LeylinePhantomTriggeredAbility copy() {
return new LeylinePhantomTriggeredAbility(this);
}
@Override
public boolean checkEventType(GameEvent event, Game game) {
return event.getType() == GameEvent.EventType.DAMAGED_PERMANENT
|| event.getType() == GameEvent.EventType.DAMAGED_PLAYER;
}
@Override
public boolean checkTrigger(GameEvent event, Game game) {
return ((DamagedEvent) event).isCombatDamage() && event.getSourceId().equals(this.getSourceId());
}
}

View file

@ -28,7 +28,7 @@ public final class Mirozel extends CardImpl {
this.addAbility(FlyingAbility.getInstance()); this.addAbility(FlyingAbility.getInstance());
// When Mirozel becomes the target of a spell or ability, return Mirozel to its owner's hand. // When Mirozel becomes the target of a spell or ability, return Mirozel to its owner's hand.
this.addAbility(new BecomesTargetSourceTriggeredAbility(new ReturnToHandSourceEffect(true))); this.addAbility(new BecomesTargetSourceTriggeredAbility(new ReturnToHandSourceEffect(true)).withRuleTextReplacement(false));
} }
private Mirozel(final Mirozel card) { private Mirozel(final Mirozel card) {

View file

@ -29,7 +29,7 @@ public final class NavSquadCommandos extends CardImpl {
// Battalion Whenever Nav Squad Commandos and at least two other creatures attack, Nav Squad Commandos gets +1/+1 until end of turn. Untap it. // Battalion Whenever Nav Squad Commandos and at least two other creatures attack, Nav Squad Commandos gets +1/+1 until end of turn. Untap it.
Ability ability = new BattalionAbility(new BoostSourceEffect(1,1, Duration.EndOfTurn)); Ability ability = new BattalionAbility(new BoostSourceEffect(1,1, Duration.EndOfTurn));
ability.addEffect(new UntapSourceEffect()); ability.addEffect(new UntapSourceEffect().setText("untap it"));
this.addAbility(ability); this.addAbility(ability);
} }

View file

@ -4,7 +4,7 @@ import mage.abilities.Ability;
import mage.abilities.common.DiesAttachedTriggeredAbility; import mage.abilities.common.DiesAttachedTriggeredAbility;
import mage.abilities.common.DiesCreatureTriggeredAbility; import mage.abilities.common.DiesCreatureTriggeredAbility;
import mage.abilities.common.SimpleStaticAbility; import mage.abilities.common.SimpleStaticAbility;
import mage.abilities.dynamicvalue.DynamicValue; import mage.abilities.dynamicvalue.common.AttachedPermanentPowerCount;
import mage.abilities.effects.Effect; import mage.abilities.effects.Effect;
import mage.abilities.effects.common.AttachEffect; import mage.abilities.effects.common.AttachEffect;
import mage.abilities.effects.common.LookLibraryAndPickControllerEffect; import mage.abilities.effects.common.LookLibraryAndPickControllerEffect;
@ -15,8 +15,6 @@ import mage.cards.CardImpl;
import mage.cards.CardSetInfo; import mage.cards.CardSetInfo;
import mage.constants.*; import mage.constants.*;
import mage.counters.CounterType; import mage.counters.CounterType;
import mage.game.Game;
import mage.game.permanent.Permanent;
import mage.target.TargetPermanent; import mage.target.TargetPermanent;
import mage.target.common.TargetCreaturePermanent; import mage.target.common.TargetCreaturePermanent;
@ -47,8 +45,7 @@ public final class Necrosynthesis extends CardImpl {
// When enchanted creature dies, look at the top X cards of your library, where X is its power. // When enchanted creature dies, look at the top X cards of your library, where X is its power.
// Put one of those cards into your hand and the rest on the bottom of your library in a random order. // Put one of those cards into your hand and the rest on the bottom of your library in a random order.
DynamicValue attachedPower = new NecrosynthesisAttachedPermanentPowerCount(); effect = new LookLibraryAndPickControllerEffect(AttachedPermanentPowerCount.instance, 1, PutCards.HAND, PutCards.BOTTOM_RANDOM);
effect = new LookLibraryAndPickControllerEffect(attachedPower, 1, PutCards.HAND, PutCards.BOTTOM_RANDOM);
effect.setText("look at the top X cards of your library, where X is its power. " + effect.setText("look at the top X cards of your library, where X is its power. " +
"Put one of those cards into your hand and the rest on the bottom of your library in a random order"); "Put one of those cards into your hand and the rest on the bottom of your library in a random order");
ability = new DiesAttachedTriggeredAbility(effect, "enchanted creature"); ability = new DiesAttachedTriggeredAbility(effect, "enchanted creature");
@ -64,38 +61,3 @@ public final class Necrosynthesis extends CardImpl {
return new Necrosynthesis(this); return new Necrosynthesis(this);
} }
} }
class NecrosynthesisAttachedPermanentPowerCount implements DynamicValue {
@Override
public int calculate(Game game, Ability sourceAbility, Effect effect) {
Permanent attachmentPermanent = game.getPermanent(sourceAbility.getSourceId());
if (attachmentPermanent == null) {
attachmentPermanent = (Permanent) game.getLastKnownInformation(sourceAbility.getSourceId(), Zone.BATTLEFIELD, sourceAbility.getSourceObjectZoneChangeCounter());
}
if (attachmentPermanent != null && attachmentPermanent.getAttachedTo() != null) {
if (effect.getValue("attachedTo") != null) {
Permanent attached = (Permanent) effect.getValue("attachedTo");
if (attached != null) {
return attached.getPower().getValue();
}
}
}
return 0;
}
@Override
public NecrosynthesisAttachedPermanentPowerCount copy() {
return new NecrosynthesisAttachedPermanentPowerCount();
}
@Override
public String toString() {
return "X";
}
@Override
public String getMessage() {
return "its power";
}
}

View file

@ -24,7 +24,8 @@ public final class Petrahydrox extends CardImpl {
this.toughness = new MageInt(3); this.toughness = new MageInt(3);
// When Petrahydrox becomes the target of a spell or ability, return Petrahydrox to its owner's hand. // When Petrahydrox becomes the target of a spell or ability, return Petrahydrox to its owner's hand.
this.addAbility(new BecomesTargetSourceTriggeredAbility(new ReturnToHandSourceEffect(true))); this.addAbility(new BecomesTargetSourceTriggeredAbility(new ReturnToHandSourceEffect(true))
.withRuleTextReplacement(false));
} }
private Petrahydrox(final Petrahydrox card) { private Petrahydrox(final Petrahydrox card) {

View file

@ -32,7 +32,7 @@ public final class PowerOfPersuasion extends CardImpl {
// 10-19 | Its owner puts it on the top of bottom of their library. // 10-19 | Its owner puts it on the top of bottom of their library.
effect.addTableEntry(10, 19, new PutOnTopOrBottomLibraryTargetEffect( effect.addTableEntry(10, 19, new PutOnTopOrBottomLibraryTargetEffect(
"its owner puts it on the top of bottom of their library" "its owner puts it on the top or bottom of their library"
)); ));
// 20 | Gain control of it until the end of your next turn. // 20 | Gain control of it until the end of your next turn.

View file

@ -27,7 +27,7 @@ public final class ShivanPhoenix extends CardImpl {
// Flying // Flying
this.addAbility(FlyingAbility.getInstance()); this.addAbility(FlyingAbility.getInstance());
// When Shivan Phoenix dies, return Shivan Phoenix to its owner's hand. // When Shivan Phoenix dies, return Shivan Phoenix to its owner's hand.
this.addAbility(new DiesSourceTriggeredAbility(new ReturnToHandSourceEffect())); this.addAbility(new DiesSourceTriggeredAbility(new ReturnToHandSourceEffect()).withRuleTextReplacement(false));
} }
private ShivanPhoenix(final ShivanPhoenix card) { private ShivanPhoenix(final ShivanPhoenix card) {

View file

@ -35,7 +35,7 @@ public final class SparkTrooper extends CardImpl {
this.addAbility(HasteAbility.getInstance()); this.addAbility(HasteAbility.getInstance());
// At the beginning of the end step, sacrifice Spark Trooper. // At the beginning of the end step, sacrifice Spark Trooper.
this.addAbility(new BeginningOfEndStepTriggeredAbility(new SacrificeSourceEffect(), TargetController.ANY, false)); this.addAbility(new BeginningOfEndStepTriggeredAbility(new SacrificeSourceEffect(), TargetController.NEXT, false));
} }

View file

@ -1,4 +1,3 @@
package mage.cards.s; package mage.cards.s;
import java.util.UUID; import java.util.UUID;
@ -33,7 +32,7 @@ public final class SpikeDrone extends CardImpl {
this.toughness = new MageInt(0); this.toughness = new MageInt(0);
this.addAbility(new EntersBattlefieldAbility(new AddCountersSourceEffect(CounterType.P1P1.createInstance(1)), this.addAbility(new EntersBattlefieldAbility(new AddCountersSourceEffect(CounterType.P1P1.createInstance(1)),
"{this} enters the battlefield with a +1/+1 counter on it")); "with a +1/+1 counter on it"));
Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new AddCountersTargetEffect(CounterType.P1P1.createInstance(1)), new GenericManaCost(2)); Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new AddCountersTargetEffect(CounterType.P1P1.createInstance(1)), new GenericManaCost(2));
ability.addCost(new RemoveCountersSourceCost(CounterType.P1P1.createInstance(1))); ability.addCost(new RemoveCountersSourceCost(CounterType.P1P1.createInstance(1)));

View file

@ -20,7 +20,6 @@ import mage.filter.StaticFilters;
import mage.game.Game; import mage.game.Game;
import mage.players.Player; import mage.players.Player;
import mage.target.TargetPlayer; import mage.target.TargetPlayer;
import mage.target.common.TargetControlledCreaturePermanent;
/** /**
* *
@ -58,7 +57,7 @@ class UndercityInformerEffect extends OneShotEffect {
public UndercityInformerEffect() { public UndercityInformerEffect() {
super(Outcome.PutCardInPlay); super(Outcome.PutCardInPlay);
this.staticText = "Target player reveals the top card of their library until they reveal a land card, then puts those cards into their graveyard"; this.staticText = "Target player reveals cards from the top of their library until they reveal a land card, then puts those cards into their graveyard";
} }
private UndercityInformerEffect(final UndercityInformerEffect effect) { private UndercityInformerEffect(final UndercityInformerEffect effect) {

View file

@ -1,4 +1,3 @@
package mage.cards.v; package mage.cards.v;
import java.util.UUID; import java.util.UUID;
@ -32,7 +31,7 @@ public final class Vesuva extends CardImpl {
effect.setText("tapped"); effect.setText("tapped");
Ability ability = new EntersBattlefieldAbility(effect, true); Ability ability = new EntersBattlefieldAbility(effect, true);
effect = new CopyPermanentEffect(filter); effect = new CopyPermanentEffect(filter);
effect.setText("as a copy of any land on the battlefield"); effect.setText(" as a copy of any land on the battlefield");
ability.addEffect(effect); ability.addEffect(effect);
this.addAbility(ability); this.addAbility(ability);
} }

View file

@ -1,9 +1,8 @@
package mage.cards.z; package mage.cards.z;
import java.util.UUID; import java.util.UUID;
import mage.MageInt; import mage.MageInt;
import mage.abilities.common.DiesSourceTriggeredAbility; import mage.abilities.common.PutIntoGraveFromBattlefieldSourceTriggeredAbility;
import mage.abilities.effects.common.ReturnToHandSourceEffect; import mage.abilities.effects.common.ReturnToHandSourceEffect;
import mage.cards.CardImpl; import mage.cards.CardImpl;
import mage.cards.CardSetInfo; import mage.cards.CardSetInfo;
@ -23,7 +22,7 @@ public final class ZodiacDragon extends CardImpl {
this.toughness = new MageInt(8); this.toughness = new MageInt(8);
// When Zodiac Dragon is put into your graveyard from the battlefield, you may return it to your hand. // When Zodiac Dragon is put into your graveyard from the battlefield, you may return it to your hand.
this.addAbility(new DiesSourceTriggeredAbility(new ReturnToHandSourceEffect(), true)); this.addAbility(new PutIntoGraveFromBattlefieldSourceTriggeredAbility(new ReturnToHandSourceEffect(), true, true));
} }
private ZodiacDragon(final ZodiacDragon card) { private ZodiacDragon(final ZodiacDragon card) {

View file

@ -226,7 +226,7 @@ public abstract class TriggeredAbilityImpl extends AbilityImpl implements Trigge
} }
} }
if (replaceRuleText && triggerPhrase != null) { if (replaceRuleText && triggerPhrase != null) {
superRule = superRule.replaceFirst("^((?:you may )?sacrifice |put a [^ ]+ counter on )?\\{this\\}", "$1it"); superRule = superRule.replaceFirst("^((?:you may )?sacrifice |put a [^ ]+ counter on |return )?\\{this\\}", "$1it");
} }
sb.append(superRule); sb.append(superRule);
if (triggersOnceEachTurn) { if (triggersOnceEachTurn) {

View file

@ -21,7 +21,7 @@ public class BecomesBlockedSourceTriggeredAbility extends TriggeredAbilityImpl {
public BecomesBlockedSourceTriggeredAbility(Effect effect, boolean optional, boolean setTargetPointer) { public BecomesBlockedSourceTriggeredAbility(Effect effect, boolean optional, boolean setTargetPointer) {
super(Zone.BATTLEFIELD, effect, optional); super(Zone.BATTLEFIELD, effect, optional);
this.setTargetPointer = setTargetPointer; this.setTargetPointer = setTargetPointer;
setTriggerPhrase("Whenever {this} becomes blocked, "); setTriggerPhrase(getWhen() + "{this} becomes blocked, ");
this.replaceRuleText = true; // default true to replace "{this}" with "it" this.replaceRuleText = true; // default true to replace "{this}" with "it"
} }

View file

@ -22,7 +22,8 @@ public class DealsCombatDamageTriggeredAbility extends TriggeredAbilityImpl {
public DealsCombatDamageTriggeredAbility(Effect effect, boolean optional) { public DealsCombatDamageTriggeredAbility(Effect effect, boolean optional) {
super(Zone.BATTLEFIELD, effect, optional); super(Zone.BATTLEFIELD, effect, optional);
this.usedThisStep = false; this.usedThisStep = false;
setTriggerPhrase("Whenever {this} deals combat damage, "); setTriggerPhrase(getWhen() + "{this} deals combat damage, ");
this.replaceRuleText = true;
} }
protected DealsCombatDamageTriggeredAbility(final DealsCombatDamageTriggeredAbility ability) { protected DealsCombatDamageTriggeredAbility(final DealsCombatDamageTriggeredAbility ability) {