From 243fd32fa303b440566148ffc9e9da26e1d93ba4 Mon Sep 17 00:00:00 2001 From: BetaSteward Date: Thu, 8 Mar 2012 22:49:23 -0500 Subject: [PATCH] updated SpellCastTriggeredAbility to use FilterSpell --- .../sets/betrayersofkamigawa/BakuAltar.java | 4 +++- .../KamiOfTatteredShoji.java | 4 +++- .../OyobiWhoSplitTheHeavens.java | 4 +++- .../sets/betrayersofkamigawa/ScaledHulk.java | 4 +++- .../sets/championsofkamigawa/Earthshaker.java | 8 +++---- .../GuardianOfSolitude.java | 5 +++- .../HikariTwilightGuardian.java | 5 +++- .../sets/championsofkamigawa/HorizonSeed.java | 5 +++- .../championsofkamigawa/InnocenceKami.java | 5 +++- .../sets/championsofkamigawa/JadeIdol.java | 11 +++------ .../championsofkamigawa/KamiOfFiresRoar.java | 5 +++- .../championsofkamigawa/KamiOfTheHunt.java | 4 +++- .../KamiOfTheWaningMoon.java | 5 +++- .../KodamaOfTheSouthTree.java | 5 +++- .../championsofkamigawa/OrbweaverKumo.java | 5 +++- .../sets/championsofkamigawa/OreGorger.java | 5 +++- .../championsofkamigawa/SireOfTheStorm.java | 5 +++- .../sets/championsofkamigawa/Soilshaper.java | 5 +++- .../sets/championsofkamigawa/SoulOfMagma.java | 5 +++- .../championsofkamigawa/TellerOfTales.java | 6 +++-- .../sets/championsofkamigawa/ThiefOfHope.java | 5 +++- .../sets/conflux/SigilOfTheEmptyThrone.java | 4 ++-- .../src/mage/sets/eventide/BalefireLiege.java | 7 +++--- .../mage/sets/eventide/BallynockTrapper.java | 5 ++-- .../sets/eventide/BelligerentHatchling.java | 7 +++--- .../mage/sets/eventide/CinderPyromancer.java | 5 ++-- .../mage/sets/eventide/DeathbringerLiege.java | 9 +++---- .../mage/sets/eventide/FableOfWolfAndOwl.java | 7 +++--- .../mage/sets/eventide/MerrowLevitator.java | 5 ++-- .../mage/sets/eventide/NoxiousHatchling.java | 6 ++--- .../mage/sets/eventide/SturdyHatchling.java | 7 +++--- .../sets/eventide/VoraciousHatchling.java | 7 +++--- .../src/mage/sets/guildpact/Gelectrode.java | 4 ++-- .../mage/sets/guildpact/TiborAndLumia.java | 14 ++++------- .../mage/sets/guildpact/WeeDragonauts.java | 4 ++-- .../sets/innistrad/CharmbreakerDevils.java | 3 ++- .../mage/sets/lorwyn/ElvishHandservant.java | 7 +++--- .../mage/sets/lorwyn/LysAlanaHuntmaster.java | 7 +++--- .../src/mage/sets/lorwyn/ThorntoothWitch.java | 7 +++--- .../mage/sets/magic2010/MesaEnchantress.java | 4 ++-- .../sets/magic2012/BloodlordOfVaasgoth.java | 17 +++++++------ .../mage/sets/mirrodinbesieged/MirranSpy.java | 4 ++-- .../mage/sets/morningtide/InspiredSprite.java | 5 ++-- .../sets/morningtide/LysAlanaBowmaster.java | 4 ++-- .../newphyrexia/ShrineOfBoundlessGrowth.java | 4 ++-- .../sets/newphyrexia/ShrineOfBurningRage.java | 5 ++-- .../newphyrexia/ShrineOfLimitlessPower.java | 4 ++-- .../newphyrexia/ShrineOfLoyalLegions.java | 4 ++-- .../newphyrexia/ShrineOfPiercingVision.java | 3 ++- .../src/mage/sets/ravnika/HalcyonGlaze.java | 13 +++++++--- .../src/mage/sets/ravnika/PrimordialSage.java | 11 ++++++++- .../mage/sets/riseoftheeldrazi/KilnFiend.java | 4 ++-- .../riseoftheeldrazi/KorSpiritdancer.java | 4 ++-- .../sets/riseoftheeldrazi/SphinxBoneWand.java | 4 ++-- .../sets/saviorsofkamigawa/BriarknitKami.java | 4 +++- .../saviorsofkamigawa/FiddleheadKami.java | 4 +++- .../mage/sets/saviorsofkamigawa/HaruOnna.java | 4 +++- .../sets/saviorsofkamigawa/KemuriOnna.java | 4 +++- .../mage/sets/saviorsofkamigawa/KiriOnna.java | 4 +++- .../sets/saviorsofkamigawa/NikkoOnna.java | 7 +++--- .../RekiTheHistoryOfKamigawa.java | 4 ++-- .../mage/sets/saviorsofkamigawa/YukiOnna.java | 7 +++--- .../mage/sets/scarsofmirrodin/Embersmith.java | 10 +++++--- .../sets/scarsofmirrodin/GolemFoundry.java | 11 ++++++--- .../scarsofmirrodin/HandOfThePraetors.java | 6 ++++- .../mage/sets/scarsofmirrodin/Lifesmith.java | 10 +++++--- .../mage/sets/scarsofmirrodin/Myrsmith.java | 10 +++++--- .../mage/sets/scarsofmirrodin/Painsmith.java | 10 +++++--- .../sets/scarsofmirrodin/Riddlesmith.java | 10 +++++--- .../mage/sets/shadowmoor/EmberstrikeDuo.java | 6 ++--- .../mage/sets/shadowmoor/GravelgillDuo.java | 6 ++--- .../src/mage/sets/shadowmoor/SafeholdDuo.java | 6 ++--- .../mage/sets/shadowmoor/TattermungeDuo.java | 6 ++--- .../mage/sets/shadowmoor/ThistledownDuo.java | 6 ++--- .../src/mage/sets/tenth/QuirionDryad.java | 4 ++-- .../sets/urzassaga/ArgothianEnchantress.java | 4 ++-- .../sets/zendikar/QuestForTheHolyRelic.java | 10 +++++++- .../common/SpellCastTriggeredAbility.java | 9 +++---- Mage/src/mage/filter/FilterSpell.java | 24 +++++++++++++++++++ .../common/FilterSpiritOrArcaneCard.java | 4 ++-- 80 files changed, 309 insertions(+), 196 deletions(-) diff --git a/Mage.Sets/src/mage/sets/betrayersofkamigawa/BakuAltar.java b/Mage.Sets/src/mage/sets/betrayersofkamigawa/BakuAltar.java index c7ed79343c5..8b37134ac42 100644 --- a/Mage.Sets/src/mage/sets/betrayersofkamigawa/BakuAltar.java +++ b/Mage.Sets/src/mage/sets/betrayersofkamigawa/BakuAltar.java @@ -51,11 +51,13 @@ import mage.game.permanent.token.SpiritToken; */ public class BakuAltar extends CardImpl { + private final static FilterSpiritOrArcaneCard filter = new FilterSpiritOrArcaneCard(); + public BakuAltar(UUID ownerId) { super(ownerId, 152, "Baku Altar", Rarity.RARE, new CardType[]{CardType.ARTIFACT}, "{2}"); this.expansionSetCode = "BOK"; // Whenever you cast a Spirit or Arcane spell, you may put a ki counter on Baku Altar. - this.addAbility(new SpellCastTriggeredAbility(new AddCountersSourceEffect(CounterType.KI.createInstance(1)), new FilterSpiritOrArcaneCard(), true)); + this.addAbility(new SpellCastTriggeredAbility(new AddCountersSourceEffect(CounterType.KI.createInstance(1)), filter, true)); // {2}, {tap}, Remove a ki counter from Baku Altar: Put a 1/1 colorless Spirit creature token onto the battlefield. Ability ability = new SimpleActivatedAbility(Constants.Zone.BATTLEFIELD, new CreateTokenEffect(new SpiritToken(), 1), new GenericManaCost(2)); ability.addCost(new TapSourceCost()); diff --git a/Mage.Sets/src/mage/sets/betrayersofkamigawa/KamiOfTatteredShoji.java b/Mage.Sets/src/mage/sets/betrayersofkamigawa/KamiOfTatteredShoji.java index fc53736a933..090bcd859ed 100644 --- a/Mage.Sets/src/mage/sets/betrayersofkamigawa/KamiOfTatteredShoji.java +++ b/Mage.Sets/src/mage/sets/betrayersofkamigawa/KamiOfTatteredShoji.java @@ -45,6 +45,8 @@ import mage.filter.common.FilterSpiritOrArcaneCard; */ public class KamiOfTatteredShoji extends CardImpl { + private final static FilterSpiritOrArcaneCard filter = new FilterSpiritOrArcaneCard(); + public KamiOfTatteredShoji(UUID ownerId) { super(ownerId, 11, "Kami of Tattered Shoji", Rarity.COMMON, new CardType[]{CardType.CREATURE}, "{4}{W}"); this.expansionSetCode = "BOK"; @@ -53,7 +55,7 @@ public class KamiOfTatteredShoji extends CardImpl { this.power = new MageInt(2); this.toughness = new MageInt(5); // Whenever you cast a Spirit or Arcane spell, Kami of Tattered Shoji gains flying until end of turn. - this.addAbility(new SpellCastTriggeredAbility(new GainAbilitySourceEffect(FlyingAbility.getInstance(), Constants.Duration.EndOfTurn), new FilterSpiritOrArcaneCard(), false)); + this.addAbility(new SpellCastTriggeredAbility(new GainAbilitySourceEffect(FlyingAbility.getInstance(), Constants.Duration.EndOfTurn), filter, false)); } public KamiOfTatteredShoji(final KamiOfTatteredShoji card) { diff --git a/Mage.Sets/src/mage/sets/betrayersofkamigawa/OyobiWhoSplitTheHeavens.java b/Mage.Sets/src/mage/sets/betrayersofkamigawa/OyobiWhoSplitTheHeavens.java index 40e8090ee96..33b8cdf076f 100644 --- a/Mage.Sets/src/mage/sets/betrayersofkamigawa/OyobiWhoSplitTheHeavens.java +++ b/Mage.Sets/src/mage/sets/betrayersofkamigawa/OyobiWhoSplitTheHeavens.java @@ -45,6 +45,8 @@ import mage.game.permanent.token.Token; */ public class OyobiWhoSplitTheHeavens extends CardImpl { + private final static FilterSpiritOrArcaneCard filter = new FilterSpiritOrArcaneCard(); + public OyobiWhoSplitTheHeavens(UUID ownerId) { super(ownerId, 18, "Oyobi, Who Split the Heavens", Rarity.RARE, new CardType[]{CardType.CREATURE}, "{6}{W}"); this.expansionSetCode = "BOK"; @@ -55,7 +57,7 @@ public class OyobiWhoSplitTheHeavens extends CardImpl { this.toughness = new MageInt(6); this.addAbility(FlyingAbility.getInstance()); // Whenever you cast a Spirit or Arcane spell, put a 3/3 white Spirit creature token with flying onto the battlefield. - this.addAbility(new SpellCastTriggeredAbility(new CreateTokenEffect(new AnotherSpiritToken()), new FilterSpiritOrArcaneCard(), false)); + this.addAbility(new SpellCastTriggeredAbility(new CreateTokenEffect(new AnotherSpiritToken()), filter, false)); } public OyobiWhoSplitTheHeavens(final OyobiWhoSplitTheHeavens card) { diff --git a/Mage.Sets/src/mage/sets/betrayersofkamigawa/ScaledHulk.java b/Mage.Sets/src/mage/sets/betrayersofkamigawa/ScaledHulk.java index 3a5860df403..95e3cd58f4f 100644 --- a/Mage.Sets/src/mage/sets/betrayersofkamigawa/ScaledHulk.java +++ b/Mage.Sets/src/mage/sets/betrayersofkamigawa/ScaledHulk.java @@ -44,6 +44,8 @@ import mage.filter.common.FilterSpiritOrArcaneCard; */ public class ScaledHulk extends CardImpl { + private final static FilterSpiritOrArcaneCard filter = new FilterSpiritOrArcaneCard(); + public ScaledHulk(UUID ownerId) { super(ownerId, 143, "Scaled Hulk", Rarity.COMMON, new CardType[]{CardType.CREATURE}, "{5}{G}"); this.expansionSetCode = "BOK"; @@ -52,7 +54,7 @@ public class ScaledHulk extends CardImpl { this.power = new MageInt(4); this.toughness = new MageInt(4); // Whenever you cast a Spirit or Arcane spell, Scaled Hulk gets +2/+2 until end of turn. - this.addAbility(new SpellCastTriggeredAbility(new BoostSourceEffect(2, 2, Constants.Duration.EndOfTurn), new FilterSpiritOrArcaneCard(), false)); + this.addAbility(new SpellCastTriggeredAbility(new BoostSourceEffect(2, 2, Constants.Duration.EndOfTurn), filter, false)); } public ScaledHulk(final ScaledHulk card) { diff --git a/Mage.Sets/src/mage/sets/championsofkamigawa/Earthshaker.java b/Mage.Sets/src/mage/sets/championsofkamigawa/Earthshaker.java index 440bfd1b708..65ff188d9e4 100644 --- a/Mage.Sets/src/mage/sets/championsofkamigawa/Earthshaker.java +++ b/Mage.Sets/src/mage/sets/championsofkamigawa/Earthshaker.java @@ -42,19 +42,17 @@ import mage.cards.CardImpl; import mage.filter.Filter; import mage.filter.FilterCard; import mage.filter.common.FilterCreaturePermanent; +import mage.filter.common.FilterSpiritOrArcaneCard; /** * @author Loki */ public class Earthshaker extends CardImpl { - private final static FilterCard spellFilter = new FilterCard("a Spirit or Arcane spell"); + private final static FilterSpiritOrArcaneCard filter = new FilterSpiritOrArcaneCard(); private final static FilterCreaturePermanent creatureFilter = new FilterCreaturePermanent("creature without flying"); static { - spellFilter.getSubtype().add("Spirit"); - spellFilter.getSubtype().add("Arcane"); - spellFilter.setScopeSubtype(Filter.ComparisonScope.Any); creatureFilter.getAbilities().add((Ability) FlyingAbility.getInstance()); creatureFilter.setNotAbilities(true); } @@ -66,7 +64,7 @@ public class Earthshaker extends CardImpl { this.color.setRed(true); this.power = new MageInt(4); this.toughness = new MageInt(5); - this.addAbility(new SpellCastTriggeredAbility(new DamageAllEffect(new StaticValue(2) , creatureFilter), spellFilter, false)); + this.addAbility(new SpellCastTriggeredAbility(new DamageAllEffect(new StaticValue(2) , creatureFilter), filter, false)); } public Earthshaker(final Earthshaker card) { diff --git a/Mage.Sets/src/mage/sets/championsofkamigawa/GuardianOfSolitude.java b/Mage.Sets/src/mage/sets/championsofkamigawa/GuardianOfSolitude.java index 15554c197b3..9031bef4ad0 100644 --- a/Mage.Sets/src/mage/sets/championsofkamigawa/GuardianOfSolitude.java +++ b/Mage.Sets/src/mage/sets/championsofkamigawa/GuardianOfSolitude.java @@ -46,6 +46,9 @@ import mage.target.common.TargetCreaturePermanent; * @author Loki */ public class GuardianOfSolitude extends CardImpl { + + private final static FilterSpiritOrArcaneCard filter = new FilterSpiritOrArcaneCard(); + public GuardianOfSolitude(UUID ownerId) { super(ownerId, 64, "Guardian of Solitude", Rarity.UNCOMMON, new CardType[]{CardType.CREATURE}, "{1}{U}"); this.expansionSetCode = "CHK"; @@ -53,7 +56,7 @@ public class GuardianOfSolitude extends CardImpl { this.color.setBlue(true); this.power = new MageInt(1); this.toughness = new MageInt(2); - Ability ability = new SpellCastTriggeredAbility(new GainAbilityTargetEffect(FlyingAbility.getInstance(), Constants.Duration.EndOfTurn), new FilterSpiritOrArcaneCard(), false); + Ability ability = new SpellCastTriggeredAbility(new GainAbilityTargetEffect(FlyingAbility.getInstance(), Constants.Duration.EndOfTurn), filter, false); ability.addTarget(new TargetCreaturePermanent()); this.addAbility(ability); } diff --git a/Mage.Sets/src/mage/sets/championsofkamigawa/HikariTwilightGuardian.java b/Mage.Sets/src/mage/sets/championsofkamigawa/HikariTwilightGuardian.java index 23f8ec144ab..3d023714e22 100644 --- a/Mage.Sets/src/mage/sets/championsofkamigawa/HikariTwilightGuardian.java +++ b/Mage.Sets/src/mage/sets/championsofkamigawa/HikariTwilightGuardian.java @@ -51,6 +51,9 @@ import mage.game.permanent.Permanent; * @author Loki */ public class HikariTwilightGuardian extends CardImpl { + + private final static FilterSpiritOrArcaneCard filter = new FilterSpiritOrArcaneCard(); + public HikariTwilightGuardian (UUID ownerId) { super(ownerId, 12, "Hikari, Twilight Guardian", Rarity.RARE, new CardType[]{CardType.CREATURE}, "{3}{W}{W}"); this.expansionSetCode = "CHK"; @@ -60,7 +63,7 @@ public class HikariTwilightGuardian extends CardImpl { this.power = new MageInt(4); this.toughness = new MageInt(4); this.addAbility(FlyingAbility.getInstance()); - this.addAbility(new SpellCastTriggeredAbility(new HikariTwilightGuardianEffect(), new FilterSpiritOrArcaneCard(), true)); + this.addAbility(new SpellCastTriggeredAbility(new HikariTwilightGuardianEffect(), filter, true)); } public HikariTwilightGuardian (final HikariTwilightGuardian card) { diff --git a/Mage.Sets/src/mage/sets/championsofkamigawa/HorizonSeed.java b/Mage.Sets/src/mage/sets/championsofkamigawa/HorizonSeed.java index 2e520397ff8..6084e2291b3 100644 --- a/Mage.Sets/src/mage/sets/championsofkamigawa/HorizonSeed.java +++ b/Mage.Sets/src/mage/sets/championsofkamigawa/HorizonSeed.java @@ -44,6 +44,9 @@ import mage.target.common.TargetCreaturePermanent; * @author Loki */ public class HorizonSeed extends CardImpl { + + private final static FilterSpiritOrArcaneCard filter = new FilterSpiritOrArcaneCard(); + public HorizonSeed(UUID ownerId) { super(ownerId, 15, "Horizon Seed", Rarity.UNCOMMON, new CardType[]{CardType.CREATURE}, "{4}{W}"); this.expansionSetCode = "CHK"; @@ -51,7 +54,7 @@ public class HorizonSeed extends CardImpl { this.color.setWhite(true); this.power = new MageInt(2); this.toughness = new MageInt(1); - Ability ability = new SpellCastTriggeredAbility(new RegenerateTargetEffect(), new FilterSpiritOrArcaneCard(), false); + Ability ability = new SpellCastTriggeredAbility(new RegenerateTargetEffect(), filter, false); ability.addTarget(new TargetCreaturePermanent()); this.addAbility(ability); } diff --git a/Mage.Sets/src/mage/sets/championsofkamigawa/InnocenceKami.java b/Mage.Sets/src/mage/sets/championsofkamigawa/InnocenceKami.java index 5f9d7b50805..376721abe0c 100644 --- a/Mage.Sets/src/mage/sets/championsofkamigawa/InnocenceKami.java +++ b/Mage.Sets/src/mage/sets/championsofkamigawa/InnocenceKami.java @@ -49,6 +49,9 @@ import mage.target.common.TargetCreaturePermanent; * @author Loki */ public class InnocenceKami extends CardImpl { + + private final static FilterSpiritOrArcaneCard filter = new FilterSpiritOrArcaneCard(); + public InnocenceKami(UUID ownerId) { super(ownerId, 18, "Innocence Kami", Rarity.UNCOMMON, new CardType[]{CardType.CREATURE}, "{3}{W}{W}"); this.expansionSetCode = "CHK"; @@ -60,7 +63,7 @@ public class InnocenceKami extends CardImpl { ability.addCost(new TapSourceCost()); ability.addTarget(new TargetCreaturePermanent()); this.addAbility(ability); - this.addAbility(new SpellCastTriggeredAbility(new UntapSourceEffect(), new FilterSpiritOrArcaneCard(), false)); + this.addAbility(new SpellCastTriggeredAbility(new UntapSourceEffect(), filter, false)); } public InnocenceKami(final InnocenceKami card) { diff --git a/Mage.Sets/src/mage/sets/championsofkamigawa/JadeIdol.java b/Mage.Sets/src/mage/sets/championsofkamigawa/JadeIdol.java index f4a284750aa..bc2087164aa 100644 --- a/Mage.Sets/src/mage/sets/championsofkamigawa/JadeIdol.java +++ b/Mage.Sets/src/mage/sets/championsofkamigawa/JadeIdol.java @@ -40,6 +40,7 @@ import mage.abilities.effects.common.continious.BecomesCreatureSourceEffect; import mage.cards.CardImpl; import mage.filter.Filter; import mage.filter.FilterCard; +import mage.filter.common.FilterSpiritOrArcaneCard; import mage.game.permanent.token.Token; /** @@ -47,14 +48,8 @@ import mage.game.permanent.token.Token; */ public class JadeIdol extends CardImpl { - private final static FilterCard filter = new FilterCard("a Spirit or Arcane spell"); - - static { - filter.getSubtype().add("Spirit"); - filter.getSubtype().add("Arcane"); - filter.setScopeSubtype(Filter.ComparisonScope.Any); - } - + private final static FilterSpiritOrArcaneCard filter = new FilterSpiritOrArcaneCard(); + public JadeIdol(UUID ownerId) { super(ownerId, 256, "Jade Idol", Rarity.UNCOMMON, new CardType[]{CardType.ARTIFACT}, "{4}"); this.expansionSetCode = "CHK"; diff --git a/Mage.Sets/src/mage/sets/championsofkamigawa/KamiOfFiresRoar.java b/Mage.Sets/src/mage/sets/championsofkamigawa/KamiOfFiresRoar.java index 7e79643cbc8..f557350980e 100644 --- a/Mage.Sets/src/mage/sets/championsofkamigawa/KamiOfFiresRoar.java +++ b/Mage.Sets/src/mage/sets/championsofkamigawa/KamiOfFiresRoar.java @@ -46,6 +46,9 @@ import mage.target.common.TargetCreaturePermanent; * @author Loki */ public class KamiOfFiresRoar extends CardImpl { + + private final static FilterSpiritOrArcaneCard filter = new FilterSpiritOrArcaneCard(); + public KamiOfFiresRoar(UUID ownerId) { super(ownerId, 174, "Kami of Fire's Roar", Rarity.COMMON, new CardType[]{CardType.CREATURE}, "{3}{R}"); this.expansionSetCode = "CHK"; @@ -53,7 +56,7 @@ public class KamiOfFiresRoar extends CardImpl { this.color.setRed(true); this.power = new MageInt(2); this.toughness = new MageInt(3); - Ability ability = new SpellCastTriggeredAbility(new GainAbilityTargetEffect(CantBlockAbility.getInstance(), Constants.Duration.EndOfTurn), new FilterSpiritOrArcaneCard(), false); + Ability ability = new SpellCastTriggeredAbility(new GainAbilityTargetEffect(CantBlockAbility.getInstance(), Constants.Duration.EndOfTurn), filter, false); ability.addTarget(new TargetCreaturePermanent()); this.addAbility(ability); } diff --git a/Mage.Sets/src/mage/sets/championsofkamigawa/KamiOfTheHunt.java b/Mage.Sets/src/mage/sets/championsofkamigawa/KamiOfTheHunt.java index 8ecce87b6f4..3f67b75a4b7 100644 --- a/Mage.Sets/src/mage/sets/championsofkamigawa/KamiOfTheHunt.java +++ b/Mage.Sets/src/mage/sets/championsofkamigawa/KamiOfTheHunt.java @@ -44,6 +44,8 @@ import mage.filter.common.FilterSpiritOrArcaneCard; */ public class KamiOfTheHunt extends CardImpl { + private final static FilterSpiritOrArcaneCard filter = new FilterSpiritOrArcaneCard(); + public KamiOfTheHunt(UUID ownerId) { super(ownerId, 219, "Kami of the Hunt", Rarity.COMMON, new CardType[]{CardType.CREATURE}, "{2}{G}"); this.expansionSetCode = "CHK"; @@ -51,7 +53,7 @@ public class KamiOfTheHunt extends CardImpl { this.color.setGreen(true); this.power = new MageInt(2); this.toughness = new MageInt(2); - this.addAbility(new SpellCastTriggeredAbility(new BoostSourceEffect(1, 1, Constants.Duration.EndOfTurn), new FilterSpiritOrArcaneCard(), false)); + this.addAbility(new SpellCastTriggeredAbility(new BoostSourceEffect(1, 1, Constants.Duration.EndOfTurn), filter, false)); } public KamiOfTheHunt(final KamiOfTheHunt card) { diff --git a/Mage.Sets/src/mage/sets/championsofkamigawa/KamiOfTheWaningMoon.java b/Mage.Sets/src/mage/sets/championsofkamigawa/KamiOfTheWaningMoon.java index a19fa0617ab..49382f69f68 100644 --- a/Mage.Sets/src/mage/sets/championsofkamigawa/KamiOfTheWaningMoon.java +++ b/Mage.Sets/src/mage/sets/championsofkamigawa/KamiOfTheWaningMoon.java @@ -47,6 +47,9 @@ import mage.target.common.TargetCreaturePermanent; * @author Loki */ public class KamiOfTheWaningMoon extends CardImpl { + + private final static FilterSpiritOrArcaneCard filter = new FilterSpiritOrArcaneCard(); + public KamiOfTheWaningMoon(UUID ownerId) { super(ownerId, 120, "Kami of the Waning Moon", Rarity.COMMON, new CardType[]{CardType.CREATURE}, "{2}{B}"); this.expansionSetCode = "CHK"; @@ -55,7 +58,7 @@ public class KamiOfTheWaningMoon extends CardImpl { this.power = new MageInt(1); this.toughness = new MageInt(1); this.addAbility(FlyingAbility.getInstance()); - Ability ability = new SpellCastTriggeredAbility(new GainAbilityTargetEffect(FearAbility.getInstance(), Constants.Duration.EndOfTurn), new FilterSpiritOrArcaneCard(), false); + Ability ability = new SpellCastTriggeredAbility(new GainAbilityTargetEffect(FearAbility.getInstance(), Constants.Duration.EndOfTurn), filter, false); ability.addTarget(new TargetCreaturePermanent()); this.addAbility(ability); } diff --git a/Mage.Sets/src/mage/sets/championsofkamigawa/KodamaOfTheSouthTree.java b/Mage.Sets/src/mage/sets/championsofkamigawa/KodamaOfTheSouthTree.java index f9740a5c64b..910dfa91687 100644 --- a/Mage.Sets/src/mage/sets/championsofkamigawa/KodamaOfTheSouthTree.java +++ b/Mage.Sets/src/mage/sets/championsofkamigawa/KodamaOfTheSouthTree.java @@ -47,6 +47,9 @@ import mage.filter.common.FilterSpiritOrArcaneCard; * @author Loki */ public class KodamaOfTheSouthTree extends CardImpl { + + private final static FilterSpiritOrArcaneCard filter = new FilterSpiritOrArcaneCard(); + public KodamaOfTheSouthTree(UUID ownerId) { super(ownerId, 223, "Kodama of the South Tree", Rarity.RARE, new CardType[]{CardType.CREATURE}, "{2}{G}{G}"); this.expansionSetCode = "CHK"; @@ -55,7 +58,7 @@ public class KodamaOfTheSouthTree extends CardImpl { this.color.setGreen(true); this.power = new MageInt(4); this.toughness = new MageInt(4); - Ability ability = new SpellCastTriggeredAbility(new BoostControlledEffect(1, 1, Constants.Duration.EndOfTurn, new FilterCreaturePermanent(), true), new FilterSpiritOrArcaneCard(), false); + Ability ability = new SpellCastTriggeredAbility(new BoostControlledEffect(1, 1, Constants.Duration.EndOfTurn, new FilterCreaturePermanent(), true), filter, false); ability.addEffect(new GainAbilityControlledEffect(TrampleAbility.getInstance(), Constants.Duration.EndOfTurn, new FilterCreaturePermanent(), true)); this.addAbility(ability); } diff --git a/Mage.Sets/src/mage/sets/championsofkamigawa/OrbweaverKumo.java b/Mage.Sets/src/mage/sets/championsofkamigawa/OrbweaverKumo.java index 2b90ccff59a..985af4a8319 100644 --- a/Mage.Sets/src/mage/sets/championsofkamigawa/OrbweaverKumo.java +++ b/Mage.Sets/src/mage/sets/championsofkamigawa/OrbweaverKumo.java @@ -47,6 +47,9 @@ import mage.filter.common.FilterSpiritOrArcaneCard; * @author Loki */ public class OrbweaverKumo extends CardImpl { + + private final static FilterSpiritOrArcaneCard filter = new FilterSpiritOrArcaneCard(); + public OrbweaverKumo(UUID ownerId) { super(ownerId, 231, "Orbweaver Kumo", Rarity.UNCOMMON, new CardType[]{CardType.CREATURE}, "{4}{G}{G}"); this.expansionSetCode = "CHK"; @@ -55,7 +58,7 @@ public class OrbweaverKumo extends CardImpl { this.power = new MageInt(3); this.toughness = new MageInt(4); this.addAbility(ReachAbility.getInstance()); - this.addAbility(new SpellCastTriggeredAbility(new GainAbilitySourceEffect(new ForestwalkAbility(), Constants.Duration.EndOfTurn), new FilterSpiritOrArcaneCard(), false)); + this.addAbility(new SpellCastTriggeredAbility(new GainAbilitySourceEffect(new ForestwalkAbility(), Constants.Duration.EndOfTurn), filter, false)); } public OrbweaverKumo(final OrbweaverKumo card) { diff --git a/Mage.Sets/src/mage/sets/championsofkamigawa/OreGorger.java b/Mage.Sets/src/mage/sets/championsofkamigawa/OreGorger.java index 4a7528fd991..d56b8b7b77b 100644 --- a/Mage.Sets/src/mage/sets/championsofkamigawa/OreGorger.java +++ b/Mage.Sets/src/mage/sets/championsofkamigawa/OreGorger.java @@ -44,6 +44,9 @@ import mage.target.common.TargetNonBasicLandPermanent; * @author Loki */ public class OreGorger extends CardImpl { + + private final static FilterSpiritOrArcaneCard filter = new FilterSpiritOrArcaneCard(); + public OreGorger(UUID ownerId) { super(ownerId, 182, "Ore Gorger", Rarity.UNCOMMON, new CardType[]{CardType.CREATURE}, "{3}{R}{R}"); this.expansionSetCode = "CHK"; @@ -51,7 +54,7 @@ public class OreGorger extends CardImpl { this.color.setRed(true); this.power = new MageInt(3); this.toughness = new MageInt(1); - Ability ability = new SpellCastTriggeredAbility(new DestroyTargetEffect(), new FilterSpiritOrArcaneCard(), true); + Ability ability = new SpellCastTriggeredAbility(new DestroyTargetEffect(), filter, true); ability.addTarget(new TargetNonBasicLandPermanent()); this.addAbility(ability); } diff --git a/Mage.Sets/src/mage/sets/championsofkamigawa/SireOfTheStorm.java b/Mage.Sets/src/mage/sets/championsofkamigawa/SireOfTheStorm.java index 1b36328eaad..c501f4be225 100644 --- a/Mage.Sets/src/mage/sets/championsofkamigawa/SireOfTheStorm.java +++ b/Mage.Sets/src/mage/sets/championsofkamigawa/SireOfTheStorm.java @@ -43,6 +43,9 @@ import mage.filter.common.FilterSpiritOrArcaneCard; * @author Loki */ public class SireOfTheStorm extends CardImpl { + + private final static FilterSpiritOrArcaneCard filter = new FilterSpiritOrArcaneCard(); + public SireOfTheStorm(UUID ownerId) { super(ownerId, 85, "Sire of the Storm", Rarity.UNCOMMON, new CardType[]{CardType.CREATURE}, "{4}{U}{U}"); this.expansionSetCode = "CHK"; @@ -52,7 +55,7 @@ public class SireOfTheStorm extends CardImpl { this.power = new MageInt(3); this.toughness = new MageInt(3); this.addAbility(FlyingAbility.getInstance()); - this.addAbility(new SpellCastTriggeredAbility(new DrawCardControllerEffect(1), new FilterSpiritOrArcaneCard(), true)); + this.addAbility(new SpellCastTriggeredAbility(new DrawCardControllerEffect(1), filter, true)); } public SireOfTheStorm(final SireOfTheStorm card) { diff --git a/Mage.Sets/src/mage/sets/championsofkamigawa/Soilshaper.java b/Mage.Sets/src/mage/sets/championsofkamigawa/Soilshaper.java index 32e57058b85..c00a5782082 100644 --- a/Mage.Sets/src/mage/sets/championsofkamigawa/Soilshaper.java +++ b/Mage.Sets/src/mage/sets/championsofkamigawa/Soilshaper.java @@ -46,6 +46,9 @@ import mage.target.common.TargetLandPermanent; * @author Loki */ public class Soilshaper extends CardImpl { + + private final static FilterSpiritOrArcaneCard filter = new FilterSpiritOrArcaneCard(); + public Soilshaper(UUID ownerId) { super(ownerId, 243, "Soilshaper", Rarity.UNCOMMON, new CardType[]{CardType.CREATURE}, "{1}{G}"); this.expansionSetCode = "CHK"; @@ -53,7 +56,7 @@ public class Soilshaper extends CardImpl { this.color.setGreen(true); this.power = new MageInt(1); this.toughness = new MageInt(1); - Ability ability = new SpellCastTriggeredAbility(new BecomesCreatureTargetEffect(new SoilshaperToken(), "land", Duration.EndOfTurn), new FilterSpiritOrArcaneCard(), false); + Ability ability = new SpellCastTriggeredAbility(new BecomesCreatureTargetEffect(new SoilshaperToken(), "land", Duration.EndOfTurn), filter, false); ability.addTarget(new TargetLandPermanent()); this.addAbility(ability); } diff --git a/Mage.Sets/src/mage/sets/championsofkamigawa/SoulOfMagma.java b/Mage.Sets/src/mage/sets/championsofkamigawa/SoulOfMagma.java index 02093cd026f..825a5e4c3e6 100644 --- a/Mage.Sets/src/mage/sets/championsofkamigawa/SoulOfMagma.java +++ b/Mage.Sets/src/mage/sets/championsofkamigawa/SoulOfMagma.java @@ -44,6 +44,9 @@ import mage.target.common.TargetCreaturePermanent; * @author Loki */ public class SoulOfMagma extends CardImpl { + + private final static FilterSpiritOrArcaneCard filter = new FilterSpiritOrArcaneCard(); + public SoulOfMagma(UUID ownerId) { super(ownerId, 189, "Soul of Magma", Rarity.COMMON, new CardType[]{CardType.CREATURE}, "{3}{R}{R}"); this.expansionSetCode = "CHK"; @@ -51,7 +54,7 @@ public class SoulOfMagma extends CardImpl { this.color.setRed(true); this.power = new MageInt(2); this.toughness = new MageInt(2); - Ability ability = new SpellCastTriggeredAbility(new DamageTargetEffect(1), new FilterSpiritOrArcaneCard(), false); + Ability ability = new SpellCastTriggeredAbility(new DamageTargetEffect(1), filter, false); ability.addTarget(new TargetCreaturePermanent()); this.addAbility(ability); } diff --git a/Mage.Sets/src/mage/sets/championsofkamigawa/TellerOfTales.java b/Mage.Sets/src/mage/sets/championsofkamigawa/TellerOfTales.java index 80294553079..2667296550b 100644 --- a/Mage.Sets/src/mage/sets/championsofkamigawa/TellerOfTales.java +++ b/Mage.Sets/src/mage/sets/championsofkamigawa/TellerOfTales.java @@ -48,7 +48,9 @@ import mage.target.common.TargetCreaturePermanent; public class TellerOfTales extends CardImpl { - // Outcome.Benefit, "tap or untap target creature" + private final static FilterSpiritOrArcaneCard filter = new FilterSpiritOrArcaneCard(); + + // Outcome.Benefit, "tap or untap target creature" public TellerOfTales(UUID ownerId) { super(ownerId, 95, "Teller of Tales", Rarity.COMMON, new CardType[]{CardType.CREATURE}, "{3}{U}{U}"); @@ -60,7 +62,7 @@ public class TellerOfTales extends CardImpl { // Flying this.addAbility(FlyingAbility.getInstance()); // Whenever you cast a Spirit or Arcane spell, you may tap or untap target creature. - Ability ability = new SpellCastTriggeredAbility(new MayTapOrUntapTargetEffect(),new FilterSpiritOrArcaneCard(), true); + Ability ability = new SpellCastTriggeredAbility(new MayTapOrUntapTargetEffect(),filter, true); ability.addTarget(new TargetCreaturePermanent()); this.addAbility(ability); } diff --git a/Mage.Sets/src/mage/sets/championsofkamigawa/ThiefOfHope.java b/Mage.Sets/src/mage/sets/championsofkamigawa/ThiefOfHope.java index fa9c86a1568..eb3842873da 100644 --- a/Mage.Sets/src/mage/sets/championsofkamigawa/ThiefOfHope.java +++ b/Mage.Sets/src/mage/sets/championsofkamigawa/ThiefOfHope.java @@ -46,6 +46,9 @@ import mage.target.common.TargetOpponent; * @author Loki */ public class ThiefOfHope extends CardImpl { + + private final static FilterSpiritOrArcaneCard filter = new FilterSpiritOrArcaneCard(); + public ThiefOfHope(UUID ownerId) { super(ownerId, 147, "Thief of Hope", Rarity.UNCOMMON, new CardType[]{CardType.CREATURE}, "{2}{B}"); this.expansionSetCode = "CHK"; @@ -53,7 +56,7 @@ public class ThiefOfHope extends CardImpl { this.color.setBlack(true); this.power = new MageInt(2); this.toughness = new MageInt(2); - Ability ability = new SpellCastTriggeredAbility(new LoseLifeTargetEffect(1), new FilterSpiritOrArcaneCard(), false); + Ability ability = new SpellCastTriggeredAbility(new LoseLifeTargetEffect(1), filter, false); ability.addEffect(new GainLifeEffect(1)); ability.addTarget(new TargetOpponent()); this.addAbility(ability); diff --git a/Mage.Sets/src/mage/sets/conflux/SigilOfTheEmptyThrone.java b/Mage.Sets/src/mage/sets/conflux/SigilOfTheEmptyThrone.java index 848ba3161b4..3200c052b1b 100644 --- a/Mage.Sets/src/mage/sets/conflux/SigilOfTheEmptyThrone.java +++ b/Mage.Sets/src/mage/sets/conflux/SigilOfTheEmptyThrone.java @@ -34,7 +34,7 @@ import mage.Constants.Rarity; import mage.abilities.common.SpellCastTriggeredAbility; import mage.abilities.effects.common.CreateTokenEffect; import mage.cards.CardImpl; -import mage.filter.FilterCard; +import mage.filter.FilterSpell; import mage.game.permanent.token.AngelToken; /** @@ -43,7 +43,7 @@ import mage.game.permanent.token.AngelToken; */ public class SigilOfTheEmptyThrone extends CardImpl { - private static final FilterCard filter = new FilterCard("an enchantment spell"); + private static final FilterSpell filter = new FilterSpell("an enchantment spell"); static { filter.getCardType().add(CardType.ENCHANTMENT); diff --git a/Mage.Sets/src/mage/sets/eventide/BalefireLiege.java b/Mage.Sets/src/mage/sets/eventide/BalefireLiege.java index 03b8f63e9e2..2f0818af033 100644 --- a/Mage.Sets/src/mage/sets/eventide/BalefireLiege.java +++ b/Mage.Sets/src/mage/sets/eventide/BalefireLiege.java @@ -28,7 +28,6 @@ package mage.sets.eventide; import java.util.UUID; - import mage.Constants; import mage.Constants.CardType; import mage.Constants.Rarity; @@ -41,7 +40,7 @@ import mage.abilities.effects.common.DamageTargetEffect; import mage.abilities.effects.common.GainLifeEffect; import mage.abilities.effects.common.continious.BoostControlledEffect; import mage.cards.CardImpl; -import mage.filter.FilterCard; +import mage.filter.FilterSpell; import mage.filter.common.FilterCreaturePermanent; import mage.target.TargetPlayer; @@ -52,8 +51,8 @@ public class BalefireLiege extends CardImpl { private final static FilterCreaturePermanent filterRedCreature = new FilterCreaturePermanent("red creatures"); private final static FilterCreaturePermanent filterWhiteCreature = new FilterCreaturePermanent("white creatures"); - private final static FilterCard filterRedSpell = new FilterCard("a red spell"); - private final static FilterCard filterWhiteSpell = new FilterCard("a white spell"); + private final static FilterSpell filterRedSpell = new FilterSpell("a red spell"); + private final static FilterSpell filterWhiteSpell = new FilterSpell("a white spell"); static { filterRedCreature.setUseColor(true); diff --git a/Mage.Sets/src/mage/sets/eventide/BallynockTrapper.java b/Mage.Sets/src/mage/sets/eventide/BallynockTrapper.java index bc687e414f3..513f2354b9f 100644 --- a/Mage.Sets/src/mage/sets/eventide/BallynockTrapper.java +++ b/Mage.Sets/src/mage/sets/eventide/BallynockTrapper.java @@ -28,7 +28,6 @@ package mage.sets.eventide; import java.util.UUID; - import mage.Constants; import mage.Constants.CardType; import mage.Constants.Rarity; @@ -41,7 +40,7 @@ import mage.abilities.costs.common.TapSourceCost; import mage.abilities.effects.common.TapTargetEffect; import mage.abilities.effects.common.UntapSourceEffect; import mage.cards.CardImpl; -import mage.filter.FilterCard; +import mage.filter.FilterSpell; import mage.target.common.TargetCreaturePermanent; /** @@ -49,7 +48,7 @@ import mage.target.common.TargetCreaturePermanent; */ public class BallynockTrapper extends CardImpl { - private final static FilterCard filterWhiteSpell = new FilterCard("a white spell"); + private final static FilterSpell filterWhiteSpell = new FilterSpell("a white spell"); static { filterWhiteSpell.setUseColor(true); diff --git a/Mage.Sets/src/mage/sets/eventide/BelligerentHatchling.java b/Mage.Sets/src/mage/sets/eventide/BelligerentHatchling.java index be8c6238b17..246ba9dc6ef 100644 --- a/Mage.Sets/src/mage/sets/eventide/BelligerentHatchling.java +++ b/Mage.Sets/src/mage/sets/eventide/BelligerentHatchling.java @@ -28,7 +28,6 @@ package mage.sets.eventide; import java.util.UUID; - import mage.Constants.CardType; import mage.Constants.Rarity; import mage.MageInt; @@ -40,15 +39,15 @@ import mage.abilities.effects.common.counter.RemoveCounterSourceEffect; import mage.abilities.keyword.FirstStrikeAbility; import mage.cards.CardImpl; import mage.counters.CounterType; -import mage.filter.FilterCard; +import mage.filter.FilterSpell; /** * @author Loki */ public class BelligerentHatchling extends CardImpl { - private final static FilterCard filterRedSpell = new FilterCard("a red spell"); - private final static FilterCard filterWhiteSpell = new FilterCard("a white spell"); + private final static FilterSpell filterRedSpell = new FilterSpell("a red spell"); + private final static FilterSpell filterWhiteSpell = new FilterSpell("a white spell"); static { filterRedSpell.setUseColor(true); diff --git a/Mage.Sets/src/mage/sets/eventide/CinderPyromancer.java b/Mage.Sets/src/mage/sets/eventide/CinderPyromancer.java index 6f9e6a5f6b4..ae56f871c69 100644 --- a/Mage.Sets/src/mage/sets/eventide/CinderPyromancer.java +++ b/Mage.Sets/src/mage/sets/eventide/CinderPyromancer.java @@ -29,7 +29,6 @@ package mage.sets.eventide; import java.util.UUID; - import mage.Constants; import mage.Constants.CardType; import mage.Constants.Rarity; @@ -41,7 +40,7 @@ import mage.abilities.costs.common.TapSourceCost; import mage.abilities.effects.common.DamageTargetEffect; import mage.abilities.effects.common.UntapSourceEffect; import mage.cards.CardImpl; -import mage.filter.FilterCard; +import mage.filter.FilterSpell; import mage.target.TargetPlayer; /** @@ -49,7 +48,7 @@ import mage.target.TargetPlayer; * @author Loki */ public class CinderPyromancer extends CardImpl { - private static final FilterCard filter = new FilterCard("a red spell"); + private static final FilterSpell filter = new FilterSpell("a red spell"); static { filter.getColor().setRed(true); diff --git a/Mage.Sets/src/mage/sets/eventide/DeathbringerLiege.java b/Mage.Sets/src/mage/sets/eventide/DeathbringerLiege.java index e994cf3ba3a..1a73eb354fa 100644 --- a/Mage.Sets/src/mage/sets/eventide/DeathbringerLiege.java +++ b/Mage.Sets/src/mage/sets/eventide/DeathbringerLiege.java @@ -29,7 +29,6 @@ package mage.sets.eventide; import java.util.UUID; - import mage.Constants; import mage.Constants.CardType; import mage.Constants.Rarity; @@ -37,13 +36,11 @@ import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.common.SpellCastTriggeredAbility; -import mage.abilities.decorator.ConditionalOneShotEffect; import mage.abilities.effects.OneShotEffect; -import mage.abilities.effects.common.DestroyTargetEffect; import mage.abilities.effects.common.TapTargetEffect; import mage.abilities.effects.common.continious.BoostControlledEffect; import mage.cards.CardImpl; -import mage.filter.FilterCard; +import mage.filter.FilterSpell; import mage.filter.common.FilterCreaturePermanent; import mage.game.Game; import mage.game.permanent.Permanent; @@ -56,8 +53,8 @@ import mage.target.common.TargetCreaturePermanent; public class DeathbringerLiege extends CardImpl { private final static FilterCreaturePermanent filterWhite = new FilterCreaturePermanent("white creatures"); private final static FilterCreaturePermanent filterBlack = new FilterCreaturePermanent("black creatures"); - private final static FilterCard filterWhiteSpellCard = new FilterCard("a white spell"); - private final static FilterCard filterBlackSpellCard = new FilterCard("a black spell"); + private final static FilterSpell filterWhiteSpellCard = new FilterSpell("a white spell"); + private final static FilterSpell filterBlackSpellCard = new FilterSpell("a black spell"); static { filterWhite.setUseColor(true); diff --git a/Mage.Sets/src/mage/sets/eventide/FableOfWolfAndOwl.java b/Mage.Sets/src/mage/sets/eventide/FableOfWolfAndOwl.java index f2d29bca19e..34327b6f81c 100644 --- a/Mage.Sets/src/mage/sets/eventide/FableOfWolfAndOwl.java +++ b/Mage.Sets/src/mage/sets/eventide/FableOfWolfAndOwl.java @@ -28,7 +28,6 @@ package mage.sets.eventide; import java.util.UUID; - import mage.Constants.CardType; import mage.Constants.Rarity; import mage.MageInt; @@ -37,7 +36,7 @@ import mage.abilities.common.SpellCastTriggeredAbility; import mage.abilities.effects.common.CreateTokenEffect; import mage.abilities.keyword.FlyingAbility; import mage.cards.CardImpl; -import mage.filter.FilterCard; +import mage.filter.FilterSpell; import mage.game.permanent.token.Token; import mage.game.permanent.token.WolfToken; @@ -46,8 +45,8 @@ import mage.game.permanent.token.WolfToken; */ public class FableOfWolfAndOwl extends CardImpl { - private final static FilterCard filterGreenSpell = new FilterCard("a green spell"); - private final static FilterCard filterBlueSpell = new FilterCard("a blue spell"); + private final static FilterSpell filterGreenSpell = new FilterSpell("a green spell"); + private final static FilterSpell filterBlueSpell = new FilterSpell("a blue spell"); static { filterGreenSpell.setUseColor(true); diff --git a/Mage.Sets/src/mage/sets/eventide/MerrowLevitator.java b/Mage.Sets/src/mage/sets/eventide/MerrowLevitator.java index 1c76afa0bfb..42706641781 100644 --- a/Mage.Sets/src/mage/sets/eventide/MerrowLevitator.java +++ b/Mage.Sets/src/mage/sets/eventide/MerrowLevitator.java @@ -28,7 +28,6 @@ package mage.sets.eventide; import java.util.UUID; - import mage.Constants; import mage.Constants.CardType; import mage.Constants.Rarity; @@ -42,7 +41,7 @@ import mage.abilities.effects.common.UntapSourceEffect; import mage.abilities.effects.common.continious.GainAbilityTargetEffect; import mage.abilities.keyword.FlyingAbility; import mage.cards.CardImpl; -import mage.filter.FilterCard; +import mage.filter.FilterSpell; import mage.target.common.TargetCreaturePermanent; /** @@ -52,7 +51,7 @@ import mage.target.common.TargetCreaturePermanent; public class MerrowLevitator extends CardImpl { - private final static FilterCard filterBlueSpell = new FilterCard("a blue spell"); + private final static FilterSpell filterBlueSpell = new FilterSpell("a blue spell"); static { filterBlueSpell.setUseColor(true); diff --git a/Mage.Sets/src/mage/sets/eventide/NoxiousHatchling.java b/Mage.Sets/src/mage/sets/eventide/NoxiousHatchling.java index 2594548f01c..58fe830f7fe 100644 --- a/Mage.Sets/src/mage/sets/eventide/NoxiousHatchling.java +++ b/Mage.Sets/src/mage/sets/eventide/NoxiousHatchling.java @@ -39,7 +39,7 @@ import mage.abilities.effects.common.counter.RemoveCounterSourceEffect; import mage.abilities.keyword.WitherAbility; import mage.cards.CardImpl; import mage.counters.CounterType; -import mage.filter.FilterCard; +import mage.filter.FilterSpell; /** * @@ -47,8 +47,8 @@ import mage.filter.FilterCard; */ public class NoxiousHatchling extends CardImpl { - private final static FilterCard filterBlackSpell = new FilterCard("a black spell"); - private final static FilterCard filterGreenSpell = new FilterCard("a green spell"); + private final static FilterSpell filterBlackSpell = new FilterSpell("a black spell"); + private final static FilterSpell filterGreenSpell = new FilterSpell("a green spell"); static { filterBlackSpell.setUseColor(true); diff --git a/Mage.Sets/src/mage/sets/eventide/SturdyHatchling.java b/Mage.Sets/src/mage/sets/eventide/SturdyHatchling.java index 856046baf38..4b5c9f67b21 100644 --- a/Mage.Sets/src/mage/sets/eventide/SturdyHatchling.java +++ b/Mage.Sets/src/mage/sets/eventide/SturdyHatchling.java @@ -28,7 +28,6 @@ package mage.sets.eventide; import java.util.UUID; - import mage.Constants; import mage.Constants.CardType; import mage.Constants.Rarity; @@ -44,15 +43,15 @@ import mage.abilities.effects.common.counter.RemoveCounterSourceEffect; import mage.abilities.keyword.ShroudAbility; import mage.cards.CardImpl; import mage.counters.CounterType; -import mage.filter.FilterCard; +import mage.filter.FilterSpell; /** * @author Loki */ public class SturdyHatchling extends CardImpl { - private final static FilterCard filterGreenSpell = new FilterCard("a green spell"); - private final static FilterCard filterBlueSpell = new FilterCard("a blue spell"); + private final static FilterSpell filterGreenSpell = new FilterSpell("a green spell"); + private final static FilterSpell filterBlueSpell = new FilterSpell("a blue spell"); static { filterGreenSpell.setUseColor(true); diff --git a/Mage.Sets/src/mage/sets/eventide/VoraciousHatchling.java b/Mage.Sets/src/mage/sets/eventide/VoraciousHatchling.java index 7add0bce92f..2ff0d7cc464 100644 --- a/Mage.Sets/src/mage/sets/eventide/VoraciousHatchling.java +++ b/Mage.Sets/src/mage/sets/eventide/VoraciousHatchling.java @@ -28,7 +28,6 @@ package mage.sets.eventide; import java.util.UUID; - import mage.Constants.CardType; import mage.Constants.Rarity; import mage.MageInt; @@ -40,15 +39,15 @@ import mage.abilities.effects.common.counter.RemoveCounterSourceEffect; import mage.abilities.keyword.LifelinkAbility; import mage.cards.CardImpl; import mage.counters.CounterType; -import mage.filter.FilterCard; +import mage.filter.FilterSpell; /** * @author Loki */ public class VoraciousHatchling extends CardImpl { - private final static FilterCard filterWhiteSpell = new FilterCard("a white spell"); - private final static FilterCard filterBlackSpell = new FilterCard("a black spell"); + private final static FilterSpell filterWhiteSpell = new FilterSpell("a white spell"); + private final static FilterSpell filterBlackSpell = new FilterSpell("a black spell"); static { filterWhiteSpell.setUseColor(true); diff --git a/Mage.Sets/src/mage/sets/guildpact/Gelectrode.java b/Mage.Sets/src/mage/sets/guildpact/Gelectrode.java index 97023886a2e..4547eda4c0b 100644 --- a/Mage.Sets/src/mage/sets/guildpact/Gelectrode.java +++ b/Mage.Sets/src/mage/sets/guildpact/Gelectrode.java @@ -40,7 +40,7 @@ import mage.abilities.effects.common.DamageTargetEffect; import mage.abilities.effects.common.UntapSourceEffect; import mage.cards.CardImpl; import mage.filter.Filter; -import mage.filter.FilterCard; +import mage.filter.FilterSpell; import mage.target.common.TargetCreatureOrPlayer; /** @@ -49,7 +49,7 @@ import mage.target.common.TargetCreatureOrPlayer; */ public class Gelectrode extends CardImpl { - private final static FilterCard filter = new FilterCard("an instant or sorcery spell"); + private final static FilterSpell filter = new FilterSpell("an instant or sorcery spell"); static { filter.getCardType().add(CardType.INSTANT); diff --git a/Mage.Sets/src/mage/sets/guildpact/TiborAndLumia.java b/Mage.Sets/src/mage/sets/guildpact/TiborAndLumia.java index f29b3c5a096..2ec151d8b1e 100644 --- a/Mage.Sets/src/mage/sets/guildpact/TiborAndLumia.java +++ b/Mage.Sets/src/mage/sets/guildpact/TiborAndLumia.java @@ -38,7 +38,7 @@ import mage.abilities.effects.common.DamageAllEffect; import mage.abilities.effects.common.continious.GainAbilityTargetEffect; import mage.abilities.keyword.FlyingAbility; import mage.cards.CardImpl; -import mage.filter.FilterCard; +import mage.filter.FilterSpell; import mage.filter.common.FilterCreaturePermanent; import mage.target.common.TargetCreaturePermanent; @@ -48,9 +48,9 @@ import mage.target.common.TargetCreaturePermanent; */ public class TiborAndLumia extends CardImpl { - private final static FilterCard filterBlue = new FilterCard("a blue spell"); + private final static FilterSpell filterBlue = new FilterSpell("a blue spell"); private final static FilterCreaturePermanent filter = new FilterCreaturePermanent("creature without flying"); - private final static FilterCard filterRed = new FilterCard("a red spell"); + private final static FilterSpell filterRed = new FilterSpell("a red spell"); static { filterBlue.setUseColor(true); @@ -60,13 +60,7 @@ public class TiborAndLumia extends CardImpl { filterRed.setUseColor(true); filterRed.getColor().setRed(true); } - - - static { - - } - - + public TiborAndLumia(UUID ownerId) { super(ownerId, 135, "Tibor and Lumia", Rarity.RARE, new CardType[]{CardType.CREATURE}, "{2}{U}{R}"); this.expansionSetCode = "GPT"; diff --git a/Mage.Sets/src/mage/sets/guildpact/WeeDragonauts.java b/Mage.Sets/src/mage/sets/guildpact/WeeDragonauts.java index c3d19be93f9..dd54fffb6cd 100644 --- a/Mage.Sets/src/mage/sets/guildpact/WeeDragonauts.java +++ b/Mage.Sets/src/mage/sets/guildpact/WeeDragonauts.java @@ -37,14 +37,14 @@ import mage.abilities.effects.common.continious.BoostSourceEffect; import mage.abilities.keyword.FlyingAbility; import mage.cards.CardImpl; import mage.filter.Filter; -import mage.filter.FilterCard; +import mage.filter.FilterSpell; /** * @author Loki */ public class WeeDragonauts extends CardImpl { - private final static FilterCard filter = new FilterCard("instant or sorcery spell"); + private final static FilterSpell filter = new FilterSpell("instant or sorcery spell"); static { filter.getCardType().add(CardType.INSTANT); diff --git a/Mage.Sets/src/mage/sets/innistrad/CharmbreakerDevils.java b/Mage.Sets/src/mage/sets/innistrad/CharmbreakerDevils.java index 5a135dda7ac..206473fb2ea 100644 --- a/Mage.Sets/src/mage/sets/innistrad/CharmbreakerDevils.java +++ b/Mage.Sets/src/mage/sets/innistrad/CharmbreakerDevils.java @@ -44,6 +44,7 @@ import mage.cards.Card; import mage.cards.CardImpl; import mage.filter.Filter.ComparisonScope; import mage.filter.FilterCard; +import mage.filter.FilterSpell; import mage.game.Game; import mage.game.events.GameEvent.EventType; import mage.players.Player; @@ -54,7 +55,7 @@ import mage.players.Player; */ public class CharmbreakerDevils extends CardImpl { - private static final FilterCard filter = new FilterCard("instant or sorcery card"); + private static final FilterSpell filter = new FilterSpell("instant or sorcery card"); static { filter.getCardType().add(CardType.INSTANT); diff --git a/Mage.Sets/src/mage/sets/lorwyn/ElvishHandservant.java b/Mage.Sets/src/mage/sets/lorwyn/ElvishHandservant.java index 66eccefd45f..d849138a0f3 100644 --- a/Mage.Sets/src/mage/sets/lorwyn/ElvishHandservant.java +++ b/Mage.Sets/src/mage/sets/lorwyn/ElvishHandservant.java @@ -27,6 +27,7 @@ */ package mage.sets.lorwyn; +import java.util.UUID; import mage.Constants.CardType; import mage.Constants.Rarity; import mage.MageInt; @@ -35,9 +36,7 @@ import mage.abilities.effects.common.counter.AddCountersSourceEffect; import mage.cards.CardImpl; import mage.counters.CounterType; import mage.filter.Filter; -import mage.filter.FilterCard; - -import java.util.UUID; +import mage.filter.FilterSpell; /** * @@ -45,7 +44,7 @@ import java.util.UUID; */ public class ElvishHandservant extends CardImpl { - private final static FilterCard filter = new FilterCard("Giant"); + private final static FilterSpell filter = new FilterSpell("Giant"); static { filter.getSubtype().add("Giant"); diff --git a/Mage.Sets/src/mage/sets/lorwyn/LysAlanaHuntmaster.java b/Mage.Sets/src/mage/sets/lorwyn/LysAlanaHuntmaster.java index e86ceb2e83e..8255162ee83 100644 --- a/Mage.Sets/src/mage/sets/lorwyn/LysAlanaHuntmaster.java +++ b/Mage.Sets/src/mage/sets/lorwyn/LysAlanaHuntmaster.java @@ -27,6 +27,7 @@ */ package mage.sets.lorwyn; +import java.util.UUID; import mage.Constants.CardType; import mage.Constants.Rarity; import mage.MageInt; @@ -34,18 +35,16 @@ import mage.abilities.common.SpellCastTriggeredAbility; import mage.abilities.effects.common.CreateTokenEffect; import mage.cards.CardImpl; import mage.filter.Filter; -import mage.filter.FilterCard; +import mage.filter.FilterSpell; import mage.game.permanent.token.ElfToken; -import java.util.UUID; - /** * * @author Loki */ public class LysAlanaHuntmaster extends CardImpl { - private final static FilterCard filter = new FilterCard("Elf spell"); + private final static FilterSpell filter = new FilterSpell("Elf spell"); static { filter.getSubtype().add("Elf"); diff --git a/Mage.Sets/src/mage/sets/lorwyn/ThorntoothWitch.java b/Mage.Sets/src/mage/sets/lorwyn/ThorntoothWitch.java index 0fdee8d06c7..2cdae44a86a 100644 --- a/Mage.Sets/src/mage/sets/lorwyn/ThorntoothWitch.java +++ b/Mage.Sets/src/mage/sets/lorwyn/ThorntoothWitch.java @@ -27,6 +27,7 @@ */ package mage.sets.lorwyn; +import java.util.UUID; import mage.Constants; import mage.Constants.CardType; import mage.Constants.Rarity; @@ -36,18 +37,16 @@ import mage.abilities.common.SpellCastTriggeredAbility; import mage.abilities.effects.common.continious.BoostTargetEffect; import mage.cards.CardImpl; import mage.filter.Filter; -import mage.filter.FilterCard; +import mage.filter.FilterSpell; import mage.target.common.TargetCreaturePermanent; -import java.util.UUID; - /** * * @author Loki */ public class ThorntoothWitch extends CardImpl { - private final static FilterCard filter = new FilterCard("Treefolk"); + private final static FilterSpell filter = new FilterSpell("Treefolk"); static { filter.getSubtype().add("Treefolk"); diff --git a/Mage.Sets/src/mage/sets/magic2010/MesaEnchantress.java b/Mage.Sets/src/mage/sets/magic2010/MesaEnchantress.java index a94b35feda8..b4258660927 100644 --- a/Mage.Sets/src/mage/sets/magic2010/MesaEnchantress.java +++ b/Mage.Sets/src/mage/sets/magic2010/MesaEnchantress.java @@ -34,7 +34,7 @@ import mage.MageInt; import mage.abilities.common.SpellCastTriggeredAbility; import mage.abilities.effects.common.DrawCardControllerEffect; import mage.cards.CardImpl; -import mage.filter.FilterCard; +import mage.filter.FilterSpell; /** * @@ -42,7 +42,7 @@ import mage.filter.FilterCard; */ public class MesaEnchantress extends CardImpl { - private static final FilterCard filter = new FilterCard("an enchantment spell"); + private static final FilterSpell filter = new FilterSpell("an enchantment spell"); static { filter.getCardType().add(CardType.ENCHANTMENT); diff --git a/Mage.Sets/src/mage/sets/magic2012/BloodlordOfVaasgoth.java b/Mage.Sets/src/mage/sets/magic2012/BloodlordOfVaasgoth.java index c32166f3fdd..e46c03f15de 100644 --- a/Mage.Sets/src/mage/sets/magic2012/BloodlordOfVaasgoth.java +++ b/Mage.Sets/src/mage/sets/magic2012/BloodlordOfVaasgoth.java @@ -27,6 +27,7 @@ */ package mage.sets.magic2012; +import java.util.UUID; import mage.Constants; import mage.Constants.CardType; import mage.Constants.Rarity; @@ -38,25 +39,23 @@ import mage.abilities.keyword.BloodthirstAbility; import mage.abilities.keyword.FlyingAbility; import mage.cards.CardImpl; import mage.filter.Filter; -import mage.filter.FilterCard; +import mage.filter.FilterSpell; import mage.game.Game; import mage.game.permanent.Permanent; import mage.game.stack.Spell; -import java.util.UUID; - /** * @author nantuko */ public class BloodlordOfVaasgoth extends CardImpl { - private static final FilterCard filterCard = new FilterCard("a Vampire creature spell"); + private static final FilterSpell filter = new FilterSpell("a Vampire creature spell"); static { - filterCard.getCardType().add(CardType.CREATURE); - filterCard.setScopeCardType(Filter.ComparisonScope.Any); - filterCard.getSubtype().add("Vampire"); - filterCard.setScopeSubtype(Filter.ComparisonScope.Any); + filter.getCardType().add(CardType.CREATURE); + filter.setScopeCardType(Filter.ComparisonScope.Any); + filter.getSubtype().add("Vampire"); + filter.setScopeSubtype(Filter.ComparisonScope.Any); } public BloodlordOfVaasgoth(UUID ownerId) { @@ -75,7 +74,7 @@ public class BloodlordOfVaasgoth extends CardImpl { this.addAbility(FlyingAbility.getInstance()); // Whenever you cast a Vampire creature spell, it gains bloodthirst 3. - this.addAbility(new SpellCastTriggeredAbility(new BloodlordOfVaasgothEffect(), filterCard, false, true)); + this.addAbility(new SpellCastTriggeredAbility(new BloodlordOfVaasgothEffect(), filter, false, true)); } public BloodlordOfVaasgoth(final BloodlordOfVaasgoth card) { diff --git a/Mage.Sets/src/mage/sets/mirrodinbesieged/MirranSpy.java b/Mage.Sets/src/mage/sets/mirrodinbesieged/MirranSpy.java index e89405dcbba..0a901c773d5 100644 --- a/Mage.Sets/src/mage/sets/mirrodinbesieged/MirranSpy.java +++ b/Mage.Sets/src/mage/sets/mirrodinbesieged/MirranSpy.java @@ -34,7 +34,7 @@ import mage.MageInt; import mage.abilities.common.SpellCastTriggeredAbility; import mage.abilities.effects.common.UntapTargetEffect; import mage.cards.CardImpl; -import mage.filter.common.FilterArtifactCard; +import mage.filter.FilterSpell; import mage.target.common.TargetCreaturePermanent; /** @@ -43,7 +43,7 @@ import mage.target.common.TargetCreaturePermanent; */ public class MirranSpy extends CardImpl { - private static final FilterArtifactCard filter = new FilterArtifactCard("an artifact spell"); + private static final FilterSpell filter = new FilterSpell("an artifact spell"); public MirranSpy(UUID ownerId) { super(ownerId, 26, "Mirran Spy", Rarity.COMMON, new CardType[]{CardType.CREATURE}, "{2}{U}"); diff --git a/Mage.Sets/src/mage/sets/morningtide/InspiredSprite.java b/Mage.Sets/src/mage/sets/morningtide/InspiredSprite.java index c9a805998f9..5c6f70752b7 100644 --- a/Mage.Sets/src/mage/sets/morningtide/InspiredSprite.java +++ b/Mage.Sets/src/mage/sets/morningtide/InspiredSprite.java @@ -28,7 +28,6 @@ package mage.sets.morningtide; import java.util.UUID; - import mage.Constants; import mage.Constants.CardType; import mage.Constants.Rarity; @@ -42,7 +41,7 @@ import mage.abilities.keyword.FlashAbility; import mage.abilities.keyword.FlyingAbility; import mage.cards.CardImpl; import mage.filter.Filter; -import mage.filter.FilterCard; +import mage.filter.FilterSpell; /** * @@ -50,7 +49,7 @@ import mage.filter.FilterCard; */ public class InspiredSprite extends CardImpl { - private final static FilterCard filter = new FilterCard("Wizard"); + private final static FilterSpell filter = new FilterSpell("Wizard"); static { filter.getSubtype().add("Wizard"); diff --git a/Mage.Sets/src/mage/sets/morningtide/LysAlanaBowmaster.java b/Mage.Sets/src/mage/sets/morningtide/LysAlanaBowmaster.java index 6ec329d6495..157c37e3215 100644 --- a/Mage.Sets/src/mage/sets/morningtide/LysAlanaBowmaster.java +++ b/Mage.Sets/src/mage/sets/morningtide/LysAlanaBowmaster.java @@ -38,7 +38,7 @@ import mage.abilities.keyword.FlyingAbility; import mage.abilities.keyword.ReachAbility; import mage.cards.CardImpl; import mage.filter.Filter; -import mage.filter.FilterCard; +import mage.filter.FilterSpell; import mage.filter.common.FilterCreaturePermanent; import mage.target.common.TargetCreaturePermanent; @@ -48,7 +48,7 @@ import mage.target.common.TargetCreaturePermanent; */ public class LysAlanaBowmaster extends CardImpl { - private final static FilterCard filterElf = new FilterCard("Elf"); + private final static FilterSpell filterElf = new FilterSpell("Elf"); private final static FilterCreaturePermanent filterFlying = new FilterCreaturePermanent("creature with flying"); static { diff --git a/Mage.Sets/src/mage/sets/newphyrexia/ShrineOfBoundlessGrowth.java b/Mage.Sets/src/mage/sets/newphyrexia/ShrineOfBoundlessGrowth.java index aabe787aa6f..a36e13122a4 100644 --- a/Mage.Sets/src/mage/sets/newphyrexia/ShrineOfBoundlessGrowth.java +++ b/Mage.Sets/src/mage/sets/newphyrexia/ShrineOfBoundlessGrowth.java @@ -45,7 +45,7 @@ import mage.abilities.effects.common.DynamicManaEffect; import mage.abilities.effects.common.counter.AddCountersSourceEffect; import mage.cards.CardImpl; import mage.counters.CounterType; -import mage.filter.FilterCard; +import mage.filter.FilterSpell; /** * @@ -53,7 +53,7 @@ import mage.filter.FilterCard; */ public class ShrineOfBoundlessGrowth extends CardImpl { - private static final FilterCard filter = new FilterCard("a green spell"); + private static final FilterSpell filter = new FilterSpell("a green spell"); static { filter.getColor().setGreen(true); diff --git a/Mage.Sets/src/mage/sets/newphyrexia/ShrineOfBurningRage.java b/Mage.Sets/src/mage/sets/newphyrexia/ShrineOfBurningRage.java index 9715fa6ab7d..3438400e958 100644 --- a/Mage.Sets/src/mage/sets/newphyrexia/ShrineOfBurningRage.java +++ b/Mage.Sets/src/mage/sets/newphyrexia/ShrineOfBurningRage.java @@ -29,7 +29,6 @@ package mage.sets.newphyrexia; import java.util.UUID; - import mage.Constants; import mage.Constants.CardType; import mage.Constants.Rarity; @@ -45,7 +44,7 @@ import mage.abilities.effects.common.DamageTargetEffect; import mage.abilities.effects.common.counter.AddCountersSourceEffect; import mage.cards.CardImpl; import mage.counters.CounterType; -import mage.filter.FilterCard; +import mage.filter.FilterSpell; import mage.target.common.TargetCreatureOrPlayer; /** @@ -53,7 +52,7 @@ import mage.target.common.TargetCreatureOrPlayer; * @author */ public class ShrineOfBurningRage extends CardImpl { - private final static FilterCard filter = new FilterCard("a red spell"); + private final static FilterSpell filter = new FilterSpell("a red spell"); static { filter.getColor().setRed(true); diff --git a/Mage.Sets/src/mage/sets/newphyrexia/ShrineOfLimitlessPower.java b/Mage.Sets/src/mage/sets/newphyrexia/ShrineOfLimitlessPower.java index c958b8ae4fe..a8089f0b6a2 100644 --- a/Mage.Sets/src/mage/sets/newphyrexia/ShrineOfLimitlessPower.java +++ b/Mage.Sets/src/mage/sets/newphyrexia/ShrineOfLimitlessPower.java @@ -44,7 +44,7 @@ import mage.abilities.effects.common.DiscardTargetEffect; import mage.abilities.effects.common.counter.AddCountersSourceEffect; import mage.cards.CardImpl; import mage.counters.CounterType; -import mage.filter.FilterCard; +import mage.filter.FilterSpell; import mage.target.TargetPlayer; /** @@ -53,7 +53,7 @@ import mage.target.TargetPlayer; */ public class ShrineOfLimitlessPower extends CardImpl { - private static final FilterCard filter = new FilterCard("a black spell"); + private static final FilterSpell filter = new FilterSpell("a black spell"); static { filter.getColor().setBlack(true); diff --git a/Mage.Sets/src/mage/sets/newphyrexia/ShrineOfLoyalLegions.java b/Mage.Sets/src/mage/sets/newphyrexia/ShrineOfLoyalLegions.java index 3e772b9b72f..810ddd92195 100644 --- a/Mage.Sets/src/mage/sets/newphyrexia/ShrineOfLoyalLegions.java +++ b/Mage.Sets/src/mage/sets/newphyrexia/ShrineOfLoyalLegions.java @@ -44,7 +44,7 @@ import mage.abilities.effects.common.CreateTokenEffect; import mage.abilities.effects.common.counter.AddCountersSourceEffect; import mage.cards.CardImpl; import mage.counters.CounterType; -import mage.filter.FilterCard; +import mage.filter.FilterSpell; import mage.game.permanent.token.MyrToken; /** @@ -53,7 +53,7 @@ import mage.game.permanent.token.MyrToken; */ public class ShrineOfLoyalLegions extends CardImpl { - private static final FilterCard filter = new FilterCard("a white spell"); + private static final FilterSpell filter = new FilterSpell("a white spell"); static { filter.getColor().setWhite(true); diff --git a/Mage.Sets/src/mage/sets/newphyrexia/ShrineOfPiercingVision.java b/Mage.Sets/src/mage/sets/newphyrexia/ShrineOfPiercingVision.java index 75fcf8816d0..88f8076efde 100644 --- a/Mage.Sets/src/mage/sets/newphyrexia/ShrineOfPiercingVision.java +++ b/Mage.Sets/src/mage/sets/newphyrexia/ShrineOfPiercingVision.java @@ -47,6 +47,7 @@ import mage.cards.Cards; import mage.cards.CardsImpl; import mage.counters.CounterType; import mage.filter.FilterCard; +import mage.filter.FilterSpell; import mage.game.Game; import mage.game.permanent.Permanent; import mage.players.Player; @@ -58,7 +59,7 @@ import mage.target.TargetCard; */ public class ShrineOfPiercingVision extends CardImpl { - private static final FilterCard filter = new FilterCard("a blue spell"); + private static final FilterSpell filter = new FilterSpell("a blue spell"); static { filter.getColor().setBlue(true); diff --git a/Mage.Sets/src/mage/sets/ravnika/HalcyonGlaze.java b/Mage.Sets/src/mage/sets/ravnika/HalcyonGlaze.java index 7769d9e4740..7ee89d268d4 100644 --- a/Mage.Sets/src/mage/sets/ravnika/HalcyonGlaze.java +++ b/Mage.Sets/src/mage/sets/ravnika/HalcyonGlaze.java @@ -28,7 +28,6 @@ package mage.sets.ravnika; import java.util.UUID; - import mage.Constants; import mage.Constants.CardType; import mage.Constants.Rarity; @@ -37,7 +36,8 @@ import mage.abilities.common.SpellCastTriggeredAbility; import mage.abilities.effects.common.continious.BecomesCreatureSourceEffect; import mage.abilities.keyword.FlyingAbility; import mage.cards.CardImpl; -import mage.filter.common.FilterCreatureCard; +import mage.filter.Filter; +import mage.filter.FilterSpell; import mage.game.permanent.token.Token; /** @@ -46,6 +46,13 @@ import mage.game.permanent.token.Token; */ public class HalcyonGlaze extends CardImpl { + private static final FilterSpell filter = new FilterSpell("a creature spell"); + + static { + filter.getCardType().add(CardType.CREATURE); + filter.setScopeCardType(Filter.ComparisonScope.Any); + } + public HalcyonGlaze(UUID ownerId) { super(ownerId, 54, "Halcyon Glaze", Rarity.UNCOMMON, new CardType[]{CardType.ENCHANTMENT}, "{1}{U}{U}"); this.expansionSetCode = "RAV"; @@ -53,7 +60,7 @@ public class HalcyonGlaze extends CardImpl { this.color.setBlue(true); // Whenever you cast a creature spell, Halcyon Glaze becomes a 4/4 Illusion creature with flying until end of turn. It's still an enchantment. - this.addAbility(new SpellCastTriggeredAbility(new BecomesCreatureSourceEffect(new HalcyonGlazeToken(), "enchantment", Constants.Duration.EndOfTurn), new FilterCreatureCard(), false)); + this.addAbility(new SpellCastTriggeredAbility(new BecomesCreatureSourceEffect(new HalcyonGlazeToken(), "enchantment", Constants.Duration.EndOfTurn), filter, false)); } public HalcyonGlaze(final HalcyonGlaze card) { diff --git a/Mage.Sets/src/mage/sets/ravnika/PrimordialSage.java b/Mage.Sets/src/mage/sets/ravnika/PrimordialSage.java index 475b48cb9e1..dc64993b36d 100644 --- a/Mage.Sets/src/mage/sets/ravnika/PrimordialSage.java +++ b/Mage.Sets/src/mage/sets/ravnika/PrimordialSage.java @@ -34,6 +34,8 @@ import mage.MageInt; import mage.abilities.common.SpellCastTriggeredAbility; import mage.abilities.effects.common.DrawCardControllerEffect; import mage.cards.CardImpl; +import mage.filter.Filter; +import mage.filter.FilterSpell; import mage.filter.common.FilterCreatureCard; /** @@ -42,6 +44,13 @@ import mage.filter.common.FilterCreatureCard; */ public class PrimordialSage extends CardImpl { + private static final FilterSpell filter = new FilterSpell("a creature spell"); + + static { + filter.getCardType().add(CardType.CREATURE); + filter.setScopeCardType(Filter.ComparisonScope.Any); + } + public PrimordialSage(UUID ownerId) { super(ownerId, 177, "Primordial Sage", Rarity.RARE, new CardType[]{CardType.CREATURE}, "{4}{G}{G}"); this.expansionSetCode = "RAV"; @@ -52,7 +61,7 @@ public class PrimordialSage extends CardImpl { this.toughness = new MageInt(5); // Whenever you cast a creature spell, you may draw a card. - this.addAbility(new SpellCastTriggeredAbility(new DrawCardControllerEffect(1), new FilterCreatureCard(), true)); + this.addAbility(new SpellCastTriggeredAbility(new DrawCardControllerEffect(1), filter, true)); } public PrimordialSage(final PrimordialSage card) { diff --git a/Mage.Sets/src/mage/sets/riseoftheeldrazi/KilnFiend.java b/Mage.Sets/src/mage/sets/riseoftheeldrazi/KilnFiend.java index 761a6447846..717c5d11e2a 100644 --- a/Mage.Sets/src/mage/sets/riseoftheeldrazi/KilnFiend.java +++ b/Mage.Sets/src/mage/sets/riseoftheeldrazi/KilnFiend.java @@ -36,7 +36,7 @@ import mage.abilities.common.SpellCastTriggeredAbility; import mage.abilities.effects.common.continious.BoostSourceEffect; import mage.cards.CardImpl; import mage.filter.Filter.ComparisonScope; -import mage.filter.FilterCard; +import mage.filter.FilterSpell; /** * @@ -44,7 +44,7 @@ import mage.filter.FilterCard; */ public class KilnFiend extends CardImpl { - private static final FilterCard filter = new FilterCard("an instant or sorcery spell"); + private static final FilterSpell filter = new FilterSpell("an instant or sorcery spell"); static { filter.getCardType().add(CardType.INSTANT); filter.getCardType().add(CardType.SORCERY); diff --git a/Mage.Sets/src/mage/sets/riseoftheeldrazi/KorSpiritdancer.java b/Mage.Sets/src/mage/sets/riseoftheeldrazi/KorSpiritdancer.java index e39562d50a0..626aedb022e 100644 --- a/Mage.Sets/src/mage/sets/riseoftheeldrazi/KorSpiritdancer.java +++ b/Mage.Sets/src/mage/sets/riseoftheeldrazi/KorSpiritdancer.java @@ -39,7 +39,7 @@ import mage.abilities.dynamicvalue.common.AuraAttachedCount; import mage.abilities.effects.common.DrawCardControllerEffect; import mage.abilities.effects.common.continious.BoostSourceEffect; import mage.cards.CardImpl; -import mage.filter.FilterCard; +import mage.filter.FilterSpell; /** * @@ -47,7 +47,7 @@ import mage.filter.FilterCard; */ public class KorSpiritdancer extends CardImpl { - private static final FilterCard filter = new FilterCard("an Aura spell"); + private static final FilterSpell filter = new FilterSpell("an Aura spell"); static { filter.getSubtype().add("Aura"); diff --git a/Mage.Sets/src/mage/sets/riseoftheeldrazi/SphinxBoneWand.java b/Mage.Sets/src/mage/sets/riseoftheeldrazi/SphinxBoneWand.java index 0a5189a1301..0194a897d44 100644 --- a/Mage.Sets/src/mage/sets/riseoftheeldrazi/SphinxBoneWand.java +++ b/Mage.Sets/src/mage/sets/riseoftheeldrazi/SphinxBoneWand.java @@ -37,7 +37,7 @@ import mage.abilities.effects.OneShotEffect; import mage.cards.CardImpl; import mage.counters.CounterType; import mage.filter.Filter.ComparisonScope; -import mage.filter.FilterCard; +import mage.filter.FilterSpell; import mage.game.Game; import mage.game.permanent.Permanent; import mage.players.Player; @@ -49,7 +49,7 @@ import mage.target.common.TargetCreatureOrPlayer; */ public class SphinxBoneWand extends CardImpl { - private static final FilterCard filter = new FilterCard("an instant or sorcery spell"); + private static final FilterSpell filter = new FilterSpell("an instant or sorcery spell"); static { filter.getCardType().add(CardType.INSTANT); diff --git a/Mage.Sets/src/mage/sets/saviorsofkamigawa/BriarknitKami.java b/Mage.Sets/src/mage/sets/saviorsofkamigawa/BriarknitKami.java index 4847bef6d78..cfa7bc645ab 100644 --- a/Mage.Sets/src/mage/sets/saviorsofkamigawa/BriarknitKami.java +++ b/Mage.Sets/src/mage/sets/saviorsofkamigawa/BriarknitKami.java @@ -45,6 +45,8 @@ import mage.target.common.TargetCreaturePermanent; */ public class BriarknitKami extends CardImpl { + private final static FilterSpiritOrArcaneCard filter = new FilterSpiritOrArcaneCard(); + public BriarknitKami(UUID ownerId) { super(ownerId, 124, "Briarknit Kami", Rarity.UNCOMMON, new CardType[]{CardType.CREATURE}, "{3}{G}{G}"); this.expansionSetCode = "SOK"; @@ -53,7 +55,7 @@ public class BriarknitKami extends CardImpl { this.power = new MageInt(3); this.toughness = new MageInt(3); // Whenever you cast a Spirit or Arcane spell, put a +1/+1 counter on target creature. - Ability ability = new SpellCastTriggeredAbility(new AddCountersTargetEffect(CounterType.P1P1.createInstance()), new FilterSpiritOrArcaneCard(), false); + Ability ability = new SpellCastTriggeredAbility(new AddCountersTargetEffect(CounterType.P1P1.createInstance()), filter, false); ability.addTarget(new TargetCreaturePermanent()); this.addAbility(ability); } diff --git a/Mage.Sets/src/mage/sets/saviorsofkamigawa/FiddleheadKami.java b/Mage.Sets/src/mage/sets/saviorsofkamigawa/FiddleheadKami.java index 8534de0ee42..6a4da2a4607 100644 --- a/Mage.Sets/src/mage/sets/saviorsofkamigawa/FiddleheadKami.java +++ b/Mage.Sets/src/mage/sets/saviorsofkamigawa/FiddleheadKami.java @@ -42,6 +42,8 @@ import mage.filter.common.FilterSpiritOrArcaneCard; */ public class FiddleheadKami extends CardImpl { + private final static FilterSpiritOrArcaneCard filter = new FilterSpiritOrArcaneCard(); + public FiddleheadKami(UUID ownerId) { super(ownerId, 130, "Fiddlehead Kami", Rarity.COMMON, new CardType[]{CardType.CREATURE}, "{4}{G}"); this.expansionSetCode = "SOK"; @@ -51,7 +53,7 @@ public class FiddleheadKami extends CardImpl { this.toughness = new MageInt(3); // Whenever you cast a Spirit or Arcane spell, regenerate Fiddlehead Kami. - this.addAbility(new SpellCastTriggeredAbility(new RegenerateSourceEffect(), new FilterSpiritOrArcaneCard(), false)); + this.addAbility(new SpellCastTriggeredAbility(new RegenerateSourceEffect(), filter, false)); } public FiddleheadKami(final FiddleheadKami card) { diff --git a/Mage.Sets/src/mage/sets/saviorsofkamigawa/HaruOnna.java b/Mage.Sets/src/mage/sets/saviorsofkamigawa/HaruOnna.java index aa92d183989..31e71e56bcd 100644 --- a/Mage.Sets/src/mage/sets/saviorsofkamigawa/HaruOnna.java +++ b/Mage.Sets/src/mage/sets/saviorsofkamigawa/HaruOnna.java @@ -44,6 +44,8 @@ import mage.filter.common.FilterSpiritOrArcaneCard; */ public class HaruOnna extends CardImpl { + private final static FilterSpiritOrArcaneCard filter = new FilterSpiritOrArcaneCard(); + public HaruOnna(UUID ownerId) { super(ownerId, 132, "Haru-Onna", Rarity.UNCOMMON, new CardType[]{CardType.CREATURE}, "{3}{G}"); this.expansionSetCode = "SOK"; @@ -55,7 +57,7 @@ public class HaruOnna extends CardImpl { // When Haru-Onna enters the battlefield, draw a card. this.addAbility(new EntersBattlefieldTriggeredAbility(new DrawCardControllerEffect(1))); // Whenever you cast a Spirit or Arcane spell, you may return Haru-Onna to its owner's hand. - this.addAbility(new SpellCastTriggeredAbility(new ReturnToHandSourceEffect(), new FilterSpiritOrArcaneCard(), true)); + this.addAbility(new SpellCastTriggeredAbility(new ReturnToHandSourceEffect(), filter, true)); } public HaruOnna(final HaruOnna card) { diff --git a/Mage.Sets/src/mage/sets/saviorsofkamigawa/KemuriOnna.java b/Mage.Sets/src/mage/sets/saviorsofkamigawa/KemuriOnna.java index bfb7f41759b..4fb1b22851a 100644 --- a/Mage.Sets/src/mage/sets/saviorsofkamigawa/KemuriOnna.java +++ b/Mage.Sets/src/mage/sets/saviorsofkamigawa/KemuriOnna.java @@ -46,6 +46,8 @@ import mage.target.TargetPlayer; */ public class KemuriOnna extends CardImpl { + private final static FilterSpiritOrArcaneCard filter = new FilterSpiritOrArcaneCard(); + public KemuriOnna(UUID ownerId) { super(ownerId, 76, "Kemuri-Onna", Rarity.UNCOMMON, new CardType[]{CardType.CREATURE}, "{4}{B}"); this.expansionSetCode = "SOK"; @@ -59,7 +61,7 @@ public class KemuriOnna extends CardImpl { ability.addTarget(new TargetPlayer()); this.addAbility(ability); // Whenever you cast a Spirit or Arcane spell, you may return Kemuri-Onna to its owner's hand. - this.addAbility(new SpellCastTriggeredAbility(new ReturnToHandSourceEffect(), new FilterSpiritOrArcaneCard(), true)); + this.addAbility(new SpellCastTriggeredAbility(new ReturnToHandSourceEffect(), filter, true)); } public KemuriOnna(final KemuriOnna card) { diff --git a/Mage.Sets/src/mage/sets/saviorsofkamigawa/KiriOnna.java b/Mage.Sets/src/mage/sets/saviorsofkamigawa/KiriOnna.java index 2a53bb792de..dfb105c3f4b 100644 --- a/Mage.Sets/src/mage/sets/saviorsofkamigawa/KiriOnna.java +++ b/Mage.Sets/src/mage/sets/saviorsofkamigawa/KiriOnna.java @@ -46,6 +46,8 @@ import mage.target.common.TargetCreaturePermanent; */ public class KiriOnna extends CardImpl { + private final static FilterSpiritOrArcaneCard filter = new FilterSpiritOrArcaneCard(); + public KiriOnna(UUID ownerId) { super(ownerId, 43, "Kiri-Onna", Rarity.UNCOMMON, new CardType[]{CardType.CREATURE}, "{4}{U}"); this.expansionSetCode = "SOK"; @@ -59,7 +61,7 @@ public class KiriOnna extends CardImpl { ability.addTarget(new TargetCreaturePermanent()); this.addAbility(ability); // Whenever you cast a Spirit or Arcane spell, you may return Kiri-Onna to its owner's hand. - this.addAbility(new SpellCastTriggeredAbility(new ReturnToHandSourceEffect(), new FilterSpiritOrArcaneCard(), true)); + this.addAbility(new SpellCastTriggeredAbility(new ReturnToHandSourceEffect(), filter, true)); } public KiriOnna(final KiriOnna card) { diff --git a/Mage.Sets/src/mage/sets/saviorsofkamigawa/NikkoOnna.java b/Mage.Sets/src/mage/sets/saviorsofkamigawa/NikkoOnna.java index 232c7ef77a2..ea531d0c57c 100644 --- a/Mage.Sets/src/mage/sets/saviorsofkamigawa/NikkoOnna.java +++ b/Mage.Sets/src/mage/sets/saviorsofkamigawa/NikkoOnna.java @@ -48,7 +48,8 @@ import mage.target.TargetPermanent; */ public class NikkoOnna extends CardImpl { - private final static FilterPermanent filter = new FilterPermanent("enchantment"); + private final static FilterSpiritOrArcaneCard filter = new FilterSpiritOrArcaneCard(); + private final static FilterPermanent filterTarget = new FilterPermanent("enchantment"); static { filter.getCardType().add(CardType.ENCHANTMENT); @@ -65,10 +66,10 @@ public class NikkoOnna extends CardImpl { // When Nikko-Onna enters the battlefield, destroy target enchantment. Ability ability = new EntersBattlefieldTriggeredAbility(new DestroyTargetEffect(), false); - ability.addTarget(new TargetPermanent(filter)); + ability.addTarget(new TargetPermanent(filterTarget)); this.addAbility(ability); // Whenever you cast a Spirit or Arcane spell, you may return Nikko-Onna to its owner's hand. - this.addAbility(new SpellCastTriggeredAbility(new ReturnToHandSourceEffect(), new FilterSpiritOrArcaneCard(), true)); + this.addAbility(new SpellCastTriggeredAbility(new ReturnToHandSourceEffect(), filter, true)); } public NikkoOnna(final NikkoOnna card) { diff --git a/Mage.Sets/src/mage/sets/saviorsofkamigawa/RekiTheHistoryOfKamigawa.java b/Mage.Sets/src/mage/sets/saviorsofkamigawa/RekiTheHistoryOfKamigawa.java index 482714dd9ce..8293e91eeb9 100644 --- a/Mage.Sets/src/mage/sets/saviorsofkamigawa/RekiTheHistoryOfKamigawa.java +++ b/Mage.Sets/src/mage/sets/saviorsofkamigawa/RekiTheHistoryOfKamigawa.java @@ -35,7 +35,7 @@ import mage.abilities.common.SpellCastTriggeredAbility; import mage.abilities.effects.common.DrawCardControllerEffect; import mage.cards.CardImpl; import mage.filter.Filter; -import mage.filter.FilterCard; +import mage.filter.FilterSpell; /** * @@ -43,7 +43,7 @@ import mage.filter.FilterCard; */ public class RekiTheHistoryOfKamigawa extends CardImpl { - private final static FilterCard filter = new FilterCard("legendary spell"); + private final static FilterSpell filter = new FilterSpell("legendary spell"); static { filter.getSupertype().add("Legendary"); diff --git a/Mage.Sets/src/mage/sets/saviorsofkamigawa/YukiOnna.java b/Mage.Sets/src/mage/sets/saviorsofkamigawa/YukiOnna.java index 759fb648787..4fb0de4e27a 100644 --- a/Mage.Sets/src/mage/sets/saviorsofkamigawa/YukiOnna.java +++ b/Mage.Sets/src/mage/sets/saviorsofkamigawa/YukiOnna.java @@ -48,7 +48,8 @@ import mage.target.TargetPermanent; */ public class YukiOnna extends CardImpl { - private final static FilterPermanent filter = new FilterPermanent("artifact"); + private final static FilterSpiritOrArcaneCard filter = new FilterSpiritOrArcaneCard(); + private final static FilterPermanent filterTarget = new FilterPermanent("artifact"); static { filter.getCardType().add(CardType.ARTIFACT); @@ -65,10 +66,10 @@ public class YukiOnna extends CardImpl { // When Yuki-Onna enters the battlefield, destroy target artifact. Ability ability = new EntersBattlefieldTriggeredAbility(new DestroyTargetEffect(), false); - ability.addTarget(new TargetPermanent(filter)); + ability.addTarget(new TargetPermanent(filterTarget)); this.addAbility(ability); // Whenever you cast a Spirit or Arcane spell, you may return Yuki-Onna to its owner's hand. - this.addAbility(new SpellCastTriggeredAbility(new ReturnToHandSourceEffect(), new FilterSpiritOrArcaneCard(), true)); + this.addAbility(new SpellCastTriggeredAbility(new ReturnToHandSourceEffect(), filter, true)); } public YukiOnna(final YukiOnna card) { diff --git a/Mage.Sets/src/mage/sets/scarsofmirrodin/Embersmith.java b/Mage.Sets/src/mage/sets/scarsofmirrodin/Embersmith.java index 2802afa5cc7..510d34301de 100644 --- a/Mage.Sets/src/mage/sets/scarsofmirrodin/Embersmith.java +++ b/Mage.Sets/src/mage/sets/scarsofmirrodin/Embersmith.java @@ -29,7 +29,6 @@ package mage.sets.scarsofmirrodin; import java.util.UUID; - import mage.Constants; import mage.Constants.CardType; import mage.Constants.Rarity; @@ -40,7 +39,8 @@ import mage.abilities.costs.Cost; import mage.abilities.costs.mana.GenericManaCost; import mage.abilities.effects.OneShotEffect; import mage.cards.CardImpl; -import mage.filter.common.FilterArtifactCard; +import mage.filter.Filter; +import mage.filter.FilterSpell; import mage.game.Game; import mage.game.permanent.Permanent; import mage.players.Player; @@ -51,7 +51,11 @@ import mage.target.common.TargetCreatureOrPlayer; */ public class Embersmith extends CardImpl { - private static final FilterArtifactCard filter = new FilterArtifactCard("an artifact spell"); + private static final FilterSpell filter = new FilterSpell("an artifact spell"); + static { + filter.getCardType().add(CardType.ARTIFACT); + filter.setScopeCardType(Filter.ComparisonScope.Any); + } public Embersmith(UUID ownerId) { super(ownerId, 87, "Embersmith", Rarity.UNCOMMON, new CardType[]{CardType.CREATURE}, "{1}{R}"); diff --git a/Mage.Sets/src/mage/sets/scarsofmirrodin/GolemFoundry.java b/Mage.Sets/src/mage/sets/scarsofmirrodin/GolemFoundry.java index b5c13829bf1..7d3b37aeb6b 100644 --- a/Mage.Sets/src/mage/sets/scarsofmirrodin/GolemFoundry.java +++ b/Mage.Sets/src/mage/sets/scarsofmirrodin/GolemFoundry.java @@ -36,11 +36,12 @@ import mage.MageInt; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.common.SpellCastTriggeredAbility; import mage.abilities.costs.common.RemoveCountersSourceCost; -import mage.abilities.effects.common.counter.AddCountersSourceEffect; import mage.abilities.effects.common.CreateTokenEffect; +import mage.abilities.effects.common.counter.AddCountersSourceEffect; import mage.cards.CardImpl; import mage.counters.CounterType; -import mage.filter.common.FilterArtifactCard; +import mage.filter.Filter; +import mage.filter.FilterSpell; import mage.game.permanent.token.Token; /** @@ -49,7 +50,11 @@ import mage.game.permanent.token.Token; */ public class GolemFoundry extends CardImpl { - private static final FilterArtifactCard filter = new FilterArtifactCard("an artifact spell"); + private static final FilterSpell filter = new FilterSpell("an artifact spell"); + static { + filter.getCardType().add(CardType.ARTIFACT); + filter.setScopeCardType(Filter.ComparisonScope.Any); + } public GolemFoundry (UUID ownerId) { super(ownerId, 160, "Golem Foundry", Rarity.COMMON, new CardType[]{CardType.ARTIFACT}, "{3}"); diff --git a/Mage.Sets/src/mage/sets/scarsofmirrodin/HandOfThePraetors.java b/Mage.Sets/src/mage/sets/scarsofmirrodin/HandOfThePraetors.java index 03e84dc9dfb..31b7c09acee 100644 --- a/Mage.Sets/src/mage/sets/scarsofmirrodin/HandOfThePraetors.java +++ b/Mage.Sets/src/mage/sets/scarsofmirrodin/HandOfThePraetors.java @@ -43,6 +43,8 @@ import mage.filter.common.FilterCreaturePermanent; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.effects.common.continious.BoostControlledEffect; import mage.abilities.common.SpellCastTriggeredAbility; +import mage.filter.Filter; +import mage.filter.FilterSpell; import mage.filter.common.FilterCreatureCard; /** @@ -52,12 +54,14 @@ import mage.filter.common.FilterCreatureCard; public class HandOfThePraetors extends CardImpl { private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("creatures with infect"); - private static final FilterCreatureCard filterSpell = new FilterCreatureCard("a creature spell with infect"); + private static final FilterSpell filterSpell = new FilterSpell("a creature spell with infect"); static { filter.getAbilities().add(InfectAbility.getInstance()); filter.setNotAbilities(false); filterSpell.getAbilities().add(InfectAbility.getInstance()); + filterSpell.getCardType().add(CardType.CREATURE); + filterSpell.setScopeCardType(Filter.ComparisonScope.Any); } public HandOfThePraetors (UUID ownerId) { diff --git a/Mage.Sets/src/mage/sets/scarsofmirrodin/Lifesmith.java b/Mage.Sets/src/mage/sets/scarsofmirrodin/Lifesmith.java index 90c545d9f4d..d1527f8f182 100644 --- a/Mage.Sets/src/mage/sets/scarsofmirrodin/Lifesmith.java +++ b/Mage.Sets/src/mage/sets/scarsofmirrodin/Lifesmith.java @@ -29,7 +29,6 @@ package mage.sets.scarsofmirrodin; import java.util.UUID; - import mage.Constants; import mage.Constants.CardType; import mage.Constants.Rarity; @@ -40,7 +39,8 @@ import mage.abilities.costs.Cost; import mage.abilities.costs.mana.GenericManaCost; import mage.abilities.effects.OneShotEffect; import mage.cards.CardImpl; -import mage.filter.common.FilterArtifactCard; +import mage.filter.Filter; +import mage.filter.FilterSpell; import mage.game.Game; import mage.players.Player; @@ -50,7 +50,11 @@ import mage.players.Player; */ public class Lifesmith extends CardImpl { - private static final FilterArtifactCard filter = new FilterArtifactCard("an artifact spell"); + private static final FilterSpell filter = new FilterSpell("an artifact spell"); + static { + filter.getCardType().add(CardType.ARTIFACT); + filter.setScopeCardType(Filter.ComparisonScope.Any); + } public Lifesmith (UUID ownerId) { super(ownerId, 124, "Lifesmith", Rarity.UNCOMMON, new CardType[]{CardType.CREATURE}, "{1}{G}"); diff --git a/Mage.Sets/src/mage/sets/scarsofmirrodin/Myrsmith.java b/Mage.Sets/src/mage/sets/scarsofmirrodin/Myrsmith.java index 3fb563b60b4..77ad47051c9 100644 --- a/Mage.Sets/src/mage/sets/scarsofmirrodin/Myrsmith.java +++ b/Mage.Sets/src/mage/sets/scarsofmirrodin/Myrsmith.java @@ -29,7 +29,6 @@ package mage.sets.scarsofmirrodin; import java.util.UUID; - import mage.Constants; import mage.Constants.CardType; import mage.Constants.Rarity; @@ -40,7 +39,8 @@ import mage.abilities.costs.Cost; import mage.abilities.costs.mana.GenericManaCost; import mage.abilities.effects.OneShotEffect; import mage.cards.CardImpl; -import mage.filter.common.FilterArtifactCard; +import mage.filter.Filter; +import mage.filter.FilterSpell; import mage.game.Game; import mage.game.permanent.token.MyrToken; @@ -50,7 +50,11 @@ import mage.game.permanent.token.MyrToken; */ public class Myrsmith extends CardImpl { - private static final FilterArtifactCard filter = new FilterArtifactCard("an artifact spell"); + private static final FilterSpell filter = new FilterSpell("an artifact spell"); + static { + filter.getCardType().add(CardType.ARTIFACT); + filter.setScopeCardType(Filter.ComparisonScope.Any); + } public Myrsmith (UUID ownerId) { super(ownerId, 16, "Myrsmith", Rarity.UNCOMMON, new CardType[]{CardType.CREATURE}, "{1}{W}"); diff --git a/Mage.Sets/src/mage/sets/scarsofmirrodin/Painsmith.java b/Mage.Sets/src/mage/sets/scarsofmirrodin/Painsmith.java index 1121eb6320a..7b4a7ac25c7 100644 --- a/Mage.Sets/src/mage/sets/scarsofmirrodin/Painsmith.java +++ b/Mage.Sets/src/mage/sets/scarsofmirrodin/Painsmith.java @@ -29,7 +29,6 @@ package mage.sets.scarsofmirrodin; import java.util.UUID; - import mage.Constants.CardType; import mage.Constants.Duration; import mage.Constants.Rarity; @@ -39,7 +38,8 @@ import mage.abilities.effects.common.continious.BoostTargetEffect; import mage.abilities.effects.common.continious.GainAbilityTargetEffect; import mage.abilities.keyword.DeathtouchAbility; import mage.cards.CardImpl; -import mage.filter.common.FilterArtifactCard; +import mage.filter.Filter; +import mage.filter.FilterSpell; import mage.target.common.TargetCreaturePermanent; /** @@ -48,7 +48,11 @@ import mage.target.common.TargetCreaturePermanent; */ public class Painsmith extends CardImpl { - private static final FilterArtifactCard filter = new FilterArtifactCard("an artifact spell"); + private static final FilterSpell filter = new FilterSpell("an artifact spell"); + static { + filter.getCardType().add(CardType.ARTIFACT); + filter.setScopeCardType(Filter.ComparisonScope.Any); + } public Painsmith (UUID ownerId) { super(ownerId, 74, "Painsmith", Rarity.UNCOMMON, new CardType[]{CardType.CREATURE}, "{1}{B}"); diff --git a/Mage.Sets/src/mage/sets/scarsofmirrodin/Riddlesmith.java b/Mage.Sets/src/mage/sets/scarsofmirrodin/Riddlesmith.java index 3a58481a596..37ffd869057 100644 --- a/Mage.Sets/src/mage/sets/scarsofmirrodin/Riddlesmith.java +++ b/Mage.Sets/src/mage/sets/scarsofmirrodin/Riddlesmith.java @@ -29,14 +29,14 @@ package mage.sets.scarsofmirrodin; import java.util.UUID; - import mage.Constants.CardType; import mage.Constants.Rarity; import mage.MageInt; import mage.abilities.common.SpellCastTriggeredAbility; import mage.abilities.effects.common.DrawDiscardControllerEffect; import mage.cards.CardImpl; -import mage.filter.common.FilterArtifactCard; +import mage.filter.Filter; +import mage.filter.FilterSpell; /** * @@ -44,7 +44,11 @@ import mage.filter.common.FilterArtifactCard; */ public class Riddlesmith extends CardImpl { - private static final FilterArtifactCard filter = new FilterArtifactCard("an artifact spell"); + private static final FilterSpell filter = new FilterSpell("an artifact spell"); + static { + filter.getCardType().add(CardType.ARTIFACT); + filter.setScopeCardType(Filter.ComparisonScope.Any); + } public Riddlesmith (UUID ownerId) { super(ownerId, 40, "Riddlesmith", Rarity.UNCOMMON, new CardType[]{CardType.CREATURE}, "{1}{U}"); diff --git a/Mage.Sets/src/mage/sets/shadowmoor/EmberstrikeDuo.java b/Mage.Sets/src/mage/sets/shadowmoor/EmberstrikeDuo.java index a77d3204296..52ecf38d018 100644 --- a/Mage.Sets/src/mage/sets/shadowmoor/EmberstrikeDuo.java +++ b/Mage.Sets/src/mage/sets/shadowmoor/EmberstrikeDuo.java @@ -37,7 +37,7 @@ import mage.abilities.effects.common.continious.BoostSourceEffect; import mage.abilities.effects.common.continious.GainAbilitySourceEffect; import mage.abilities.keyword.FirstStrikeAbility; import mage.cards.CardImpl; -import mage.filter.FilterCard; +import mage.filter.FilterSpell; /** * @@ -45,8 +45,8 @@ import mage.filter.FilterCard; */ public class EmberstrikeDuo extends CardImpl { - private static final FilterCard blackFilter = new FilterCard("a black spell"); - private static final FilterCard redFilter = new FilterCard("a red spell"); + private static final FilterSpell blackFilter = new FilterSpell("a black spell"); + private static final FilterSpell redFilter = new FilterSpell("a red spell"); static { blackFilter.getColor().setBlack(true); diff --git a/Mage.Sets/src/mage/sets/shadowmoor/GravelgillDuo.java b/Mage.Sets/src/mage/sets/shadowmoor/GravelgillDuo.java index 2267c079f3a..379d84cc328 100644 --- a/Mage.Sets/src/mage/sets/shadowmoor/GravelgillDuo.java +++ b/Mage.Sets/src/mage/sets/shadowmoor/GravelgillDuo.java @@ -37,7 +37,7 @@ import mage.abilities.effects.common.continious.BoostSourceEffect; import mage.abilities.effects.common.continious.GainAbilitySourceEffect; import mage.abilities.keyword.FearAbility; import mage.cards.CardImpl; -import mage.filter.FilterCard; +import mage.filter.FilterSpell; /** * @@ -45,8 +45,8 @@ import mage.filter.FilterCard; */ public class GravelgillDuo extends CardImpl { - private static final FilterCard blueFilter = new FilterCard("a blue spell"); - private static final FilterCard blackFilter = new FilterCard("a black spell"); + private static final FilterSpell blueFilter = new FilterSpell("a blue spell"); + private static final FilterSpell blackFilter = new FilterSpell("a black spell"); static { blueFilter.getColor().setBlue(true); diff --git a/Mage.Sets/src/mage/sets/shadowmoor/SafeholdDuo.java b/Mage.Sets/src/mage/sets/shadowmoor/SafeholdDuo.java index 2ac86778d92..d4df8f4c0dc 100644 --- a/Mage.Sets/src/mage/sets/shadowmoor/SafeholdDuo.java +++ b/Mage.Sets/src/mage/sets/shadowmoor/SafeholdDuo.java @@ -37,7 +37,7 @@ import mage.abilities.effects.common.continious.BoostSourceEffect; import mage.abilities.effects.common.continious.GainAbilitySourceEffect; import mage.abilities.keyword.VigilanceAbility; import mage.cards.CardImpl; -import mage.filter.FilterCard; +import mage.filter.FilterSpell; /** * @@ -45,8 +45,8 @@ import mage.filter.FilterCard; */ public class SafeholdDuo extends CardImpl { - private static final FilterCard whiteFilter = new FilterCard("a white spell"); - private static final FilterCard greenFilter = new FilterCard("a green spell"); + private static final FilterSpell whiteFilter = new FilterSpell("a white spell"); + private static final FilterSpell greenFilter = new FilterSpell("a green spell"); static { whiteFilter.getColor().setWhite(true); diff --git a/Mage.Sets/src/mage/sets/shadowmoor/TattermungeDuo.java b/Mage.Sets/src/mage/sets/shadowmoor/TattermungeDuo.java index ab809aecb7c..7fa28e33c3b 100644 --- a/Mage.Sets/src/mage/sets/shadowmoor/TattermungeDuo.java +++ b/Mage.Sets/src/mage/sets/shadowmoor/TattermungeDuo.java @@ -37,7 +37,7 @@ import mage.abilities.effects.common.continious.BoostSourceEffect; import mage.abilities.effects.common.continious.GainAbilitySourceEffect; import mage.abilities.keyword.ForestwalkAbility; import mage.cards.CardImpl; -import mage.filter.FilterCard; +import mage.filter.FilterSpell; /** * @@ -45,8 +45,8 @@ import mage.filter.FilterCard; */ public class TattermungeDuo extends CardImpl { - private static final FilterCard redFilter = new FilterCard("a red spell"); - private static final FilterCard greenFilter = new FilterCard("a green spell"); + private static final FilterSpell redFilter = new FilterSpell("a red spell"); + private static final FilterSpell greenFilter = new FilterSpell("a green spell"); static { redFilter.getColor().setRed(true); diff --git a/Mage.Sets/src/mage/sets/shadowmoor/ThistledownDuo.java b/Mage.Sets/src/mage/sets/shadowmoor/ThistledownDuo.java index fa52fd1f8ec..370198640f5 100644 --- a/Mage.Sets/src/mage/sets/shadowmoor/ThistledownDuo.java +++ b/Mage.Sets/src/mage/sets/shadowmoor/ThistledownDuo.java @@ -37,7 +37,7 @@ import mage.abilities.effects.common.continious.BoostSourceEffect; import mage.abilities.effects.common.continious.GainAbilitySourceEffect; import mage.abilities.keyword.FlyingAbility; import mage.cards.CardImpl; -import mage.filter.FilterCard; +import mage.filter.FilterSpell; /** * @@ -45,8 +45,8 @@ import mage.filter.FilterCard; */ public class ThistledownDuo extends CardImpl { - private static final FilterCard whiteFilter = new FilterCard("a white spell"); - private static final FilterCard blueFilter = new FilterCard("a blue spell"); + private static final FilterSpell whiteFilter = new FilterSpell("a white spell"); + private static final FilterSpell blueFilter = new FilterSpell("a blue spell"); static { whiteFilter.getColor().setWhite(true); diff --git a/Mage.Sets/src/mage/sets/tenth/QuirionDryad.java b/Mage.Sets/src/mage/sets/tenth/QuirionDryad.java index 7cce230fc73..793c80bb745 100644 --- a/Mage.Sets/src/mage/sets/tenth/QuirionDryad.java +++ b/Mage.Sets/src/mage/sets/tenth/QuirionDryad.java @@ -36,7 +36,7 @@ import mage.abilities.effects.common.counter.AddCountersSourceEffect; import mage.cards.CardImpl; import mage.counters.CounterType; import mage.filter.Filter; -import mage.filter.FilterCard; +import mage.filter.FilterSpell; /** * @@ -44,7 +44,7 @@ import mage.filter.FilterCard; */ public class QuirionDryad extends CardImpl { - private final static FilterCard filter = new FilterCard("white, blue, black, or red spell"); + private final static FilterSpell filter = new FilterSpell("white, blue, black, or red spell"); static { filter.setUseColor(true); diff --git a/Mage.Sets/src/mage/sets/urzassaga/ArgothianEnchantress.java b/Mage.Sets/src/mage/sets/urzassaga/ArgothianEnchantress.java index 1e41a434552..672d45b33c4 100644 --- a/Mage.Sets/src/mage/sets/urzassaga/ArgothianEnchantress.java +++ b/Mage.Sets/src/mage/sets/urzassaga/ArgothianEnchantress.java @@ -35,7 +35,7 @@ import mage.abilities.common.SpellCastTriggeredAbility; import mage.abilities.effects.common.DrawCardControllerEffect; import mage.abilities.keyword.ShroudAbility; import mage.cards.CardImpl; -import mage.filter.FilterCard; +import mage.filter.FilterSpell; /** * @@ -43,7 +43,7 @@ import mage.filter.FilterCard; */ public class ArgothianEnchantress extends CardImpl { - private static final FilterCard filter = new FilterCard("an Enchantment spell"); + private static final FilterSpell filter = new FilterSpell("an Enchantment spell"); static { filter.getCardType().add(CardType.ENCHANTMENT); diff --git a/Mage.Sets/src/mage/sets/zendikar/QuestForTheHolyRelic.java b/Mage.Sets/src/mage/sets/zendikar/QuestForTheHolyRelic.java index 1f899407e8d..150c57e62a7 100644 --- a/Mage.Sets/src/mage/sets/zendikar/QuestForTheHolyRelic.java +++ b/Mage.Sets/src/mage/sets/zendikar/QuestForTheHolyRelic.java @@ -44,7 +44,9 @@ import mage.abilities.effects.common.counter.AddCountersSourceEffect; import mage.cards.Card; import mage.cards.CardImpl; import mage.counters.CounterType; +import mage.filter.Filter; import mage.filter.FilterCard; +import mage.filter.FilterSpell; import mage.filter.common.FilterCreatureCard; import mage.game.Game; import mage.game.permanent.Permanent; @@ -59,6 +61,12 @@ import mage.target.common.TargetControlledCreaturePermanent; */ public class QuestForTheHolyRelic extends CardImpl { + private static final FilterSpell filter = new FilterSpell("a creature spell"); + static { + filter.getCardType().add(CardType.CREATURE); + filter.setScopeCardType(Filter.ComparisonScope.Any); + } + public QuestForTheHolyRelic(UUID ownerId) { super(ownerId, 33, "Quest for the Holy Relic", Rarity.UNCOMMON, new CardType[]{CardType.ENCHANTMENT}, "{W}"); this.expansionSetCode = "ZEN"; @@ -66,7 +74,7 @@ public class QuestForTheHolyRelic extends CardImpl { this.color.setWhite(true); // Whenever you cast a creature spell, you may put a quest counter on Quest for the Holy Relic. - this.addAbility(new SpellCastTriggeredAbility(new AddCountersSourceEffect(CounterType.QUEST.createInstance()), new FilterCreatureCard(), true)); + this.addAbility(new SpellCastTriggeredAbility(new AddCountersSourceEffect(CounterType.QUEST.createInstance()), filter, true)); // Remove five quest counters from Quest for the Holy Relic and sacrifice it: Search your library for an Equipment card, put it onto the battlefield, and attach it to a creature you control. Then shuffle your library. Ability ability = new SimpleActivatedAbility(Constants.Zone.BATTLEFIELD, new QuestForTheHolyRelicEffect(), new RemoveCountersSourceCost(CounterType.QUEST.createInstance(5))); ability.addCost(new SacrificeSourceCost()); diff --git a/Mage/src/mage/abilities/common/SpellCastTriggeredAbility.java b/Mage/src/mage/abilities/common/SpellCastTriggeredAbility.java index 2d8cf273409..9e1cfe21bdb 100644 --- a/Mage/src/mage/abilities/common/SpellCastTriggeredAbility.java +++ b/Mage/src/mage/abilities/common/SpellCastTriggeredAbility.java @@ -31,6 +31,7 @@ import mage.Constants.Zone; import mage.abilities.TriggeredAbilityImpl; import mage.abilities.effects.Effect; import mage.filter.FilterCard; +import mage.filter.FilterSpell; import mage.game.Game; import mage.game.events.GameEvent; import mage.game.stack.Spell; @@ -42,8 +43,8 @@ import mage.target.targetpointer.FixedTarget; */ public class SpellCastTriggeredAbility extends TriggeredAbilityImpl { - private static final FilterCard spellCard = new FilterCard("a spell"); - protected FilterCard filter; + private static final FilterSpell spellCard = new FilterSpell("a spell"); + protected FilterSpell filter; /** * If true, the source that triggered the ability will be set as target to effect. @@ -55,11 +56,11 @@ public class SpellCastTriggeredAbility extends TriggeredAbilityImpl { + protected Zone fromZone = Zone.ALL; + protected boolean notFromZone = false; + public FilterSpell() { super("spell"); } @@ -60,12 +65,31 @@ public class FilterSpell extends FilterStackObject { if (!(spell instanceof Spell)) return notFilter; + if (((Spell)spell).getFromZone().match(fromZone) == notFromZone) + return notFilter; + return super.match(spell); } + @Override + public boolean match(StackObject spell, UUID playerId, Game game) { + if (!this.match(spell)) + return notFilter; + + return super.match(spell, playerId, game); + } + @Override public FilterSpell copy() { return new FilterSpell(this); } + public void setFromZone(Zone fromZone) { + this.fromZone = fromZone; + } + + public void setNotFromZone(boolean notFromZone) { + this.notFromZone = notFromZone; + } + } diff --git a/Mage/src/mage/filter/common/FilterSpiritOrArcaneCard.java b/Mage/src/mage/filter/common/FilterSpiritOrArcaneCard.java index 8f641182e99..36382737443 100644 --- a/Mage/src/mage/filter/common/FilterSpiritOrArcaneCard.java +++ b/Mage/src/mage/filter/common/FilterSpiritOrArcaneCard.java @@ -1,9 +1,9 @@ package mage.filter.common; import mage.filter.Filter; -import mage.filter.FilterCard; +import mage.filter.FilterSpell; -public class FilterSpiritOrArcaneCard extends FilterCard { +public class FilterSpiritOrArcaneCard extends FilterSpell { public FilterSpiritOrArcaneCard() { this("a Spirit or Arcane spell");