mirror of
https://github.com/correl/mage.git
synced 2025-03-16 01:06:34 -09:00
replaced various flavor words with ability words
This commit is contained in:
parent
d5fb03e5e3
commit
ef9d79e712
28 changed files with 52 additions and 83 deletions
|
@ -10,10 +10,7 @@ import mage.cards.CardImpl;
|
||||||
import mage.cards.CardSetInfo;
|
import mage.cards.CardSetInfo;
|
||||||
import mage.choices.ChoiceColor;
|
import mage.choices.ChoiceColor;
|
||||||
import mage.choices.VoteHandler;
|
import mage.choices.VoteHandler;
|
||||||
import mage.constants.CardType;
|
import mage.constants.*;
|
||||||
import mage.constants.Duration;
|
|
||||||
import mage.constants.Outcome;
|
|
||||||
import mage.constants.SubType;
|
|
||||||
import mage.game.Game;
|
import mage.game.Game;
|
||||||
import mage.players.Player;
|
import mage.players.Player;
|
||||||
|
|
||||||
|
@ -38,7 +35,7 @@ public final class CouncilGuardian extends CardImpl {
|
||||||
// Will of the council - When Council Guardian enters the battlefield, starting with you, each player votes for blue, black, red, or green. Council Guardian gains protection from each color with the most votes or tied for most votes.
|
// Will of the council - When Council Guardian enters the battlefield, starting with you, each player votes for blue, black, red, or green. Council Guardian gains protection from each color with the most votes or tied for most votes.
|
||||||
this.addAbility(new EntersBattlefieldTriggeredAbility(
|
this.addAbility(new EntersBattlefieldTriggeredAbility(
|
||||||
new CouncilsGuardianEffect(), false)
|
new CouncilsGuardianEffect(), false)
|
||||||
.withFlavorWord("Will of the council")
|
.setAbilityWord(AbilityWord.WILL_OF_THE_COUNCIL)
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -9,10 +9,7 @@ import mage.cards.Card;
|
||||||
import mage.cards.CardImpl;
|
import mage.cards.CardImpl;
|
||||||
import mage.cards.CardSetInfo;
|
import mage.cards.CardSetInfo;
|
||||||
import mage.choices.VoteHandler;
|
import mage.choices.VoteHandler;
|
||||||
import mage.constants.CardType;
|
import mage.constants.*;
|
||||||
import mage.constants.Outcome;
|
|
||||||
import mage.constants.SubType;
|
|
||||||
import mage.constants.Zone;
|
|
||||||
import mage.filter.FilterCard;
|
import mage.filter.FilterCard;
|
||||||
import mage.filter.predicate.Predicates;
|
import mage.filter.predicate.Predicates;
|
||||||
import mage.game.Game;
|
import mage.game.Game;
|
||||||
|
@ -41,7 +38,7 @@ public final class CustodiSquire extends CardImpl {
|
||||||
// Will of the council - When Custodi Squire enters the battlefield, starting with you, each player votes for an artifact, creature, or enchantment card in your graveyard. Return each card with the most votes or tied for most votes to your hand.
|
// Will of the council - When Custodi Squire enters the battlefield, starting with you, each player votes for an artifact, creature, or enchantment card in your graveyard. Return each card with the most votes or tied for most votes to your hand.
|
||||||
this.addAbility(new EntersBattlefieldTriggeredAbility(
|
this.addAbility(new EntersBattlefieldTriggeredAbility(
|
||||||
new CustodiSquireVoteEffect(), false)
|
new CustodiSquireVoteEffect(), false)
|
||||||
.withFlavorWord("Will of the council")
|
.setAbilityWord(AbilityWord.WILL_OF_THE_COUNCIL)
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -42,7 +42,7 @@ public final class Duplicant extends CardImpl {
|
||||||
// Imprint - When Duplicant enters the battlefield, you may exile target nontoken creature.
|
// Imprint - When Duplicant enters the battlefield, you may exile target nontoken creature.
|
||||||
Ability ability = new EntersBattlefieldTriggeredAbility(new DuplicantExileTargetEffect(), true);
|
Ability ability = new EntersBattlefieldTriggeredAbility(new DuplicantExileTargetEffect(), true);
|
||||||
ability.addTarget(new TargetCreaturePermanent(filter));
|
ability.addTarget(new TargetCreaturePermanent(filter));
|
||||||
ability.withFlavorWord("Imprint");
|
ability.setAbilityWord(AbilityWord.IMPRINT);
|
||||||
this.addAbility(ability);
|
this.addAbility(ability);
|
||||||
// As long as the exiled card is a creature card, Duplicant has that card's power, toughness, and creature types. It's still a Shapeshifter.
|
// As long as the exiled card is a creature card, Duplicant has that card's power, toughness, and creature types. It's still a Shapeshifter.
|
||||||
this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new DuplicantContinuousEffect()));
|
this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new DuplicantContinuousEffect()));
|
||||||
|
|
|
@ -11,10 +11,7 @@ import mage.abilities.hint.ValueHint;
|
||||||
import mage.abilities.keyword.HasteAbility;
|
import mage.abilities.keyword.HasteAbility;
|
||||||
import mage.cards.CardImpl;
|
import mage.cards.CardImpl;
|
||||||
import mage.cards.CardSetInfo;
|
import mage.cards.CardSetInfo;
|
||||||
import mage.constants.CardType;
|
import mage.constants.*;
|
||||||
import mage.constants.Duration;
|
|
||||||
import mage.constants.ManaType;
|
|
||||||
import mage.constants.SubType;
|
|
||||||
|
|
||||||
import java.util.UUID;
|
import java.util.UUID;
|
||||||
|
|
||||||
|
@ -40,7 +37,7 @@ public final class HeartlashCinder extends CardImpl {
|
||||||
effect.setText("it gets +X/+0 until end of turn, where X is the number of red mana symbols in the mana costs of permanents you control");
|
effect.setText("it gets +X/+0 until end of turn, where X is the number of red mana symbols in the mana costs of permanents you control");
|
||||||
this.addAbility(new EntersBattlefieldTriggeredAbility(
|
this.addAbility(new EntersBattlefieldTriggeredAbility(
|
||||||
effect, false)
|
effect, false)
|
||||||
.withFlavorWord("Chroma")
|
.setAbilityWord(AbilityWord.CHROMA)
|
||||||
.addHint(new ValueHint("Red mana symbols in your permanents", xValue))
|
.addHint(new ValueHint("Red mana symbols in your permanents", xValue))
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
|
@ -11,10 +11,7 @@ import mage.abilities.effects.OneShotEffect;
|
||||||
import mage.cards.Card;
|
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.*;
|
||||||
import mage.constants.ComparisonType;
|
|
||||||
import mage.constants.Outcome;
|
|
||||||
import mage.constants.Zone;
|
|
||||||
import mage.filter.FilterCard;
|
import mage.filter.FilterCard;
|
||||||
import mage.filter.predicate.mageobject.ManaValuePredicate;
|
import mage.filter.predicate.mageobject.ManaValuePredicate;
|
||||||
import mage.game.Game;
|
import mage.game.Game;
|
||||||
|
@ -36,7 +33,7 @@ public final class IsochronScepter extends CardImpl {
|
||||||
// Imprint - When Isochron Scepter enters the battlefield, you may exile an instant card with converted mana cost 2 or less from your hand.
|
// Imprint - When Isochron Scepter enters the battlefield, you may exile an instant card with converted mana cost 2 or less from your hand.
|
||||||
this.addAbility(new EntersBattlefieldTriggeredAbility(
|
this.addAbility(new EntersBattlefieldTriggeredAbility(
|
||||||
new IsochronScepterImprintEffect(),true)
|
new IsochronScepterImprintEffect(),true)
|
||||||
.withFlavorWord("Imprint")
|
.setAbilityWord(AbilityWord.IMPRINT)
|
||||||
);
|
);
|
||||||
|
|
||||||
// {2}, {T}: You may copy the exiled card. If you do, you may cast the copy without paying its mana cost.
|
// {2}, {T}: You may copy the exiled card. If you do, you may cast the copy without paying its mana cost.
|
||||||
|
|
|
@ -11,12 +11,9 @@ import mage.abilities.dynamicvalue.common.CardsInControllerGraveyardCount;
|
||||||
import mage.abilities.effects.common.CreateTokenEffect;
|
import mage.abilities.effects.common.CreateTokenEffect;
|
||||||
import mage.abilities.effects.common.DrawCardSourceControllerEffect;
|
import mage.abilities.effects.common.DrawCardSourceControllerEffect;
|
||||||
import mage.abilities.effects.common.GainLifeEffect;
|
import mage.abilities.effects.common.GainLifeEffect;
|
||||||
import mage.constants.SubType;
|
import mage.constants.*;
|
||||||
import mage.constants.SuperType;
|
|
||||||
import mage.cards.CardImpl;
|
import mage.cards.CardImpl;
|
||||||
import mage.cards.CardSetInfo;
|
import mage.cards.CardSetInfo;
|
||||||
import mage.constants.CardType;
|
|
||||||
import mage.constants.Zone;
|
|
||||||
import mage.filter.StaticFilters;
|
import mage.filter.StaticFilters;
|
||||||
import mage.game.permanent.token.IzoniInsectToken;
|
import mage.game.permanent.token.IzoniInsectToken;
|
||||||
import mage.target.common.TargetControlledPermanent;
|
import mage.target.common.TargetControlledPermanent;
|
||||||
|
@ -44,7 +41,7 @@ public final class IzoniThousandEyed extends CardImpl {
|
||||||
StaticFilters.FILTER_CARD_CREATURE
|
StaticFilters.FILTER_CARD_CREATURE
|
||||||
)
|
)
|
||||||
), false)
|
), false)
|
||||||
.withFlavorWord("Undergrowth")
|
.setAbilityWord(AbilityWord.UNDERGROWTH)
|
||||||
);
|
);
|
||||||
|
|
||||||
// {B}{G}, Sacrifice another creature: You gain 1 life and draw a card.
|
// {B}{G}, Sacrifice another creature: You gain 1 life and draw a card.
|
||||||
|
|
|
@ -7,14 +7,10 @@ import mage.abilities.common.EntersBattlefieldTriggeredAbility;
|
||||||
import mage.abilities.effects.OneShotEffect;
|
import mage.abilities.effects.OneShotEffect;
|
||||||
import mage.abilities.effects.common.continuous.BoostSourceEffect;
|
import mage.abilities.effects.common.continuous.BoostSourceEffect;
|
||||||
import mage.abilities.keyword.FlyingAbility;
|
import mage.abilities.keyword.FlyingAbility;
|
||||||
import mage.constants.SubType;
|
import mage.constants.*;
|
||||||
import mage.abilities.keyword.ReachAbility;
|
import mage.abilities.keyword.ReachAbility;
|
||||||
import mage.cards.CardImpl;
|
import mage.cards.CardImpl;
|
||||||
import mage.cards.CardSetInfo;
|
import mage.cards.CardSetInfo;
|
||||||
import mage.constants.CardType;
|
|
||||||
import mage.constants.Duration;
|
|
||||||
import mage.constants.Outcome;
|
|
||||||
import mage.constants.TargetController;
|
|
||||||
import mage.filter.FilterPermanent;
|
import mage.filter.FilterPermanent;
|
||||||
import mage.filter.StaticFilters;
|
import mage.filter.StaticFilters;
|
||||||
import mage.filter.common.FilterCreaturePermanent;
|
import mage.filter.common.FilterCreaturePermanent;
|
||||||
|
@ -53,7 +49,7 @@ public final class KraulHarpooner extends CardImpl {
|
||||||
new KraulHarpoonerEffect(), false
|
new KraulHarpoonerEffect(), false
|
||||||
);
|
);
|
||||||
ability.addTarget(new TargetPermanent(0, 1, filter, false));
|
ability.addTarget(new TargetPermanent(0, 1, filter, false));
|
||||||
ability.withFlavorWord("Undergrowth");
|
ability.setAbilityWord(AbilityWord.UNDERGROWTH);
|
||||||
this.addAbility(ability);
|
this.addAbility(ability);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -7,6 +7,7 @@ import mage.abilities.effects.OneShotEffect;
|
||||||
import mage.cards.CardImpl;
|
import mage.cards.CardImpl;
|
||||||
import mage.cards.CardSetInfo;
|
import mage.cards.CardSetInfo;
|
||||||
import mage.choices.TwoChoiceVote;
|
import mage.choices.TwoChoiceVote;
|
||||||
|
import mage.constants.AbilityWord;
|
||||||
import mage.constants.CardType;
|
import mage.constants.CardType;
|
||||||
import mage.constants.Outcome;
|
import mage.constants.Outcome;
|
||||||
import mage.constants.SubType;
|
import mage.constants.SubType;
|
||||||
|
@ -35,7 +36,7 @@ public final class LieutenantsOfTheGuard extends CardImpl {
|
||||||
// strength vote and put a 1/1 white Soldier creature token onto the battlefield for each numbers vote.
|
// strength vote and put a 1/1 white Soldier creature token onto the battlefield for each numbers vote.
|
||||||
this.addAbility(new EntersBattlefieldTriggeredAbility(
|
this.addAbility(new EntersBattlefieldTriggeredAbility(
|
||||||
new LieutenantsOfTheGuardEffect(), false)
|
new LieutenantsOfTheGuardEffect(), false)
|
||||||
.withFlavorWord("Council's dilemma")
|
.setAbilityWord(AbilityWord.COUNCILS_DILEMMA)
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -6,6 +6,7 @@ import mage.abilities.Ability;
|
||||||
import mage.abilities.common.EntersBattlefieldTriggeredAbility;
|
import mage.abilities.common.EntersBattlefieldTriggeredAbility;
|
||||||
import mage.abilities.dynamicvalue.common.CardsInControllerGraveyardCount;
|
import mage.abilities.dynamicvalue.common.CardsInControllerGraveyardCount;
|
||||||
import mage.abilities.effects.common.DamageTargetEffect;
|
import mage.abilities.effects.common.DamageTargetEffect;
|
||||||
|
import mage.constants.AbilityWord;
|
||||||
import mage.constants.SubType;
|
import mage.constants.SubType;
|
||||||
import mage.cards.CardImpl;
|
import mage.cards.CardImpl;
|
||||||
import mage.cards.CardSetInfo;
|
import mage.cards.CardSetInfo;
|
||||||
|
@ -33,7 +34,7 @@ public final class LotlethGiant extends CardImpl {
|
||||||
StaticFilters.FILTER_CARD_CREATURE
|
StaticFilters.FILTER_CARD_CREATURE
|
||||||
), "it"), false);
|
), "it"), false);
|
||||||
ability.addTarget(new TargetOpponent());
|
ability.addTarget(new TargetOpponent());
|
||||||
ability.withFlavorWord("Undergrowth");
|
ability.setAbilityWord(AbilityWord.UNDERGROWTH);
|
||||||
this.addAbility(ability);
|
this.addAbility(ability);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -11,10 +11,7 @@ import mage.cards.CardSetInfo;
|
||||||
import mage.cards.Cards;
|
import mage.cards.Cards;
|
||||||
import mage.cards.CardsImpl;
|
import mage.cards.CardsImpl;
|
||||||
import mage.choices.TwoChoiceVote;
|
import mage.choices.TwoChoiceVote;
|
||||||
import mage.constants.CardType;
|
import mage.constants.*;
|
||||||
import mage.constants.Outcome;
|
|
||||||
import mage.constants.SubType;
|
|
||||||
import mage.constants.Zone;
|
|
||||||
import mage.filter.FilterPermanent;
|
import mage.filter.FilterPermanent;
|
||||||
import mage.filter.common.FilterCreaturePermanent;
|
import mage.filter.common.FilterCreaturePermanent;
|
||||||
import mage.filter.predicate.mageobject.AnotherPredicate;
|
import mage.filter.predicate.mageobject.AnotherPredicate;
|
||||||
|
@ -42,7 +39,7 @@ public final class MagisterOfWorth extends CardImpl {
|
||||||
// Will of the council - When Magister of Worth enters the battlefield, starting with you, each player votes for grace or condemnation. If grace gets more votes, each player returns each creature card from their graveyard to the battlefield. If condemnation gets more votes or the vote is tied, destroy all creatures other than Magister of Worth.
|
// Will of the council - When Magister of Worth enters the battlefield, starting with you, each player votes for grace or condemnation. If grace gets more votes, each player returns each creature card from their graveyard to the battlefield. If condemnation gets more votes or the vote is tied, destroy all creatures other than Magister of Worth.
|
||||||
this.addAbility(new EntersBattlefieldTriggeredAbility(
|
this.addAbility(new EntersBattlefieldTriggeredAbility(
|
||||||
new MagisterOfWorthEffect(), false)
|
new MagisterOfWorthEffect(), false)
|
||||||
.withFlavorWord("Will of the council")
|
.setAbilityWord(AbilityWord.WILL_OF_THE_COUNCIL)
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -8,6 +8,7 @@ import mage.abilities.keyword.FlyingAbility;
|
||||||
import mage.cards.CardImpl;
|
import mage.cards.CardImpl;
|
||||||
import mage.cards.CardSetInfo;
|
import mage.cards.CardSetInfo;
|
||||||
import mage.choices.TwoChoiceVote;
|
import mage.choices.TwoChoiceVote;
|
||||||
|
import mage.constants.AbilityWord;
|
||||||
import mage.constants.CardType;
|
import mage.constants.CardType;
|
||||||
import mage.constants.Outcome;
|
import mage.constants.Outcome;
|
||||||
import mage.constants.SubType;
|
import mage.constants.SubType;
|
||||||
|
@ -36,7 +37,7 @@ public final class MessengerJays extends CardImpl {
|
||||||
// <i>Council's dilemma — When Messenger Jays enters the battlefield, starting with you, each player votes for feather or quill. Put a +1/+1 counter on Messenger Jays for each feather vote and draw a card for each quill vote. For each card drawn this way, discard a card.
|
// <i>Council's dilemma — When Messenger Jays enters the battlefield, starting with you, each player votes for feather or quill. Put a +1/+1 counter on Messenger Jays for each feather vote and draw a card for each quill vote. For each card drawn this way, discard a card.
|
||||||
this.addAbility(new EntersBattlefieldTriggeredAbility(
|
this.addAbility(new EntersBattlefieldTriggeredAbility(
|
||||||
new MessengerJaysEffect(), false)
|
new MessengerJaysEffect(), false)
|
||||||
.withFlavorWord("Council's dilemma")
|
.setAbilityWord(AbilityWord.COUNCILS_DILEMMA)
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -36,7 +36,7 @@ public final class MirrorGolem extends CardImpl {
|
||||||
// Imprint - When Mirror Golem enters the battlefield, you may exile target card from a graveyard.
|
// Imprint - When Mirror Golem enters the battlefield, you may exile target card from a graveyard.
|
||||||
Ability ability = new EntersBattlefieldTriggeredAbility(new MirrorGolemImprintEffect(), true);
|
Ability ability = new EntersBattlefieldTriggeredAbility(new MirrorGolemImprintEffect(), true);
|
||||||
ability.addTarget(new TargetCardInGraveyard());
|
ability.addTarget(new TargetCardInGraveyard());
|
||||||
ability.withFlavorWord("Imprint");
|
ability.setAbilityWord(AbilityWord.IMPRINT);
|
||||||
this.addAbility(ability);
|
this.addAbility(ability);
|
||||||
|
|
||||||
// Mirror Golem has protection from each of the exiled card's card types.
|
// Mirror Golem has protection from each of the exiled card's card types.
|
||||||
|
|
|
@ -10,6 +10,7 @@ import mage.abilities.dynamicvalue.common.StaticValue;
|
||||||
import mage.abilities.effects.common.continuous.BoostTargetEffect;
|
import mage.abilities.effects.common.continuous.BoostTargetEffect;
|
||||||
import mage.abilities.effects.common.continuous.GainAbilityTargetEffect;
|
import mage.abilities.effects.common.continuous.GainAbilityTargetEffect;
|
||||||
import mage.abilities.keyword.MenaceAbility;
|
import mage.abilities.keyword.MenaceAbility;
|
||||||
|
import mage.constants.AbilityWord;
|
||||||
import mage.constants.SubType;
|
import mage.constants.SubType;
|
||||||
import mage.cards.CardImpl;
|
import mage.cards.CardImpl;
|
||||||
import mage.cards.CardSetInfo;
|
import mage.cards.CardSetInfo;
|
||||||
|
@ -49,7 +50,7 @@ public final class MoodmarkPainter extends CardImpl {
|
||||||
+ "where X is the number of creature cards in your graveyard. " +
|
+ "where X is the number of creature cards in your graveyard. " +
|
||||||
"<i>(It can't be blocked except by two or more creatures.)</i>")); // Must be here to match Oracle text
|
"<i>(It can't be blocked except by two or more creatures.)</i>")); // Must be here to match Oracle text
|
||||||
ability.addTarget(new TargetCreaturePermanent());
|
ability.addTarget(new TargetCreaturePermanent());
|
||||||
ability.withFlavorWord("Undergrowth");
|
ability.setAbilityWord(AbilityWord.UNDERGROWTH);
|
||||||
this.addAbility(ability);
|
this.addAbility(ability);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -15,10 +15,7 @@ import mage.abilities.effects.PreventionEffectImpl;
|
||||||
import mage.cards.Card;
|
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.*;
|
||||||
import mage.constants.Duration;
|
|
||||||
import mage.constants.Outcome;
|
|
||||||
import mage.constants.Zone;
|
|
||||||
import mage.filter.FilterObject;
|
import mage.filter.FilterObject;
|
||||||
import mage.filter.predicate.mageobject.SharesColorPredicate;
|
import mage.filter.predicate.mageobject.SharesColorPredicate;
|
||||||
import mage.game.ExileZone;
|
import mage.game.ExileZone;
|
||||||
|
@ -43,7 +40,7 @@ public final class MournersShield extends CardImpl {
|
||||||
// Imprint - When Mourner's Shield enters the battlefield, you may exile target card from a graveyard.
|
// Imprint - When Mourner's Shield enters the battlefield, you may exile target card from a graveyard.
|
||||||
Ability ability = new EntersBattlefieldTriggeredAbility(new MournersShieldImprintEffect(), true);
|
Ability ability = new EntersBattlefieldTriggeredAbility(new MournersShieldImprintEffect(), true);
|
||||||
ability.addTarget(new TargetCardInGraveyard());
|
ability.addTarget(new TargetCardInGraveyard());
|
||||||
ability.withFlavorWord("Imprint");
|
ability.setAbilityWord(AbilityWord.IMPRINT);
|
||||||
this.addAbility(ability);
|
this.addAbility(ability);
|
||||||
|
|
||||||
// {2}, {tap}: Prevent all damage that would be dealt this turn by a source of your choice that shares a color with the exiled card.
|
// {2}, {tap}: Prevent all damage that would be dealt this turn by a source of your choice that shares a color with the exiled card.
|
||||||
|
|
|
@ -7,6 +7,7 @@ import mage.abilities.effects.OneShotEffect;
|
||||||
import mage.cards.CardImpl;
|
import mage.cards.CardImpl;
|
||||||
import mage.cards.CardSetInfo;
|
import mage.cards.CardSetInfo;
|
||||||
import mage.choices.TwoChoiceVote;
|
import mage.choices.TwoChoiceVote;
|
||||||
|
import mage.constants.AbilityWord;
|
||||||
import mage.constants.CardType;
|
import mage.constants.CardType;
|
||||||
import mage.constants.Outcome;
|
import mage.constants.Outcome;
|
||||||
import mage.constants.SubType;
|
import mage.constants.SubType;
|
||||||
|
@ -32,7 +33,7 @@ public final class OrchardElemental extends CardImpl {
|
||||||
// <i>Council's dilemma</i> &mdash When Orchard Elemental enters the battlefield, starting with you, each player votes for sprout or harvest. Put two +1/+1 counters on Orchard Elemental for each sprout vote. You gain 3 life for each harvest vote.
|
// <i>Council's dilemma</i> &mdash When Orchard Elemental enters the battlefield, starting with you, each player votes for sprout or harvest. Put two +1/+1 counters on Orchard Elemental for each sprout vote. You gain 3 life for each harvest vote.
|
||||||
this.addAbility(new EntersBattlefieldTriggeredAbility(
|
this.addAbility(new EntersBattlefieldTriggeredAbility(
|
||||||
new OrchardElementalEffect(), false)
|
new OrchardElementalEffect(), false)
|
||||||
.withFlavorWord("Council's dilemma")
|
.setAbilityWord(AbilityWord.COUNCILS_DILEMMA)
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -10,6 +10,7 @@ import mage.abilities.effects.common.DamageTargetEffect;
|
||||||
import mage.abilities.hint.ValueHint;
|
import mage.abilities.hint.ValueHint;
|
||||||
import mage.cards.CardImpl;
|
import mage.cards.CardImpl;
|
||||||
import mage.cards.CardSetInfo;
|
import mage.cards.CardSetInfo;
|
||||||
|
import mage.constants.AbilityWord;
|
||||||
import mage.constants.CardType;
|
import mage.constants.CardType;
|
||||||
import mage.constants.ManaType;
|
import mage.constants.ManaType;
|
||||||
import mage.constants.SubType;
|
import mage.constants.SubType;
|
||||||
|
@ -36,7 +37,7 @@ public final class OutrageShaman extends CardImpl {
|
||||||
effect.setText("it deals damage to target creature equal to the number of red mana symbols in the mana costs of permanents you control");
|
effect.setText("it deals damage to target creature equal to the number of red mana symbols in the mana costs of permanents you control");
|
||||||
Ability ability = new EntersBattlefieldTriggeredAbility(effect, false);
|
Ability ability = new EntersBattlefieldTriggeredAbility(effect, false);
|
||||||
ability.addTarget(new TargetCreaturePermanent());
|
ability.addTarget(new TargetCreaturePermanent());
|
||||||
ability.withFlavorWord("Chroma");
|
ability.setAbilityWord(AbilityWord.CHROMA);
|
||||||
ability.addHint(new ValueHint("Red mana symbols in your permanents", xValue));
|
ability.addHint(new ValueHint("Red mana symbols in your permanents", xValue));
|
||||||
this.addAbility(ability);
|
this.addAbility(ability);
|
||||||
|
|
||||||
|
|
|
@ -14,6 +14,7 @@ import mage.abilities.effects.OneShotEffect;
|
||||||
import mage.cards.Card;
|
import mage.cards.Card;
|
||||||
import mage.cards.CardImpl;
|
import mage.cards.CardImpl;
|
||||||
import mage.cards.CardSetInfo;
|
import mage.cards.CardSetInfo;
|
||||||
|
import mage.constants.AbilityWord;
|
||||||
import mage.constants.CardType;
|
import mage.constants.CardType;
|
||||||
import mage.constants.Outcome;
|
import mage.constants.Outcome;
|
||||||
import mage.constants.Zone;
|
import mage.constants.Zone;
|
||||||
|
@ -38,7 +39,7 @@ public final class PrototypePortal extends CardImpl {
|
||||||
// Imprint - When Prototype Portal enters the battlefield, you may exile an artifact card from your hand.
|
// Imprint - When Prototype Portal enters the battlefield, you may exile an artifact card from your hand.
|
||||||
this.addAbility(new EntersBattlefieldTriggeredAbility(
|
this.addAbility(new EntersBattlefieldTriggeredAbility(
|
||||||
new PrototypePortalEffect(), true)
|
new PrototypePortalEffect(), true)
|
||||||
.withFlavorWord("Imprint")
|
.setAbilityWord(AbilityWord.IMPRINT)
|
||||||
);
|
);
|
||||||
|
|
||||||
// {X}, {tap}: Create a token that's a copy of the exiled card. X is the converted mana cost of that card.
|
// {X}, {tap}: Create a token that's a copy of the exiled card. X is the converted mana cost of that card.
|
||||||
|
|
|
@ -8,10 +8,7 @@ import mage.abilities.effects.OneShotEffect;
|
||||||
import mage.abilities.effects.common.DamagePlayersEffect;
|
import mage.abilities.effects.common.DamagePlayersEffect;
|
||||||
import mage.cards.CardImpl;
|
import mage.cards.CardImpl;
|
||||||
import mage.cards.CardSetInfo;
|
import mage.cards.CardSetInfo;
|
||||||
import mage.constants.CardType;
|
import mage.constants.*;
|
||||||
import mage.constants.Outcome;
|
|
||||||
import mage.constants.SubType;
|
|
||||||
import mage.constants.TargetController;
|
|
||||||
import mage.game.Game;
|
import mage.game.Game;
|
||||||
import mage.players.Player;
|
import mage.players.Player;
|
||||||
import mage.watchers.common.ManaSpentToCastWatcher;
|
import mage.watchers.common.ManaSpentToCastWatcher;
|
||||||
|
@ -34,7 +31,7 @@ public final class RadiantEpicure extends CardImpl {
|
||||||
// Converge — When Radiant Epicure enters the battlefield, each opponent loses X life and you gain X life, where X is the number of colors of mana spent to cast this spell.
|
// Converge — When Radiant Epicure enters the battlefield, each opponent loses X life and you gain X life, where X is the number of colors of mana spent to cast this spell.
|
||||||
this.addAbility(new EntersBattlefieldTriggeredAbility(
|
this.addAbility(new EntersBattlefieldTriggeredAbility(
|
||||||
new RadiantEpicureEffect(), false)
|
new RadiantEpicureEffect(), false)
|
||||||
.withFlavorWord("Converge")
|
.setAbilityWord(AbilityWord.CONVERGE)
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -11,6 +11,7 @@ import mage.abilities.effects.OneShotEffect;
|
||||||
import mage.abilities.effects.common.DrawCardAllEffect;
|
import mage.abilities.effects.common.DrawCardAllEffect;
|
||||||
import mage.cards.CardImpl;
|
import mage.cards.CardImpl;
|
||||||
import mage.cards.CardSetInfo;
|
import mage.cards.CardSetInfo;
|
||||||
|
import mage.constants.AbilityWord;
|
||||||
import mage.constants.CardType;
|
import mage.constants.CardType;
|
||||||
import mage.constants.SubType;
|
import mage.constants.SubType;
|
||||||
import mage.constants.Outcome;
|
import mage.constants.Outcome;
|
||||||
|
@ -36,7 +37,7 @@ public final class SelvalasEnforcer extends CardImpl {
|
||||||
// For each nonland card revealed this way, put a +1/+1 counter on Selvala's Enforcer. Then each player draws a card.
|
// For each nonland card revealed this way, put a +1/+1 counter on Selvala's Enforcer. Then each player draws a card.
|
||||||
Ability ability = new EntersBattlefieldTriggeredAbility(new SelvalasEnforcerEffect(), false);
|
Ability ability = new EntersBattlefieldTriggeredAbility(new SelvalasEnforcerEffect(), false);
|
||||||
ability.addEffect(new DrawCardAllEffect(1).setText("Then each player draws a card"));
|
ability.addEffect(new DrawCardAllEffect(1).setText("Then each player draws a card"));
|
||||||
ability.withFlavorWord("Parley");
|
ability.setAbilityWord(AbilityWord.PARLEY);
|
||||||
this.addAbility(ability);
|
this.addAbility(ability);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -14,6 +14,7 @@ import mage.abilities.effects.common.CreateTokenCopyTargetEffect;
|
||||||
import mage.cards.Card;
|
import mage.cards.Card;
|
||||||
import mage.cards.CardImpl;
|
import mage.cards.CardImpl;
|
||||||
import mage.cards.CardSetInfo;
|
import mage.cards.CardSetInfo;
|
||||||
|
import mage.constants.AbilityWord;
|
||||||
import mage.constants.CardType;
|
import mage.constants.CardType;
|
||||||
import mage.constants.Outcome;
|
import mage.constants.Outcome;
|
||||||
import mage.constants.Zone;
|
import mage.constants.Zone;
|
||||||
|
@ -38,7 +39,7 @@ public final class SoulFoundry extends CardImpl {
|
||||||
// Imprint - When Soul Foundry enters the battlefield, you may exile a creature card from your hand.
|
// Imprint - When Soul Foundry enters the battlefield, you may exile a creature card from your hand.
|
||||||
this.addAbility(new EntersBattlefieldTriggeredAbility(
|
this.addAbility(new EntersBattlefieldTriggeredAbility(
|
||||||
new SoulFoundryImprintEffect(), true)
|
new SoulFoundryImprintEffect(), true)
|
||||||
.withFlavorWord("Imprint")
|
.setAbilityWord(AbilityWord.IMPRINT)
|
||||||
);
|
);
|
||||||
|
|
||||||
// {X}, {T}: Create a token that's a copy of the exiled card. X is the converted mana cost of that card.
|
// {X}, {T}: Create a token that's a copy of the exiled card. X is the converted mana cost of that card.
|
||||||
|
|
|
@ -11,10 +11,7 @@ import mage.abilities.keyword.EquipAbility;
|
||||||
import mage.cards.Card;
|
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.*;
|
||||||
import mage.constants.Outcome;
|
|
||||||
import mage.constants.SubType;
|
|
||||||
import mage.constants.Zone;
|
|
||||||
import mage.filter.FilterCard;
|
import mage.filter.FilterCard;
|
||||||
import mage.game.Game;
|
import mage.game.Game;
|
||||||
import mage.game.events.DamagedPlayerEvent;
|
import mage.game.events.DamagedPlayerEvent;
|
||||||
|
@ -40,7 +37,7 @@ public final class Spellbinder extends CardImpl {
|
||||||
// an instant card from your hand.
|
// an instant card from your hand.
|
||||||
this.addAbility(new EntersBattlefieldTriggeredAbility(
|
this.addAbility(new EntersBattlefieldTriggeredAbility(
|
||||||
new SpellbinderImprintEffect(), true)
|
new SpellbinderImprintEffect(), true)
|
||||||
.withFlavorWord("Imprint")
|
.setAbilityWord(AbilityWord.IMPRINT)
|
||||||
);
|
);
|
||||||
|
|
||||||
// Whenever equipped creature deals combat damage to a player, you may
|
// Whenever equipped creature deals combat damage to a player, you may
|
||||||
|
|
|
@ -8,6 +8,7 @@ import mage.abilities.effects.OneShotEffect;
|
||||||
import mage.cards.Card;
|
import mage.cards.Card;
|
||||||
import mage.cards.CardImpl;
|
import mage.cards.CardImpl;
|
||||||
import mage.cards.CardSetInfo;
|
import mage.cards.CardSetInfo;
|
||||||
|
import mage.constants.AbilityWord;
|
||||||
import mage.constants.CardType;
|
import mage.constants.CardType;
|
||||||
import mage.constants.Outcome;
|
import mage.constants.Outcome;
|
||||||
import mage.constants.Zone;
|
import mage.constants.Zone;
|
||||||
|
@ -41,7 +42,7 @@ public final class SpellweaverHelix extends CardImpl {
|
||||||
// Imprint - When Spellweaver Helix enters the battlefield, you may exile two target sorcery cards from a single graveyard.
|
// Imprint - When Spellweaver Helix enters the battlefield, you may exile two target sorcery cards from a single graveyard.
|
||||||
Ability ability = new EntersBattlefieldTriggeredAbility(new SpellweaverHelixImprintEffect(), true);
|
Ability ability = new EntersBattlefieldTriggeredAbility(new SpellweaverHelixImprintEffect(), true);
|
||||||
ability.addTarget(new TargetCardInASingleGraveyard(2, 2, filter));
|
ability.addTarget(new TargetCardInASingleGraveyard(2, 2, filter));
|
||||||
ability.withFlavorWord("Imprint");
|
ability.setAbilityWord(AbilityWord.IMPRINT);
|
||||||
this.addAbility(ability);
|
this.addAbility(ability);
|
||||||
|
|
||||||
// Whenever a player casts a card, if it has the same name as one of the cards exiled with Spellweaver Helix, you may copy the other. If you do, you may cast the copy without paying its mana cost.
|
// Whenever a player casts a card, if it has the same name as one of the cards exiled with Spellweaver Helix, you may copy the other. If you do, you may cast the copy without paying its mana cost.
|
||||||
|
|
|
@ -9,6 +9,7 @@ import mage.abilities.effects.common.CreateTokenEffect;
|
||||||
import mage.abilities.hint.ValueHint;
|
import mage.abilities.hint.ValueHint;
|
||||||
import mage.cards.CardImpl;
|
import mage.cards.CardImpl;
|
||||||
import mage.cards.CardSetInfo;
|
import mage.cards.CardSetInfo;
|
||||||
|
import mage.constants.AbilityWord;
|
||||||
import mage.constants.CardType;
|
import mage.constants.CardType;
|
||||||
import mage.constants.ManaType;
|
import mage.constants.ManaType;
|
||||||
import mage.constants.SubType;
|
import mage.constants.SubType;
|
||||||
|
@ -35,7 +36,7 @@ public final class SpringjackShepherd extends CardImpl {
|
||||||
effect.setText("create a 0/1 white Goat creature token for each white mana symbol in the mana costs of permanents you control.");
|
effect.setText("create a 0/1 white Goat creature token for each white mana symbol in the mana costs of permanents you control.");
|
||||||
this.addAbility(new EntersBattlefieldTriggeredAbility(
|
this.addAbility(new EntersBattlefieldTriggeredAbility(
|
||||||
effect, false)
|
effect, false)
|
||||||
.withFlavorWord("Chroma")
|
.setAbilityWord(AbilityWord.CHROMA)
|
||||||
.addHint(new ValueHint("White mana symbols in your permanents", xValue))
|
.addHint(new ValueHint("White mana symbols in your permanents", xValue))
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
|
@ -10,10 +10,7 @@ import mage.abilities.effects.OneShotEffect;
|
||||||
import mage.cards.Card;
|
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.*;
|
||||||
import mage.constants.Outcome;
|
|
||||||
import mage.constants.SubType;
|
|
||||||
import mage.constants.Zone;
|
|
||||||
import mage.filter.StaticFilters;
|
import mage.filter.StaticFilters;
|
||||||
import mage.game.Game;
|
import mage.game.Game;
|
||||||
import mage.game.permanent.Permanent;
|
import mage.game.permanent.Permanent;
|
||||||
|
@ -36,7 +33,7 @@ public final class SummonersEgg extends CardImpl {
|
||||||
// Imprint - When Summoner's Egg enters the battlefield, you may exile a card from your hand face down.
|
// Imprint - When Summoner's Egg enters the battlefield, you may exile a card from your hand face down.
|
||||||
this.addAbility(new EntersBattlefieldTriggeredAbility(
|
this.addAbility(new EntersBattlefieldTriggeredAbility(
|
||||||
new SummonersEggImprintEffect(), true)
|
new SummonersEggImprintEffect(), true)
|
||||||
.withFlavorWord("Imprint")
|
.setAbilityWord(AbilityWord.IMPRINT)
|
||||||
);
|
);
|
||||||
|
|
||||||
// When Summoner's Egg dies, turn the exiled card face up. If it's a creature card, put it onto the battlefield under your control.
|
// When Summoner's Egg dies, turn the exiled card face up. If it's a creature card, put it onto the battlefield under your control.
|
||||||
|
|
|
@ -9,6 +9,7 @@ import mage.abilities.effects.OneShotEffect;
|
||||||
import mage.cards.Card;
|
import mage.cards.Card;
|
||||||
import mage.cards.CardImpl;
|
import mage.cards.CardImpl;
|
||||||
import mage.cards.CardSetInfo;
|
import mage.cards.CardSetInfo;
|
||||||
|
import mage.constants.AbilityWord;
|
||||||
import mage.constants.CardType;
|
import mage.constants.CardType;
|
||||||
import mage.constants.Outcome;
|
import mage.constants.Outcome;
|
||||||
import mage.constants.Zone;
|
import mage.constants.Zone;
|
||||||
|
@ -40,7 +41,7 @@ public final class ThoughtPrison extends CardImpl {
|
||||||
// Imprint - When Thought Prison enters the battlefield, you may have target player reveal their hand. If you do, choose a nonland card from it and exile that card.
|
// Imprint - When Thought Prison enters the battlefield, you may have target player reveal their hand. If you do, choose a nonland card from it and exile that card.
|
||||||
EntersBattlefieldTriggeredAbility ability = new EntersBattlefieldTriggeredAbility(new ThoughtPrisonImprintEffect(), true);
|
EntersBattlefieldTriggeredAbility ability = new EntersBattlefieldTriggeredAbility(new ThoughtPrisonImprintEffect(), true);
|
||||||
ability.addTarget(new TargetPlayer());
|
ability.addTarget(new TargetPlayer());
|
||||||
ability.withFlavorWord("Imprint");
|
ability.setAbilityWord(AbilityWord.IMPRINT);
|
||||||
this.addAbility(ability);
|
this.addAbility(ability);
|
||||||
|
|
||||||
// Whenever a player casts a spell that shares a color or converted mana cost with the exiled card, Thought Prison deals 2 damage to that player.
|
// Whenever a player casts a spell that shares a color or converted mana cost with the exiled card, Thought Prison deals 2 damage to that player.
|
||||||
|
|
|
@ -11,12 +11,9 @@ import mage.abilities.effects.common.combat.CantBeBlockedByMoreThanOneSourceEffe
|
||||||
import mage.abilities.effects.common.continuous.BoostTargetEffect;
|
import mage.abilities.effects.common.continuous.BoostTargetEffect;
|
||||||
import mage.abilities.effects.common.continuous.GainAbilityTargetEffect;
|
import mage.abilities.effects.common.continuous.GainAbilityTargetEffect;
|
||||||
import mage.abilities.keyword.VigilanceAbility;
|
import mage.abilities.keyword.VigilanceAbility;
|
||||||
import mage.constants.SubType;
|
import mage.constants.*;
|
||||||
import mage.cards.CardImpl;
|
import mage.cards.CardImpl;
|
||||||
import mage.cards.CardSetInfo;
|
import mage.cards.CardSetInfo;
|
||||||
import mage.constants.CardType;
|
|
||||||
import mage.constants.Duration;
|
|
||||||
import mage.constants.Zone;
|
|
||||||
import mage.filter.StaticFilters;
|
import mage.filter.StaticFilters;
|
||||||
import mage.target.common.TargetCreaturePermanent;
|
import mage.target.common.TargetCreaturePermanent;
|
||||||
|
|
||||||
|
@ -48,7 +45,7 @@ public final class VigorsporeWurm extends CardImpl {
|
||||||
).setText("and gets +X/+X until end of turn, "
|
).setText("and gets +X/+X until end of turn, "
|
||||||
+ "where X is the number of creature cards in your graveyard."));
|
+ "where X is the number of creature cards in your graveyard."));
|
||||||
ability.addTarget(new TargetCreaturePermanent());
|
ability.addTarget(new TargetCreaturePermanent());
|
||||||
ability.withFlavorWord("Undergrowth");
|
ability.setAbilityWord(AbilityWord.UNDERGROWTH);
|
||||||
this.addAbility(ability);
|
this.addAbility(ability);
|
||||||
|
|
||||||
// Vigorspore Wurm can't be blocked by more than one creature.
|
// Vigorspore Wurm can't be blocked by more than one creature.
|
||||||
|
|
|
@ -14,25 +14,18 @@ import mage.game.stack.Spell;
|
||||||
public class CastSourceTriggeredAbility extends TriggeredAbilityImpl {
|
public class CastSourceTriggeredAbility extends TriggeredAbilityImpl {
|
||||||
|
|
||||||
public static final String SOURCE_CAST_SPELL_ABILITY = "sourceCastSpellAbility";
|
public static final String SOURCE_CAST_SPELL_ABILITY = "sourceCastSpellAbility";
|
||||||
private final String rulePrefix;
|
|
||||||
|
|
||||||
public CastSourceTriggeredAbility(Effect effect) {
|
public CastSourceTriggeredAbility(Effect effect) {
|
||||||
this(effect, false);
|
this(effect, false);
|
||||||
}
|
}
|
||||||
|
|
||||||
public CastSourceTriggeredAbility(Effect effect, boolean optional) {
|
public CastSourceTriggeredAbility(Effect effect, boolean optional) {
|
||||||
this(effect, optional, "");
|
|
||||||
}
|
|
||||||
|
|
||||||
public CastSourceTriggeredAbility(Effect effect, boolean optional, String rulePrefix) {
|
|
||||||
super(Zone.STACK, effect, optional);
|
super(Zone.STACK, effect, optional);
|
||||||
this.ruleAtTheTop = true;
|
this.ruleAtTheTop = true;
|
||||||
this.rulePrefix = rulePrefix;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public CastSourceTriggeredAbility(final CastSourceTriggeredAbility ability) {
|
public CastSourceTriggeredAbility(final CastSourceTriggeredAbility ability) {
|
||||||
super(ability);
|
super(ability);
|
||||||
this.rulePrefix = ability.rulePrefix;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -64,6 +57,6 @@ public class CastSourceTriggeredAbility extends TriggeredAbilityImpl {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String getTriggerPhrase() {
|
public String getTriggerPhrase() {
|
||||||
return rulePrefix + "When you cast this spell, " ;
|
return "When you cast this spell, ";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -16,6 +16,7 @@ public enum AbilityWord {
|
||||||
COHORT("Cohort"),
|
COHORT("Cohort"),
|
||||||
CONSTELLATION("Constellation"),
|
CONSTELLATION("Constellation"),
|
||||||
CONVERGE("Converge"),
|
CONVERGE("Converge"),
|
||||||
|
COUNCILS_DILEMMA("Council's dilemma"),
|
||||||
COVEN("Coven"),
|
COVEN("Coven"),
|
||||||
DELIRIUM("Delirium"),
|
DELIRIUM("Delirium"),
|
||||||
DOMAIN("Domain"),
|
DOMAIN("Domain"),
|
||||||
|
|
Loading…
Add table
Reference in a new issue