From 2e4d20c84c8e8bd153b81cb3c3408ae0257bf638 Mon Sep 17 00:00:00 2001 From: North Date: Mon, 26 Sep 2011 22:00:20 +0300 Subject: [PATCH] moved "from graveyard" text from target to filter --- .../sets/championsofkamigawa/HanaKami.java | 2 +- .../championsofkamigawa/InameLifeAspect.java | 3 +- .../NezumiGraverobber.java | 5 +- .../championsofkamigawa/TheUnspeakable.java | 2 +- .../sets/darksteel/SwordOfLightAndShadow.java | 4 +- .../ArgivianRestoration.java | 10 +-- .../src/mage/sets/eventide/Scarecrone.java | 2 +- .../mage/sets/guildpact/IzzetChronarch.java | 2 +- .../innistrad/AngelOfFlightAlabaster.java | 3 +- .../mage/sets/innistrad/BackFromTheBrink.java | 6 +- .../mage/sets/innistrad/StitchedDrake.java | 2 +- .../mage/sets/innistrad/UnburialRites.java | 2 +- .../mage/sets/lorwyn/BoggartBirthRite.java | 2 +- .../mage/sets/lorwyn/ScarredVinebreeder.java | 2 +- .../mage/sets/lorwyn/WortBoggartAuntie.java | 2 +- .../src/mage/sets/magic2010/Disentomb.java | 2 +- .../mage/sets/magic2010/NaturesSpiral.java | 2 +- .../mage/sets/magic2010/RiseFromTheGrave.java | 6 +- .../src/mage/sets/magic2011/CallToMind.java | 2 +- .../src/mage/sets/magic2011/SunTitan.java | 2 +- .../src/mage/sets/magic2012/Auramancer.java | 2 +- .../src/mage/sets/magic2012/BuriedRuin.java | 12 +-- .../mage/sets/magic2012/CemeteryReaper.java | 12 ++- .../mage/sets/magic2012/GrimLavamancer.java | 4 +- .../src/mage/sets/magic2012/SuturedGhoul.java | 84 +++++++++---------- .../mage/sets/mirrodin/TrashForTreasure.java | 2 +- .../sets/mirrodinbesieged/FranticSalvage.java | 2 +- .../mirrodinbesieged/GlissaTheTraitor.java | 2 +- .../sets/mirrodinbesieged/GruesomeEncore.java | 2 +- .../sets/mirrodinbesieged/MorbidPlunder.java | 5 +- .../mage/sets/mirrodinbesieged/MyrWelder.java | 8 +- .../mage/sets/morningtide/EverbarkShaman.java | 2 +- .../mage/sets/morningtide/ScarbladeElite.java | 2 +- .../sets/newphyrexia/AuriokSurvivors.java | 2 +- .../newphyrexia/ChancellorOfTheSpires.java | 2 +- .../sets/newphyrexia/ConversionChamber.java | 3 +- .../mage/sets/newphyrexia/EntomberExarch.java | 2 +- .../sets/newphyrexia/PostmortemLunge.java | 2 +- .../sets/newphyrexia/RememberTheFallen.java | 4 +- .../newphyrexia/SheoldredWhisperingOne.java | 3 +- .../sets/newphyrexia/SurgicalExtraction.java | 2 +- .../mage/sets/ravnika/GolgariGuildmage.java | 2 +- .../riseoftheeldrazi/ArtisanOfKozilek.java | 2 +- .../sets/riseoftheeldrazi/CadaverImp.java | 2 +- .../sets/riseoftheeldrazi/MnemonicWall.java | 2 +- .../mage/sets/scarsofmirrodin/CorpseCur.java | 2 +- .../scarsofmirrodin/GethLordOfTheVault.java | 2 +- .../scarsofmirrodin/MoltenTailMasticore.java | 5 +- .../sets/scarsofmirrodin/MyrReservoir.java | 2 +- .../sets/scarsofmirrodin/RazorHippogriff.java | 8 +- .../sets/scarsofmirrodin/SalvageScout.java | 2 +- .../sets/shardsofalara/CruelUltimatum.java | 2 +- .../sets/shardsofalara/SharuumTheHegemon.java | 4 +- .../mage/sets/tenth/DoomedNecromancer.java | 2 +- .../src/mage/sets/tenth/Gravedigger.java | 2 +- .../src/mage/sets/tenth/ReyaDawnbringer.java | 2 +- .../src/mage/sets/tenth/TreasureHunter.java | 12 +-- .../abilities/keyword/SoulshiftAbility.java | 2 +- .../mage/target/common/TargetCardInExile.java | 2 +- .../target/common/TargetCardInGraveyard.java | 4 +- .../TargetCardInOpponentsGraveyard.java | 2 +- .../common/TargetCardInYourGraveyard.java | 4 +- 62 files changed, 114 insertions(+), 175 deletions(-) diff --git a/Mage.Sets/src/mage/sets/championsofkamigawa/HanaKami.java b/Mage.Sets/src/mage/sets/championsofkamigawa/HanaKami.java index 4407001485f..f0b1e7e43ea 100644 --- a/Mage.Sets/src/mage/sets/championsofkamigawa/HanaKami.java +++ b/Mage.Sets/src/mage/sets/championsofkamigawa/HanaKami.java @@ -49,7 +49,7 @@ import mage.target.common.TargetCardInYourGraveyard; */ public class HanaKami extends CardImpl { - 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"); diff --git a/Mage.Sets/src/mage/sets/championsofkamigawa/InameLifeAspect.java b/Mage.Sets/src/mage/sets/championsofkamigawa/InameLifeAspect.java index 6615a71c511..5e84f66821b 100644 --- a/Mage.Sets/src/mage/sets/championsofkamigawa/InameLifeAspect.java +++ b/Mage.Sets/src/mage/sets/championsofkamigawa/InameLifeAspect.java @@ -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 { - 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"); diff --git a/Mage.Sets/src/mage/sets/championsofkamigawa/NezumiGraverobber.java b/Mage.Sets/src/mage/sets/championsofkamigawa/NezumiGraverobber.java index 584be30af18..af4c7a85f82 100644 --- a/Mage.Sets/src/mage/sets/championsofkamigawa/NezumiGraverobber.java +++ b/Mage.Sets/src/mage/sets/championsofkamigawa/NezumiGraverobber.java @@ -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 { 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); } } diff --git a/Mage.Sets/src/mage/sets/championsofkamigawa/TheUnspeakable.java b/Mage.Sets/src/mage/sets/championsofkamigawa/TheUnspeakable.java index fddd21c9c84..bbc741a1a1e 100644 --- a/Mage.Sets/src/mage/sets/championsofkamigawa/TheUnspeakable.java +++ b/Mage.Sets/src/mage/sets/championsofkamigawa/TheUnspeakable.java @@ -47,7 +47,7 @@ import mage.target.common.TargetCardInYourGraveyard; */ public class TheUnspeakable extends CardImpl { - 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"); diff --git a/Mage.Sets/src/mage/sets/darksteel/SwordOfLightAndShadow.java b/Mage.Sets/src/mage/sets/darksteel/SwordOfLightAndShadow.java index 6ab7f2cc9d1..1b7059f9ad1 100644 --- a/Mage.Sets/src/mage/sets/darksteel/SwordOfLightAndShadow.java +++ b/Mage.Sets/src/mage/sets/darksteel/SwordOfLightAndShadow.java @@ -91,12 +91,10 @@ public class SwordOfLightAndShadow extends CardImpl { class SwordOfLightAndShadowAbility extends TriggeredAbilityImpl { - 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) { diff --git a/Mage.Sets/src/mage/sets/elspethvstezzeret/ArgivianRestoration.java b/Mage.Sets/src/mage/sets/elspethvstezzeret/ArgivianRestoration.java index f6ec15c0214..77f5b89ec3e 100644 --- a/Mage.Sets/src/mage/sets/elspethvstezzeret/ArgivianRestoration.java +++ b/Mage.Sets/src/mage/sets/elspethvstezzeret/ArgivianRestoration.java @@ -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 { - 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 { // 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) { diff --git a/Mage.Sets/src/mage/sets/eventide/Scarecrone.java b/Mage.Sets/src/mage/sets/eventide/Scarecrone.java index e3cb2ffb7c7..eab99b60b59 100644 --- a/Mage.Sets/src/mage/sets/eventide/Scarecrone.java +++ b/Mage.Sets/src/mage/sets/eventide/Scarecrone.java @@ -50,7 +50,7 @@ import mage.target.common.TargetCardInYourGraveyard; */ public class Scarecrone extends CardImpl { - 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); diff --git a/Mage.Sets/src/mage/sets/guildpact/IzzetChronarch.java b/Mage.Sets/src/mage/sets/guildpact/IzzetChronarch.java index a948e465e8a..167274d8219 100644 --- a/Mage.Sets/src/mage/sets/guildpact/IzzetChronarch.java +++ b/Mage.Sets/src/mage/sets/guildpact/IzzetChronarch.java @@ -45,7 +45,7 @@ import mage.target.common.TargetCardInYourGraveyard; */ public class IzzetChronarch extends CardImpl { - 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); diff --git a/Mage.Sets/src/mage/sets/innistrad/AngelOfFlightAlabaster.java b/Mage.Sets/src/mage/sets/innistrad/AngelOfFlightAlabaster.java index c746560f247..635011639a4 100644 --- a/Mage.Sets/src/mage/sets/innistrad/AngelOfFlightAlabaster.java +++ b/Mage.Sets/src/mage/sets/innistrad/AngelOfFlightAlabaster.java @@ -15,12 +15,11 @@ import mage.target.common.TargetCardInYourGraveyard; import java.util.UUID; public class AngelOfFlightAlabaster extends CardImpl { - 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) { diff --git a/Mage.Sets/src/mage/sets/innistrad/BackFromTheBrink.java b/Mage.Sets/src/mage/sets/innistrad/BackFromTheBrink.java index 2747b54c9a4..3f80a811bed 100644 --- a/Mage.Sets/src/mage/sets/innistrad/BackFromTheBrink.java +++ b/Mage.Sets/src/mage/sets/innistrad/BackFromTheBrink.java @@ -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 { class BackFromTheBrinkCost extends CostImpl { 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"; } diff --git a/Mage.Sets/src/mage/sets/innistrad/StitchedDrake.java b/Mage.Sets/src/mage/sets/innistrad/StitchedDrake.java index 9f088f3df3f..1eea60cfbac 100644 --- a/Mage.Sets/src/mage/sets/innistrad/StitchedDrake.java +++ b/Mage.Sets/src/mage/sets/innistrad/StitchedDrake.java @@ -56,7 +56,7 @@ public class StitchedDrake extends CardImpl { 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) { diff --git a/Mage.Sets/src/mage/sets/innistrad/UnburialRites.java b/Mage.Sets/src/mage/sets/innistrad/UnburialRites.java index 5e5cd751701..636c0405371 100644 --- a/Mage.Sets/src/mage/sets/innistrad/UnburialRites.java +++ b/Mage.Sets/src/mage/sets/innistrad/UnburialRites.java @@ -52,7 +52,7 @@ public class UnburialRites extends CardImpl { // 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)); diff --git a/Mage.Sets/src/mage/sets/lorwyn/BoggartBirthRite.java b/Mage.Sets/src/mage/sets/lorwyn/BoggartBirthRite.java index 01d63fa54eb..8f6a6936056 100644 --- a/Mage.Sets/src/mage/sets/lorwyn/BoggartBirthRite.java +++ b/Mage.Sets/src/mage/sets/lorwyn/BoggartBirthRite.java @@ -43,7 +43,7 @@ import java.util.UUID; */ public class BoggartBirthRite extends CardImpl { - 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"); diff --git a/Mage.Sets/src/mage/sets/lorwyn/ScarredVinebreeder.java b/Mage.Sets/src/mage/sets/lorwyn/ScarredVinebreeder.java index 1b56df49835..01bcd6c7763 100644 --- a/Mage.Sets/src/mage/sets/lorwyn/ScarredVinebreeder.java +++ b/Mage.Sets/src/mage/sets/lorwyn/ScarredVinebreeder.java @@ -48,7 +48,7 @@ import java.util.UUID; */ public class ScarredVinebreeder extends CardImpl { - 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"); diff --git a/Mage.Sets/src/mage/sets/lorwyn/WortBoggartAuntie.java b/Mage.Sets/src/mage/sets/lorwyn/WortBoggartAuntie.java index 7cf509daba2..dac17f20814 100644 --- a/Mage.Sets/src/mage/sets/lorwyn/WortBoggartAuntie.java +++ b/Mage.Sets/src/mage/sets/lorwyn/WortBoggartAuntie.java @@ -48,7 +48,7 @@ import java.util.UUID; */ public class WortBoggartAuntie extends CardImpl { - 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"); diff --git a/Mage.Sets/src/mage/sets/magic2010/Disentomb.java b/Mage.Sets/src/mage/sets/magic2010/Disentomb.java index 109007fb0f6..55741fa4e8c 100644 --- a/Mage.Sets/src/mage/sets/magic2010/Disentomb.java +++ b/Mage.Sets/src/mage/sets/magic2010/Disentomb.java @@ -42,7 +42,7 @@ import mage.target.common.TargetCardInYourGraveyard; */ public class Disentomb extends CardImpl { - 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}"); diff --git a/Mage.Sets/src/mage/sets/magic2010/NaturesSpiral.java b/Mage.Sets/src/mage/sets/magic2010/NaturesSpiral.java index d723583308d..75200a6e88f 100644 --- a/Mage.Sets/src/mage/sets/magic2010/NaturesSpiral.java +++ b/Mage.Sets/src/mage/sets/magic2010/NaturesSpiral.java @@ -43,7 +43,7 @@ import mage.target.common.TargetCardInYourGraveyard; */ public class NaturesSpiral extends CardImpl { - 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); diff --git a/Mage.Sets/src/mage/sets/magic2010/RiseFromTheGrave.java b/Mage.Sets/src/mage/sets/magic2010/RiseFromTheGrave.java index 5523f82c5a7..33e3e8a6bf7 100644 --- a/Mage.Sets/src/mage/sets/magic2010/RiseFromTheGrave.java +++ b/Mage.Sets/src/mage/sets/magic2010/RiseFromTheGrave.java @@ -50,13 +50,11 @@ import mage.target.common.TargetCardInGraveyard; */ public class RiseFromTheGrave extends CardImpl { - 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 { - 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); diff --git a/Mage.Sets/src/mage/sets/magic2011/SunTitan.java b/Mage.Sets/src/mage/sets/magic2011/SunTitan.java index 2a928122787..c09ea603025 100644 --- a/Mage.Sets/src/mage/sets/magic2011/SunTitan.java +++ b/Mage.Sets/src/mage/sets/magic2011/SunTitan.java @@ -77,7 +77,7 @@ public class SunTitan extends CardImpl { class SunTitanAbility extends TriggeredAbilityImpl { - 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); diff --git a/Mage.Sets/src/mage/sets/magic2012/Auramancer.java b/Mage.Sets/src/mage/sets/magic2012/Auramancer.java index 241c166416a..2cf7782e512 100644 --- a/Mage.Sets/src/mage/sets/magic2012/Auramancer.java +++ b/Mage.Sets/src/mage/sets/magic2012/Auramancer.java @@ -46,7 +46,7 @@ import mage.target.common.TargetCardInYourGraveyard; */ public class Auramancer extends CardImpl { - 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); diff --git a/Mage.Sets/src/mage/sets/magic2012/BuriedRuin.java b/Mage.Sets/src/mage/sets/magic2012/BuriedRuin.java index dac77d41b21..58b5ae004e6 100644 --- a/Mage.Sets/src/mage/sets/magic2012/BuriedRuin.java +++ b/Mage.Sets/src/mage/sets/magic2012/BuriedRuin.java @@ -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 { - 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 { 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); } diff --git a/Mage.Sets/src/mage/sets/magic2012/CemeteryReaper.java b/Mage.Sets/src/mage/sets/magic2012/CemeteryReaper.java index 53e7b6f461f..78e8935aab7 100644 --- a/Mage.Sets/src/mage/sets/magic2012/CemeteryReaper.java +++ b/Mage.Sets/src/mage/sets/magic2012/CemeteryReaper.java @@ -54,12 +54,10 @@ import mage.target.common.TargetCardInGraveyard; */ public class CemeteryReaper extends CardImpl { - 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 { 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); } diff --git a/Mage.Sets/src/mage/sets/magic2012/GrimLavamancer.java b/Mage.Sets/src/mage/sets/magic2012/GrimLavamancer.java index c6bd5076745..8b114ae9fb6 100644 --- a/Mage.Sets/src/mage/sets/magic2012/GrimLavamancer.java +++ b/Mage.Sets/src/mage/sets/magic2012/GrimLavamancer.java @@ -46,7 +46,7 @@ import mage.target.common.TargetCreatureOrPlayer; /** * - * @author anonymous + * @author Loki */ public class GrimLavamancer extends CardImpl { @@ -62,7 +62,7 @@ public class GrimLavamancer extends CardImpl { 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); } diff --git a/Mage.Sets/src/mage/sets/magic2012/SuturedGhoul.java b/Mage.Sets/src/mage/sets/magic2012/SuturedGhoul.java index c424877f017..e6d7e61d4dc 100644 --- a/Mage.Sets/src/mage/sets/magic2012/SuturedGhoul.java +++ b/Mage.Sets/src/mage/sets/magic2012/SuturedGhoul.java @@ -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 { class SuturedGhoulEffect extends OneShotEffect { - 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 { diff --git a/Mage.Sets/src/mage/sets/mirrodin/TrashForTreasure.java b/Mage.Sets/src/mage/sets/mirrodin/TrashForTreasure.java index 500755f489f..c702edf82c7 100644 --- a/Mage.Sets/src/mage/sets/mirrodin/TrashForTreasure.java +++ b/Mage.Sets/src/mage/sets/mirrodin/TrashForTreasure.java @@ -45,7 +45,7 @@ import mage.target.common.TargetControlledPermanent; public class TrashForTreasure extends CardImpl { 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); diff --git a/Mage.Sets/src/mage/sets/mirrodinbesieged/FranticSalvage.java b/Mage.Sets/src/mage/sets/mirrodinbesieged/FranticSalvage.java index 1cd878e5728..d1a91aac055 100644 --- a/Mage.Sets/src/mage/sets/mirrodinbesieged/FranticSalvage.java +++ b/Mage.Sets/src/mage/sets/mirrodinbesieged/FranticSalvage.java @@ -51,7 +51,7 @@ public class FranticSalvage extends CardImpl { 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) { diff --git a/Mage.Sets/src/mage/sets/mirrodinbesieged/GlissaTheTraitor.java b/Mage.Sets/src/mage/sets/mirrodinbesieged/GlissaTheTraitor.java index 3fe721441ff..1951886cd35 100644 --- a/Mage.Sets/src/mage/sets/mirrodinbesieged/GlissaTheTraitor.java +++ b/Mage.Sets/src/mage/sets/mirrodinbesieged/GlissaTheTraitor.java @@ -79,7 +79,7 @@ public class GlissaTheTraitor extends CardImpl { } class GlissaTheTraitorTriggeredAbility extends TriggeredAbilityImpl { - 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); diff --git a/Mage.Sets/src/mage/sets/mirrodinbesieged/GruesomeEncore.java b/Mage.Sets/src/mage/sets/mirrodinbesieged/GruesomeEncore.java index c6ab769ecd6..bbec3046aaf 100644 --- a/Mage.Sets/src/mage/sets/mirrodinbesieged/GruesomeEncore.java +++ b/Mage.Sets/src/mage/sets/mirrodinbesieged/GruesomeEncore.java @@ -56,7 +56,7 @@ import mage.target.targetpointer.FixedTarget; */ public class GruesomeEncore extends CardImpl { - 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}"); diff --git a/Mage.Sets/src/mage/sets/mirrodinbesieged/MorbidPlunder.java b/Mage.Sets/src/mage/sets/mirrodinbesieged/MorbidPlunder.java index 62bd4bb74d1..47106d14fb1 100644 --- a/Mage.Sets/src/mage/sets/mirrodinbesieged/MorbidPlunder.java +++ b/Mage.Sets/src/mage/sets/mirrodinbesieged/MorbidPlunder.java @@ -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 { - 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 { 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) { diff --git a/Mage.Sets/src/mage/sets/mirrodinbesieged/MyrWelder.java b/Mage.Sets/src/mage/sets/mirrodinbesieged/MyrWelder.java index 5dbe1fd10f1..e588175f953 100644 --- a/Mage.Sets/src/mage/sets/mirrodinbesieged/MyrWelder.java +++ b/Mage.Sets/src/mage/sets/mirrodinbesieged/MyrWelder.java @@ -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 { - 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 { // 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 diff --git a/Mage.Sets/src/mage/sets/morningtide/EverbarkShaman.java b/Mage.Sets/src/mage/sets/morningtide/EverbarkShaman.java index a98671f5cfe..2a73a130c43 100644 --- a/Mage.Sets/src/mage/sets/morningtide/EverbarkShaman.java +++ b/Mage.Sets/src/mage/sets/morningtide/EverbarkShaman.java @@ -51,7 +51,7 @@ import mage.target.common.TargetCardInYourGraveyard; public class EverbarkShaman extends CardImpl { 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"); diff --git a/Mage.Sets/src/mage/sets/morningtide/ScarbladeElite.java b/Mage.Sets/src/mage/sets/morningtide/ScarbladeElite.java index 025b2c4420b..42c2acbb738 100644 --- a/Mage.Sets/src/mage/sets/morningtide/ScarbladeElite.java +++ b/Mage.Sets/src/mage/sets/morningtide/ScarbladeElite.java @@ -50,7 +50,7 @@ import mage.target.common.TargetCreaturePermanent; */ public class ScarbladeElite extends CardImpl { - 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"); diff --git a/Mage.Sets/src/mage/sets/newphyrexia/AuriokSurvivors.java b/Mage.Sets/src/mage/sets/newphyrexia/AuriokSurvivors.java index ca92240fe54..c356d65cf7e 100644 --- a/Mage.Sets/src/mage/sets/newphyrexia/AuriokSurvivors.java +++ b/Mage.Sets/src/mage/sets/newphyrexia/AuriokSurvivors.java @@ -50,7 +50,7 @@ import mage.target.common.TargetCardInYourGraveyard; * @author Loki */ public class AuriokSurvivors extends CardImpl { - private static final FilterCard filter = new FilterCard(); + private static final FilterCard filter = new FilterCard("Equipment card from your graveyard"); static { filter.getSubtype().add("Equipment"); diff --git a/Mage.Sets/src/mage/sets/newphyrexia/ChancellorOfTheSpires.java b/Mage.Sets/src/mage/sets/newphyrexia/ChancellorOfTheSpires.java index 8b40de340d4..fdf82f05bd9 100644 --- a/Mage.Sets/src/mage/sets/newphyrexia/ChancellorOfTheSpires.java +++ b/Mage.Sets/src/mage/sets/newphyrexia/ChancellorOfTheSpires.java @@ -57,7 +57,7 @@ public class ChancellorOfTheSpires extends CardImpl { 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); diff --git a/Mage.Sets/src/mage/sets/newphyrexia/ConversionChamber.java b/Mage.Sets/src/mage/sets/newphyrexia/ConversionChamber.java index 2c965b65da6..73c82f5a837 100644 --- a/Mage.Sets/src/mage/sets/newphyrexia/ConversionChamber.java +++ b/Mage.Sets/src/mage/sets/newphyrexia/ConversionChamber.java @@ -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 { 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()); diff --git a/Mage.Sets/src/mage/sets/newphyrexia/EntomberExarch.java b/Mage.Sets/src/mage/sets/newphyrexia/EntomberExarch.java index c2a40fcda77..5fdfa045cf4 100644 --- a/Mage.Sets/src/mage/sets/newphyrexia/EntomberExarch.java +++ b/Mage.Sets/src/mage/sets/newphyrexia/EntomberExarch.java @@ -65,7 +65,7 @@ public class EntomberExarch extends CardImpl { // 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()); diff --git a/Mage.Sets/src/mage/sets/newphyrexia/PostmortemLunge.java b/Mage.Sets/src/mage/sets/newphyrexia/PostmortemLunge.java index ed9d1642fae..912218f994d 100644 --- a/Mage.Sets/src/mage/sets/newphyrexia/PostmortemLunge.java +++ b/Mage.Sets/src/mage/sets/newphyrexia/PostmortemLunge.java @@ -62,7 +62,7 @@ public class PostmortemLunge extends CardImpl { 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) { diff --git a/Mage.Sets/src/mage/sets/newphyrexia/RememberTheFallen.java b/Mage.Sets/src/mage/sets/newphyrexia/RememberTheFallen.java index 3a955e3052b..5092aac561d 100644 --- a/Mage.Sets/src/mage/sets/newphyrexia/RememberTheFallen.java +++ b/Mage.Sets/src/mage/sets/newphyrexia/RememberTheFallen.java @@ -51,8 +51,8 @@ import mage.target.common.TargetCardInYourGraveyard; */ public class RememberTheFallen extends CardImpl { - 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}"); diff --git a/Mage.Sets/src/mage/sets/newphyrexia/SheoldredWhisperingOne.java b/Mage.Sets/src/mage/sets/newphyrexia/SheoldredWhisperingOne.java index 740d6b8eaca..0e7ad816940 100644 --- a/Mage.Sets/src/mage/sets/newphyrexia/SheoldredWhisperingOne.java +++ b/Mage.Sets/src/mage/sets/newphyrexia/SheoldredWhisperingOne.java @@ -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 { 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); diff --git a/Mage.Sets/src/mage/sets/newphyrexia/SurgicalExtraction.java b/Mage.Sets/src/mage/sets/newphyrexia/SurgicalExtraction.java index 426affbf272..5ac88ae1bfa 100644 --- a/Mage.Sets/src/mage/sets/newphyrexia/SurgicalExtraction.java +++ b/Mage.Sets/src/mage/sets/newphyrexia/SurgicalExtraction.java @@ -52,7 +52,7 @@ import mage.target.common.TargetCardInLibrary; */ public class SurgicalExtraction extends CardImpl { - 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"); diff --git a/Mage.Sets/src/mage/sets/ravnika/GolgariGuildmage.java b/Mage.Sets/src/mage/sets/ravnika/GolgariGuildmage.java index bbd5e48ae98..872988a5c28 100644 --- a/Mage.Sets/src/mage/sets/ravnika/GolgariGuildmage.java +++ b/Mage.Sets/src/mage/sets/ravnika/GolgariGuildmage.java @@ -64,7 +64,7 @@ public class GolgariGuildmage extends CardImpl { 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()); diff --git a/Mage.Sets/src/mage/sets/riseoftheeldrazi/ArtisanOfKozilek.java b/Mage.Sets/src/mage/sets/riseoftheeldrazi/ArtisanOfKozilek.java index b64f85c86a2..6eca399c310 100644 --- a/Mage.Sets/src/mage/sets/riseoftheeldrazi/ArtisanOfKozilek.java +++ b/Mage.Sets/src/mage/sets/riseoftheeldrazi/ArtisanOfKozilek.java @@ -53,7 +53,7 @@ public class ArtisanOfKozilek extends CardImpl { 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)); } diff --git a/Mage.Sets/src/mage/sets/riseoftheeldrazi/CadaverImp.java b/Mage.Sets/src/mage/sets/riseoftheeldrazi/CadaverImp.java index 6c366a25c78..0507f848c6c 100644 --- a/Mage.Sets/src/mage/sets/riseoftheeldrazi/CadaverImp.java +++ b/Mage.Sets/src/mage/sets/riseoftheeldrazi/CadaverImp.java @@ -56,7 +56,7 @@ public class CadaverImp extends CardImpl { 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); } diff --git a/Mage.Sets/src/mage/sets/riseoftheeldrazi/MnemonicWall.java b/Mage.Sets/src/mage/sets/riseoftheeldrazi/MnemonicWall.java index ea75c612c75..dea9ef5127e 100644 --- a/Mage.Sets/src/mage/sets/riseoftheeldrazi/MnemonicWall.java +++ b/Mage.Sets/src/mage/sets/riseoftheeldrazi/MnemonicWall.java @@ -46,7 +46,7 @@ import mage.target.common.TargetCardInYourGraveyard; */ public class MnemonicWall extends CardImpl { - 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); diff --git a/Mage.Sets/src/mage/sets/scarsofmirrodin/CorpseCur.java b/Mage.Sets/src/mage/sets/scarsofmirrodin/CorpseCur.java index c0f70be442e..c14bdcfa7c1 100644 --- a/Mage.Sets/src/mage/sets/scarsofmirrodin/CorpseCur.java +++ b/Mage.Sets/src/mage/sets/scarsofmirrodin/CorpseCur.java @@ -46,7 +46,7 @@ import mage.target.common.TargetCardInYourGraveyard; */ public class CorpseCur extends CardImpl { - 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()); diff --git a/Mage.Sets/src/mage/sets/scarsofmirrodin/GethLordOfTheVault.java b/Mage.Sets/src/mage/sets/scarsofmirrodin/GethLordOfTheVault.java index e89a3791708..273f70078d5 100644 --- a/Mage.Sets/src/mage/sets/scarsofmirrodin/GethLordOfTheVault.java +++ b/Mage.Sets/src/mage/sets/scarsofmirrodin/GethLordOfTheVault.java @@ -58,7 +58,7 @@ import mage.target.common.TargetCardInOpponentsGraveyard; */ public class GethLordOfTheVault extends CardImpl { - 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); diff --git a/Mage.Sets/src/mage/sets/scarsofmirrodin/MoltenTailMasticore.java b/Mage.Sets/src/mage/sets/scarsofmirrodin/MoltenTailMasticore.java index b36fd549c94..96ae94b2abe 100644 --- a/Mage.Sets/src/mage/sets/scarsofmirrodin/MoltenTailMasticore.java +++ b/Mage.Sets/src/mage/sets/scarsofmirrodin/MoltenTailMasticore.java @@ -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 { 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))); diff --git a/Mage.Sets/src/mage/sets/scarsofmirrodin/MyrReservoir.java b/Mage.Sets/src/mage/sets/scarsofmirrodin/MyrReservoir.java index 68db6c0c858..1e8698a5f61 100644 --- a/Mage.Sets/src/mage/sets/scarsofmirrodin/MyrReservoir.java +++ b/Mage.Sets/src/mage/sets/scarsofmirrodin/MyrReservoir.java @@ -53,7 +53,7 @@ import java.util.UUID; */ public class MyrReservoir extends CardImpl { - private static final FilterCard myrCardFilter = new FilterCard(); + private static final FilterCard myrCardFilter = new FilterCard("Myr card from your graveyard"); static { myrCardFilter.getSubtype().add("Myr"); diff --git a/Mage.Sets/src/mage/sets/scarsofmirrodin/RazorHippogriff.java b/Mage.Sets/src/mage/sets/scarsofmirrodin/RazorHippogriff.java index db2110ed03d..f9070d3c853 100644 --- a/Mage.Sets/src/mage/sets/scarsofmirrodin/RazorHippogriff.java +++ b/Mage.Sets/src/mage/sets/scarsofmirrodin/RazorHippogriff.java @@ -58,18 +58,16 @@ public class RazorHippogriff extends CardImpl { 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()); diff --git a/Mage.Sets/src/mage/sets/scarsofmirrodin/SalvageScout.java b/Mage.Sets/src/mage/sets/scarsofmirrodin/SalvageScout.java index 4c663d6fc90..81bd60b8b7b 100644 --- a/Mage.Sets/src/mage/sets/scarsofmirrodin/SalvageScout.java +++ b/Mage.Sets/src/mage/sets/scarsofmirrodin/SalvageScout.java @@ -59,7 +59,7 @@ public class SalvageScout extends CardImpl { 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); } diff --git a/Mage.Sets/src/mage/sets/shardsofalara/CruelUltimatum.java b/Mage.Sets/src/mage/sets/shardsofalara/CruelUltimatum.java index 792d8d2425f..d5e88c024cd 100644 --- a/Mage.Sets/src/mage/sets/shardsofalara/CruelUltimatum.java +++ b/Mage.Sets/src/mage/sets/shardsofalara/CruelUltimatum.java @@ -67,7 +67,7 @@ public class CruelUltimatum extends CardImpl { 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)); diff --git a/Mage.Sets/src/mage/sets/shardsofalara/SharuumTheHegemon.java b/Mage.Sets/src/mage/sets/shardsofalara/SharuumTheHegemon.java index 84a8c421030..3fca6a79450 100644 --- a/Mage.Sets/src/mage/sets/shardsofalara/SharuumTheHegemon.java +++ b/Mage.Sets/src/mage/sets/shardsofalara/SharuumTheHegemon.java @@ -45,8 +45,6 @@ import mage.target.common.TargetCardInYourGraveyard; */ public class SharuumTheHegemon extends CardImpl { - 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 { 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); } diff --git a/Mage.Sets/src/mage/sets/tenth/DoomedNecromancer.java b/Mage.Sets/src/mage/sets/tenth/DoomedNecromancer.java index 6a9ebc2af78..b89286456d0 100644 --- a/Mage.Sets/src/mage/sets/tenth/DoomedNecromancer.java +++ b/Mage.Sets/src/mage/sets/tenth/DoomedNecromancer.java @@ -61,7 +61,7 @@ public class DoomedNecromancer extends CardImpl { 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. } diff --git a/Mage.Sets/src/mage/sets/tenth/Gravedigger.java b/Mage.Sets/src/mage/sets/tenth/Gravedigger.java index e623d79b9f8..048f370693e 100644 --- a/Mage.Sets/src/mage/sets/tenth/Gravedigger.java +++ b/Mage.Sets/src/mage/sets/tenth/Gravedigger.java @@ -54,7 +54,7 @@ public class Gravedigger extends CardImpl { 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); } diff --git a/Mage.Sets/src/mage/sets/tenth/ReyaDawnbringer.java b/Mage.Sets/src/mage/sets/tenth/ReyaDawnbringer.java index 876143f8004..49a785e72c4 100644 --- a/Mage.Sets/src/mage/sets/tenth/ReyaDawnbringer.java +++ b/Mage.Sets/src/mage/sets/tenth/ReyaDawnbringer.java @@ -57,7 +57,7 @@ public class ReyaDawnbringer extends CardImpl { 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); } diff --git a/Mage.Sets/src/mage/sets/tenth/TreasureHunter.java b/Mage.Sets/src/mage/sets/tenth/TreasureHunter.java index 980a14b5a93..fd631f59db6 100644 --- a/Mage.Sets/src/mage/sets/tenth/TreasureHunter.java +++ b/Mage.Sets/src/mage/sets/tenth/TreasureHunter.java @@ -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 { - 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 { 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); } diff --git a/Mage/src/mage/abilities/keyword/SoulshiftAbility.java b/Mage/src/mage/abilities/keyword/SoulshiftAbility.java index 4ef7b51a0e3..b4a7569ec9b 100644 --- a/Mage/src/mage/abilities/keyword/SoulshiftAbility.java +++ b/Mage/src/mage/abilities/keyword/SoulshiftAbility.java @@ -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"); diff --git a/Mage/src/mage/target/common/TargetCardInExile.java b/Mage/src/mage/target/common/TargetCardInExile.java index e7bea3c5aaf..e1fa9f04d60 100644 --- a/Mage/src/mage/target/common/TargetCardInExile.java +++ b/Mage/src/mage/target/common/TargetCardInExile.java @@ -40,7 +40,7 @@ import mage.target.TargetCard; * * @author BetaSteward_at_googlemail.com */ -public class TargetCardInExile extends TargetCard { +public class TargetCardInExile extends TargetCard { private UUID zoneId; diff --git a/Mage/src/mage/target/common/TargetCardInGraveyard.java b/Mage/src/mage/target/common/TargetCardInGraveyard.java index 10c89df01cb..a72bbcfc2b9 100644 --- a/Mage/src/mage/target/common/TargetCardInGraveyard.java +++ b/Mage/src/mage/target/common/TargetCardInGraveyard.java @@ -43,7 +43,7 @@ import mage.target.TargetCard; public class TargetCardInGraveyard extends TargetCard { 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 { 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) { diff --git a/Mage/src/mage/target/common/TargetCardInOpponentsGraveyard.java b/Mage/src/mage/target/common/TargetCardInOpponentsGraveyard.java index ada238d4973..85d1fe2446d 100644 --- a/Mage/src/mage/target/common/TargetCardInOpponentsGraveyard.java +++ b/Mage/src/mage/target/common/TargetCardInOpponentsGraveyard.java @@ -18,7 +18,7 @@ public class TargetCardInOpponentsGraveyard extends TargetCard { 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