diff --git a/Mage.Sets/src/mage/cards/a/AmbushKrotiq.java b/Mage.Sets/src/mage/cards/a/AmbushKrotiq.java index 19085fbbe14..00b49f4befb 100644 --- a/Mage.Sets/src/mage/cards/a/AmbushKrotiq.java +++ b/Mage.Sets/src/mage/cards/a/AmbushKrotiq.java @@ -10,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; /** * @@ -19,12 +18,6 @@ import mage.filter.predicate.mageobject.AnotherPredicate; */ public final class AmbushKrotiq extends CardImpl { - private static final FilterControlledCreaturePermanent filter = new FilterControlledCreaturePermanent("another creature you control"); - - static { - filter.add(AnotherPredicate.instance); - } - public AmbushKrotiq(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{5}{G}"); this.subtype.add(SubType.INSECT); @@ -34,7 +27,7 @@ public final class AmbushKrotiq extends CardImpl { // Trample this.addAbility(TrampleAbility.getInstance()); // When Ambush Krotiq enters the battlefield, return another creature you control to its owner's hand. - this.addAbility(new EntersBattlefieldTriggeredAbility(new ReturnToHandChosenControlledPermanentEffect(filter))); + this.addAbility(new EntersBattlefieldTriggeredAbility(new ReturnToHandChosenControlledPermanentEffect(StaticFilters.FILTER_ANOTHER_CREATURE_YOU_CONTROL))); } diff --git a/Mage.Sets/src/mage/cards/b/BenevolentHydra.java b/Mage.Sets/src/mage/cards/b/BenevolentHydra.java index 7b88b9f540b..f3d75b7e65c 100644 --- a/Mage.Sets/src/mage/cards/b/BenevolentHydra.java +++ b/Mage.Sets/src/mage/cards/b/BenevolentHydra.java @@ -15,10 +15,7 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.SubType; 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.target.TargetPermanent; import java.util.UUID; @@ -28,12 +25,6 @@ import java.util.UUID; */ public final class BenevolentHydra extends CardImpl { - private static final FilterPermanent filter = new FilterControlledCreaturePermanent("another creature you control"); - - static { - filter.add(AnotherPredicate.instance); - } - public BenevolentHydra(UUID ownerId, CardSetInfo setInfo) { super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{X}{G}{G}"); @@ -47,7 +38,7 @@ public final class BenevolentHydra extends CardImpl { )); // If one or more +1/+1 counters would be put on another creature you control, that many plus one +1/+1 counters are put on it instead. - this.addAbility(new SimpleStaticAbility(new ModifyCountersAddedEffect(filter, CounterType.P1P1))); + this.addAbility(new SimpleStaticAbility(new ModifyCountersAddedEffect(StaticFilters.FILTER_ANOTHER_CREATURE_YOU_CONTROL, CounterType.P1P1))); // {T}, Remove a +1/+1 counter from Benevolent Hydra: Put a +1/+1 counter on another target creature you control. Ability ability = new SimpleActivatedAbility(new AddCountersTargetEffect(CounterType.P1P1.createInstance()).setText("Put a +1/+1 counter on another target creature you control"), new TapSourceCost()); diff --git a/Mage.Sets/src/mage/cards/b/BiblioplexKraken.java b/Mage.Sets/src/mage/cards/b/BiblioplexKraken.java index 540891da610..9829f30c9bd 100644 --- a/Mage.Sets/src/mage/cards/b/BiblioplexKraken.java +++ b/Mage.Sets/src/mage/cards/b/BiblioplexKraken.java @@ -12,9 +12,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.common.FilterControlledPermanent; -import mage.filter.predicate.mageobject.AnotherPredicate; +import mage.filter.StaticFilters; import mage.target.common.TargetControlledPermanent; import java.util.UUID; @@ -24,13 +22,6 @@ import java.util.UUID; */ public final class BiblioplexKraken extends CardImpl { - private static final FilterControlledPermanent filter - = new FilterControlledCreaturePermanent("another creature you control"); - - static { - filter.add(AnotherPredicate.instance); - } - public BiblioplexKraken(UUID ownerId, CardSetInfo setInfo) { super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{4}{U}"); @@ -44,7 +35,7 @@ public final class BiblioplexKraken extends CardImpl { // Whenever Biblioplex Kraken attacks, you may return another creature you control to its owner's hand. If you do, Biblioplex Kraken can't be blocked this turn. this.addAbility(new AttacksTriggeredAbility(new DoIfCostPaid( new CantBeBlockedSourceEffect(Duration.EndOfTurn), - new ReturnToHandChosenControlledPermanentCost(new TargetControlledPermanent(filter)) + new ReturnToHandChosenControlledPermanentCost(new TargetControlledPermanent(StaticFilters.FILTER_ANOTHER_CREATURE_YOU_CONTROL)) ))); } diff --git a/Mage.Sets/src/mage/cards/c/CatacombSifter.java b/Mage.Sets/src/mage/cards/c/CatacombSifter.java index f31d57b6311..bbcdbbdc97b 100644 --- a/Mage.Sets/src/mage/cards/c/CatacombSifter.java +++ b/Mage.Sets/src/mage/cards/c/CatacombSifter.java @@ -1,4 +1,3 @@ - package mage.cards.c; import java.util.UUID; @@ -12,9 +11,7 @@ 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.game.permanent.token.EldraziScionToken; /** @@ -23,12 +20,6 @@ import mage.game.permanent.token.EldraziScionToken; */ public final class CatacombSifter extends CardImpl { - private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("another creature you control"); - static { - filter.add(AnotherPredicate.instance); - filter.add(TargetController.YOU.getControllerPredicate()); - } - public CatacombSifter(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{1}{B}{G}"); this.subtype.add(SubType.ELDRAZI); @@ -43,7 +34,7 @@ public final class CatacombSifter extends CardImpl { this.addAbility(new EntersBattlefieldTriggeredAbility(new CreateTokenEffect(new EldraziScionToken()))); // Whenever another creature you control dies, scry 1 - this.addAbility(new DiesCreatureTriggeredAbility(new ScryEffect(1), false, filter)); + this.addAbility(new DiesCreatureTriggeredAbility(new ScryEffect(1), false, StaticFilters.FILTER_ANOTHER_CREATURE_YOU_CONTROL)); } private CatacombSifter(final CatacombSifter card) { diff --git a/Mage.Sets/src/mage/cards/e/EloiseNephaliaSleuth.java b/Mage.Sets/src/mage/cards/e/EloiseNephaliaSleuth.java index 535d3fe8629..dc8e6e91f95 100644 --- a/Mage.Sets/src/mage/cards/e/EloiseNephaliaSleuth.java +++ b/Mage.Sets/src/mage/cards/e/EloiseNephaliaSleuth.java @@ -11,8 +11,7 @@ import mage.constants.CardType; 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.filter.predicate.permanent.TokenPredicate; import java.util.UUID; @@ -22,11 +21,9 @@ import java.util.UUID; */ public final class EloiseNephaliaSleuth extends CardImpl { - private static final FilterPermanent filter = new FilterControlledCreaturePermanent("another creature you control"); private static final FilterPermanent filter2 = new FilterPermanent("a token"); static { - filter.add(AnotherPredicate.instance); filter2.add(TokenPredicate.TRUE); } @@ -40,7 +37,7 @@ public final class EloiseNephaliaSleuth extends CardImpl { this.toughness = new MageInt(4); // Whenever another creature you control dies, investigate. - this.addAbility(new DiesCreatureTriggeredAbility(new InvestigateEffect(1), false, filter)); + this.addAbility(new DiesCreatureTriggeredAbility(new InvestigateEffect(1), false, StaticFilters.FILTER_ANOTHER_CREATURE_YOU_CONTROL)); // Whenever you sacrifice a token, surveil 1. this.addAbility(new SacrificePermanentTriggeredAbility(new SurveilEffect(1), filter2)); diff --git a/Mage.Sets/src/mage/cards/e/EnduringIdeal.java b/Mage.Sets/src/mage/cards/e/EnduringIdeal.java index cb0024130c9..bc5a83eda47 100644 --- a/Mage.Sets/src/mage/cards/e/EnduringIdeal.java +++ b/Mage.Sets/src/mage/cards/e/EnduringIdeal.java @@ -59,7 +59,7 @@ class EnduringIdealEffect extends OneShotEffect { boolean applied = false; Player controller = game.getPlayer(source.getControllerId()); if (controller != null) { - TargetCardInLibrary target = new TargetCardInLibrary(StaticFilters.FILTER_CARD_ENTCHANTMENT); + TargetCardInLibrary target = new TargetCardInLibrary(StaticFilters.FILTER_CARD_ENCHANTMENT); controller.searchLibrary(target, source, game); Card targetCard = game.getCard(target.getFirstTarget()); if (targetCard == null) { diff --git a/Mage.Sets/src/mage/cards/e/ErebosBleakHearted.java b/Mage.Sets/src/mage/cards/e/ErebosBleakHearted.java index 8fcb11430aa..6a570ab1cf8 100644 --- a/Mage.Sets/src/mage/cards/e/ErebosBleakHearted.java +++ b/Mage.Sets/src/mage/cards/e/ErebosBleakHearted.java @@ -19,10 +19,7 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.SubType; import mage.constants.SuperType; -import mage.filter.FilterPermanent; import mage.filter.StaticFilters; -import mage.filter.common.FilterControlledCreaturePermanent; -import mage.filter.predicate.mageobject.AnotherPredicate; import mage.target.common.TargetControlledPermanent; import mage.target.common.TargetCreaturePermanent; @@ -33,13 +30,6 @@ import java.util.UUID; */ public final class ErebosBleakHearted extends CardImpl { - private static final FilterPermanent filter - = new FilterControlledCreaturePermanent("another creature you control"); - - static { - filter.add(AnotherPredicate.instance); - } - public ErebosBleakHearted(UUID ownerId, CardSetInfo setInfo) { super(ownerId, setInfo, new CardType[]{CardType.ENCHANTMENT, CardType.CREATURE}, "{3}{B}"); @@ -58,7 +48,7 @@ public final class ErebosBleakHearted extends CardImpl { // Whenever another creature you control dies, you may pay 2 life. If you do, draw a card. this.addAbility(new DiesCreatureTriggeredAbility(new DoIfCostPaid( new DrawCardSourceControllerEffect(1), new PayLifeCost(2) - ), false, filter, true)); + ), false, StaticFilters.FILTER_ANOTHER_CREATURE_YOU_CONTROL, true)); // {1}{B}, Sacrifice another creature: Target creature gets -2/-1 until end of turn. Ability ability = new SimpleActivatedAbility( diff --git a/Mage.Sets/src/mage/cards/e/EvolvingAdaptive.java b/Mage.Sets/src/mage/cards/e/EvolvingAdaptive.java index 0860c8323f0..54a9f83b8a6 100644 --- a/Mage.Sets/src/mage/cards/e/EvolvingAdaptive.java +++ b/Mage.Sets/src/mage/cards/e/EvolvingAdaptive.java @@ -14,9 +14,7 @@ import mage.constants.Duration; import mage.constants.SubType; import mage.constants.Zone; 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.game.Game; import mage.game.events.GameEvent; import mage.game.permanent.Permanent; @@ -62,12 +60,6 @@ public class EvolvingAdaptive extends CardImpl { class EvolvingAdaptiveTriggeredAbility extends TriggeredAbilityImpl { - private static final FilterPermanent filter = new FilterControlledCreaturePermanent("another creature you control"); - - static { - filter.add(AnotherPredicate.instance); - } - public EvolvingAdaptiveTriggeredAbility() { super(Zone.BATTLEFIELD, new AddCountersSourceEffect(CounterType.OIL.createInstance())); this.setTriggerPhrase("Whenever another creature enters the battlefield under your " + @@ -91,7 +83,7 @@ class EvolvingAdaptiveTriggeredAbility extends TriggeredAbilityImpl { @Override public boolean checkTrigger(GameEvent event, Game game) { Permanent enteringCreature = game.getPermanent(event.getTargetId()); - if (enteringCreature == null || !filter.match(enteringCreature, getControllerId(), this, game)) { + if (enteringCreature == null || !StaticFilters.FILTER_ANOTHER_CREATURE_YOU_CONTROL.match(enteringCreature, getControllerId(), this, game)) { return false; } Permanent permanent = getSourcePermanentIfItStillExists(game); diff --git a/Mage.Sets/src/mage/cards/f/FaerieImpostor.java b/Mage.Sets/src/mage/cards/f/FaerieImpostor.java index 163db673c29..32cbb70b88e 100644 --- a/Mage.Sets/src/mage/cards/f/FaerieImpostor.java +++ b/Mage.Sets/src/mage/cards/f/FaerieImpostor.java @@ -11,8 +11,7 @@ import mage.constants.CardType; 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.permanent.Permanent; import mage.players.Player; @@ -52,16 +51,9 @@ public final class FaerieImpostor extends CardImpl { class FaerieImpostorEffect extends OneShotEffect { - private static final FilterControlledCreaturePermanent filter = new FilterControlledCreaturePermanent("another creature you control"); - private static final String effectText = "sacrifice it unless you return another creature you control to its owner's hand"; - - static { - filter.add(AnotherPredicate.instance); - } - FaerieImpostorEffect() { super(Outcome.ReturnToHand); - staticText = effectText; + staticText = "sacrifice it unless you return another creature you control to its owner's hand"; } private FaerieImpostorEffect(FaerieImpostorEffect effect) { @@ -74,7 +66,7 @@ class FaerieImpostorEffect extends OneShotEffect { if (controller == null) { return false; } - TargetPermanent target = new TargetPermanent(1, 1, filter, true); + TargetPermanent target = new TargetPermanent(1, 1, StaticFilters.FILTER_ANOTHER_CREATURE_YOU_CONTROL, true); if (target.canChoose(controller.getId(), source, game) && controller.chooseUse(outcome, "Return another creature you control to its owner's hand?", source, game)) { controller.chooseTarget(Outcome.ReturnToHand, target, source, game); diff --git a/Mage.Sets/src/mage/cards/f/FlamingFistOfficer.java b/Mage.Sets/src/mage/cards/f/FlamingFistOfficer.java index b99b070c29b..2b9b2a6712d 100644 --- a/Mage.Sets/src/mage/cards/f/FlamingFistOfficer.java +++ b/Mage.Sets/src/mage/cards/f/FlamingFistOfficer.java @@ -8,9 +8,7 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.SubType; import mage.counters.CounterType; -import mage.filter.FilterPermanent; -import mage.filter.common.FilterControlledCreaturePermanent; -import mage.filter.predicate.mageobject.AnotherPredicate; +import mage.filter.StaticFilters; import java.util.UUID; @@ -19,13 +17,6 @@ import java.util.UUID; */ public final class FlamingFistOfficer extends CardImpl { - private static final FilterPermanent filter - = new FilterControlledCreaturePermanent("another creature you control"); - - static { - filter.add(AnotherPredicate.instance); - } - public FlamingFistOfficer(UUID ownerId, CardSetInfo setInfo) { super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{2}{W}"); @@ -36,7 +27,7 @@ public final class FlamingFistOfficer extends CardImpl { // Whenever another creature you control leaves the battlefield, put a +1/+1 counter on Flaming Fist Officer. this.addAbility(new LeavesBattlefieldAllTriggeredAbility( - new AddCountersSourceEffect(CounterType.P1P1.createInstance()), filter + new AddCountersSourceEffect(CounterType.P1P1.createInstance()), StaticFilters.FILTER_ANOTHER_CREATURE_YOU_CONTROL )); } diff --git a/Mage.Sets/src/mage/cards/g/GarnaBloodfistOfKeld.java b/Mage.Sets/src/mage/cards/g/GarnaBloodfistOfKeld.java index 4da10ab82ce..7954defb1bc 100644 --- a/Mage.Sets/src/mage/cards/g/GarnaBloodfistOfKeld.java +++ b/Mage.Sets/src/mage/cards/g/GarnaBloodfistOfKeld.java @@ -15,8 +15,7 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.TargetController; -import mage.filter.common.FilterControlledCreaturePermanent; -import mage.filter.predicate.mageobject.AnotherPredicate; +import mage.filter.StaticFilters; import mage.game.Game; import mage.game.permanent.Permanent; @@ -26,12 +25,6 @@ import mage.game.permanent.Permanent; */ public final class GarnaBloodfistOfKeld extends CardImpl { - private static final FilterControlledCreaturePermanent filter = new FilterControlledCreaturePermanent("another creature you control"); - - static { - filter.add(AnotherPredicate.instance); - } - public GarnaBloodfistOfKeld(UUID ownerId, CardSetInfo setInfo) { super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{1}{B}{R}{R}"); @@ -50,7 +43,7 @@ public final class GarnaBloodfistOfKeld extends CardImpl { "draw a card if it was attacking. Otherwise, {this} deals 1 damage to each opponent" ), false, - filter + StaticFilters.FILTER_ANOTHER_CREATURE_YOU_CONTROL )); } diff --git a/Mage.Sets/src/mage/cards/g/GavonyUnhallowed.java b/Mage.Sets/src/mage/cards/g/GavonyUnhallowed.java index d4758818d82..6d9a159574d 100644 --- a/Mage.Sets/src/mage/cards/g/GavonyUnhallowed.java +++ b/Mage.Sets/src/mage/cards/g/GavonyUnhallowed.java @@ -1,4 +1,3 @@ - package mage.cards.g; import java.util.UUID; @@ -9,23 +8,14 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.SubType; -import mage.constants.TargetController; import mage.counters.CounterType; -import mage.filter.common.FilterCreaturePermanent; -import mage.filter.predicate.mageobject.AnotherPredicate; +import mage.filter.StaticFilters; /** * * @author escplan9 (Derek Monturo - dmontur1 at gmail dot com) */ public final class GavonyUnhallowed extends CardImpl { - - private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("another creature you control"); - - static { - filter.add(AnotherPredicate.instance); - filter.add(TargetController.YOU.getControllerPredicate()); - } public GavonyUnhallowed(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{3}{B}"); @@ -34,7 +24,7 @@ public final class GavonyUnhallowed extends CardImpl { this.toughness = new MageInt(4); // Whenever another creature you control dies, put a +1/+1 counter on Gavony Unhallowed. - this.addAbility(new DiesCreatureTriggeredAbility(new AddCountersSourceEffect(CounterType.P1P1.createInstance()), false, filter)); + this.addAbility(new DiesCreatureTriggeredAbility(new AddCountersSourceEffect(CounterType.P1P1.createInstance()), false, StaticFilters.FILTER_ANOTHER_CREATURE_YOU_CONTROL)); } private GavonyUnhallowed(final GavonyUnhallowed card) { diff --git a/Mage.Sets/src/mage/cards/g/GimliMournfulAvenger.java b/Mage.Sets/src/mage/cards/g/GimliMournfulAvenger.java index 73923c812ec..4d9fb01528a 100644 --- a/Mage.Sets/src/mage/cards/g/GimliMournfulAvenger.java +++ b/Mage.Sets/src/mage/cards/g/GimliMournfulAvenger.java @@ -20,10 +20,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.target.TargetPermanent; import mage.watchers.common.AbilityResolvedWatcher; @@ -36,12 +33,6 @@ import java.util.UUID; */ public final class GimliMournfulAvenger extends CardImpl { - private static final FilterPermanent filter = new FilterControlledCreaturePermanent("another creature you control"); - - static { - filter.add(AnotherPredicate.instance); - } - private static final Hint hint = new ValueHint( "Creatures that died under your control this turn", GimliMournfulAvengerValue.instance ); @@ -64,7 +55,7 @@ public final class GimliMournfulAvenger extends CardImpl { // Whenever another creature you control dies, put a +1/+1 counter on Gimli. When this ability resolves for the third time this turn, Gimli fights up to one target creature you don't control. Ability ability = new DiesCreatureTriggeredAbility( - new AddCountersSourceEffect(CounterType.P1P1.createInstance()), false, filter + new AddCountersSourceEffect(CounterType.P1P1.createInstance()), false, StaticFilters.FILTER_ANOTHER_CREATURE_YOU_CONTROL ); ability.addEffect(new GimliMournfulAvengerEffect()); this.addAbility(ability, new AbilityResolvedWatcher()); diff --git a/Mage.Sets/src/mage/cards/g/GiverOfRunes.java b/Mage.Sets/src/mage/cards/g/GiverOfRunes.java index cffe27d9c0e..d9ef3e6afc6 100644 --- a/Mage.Sets/src/mage/cards/g/GiverOfRunes.java +++ b/Mage.Sets/src/mage/cards/g/GiverOfRunes.java @@ -15,10 +15,8 @@ import mage.constants.Duration; import mage.constants.Outcome; import mage.constants.SubType; import mage.filter.FilterObject; -import mage.filter.FilterPermanent; -import mage.filter.common.FilterControlledCreaturePermanent; +import mage.filter.StaticFilters; import mage.filter.predicate.mageobject.ColorlessPredicate; -import mage.filter.predicate.mageobject.AnotherPredicate; import mage.game.Game; import mage.players.Player; import mage.target.TargetPermanent; @@ -30,13 +28,6 @@ import java.util.UUID; */ public final class GiverOfRunes extends CardImpl { - private static final FilterPermanent filter - = new FilterControlledCreaturePermanent("another creature you control"); - - static { - filter.add(AnotherPredicate.instance); - } - public GiverOfRunes(UUID ownerId, CardSetInfo setInfo) { super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{W}"); @@ -47,7 +38,7 @@ public final class GiverOfRunes extends CardImpl { // {T}: Another target creature you control gains protection from colorless or from the color of your choice until end of turn. Ability ability = new SimpleActivatedAbility(new GiverOfRunesEffect(), new TapSourceCost()); - ability.addTarget(new TargetPermanent(filter)); + ability.addTarget(new TargetPermanent(StaticFilters.FILTER_ANOTHER_CREATURE_YOU_CONTROL)); this.addAbility(ability); } diff --git a/Mage.Sets/src/mage/cards/g/GloryBearers.java b/Mage.Sets/src/mage/cards/g/GloryBearers.java index 9383c201c14..b1e21351178 100644 --- a/Mage.Sets/src/mage/cards/g/GloryBearers.java +++ b/Mage.Sets/src/mage/cards/g/GloryBearers.java @@ -7,8 +7,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 java.util.UUID; @@ -17,12 +16,6 @@ import java.util.UUID; */ public final class GloryBearers extends CardImpl { - private static final FilterControlledCreaturePermanent filter = new FilterControlledCreaturePermanent("another creature you control"); - - static { - filter.add(AnotherPredicate.instance); - } - public GloryBearers(UUID ownerId, CardSetInfo setInfo) { super(ownerId, setInfo, new CardType[]{CardType.ENCHANTMENT, CardType.CREATURE}, "{3}{W}"); @@ -35,7 +28,7 @@ public final class GloryBearers extends CardImpl { this.addAbility(new AttacksCreatureYouControlTriggeredAbility( new BoostTargetEffect(0, 1) .setText("it gets +0/+1 until end of turn"), - false, filter, true + false, StaticFilters.FILTER_ANOTHER_CREATURE_YOU_CONTROL, true )); } diff --git a/Mage.Sets/src/mage/cards/g/GoblinTutor.java b/Mage.Sets/src/mage/cards/g/GoblinTutor.java index bc1a43ff11a..74d23cc8613 100644 --- a/Mage.Sets/src/mage/cards/g/GoblinTutor.java +++ b/Mage.Sets/src/mage/cards/g/GoblinTutor.java @@ -82,7 +82,7 @@ class GoblinTutorEffect extends OneShotEffect { if (amount == 2) { effect = new SearchLibraryPutInHandEffect(new TargetCardInLibrary(0, 1, filter), true); } else if (amount == 3) { - effect = new SearchLibraryPutInHandEffect(new TargetCardInLibrary(0, 1, StaticFilters.FILTER_CARD_ENTCHANTMENT), true); + effect = new SearchLibraryPutInHandEffect(new TargetCardInLibrary(0, 1, StaticFilters.FILTER_CARD_ENCHANTMENT), true); } else if (amount == 4) { effect = new SearchLibraryPutInHandEffect(new TargetCardInLibrary(0, 1, StaticFilters.FILTER_CARD_ARTIFACT), true); } else if (amount == 5) { diff --git a/Mage.Sets/src/mage/cards/g/GuardianKirin.java b/Mage.Sets/src/mage/cards/g/GuardianKirin.java index 9e911784531..569bd7b9bab 100644 --- a/Mage.Sets/src/mage/cards/g/GuardianKirin.java +++ b/Mage.Sets/src/mage/cards/g/GuardianKirin.java @@ -9,9 +9,7 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.SubType; import mage.counters.CounterType; -import mage.filter.FilterPermanent; -import mage.filter.common.FilterControlledCreaturePermanent; -import mage.filter.predicate.mageobject.AnotherPredicate; +import mage.filter.StaticFilters; import java.util.UUID; @@ -20,13 +18,6 @@ import java.util.UUID; */ public final class GuardianKirin extends CardImpl { - private static final FilterPermanent filter - = new FilterControlledCreaturePermanent("another creature you control"); - - static { - filter.add(AnotherPredicate.instance); - } - public GuardianKirin(UUID ownerId, CardSetInfo setInfo) { super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{3}{W}"); @@ -39,7 +30,7 @@ public final class GuardianKirin extends CardImpl { // Whenever another creature you control dies, put a +1/+1 counter on Guardian Kirin. this.addAbility(new DiesCreatureTriggeredAbility( - new AddCountersSourceEffect(CounterType.P1P1.createInstance()), false, filter + new AddCountersSourceEffect(CounterType.P1P1.createInstance()), false, StaticFilters.FILTER_ANOTHER_CREATURE_YOU_CONTROL )); } diff --git a/Mage.Sets/src/mage/cards/h/HavengulSkaab.java b/Mage.Sets/src/mage/cards/h/HavengulSkaab.java index ed061321011..090a74cd853 100644 --- a/Mage.Sets/src/mage/cards/h/HavengulSkaab.java +++ b/Mage.Sets/src/mage/cards/h/HavengulSkaab.java @@ -1,4 +1,3 @@ - package mage.cards.h; import java.util.UUID; @@ -10,8 +9,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.game.Game; import mage.game.events.GameEvent; import mage.target.common.TargetControlledCreaturePermanent; @@ -46,12 +44,6 @@ public final class HavengulSkaab extends CardImpl { class HavengulSkaabAbility extends TriggeredAbilityImpl { - private static final FilterControlledCreaturePermanent filter = new FilterControlledCreaturePermanent("another creature you control"); - - static { - filter.add(AnotherPredicate.instance); - } - public HavengulSkaabAbility() { super(Zone.BATTLEFIELD, new ReturnToHandTargetEffect()); } @@ -68,7 +60,7 @@ class HavengulSkaabAbility extends TriggeredAbilityImpl { @Override public boolean checkTrigger(GameEvent event, Game game) { if (event.getSourceId().equals(this.getSourceId())) { - TargetControlledCreaturePermanent target = new TargetControlledCreaturePermanent(1, 1, filter, false); + TargetControlledCreaturePermanent target = new TargetControlledCreaturePermanent(1, 1, StaticFilters.FILTER_ANOTHER_CREATURE_YOU_CONTROL, true); this.addTarget(target); return true; } diff --git a/Mage.Sets/src/mage/cards/h/Hexavus.java b/Mage.Sets/src/mage/cards/h/Hexavus.java index 0400f33d169..950797b7b41 100644 --- a/Mage.Sets/src/mage/cards/h/Hexavus.java +++ b/Mage.Sets/src/mage/cards/h/Hexavus.java @@ -15,9 +15,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.common.FilterCreaturePermanent; -import mage.filter.predicate.mageobject.AnotherPredicate; +import mage.filter.StaticFilters; import mage.target.TargetPermanent; import mage.target.common.TargetCreaturePermanent; @@ -28,14 +26,6 @@ import java.util.UUID; */ public final class Hexavus extends CardImpl { - private static final FilterControlledCreaturePermanent filter = new FilterControlledCreaturePermanent("another creature you control"); - private static final FilterCreaturePermanent filter2 = new FilterCreaturePermanent("another target creature"); - - static { - filter.add(AnotherPredicate.instance); - filter2.add(AnotherPredicate.instance); - } - public Hexavus(UUID ownerId, CardSetInfo setInfo) { super(ownerId, setInfo, new CardType[]{CardType.ARTIFACT, CardType.CREATURE}, "{6}"); this.subtype.add(SubType.CONSTRUCT); @@ -55,14 +45,14 @@ public final class Hexavus extends CardImpl { new AddCountersTargetEffect(CounterType.FLYING.createInstance()), new GenericManaCost(1) ); ability.addCost(new RemoveCountersSourceCost(CounterType.P1P1.createInstance())); - ability.addTarget(new TargetCreaturePermanent(filter2)); + ability.addTarget(new TargetCreaturePermanent(StaticFilters.FILTER_ANOTHER_TARGET_CREATURE)); this.addAbility(ability); // {1}, Remove a counter from another creature you control: Put a +1/+1 counter on Hexavus. Ability ability2 = new SimpleActivatedAbility( new AddCountersSourceEffect(CounterType.P1P1.createInstance()), new GenericManaCost(1) ); - ability2.addCost(new RemoveCounterCost(new TargetPermanent(1, 1, filter, true))); + ability2.addCost(new RemoveCounterCost(new TargetPermanent(1, 1, StaticFilters.FILTER_ANOTHER_CREATURE_YOU_CONTROL, true))); this.addAbility(ability2); } diff --git a/Mage.Sets/src/mage/cards/i/ImperialAerosaur.java b/Mage.Sets/src/mage/cards/i/ImperialAerosaur.java index 350bbcbffde..0a974072b93 100644 --- a/Mage.Sets/src/mage/cards/i/ImperialAerosaur.java +++ b/Mage.Sets/src/mage/cards/i/ImperialAerosaur.java @@ -1,4 +1,3 @@ - package mage.cards.i; import java.util.UUID; @@ -13,10 +12,8 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Duration; import mage.constants.SubType; -import mage.constants.TargetController; -import mage.filter.common.FilterCreaturePermanent; -import mage.filter.predicate.mageobject.AnotherPredicate; -import mage.target.common.TargetCreaturePermanent; +import mage.filter.StaticFilters; +import mage.target.common.TargetControlledCreaturePermanent; /** * @@ -24,13 +21,6 @@ import mage.target.common.TargetCreaturePermanent; */ public final class ImperialAerosaur extends CardImpl { - private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("another creature you control"); - - static { - filter.add(TargetController.YOU.getControllerPredicate()); - filter.add(AnotherPredicate.instance); - } - public ImperialAerosaur(UUID ownerId, CardSetInfo setInfo) { super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{3}{W}"); @@ -48,7 +38,7 @@ public final class ImperialAerosaur extends CardImpl { effect = new GainAbilityTargetEffect(FlyingAbility.getInstance(), Duration.EndOfTurn); effect.setText("and gains flying until end of turn"); ability.addEffect(effect); - ability.addTarget(new TargetCreaturePermanent(filter)); + ability.addTarget(new TargetControlledCreaturePermanent(StaticFilters.FILTER_ANOTHER_CREATURE_YOU_CONTROL)); this.addAbility(ability); } diff --git a/Mage.Sets/src/mage/cards/l/LoyalGryff.java b/Mage.Sets/src/mage/cards/l/LoyalGryff.java index 3476036611c..5c3c2b90cb4 100644 --- a/Mage.Sets/src/mage/cards/l/LoyalGryff.java +++ b/Mage.Sets/src/mage/cards/l/LoyalGryff.java @@ -9,9 +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.common.FilterControlledPermanent; -import mage.filter.predicate.mageobject.AnotherPredicate; +import mage.filter.StaticFilters; import java.util.UUID; @@ -20,13 +18,6 @@ import java.util.UUID; */ public final class LoyalGryff extends CardImpl { - private static final FilterControlledPermanent filter - = new FilterControlledCreaturePermanent("another creature you control"); - - static { - filter.add(AnotherPredicate.instance); - } - public LoyalGryff(UUID ownerId, CardSetInfo setInfo) { super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{2}{W}"); @@ -42,7 +33,7 @@ public final class LoyalGryff extends CardImpl { // When Loyal Gryff enters the battlefield, you may return another creature you control to its owner's hand. this.addAbility(new EntersBattlefieldTriggeredAbility( - new ReturnToHandChosenControlledPermanentEffect(filter), true + new ReturnToHandChosenControlledPermanentEffect(StaticFilters.FILTER_ANOTHER_CREATURE_YOU_CONTROL), true )); } diff --git a/Mage.Sets/src/mage/cards/l/LuminousPhantom.java b/Mage.Sets/src/mage/cards/l/LuminousPhantom.java index 052b41b86de..7710801da8d 100644 --- a/Mage.Sets/src/mage/cards/l/LuminousPhantom.java +++ b/Mage.Sets/src/mage/cards/l/LuminousPhantom.java @@ -10,9 +10,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 java.util.UUID; @@ -21,13 +19,6 @@ import java.util.UUID; */ public final class LuminousPhantom extends CardImpl { - private static final FilterPermanent filter - = new FilterControlledCreaturePermanent("another creature you control"); - - static { - filter.add(AnotherPredicate.instance); - } - public LuminousPhantom(UUID ownerId, CardSetInfo setInfo) { super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, ""); @@ -42,7 +33,7 @@ public final class LuminousPhantom extends CardImpl { this.addAbility(FlyingAbility.getInstance()); // Whenever another creature you control leaves the battlefield, you gain 1 life. - this.addAbility(new LeavesBattlefieldAllTriggeredAbility(new GainLifeEffect(1), filter)); + this.addAbility(new LeavesBattlefieldAllTriggeredAbility(new GainLifeEffect(1), StaticFilters.FILTER_ANOTHER_CREATURE_YOU_CONTROL)); // If Luminous Phantom would be put into a graveyard from anywhere, exile it instead. this.addAbility(new PutIntoGraveFromAnywhereSourceAbility(new ExileSourceEffect().setText("exile it instead"))); diff --git a/Mage.Sets/src/mage/cards/m/MausoleumHarpy.java b/Mage.Sets/src/mage/cards/m/MausoleumHarpy.java index 3ca270952ef..8d8439c1b02 100644 --- a/Mage.Sets/src/mage/cards/m/MausoleumHarpy.java +++ b/Mage.Sets/src/mage/cards/m/MausoleumHarpy.java @@ -12,10 +12,8 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.SubType; -import mage.constants.TargetController; import mage.counters.CounterType; -import mage.filter.common.FilterCreaturePermanent; -import mage.filter.predicate.mageobject.AnotherPredicate; +import mage.filter.StaticFilters; import java.util.UUID; @@ -24,13 +22,6 @@ import java.util.UUID; */ public final class MausoleumHarpy extends CardImpl { - private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("another creature you control"); - - static { - filter.add(AnotherPredicate.instance); - filter.add(TargetController.YOU.getControllerPredicate()); - } - public MausoleumHarpy(UUID ownerId, CardSetInfo setInfo) { super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{4}{B}"); @@ -46,7 +37,7 @@ public final class MausoleumHarpy extends CardImpl { // Whenever another creature you control dies, if you have the city's blessing, put a +1/+1 counter on Mausoleum Harpy. this.addAbility(new ConditionalInterveningIfTriggeredAbility( - new DiesCreatureTriggeredAbility(new AddCountersSourceEffect(CounterType.P1P1.createInstance()), false, filter), + new DiesCreatureTriggeredAbility(new AddCountersSourceEffect(CounterType.P1P1.createInstance()), false, StaticFilters.FILTER_ANOTHER_CREATURE_YOU_CONTROL), CitysBlessingCondition.instance, "Whenever another creature you control dies, if you have the city's blessing, put a +1/+1 counter on {this}. ") .addHint(CitysBlessingHint.instance)); diff --git a/Mage.Sets/src/mage/cards/m/MerenOfClanNelToth.java b/Mage.Sets/src/mage/cards/m/MerenOfClanNelToth.java index 806dbf8c484..3d01b1c5047 100644 --- a/Mage.Sets/src/mage/cards/m/MerenOfClanNelToth.java +++ b/Mage.Sets/src/mage/cards/m/MerenOfClanNelToth.java @@ -12,8 +12,6 @@ import mage.cards.CardSetInfo; import mage.constants.*; import mage.counters.CounterType; import mage.filter.StaticFilters; -import mage.filter.common.FilterCreaturePermanent; -import mage.filter.predicate.mageobject.AnotherPredicate; import mage.game.Game; import mage.players.Player; import mage.target.common.TargetCardInYourGraveyard; @@ -25,14 +23,6 @@ import java.util.UUID; */ public final class MerenOfClanNelToth extends CardImpl { - private static final FilterCreaturePermanent filter - = new FilterCreaturePermanent("another creature you control"); - - static { - filter.add(AnotherPredicate.instance); - filter.add(TargetController.YOU.getControllerPredicate()); - } - public MerenOfClanNelToth(UUID ownerId, CardSetInfo setInfo) { super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{2}{B}{G}"); this.supertype.add(SuperType.LEGENDARY); @@ -44,7 +34,7 @@ public final class MerenOfClanNelToth extends CardImpl { // Whenever another creature you control dies, you get an experience counter. this.addAbility(new DiesCreatureTriggeredAbility(new AddCountersPlayersEffect( CounterType.EXPERIENCE.createInstance(), TargetController.YOU - ), false, filter)); + ), false, StaticFilters.FILTER_ANOTHER_CREATURE_YOU_CONTROL)); // At the beginning of your end step, choose target creature card in your graveyard. // If that card's converted mana cost is less than or equal to the number of experience counters you have, return it to the battlefield. Otherwise, put it into your hand. diff --git a/Mage.Sets/src/mage/cards/n/NebulonBFrigate.java b/Mage.Sets/src/mage/cards/n/NebulonBFrigate.java index 86ae280231d..9bb9e04c708 100644 --- a/Mage.Sets/src/mage/cards/n/NebulonBFrigate.java +++ b/Mage.Sets/src/mage/cards/n/NebulonBFrigate.java @@ -1,4 +1,3 @@ - package mage.cards.n; import java.util.UUID; @@ -12,9 +11,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.common.FilterCreaturePermanent; -import mage.filter.predicate.mageobject.AnotherPredicate; +import mage.filter.StaticFilters; /** * @@ -22,12 +19,6 @@ import mage.filter.predicate.mageobject.AnotherPredicate; */ public final class NebulonBFrigate extends CardImpl { - private static final FilterControlledCreaturePermanent filter = new FilterControlledCreaturePermanent("another creature you control"); - - static { - filter.add(AnotherPredicate.instance); - } - public NebulonBFrigate(UUID ownerId, CardSetInfo setInfo) { super(ownerId, setInfo, new CardType[]{CardType.ARTIFACT, CardType.CREATURE}, "{3}{W}{W}"); this.subtype.add(SubType.STARSHIP); @@ -38,7 +29,7 @@ public final class NebulonBFrigate extends CardImpl { this.addAbility(SpaceflightAbility.getInstance()); // Whenever Nebulon-B Frigate enters the battlefield, creatures you control gain vigilance until end of turn. - this.addAbility(new EntersBattlefieldTriggeredAbility(new GainAbilityControlledEffect(VigilanceAbility.getInstance(), Duration.EndOfTurn, new FilterCreaturePermanent("creatures you control")), false)); + this.addAbility(new EntersBattlefieldTriggeredAbility(new GainAbilityControlledEffect(VigilanceAbility.getInstance(), Duration.EndOfTurn, StaticFilters.FILTER_PERMANENT_CREATURES_CONTROLLED), false)); } private NebulonBFrigate(final NebulonBFrigate card) { diff --git a/Mage.Sets/src/mage/cards/n/NinthBridgePatrol.java b/Mage.Sets/src/mage/cards/n/NinthBridgePatrol.java index 2919c9aa812..fb6e4b2cd4b 100644 --- a/Mage.Sets/src/mage/cards/n/NinthBridgePatrol.java +++ b/Mage.Sets/src/mage/cards/n/NinthBridgePatrol.java @@ -1,4 +1,3 @@ - package mage.cards.n; import java.util.UUID; @@ -9,11 +8,9 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.SubType; -import mage.constants.TargetController; import mage.constants.Zone; import mage.counters.CounterType; -import mage.filter.common.FilterCreaturePermanent; -import mage.filter.predicate.mageobject.AnotherPredicate; +import mage.filter.StaticFilters; /** * @@ -21,13 +18,6 @@ import mage.filter.predicate.mageobject.AnotherPredicate; */ public final class NinthBridgePatrol extends CardImpl { - private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("another creature you control"); - - static { - filter.add(TargetController.YOU.getControllerPredicate()); - filter.add(AnotherPredicate.instance); - } - public NinthBridgePatrol(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{1}{W}"); this.subtype.add(SubType.DWARF); @@ -37,7 +27,7 @@ public final class NinthBridgePatrol extends CardImpl { // Whenever another creature you control leaves the battlefield, put a +1/+1 counter on Ninth Bridge Patrol. this.addAbility(new ZoneChangeAllTriggeredAbility(Zone.BATTLEFIELD, Zone.BATTLEFIELD, null, - new AddCountersSourceEffect(CounterType.P1P1.createInstance()), filter, + new AddCountersSourceEffect(CounterType.P1P1.createInstance()), StaticFilters.FILTER_ANOTHER_CREATURE_YOU_CONTROL, "Whenever another creature you control leaves the battlefield, ", false)); } diff --git a/Mage.Sets/src/mage/cards/o/OvergrowthElemental.java b/Mage.Sets/src/mage/cards/o/OvergrowthElemental.java index 6188872bdbd..67fe98e559b 100644 --- a/Mage.Sets/src/mage/cards/o/OvergrowthElemental.java +++ b/Mage.Sets/src/mage/cards/o/OvergrowthElemental.java @@ -15,6 +15,7 @@ import mage.constants.Outcome; import mage.constants.SubType; 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; @@ -30,12 +31,9 @@ public final class OvergrowthElemental extends CardImpl { private static final FilterPermanent filter = new FilterControlledCreaturePermanent(SubType.ELEMENTAL, "another target Elemental you control"); - private static final FilterPermanent filter2 - = new FilterControlledCreaturePermanent("another creature you control"); static { filter.add(AnotherPredicate.instance); - filter2.add(AnotherPredicate.instance); } public OvergrowthElemental(UUID ownerId, CardSetInfo setInfo) { @@ -53,7 +51,7 @@ public final class OvergrowthElemental extends CardImpl { this.addAbility(ability); // Whenever another creature you control dies, you gain 1 life. If that creature was an Elemental, put a +1/+1 counter on Overgrowth Elemental. - ability = new DiesCreatureTriggeredAbility(new GainLifeEffect(1), false, filter2, true); + ability = new DiesCreatureTriggeredAbility(new GainLifeEffect(1), false, StaticFilters.FILTER_ANOTHER_CREATURE_YOU_CONTROL, true); ability.addEffect(new OvergrowthElementalEffect()); this.addAbility(ability); } @@ -92,4 +90,4 @@ class OvergrowthElementalEffect extends OneShotEffect { } return new AddCountersSourceEffect(CounterType.P1P1.createInstance()).apply(game, source); } -} \ No newline at end of file +} diff --git a/Mage.Sets/src/mage/cards/p/PitilessPlunderer.java b/Mage.Sets/src/mage/cards/p/PitilessPlunderer.java index 75d7c90e0df..1afaaf2c3d5 100644 --- a/Mage.Sets/src/mage/cards/p/PitilessPlunderer.java +++ b/Mage.Sets/src/mage/cards/p/PitilessPlunderer.java @@ -1,4 +1,3 @@ - package mage.cards.p; import java.util.UUID; @@ -9,9 +8,7 @@ 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.game.permanent.token.TreasureToken; /** @@ -20,13 +17,6 @@ import mage.game.permanent.token.TreasureToken; */ public final class PitilessPlunderer extends CardImpl { - private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("another creature you control"); - - static { - filter.add(AnotherPredicate.instance); - filter.add(TargetController.YOU.getControllerPredicate()); - } - public PitilessPlunderer(UUID ownerId, CardSetInfo setInfo) { super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{3}{B}"); @@ -36,7 +26,7 @@ public final class PitilessPlunderer extends CardImpl { this.toughness = new MageInt(4); // Whenever another creature you control dies, create a colorless Treasure artifact token with "{T}, Sacrifice this artifact: Add one mana of any color." - this.addAbility(new DiesCreatureTriggeredAbility(new CreateTokenEffect(new TreasureToken()), false, filter)); + this.addAbility(new DiesCreatureTriggeredAbility(new CreateTokenEffect(new TreasureToken()), false, StaticFilters.FILTER_ANOTHER_CREATURE_YOU_CONTROL)); } private PitilessPlunderer(final PitilessPlunderer card) { diff --git a/Mage.Sets/src/mage/cards/r/RionyaFireDancer.java b/Mage.Sets/src/mage/cards/r/RionyaFireDancer.java index 96051d33ce0..7289493692d 100644 --- a/Mage.Sets/src/mage/cards/r/RionyaFireDancer.java +++ b/Mage.Sets/src/mage/cards/r/RionyaFireDancer.java @@ -9,9 +9,7 @@ import mage.abilities.hint.Hint; 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.events.GameEvent; import mage.game.stack.Spell; @@ -28,13 +26,6 @@ import java.util.UUID; */ public final class RionyaFireDancer extends CardImpl { - private static final FilterPermanent filter - = new FilterControlledCreaturePermanent("another creature you control"); - - static { - filter.add(AnotherPredicate.instance); - } - public RionyaFireDancer(UUID ownerId, CardSetInfo setInfo) { super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{3}{R}{R}"); @@ -48,7 +39,7 @@ public final class RionyaFireDancer extends CardImpl { Ability ability = new BeginningOfCombatTriggeredAbility( new RionyaFireDancerEffect(), TargetController.YOU, false ); - ability.addTarget(new TargetPermanent(filter)); + ability.addTarget(new TargetPermanent(StaticFilters.FILTER_ANOTHER_CREATURE_YOU_CONTROL)); this.addAbility(ability.addHint(RionyaFireDancerHint.instance), new RionyaFireDancerWatcher()); } diff --git a/Mage.Sets/src/mage/cards/r/RotShambler.java b/Mage.Sets/src/mage/cards/r/RotShambler.java index b20dee87739..0a8ef5f6efa 100644 --- a/Mage.Sets/src/mage/cards/r/RotShambler.java +++ b/Mage.Sets/src/mage/cards/r/RotShambler.java @@ -1,4 +1,3 @@ - package mage.cards.r; import java.util.UUID; @@ -9,10 +8,8 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.SubType; -import mage.constants.TargetController; import mage.counters.CounterType; -import mage.filter.common.FilterCreaturePermanent; -import mage.filter.predicate.mageobject.AnotherPredicate; +import mage.filter.StaticFilters; /** * @@ -20,13 +17,6 @@ import mage.filter.predicate.mageobject.AnotherPredicate; */ public final class RotShambler extends CardImpl { - private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("another creature you control"); - - static { - filter.add(AnotherPredicate.instance); - filter.add(TargetController.YOU.getControllerPredicate()); - } - public RotShambler(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{1}{G}"); this.subtype.add(SubType.FUNGUS); @@ -34,7 +24,7 @@ public final class RotShambler extends CardImpl { this.toughness = new MageInt(1); // Whenever another creature you control dies, put a +1/+1 counter on Rot Shambler. - this.addAbility(new DiesCreatureTriggeredAbility(new AddCountersSourceEffect(CounterType.P1P1.createInstance()), false, filter)); + this.addAbility(new DiesCreatureTriggeredAbility(new AddCountersSourceEffect(CounterType.P1P1.createInstance()), false, StaticFilters.FILTER_ANOTHER_CREATURE_YOU_CONTROL)); } diff --git a/Mage.Sets/src/mage/cards/s/SanguinaryPriest.java b/Mage.Sets/src/mage/cards/s/SanguinaryPriest.java index 1c8b1766861..b49adaad7a8 100644 --- a/Mage.Sets/src/mage/cards/s/SanguinaryPriest.java +++ b/Mage.Sets/src/mage/cards/s/SanguinaryPriest.java @@ -9,9 +9,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.common.TargetAnyTarget; import java.util.UUID; @@ -21,13 +19,6 @@ import java.util.UUID; */ public final class SanguinaryPriest extends CardImpl { - private static final FilterPermanent filter - = new FilterControlledCreaturePermanent("another creature you control"); - - static { - filter.add(AnotherPredicate.instance); - } - public SanguinaryPriest(UUID ownerId, CardSetInfo setInfo) { super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{3}{B}"); @@ -40,7 +31,7 @@ public final class SanguinaryPriest extends CardImpl { this.addAbility(LifelinkAbility.getInstance()); // Blood Chalice -- Whenever another creature you control dies, Sanguinary Priest deals 1 damage to any target. - Ability ability = new DiesCreatureTriggeredAbility(new DamageTargetEffect(1), false, filter); + Ability ability = new DiesCreatureTriggeredAbility(new DamageTargetEffect(1), false, StaticFilters.FILTER_ANOTHER_CREATURE_YOU_CONTROL); ability.addTarget(new TargetAnyTarget()); this.addAbility(ability.withFlavorWord("Blood Chalice")); } diff --git a/Mage.Sets/src/mage/cards/s/SilumgarScavenger.java b/Mage.Sets/src/mage/cards/s/SilumgarScavenger.java index da317c81584..be1186b9870 100644 --- a/Mage.Sets/src/mage/cards/s/SilumgarScavenger.java +++ b/Mage.Sets/src/mage/cards/s/SilumgarScavenger.java @@ -14,8 +14,7 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.*; import mage.counters.CounterType; -import mage.filter.common.FilterCreaturePermanent; -import mage.filter.predicate.mageobject.AnotherPredicate; +import mage.filter.StaticFilters; import mage.game.Game; import mage.game.events.GameEvent; import mage.game.permanent.Permanent; @@ -30,13 +29,6 @@ import java.util.UUID; */ public final class SilumgarScavenger extends CardImpl { - private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("another creature you control"); - - static { - filter.add(AnotherPredicate.instance); - filter.add(TargetController.YOU.getControllerPredicate()); - } - public SilumgarScavenger(UUID ownerId, CardSetInfo setInfo) { super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{4}{B}"); @@ -52,7 +44,7 @@ public final class SilumgarScavenger extends CardImpl { this.addAbility(new ExploitAbility()); // Whenever another creature you control dies, put a +1/+1 counter on Silumgar Scavenger. It gains haste until end of turn if it exploited that creature. - Ability ability = new DiesCreatureTriggeredAbility(new AddCountersSourceEffect(CounterType.P1P1.createInstance()), false, filter, true); + Ability ability = new DiesCreatureTriggeredAbility(new AddCountersSourceEffect(CounterType.P1P1.createInstance()), false, StaticFilters.FILTER_ANOTHER_CREATURE_YOU_CONTROL, true); ability.addEffect(new SilumgarScavengerBoostEffect()); //ability.addTarget(new TargetPlayerOrPlaneswalker()); this.addAbility(ability, new SilumgarScavengerExploitedWatcher()); @@ -130,4 +122,4 @@ class SilumgarScavengerBoostEffect extends OneShotEffect { public SilumgarScavengerBoostEffect copy() { return new SilumgarScavengerBoostEffect(this); } -} \ No newline at end of file +} diff --git a/Mage.Sets/src/mage/cards/s/SkyriderPatrol.java b/Mage.Sets/src/mage/cards/s/SkyriderPatrol.java index 26c5ad10929..57d95dfd5ca 100644 --- a/Mage.Sets/src/mage/cards/s/SkyriderPatrol.java +++ b/Mage.Sets/src/mage/cards/s/SkyriderPatrol.java @@ -15,8 +15,7 @@ import mage.constants.Duration; import mage.constants.SubType; import mage.constants.TargetController; import mage.counters.CounterType; -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 +25,6 @@ import java.util.UUID; */ public final class SkyriderPatrol extends CardImpl { - private static final FilterControlledCreaturePermanent filter - = new FilterControlledCreaturePermanent("another creature you control"); - - static { - filter.add(AnotherPredicate.instance); - } - public SkyriderPatrol(UUID ownerId, CardSetInfo setInfo) { super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{2}{G}{U}"); @@ -51,7 +43,7 @@ public final class SkyriderPatrol extends CardImpl { "and that creature gains flying until end of turn" ); ability.addEffect(new GainAbilityTargetEffect(FlyingAbility.getInstance(), Duration.EndOfTurn)); - ability.addTarget(new TargetPermanent(filter)); + ability.addTarget(new TargetPermanent(StaticFilters.FILTER_ANOTHER_CREATURE_YOU_CONTROL)); this.addAbility(new BeginningOfCombatTriggeredAbility(new DoWhenCostPaid( ability, new ManaCostsImpl<>("{G}{U}"), "Pay {G}{U}?" ), TargetController.YOU, false)); diff --git a/Mage.Sets/src/mage/cards/s/StalkingVengeance.java b/Mage.Sets/src/mage/cards/s/StalkingVengeance.java index 13a66a3d40c..223f79b9e56 100644 --- a/Mage.Sets/src/mage/cards/s/StalkingVengeance.java +++ b/Mage.Sets/src/mage/cards/s/StalkingVengeance.java @@ -8,8 +8,7 @@ import mage.abilities.keyword.HasteAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.*; -import mage.filter.common.FilterCreaturePermanent; -import mage.filter.predicate.mageobject.AnotherPredicate; +import mage.filter.StaticFilters; import mage.game.Game; import mage.game.permanent.Permanent; import mage.target.common.TargetPlayerOrPlaneswalker; @@ -21,13 +20,6 @@ import java.util.UUID; */ public final class StalkingVengeance extends CardImpl { - private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("another creature you control"); - - static { - filter.add(TargetController.YOU.getControllerPredicate()); - filter.add(AnotherPredicate.instance); - } - public StalkingVengeance(UUID ownerId, CardSetInfo setInfo) { super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{5}{R}{R}"); this.subtype.add(SubType.AVATAR); @@ -39,7 +31,7 @@ public final class StalkingVengeance extends CardImpl { this.addAbility(HasteAbility.getInstance()); // Whenever another creature you control dies, it deals damage equal to its power to target player or planeswalker. - Ability ability = new DiesCreatureTriggeredAbility(new StalkingVengeanceDamageEffect(), false, filter, true); + Ability ability = new DiesCreatureTriggeredAbility(new StalkingVengeanceDamageEffect(), false, StaticFilters.FILTER_ANOTHER_CREATURE_YOU_CONTROL, true); ability.addTarget(new TargetPlayerOrPlaneswalker()); this.addAbility(ability); } diff --git a/Mage.Sets/src/mage/cards/t/TemurSabertooth.java b/Mage.Sets/src/mage/cards/t/TemurSabertooth.java index 820dc956299..51c823cc8f1 100644 --- a/Mage.Sets/src/mage/cards/t/TemurSabertooth.java +++ b/Mage.Sets/src/mage/cards/t/TemurSabertooth.java @@ -1,4 +1,3 @@ - package mage.cards.t; import java.util.UUID; @@ -16,8 +15,7 @@ import mage.constants.SubType; import mage.constants.Duration; import mage.constants.Outcome; 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.permanent.Permanent; import mage.players.Player; @@ -53,12 +51,6 @@ public final class TemurSabertooth extends CardImpl { class TemurSabertoothEffect extends OneShotEffect { - private static final FilterControlledCreaturePermanent filter = new FilterControlledCreaturePermanent("another creature you control"); - - static { - filter.add(AnotherPredicate.instance); - } - public TemurSabertoothEffect() { super(Outcome.Detriment); this.staticText = "You may return another creature you control to its owner's hand. If you do, {this} gains indestructible until end of turn"; @@ -77,7 +69,7 @@ class TemurSabertoothEffect extends OneShotEffect { public boolean apply(Game game, Ability source) { Player controller = game.getPlayer(source.getControllerId()); if (controller != null) { - Target target = new TargetPermanent(1, 1, filter, true); + Target target = new TargetPermanent(1, 1, StaticFilters.FILTER_ANOTHER_CREATURE_YOU_CONTROL, true); if (target.canChoose(controller.getId(), source, game)) { if (controller.chooseUse(outcome, "Return another creature to hand?", source, game) && controller.chooseTarget(outcome, target, source, game)) { diff --git a/Mage.Sets/src/mage/cards/u/UnrulyMob.java b/Mage.Sets/src/mage/cards/u/UnrulyMob.java index 97add7d85cf..c8bca350aea 100644 --- a/Mage.Sets/src/mage/cards/u/UnrulyMob.java +++ b/Mage.Sets/src/mage/cards/u/UnrulyMob.java @@ -1,4 +1,3 @@ - package mage.cards.u; import java.util.UUID; @@ -9,10 +8,8 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.SubType; -import mage.constants.TargetController; import mage.counters.CounterType; -import mage.filter.common.FilterCreaturePermanent; -import mage.filter.predicate.mageobject.AnotherPredicate; +import mage.filter.StaticFilters; /** * @@ -20,13 +17,6 @@ import mage.filter.predicate.mageobject.AnotherPredicate; */ public final class UnrulyMob extends CardImpl { - private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("another creature you control"); - - static { - filter.add(AnotherPredicate.instance); - filter.add(TargetController.YOU.getControllerPredicate()); - } - public UnrulyMob(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{1}{W}"); this.subtype.add(SubType.HUMAN); @@ -35,7 +25,7 @@ public final class UnrulyMob extends CardImpl { this.toughness = new MageInt(1); // Whenever another creature you control dies, put a +1/+1 counter on Unruly Mob. - this.addAbility(new DiesCreatureTriggeredAbility(new AddCountersSourceEffect(CounterType.P1P1.createInstance()), false, filter)); + this.addAbility(new DiesCreatureTriggeredAbility(new AddCountersSourceEffect(CounterType.P1P1.createInstance()), false, StaticFilters.FILTER_ANOTHER_CREATURE_YOU_CONTROL)); } private UnrulyMob(final UnrulyMob card) { diff --git a/Mage.Sets/src/mage/cards/w/WickedGuardian.java b/Mage.Sets/src/mage/cards/w/WickedGuardian.java index 1e0063ad7d7..0e23477a874 100644 --- a/Mage.Sets/src/mage/cards/w/WickedGuardian.java +++ b/Mage.Sets/src/mage/cards/w/WickedGuardian.java @@ -9,9 +9,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.Game; import mage.game.permanent.Permanent; import mage.players.Player; @@ -48,13 +46,6 @@ public final class WickedGuardian extends CardImpl { class WickedGuardianEffect extends OneShotEffect { - private static final FilterPermanent filter - = new FilterControlledCreaturePermanent("another creature you control"); - - static { - filter.add(AnotherPredicate.instance); - } - WickedGuardianEffect() { super(Outcome.Benefit); staticText = "have it deal 2 damage to another creature you control. If you do, draw a card"; @@ -75,10 +66,10 @@ class WickedGuardianEffect extends OneShotEffect { if (player == null) { return false; } - if (game.getBattlefield().count(filter, source.getControllerId(), source, game) == 0) { + if (game.getBattlefield().count(StaticFilters.FILTER_ANOTHER_CREATURE_YOU_CONTROL, source.getControllerId(), source, game) == 0) { return false; } - TargetPermanent target = new TargetPermanent(0, 1, filter, true); + TargetPermanent target = new TargetPermanent(0, 1, StaticFilters.FILTER_ANOTHER_CREATURE_YOU_CONTROL, true); if (!player.choose(outcome, target, source, game)) { return false; } @@ -89,4 +80,4 @@ class WickedGuardianEffect extends OneShotEffect { permanent.damage(2, source.getSourceId(), source, game); return player.drawCards(1, source, game) > 0; } -} \ No newline at end of file +} diff --git a/Mage.Sets/src/mage/cards/y/YannikScavengingSentinel.java b/Mage.Sets/src/mage/cards/y/YannikScavengingSentinel.java index 894385fc145..6697a256623 100644 --- a/Mage.Sets/src/mage/cards/y/YannikScavengingSentinel.java +++ b/Mage.Sets/src/mage/cards/y/YannikScavengingSentinel.java @@ -14,9 +14,7 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.*; 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.game.Game; import mage.game.permanent.Permanent; import mage.players.Player; @@ -63,13 +61,6 @@ public final class YannikScavengingSentinel extends CardImpl { class YannikScavengingSentinelEffect extends OneShotEffect { - private static final FilterPermanent filter - = new FilterControlledCreaturePermanent("another creature you control"); - - static { - filter.add(AnotherPredicate.instance); - } - YannikScavengingSentinelEffect() { super(Outcome.Benefit); staticText = "exile another creature you control until {this} leaves the battlefield. " + @@ -91,10 +82,10 @@ class YannikScavengingSentinelEffect extends OneShotEffect { Player player = game.getPlayer(source.getControllerId()); Permanent sourcePermanent = source.getSourcePermanentIfItStillExists(game); if (player == null || sourcePermanent == null - || game.getBattlefield().count(filter, source.getControllerId(), source, game) < 1) { + || game.getBattlefield().count(StaticFilters.FILTER_ANOTHER_CREATURE_YOU_CONTROL, source.getControllerId(), source, game) < 1) { return false; } - TargetPermanent target = new TargetPermanent(filter); + TargetPermanent target = new TargetPermanent(StaticFilters.FILTER_ANOTHER_CREATURE_YOU_CONTROL); target.setNotTarget(true); player.choose(outcome, target, source, game); Permanent permanent = game.getPermanent(target.getFirstTarget()); diff --git a/Mage/src/main/java/mage/abilities/effects/common/ChooseCreatureEffect.java b/Mage/src/main/java/mage/abilities/effects/common/ChooseCreatureEffect.java index 3df348b890e..654f839dc4c 100644 --- a/Mage/src/main/java/mage/abilities/effects/common/ChooseCreatureEffect.java +++ b/Mage/src/main/java/mage/abilities/effects/common/ChooseCreatureEffect.java @@ -5,8 +5,7 @@ import mage.abilities.Ability; import mage.abilities.effects.OneShotEffect; import mage.constants.Outcome; 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; @@ -20,17 +19,10 @@ import mage.util.CardUtil; */ public class ChooseCreatureEffect extends OneShotEffect { - private static final FilterPermanent defaultFilter - = new FilterControlledCreaturePermanent("another creature you control"); - - static { - defaultFilter.add(AnotherPredicate.instance); - } - private final FilterPermanent filter; public ChooseCreatureEffect() { - this(defaultFilter); + this(StaticFilters.FILTER_ANOTHER_CREATURE_YOU_CONTROL); } public ChooseCreatureEffect(FilterPermanent filter) { diff --git a/Mage/src/main/java/mage/filter/StaticFilters.java b/Mage/src/main/java/mage/filter/StaticFilters.java index eb90e4a7d12..aecd86f8eb3 100644 --- a/Mage/src/main/java/mage/filter/StaticFilters.java +++ b/Mage/src/main/java/mage/filter/StaticFilters.java @@ -50,10 +50,10 @@ public final class StaticFilters { FILTER_CARD_CARDS.setLockedFilter(true); } - public static final FilterCard FILTER_CARD_ENTCHANTMENT = new FilterEnchantmentCard(); + public static final FilterCard FILTER_CARD_ENCHANTMENT = new FilterEnchantmentCard(); static { - FILTER_CARD_ENTCHANTMENT.setLockedFilter(true); + FILTER_CARD_ENCHANTMENT.setLockedFilter(true); } public static final FilterArtifactCard FILTER_CARD_ARTIFACT = new FilterArtifactCard(); @@ -634,6 +634,13 @@ public final class StaticFilters { FILTER_CONTROLLED_ANOTHER_CREATURE.setLockedFilter(true); } + public static final FilterControlledCreaturePermanent FILTER_ANOTHER_CREATURE_YOU_CONTROL = new FilterControlledCreaturePermanent("another creature you control"); + + static { + FILTER_ANOTHER_CREATURE_YOU_CONTROL.add(AnotherPredicate.instance); + FILTER_ANOTHER_CREATURE_YOU_CONTROL.setLockedFilter(true); + } + public static final FilterControlledCreaturePermanent FILTER_CONTROLLED_UNTAPPED_CREATURE = new FilterControlledCreaturePermanent("untapped creature you control"); static {