moved "from graveyard" text from target to filter

This commit is contained in:
North 2011-09-26 22:00:20 +03:00
parent ab3a09181c
commit 2e4d20c84c
62 changed files with 114 additions and 175 deletions

View file

@ -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");

View file

@ -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");

View file

@ -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);
}
}

View file

@ -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");

View file

@ -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) {

View file

@ -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) {

View file

@ -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);

View file

@ -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);

View file

@ -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) {

View file

@ -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";
}

View file

@ -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) {

View file

@ -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));

View file

@ -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");

View file

@ -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");

View file

@ -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");

View file

@ -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}");

View file

@ -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);

View file

@ -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;
}
}

View file

@ -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);

View file

@ -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);

View file

@ -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);

View file

@ -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);
}

View file

@ -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);
}

View file

@ -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);
}

View file

@ -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 {

View file

@ -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);

View file

@ -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) {

View file

@ -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);

View file

@ -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}");

View file

@ -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) {

View file

@ -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

View file

@ -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");

View file

@ -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");

View file

@ -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");

View file

@ -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);

View file

@ -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());

View file

@ -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());

View file

@ -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) {

View file

@ -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}");

View file

@ -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);

View file

@ -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");

View file

@ -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());

View file

@ -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));
}

View file

@ -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);
}

View file

@ -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);

View file

@ -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());

View file

@ -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);

View file

@ -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)));

View file

@ -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");

View file

@ -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());

View file

@ -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);
}

View file

@ -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));

View file

@ -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);
}

View file

@ -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.
}

View file

@ -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);
}

View file

@ -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);
}

View file

@ -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);
}

View file

@ -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");

View file

@ -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;

View file

@ -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) {

View file

@ -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) {

View file

@ -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) {