mirror of
https://github.com/correl/mage.git
synced 2025-01-13 11:01:58 +00:00
moved "from graveyard" text from target to filter
This commit is contained in:
parent
ab3a09181c
commit
2e4d20c84c
62 changed files with 114 additions and 175 deletions
|
@ -49,7 +49,7 @@ import mage.target.common.TargetCardInYourGraveyard;
|
|||
*/
|
||||
public class HanaKami extends CardImpl<HanaKami> {
|
||||
|
||||
private final static FilterCard filter = new FilterCard("Arcane card");
|
||||
private final static FilterCard filter = new FilterCard("Arcane card from your graveyard");
|
||||
|
||||
static {
|
||||
filter.getSubtype().add("Arcane");
|
||||
|
|
|
@ -38,7 +38,6 @@ import mage.abilities.effects.common.ReturnToHandTargetEffect;
|
|||
import mage.cards.CardImpl;
|
||||
import mage.filter.Filter;
|
||||
import mage.filter.FilterCard;
|
||||
import mage.target.common.TargetCardInGraveyard;
|
||||
import mage.target.common.TargetCardInYourGraveyard;
|
||||
|
||||
/**
|
||||
|
@ -47,7 +46,7 @@ import mage.target.common.TargetCardInYourGraveyard;
|
|||
*/
|
||||
public class InameLifeAspect extends CardImpl<InameLifeAspect> {
|
||||
|
||||
private final static FilterCard filter = new FilterCard("Spirit cards");
|
||||
private final static FilterCard filter = new FilterCard("Spirit cards from your graveyard");
|
||||
|
||||
static {
|
||||
filter.getSubtype().add("Spirit");
|
||||
|
|
|
@ -37,7 +37,6 @@ import mage.abilities.Ability;
|
|||
import mage.abilities.common.SimpleActivatedAbility;
|
||||
import mage.abilities.common.SimpleStaticAbility;
|
||||
import mage.abilities.condition.common.FlippedCondition;
|
||||
import mage.abilities.costs.common.TapSourceCost;
|
||||
import mage.abilities.costs.mana.ManaCostsImpl;
|
||||
import mage.abilities.decorator.ConditionalContinousEffect;
|
||||
import mage.abilities.effects.OneShotEffect;
|
||||
|
@ -67,7 +66,7 @@ public class NezumiGraverobber extends CardImpl<NezumiGraverobber> {
|
|||
this.power = new MageInt(2);
|
||||
this.toughness = new MageInt(1);
|
||||
Ability ability = new SimpleActivatedAbility(Constants.Zone.BATTLEFIELD, new ExileTargetEffect(), new ManaCostsImpl("{1}{B}"));
|
||||
ability.addTarget(new TargetCardInOpponentsGraveyard(new FilterCard()));
|
||||
ability.addTarget(new TargetCardInOpponentsGraveyard(new FilterCard("card from an opponent's graveyard")));
|
||||
ability.addEffect(new NezumiGraverobberFlipEffect());
|
||||
this.addAbility(ability);
|
||||
this.addAbility(new SimpleStaticAbility(Constants.Zone.BATTLEFIELD, new ConditionalContinousEffect(new CopyTokenEffect(new NighteyesTheDesecratorToken()), FlippedCondition.getInstance(), "")));
|
||||
|
@ -129,7 +128,7 @@ class NighteyesTheDesecratorToken extends Token {
|
|||
power = new MageInt(4);
|
||||
toughness = new MageInt(2);
|
||||
Ability ability = new SimpleActivatedAbility(Constants.Zone.BATTLEFIELD, new ReturnFromGraveyardToBattlefieldTargetEffect(), new ManaCostsImpl("{4}{B}"));
|
||||
ability.addTarget(new TargetCardInGraveyard(new FilterCreatureCard()));
|
||||
ability.addTarget(new TargetCardInGraveyard(new FilterCreatureCard("creature card from a graveyard")));
|
||||
this.addAbility(ability);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -47,7 +47,7 @@ import mage.target.common.TargetCardInYourGraveyard;
|
|||
*/
|
||||
public class TheUnspeakable extends CardImpl<TheUnspeakable> {
|
||||
|
||||
private final static FilterCard filter = new FilterCard("Arcane card");
|
||||
private final static FilterCard filter = new FilterCard("Arcane card from your graveyard");
|
||||
|
||||
static {
|
||||
filter.getSubtype().add("Arcane");
|
||||
|
|
|
@ -91,12 +91,10 @@ public class SwordOfLightAndShadow extends CardImpl<SwordOfLightAndShadow> {
|
|||
|
||||
class SwordOfLightAndShadowAbility extends TriggeredAbilityImpl<SwordOfLightAndShadowAbility> {
|
||||
|
||||
private static FilterCreatureCard filter = new FilterCreatureCard("creature");
|
||||
|
||||
public SwordOfLightAndShadowAbility() {
|
||||
super(Zone.BATTLEFIELD, new ReturnToHandTargetEffect());
|
||||
this.addEffect(new GainLifeEffect(3));
|
||||
this.addTarget(new TargetCardInYourGraveyard(filter));
|
||||
this.addTarget(new TargetCardInYourGraveyard(new FilterCreatureCard("creature card from your graveyard")));
|
||||
}
|
||||
|
||||
public SwordOfLightAndShadowAbility(final SwordOfLightAndShadowAbility ability) {
|
||||
|
|
|
@ -32,7 +32,7 @@ import mage.Constants.CardType;
|
|||
import mage.Constants.Rarity;
|
||||
import mage.abilities.effects.common.ReturnFromGraveyardToBattlefieldTargetEffect;
|
||||
import mage.cards.CardImpl;
|
||||
import mage.filter.common.FilterCreatureCard;
|
||||
import mage.filter.common.FilterArtifactCard;
|
||||
import mage.target.common.TargetCardInYourGraveyard;
|
||||
|
||||
/**
|
||||
|
@ -41,12 +41,6 @@ import mage.target.common.TargetCardInYourGraveyard;
|
|||
*/
|
||||
public class ArgivianRestoration extends CardImpl<ArgivianRestoration> {
|
||||
|
||||
private static final FilterCreatureCard filter = new FilterCreatureCard("artifact");
|
||||
|
||||
static {
|
||||
filter.getCardType().add(CardType.ARTIFACT);
|
||||
}
|
||||
|
||||
public ArgivianRestoration(UUID ownerId) {
|
||||
super(ownerId, 69, "Argivian Restoration", Rarity.UNCOMMON, new CardType[]{CardType.SORCERY}, "{2}{U}{U}");
|
||||
this.expansionSetCode = "DDF";
|
||||
|
@ -55,7 +49,7 @@ public class ArgivianRestoration extends CardImpl<ArgivianRestoration> {
|
|||
|
||||
// Return target artifact card from your graveyard to the battlefield.
|
||||
this.getSpellAbility().addEffect(new ReturnFromGraveyardToBattlefieldTargetEffect());
|
||||
this.getSpellAbility().addTarget(new TargetCardInYourGraveyard(filter));
|
||||
this.getSpellAbility().addTarget(new TargetCardInYourGraveyard(new FilterArtifactCard("artifact card from your graveyard")));
|
||||
}
|
||||
|
||||
public ArgivianRestoration(final ArgivianRestoration card) {
|
||||
|
|
|
@ -50,7 +50,7 @@ import mage.target.common.TargetCardInYourGraveyard;
|
|||
*/
|
||||
public class Scarecrone extends CardImpl<Scarecrone> {
|
||||
|
||||
private final static FilterCard filter = new FilterCard("artifact creature");
|
||||
private final static FilterCard filter = new FilterCard("artifact creature card from your graveyard");
|
||||
|
||||
static {
|
||||
filter.getCardType().add(CardType.ARTIFACT);
|
||||
|
|
|
@ -45,7 +45,7 @@ import mage.target.common.TargetCardInYourGraveyard;
|
|||
*/
|
||||
public class IzzetChronarch extends CardImpl<IzzetChronarch> {
|
||||
|
||||
private final static FilterCard filter = new FilterCard("instant or sorcery card");
|
||||
private final static FilterCard filter = new FilterCard("instant or sorcery card from your graveyard");
|
||||
|
||||
static {
|
||||
filter.getCardType().add(CardType.INSTANT);
|
||||
|
|
|
@ -15,12 +15,11 @@ import mage.target.common.TargetCardInYourGraveyard;
|
|||
import java.util.UUID;
|
||||
|
||||
public class AngelOfFlightAlabaster extends CardImpl<AngelOfFlightAlabaster> {
|
||||
private static final FilterCard filter = new FilterCard("Spirit card");
|
||||
private static final FilterCard filter = new FilterCard("Spirit card from your graveyard");
|
||||
|
||||
static {
|
||||
filter.getSubtype().add("Spirit");
|
||||
filter.setScopeSubtype(Filter.ComparisonScope.Any);
|
||||
|
||||
}
|
||||
|
||||
public AngelOfFlightAlabaster(UUID ownerId) {
|
||||
|
|
|
@ -35,16 +35,12 @@ import mage.Constants.Rarity;
|
|||
import mage.Constants.Zone;
|
||||
import mage.abilities.Ability;
|
||||
import mage.abilities.common.ActivateAsSorceryActivatedAbility;
|
||||
import mage.abilities.common.SimpleActivatedAbility;
|
||||
import mage.abilities.costs.Cost;
|
||||
import mage.abilities.costs.CostImpl;
|
||||
import mage.abilities.costs.common.ExileFromGraveCost;
|
||||
import mage.abilities.effects.OneShotEffect;
|
||||
import mage.cards.Card;
|
||||
import mage.cards.CardImpl;
|
||||
import mage.filter.common.FilterCreatureCard;
|
||||
import mage.game.Game;
|
||||
import mage.game.permanent.token.Token;
|
||||
import mage.players.Player;
|
||||
import mage.sets.tokens.EmptyToken;
|
||||
import mage.target.common.TargetCardInYourGraveyard;
|
||||
|
@ -111,7 +107,7 @@ class BackFromTheBrinkEffect extends OneShotEffect<BackFromTheBrinkEffect> {
|
|||
class BackFromTheBrinkCost extends CostImpl<BackFromTheBrinkCost> {
|
||||
|
||||
public BackFromTheBrinkCost() {
|
||||
this.addTarget(new TargetCardInYourGraveyard(new FilterCreatureCard()));
|
||||
this.addTarget(new TargetCardInYourGraveyard(new FilterCreatureCard("creature card from your graveyard")));
|
||||
this.text = "Exile a creature card from your graveyard and pay its mana cost";
|
||||
}
|
||||
|
||||
|
|
|
@ -56,7 +56,7 @@ public class StitchedDrake extends CardImpl<StitchedDrake> {
|
|||
this.addAbility(FlyingAbility.getInstance());
|
||||
|
||||
// As an addition cost to cast Stitched Drake, exile a creature card from your graveyard.
|
||||
this.getSpellAbility().addCost(new ExileFromGraveCost(new TargetCardInYourGraveyard(new FilterCreatureCard())));
|
||||
this.getSpellAbility().addCost(new ExileFromGraveCost(new TargetCardInYourGraveyard(new FilterCreatureCard("creature card from your graveyard"))));
|
||||
}
|
||||
|
||||
public StitchedDrake(final StitchedDrake card) {
|
||||
|
|
|
@ -52,7 +52,7 @@ public class UnburialRites extends CardImpl<UnburialRites> {
|
|||
|
||||
// Return target creature card from your graveyard to the battlefield.
|
||||
this.getSpellAbility().addEffect(new ReturnFromGraveyardToBattlefieldTargetEffect());
|
||||
this.getSpellAbility().addTarget(new TargetCardInYourGraveyard(new FilterCreatureCard()));
|
||||
this.getSpellAbility().addTarget(new TargetCardInYourGraveyard(new FilterCreatureCard("creature card from your graveyard")));
|
||||
|
||||
// Flashback {3}{W}
|
||||
this.addAbility(new FlashbackAbility(new ManaCostsImpl("{3}{W}"), Constants.TimingRule.SORCERY));
|
||||
|
|
|
@ -43,7 +43,7 @@ import java.util.UUID;
|
|||
*/
|
||||
public class BoggartBirthRite extends CardImpl<BoggartBirthRite> {
|
||||
|
||||
private final static FilterCard filter = new FilterCard("Goblin");
|
||||
private final static FilterCard filter = new FilterCard("Goblin card from your graveyard");
|
||||
|
||||
static {
|
||||
filter.getSubtype().add("Goblin");
|
||||
|
|
|
@ -48,7 +48,7 @@ import java.util.UUID;
|
|||
*/
|
||||
public class ScarredVinebreeder extends CardImpl<ScarredVinebreeder> {
|
||||
|
||||
private static final FilterCard filter = new FilterCard("Elf card");
|
||||
private static final FilterCard filter = new FilterCard("Elf card from your graveyard");
|
||||
|
||||
static {
|
||||
filter.getSubtype().add("Elf");
|
||||
|
|
|
@ -48,7 +48,7 @@ import java.util.UUID;
|
|||
*/
|
||||
public class WortBoggartAuntie extends CardImpl<WortBoggartAuntie> {
|
||||
|
||||
private final static FilterCard filter = new FilterCard("Goblin");
|
||||
private final static FilterCard filter = new FilterCard("Goblin card from your graveyard");
|
||||
|
||||
static {
|
||||
filter.getSubtype().add("Goblin");
|
||||
|
|
|
@ -42,7 +42,7 @@ import mage.target.common.TargetCardInYourGraveyard;
|
|||
*/
|
||||
public class Disentomb extends CardImpl<Disentomb> {
|
||||
|
||||
private static FilterCreatureCard filter = new FilterCreatureCard();
|
||||
private static FilterCreatureCard filter = new FilterCreatureCard("creature card from your graveyard");
|
||||
|
||||
public Disentomb(UUID ownerId) {
|
||||
super(ownerId, 92, "Disentomb", Rarity.COMMON, new CardType[]{CardType.SORCERY}, "{B}");
|
||||
|
|
|
@ -43,7 +43,7 @@ import mage.target.common.TargetCardInYourGraveyard;
|
|||
*/
|
||||
public class NaturesSpiral extends CardImpl<NaturesSpiral> {
|
||||
|
||||
private static final FilterCard filter = new FilterCard("permanent card");
|
||||
private static final FilterCard filter = new FilterCard("permanent card from your graveyard");
|
||||
|
||||
static {
|
||||
filter.getCardType().add(CardType.ARTIFACT);
|
||||
|
|
|
@ -50,13 +50,11 @@ import mage.target.common.TargetCardInGraveyard;
|
|||
*/
|
||||
public class RiseFromTheGrave extends CardImpl<RiseFromTheGrave> {
|
||||
|
||||
private static final FilterCreatureCard filter = new FilterCreatureCard();
|
||||
|
||||
public RiseFromTheGrave(UUID ownerId) {
|
||||
super(ownerId, 109, "Rise from the Grave", Rarity.UNCOMMON, new CardType[]{CardType.SORCERY}, "{4}{B}");
|
||||
this.expansionSetCode = "M10";
|
||||
this.color.setBlack(true);
|
||||
this.getSpellAbility().addTarget(new TargetCardInGraveyard(filter));
|
||||
this.getSpellAbility().addTarget(new TargetCardInGraveyard(new FilterCreatureCard("creature card from a graveyard")));
|
||||
this.getSpellAbility().addEffect(new ReturnFromGraveyardToBattlefieldTargetEffect());
|
||||
this.getSpellAbility().addEffect(new RiseFromTheGraveEffect());
|
||||
}
|
||||
|
@ -117,7 +115,7 @@ class RiseFromTheGraveEffect extends ContinuousEffectImpl<RiseFromTheGraveEffect
|
|||
|
||||
@Override
|
||||
public boolean hasLayer(Layer layer) {
|
||||
return layer == Layer.ColorChangingEffects_5 || layer == layer.TypeChangingEffects_4;
|
||||
return layer == Layer.ColorChangingEffects_5 || layer == Layer.TypeChangingEffects_4;
|
||||
}
|
||||
|
||||
}
|
|
@ -43,7 +43,7 @@ import mage.target.common.TargetCardInYourGraveyard;
|
|||
*/
|
||||
public class CallToMind extends CardImpl<CallToMind> {
|
||||
|
||||
private static final FilterCard filter = new FilterCard("instant or sorcery card");
|
||||
private static final FilterCard filter = new FilterCard("instant or sorcery card from your graveyard");
|
||||
|
||||
static {
|
||||
filter.getCardType().add(CardType.INSTANT);
|
||||
|
|
|
@ -77,7 +77,7 @@ public class SunTitan extends CardImpl<SunTitan> {
|
|||
|
||||
class SunTitanAbility extends TriggeredAbilityImpl<SunTitanAbility> {
|
||||
|
||||
private static final FilterCard filter = new FilterCard("permanent card with converted mana cost 3 or less");
|
||||
private static final FilterCard filter = new FilterCard("permanent card with converted mana cost 3 or less from your graveyard");
|
||||
|
||||
static {
|
||||
filter.getCardType().add(CardType.ARTIFACT);
|
||||
|
|
|
@ -46,7 +46,7 @@ import mage.target.common.TargetCardInYourGraveyard;
|
|||
*/
|
||||
public class Auramancer extends CardImpl<Auramancer> {
|
||||
|
||||
private final static FilterCard filter = new FilterCard("enchantment card");
|
||||
private final static FilterCard filter = new FilterCard("enchantment card from your graveyard");
|
||||
|
||||
static {
|
||||
filter.getCardType().add(CardType.ENCHANTMENT);
|
||||
|
|
|
@ -41,8 +41,7 @@ import mage.abilities.costs.mana.GenericManaCost;
|
|||
import mage.abilities.effects.common.ReturnToHandTargetEffect;
|
||||
import mage.abilities.mana.ColorlessManaAbility;
|
||||
import mage.cards.CardImpl;
|
||||
import mage.filter.Filter;
|
||||
import mage.filter.FilterCard;
|
||||
import mage.filter.common.FilterArtifactCard;
|
||||
import mage.target.common.TargetCardInYourGraveyard;
|
||||
|
||||
/**
|
||||
|
@ -50,13 +49,6 @@ import mage.target.common.TargetCardInYourGraveyard;
|
|||
*/
|
||||
public class BuriedRuin extends CardImpl<BuriedRuin> {
|
||||
|
||||
private final static FilterCard filter = new FilterCard("artifact card");
|
||||
|
||||
static {
|
||||
filter.getCardType().add(CardType.ARTIFACT);
|
||||
filter.setScopeCardType(Filter.ComparisonScope.Any);
|
||||
}
|
||||
|
||||
public BuriedRuin(UUID ownerId) {
|
||||
super(ownerId, 224, "Buried Ruin", Rarity.UNCOMMON, new CardType[]{CardType.LAND}, "");
|
||||
this.expansionSetCode = "M12";
|
||||
|
@ -64,7 +56,7 @@ public class BuriedRuin extends CardImpl<BuriedRuin> {
|
|||
Ability ability = new SimpleActivatedAbility(Constants.Zone.BATTLEFIELD, new ReturnToHandTargetEffect(), new GenericManaCost(2));
|
||||
ability.addCost(new TapSourceCost());
|
||||
ability.addCost(new SacrificeSourceCost());
|
||||
ability.addTarget(new TargetCardInYourGraveyard(filter));
|
||||
ability.addTarget(new TargetCardInYourGraveyard(new FilterArtifactCard("artifact card from your graveyard")));
|
||||
this.addAbility(ability);
|
||||
|
||||
}
|
||||
|
|
|
@ -54,12 +54,10 @@ import mage.target.common.TargetCardInGraveyard;
|
|||
*/
|
||||
public class CemeteryReaper extends CardImpl<CemeteryReaper> {
|
||||
|
||||
private final static FilterCreaturePermanent zombieFilter = new FilterCreaturePermanent("Zombie creatures");
|
||||
private final static FilterCreatureCard filter = new FilterCreatureCard("creature card");
|
||||
|
||||
private final static FilterCreaturePermanent filter = new FilterCreaturePermanent("Zombie creatures");
|
||||
static {
|
||||
zombieFilter.getSubtype().add("Zombie");
|
||||
zombieFilter.setScopeSubtype(Filter.ComparisonScope.Any);
|
||||
filter.getSubtype().add("Zombie");
|
||||
filter.setScopeSubtype(Filter.ComparisonScope.Any);
|
||||
}
|
||||
|
||||
public CemeteryReaper(UUID ownerId) {
|
||||
|
@ -69,11 +67,11 @@ public class CemeteryReaper extends CardImpl<CemeteryReaper> {
|
|||
this.color.setBlack(true);
|
||||
this.power = new MageInt(2);
|
||||
this.toughness = new MageInt(2);
|
||||
this.addAbility(new SimpleStaticAbility(Constants.Zone.BATTLEFIELD, new BoostControlledEffect(1, 1, Constants.Duration.WhileOnBattlefield, zombieFilter, true)));
|
||||
this.addAbility(new SimpleStaticAbility(Constants.Zone.BATTLEFIELD, new BoostControlledEffect(1, 1, Constants.Duration.WhileOnBattlefield, filter, true)));
|
||||
Ability ability = new SimpleActivatedAbility(Constants.Zone.BATTLEFIELD, new ExileTargetEffect(), new ManaCostsImpl("{2}{B}"));
|
||||
ability.addCost(new TapSourceCost());
|
||||
ability.addEffect(new CreateTokenEffect(new ZombieToken()));
|
||||
ability.addTarget(new TargetCardInGraveyard(filter));
|
||||
ability.addTarget(new TargetCardInGraveyard(new FilterCreatureCard("creature card from a graveyard")));
|
||||
this.addAbility(ability);
|
||||
}
|
||||
|
||||
|
|
|
@ -46,7 +46,7 @@ import mage.target.common.TargetCreatureOrPlayer;
|
|||
|
||||
/**
|
||||
*
|
||||
* @author anonymous
|
||||
* @author Loki
|
||||
*/
|
||||
public class GrimLavamancer extends CardImpl<GrimLavamancer> {
|
||||
|
||||
|
@ -62,7 +62,7 @@ public class GrimLavamancer extends CardImpl<GrimLavamancer> {
|
|||
|
||||
Ability ability = new SimpleActivatedAbility(Constants.Zone.BATTLEFIELD, new DamageTargetEffect(2), new ColoredManaCost(Constants.ColoredManaSymbol.R));
|
||||
ability.addCost(new TapSourceCost());
|
||||
ability.addCost(new ExileFromGraveCost(new TargetCardInYourGraveyard(2, new FilterCard("cards"))));
|
||||
ability.addCost(new ExileFromGraveCost(new TargetCardInYourGraveyard(2, new FilterCard("cards from your graveyard"))));
|
||||
ability.addTarget(new TargetCreatureOrPlayer());
|
||||
this.addAbility(ability);
|
||||
}
|
||||
|
|
|
@ -35,18 +35,16 @@ import mage.abilities.Ability;
|
|||
import mage.abilities.common.EntersBattlefieldAbility;
|
||||
import mage.abilities.common.SimpleStaticAbility;
|
||||
import mage.abilities.dynamicvalue.DynamicValue;
|
||||
import mage.abilities.effects.Effect;
|
||||
import mage.abilities.effects.OneShotEffect;
|
||||
import mage.abilities.effects.common.continious.BoostSourceEffect;
|
||||
import mage.abilities.keyword.TrampleAbility;
|
||||
import mage.cards.Card;
|
||||
import mage.cards.CardImpl;
|
||||
import mage.filter.FilterCard;
|
||||
import mage.filter.common.FilterCreatureCard;
|
||||
import mage.game.Game;
|
||||
import mage.game.permanent.Permanent;
|
||||
import mage.players.Player;
|
||||
import mage.target.common.TargetCardInGraveyard;
|
||||
import mage.target.common.TargetCardInYourGraveyard;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
|
@ -90,55 +88,49 @@ public class SuturedGhoul extends CardImpl<SuturedGhoul> {
|
|||
|
||||
class SuturedGhoulEffect extends OneShotEffect<SuturedGhoulEffect> {
|
||||
|
||||
private static FilterCard filter = new FilterCreatureCard();
|
||||
public SuturedGhoulEffect() {
|
||||
super(Constants.Outcome.Benefit);
|
||||
staticText = "exile any number of creature cards from your graveyard";
|
||||
}
|
||||
|
||||
public SuturedGhoulEffect() {
|
||||
super(Constants.Outcome.Benefit);
|
||||
staticText = "exile any number of creature cards from your graveyard";
|
||||
}
|
||||
public SuturedGhoulEffect(SuturedGhoulEffect effect) {
|
||||
super(effect);
|
||||
}
|
||||
|
||||
public SuturedGhoulEffect(SuturedGhoulEffect effect) {
|
||||
super(effect);
|
||||
}
|
||||
@Override
|
||||
public boolean apply(Game game, Ability source) {
|
||||
Player player = game.getPlayer(source.getControllerId());
|
||||
Permanent permanent = game.getPermanent(source.getSourceId());
|
||||
if (player.getGraveyard().size() > 0) {
|
||||
|
||||
@Override
|
||||
public boolean apply(Game game, Ability source) {
|
||||
Player player = game.getPlayer(source.getControllerId());
|
||||
Permanent permanent = game.getPermanent(source.getSourceId());
|
||||
if (player.getGraveyard().size() > 0) {
|
||||
TargetCardInYourGraveyard target = new TargetCardInYourGraveyard(0, Integer.MAX_VALUE, new FilterCreatureCard("creature cards from your graveyard"));
|
||||
if (player.chooseTarget(Constants.Outcome.Benefit, target, source, game)) {
|
||||
int count = 0;
|
||||
for (UUID uuid : target.getTargets()) {
|
||||
Card card = player.getGraveyard().get(uuid, game);
|
||||
if (card != null) {
|
||||
card.moveToExile(getId(), "Sutured Ghoul", source.getSourceId(), game);
|
||||
if (permanent != null) {
|
||||
permanent.imprint(card.getId(), game);
|
||||
count++;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
TargetCardInGraveyard target = new TargetCardInGraveyard(0, Integer.MAX_VALUE, filter);
|
||||
while (player.chooseTarget(Constants.Outcome.Benefit, target, source, game)) {
|
||||
String msg = count == 1 ? "1 card" : count + "cards";
|
||||
game.informPlayers("Sutured Ghoul: " + player.getName() + " exiled " + msg);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
int count = 0;
|
||||
for (UUID uuid : target.getTargets()) {
|
||||
Card card = player.getGraveyard().get(uuid, game);
|
||||
if (card != null) {
|
||||
card.moveToExile(getId(), "Sutured Ghoul", source.getSourceId(), game);
|
||||
if (permanent != null) {
|
||||
permanent.imprint(card.getId(), game);
|
||||
count++;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
String msg = count == 1 ? "1 card" : count + "cards";
|
||||
game.informPlayers("Sutured Ghoul: " + player.getName() + " exiled " + msg);
|
||||
|
||||
return true;
|
||||
} else {
|
||||
game.informPlayers("Sutured Ghoul: No cards in graveyard.");
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public SuturedGhoulEffect copy() {
|
||||
return new SuturedGhoulEffect(this);
|
||||
}
|
||||
} else {
|
||||
game.informPlayers("Sutured Ghoul: No cards in graveyard.");
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public SuturedGhoulEffect copy() {
|
||||
return new SuturedGhoulEffect(this);
|
||||
}
|
||||
}
|
||||
|
||||
class SuturedGhoulPowerCount implements DynamicValue {
|
||||
|
|
|
@ -45,7 +45,7 @@ import mage.target.common.TargetControlledPermanent;
|
|||
public class TrashForTreasure extends CardImpl<TrashForTreasure> {
|
||||
|
||||
private static final FilterControlledPermanent filterPermanent = new FilterControlledPermanent("an artifact");
|
||||
private static final FilterCard filterCard = new FilterCard("artifact");
|
||||
private static final FilterCard filterCard = new FilterCard("artifact card from your graveyard");
|
||||
|
||||
static {
|
||||
filterPermanent.getCardType().add(CardType.ARTIFACT);
|
||||
|
|
|
@ -51,7 +51,7 @@ public class FranticSalvage extends CardImpl<FranticSalvage> {
|
|||
|
||||
this.getSpellAbility().addEffect(new PutOnLibraryTargetEffect(true));
|
||||
this.getSpellAbility().addEffect(new DrawCardControllerEffect(1));
|
||||
this.getSpellAbility().addTarget(new TargetCardInYourGraveyard(0, 0, FilterArtifactCard.getDefault()));
|
||||
this.getSpellAbility().addTarget(new TargetCardInYourGraveyard(0, 0, new FilterArtifactCard("artifact cards from your graveyard")));
|
||||
}
|
||||
|
||||
public FranticSalvage(final FranticSalvage card) {
|
||||
|
|
|
@ -79,7 +79,7 @@ public class GlissaTheTraitor extends CardImpl<GlissaTheTraitor> {
|
|||
}
|
||||
|
||||
class GlissaTheTraitorTriggeredAbility extends TriggeredAbilityImpl<GlissaTheTraitorTriggeredAbility> {
|
||||
private static final FilterCard filter = new FilterCard("artifact card");
|
||||
private static final FilterCard filter = new FilterCard("artifact card from your graveyard");
|
||||
|
||||
static {
|
||||
filter.getCardType().add(CardType.ARTIFACT);
|
||||
|
|
|
@ -56,7 +56,7 @@ import mage.target.targetpointer.FixedTarget;
|
|||
*/
|
||||
public class GruesomeEncore extends CardImpl<GruesomeEncore> {
|
||||
|
||||
private static final FilterCreatureCard filter = new FilterCreatureCard();
|
||||
private static final FilterCreatureCard filter = new FilterCreatureCard("creature card from an opponent's graveyard");
|
||||
|
||||
public GruesomeEncore(UUID ownerId) {
|
||||
super(ownerId, 44, "Gruesome Encore", Rarity.UNCOMMON, new CardType[]{CardType.SORCERY}, "{2}{B}");
|
||||
|
|
|
@ -27,7 +27,6 @@
|
|||
*/
|
||||
package mage.sets.mirrodinbesieged;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.UUID;
|
||||
import mage.Constants.CardType;
|
||||
import mage.Constants.Outcome;
|
||||
|
@ -47,8 +46,6 @@ import mage.target.common.TargetCardInYourGraveyard;
|
|||
*/
|
||||
public class MorbidPlunder extends CardImpl<MorbidPlunder> {
|
||||
|
||||
private static final FilterCreatureCard filter = new FilterCreatureCard();
|
||||
|
||||
public MorbidPlunder(UUID ownerId) {
|
||||
super(ownerId, 47, "Morbid Plunder", Rarity.COMMON, new CardType[]{CardType.SORCERY}, "{1}{B}{B}");
|
||||
this.expansionSetCode = "MBS";
|
||||
|
@ -56,7 +53,7 @@ public class MorbidPlunder extends CardImpl<MorbidPlunder> {
|
|||
this.color.setBlack(true);
|
||||
|
||||
this.getSpellAbility().addEffect(new MorbidPlunderEffect());
|
||||
this.getSpellAbility().addTarget(new TargetCardInYourGraveyard(0, 2, filter));
|
||||
this.getSpellAbility().addTarget(new TargetCardInYourGraveyard(0, 2, new FilterCreatureCard("creature cards from your graveyard")));
|
||||
}
|
||||
|
||||
public MorbidPlunder(final MorbidPlunder card) {
|
||||
|
|
|
@ -45,15 +45,11 @@ import mage.abilities.common.SimpleStaticAbility;
|
|||
import mage.abilities.costs.common.TapSourceCost;
|
||||
import mage.abilities.effects.ContinuousEffectImpl;
|
||||
import mage.abilities.effects.OneShotEffect;
|
||||
import mage.abilities.effects.common.ExileTargetEffect;
|
||||
import mage.cards.Card;
|
||||
import mage.cards.CardImpl;
|
||||
import mage.filter.FilterCard;
|
||||
import mage.filter.common.FilterArtifactCard;
|
||||
import mage.game.Game;
|
||||
import mage.game.permanent.Permanent;
|
||||
import mage.players.Player;
|
||||
import mage.target.TargetCard;
|
||||
import mage.target.common.TargetCardInGraveyard;
|
||||
|
||||
/**
|
||||
|
@ -62,8 +58,6 @@ import mage.target.common.TargetCardInGraveyard;
|
|||
*/
|
||||
public class MyrWelder extends CardImpl<MyrWelder> {
|
||||
|
||||
private static FilterCard filter = new FilterArtifactCard();
|
||||
|
||||
public MyrWelder(UUID ownerId) {
|
||||
super(ownerId, 118, "Myr Welder", Rarity.RARE, new CardType[]{CardType.ARTIFACT, CardType.CREATURE}, "{3}");
|
||||
this.expansionSetCode = "MBS";
|
||||
|
@ -73,7 +67,7 @@ public class MyrWelder extends CardImpl<MyrWelder> {
|
|||
|
||||
// Imprint - {tap}: Exile target artifact card from a graveyard
|
||||
SimpleActivatedAbility ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new MyrWelderEffect(), new TapSourceCost());
|
||||
ability.addTarget(new TargetCardInGraveyard(filter));
|
||||
ability.addTarget(new TargetCardInGraveyard(new FilterArtifactCard("artifact card from a graveyard")));
|
||||
this.addAbility(ability);
|
||||
|
||||
// Myr Welder has all activated abilities of all cards exiled with it
|
||||
|
|
|
@ -51,7 +51,7 @@ import mage.target.common.TargetCardInYourGraveyard;
|
|||
public class EverbarkShaman extends CardImpl<EverbarkShaman> {
|
||||
|
||||
private final static FilterCard filterForest = new FilterCard("Forest");
|
||||
private final static FilterCard filterTreefolk = new FilterCard("Treefolk");
|
||||
private final static FilterCard filterTreefolk = new FilterCard("Treefolk from your graveyard");
|
||||
|
||||
static {
|
||||
filterForest.getName().add("Forest");
|
||||
|
|
|
@ -50,7 +50,7 @@ import mage.target.common.TargetCreaturePermanent;
|
|||
*/
|
||||
public class ScarbladeElite extends CardImpl<ScarbladeElite> {
|
||||
|
||||
private final static FilterCard filter = new FilterCard("Assassin");
|
||||
private final static FilterCard filter = new FilterCard("Assassin card from your graveyard");
|
||||
|
||||
static {
|
||||
filter.getSubtype().add("Assassin");
|
||||
|
|
|
@ -50,7 +50,7 @@ import mage.target.common.TargetCardInYourGraveyard;
|
|||
* @author Loki
|
||||
*/
|
||||
public class AuriokSurvivors extends CardImpl<AuriokSurvivors> {
|
||||
private static final FilterCard filter = new FilterCard();
|
||||
private static final FilterCard filter = new FilterCard("Equipment card from your graveyard");
|
||||
|
||||
static {
|
||||
filter.getSubtype().add("Equipment");
|
||||
|
|
|
@ -57,7 +57,7 @@ public class ChancellorOfTheSpires extends CardImpl<ChancellorOfTheSpires> {
|
|||
|
||||
private static final String abilityText = "at the beginning of the first upkeep, each opponent puts the top seven cards of his or her library into his or her graveyard";
|
||||
|
||||
private static final FilterCard filter = new FilterCard("instant or sorcery card");
|
||||
private static final FilterCard filter = new FilterCard("instant or sorcery card from an opponent's graveyard");
|
||||
|
||||
static {
|
||||
filter.getCardType().add(CardType.INSTANT);
|
||||
|
|
|
@ -45,7 +45,6 @@ import mage.cards.CardImpl;
|
|||
import mage.counters.CounterType;
|
||||
import mage.filter.common.FilterArtifactCard;
|
||||
import mage.game.permanent.token.GolemToken;
|
||||
import mage.game.permanent.token.Token;
|
||||
import mage.target.common.TargetCardInYourGraveyard;
|
||||
|
||||
/**
|
||||
|
@ -59,7 +58,7 @@ public class ConversionChamber extends CardImpl<ConversionChamber> {
|
|||
this.expansionSetCode = "NPH";
|
||||
Ability ability = new SimpleActivatedAbility(Constants.Zone.BATTLEFIELD, new AddCountersSourceEffect(CounterType.CHARGE.createInstance()), new GenericManaCost(2));
|
||||
ability.addCost(new TapSourceCost());
|
||||
ability.addCost(new ExileFromGraveCost(new TargetCardInYourGraveyard(new FilterArtifactCard())));
|
||||
ability.addCost(new ExileFromGraveCost(new TargetCardInYourGraveyard(new FilterArtifactCard("artifact card from a graveyard"))));
|
||||
this.addAbility(ability);
|
||||
ability = new SimpleActivatedAbility(Constants.Zone.BATTLEFIELD, new CreateTokenEffect(new GolemToken()), new GenericManaCost(2));
|
||||
ability.addCost(new TapSourceCost());
|
||||
|
|
|
@ -65,7 +65,7 @@ public class EntomberExarch extends CardImpl<EntomberExarch> {
|
|||
|
||||
// When Entomber Exarch enters the battlefield, choose one - Return target creature card from your graveyard to your hand; or target opponent reveals his or her hand, you choose a noncreature card from it, then that player discards that card.
|
||||
Ability ability = new EntersBattlefieldTriggeredAbility(new ReturnToHandTargetEffect(), false);
|
||||
ability.addTarget(new TargetCardInYourGraveyard(new FilterCreatureCard()));
|
||||
ability.addTarget(new TargetCardInYourGraveyard(new FilterCreatureCard("creature card from your graveyard")));
|
||||
Mode mode = new Mode();
|
||||
mode.getEffects().add(new EntomberExarchEffect());
|
||||
mode.getTargets().add(new TargetOpponent());
|
||||
|
|
|
@ -62,7 +62,7 @@ public class PostmortemLunge extends CardImpl<PostmortemLunge> {
|
|||
this.color.setBlack(true);
|
||||
|
||||
this.getSpellAbility().addEffect(new PostmortemLungeEffect());
|
||||
this.getSpellAbility().addTarget(new TargetCardInYourGraveyard(new FilterCreatureCard()));
|
||||
this.getSpellAbility().addTarget(new TargetCardInYourGraveyard(new FilterCreatureCard("creature card from your graveyard")));
|
||||
}
|
||||
|
||||
public PostmortemLunge(final PostmortemLunge card) {
|
||||
|
|
|
@ -51,8 +51,8 @@ import mage.target.common.TargetCardInYourGraveyard;
|
|||
*/
|
||||
public class RememberTheFallen extends CardImpl<RememberTheFallen> {
|
||||
|
||||
private static final FilterCreatureCard filterCreature = new FilterCreatureCard();
|
||||
private static final FilterArtifactCard filterArtifact = new FilterArtifactCard();
|
||||
private static final FilterCreatureCard filterCreature = new FilterCreatureCard("creature card from your graveyard");
|
||||
private static final FilterArtifactCard filterArtifact = new FilterArtifactCard("artifact card from your graveyard");
|
||||
|
||||
public RememberTheFallen(UUID ownerId) {
|
||||
super(ownerId, 21, "Remember the Fallen", Rarity.COMMON, new CardType[]{CardType.SORCERY}, "{2}{W}");
|
||||
|
|
|
@ -42,7 +42,6 @@ import mage.abilities.keyword.SwampwalkAbility;
|
|||
import mage.cards.CardImpl;
|
||||
import mage.filter.common.FilterCreatureCard;
|
||||
import mage.filter.common.FilterCreaturePermanent;
|
||||
import mage.target.TargetPlayer;
|
||||
import mage.target.common.TargetCardInYourGraveyard;
|
||||
|
||||
/**
|
||||
|
@ -61,7 +60,7 @@ public class SheoldredWhisperingOne extends CardImpl<SheoldredWhisperingOne> {
|
|||
this.toughness = new MageInt(6);
|
||||
this.addAbility(new SwampwalkAbility());
|
||||
Ability ability = new BeginningOfUpkeepTriggeredAbility(new ReturnFromGraveyardToBattlefieldTargetEffect(false), Constants.TargetController.YOU, false);
|
||||
ability.addTarget(new TargetCardInYourGraveyard(new FilterCreatureCard()));
|
||||
ability.addTarget(new TargetCardInYourGraveyard(new FilterCreatureCard("creature card from your graveyard")));
|
||||
this.addAbility(ability);
|
||||
ability = new BeginningOfUpkeepTriggeredAbility(new SacrificeEffect(new FilterCreaturePermanent(), 1, "that player "), Constants.TargetController.OPPONENT, false);
|
||||
this.addAbility(ability);
|
||||
|
|
|
@ -52,7 +52,7 @@ import mage.target.common.TargetCardInLibrary;
|
|||
*/
|
||||
public class SurgicalExtraction extends CardImpl<SurgicalExtraction> {
|
||||
|
||||
private static final FilterCard filter = new FilterCard("card other than a basic land card");
|
||||
private static final FilterCard filter = new FilterCard("card in a graveyard other than a basic land card");
|
||||
|
||||
static {
|
||||
filter.getSupertype().add("Basic");
|
||||
|
|
|
@ -64,7 +64,7 @@ public class GolgariGuildmage extends CardImpl<GolgariGuildmage> {
|
|||
this.toughness = new MageInt(2);
|
||||
Ability ability = new SimpleActivatedAbility(Constants.Zone.BATTLEFIELD, new ReturnToHandTargetEffect(), new ManaCostsImpl("{4}{B}"));
|
||||
ability.addCost(new SacrificeTargetCost(new TargetControlledCreaturePermanent()));
|
||||
ability.addTarget(new TargetCardInYourGraveyard(new FilterCreatureCard()));
|
||||
ability.addTarget(new TargetCardInYourGraveyard(new FilterCreatureCard("creature card from your graveyard")));
|
||||
this.addAbility(ability);
|
||||
ability = new SimpleActivatedAbility(Constants.Zone.BATTLEFIELD, new AddCountersTargetEffect(CounterType.P1P1.createInstance()), new ManaCostsImpl("{4}{G}"));
|
||||
ability.addTarget(new TargetCreaturePermanent());
|
||||
|
|
|
@ -53,7 +53,7 @@ public class ArtisanOfKozilek extends CardImpl<ArtisanOfKozilek> {
|
|||
this.power = new MageInt(10);
|
||||
this.toughness = new MageInt(9);
|
||||
Ability ability = new EntersBattlefieldTriggeredAbility(new ReturnFromGraveyardToBattlefieldTargetEffect());
|
||||
ability.addTarget(new TargetCardInYourGraveyard(new FilterCreatureCard()));
|
||||
ability.addTarget(new TargetCardInYourGraveyard(new FilterCreatureCard("creature card from your graveyard")));
|
||||
this.addAbility(ability);
|
||||
this.addAbility(new AnnihilatorAbility(2));
|
||||
}
|
||||
|
|
|
@ -56,7 +56,7 @@ public class CadaverImp extends CardImpl<CadaverImp> {
|
|||
|
||||
this.addAbility(FlyingAbility.getInstance());
|
||||
Ability ability = new EntersBattlefieldTriggeredAbility(new ReturnToHandTargetEffect(), true);
|
||||
ability.addTarget(new TargetCardInYourGraveyard(new FilterCreatureCard()));
|
||||
ability.addTarget(new TargetCardInYourGraveyard(new FilterCreatureCard("creature card from your graveyard")));
|
||||
this.addAbility(ability);
|
||||
|
||||
}
|
||||
|
|
|
@ -46,7 +46,7 @@ import mage.target.common.TargetCardInYourGraveyard;
|
|||
*/
|
||||
public class MnemonicWall extends CardImpl<MnemonicWall> {
|
||||
|
||||
private static final FilterCard filter = new FilterCard("instant or sorcery card");
|
||||
private static final FilterCard filter = new FilterCard("instant or sorcery card from your graveyard");
|
||||
|
||||
static {
|
||||
filter.getCardType().add(CardType.INSTANT);
|
||||
|
|
|
@ -46,7 +46,7 @@ import mage.target.common.TargetCardInYourGraveyard;
|
|||
*/
|
||||
public class CorpseCur extends CardImpl<CorpseCur> {
|
||||
|
||||
private static FilterCard filter = new FilterCard("creature card with infect");
|
||||
private static final FilterCard filter = new FilterCard("creature card with infect from your graveyard");
|
||||
|
||||
static {
|
||||
filter.getAbilities().add(InfectAbility.getInstance());
|
||||
|
|
|
@ -58,7 +58,7 @@ import mage.target.common.TargetCardInOpponentsGraveyard;
|
|||
*/
|
||||
public class GethLordOfTheVault extends CardImpl<GethLordOfTheVault> {
|
||||
|
||||
private static final FilterCard filter = new FilterCard("artifact or creature card");
|
||||
private static final FilterCard filter = new FilterCard("artifact or creature card from an opponent's graveyard");
|
||||
|
||||
static {
|
||||
filter.getCardType().add(CardType.CREATURE);
|
||||
|
|
|
@ -30,7 +30,6 @@ package mage.sets.scarsofmirrodin;
|
|||
|
||||
import java.util.UUID;
|
||||
import mage.Constants.CardType;
|
||||
import mage.Constants.Duration;
|
||||
import mage.Constants.Rarity;
|
||||
import mage.Constants.Zone;
|
||||
import mage.MageInt;
|
||||
|
@ -44,8 +43,6 @@ import mage.abilities.effects.common.DamageTargetEffect;
|
|||
import mage.abilities.effects.common.RegenerateSourceEffect;
|
||||
import mage.abilities.effects.common.SacrificeSourceUnlessPaysEffect;
|
||||
import mage.cards.CardImpl;
|
||||
import mage.filter.Filter;
|
||||
import mage.filter.FilterCard;
|
||||
import mage.filter.common.FilterCreatureCard;
|
||||
import mage.game.Game;
|
||||
import mage.game.events.GameEvent;
|
||||
|
@ -67,7 +64,7 @@ public class MoltenTailMasticore extends CardImpl<MoltenTailMasticore> {
|
|||
this.toughness = new MageInt(4);
|
||||
this.addAbility(new MoltenTailMasticoreAbility());
|
||||
Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new DamageTargetEffect(4), new GenericManaCost(4));
|
||||
ability.addCost(new ExileFromGraveCost(new TargetCardInYourGraveyard(new FilterCreatureCard())));
|
||||
ability.addCost(new ExileFromGraveCost(new TargetCardInYourGraveyard(new FilterCreatureCard("creature card from your graveyard"))));
|
||||
ability.addTarget(new TargetCreatureOrPlayer());
|
||||
this.addAbility(ability);
|
||||
this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new RegenerateSourceEffect(), new GenericManaCost(2)));
|
||||
|
|
|
@ -53,7 +53,7 @@ import java.util.UUID;
|
|||
*/
|
||||
public class MyrReservoir extends CardImpl<MyrReservoir> {
|
||||
|
||||
private static final FilterCard myrCardFilter = new FilterCard();
|
||||
private static final FilterCard myrCardFilter = new FilterCard("Myr card from your graveyard");
|
||||
|
||||
static {
|
||||
myrCardFilter.getSubtype().add("Myr");
|
||||
|
|
|
@ -58,18 +58,16 @@ public class RazorHippogriff extends CardImpl<RazorHippogriff> {
|
|||
super(ownerId, 17, "Razor Hippogriff", Rarity.UNCOMMON, new CardType[]{CardType.CREATURE}, "{3}{W}{W}");
|
||||
this.expansionSetCode = "SOM";
|
||||
this.subtype.add("Hippogriff");
|
||||
|
||||
this.color.setWhite(true);
|
||||
this.power = new MageInt(3);
|
||||
this.toughness = new MageInt(3);
|
||||
|
||||
this.addAbility(FlyingAbility.getInstance());
|
||||
|
||||
|
||||
|
||||
Ability ability = new EntersBattlefieldTriggeredAbility(new ReturnToHandTargetEffect());
|
||||
//TargetCard target = new TargetCard(Zone.GRAVEYARD, FilterArtifactCard.getDefault());
|
||||
TargetCard target = new TargetCardInYourGraveyard(FilterArtifactCard.getDefault());
|
||||
TargetCard target = new TargetCardInYourGraveyard(new FilterArtifactCard("artifact card from your graveyard"));
|
||||
target.setRequired(true);
|
||||
target.setTargetName("artifact card in your graveyard");
|
||||
ability.addTarget(target);
|
||||
ability.addEffect(new RazorHippogriffGainLifeEffect());
|
||||
|
||||
|
|
|
@ -59,7 +59,7 @@ public class SalvageScout extends CardImpl<SalvageScout> {
|
|||
this.toughness = new MageInt(1);
|
||||
|
||||
Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new ReturnToHandTargetEffect(), new ManaCostsImpl("{W}"));
|
||||
ability.addTarget(new TargetCardInYourGraveyard(FilterArtifactCard.getDefault()));
|
||||
ability.addTarget(new TargetCardInYourGraveyard(new FilterArtifactCard("artifact card from your graveyard")));
|
||||
ability.addCost(new SacrificeSourceCost());
|
||||
this.addAbility(ability);
|
||||
}
|
||||
|
|
|
@ -67,7 +67,7 @@ public class CruelUltimatum extends CardImpl<CruelUltimatum> {
|
|||
this.getSpellAbility().addEffect(new DiscardTargetEffect(3));
|
||||
this.getSpellAbility().addEffect(new LoseLifeTargetEffect(5));
|
||||
|
||||
this.getSpellAbility().addTarget(new TargetCardInYourGraveyard(new FilterCreatureCard()));
|
||||
this.getSpellAbility().addTarget(new TargetCardInYourGraveyard(new FilterCreatureCard("creature card from your graveyard")));
|
||||
this.getSpellAbility().addEffect(new CruelUltimatumEffect());
|
||||
this.getSpellAbility().addEffect(new DrawCardEffect(3));
|
||||
this.getSpellAbility().addEffect(new GainLifeEffect(5));
|
||||
|
|
|
@ -45,8 +45,6 @@ import mage.target.common.TargetCardInYourGraveyard;
|
|||
*/
|
||||
public class SharuumTheHegemon extends CardImpl<SharuumTheHegemon> {
|
||||
|
||||
private static final FilterArtifactCard filter = new FilterArtifactCard();
|
||||
|
||||
public SharuumTheHegemon(UUID ownerId) {
|
||||
super(ownerId, 194, "Sharuum the Hegemon", Rarity.MYTHIC, new CardType[]{CardType.ARTIFACT, CardType.CREATURE}, "{3}{W}{U}{B}");
|
||||
this.expansionSetCode = "ALA";
|
||||
|
@ -61,7 +59,7 @@ public class SharuumTheHegemon extends CardImpl<SharuumTheHegemon> {
|
|||
|
||||
this.addAbility(FlyingAbility.getInstance());
|
||||
Ability ability = new EntersBattlefieldTriggeredAbility(new ReturnFromGraveyardToBattlefieldTargetEffect(), true);
|
||||
ability.addTarget(new TargetCardInYourGraveyard(filter));
|
||||
ability.addTarget(new TargetCardInYourGraveyard(new FilterArtifactCard("artifact card from your graveyard")));
|
||||
this.addAbility(ability);
|
||||
}
|
||||
|
||||
|
|
|
@ -61,7 +61,7 @@ public class DoomedNecromancer extends CardImpl<DoomedNecromancer> {
|
|||
Ability ability = new SimpleActivatedAbility(Constants.Zone.BATTLEFIELD, new ReturnFromGraveyardToBattlefieldTargetEffect(), new ColoredManaCost(Constants.ColoredManaSymbol.B));
|
||||
ability.addCost(new TapSourceCost());
|
||||
ability.addCost(new SacrificeSourceCost());
|
||||
ability.addTarget(new TargetCardInYourGraveyard(new FilterCreatureCard()));
|
||||
ability.addTarget(new TargetCardInYourGraveyard(new FilterCreatureCard("creature card from your graveyard")));
|
||||
this.addAbility(ability);
|
||||
// {B}, {tap}, Sacrifice Doomed Necromancer: Return target creature card from your graveyard to the battlefield.
|
||||
}
|
||||
|
|
|
@ -54,7 +54,7 @@ public class Gravedigger extends CardImpl<Gravedigger> {
|
|||
this.toughness = new MageInt(2);
|
||||
|
||||
Ability ability = new EntersBattlefieldTriggeredAbility(new ReturnToHandTargetEffect(), true);
|
||||
ability.addTarget(new TargetCardInYourGraveyard(new FilterCreatureCard()));
|
||||
ability.addTarget(new TargetCardInYourGraveyard(new FilterCreatureCard("creature card from your graveyard")));
|
||||
this.addAbility(ability);
|
||||
}
|
||||
|
||||
|
|
|
@ -57,7 +57,7 @@ public class ReyaDawnbringer extends CardImpl<ReyaDawnbringer> {
|
|||
this.toughness = new MageInt(6);
|
||||
this.addAbility(FlyingAbility.getInstance());
|
||||
Ability ability = new BeginningOfUpkeepTriggeredAbility(new ReturnFromGraveyardToBattlefieldTargetEffect(), Constants.TargetController.YOU, true);
|
||||
ability.addTarget(new TargetCardInYourGraveyard(new FilterCreatureCard()));
|
||||
ability.addTarget(new TargetCardInYourGraveyard(new FilterCreatureCard("creature card from your graveyard")));
|
||||
this.addAbility(ability);
|
||||
}
|
||||
|
||||
|
|
|
@ -35,8 +35,7 @@ import mage.abilities.Ability;
|
|||
import mage.abilities.common.EntersBattlefieldTriggeredAbility;
|
||||
import mage.abilities.effects.common.ReturnToHandTargetEffect;
|
||||
import mage.cards.CardImpl;
|
||||
import mage.filter.Filter;
|
||||
import mage.filter.FilterCard;
|
||||
import mage.filter.common.FilterArtifactCard;
|
||||
import mage.target.common.TargetCardInYourGraveyard;
|
||||
|
||||
/**
|
||||
|
@ -45,13 +44,6 @@ import mage.target.common.TargetCardInYourGraveyard;
|
|||
*/
|
||||
public class TreasureHunter extends CardImpl<TreasureHunter> {
|
||||
|
||||
private final static FilterCard filter = new FilterCard("artifact card");
|
||||
|
||||
static {
|
||||
filter.getCardType().add(CardType.ARTIFACT);
|
||||
filter.setScopeCardType(Filter.ComparisonScope.Any);
|
||||
}
|
||||
|
||||
public TreasureHunter(UUID ownerId) {
|
||||
super(ownerId, 52, "Treasure Hunter", Rarity.UNCOMMON, new CardType[]{CardType.CREATURE}, "{2}{W}");
|
||||
this.expansionSetCode = "10E";
|
||||
|
@ -60,7 +52,7 @@ public class TreasureHunter extends CardImpl<TreasureHunter> {
|
|||
this.power = new MageInt(2);
|
||||
this.toughness = new MageInt(2);
|
||||
Ability ability = new EntersBattlefieldTriggeredAbility(new ReturnToHandTargetEffect(), true);
|
||||
ability.addTarget(new TargetCardInYourGraveyard(filter));
|
||||
ability.addTarget(new TargetCardInYourGraveyard(new FilterArtifactCard("artifact card from your graveyard")));
|
||||
this.addAbility(ability);
|
||||
}
|
||||
|
||||
|
|
|
@ -11,7 +11,7 @@ public class SoulshiftAbility extends DiesTriggeredAbility {
|
|||
|
||||
public SoulshiftAbility(int amount) {
|
||||
super(new ReturnToHandTargetEffect());
|
||||
FilterCard filter = new FilterCard();
|
||||
FilterCard filter = new FilterCard("Spirit card with converted mana cost " + amount + " or less from your graveyard");
|
||||
filter.setConvertedManaCost(amount + 1);
|
||||
filter.setConvertedManaCostComparison(Filter.ComparisonType.LessThan);
|
||||
filter.getSubtype().add("Spirit");
|
||||
|
|
|
@ -40,7 +40,7 @@ import mage.target.TargetCard;
|
|||
*
|
||||
* @author BetaSteward_at_googlemail.com
|
||||
*/
|
||||
public class TargetCardInExile extends TargetCard<TargetCardInGraveyard> {
|
||||
public class TargetCardInExile extends TargetCard<TargetCardInExile> {
|
||||
|
||||
private UUID zoneId;
|
||||
|
||||
|
|
|
@ -43,7 +43,7 @@ import mage.target.TargetCard;
|
|||
public class TargetCardInGraveyard extends TargetCard<TargetCardInGraveyard> {
|
||||
|
||||
public TargetCardInGraveyard() {
|
||||
this(1, 1, new FilterCard());
|
||||
this(1, 1, new FilterCard("card from a graveyard"));
|
||||
}
|
||||
|
||||
public TargetCardInGraveyard(FilterCard filter) {
|
||||
|
@ -56,7 +56,7 @@ public class TargetCardInGraveyard extends TargetCard<TargetCardInGraveyard> {
|
|||
|
||||
public TargetCardInGraveyard(int minNumTargets, int maxNumTargets, FilterCard filter) {
|
||||
super(minNumTargets, maxNumTargets, Zone.GRAVEYARD, filter);
|
||||
this.targetName = filter.getMessage() + " in a graveyard";
|
||||
this.targetName = filter.getMessage();
|
||||
}
|
||||
|
||||
public TargetCardInGraveyard(final TargetCardInGraveyard target) {
|
||||
|
|
|
@ -18,7 +18,7 @@ public class TargetCardInOpponentsGraveyard extends TargetCard<TargetCardInOppon
|
|||
|
||||
public TargetCardInOpponentsGraveyard(int minNumTargets, int maxNumTargets, FilterCard filter) {
|
||||
super(minNumTargets, maxNumTargets, Constants.Zone.GRAVEYARD, filter);
|
||||
this.targetName = filter.getMessage() + " from an opponent's graveyard";
|
||||
this.targetName = filter.getMessage();
|
||||
}
|
||||
|
||||
public TargetCardInOpponentsGraveyard(final TargetCardInOpponentsGraveyard target) {
|
||||
|
|
|
@ -43,7 +43,7 @@ import mage.target.TargetCard;
|
|||
public class TargetCardInYourGraveyard extends TargetCard<TargetCardInYourGraveyard> {
|
||||
|
||||
public TargetCardInYourGraveyard() {
|
||||
this(1, 1, new FilterCard());
|
||||
this(1, 1, new FilterCard("card from your graveyard"));
|
||||
}
|
||||
|
||||
public TargetCardInYourGraveyard(FilterCard filter) {
|
||||
|
@ -56,7 +56,7 @@ public class TargetCardInYourGraveyard extends TargetCard<TargetCardInYourGravey
|
|||
|
||||
public TargetCardInYourGraveyard(int minNumTargets, int maxNumTargets, FilterCard filter) {
|
||||
super(minNumTargets, maxNumTargets, Zone.GRAVEYARD, filter);
|
||||
this.targetName = filter.getMessage() + " in your graveyard";
|
||||
this.targetName = filter.getMessage();
|
||||
}
|
||||
|
||||
public TargetCardInYourGraveyard(final TargetCardInYourGraveyard target) {
|
||||
|
|
Loading…
Reference in a new issue