diff --git a/Mage.Sets/src/mage/cards/a/AegisAutomaton.java b/Mage.Sets/src/mage/cards/a/AegisAutomaton.java index 0d555c64eb6..561ca8a3508 100644 --- a/Mage.Sets/src/mage/cards/a/AegisAutomaton.java +++ b/Mage.Sets/src/mage/cards/a/AegisAutomaton.java @@ -1,4 +1,3 @@ - package mage.cards.a; import java.util.UUID; @@ -12,8 +11,7 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.SubType; import mage.constants.Zone; -import mage.filter.common.FilterControlledCreaturePermanent; -import mage.filter.predicate.mageobject.AnotherPredicate; +import mage.filter.StaticFilters; import mage.target.common.TargetControlledCreaturePermanent; /** @@ -22,12 +20,6 @@ import mage.target.common.TargetControlledCreaturePermanent; */ public final class AegisAutomaton extends CardImpl { - private static final FilterControlledCreaturePermanent filter = new FilterControlledCreaturePermanent("another target creature you control"); - - static { - filter.add(AnotherPredicate.instance); - } - public AegisAutomaton(UUID ownerId, CardSetInfo setInfo) { super(ownerId, setInfo, new CardType[]{CardType.ARTIFACT, CardType.CREATURE}, "{2}"); @@ -37,7 +29,7 @@ public final class AegisAutomaton extends CardImpl { // {4}{W}: Return another target creature you control to its owner's hand. Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new ReturnToHandTargetEffect(), new ManaCostsImpl<>("{4}{W}")); - ability.addTarget(new TargetControlledCreaturePermanent(filter)); + ability.addTarget(new TargetControlledCreaturePermanent(StaticFilters.FILTER_ANOTHER_TARGET_CREATURE_YOU_CONTROL)); this.addAbility(ability); } diff --git a/Mage.Sets/src/mage/cards/a/AvabruckCaretaker.java b/Mage.Sets/src/mage/cards/a/AvabruckCaretaker.java index f2f7336a064..d966fab9d01 100644 --- a/Mage.Sets/src/mage/cards/a/AvabruckCaretaker.java +++ b/Mage.Sets/src/mage/cards/a/AvabruckCaretaker.java @@ -12,9 +12,7 @@ import mage.constants.CardType; import mage.constants.SubType; import mage.constants.TargetController; import mage.counters.CounterType; -import mage.filter.FilterPermanent; -import mage.filter.common.FilterControlledCreaturePermanent; -import mage.filter.predicate.mageobject.AnotherPredicate; +import mage.filter.StaticFilters; import mage.target.TargetPermanent; import java.util.UUID; @@ -24,13 +22,6 @@ import java.util.UUID; */ public final class AvabruckCaretaker extends CardImpl { - private static final FilterPermanent filter - = new FilterControlledCreaturePermanent("another target creature you control"); - - static { - filter.add(AnotherPredicate.instance); - } - public AvabruckCaretaker(UUID ownerId, CardSetInfo setInfo) { super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{4}{G}{G}"); @@ -49,7 +40,7 @@ public final class AvabruckCaretaker extends CardImpl { CounterType.P1P1.createInstance(2) ), TargetController.YOU, false ); - ability.addTarget(new TargetPermanent(filter)); + ability.addTarget(new TargetPermanent(StaticFilters.FILTER_ANOTHER_TARGET_CREATURE_YOU_CONTROL)); this.addAbility(ability); // Daybound diff --git a/Mage.Sets/src/mage/cards/b/BreachingHippocamp.java b/Mage.Sets/src/mage/cards/b/BreachingHippocamp.java index 4f7b44ad426..69ec028f5f4 100644 --- a/Mage.Sets/src/mage/cards/b/BreachingHippocamp.java +++ b/Mage.Sets/src/mage/cards/b/BreachingHippocamp.java @@ -1,4 +1,3 @@ - package mage.cards.b; import java.util.UUID; @@ -11,8 +10,7 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.SubType; -import mage.filter.common.FilterControlledCreaturePermanent; -import mage.filter.predicate.mageobject.AnotherPredicate; +import mage.filter.StaticFilters; import mage.target.common.TargetControlledCreaturePermanent; /** @@ -21,11 +19,6 @@ import mage.target.common.TargetControlledCreaturePermanent; */ public final class BreachingHippocamp extends CardImpl { - private static final FilterControlledCreaturePermanent filter = new FilterControlledCreaturePermanent("another target creature you control"); - static { - filter.add(AnotherPredicate.instance); - } - public BreachingHippocamp(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{3}{U}"); this.subtype.add(SubType.HORSE, SubType.FISH); @@ -37,7 +30,7 @@ public final class BreachingHippocamp extends CardImpl { this.addAbility(FlashAbility.getInstance()); // When Breaching Hippocamp enters the battlefield, untap another target creature you control. Ability ability = new EntersBattlefieldTriggeredAbility(new UntapTargetEffect(), false); - ability.addTarget(new TargetControlledCreaturePermanent(1,1,filter, false)); + ability.addTarget(new TargetControlledCreaturePermanent(1,1, StaticFilters.FILTER_ANOTHER_TARGET_CREATURE_YOU_CONTROL, false)); this.addAbility(ability); } diff --git a/Mage.Sets/src/mage/cards/c/ChaosTerminatorLord.java b/Mage.Sets/src/mage/cards/c/ChaosTerminatorLord.java index 35302989dd4..427c6401d93 100644 --- a/Mage.Sets/src/mage/cards/c/ChaosTerminatorLord.java +++ b/Mage.Sets/src/mage/cards/c/ChaosTerminatorLord.java @@ -10,9 +10,7 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.SubType; import mage.constants.TargetController; -import mage.filter.FilterPermanent; -import mage.filter.common.FilterControlledCreaturePermanent; -import mage.filter.predicate.mageobject.AnotherPredicate; +import mage.filter.StaticFilters; import mage.target.TargetPermanent; import java.util.UUID; @@ -22,13 +20,6 @@ import java.util.UUID; */ public final class ChaosTerminatorLord extends CardImpl { - private static final FilterPermanent filter - = new FilterControlledCreaturePermanent("another target creature you control"); - - static { - filter.add(AnotherPredicate.instance); - } - public ChaosTerminatorLord(UUID ownerId, CardSetInfo setInfo) { super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{3}{R}"); @@ -42,7 +33,7 @@ public final class ChaosTerminatorLord extends CardImpl { new GainAbilityTargetEffect(DoubleStrikeAbility.getInstance()), TargetController.YOU, false ); - ability.addTarget(new TargetPermanent(filter)); + ability.addTarget(new TargetPermanent(StaticFilters.FILTER_ANOTHER_TARGET_CREATURE_YOU_CONTROL)); this.addAbility(ability.withFlavorWord("Lord of Chaos")); } diff --git a/Mage.Sets/src/mage/cards/c/CharmedClothier.java b/Mage.Sets/src/mage/cards/c/CharmedClothier.java index 63db318f2cc..147d5e9a2d5 100644 --- a/Mage.Sets/src/mage/cards/c/CharmedClothier.java +++ b/Mage.Sets/src/mage/cards/c/CharmedClothier.java @@ -33,7 +33,7 @@ public final class CharmedClothier extends CardImpl { // When Charmed Clothier enters the battlefield, create a Royal Role token attached to another target creature you control. Ability ability = new EntersBattlefieldTriggeredAbility(new CreateRoleAttachedTargetEffect(RoleType.ROYAL)); - ability.addTarget(new TargetPermanent(StaticFilters.FILTER_ANOTHER_CREATURE_YOU_CONTROL)); + ability.addTarget(new TargetPermanent(StaticFilters.FILTER_ANOTHER_TARGET_CREATURE_YOU_CONTROL)); this.addAbility(ability); } diff --git a/Mage.Sets/src/mage/cards/c/Chewbacca.java b/Mage.Sets/src/mage/cards/c/Chewbacca.java index d82c78f7a6e..964513320ee 100644 --- a/Mage.Sets/src/mage/cards/c/Chewbacca.java +++ b/Mage.Sets/src/mage/cards/c/Chewbacca.java @@ -1,4 +1,3 @@ - package mage.cards.c; import java.util.UUID; @@ -13,8 +12,7 @@ import mage.constants.CardType; import mage.constants.SubType; import mage.constants.Duration; import mage.constants.SuperType; -import mage.filter.common.FilterControlledCreaturePermanent; -import mage.filter.predicate.mageobject.AnotherPredicate; +import mage.filter.StaticFilters; import mage.target.common.TargetControlledCreaturePermanent; /** @@ -23,12 +21,6 @@ import mage.target.common.TargetControlledCreaturePermanent; */ public final class Chewbacca extends CardImpl { - private static final FilterControlledCreaturePermanent filter = new FilterControlledCreaturePermanent("another target creature you control"); - - static { - filter.add(AnotherPredicate.instance); - } - public Chewbacca(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{2}{R}{G}{W}"); this.supertype.add(SuperType.LEGENDARY); @@ -42,7 +34,7 @@ public final class Chewbacca extends CardImpl { // Whenever Chewbacca attacks or blocks, another target creature you control gets +3/+3 until end of turn. Ability ability = new AttacksOrBlocksTriggeredAbility(new BoostTargetEffect(3, 3, Duration.EndOfTurn), false); - ability.addTarget(new TargetControlledCreaturePermanent(filter)); + ability.addTarget(new TargetControlledCreaturePermanent(StaticFilters.FILTER_ANOTHER_TARGET_CREATURE_YOU_CONTROL)); this.addAbility(ability); } diff --git a/Mage.Sets/src/mage/cards/d/DeputyOfAcquittals.java b/Mage.Sets/src/mage/cards/d/DeputyOfAcquittals.java index 44e8443105a..11e418b1137 100644 --- a/Mage.Sets/src/mage/cards/d/DeputyOfAcquittals.java +++ b/Mage.Sets/src/mage/cards/d/DeputyOfAcquittals.java @@ -1,7 +1,5 @@ - package mage.cards.d; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.EntersBattlefieldTriggeredAbility; @@ -11,11 +9,11 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.SubType; -import mage.constants.TargetController; -import mage.filter.common.FilterCreaturePermanent; -import mage.filter.predicate.mageobject.AnotherPredicate; +import mage.filter.StaticFilters; import mage.target.Target; -import mage.target.common.TargetCreaturePermanent; +import mage.target.TargetPermanent; + +import java.util.UUID; /** * @@ -23,12 +21,6 @@ import mage.target.common.TargetCreaturePermanent; */ public final class DeputyOfAcquittals extends CardImpl { - private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("another target creature you control"); - static { - filter.add(AnotherPredicate.instance); - filter.add(TargetController.YOU.getControllerPredicate()); - } - public DeputyOfAcquittals(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{W}{U}"); this.subtype.add(SubType.HUMAN); @@ -41,7 +33,7 @@ public final class DeputyOfAcquittals extends CardImpl { this.addAbility(FlashAbility.getInstance()); // When Deputy of Acquittals enters the battlefield, you may return another target creature you control to its owner's hand. Ability ability = new EntersBattlefieldTriggeredAbility(new ReturnToHandTargetEffect(), true); - Target target = new TargetCreaturePermanent(filter); + Target target = new TargetPermanent(StaticFilters.FILTER_ANOTHER_TARGET_CREATURE_YOU_CONTROL); ability.addTarget(target); this.addAbility(ability); } diff --git a/Mage.Sets/src/mage/cards/d/DistinguishedConjurer.java b/Mage.Sets/src/mage/cards/d/DistinguishedConjurer.java index a0af654cbe2..6a09a227cd5 100644 --- a/Mage.Sets/src/mage/cards/d/DistinguishedConjurer.java +++ b/Mage.Sets/src/mage/cards/d/DistinguishedConjurer.java @@ -12,7 +12,7 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.SubType; -import mage.filter.common.FilterControlledCreaturePermanent; +import mage.filter.StaticFilters; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.mageobject.AnotherPredicate; import mage.target.common.TargetControlledCreaturePermanent; @@ -26,12 +26,9 @@ public final class DistinguishedConjurer extends CardImpl { private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("another creature"); - private static final FilterControlledCreaturePermanent filter2 - = new FilterControlledCreaturePermanent("another target creature you control"); static { filter.add(AnotherPredicate.instance); - filter2.add(AnotherPredicate.instance); } public DistinguishedConjurer(UUID ownerId, CardSetInfo setInfo) { @@ -48,7 +45,7 @@ public final class DistinguishedConjurer extends CardImpl { // {4}{W}, {T}: Exile another target creature you control, then return it to the battlefield under its owner’s control. Ability ability = new SimpleActivatedAbility(new ExileThenReturnTargetEffect(false, false), new ManaCostsImpl<>("{4}{W}")); ability.addCost(new TapSourceCost()); - ability.addTarget(new TargetControlledCreaturePermanent(filter2)); + ability.addTarget(new TargetControlledCreaturePermanent(StaticFilters.FILTER_ANOTHER_TARGET_CREATURE_YOU_CONTROL)); this.addAbility(ability); } diff --git a/Mage.Sets/src/mage/cards/e/EfreetWeaponmaster.java b/Mage.Sets/src/mage/cards/e/EfreetWeaponmaster.java index a885cfff899..6df437039be 100644 --- a/Mage.Sets/src/mage/cards/e/EfreetWeaponmaster.java +++ b/Mage.Sets/src/mage/cards/e/EfreetWeaponmaster.java @@ -1,4 +1,3 @@ - package mage.cards.e; import java.util.UUID; @@ -14,8 +13,7 @@ import mage.constants.CardType; import mage.constants.SubType; import mage.constants.Duration; import mage.constants.Zone; -import mage.filter.common.FilterControlledCreaturePermanent; -import mage.filter.predicate.mageobject.AnotherPredicate; +import mage.filter.StaticFilters; import mage.game.Game; import mage.game.events.GameEvent; import mage.game.permanent.Permanent; @@ -57,15 +55,9 @@ public final class EfreetWeaponmaster extends CardImpl { class EfreetWeaponmasterAbility extends TriggeredAbilityImpl { - private static final FilterControlledCreaturePermanent filter = new FilterControlledCreaturePermanent("another target creature you control"); - - static { - filter.add(AnotherPredicate.instance); - } - public EfreetWeaponmasterAbility() { super(Zone.BATTLEFIELD, new BoostTargetEffect(3,0, Duration.EndOfTurn), false); - this.addTarget(new TargetControlledCreaturePermanent(filter)); + this.addTarget(new TargetControlledCreaturePermanent(StaticFilters.FILTER_ANOTHER_TARGET_CREATURE_YOU_CONTROL)); this.setWorksFaceDown(true); setTriggerPhrase("When {this} enters the battlefield or is turned face up, "); } diff --git a/Mage.Sets/src/mage/cards/e/EmielTheBlessed.java b/Mage.Sets/src/mage/cards/e/EmielTheBlessed.java index fc44d28178a..899d12582f7 100644 --- a/Mage.Sets/src/mage/cards/e/EmielTheBlessed.java +++ b/Mage.Sets/src/mage/cards/e/EmielTheBlessed.java @@ -13,10 +13,7 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.*; import mage.counters.CounterType; -import mage.filter.FilterPermanent; import mage.filter.StaticFilters; -import mage.filter.common.FilterControlledCreaturePermanent; -import mage.filter.predicate.mageobject.AnotherPredicate; import mage.game.Game; import mage.game.permanent.Permanent; import mage.target.TargetPermanent; @@ -28,13 +25,6 @@ import java.util.UUID; */ public final class EmielTheBlessed extends CardImpl { - private static final FilterPermanent filter - = new FilterControlledCreaturePermanent("another target creature you control"); - - static { - filter.add(AnotherPredicate.instance); - } - public EmielTheBlessed(UUID ownerId, CardSetInfo setInfo) { super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{2}{W}{W}"); @@ -45,7 +35,7 @@ public final class EmielTheBlessed extends CardImpl { // {3}: Exile another target creature you control, then return it to the battlefield under its owner's control. Ability ability = new SimpleActivatedAbility(new ExileThenReturnTargetEffect(false, false), new GenericManaCost(3)); - ability.addTarget(new TargetPermanent(filter)); + ability.addTarget(new TargetPermanent(StaticFilters.FILTER_ANOTHER_TARGET_CREATURE_YOU_CONTROL)); this.addAbility(ability); // Whenever another creature enters the battlefield under your control, you may pay {G/W}. diff --git a/Mage.Sets/src/mage/cards/f/FangOfThePack.java b/Mage.Sets/src/mage/cards/f/FangOfThePack.java index 64af6c36b82..cbdb79d0e58 100644 --- a/Mage.Sets/src/mage/cards/f/FangOfThePack.java +++ b/Mage.Sets/src/mage/cards/f/FangOfThePack.java @@ -1,4 +1,3 @@ - package mage.cards.f; import java.util.UUID; @@ -13,8 +12,7 @@ import mage.constants.CardType; import mage.constants.SubType; import mage.constants.Duration; import mage.constants.TargetController; -import mage.filter.common.FilterControlledCreaturePermanent; -import mage.filter.predicate.mageobject.AnotherPredicate; +import mage.filter.StaticFilters; import mage.target.common.TargetControlledCreaturePermanent; /** @@ -23,12 +21,6 @@ import mage.target.common.TargetControlledCreaturePermanent; */ public final class FangOfThePack extends CardImpl { - private static final FilterControlledCreaturePermanent filter = new FilterControlledCreaturePermanent("another target creature you control"); - - static { - filter.add(AnotherPredicate.instance); - } - public FangOfThePack(UUID ownerId, CardSetInfo setInfo) { super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{5}{G}"); @@ -41,7 +33,7 @@ public final class FangOfThePack extends CardImpl { // At the beginning of combat on your turn, another target creature you control gains melee until end of turn. Ability ability = new BeginningOfCombatTriggeredAbility(new GainAbilityTargetEffect(new MeleeAbility(), Duration.EndOfTurn), TargetController.YOU, false); - ability.addTarget(new TargetControlledCreaturePermanent(filter)); + ability.addTarget(new TargetControlledCreaturePermanent(StaticFilters.FILTER_ANOTHER_TARGET_CREATURE_YOU_CONTROL)); this.addAbility(ability); } diff --git a/Mage.Sets/src/mage/cards/g/GoldenGuardian.java b/Mage.Sets/src/mage/cards/g/GoldenGuardian.java index 773ad1b1c82..55491c6f17a 100644 --- a/Mage.Sets/src/mage/cards/g/GoldenGuardian.java +++ b/Mage.Sets/src/mage/cards/g/GoldenGuardian.java @@ -1,4 +1,3 @@ - package mage.cards.g; import java.util.UUID; @@ -19,8 +18,7 @@ import mage.constants.Duration; import mage.constants.Outcome; import mage.constants.SubType; import mage.constants.Zone; -import mage.filter.common.FilterControlledCreaturePermanent; -import mage.filter.predicate.mageobject.AnotherPredicate; +import mage.filter.StaticFilters; import mage.game.Game; import mage.game.events.GameEvent; import mage.game.events.ZoneChangeEvent; @@ -34,12 +32,6 @@ import mage.target.common.TargetControlledCreaturePermanent; */ public final class GoldenGuardian extends CardImpl { - private static final FilterControlledCreaturePermanent filter = new FilterControlledCreaturePermanent("another target creature you control"); - - static { - filter.add(AnotherPredicate.instance); - } - public GoldenGuardian(UUID ownerId, CardSetInfo setInfo) { super(ownerId, setInfo, new CardType[]{CardType.ARTIFACT, CardType.CREATURE}, "{4}"); @@ -55,7 +47,7 @@ public final class GoldenGuardian extends CardImpl { // {2}: Golden Guardian fights another target creature you control. When Golden Guardian dies this turn, return it to the battlefield transformed under your control. this.addAbility(new TransformAbility()); Ability ability = new SimpleActivatedAbility(new GoldenGuardianEffect(), new GenericManaCost(2)); - ability.addTarget(new TargetControlledCreaturePermanent(filter)); + ability.addTarget(new TargetControlledCreaturePermanent(StaticFilters.FILTER_ANOTHER_TARGET_CREATURE_YOU_CONTROL)); ability.addEffect(new CreateDelayedTriggeredAbilityEffect(new GoldenGuardianDelayedTriggeredAbility(), false)); this.addAbility(ability); diff --git a/Mage.Sets/src/mage/cards/g/GruulBeastmaster.java b/Mage.Sets/src/mage/cards/g/GruulBeastmaster.java index 70f0fd1b563..6baeb83fd3b 100644 --- a/Mage.Sets/src/mage/cards/g/GruulBeastmaster.java +++ b/Mage.Sets/src/mage/cards/g/GruulBeastmaster.java @@ -13,9 +13,7 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Duration; import mage.constants.SubType; -import mage.filter.FilterPermanent; -import mage.filter.common.FilterControlledCreaturePermanent; -import mage.filter.predicate.mageobject.AnotherPredicate; +import mage.filter.StaticFilters; import mage.target.TargetPermanent; import java.util.UUID; @@ -25,13 +23,6 @@ import java.util.UUID; */ public final class GruulBeastmaster extends CardImpl { - private static final FilterPermanent filter - = new FilterControlledCreaturePermanent("another target creature you control"); - - static { - filter.add(AnotherPredicate.instance); - } - private static final DynamicValue xValue = new SourcePermanentPowerCount(false); public GruulBeastmaster(UUID ownerId, CardSetInfo setInfo) { @@ -46,7 +37,7 @@ public final class GruulBeastmaster extends CardImpl { // Whenever Gruul Beastmaster attacks, another target creature you control gets +X/+0 until end of turn, where X is Gruul Beastmaster's power. Ability ability = new AttacksTriggeredAbility(new BoostTargetEffect( xValue, StaticValue.get(0), Duration.EndOfTurn), false); - ability.addTarget(new TargetPermanent(filter)); + ability.addTarget(new TargetPermanent(StaticFilters.FILTER_ANOTHER_TARGET_CREATURE_YOU_CONTROL)); this.addAbility(ability); } diff --git a/Mage.Sets/src/mage/cards/g/GuardianShieldBearer.java b/Mage.Sets/src/mage/cards/g/GuardianShieldBearer.java index b59cc093359..60f273d1ca0 100644 --- a/Mage.Sets/src/mage/cards/g/GuardianShieldBearer.java +++ b/Mage.Sets/src/mage/cards/g/GuardianShieldBearer.java @@ -1,4 +1,3 @@ - package mage.cards.g; import java.util.UUID; @@ -13,8 +12,7 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.SubType; import mage.counters.CounterType; -import mage.filter.common.FilterControlledCreaturePermanent; -import mage.filter.predicate.mageobject.AnotherPredicate; +import mage.filter.StaticFilters; import mage.target.common.TargetControlledCreaturePermanent; /** @@ -23,12 +21,6 @@ import mage.target.common.TargetControlledCreaturePermanent; */ public final class GuardianShieldBearer extends CardImpl { - private static final FilterControlledCreaturePermanent filter = new FilterControlledCreaturePermanent("another target creature you control"); - - static { - filter.add(AnotherPredicate.instance); - } - public GuardianShieldBearer(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{1}{G}"); this.subtype.add(SubType.HUMAN); @@ -41,7 +33,7 @@ public final class GuardianShieldBearer extends CardImpl { // When Guardian Shield-Bearer is turned face up, put a +1/+1 counter on another target creature you control. Ability ability = new TurnedFaceUpSourceTriggeredAbility(new AddCountersTargetEffect(CounterType.P1P1.createInstance()), false); - ability.addTarget(new TargetControlledCreaturePermanent(filter)); + ability.addTarget(new TargetControlledCreaturePermanent(StaticFilters.FILTER_ANOTHER_TARGET_CREATURE_YOU_CONTROL)); this.addAbility(ability); } diff --git a/Mage.Sets/src/mage/cards/h/HanSoloScrumrat.java b/Mage.Sets/src/mage/cards/h/HanSoloScrumrat.java index 117a7874cef..20b5401990a 100644 --- a/Mage.Sets/src/mage/cards/h/HanSoloScrumrat.java +++ b/Mage.Sets/src/mage/cards/h/HanSoloScrumrat.java @@ -13,8 +13,7 @@ import mage.constants.*; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.counters.CounterType; -import mage.filter.common.FilterControlledCreaturePermanent; -import mage.filter.predicate.mageobject.AnotherPredicate; +import mage.filter.StaticFilters; import mage.game.Game; import mage.game.events.GameEvent; import mage.game.permanent.Permanent; @@ -26,12 +25,6 @@ import mage.target.common.TargetControlledCreaturePermanent; */ public final class HanSoloScrumrat extends CardImpl { - private static final FilterControlledCreaturePermanent filter = new FilterControlledCreaturePermanent("another target creature you control"); - - static { - filter.add(AnotherPredicate.instance); - } - public HanSoloScrumrat(UUID ownerId, CardSetInfo setInfo) { super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{2}{W}"); @@ -49,7 +42,7 @@ public final class HanSoloScrumrat extends CardImpl { // Whenever Han Solo, Scrumrat deals damage during your turn, put a +1/+1 counter on another target creature you control. Ability ability = new HanSoloScrumratTriggeredAbility(); - ability.addTarget(new TargetControlledCreaturePermanent(filter)); + ability.addTarget(new TargetControlledCreaturePermanent(StaticFilters.FILTER_ANOTHER_TARGET_CREATURE_YOU_CONTROL)); this.addAbility(ability); } @@ -92,4 +85,4 @@ class HanSoloScrumratTriggeredAbility extends TriggeredAbilityImpl { && game.isActivePlayer(source.getControllerId()) && event.getSourceId().equals(this.getSourceId()); } -} \ No newline at end of file +} diff --git a/Mage.Sets/src/mage/cards/h/HaradrimSpearmaster.java b/Mage.Sets/src/mage/cards/h/HaradrimSpearmaster.java index 8d43fd40e02..3ac5db3e98c 100644 --- a/Mage.Sets/src/mage/cards/h/HaradrimSpearmaster.java +++ b/Mage.Sets/src/mage/cards/h/HaradrimSpearmaster.java @@ -10,9 +10,7 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.SubType; import mage.constants.TargetController; -import mage.filter.FilterPermanent; -import mage.filter.common.FilterControlledCreaturePermanent; -import mage.filter.predicate.mageobject.AnotherPredicate; +import mage.filter.StaticFilters; import mage.target.TargetPermanent; import java.util.UUID; @@ -22,12 +20,6 @@ import java.util.UUID; */ public final class HaradrimSpearmaster extends CardImpl { - private static final FilterPermanent filter = new FilterControlledCreaturePermanent("another target creature you control"); - - static { - filter.add(AnotherPredicate.instance); - } - public HaradrimSpearmaster(UUID ownerId, CardSetInfo setInfo) { super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{2}{R}"); @@ -43,7 +35,7 @@ public final class HaradrimSpearmaster extends CardImpl { Ability ability = new BeginningOfCombatTriggeredAbility( new BoostTargetEffect(1, 0), TargetController.YOU, false ); - ability.addTarget(new TargetPermanent(filter)); + ability.addTarget(new TargetPermanent(StaticFilters.FILTER_ANOTHER_TARGET_CREATURE_YOU_CONTROL)); this.addAbility(ability); } diff --git a/Mage.Sets/src/mage/cards/h/HeavenlyQilin.java b/Mage.Sets/src/mage/cards/h/HeavenlyQilin.java index 682b4287afe..fc3dea1f2b8 100644 --- a/Mage.Sets/src/mage/cards/h/HeavenlyQilin.java +++ b/Mage.Sets/src/mage/cards/h/HeavenlyQilin.java @@ -11,8 +11,7 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Duration; import mage.constants.SubType; -import mage.filter.common.FilterControlledCreaturePermanent; -import mage.filter.predicate.mageobject.AnotherPredicate; +import mage.filter.StaticFilters; import mage.target.TargetPermanent; /** @@ -21,12 +20,6 @@ import mage.target.TargetPermanent; */ public final class HeavenlyQilin extends CardImpl { - private static final FilterControlledCreaturePermanent filter = new FilterControlledCreaturePermanent("another target creature you control"); - - static { - filter.add(AnotherPredicate.instance); - } - public HeavenlyQilin(UUID ownerId, CardSetInfo setInfo) { super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{2}{W}"); @@ -39,7 +32,7 @@ public final class HeavenlyQilin extends CardImpl { // Whenenver Heavenly Qilin attacks, another target creature you control gains flying until end of turn. Ability ability = new AttacksTriggeredAbility(new GainAbilityTargetEffect(FlyingAbility.getInstance(), Duration.EndOfTurn)); - ability.addTarget(new TargetPermanent(filter)); + ability.addTarget(new TargetPermanent(StaticFilters.FILTER_ANOTHER_TARGET_CREATURE_YOU_CONTROL)); this.addAbility(ability); } diff --git a/Mage.Sets/src/mage/cards/j/JediSentinel.java b/Mage.Sets/src/mage/cards/j/JediSentinel.java index ff0ee3b6ef0..fdf53233d97 100644 --- a/Mage.Sets/src/mage/cards/j/JediSentinel.java +++ b/Mage.Sets/src/mage/cards/j/JediSentinel.java @@ -11,8 +11,6 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.SubType; import mage.filter.StaticFilters; -import mage.filter.common.FilterControlledCreaturePermanent; -import mage.filter.predicate.mageobject.AnotherPredicate; import mage.target.common.TargetControlledCreaturePermanent; import mage.target.common.TargetCreaturePermanent; import mage.target.targetpointer.EachTargetPointer; @@ -24,12 +22,6 @@ import java.util.UUID; */ public final class JediSentinel extends CardImpl { - private static final FilterControlledCreaturePermanent filter1 = new FilterControlledCreaturePermanent("another target creature you control"); - - static { - filter1.add(AnotherPredicate.instance); - } - public JediSentinel(UUID ownerId, CardSetInfo setInfo) { super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{G}{U}{W}"); this.subtype.add(SubType.TWILEK); @@ -43,7 +35,7 @@ public final class JediSentinel extends CardImpl { // When Jedi Sentinel enters the battlefield, return another target creature you control and target creature you don't control to their owners' hands. Effect effect = new ReturnToHandTargetEffect().setTargetPointer(new EachTargetPointer()); Ability ability = new EntersBattlefieldTriggeredAbility(effect); - ability.addTarget(new TargetControlledCreaturePermanent(filter1)); + ability.addTarget(new TargetControlledCreaturePermanent(StaticFilters.FILTER_ANOTHER_TARGET_CREATURE_YOU_CONTROL)); ability.addTarget(new TargetCreaturePermanent(StaticFilters.FILTER_CREATURE_YOU_DONT_CONTROL)); this.addAbility(ability); } diff --git a/Mage.Sets/src/mage/cards/j/JeskaiBarricade.java b/Mage.Sets/src/mage/cards/j/JeskaiBarricade.java index 96abb9c9bf2..4df70be8bff 100644 --- a/Mage.Sets/src/mage/cards/j/JeskaiBarricade.java +++ b/Mage.Sets/src/mage/cards/j/JeskaiBarricade.java @@ -1,7 +1,6 @@ package mage.cards.j; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.EntersBattlefieldTriggeredAbility; @@ -12,23 +11,17 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.SubType; -import mage.constants.TargetController; -import mage.filter.common.FilterCreaturePermanent; -import mage.filter.predicate.mageobject.AnotherPredicate; +import mage.filter.StaticFilters; import mage.target.Target; -import mage.target.common.TargetCreaturePermanent; +import mage.target.common.TargetControlledCreaturePermanent; + +import java.util.UUID; /** * * @author fireshoes */ public final class JeskaiBarricade extends CardImpl { - - private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("another target creature you control"); - static { - filter.add(AnotherPredicate.instance); - filter.add(TargetController.YOU.getControllerPredicate()); - } public JeskaiBarricade(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{1}{W}"); @@ -42,7 +35,7 @@ public final class JeskaiBarricade extends CardImpl { this.addAbility(DefenderAbility.getInstance()); // When Jeskai Barricade enters the battlefield, you may return another target creature you control to its owner's hand. Ability ability = new EntersBattlefieldTriggeredAbility(new ReturnToHandTargetEffect(), true); - Target target = new TargetCreaturePermanent(filter); + Target target = new TargetControlledCreaturePermanent(StaticFilters.FILTER_ANOTHER_TARGET_CREATURE_YOU_CONTROL); ability.addTarget(target); this.addAbility(ability); } diff --git a/Mage.Sets/src/mage/cards/n/N1Starfighter.java b/Mage.Sets/src/mage/cards/n/N1Starfighter.java index 61bf98e83f9..2d7997412ad 100644 --- a/Mage.Sets/src/mage/cards/n/N1Starfighter.java +++ b/Mage.Sets/src/mage/cards/n/N1Starfighter.java @@ -4,7 +4,6 @@ import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.DealsCombatDamageToAPlayerTriggeredAbility; import mage.abilities.costs.mana.ManaCostsImpl; -import mage.abilities.effects.Effect; import mage.abilities.effects.common.DoIfCostPaid; import mage.abilities.effects.common.ExileTargetForSourceEffect; import mage.abilities.effects.common.ReturnToBattlefieldUnderOwnerControlTargetEffect; @@ -13,8 +12,7 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.SubType; -import mage.filter.common.FilterControlledCreaturePermanent; -import mage.filter.predicate.mageobject.AnotherPredicate; +import mage.filter.StaticFilters; import mage.target.common.TargetControlledCreaturePermanent; import java.util.UUID; @@ -24,12 +22,6 @@ import java.util.UUID; */ public final class N1Starfighter extends CardImpl { - private static final FilterControlledCreaturePermanent filter = new FilterControlledCreaturePermanent("another target creature you control"); - - static { - filter.add(AnotherPredicate.instance); - } - public N1Starfighter(UUID ownerId, CardSetInfo setInfo) { super(ownerId, setInfo, new CardType[]{CardType.ARTIFACT, CardType.CREATURE}, "{1}{W/U}{W/U}"); this.subtype.add(SubType.STARSHIP); @@ -45,7 +37,7 @@ public final class N1Starfighter extends CardImpl { doIfCostPaid.addEffect(new ReturnToBattlefieldUnderOwnerControlTargetEffect(false, false).concatBy(", then")); Ability ability = new DealsCombatDamageToAPlayerTriggeredAbility(doIfCostPaid, false); - ability.addTarget(new TargetControlledCreaturePermanent(filter)); + ability.addTarget(new TargetControlledCreaturePermanent(StaticFilters.FILTER_ANOTHER_TARGET_CREATURE_YOU_CONTROL)); this.addAbility(ability); } diff --git a/Mage.Sets/src/mage/cards/n/NephaliaSmuggler.java b/Mage.Sets/src/mage/cards/n/NephaliaSmuggler.java index d0b1f0c19bc..096c3411c8e 100644 --- a/Mage.Sets/src/mage/cards/n/NephaliaSmuggler.java +++ b/Mage.Sets/src/mage/cards/n/NephaliaSmuggler.java @@ -11,8 +11,7 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.SubType; import mage.constants.Zone; -import mage.filter.common.FilterControlledCreaturePermanent; -import mage.filter.predicate.mageobject.AnotherPredicate; +import mage.filter.StaticFilters; import mage.target.common.TargetControlledCreaturePermanent; import java.util.UUID; @@ -22,12 +21,6 @@ import java.util.UUID; */ public final class NephaliaSmuggler extends CardImpl { - private static final FilterControlledCreaturePermanent filter = new FilterControlledCreaturePermanent("another target creature you control"); - - static { - filter.add(AnotherPredicate.instance); - } - public NephaliaSmuggler(UUID ownerId, CardSetInfo setInfo) { super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{U}"); this.subtype.add(SubType.HUMAN); @@ -39,7 +32,7 @@ public final class NephaliaSmuggler extends CardImpl { // {3}{U}, {tap}: Exile another target creature you control, then return that card to the battlefield under your control. Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new ExileThenReturnTargetEffect(true, true), new ManaCostsImpl<>("{3}{U}")); ability.addCost(new TapSourceCost()); - ability.addTarget(new TargetControlledCreaturePermanent(filter)); + ability.addTarget(new TargetControlledCreaturePermanent(StaticFilters.FILTER_ANOTHER_TARGET_CREATURE_YOU_CONTROL)); this.addAbility(ability); } diff --git a/Mage.Sets/src/mage/cards/n/NiambiEsteemedSpeaker.java b/Mage.Sets/src/mage/cards/n/NiambiEsteemedSpeaker.java index 1dead1904e1..43efddd6e06 100644 --- a/Mage.Sets/src/mage/cards/n/NiambiEsteemedSpeaker.java +++ b/Mage.Sets/src/mage/cards/n/NiambiEsteemedSpeaker.java @@ -18,9 +18,7 @@ import mage.constants.Outcome; import mage.constants.SubType; import mage.constants.SuperType; import mage.filter.FilterCard; -import mage.filter.FilterPermanent; -import mage.filter.common.FilterControlledCreaturePermanent; -import mage.filter.predicate.mageobject.AnotherPredicate; +import mage.filter.StaticFilters; import mage.game.Game; import mage.game.permanent.Permanent; import mage.players.Player; @@ -34,12 +32,9 @@ import java.util.UUID; */ public final class NiambiEsteemedSpeaker extends CardImpl { - private static final FilterPermanent filter - = new FilterControlledCreaturePermanent("another target creature you control"); private static final FilterCard filter2 = new FilterCard("a legendary card"); static { - filter.add(AnotherPredicate.instance); filter2.add(SuperType.LEGENDARY.getPredicate()); } @@ -58,7 +53,7 @@ public final class NiambiEsteemedSpeaker extends CardImpl { // When Niambi, Esteemed Speaker enters the battlefield, you may return another target creature you control to its owner's hand. If you do, you gain life equal to that creature's converted mana cost. Ability ability = new EntersBattlefieldTriggeredAbility(new ReturnToHandTargetEffect(), true); ability.addEffect(new NiambiEsteemedSpeakerEffect()); - ability.addTarget(new TargetPermanent(filter)); + ability.addTarget(new TargetPermanent(StaticFilters.FILTER_ANOTHER_TARGET_CREATURE_YOU_CONTROL)); this.addAbility(ability); // {1}{W}{U}, {T}, Discard a legendary card: Draw two cards. @@ -106,4 +101,4 @@ class NiambiEsteemedSpeakerEffect extends OneShotEffect { return permanent.getManaValue() > 0 && player.gainLife(permanent.getManaValue(), game, source) > 0; } -} \ No newline at end of file +} diff --git a/Mage.Sets/src/mage/cards/o/Oliphaunt.java b/Mage.Sets/src/mage/cards/o/Oliphaunt.java index 2ca3c7d2c72..bca4e46085d 100644 --- a/Mage.Sets/src/mage/cards/o/Oliphaunt.java +++ b/Mage.Sets/src/mage/cards/o/Oliphaunt.java @@ -12,9 +12,7 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.SubType; -import mage.filter.FilterPermanent; -import mage.filter.common.FilterControlledCreaturePermanent; -import mage.filter.predicate.mageobject.AnotherPredicate; +import mage.filter.StaticFilters; import mage.target.TargetPermanent; import java.util.UUID; @@ -23,13 +21,6 @@ import java.util.UUID; * @author TheElk801 */ public final class Oliphaunt extends CardImpl { - - private static final FilterPermanent filter - = new FilterControlledCreaturePermanent("another target creature you control"); - - static { - filter.add(AnotherPredicate.instance); - } public Oliphaunt(UUID ownerId, CardSetInfo setInfo) { super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{5}{R}"); @@ -46,7 +37,7 @@ public final class Oliphaunt extends CardImpl { .setText("another target creature you control gets +2/+0")); ability.addEffect(new GainAbilityTargetEffect(TrampleAbility.getInstance()) .setText("and gains trample until end of turn")); - ability.addTarget(new TargetPermanent(filter)); + ability.addTarget(new TargetPermanent(StaticFilters.FILTER_ANOTHER_TARGET_CREATURE_YOU_CONTROL)); this.addAbility(ability); // Mountaincycling {1} diff --git a/Mage.Sets/src/mage/cards/p/PhantomSteed.java b/Mage.Sets/src/mage/cards/p/PhantomSteed.java index 1613cbb2233..e52885b95d1 100644 --- a/Mage.Sets/src/mage/cards/p/PhantomSteed.java +++ b/Mage.Sets/src/mage/cards/p/PhantomSteed.java @@ -15,9 +15,7 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Outcome; import mage.constants.SubType; -import mage.filter.FilterPermanent; -import mage.filter.common.FilterControlledCreaturePermanent; -import mage.filter.predicate.mageobject.AnotherPredicate; +import mage.filter.StaticFilters; import mage.game.ExileZone; import mage.game.Game; import mage.game.permanent.Permanent; @@ -37,12 +35,6 @@ import java.util.stream.Collectors; */ public final class PhantomSteed extends CardImpl { - private static final FilterPermanent filter = new FilterControlledCreaturePermanent("another target creature you control"); - - static { - filter.add(AnotherPredicate.instance); - } - public PhantomSteed(UUID ownerId, CardSetInfo setInfo) { super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{3}{U}"); @@ -56,7 +48,7 @@ public final class PhantomSteed extends CardImpl { // When Phantom Steed enters the battlefield, exile another target creature you control until Phantom Steed leaves the battlefield. Ability ability = new EntersBattlefieldTriggeredAbility(new ExileUntilSourceLeavesEffect()); - ability.addTarget(new TargetPermanent(filter)); + ability.addTarget(new TargetPermanent(StaticFilters.FILTER_ANOTHER_TARGET_CREATURE_YOU_CONTROL)); this.addAbility(ability); // Whenever Phantom Steed attacks, create a tapped and attacking token that's a copy of the exiled creature, except it's an Illusion in addition to its other types. Sacrifice that token at end of combat. diff --git a/Mage.Sets/src/mage/cards/r/RadhaCoalitionWarlord.java b/Mage.Sets/src/mage/cards/r/RadhaCoalitionWarlord.java index 8565dee7a9d..cadc4a00d88 100644 --- a/Mage.Sets/src/mage/cards/r/RadhaCoalitionWarlord.java +++ b/Mage.Sets/src/mage/cards/r/RadhaCoalitionWarlord.java @@ -9,9 +9,7 @@ import mage.abilities.hint.common.DomainHint; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.*; -import mage.filter.FilterPermanent; -import mage.filter.common.FilterControlledCreaturePermanent; -import mage.filter.predicate.mageobject.AnotherPredicate; +import mage.filter.StaticFilters; import mage.target.TargetPermanent; import java.util.UUID; @@ -21,13 +19,6 @@ import java.util.UUID; */ public final class RadhaCoalitionWarlord extends CardImpl { - private static final FilterPermanent filter - = new FilterControlledCreaturePermanent("another target creature you control"); - - static { - filter.add(AnotherPredicate.instance); - } - public RadhaCoalitionWarlord(UUID ownerId, CardSetInfo setInfo) { super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{2}{R}{G}"); @@ -41,7 +32,7 @@ public final class RadhaCoalitionWarlord extends CardImpl { Ability ability = new BecomesTappedSourceTriggeredAbility(new BoostTargetEffect( DomainValue.REGULAR, DomainValue.REGULAR, Duration.EndOfTurn )); - ability.addTarget(new TargetPermanent(filter)); + ability.addTarget(new TargetPermanent(StaticFilters.FILTER_ANOTHER_TARGET_CREATURE_YOU_CONTROL)); this.addAbility(ability.setAbilityWord(AbilityWord.DOMAIN).addHint(DomainHint.instance)); } diff --git a/Mage.Sets/src/mage/cards/r/RoaleskApexHybrid.java b/Mage.Sets/src/mage/cards/r/RoaleskApexHybrid.java index 9bb88fa952a..47861f97e0b 100644 --- a/Mage.Sets/src/mage/cards/r/RoaleskApexHybrid.java +++ b/Mage.Sets/src/mage/cards/r/RoaleskApexHybrid.java @@ -14,9 +14,7 @@ import mage.constants.CardType; import mage.constants.SubType; import mage.constants.SuperType; import mage.counters.CounterType; -import mage.filter.FilterPermanent; -import mage.filter.common.FilterControlledCreaturePermanent; -import mage.filter.predicate.mageobject.AnotherPredicate; +import mage.filter.StaticFilters; import mage.target.TargetPermanent; import java.util.UUID; @@ -26,13 +24,6 @@ import java.util.UUID; */ public final class RoaleskApexHybrid extends CardImpl { - private static final FilterPermanent filter - = new FilterControlledCreaturePermanent("another target creature you control"); - - static { - filter.add(AnotherPredicate.instance); - } - public RoaleskApexHybrid(UUID ownerId, CardSetInfo setInfo) { super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{2}{G}{G}{U}"); @@ -52,7 +43,7 @@ public final class RoaleskApexHybrid extends CardImpl { Ability ability = new EntersBattlefieldTriggeredAbility( new AddCountersTargetEffect(CounterType.P1P1.createInstance(2)) ); - ability.addTarget(new TargetPermanent(filter)); + ability.addTarget(new TargetPermanent(StaticFilters.FILTER_ANOTHER_TARGET_CREATURE_YOU_CONTROL)); this.addAbility(ability); // When Roalsk dies, proliferate, then proliferate again. (Choose any number of permanents and/or players, then give each another counter of each kind already there. Then do it again.) diff --git a/Mage.Sets/src/mage/cards/s/SelflessSamurai.java b/Mage.Sets/src/mage/cards/s/SelflessSamurai.java index af1921c859a..9db90c2dc00 100644 --- a/Mage.Sets/src/mage/cards/s/SelflessSamurai.java +++ b/Mage.Sets/src/mage/cards/s/SelflessSamurai.java @@ -13,10 +13,7 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Duration; import mage.constants.SubType; -import mage.filter.FilterPermanent; import mage.filter.StaticFilters; -import mage.filter.common.FilterControlledCreaturePermanent; -import mage.filter.predicate.mageobject.AnotherPredicate; import mage.target.TargetPermanent; import java.util.UUID; @@ -26,13 +23,6 @@ import java.util.UUID; */ public final class SelflessSamurai extends CardImpl { - private static final FilterPermanent filter - = new FilterControlledCreaturePermanent("another target creature you control"); - - static { - filter.add(AnotherPredicate.instance); - } - public SelflessSamurai(UUID ownerId, CardSetInfo setInfo) { super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{1}{W}"); @@ -52,7 +42,7 @@ public final class SelflessSamurai extends CardImpl { Ability ability = new SimpleActivatedAbility(new GainAbilityTargetEffect( IndestructibleAbility.getInstance(), Duration.EndOfTurn ), new SacrificeSourceCost()); - ability.addTarget(new TargetPermanent(filter)); + ability.addTarget(new TargetPermanent(StaticFilters.FILTER_ANOTHER_TARGET_CREATURE_YOU_CONTROL)); this.addAbility(ability); } diff --git a/Mage.Sets/src/mage/cards/s/SelflessSavior.java b/Mage.Sets/src/mage/cards/s/SelflessSavior.java index d336af9c87c..4bdbb535672 100644 --- a/Mage.Sets/src/mage/cards/s/SelflessSavior.java +++ b/Mage.Sets/src/mage/cards/s/SelflessSavior.java @@ -11,9 +11,7 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Duration; import mage.constants.SubType; -import mage.filter.FilterPermanent; -import mage.filter.common.FilterControlledCreaturePermanent; -import mage.filter.predicate.mageobject.AnotherPredicate; +import mage.filter.StaticFilters; import mage.target.TargetPermanent; import java.util.UUID; @@ -23,13 +21,6 @@ import java.util.UUID; */ public final class SelflessSavior extends CardImpl { - private static final FilterPermanent filter - = new FilterControlledCreaturePermanent("another target creature you control"); - - static { - filter.add(AnotherPredicate.instance); - } - public SelflessSavior(UUID ownerId, CardSetInfo setInfo) { super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{W}"); @@ -41,7 +32,7 @@ public final class SelflessSavior extends CardImpl { Ability ability = new SimpleActivatedAbility(new GainAbilityTargetEffect( IndestructibleAbility.getInstance(), Duration.EndOfTurn ), new SacrificeSourceCost()); - ability.addTarget(new TargetPermanent(filter)); + ability.addTarget(new TargetPermanent(StaticFilters.FILTER_ANOTHER_TARGET_CREATURE_YOU_CONTROL)); this.addAbility(ability); } diff --git a/Mage.Sets/src/mage/cards/s/Soulherder.java b/Mage.Sets/src/mage/cards/s/Soulherder.java index 16a0d2c0684..00af50aa311 100644 --- a/Mage.Sets/src/mage/cards/s/Soulherder.java +++ b/Mage.Sets/src/mage/cards/s/Soulherder.java @@ -13,8 +13,7 @@ import mage.constants.SubType; import mage.constants.TargetController; import mage.constants.Zone; import mage.counters.CounterType; -import mage.filter.common.FilterControlledCreaturePermanent; -import mage.filter.predicate.mageobject.AnotherPredicate; +import mage.filter.StaticFilters; import mage.game.Game; import mage.game.events.GameEvent; import mage.game.events.ZoneChangeEvent; @@ -28,13 +27,6 @@ import java.util.UUID; */ public final class Soulherder extends CardImpl { - private static final FilterControlledCreaturePermanent filter - = new FilterControlledCreaturePermanent("another target creature you control"); - - static { - filter.add(AnotherPredicate.instance); - } - public Soulherder(UUID ownerId, CardSetInfo setInfo) { super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{1}{W}{U}"); @@ -49,7 +41,7 @@ public final class Soulherder extends CardImpl { Ability ability = new BeginningOfEndStepTriggeredAbility( new ExileThenReturnTargetEffect(false, true), TargetController.YOU, true ); - ability.addTarget(new TargetControlledCreaturePermanent(filter)); + ability.addTarget(new TargetControlledCreaturePermanent(StaticFilters.FILTER_ANOTHER_TARGET_CREATURE_YOU_CONTROL)); this.addAbility(ability); } diff --git a/Mage.Sets/src/mage/cards/s/SyrArmontTheRedeemer.java b/Mage.Sets/src/mage/cards/s/SyrArmontTheRedeemer.java index 27e744da093..a27b3cbb034 100644 --- a/Mage.Sets/src/mage/cards/s/SyrArmontTheRedeemer.java +++ b/Mage.Sets/src/mage/cards/s/SyrArmontTheRedeemer.java @@ -38,7 +38,7 @@ public final class SyrArmontTheRedeemer extends CardImpl { // When Syr Armont, the Redeemer enters the battlefield, create a Monster Role token attached to another target creature you control. Ability ability = new EntersBattlefieldTriggeredAbility(new CreateRoleAttachedTargetEffect(RoleType.MONSTER)); - ability.addTarget(new TargetPermanent(StaticFilters.FILTER_ANOTHER_CREATURE_YOU_CONTROL)); + ability.addTarget(new TargetPermanent(StaticFilters.FILTER_ANOTHER_TARGET_CREATURE_YOU_CONTROL)); this.addAbility(ability); // Enchanted creatures you control get +1/+1. diff --git a/Mage.Sets/src/mage/cards/t/TaranikaAkroanVeteran.java b/Mage.Sets/src/mage/cards/t/TaranikaAkroanVeteran.java index 48d2baceb76..aa8eddf4d49 100644 --- a/Mage.Sets/src/mage/cards/t/TaranikaAkroanVeteran.java +++ b/Mage.Sets/src/mage/cards/t/TaranikaAkroanVeteran.java @@ -14,9 +14,7 @@ import mage.constants.CardType; import mage.constants.Duration; import mage.constants.SubType; import mage.constants.SuperType; -import mage.filter.FilterPermanent; -import mage.filter.common.FilterControlledCreaturePermanent; -import mage.filter.predicate.mageobject.AnotherPredicate; +import mage.filter.StaticFilters; import mage.target.TargetPermanent; import java.util.UUID; @@ -26,12 +24,6 @@ import java.util.UUID; */ public final class TaranikaAkroanVeteran extends CardImpl { - private static final FilterPermanent filter = new FilterControlledCreaturePermanent("another target creature you control"); - - static { - filter.add(AnotherPredicate.instance); - } - public TaranikaAkroanVeteran(UUID ownerId, CardSetInfo setInfo) { super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{1}{W}{W}"); @@ -51,7 +43,7 @@ public final class TaranikaAkroanVeteran extends CardImpl { ability.addEffect(new GainAbilityTargetEffect( IndestructibleAbility.getInstance(), Duration.EndOfTurn ).setText("and gains indestructible")); - ability.addTarget(new TargetPermanent(filter)); + ability.addTarget(new TargetPermanent(StaticFilters.FILTER_ANOTHER_TARGET_CREATURE_YOU_CONTROL)); this.addAbility(ability); } diff --git a/Mage.Sets/src/mage/cards/t/TenthDistrictVeteran.java b/Mage.Sets/src/mage/cards/t/TenthDistrictVeteran.java index 3ad5eafe434..f337db123de 100644 --- a/Mage.Sets/src/mage/cards/t/TenthDistrictVeteran.java +++ b/Mage.Sets/src/mage/cards/t/TenthDistrictVeteran.java @@ -9,8 +9,7 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.SubType; -import mage.filter.common.FilterControlledCreaturePermanent; -import mage.filter.predicate.mageobject.AnotherPredicate; +import mage.filter.StaticFilters; import mage.target.TargetPermanent; import java.util.UUID; @@ -20,12 +19,6 @@ import java.util.UUID; */ public final class TenthDistrictVeteran extends CardImpl { - private static final FilterControlledCreaturePermanent filter = new FilterControlledCreaturePermanent("another target creature you control"); - - static { - filter.add(AnotherPredicate.instance); - } - public TenthDistrictVeteran(UUID ownerId, CardSetInfo setInfo) { super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{2}{W}"); @@ -39,7 +32,7 @@ public final class TenthDistrictVeteran extends CardImpl { // Whenever Tenth District Veteran attacks, untap another target creature you control. Ability ability = new AttacksTriggeredAbility(new UntapTargetEffect(), false); - ability.addTarget(new TargetPermanent(filter)); + ability.addTarget(new TargetPermanent(StaticFilters.FILTER_ANOTHER_TARGET_CREATURE_YOU_CONTROL)); this.addAbility(ability); } diff --git a/Mage.Sets/src/mage/cards/t/ToxicScorpion.java b/Mage.Sets/src/mage/cards/t/ToxicScorpion.java index f4188486466..beb35fb93da 100644 --- a/Mage.Sets/src/mage/cards/t/ToxicScorpion.java +++ b/Mage.Sets/src/mage/cards/t/ToxicScorpion.java @@ -10,9 +10,7 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Duration; import mage.constants.SubType; -import mage.filter.FilterPermanent; -import mage.filter.common.FilterControlledCreaturePermanent; -import mage.filter.predicate.mageobject.AnotherPredicate; +import mage.filter.StaticFilters; import mage.target.TargetPermanent; import java.util.UUID; @@ -22,13 +20,6 @@ import java.util.UUID; */ public final class ToxicScorpion extends CardImpl { - private static final FilterPermanent filter - = new FilterControlledCreaturePermanent("another target creature you control"); - - static { - filter.add(AnotherPredicate.instance); - } - public ToxicScorpion(UUID ownerId, CardSetInfo setInfo) { super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{1}{G}"); @@ -43,7 +34,7 @@ public final class ToxicScorpion extends CardImpl { Ability ability = new EntersBattlefieldTriggeredAbility(new GainAbilityTargetEffect( DeathtouchAbility.getInstance(), Duration.EndOfTurn )); - ability.addTarget(new TargetPermanent(filter)); + ability.addTarget(new TargetPermanent(StaticFilters.FILTER_ANOTHER_TARGET_CREATURE_YOU_CONTROL)); this.addAbility(ability); } diff --git a/Mage.Sets/src/mage/cards/t/TrainedCondor.java b/Mage.Sets/src/mage/cards/t/TrainedCondor.java index 71b6a6faafb..05b017bf29b 100644 --- a/Mage.Sets/src/mage/cards/t/TrainedCondor.java +++ b/Mage.Sets/src/mage/cards/t/TrainedCondor.java @@ -11,8 +11,7 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Duration; import mage.constants.SubType; -import mage.filter.common.FilterControlledCreaturePermanent; -import mage.filter.predicate.mageobject.AnotherPredicate; +import mage.filter.StaticFilters; import mage.target.TargetPermanent; /** @@ -21,12 +20,6 @@ import mage.target.TargetPermanent; */ public final class TrainedCondor extends CardImpl { - private static final FilterControlledCreaturePermanent filter = new FilterControlledCreaturePermanent("another target creature you control"); - - static { - filter.add(AnotherPredicate.instance); - } - public TrainedCondor(UUID ownerId, CardSetInfo setInfo) { super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{2}{U}"); this.subtype.add(SubType.BIRD); @@ -39,7 +32,7 @@ public final class TrainedCondor extends CardImpl { // Whenever Trained Condor attacks, another target creature you control gains flying until end of turn. Ability ability = new AttacksTriggeredAbility(new GainAbilityTargetEffect(FlyingAbility.getInstance(), Duration.EndOfTurn)); - ability.addTarget(new TargetPermanent(filter)); + ability.addTarget(new TargetPermanent(StaticFilters.FILTER_ANOTHER_TARGET_CREATURE_YOU_CONTROL)); this.addAbility(ability); } diff --git a/Mage.Sets/src/mage/cards/v/VoidGrafter.java b/Mage.Sets/src/mage/cards/v/VoidGrafter.java index 44f57c6e57a..c1113515201 100644 --- a/Mage.Sets/src/mage/cards/v/VoidGrafter.java +++ b/Mage.Sets/src/mage/cards/v/VoidGrafter.java @@ -1,4 +1,3 @@ - package mage.cards.v; import java.util.UUID; @@ -14,8 +13,7 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.SubType; import mage.constants.Duration; -import mage.filter.common.FilterControlledCreaturePermanent; -import mage.filter.predicate.mageobject.AnotherPredicate; +import mage.filter.StaticFilters; import mage.target.common.TargetControlledCreaturePermanent; /** @@ -24,12 +22,6 @@ import mage.target.common.TargetControlledCreaturePermanent; */ public final class VoidGrafter extends CardImpl { - private static final FilterControlledCreaturePermanent filter = new FilterControlledCreaturePermanent("another target creature you control"); - - static { - filter.add(AnotherPredicate.instance); - } - public VoidGrafter(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{1}{G}{U}"); this.subtype.add(SubType.ELDRAZI); @@ -45,7 +37,7 @@ public final class VoidGrafter extends CardImpl { // When Void Grafter enters the battlefield, another target creature you control gain hexproof until end of turn. Ability ability = new EntersBattlefieldTriggeredAbility(new GainAbilityTargetEffect(HexproofAbility.getInstance(), Duration.EndOfTurn), false); - ability.addTarget(new TargetControlledCreaturePermanent(filter)); + ability.addTarget(new TargetControlledCreaturePermanent(StaticFilters.FILTER_ANOTHER_TARGET_CREATURE_YOU_CONTROL)); this.addAbility(ability); } diff --git a/Mage.Sets/src/mage/cards/w/WispweaverAngel.java b/Mage.Sets/src/mage/cards/w/WispweaverAngel.java index bc7e0315329..5a6cb31661f 100644 --- a/Mage.Sets/src/mage/cards/w/WispweaverAngel.java +++ b/Mage.Sets/src/mage/cards/w/WispweaverAngel.java @@ -9,8 +9,7 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.SubType; -import mage.filter.common.FilterControlledCreaturePermanent; -import mage.filter.predicate.mageobject.AnotherPredicate; +import mage.filter.StaticFilters; import mage.target.common.TargetControlledCreaturePermanent; import java.util.UUID; @@ -20,12 +19,6 @@ import java.util.UUID; */ public final class WispweaverAngel extends CardImpl { - private static final FilterControlledCreaturePermanent filter = new FilterControlledCreaturePermanent("another target creature you control"); - - static { - filter.add(AnotherPredicate.instance); - } - public WispweaverAngel(UUID ownerId, CardSetInfo setInfo) { super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{4}{W}{W}"); this.subtype.add(SubType.ANGEL); @@ -37,7 +30,7 @@ public final class WispweaverAngel extends CardImpl { // When Wispweaver Angel enters the battlefield, you may exile another target creature you control, then return that card to the battlefield under its owner's control. Ability ability = new EntersBattlefieldTriggeredAbility(new ExileThenReturnTargetEffect(false, true), true); - ability.addTarget(new TargetControlledCreaturePermanent(filter)); + ability.addTarget(new TargetControlledCreaturePermanent(StaticFilters.FILTER_ANOTHER_TARGET_CREATURE_YOU_CONTROL)); this.addAbility(ability); } diff --git a/Mage.Sets/src/mage/cards/x/XenagosGodOfRevels.java b/Mage.Sets/src/mage/cards/x/XenagosGodOfRevels.java index c340814edd8..ee852642dc3 100644 --- a/Mage.Sets/src/mage/cards/x/XenagosGodOfRevels.java +++ b/Mage.Sets/src/mage/cards/x/XenagosGodOfRevels.java @@ -14,9 +14,7 @@ import mage.abilities.keyword.IndestructibleAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.*; -import mage.filter.FilterPermanent; -import mage.filter.common.FilterControlledCreaturePermanent; -import mage.filter.predicate.mageobject.AnotherPredicate; +import mage.filter.StaticFilters; import mage.game.Game; import mage.game.permanent.Permanent; import mage.target.TargetPermanent; @@ -28,13 +26,6 @@ import java.util.UUID; */ public final class XenagosGodOfRevels extends CardImpl { - private static final FilterPermanent filter - = new FilterControlledCreaturePermanent("another target creature you control"); - - static { - filter.add(AnotherPredicate.instance); - } - public XenagosGodOfRevels(UUID ownerId, CardSetInfo setInfo) { super(ownerId, setInfo, new CardType[]{CardType.ENCHANTMENT, CardType.CREATURE}, "{3}{R}{G}"); this.supertype.add(SuperType.LEGENDARY); @@ -59,7 +50,7 @@ public final class XenagosGodOfRevels extends CardImpl { TargetController.YOU, false, false ); ability.addEffect(new XenagosGodOfRevelsEffect()); - ability.addTarget(new TargetPermanent(filter)); + ability.addTarget(new TargetPermanent(StaticFilters.FILTER_ANOTHER_TARGET_CREATURE_YOU_CONTROL)); this.addAbility(ability); } diff --git a/Mage.Sets/src/mage/cards/y/YotianFrontliner.java b/Mage.Sets/src/mage/cards/y/YotianFrontliner.java index 23588f76520..bba08814547 100644 --- a/Mage.Sets/src/mage/cards/y/YotianFrontliner.java +++ b/Mage.Sets/src/mage/cards/y/YotianFrontliner.java @@ -11,9 +11,7 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Duration; import mage.constants.SubType; -import mage.filter.FilterPermanent; -import mage.filter.common.FilterControlledCreaturePermanent; -import mage.filter.predicate.mageobject.AnotherPredicate; +import mage.filter.StaticFilters; import mage.target.TargetPermanent; import java.util.UUID; @@ -23,13 +21,6 @@ import java.util.UUID; */ public final class YotianFrontliner extends CardImpl { - private static final FilterPermanent filter - = new FilterControlledCreaturePermanent("another target creature you control"); - - static { - filter.add(AnotherPredicate.instance); - } - public YotianFrontliner(UUID ownerId, CardSetInfo setInfo) { super(ownerId, setInfo, new CardType[]{CardType.ARTIFACT, CardType.CREATURE}, "{1}"); this.subtype.add(SubType.SOLDIER); @@ -40,7 +31,7 @@ public final class YotianFrontliner extends CardImpl { Ability ability = new AttacksTriggeredAbility(new BoostTargetEffect( 1, 1, Duration.EndOfTurn ), false); - ability.addTarget(new TargetPermanent(filter)); + ability.addTarget(new TargetPermanent(StaticFilters.FILTER_ANOTHER_TARGET_CREATURE_YOU_CONTROL)); this.addAbility(ability); // Unearth {W} diff --git a/Mage/src/main/java/mage/filter/StaticFilters.java b/Mage/src/main/java/mage/filter/StaticFilters.java index 6ee9a14cea3..01e3e8d550e 100644 --- a/Mage/src/main/java/mage/filter/StaticFilters.java +++ b/Mage/src/main/java/mage/filter/StaticFilters.java @@ -667,6 +667,13 @@ public final class StaticFilters { FILTER_ANOTHER_CREATURE_YOU_CONTROL.setLockedFilter(true); } + public static final FilterControlledCreaturePermanent FILTER_ANOTHER_TARGET_CREATURE_YOU_CONTROL = new FilterControlledCreaturePermanent("another target creature you control"); + + static { + FILTER_ANOTHER_TARGET_CREATURE_YOU_CONTROL.add(AnotherPredicate.instance); + FILTER_ANOTHER_TARGET_CREATURE_YOU_CONTROL.setLockedFilter(true); + } + public static final FilterControlledCreaturePermanent FILTER_CONTROLLED_UNTAPPED_CREATURE = new FilterControlledCreaturePermanent("untapped creature you control"); static {