forked from External/mage
various and sundry text fixes
This commit is contained in:
parent
26605220f7
commit
e122e9d512
21 changed files with 46 additions and 183 deletions
|
|
@ -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) {
|
||||||
|
|
|
||||||
|
|
@ -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);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -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);
|
||||||
|
|
|
||||||
|
|
@ -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}.";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -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";
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
|
||||||
|
|
@ -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;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
|
||||||
|
|
@ -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());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
|
||||||
|
|
@ -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) {
|
||||||
|
|
|
||||||
|
|
@ -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);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -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";
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
|
||||||
|
|
@ -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) {
|
||||||
|
|
|
||||||
|
|
@ -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.
|
||||||
|
|
|
||||||
|
|
@ -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) {
|
||||||
|
|
|
||||||
|
|
@ -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));
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -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)));
|
||||||
|
|
|
||||||
|
|
@ -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) {
|
||||||
|
|
|
||||||
|
|
@ -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);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -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) {
|
||||||
|
|
|
||||||
|
|
@ -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) {
|
||||||
|
|
|
||||||
|
|
@ -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"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -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) {
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue