diff --git a/Mage.Sets/src/mage/cards/a/AkiriFearlessVoyager.java b/Mage.Sets/src/mage/cards/a/AkiriFearlessVoyager.java index 5f232322f39..93b0882c73b 100644 --- a/Mage.Sets/src/mage/cards/a/AkiriFearlessVoyager.java +++ b/Mage.Sets/src/mage/cards/a/AkiriFearlessVoyager.java @@ -13,7 +13,6 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.*; import mage.filter.FilterPermanent; -import mage.filter.common.FilterEquipmentPermanent; import mage.filter.predicate.ObjectSourcePlayer; import mage.filter.predicate.ObjectSourcePlayerPredicate; import mage.game.Game; @@ -114,7 +113,7 @@ class AkiriFearlessVoyagerEffect extends OneShotEffect { } private static final FilterPermanent filter - = new FilterEquipmentPermanent("equipment attached to a creature you control"); + = new FilterPermanent(SubType.EQUIPMENT, "equipment attached to a creature you control"); static { filter.add(AkiriFearlessVoyagerPredicate.instance); diff --git a/Mage.Sets/src/mage/cards/b/BalanWanderingKnight.java b/Mage.Sets/src/mage/cards/b/BalanWanderingKnight.java index 0cde02622f2..75a109bcdce 100644 --- a/Mage.Sets/src/mage/cards/b/BalanWanderingKnight.java +++ b/Mage.Sets/src/mage/cards/b/BalanWanderingKnight.java @@ -17,7 +17,6 @@ import mage.cards.CardSetInfo; import mage.constants.*; import mage.filter.FilterPermanent; import mage.filter.StaticFilters; -import mage.filter.common.FilterEquipmentPermanent; import mage.filter.predicate.ObjectSourcePlayer; import mage.filter.predicate.ObjectSourcePlayerPredicate; import mage.game.Game; @@ -30,7 +29,7 @@ import java.util.UUID; */ public final class BalanWanderingKnight extends CardImpl { - private static final FilterPermanent filter = new FilterEquipmentPermanent(); + private static final FilterPermanent filter = new FilterPermanent(SubType.EQUIPMENT, ""); static { filter.add(BalanWanderingKnightPredicate.instance); diff --git a/Mage.Sets/src/mage/cards/b/BridesGown.java b/Mage.Sets/src/mage/cards/b/BridesGown.java index f1ff3a5670e..22628573303 100644 --- a/Mage.Sets/src/mage/cards/b/BridesGown.java +++ b/Mage.Sets/src/mage/cards/b/BridesGown.java @@ -17,7 +17,6 @@ import mage.constants.AttachmentType; import mage.constants.CardType; import mage.constants.SubType; import mage.filter.FilterPermanent; -import mage.filter.common.FilterEquipmentPermanent; import mage.filter.predicate.ObjectSourcePlayer; import mage.filter.predicate.ObjectSourcePlayerPredicate; import mage.filter.predicate.mageobject.NamePredicate; @@ -31,7 +30,7 @@ import java.util.UUID; */ public final class BridesGown extends CardImpl { - private static final FilterPermanent filter = new FilterEquipmentPermanent(); + private static final FilterPermanent filter = new FilterPermanent(SubType.EQUIPMENT, ""); static { filter.add(new NamePredicate("Groom's Finery")); diff --git a/Mage.Sets/src/mage/cards/c/CaptainAmericaFirstAvenger.java b/Mage.Sets/src/mage/cards/c/CaptainAmericaFirstAvenger.java index afdbc530d8c..021c5597854 100644 --- a/Mage.Sets/src/mage/cards/c/CaptainAmericaFirstAvenger.java +++ b/Mage.Sets/src/mage/cards/c/CaptainAmericaFirstAvenger.java @@ -22,7 +22,6 @@ import mage.constants.SuperType; import mage.filter.FilterPermanent; import mage.filter.StaticFilters; import mage.filter.common.FilterControlledPermanent; -import mage.filter.common.FilterEquipmentPermanent; import mage.filter.predicate.ObjectSourcePlayer; import mage.filter.predicate.ObjectSourcePlayerPredicate; import mage.filter.predicate.permanent.AttachedToPredicate; @@ -131,7 +130,7 @@ enum CaptainAmericaFirstAvengerValue implements DynamicValue { class CaptainAmericaFirstAvengerUnattachCost extends CostImpl implements EarlyTargetCost { - private static final FilterPermanent filter = new FilterEquipmentPermanent("equipment attached to this creature"); + private static final FilterPermanent filter = new FilterPermanent(SubType.EQUIPMENT, "equipment attached to this creature"); private static final FilterPermanent subfilter = new FilterControlledPermanent("{this}"); static { diff --git a/Mage.Sets/src/mage/cards/c/CarryAway.java b/Mage.Sets/src/mage/cards/c/CarryAway.java index 8cdfda62ae9..bf653a4f4c0 100644 --- a/Mage.Sets/src/mage/cards/c/CarryAway.java +++ b/Mage.Sets/src/mage/cards/c/CarryAway.java @@ -1,27 +1,25 @@ - package mage.cards.c; -import java.util.UUID; -import mage.target.common.TargetEquipmentPermanent; import mage.abilities.Ability; import mage.abilities.common.EntersBattlefieldTriggeredAbility; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.effects.OneShotEffect; import mage.abilities.effects.common.AttachEffect; import mage.abilities.effects.common.continuous.ControlEnchantedEffect; -import mage.constants.Outcome; -import mage.target.TargetPermanent; import mage.abilities.keyword.EnchantAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import mage.constants.Outcome; import mage.constants.SubType; -import mage.constants.Zone; +import mage.filter.StaticFilters; import mage.game.Game; import mage.game.permanent.Permanent; +import mage.target.TargetPermanent; + +import java.util.UUID; /** - * * @author TheElk801 */ public final class CarryAway extends CardImpl { @@ -32,15 +30,14 @@ public final class CarryAway extends CardImpl { this.subtype.add(SubType.AURA); // Enchant Equipment - TargetPermanent auraTarget = new TargetEquipmentPermanent(); + TargetPermanent auraTarget = new TargetPermanent(StaticFilters.FILTER_PERMANENT_EQUIPMENT); this.getSpellAbility().addTarget(auraTarget); this.getSpellAbility().addEffect(new AttachEffect(Outcome.Benefit)); - Ability ability = new EnchantAbility(auraTarget); - this.addAbility(ability); + this.addAbility(new EnchantAbility(auraTarget)); // When Carry Away enters the battlefield, unattach enchanted Equipment. - ability = new EntersBattlefieldTriggeredAbility(new CarryAwayEffect()); - this.addAbility(ability); + this.addAbility(new EntersBattlefieldTriggeredAbility(new CarryAwayEffect())); + // You control enchanted Equipment. this.addAbility(new SimpleStaticAbility(new ControlEnchantedEffect("Equipment"))); } diff --git a/Mage.Sets/src/mage/cards/f/FieryAnnihilation.java b/Mage.Sets/src/mage/cards/f/FieryAnnihilation.java index 6b54ad299ca..ad81f8376c0 100644 --- a/Mage.Sets/src/mage/cards/f/FieryAnnihilation.java +++ b/Mage.Sets/src/mage/cards/f/FieryAnnihilation.java @@ -7,8 +7,8 @@ import mage.abilities.effects.common.ExileTargetIfDiesEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import mage.constants.SubType; import mage.filter.FilterPermanent; -import mage.filter.common.FilterEquipmentPermanent; import mage.filter.predicate.ObjectSourcePlayer; import mage.filter.predicate.ObjectSourcePlayerPredicate; import mage.game.Game; @@ -26,7 +26,7 @@ import java.util.UUID; */ public final class FieryAnnihilation extends CardImpl { - private static final FilterPermanent filter = new FilterEquipmentPermanent("Equipment attached to that creature"); + private static final FilterPermanent filter = new FilterPermanent(SubType.EQUIPMENT, "Equipment attached to that creature"); static { filter.add(FieryAnnihilationPredicate.instance); diff --git a/Mage.Sets/src/mage/cards/g/GroomsFinery.java b/Mage.Sets/src/mage/cards/g/GroomsFinery.java index 0ea971de78a..d13c2331f81 100644 --- a/Mage.Sets/src/mage/cards/g/GroomsFinery.java +++ b/Mage.Sets/src/mage/cards/g/GroomsFinery.java @@ -17,7 +17,6 @@ import mage.constants.AttachmentType; import mage.constants.CardType; import mage.constants.SubType; import mage.filter.FilterPermanent; -import mage.filter.common.FilterEquipmentPermanent; import mage.filter.predicate.ObjectSourcePlayer; import mage.filter.predicate.ObjectSourcePlayerPredicate; import mage.filter.predicate.mageobject.NamePredicate; @@ -31,7 +30,7 @@ import java.util.UUID; */ public final class GroomsFinery extends CardImpl { - private static final FilterPermanent filter = new FilterEquipmentPermanent(); + private static final FilterPermanent filter = new FilterPermanent(SubType.EQUIPMENT, ""); static { filter.add(new NamePredicate("Bride's Gown")); diff --git a/Mage.Sets/src/mage/cards/h/HammerOfRuin.java b/Mage.Sets/src/mage/cards/h/HammerOfRuin.java index 9992e039c5d..85331db5be1 100644 --- a/Mage.Sets/src/mage/cards/h/HammerOfRuin.java +++ b/Mage.Sets/src/mage/cards/h/HammerOfRuin.java @@ -14,8 +14,7 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Outcome; import mage.constants.SubType; -import mage.constants.Zone; -import mage.filter.common.FilterEquipmentPermanent; +import mage.filter.FilterPermanent; import mage.target.TargetPermanent; import mage.target.targetadjustment.DamagedPlayerControlsTargetAdjuster; @@ -26,8 +25,8 @@ import java.util.UUID; */ public final class HammerOfRuin extends CardImpl { - private static final FilterEquipmentPermanent filter - = new FilterEquipmentPermanent("Equipment that player controls"); + private static final FilterPermanent filter + = new FilterPermanent(SubType.EQUIPMENT, "Equipment that player controls"); public HammerOfRuin(UUID ownerId, CardSetInfo setInfo) { super(ownerId, setInfo, new CardType[]{CardType.ARTIFACT}, "{2}"); diff --git a/Mage.Sets/src/mage/cards/m/MoltenRebuke.java b/Mage.Sets/src/mage/cards/m/MoltenRebuke.java index b5becec8997..1d8dda8cd18 100644 --- a/Mage.Sets/src/mage/cards/m/MoltenRebuke.java +++ b/Mage.Sets/src/mage/cards/m/MoltenRebuke.java @@ -6,8 +6,9 @@ import mage.abilities.effects.common.DestroyTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import mage.filter.StaticFilters; +import mage.target.TargetPermanent; import mage.target.common.TargetCreatureOrPlaneswalker; -import mage.target.common.TargetEquipmentPermanent; import java.util.UUID; @@ -28,7 +29,7 @@ public final class MoltenRebuke extends CardImpl { this.getSpellAbility().addTarget(new TargetCreatureOrPlaneswalker()); // * Destroy target Equipment. - this.getSpellAbility().addMode(new Mode(new DestroyTargetEffect()).addTarget(new TargetEquipmentPermanent())); + this.getSpellAbility().addMode(new Mode(new DestroyTargetEffect()).addTarget(new TargetPermanent(StaticFilters.FILTER_PERMANENT_EQUIPMENT))); } private MoltenRebuke(final MoltenRebuke card) { diff --git a/Mage.Sets/src/mage/cards/p/PlateArmor.java b/Mage.Sets/src/mage/cards/p/PlateArmor.java index 87f413a895d..d9acafdbf23 100644 --- a/Mage.Sets/src/mage/cards/p/PlateArmor.java +++ b/Mage.Sets/src/mage/cards/p/PlateArmor.java @@ -1,7 +1,5 @@ package mage.cards.p; -import java.util.UUID; - import mage.abilities.Ability; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.costs.CostAdjuster; @@ -14,18 +12,20 @@ import mage.abilities.hint.Hint; import mage.abilities.hint.ValueHint; import mage.abilities.keyword.EquipAbility; import mage.abilities.keyword.WardAbility; -import mage.constants.*; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.filter.common.FilterEquipmentPermanent; +import mage.constants.*; +import mage.filter.FilterPermanent; +import mage.filter.common.FilterControlledPermanent; import mage.filter.predicate.mageobject.AnotherPredicate; import mage.game.Game; import mage.players.Player; import mage.target.common.TargetControlledCreaturePermanent; import mage.util.CardUtil; +import java.util.UUID; + /** - * * @author weirddan455 */ public final class PlateArmor extends CardImpl { @@ -66,11 +66,10 @@ public final class PlateArmor extends CardImpl { enum PlateArmorAdjuster implements CostAdjuster { instance; - private static final FilterEquipmentPermanent filter = new FilterEquipmentPermanent("Other Equipment you control"); + private static final FilterPermanent filter = new FilterControlledPermanent(SubType.EQUIPMENT, "Other Equipment you control"); static { filter.add(AnotherPredicate.instance); - filter.add(TargetController.YOU.getControllerPredicate()); } private static final DynamicValue equipmentCount = new PermanentsOnBattlefieldCount(filter); diff --git a/Mage.Sets/src/mage/cards/s/ShacklesOfTreachery.java b/Mage.Sets/src/mage/cards/s/ShacklesOfTreachery.java index 13c9ae218ad..e4cc1f51b43 100644 --- a/Mage.Sets/src/mage/cards/s/ShacklesOfTreachery.java +++ b/Mage.Sets/src/mage/cards/s/ShacklesOfTreachery.java @@ -12,8 +12,8 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Duration; +import mage.constants.SubType; import mage.filter.FilterPermanent; -import mage.filter.common.FilterEquipmentPermanent; import mage.filter.predicate.ObjectSourcePlayer; import mage.filter.predicate.ObjectSourcePlayerPredicate; import mage.game.Game; @@ -29,7 +29,7 @@ import java.util.UUID; public final class ShacklesOfTreachery extends CardImpl { private static final FilterPermanent filter - = new FilterEquipmentPermanent("Equipment attached to it"); + = new FilterPermanent(SubType.EQUIPMENT, "Equipment attached to it"); static { filter.add(ShacklesOfTreacheryPredicate.instance); diff --git a/Mage.Sets/src/mage/cards/s/StolenUniform.java b/Mage.Sets/src/mage/cards/s/StolenUniform.java index 2535cfda517..323e3b4dcf0 100644 --- a/Mage.Sets/src/mage/cards/s/StolenUniform.java +++ b/Mage.Sets/src/mage/cards/s/StolenUniform.java @@ -10,11 +10,12 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Duration; import mage.constants.Outcome; +import mage.filter.StaticFilters; import mage.game.Game; import mage.game.events.GameEvent; import mage.game.permanent.Permanent; +import mage.target.TargetPermanent; import mage.target.common.TargetControlledCreaturePermanent; -import mage.target.common.TargetEquipmentPermanent; import mage.target.targetpointer.EachTargetPointer; import mage.target.targetpointer.FixedTarget; import mage.target.targetpointer.SecondTargetPointer; @@ -41,7 +42,7 @@ public final class StolenUniform extends CardImpl { this.getSpellAbility().addEffect(new StolenUniformAttachEffect()); this.getSpellAbility().addEffect(new StolenUniformTriggerEffect()); this.getSpellAbility().addTarget(new TargetControlledCreaturePermanent()); - this.getSpellAbility().addTarget(new TargetEquipmentPermanent()); + this.getSpellAbility().addTarget(new TargetPermanent(StaticFilters.FILTER_PERMANENT_EQUIPMENT)); } private StolenUniform(final StolenUniform card) { diff --git a/Mage.Sets/src/mage/cards/z/ZackFair.java b/Mage.Sets/src/mage/cards/z/ZackFair.java index 80eb823d14d..96ee7515874 100644 --- a/Mage.Sets/src/mage/cards/z/ZackFair.java +++ b/Mage.Sets/src/mage/cards/z/ZackFair.java @@ -20,7 +20,6 @@ import mage.constants.SubType; import mage.constants.SuperType; import mage.counters.CounterType; import mage.filter.FilterPermanent; -import mage.filter.common.FilterEquipmentPermanent; import mage.filter.predicate.Predicates; import mage.filter.predicate.permanent.PermanentIdPredicate; import mage.game.Controllable; @@ -115,8 +114,8 @@ class ZackFairEffect extends OneShotEffect { equipment = RandomUtil.randomFromCollection(permanents); break; default: - FilterPermanent filter = new FilterEquipmentPermanent( - "Equipment to attach to " + creature.getIdName() + FilterPermanent filter = new FilterPermanent( + SubType.EQUIPMENT, "Equipment to attach to " + creature.getIdName() ); filter.add(Predicates.or( permanents diff --git a/Mage/src/main/java/mage/filter/StaticFilters.java b/Mage/src/main/java/mage/filter/StaticFilters.java index 78c27df088f..d2ad491a720 100644 --- a/Mage/src/main/java/mage/filter/StaticFilters.java +++ b/Mage/src/main/java/mage/filter/StaticFilters.java @@ -1223,7 +1223,7 @@ public final class StaticFilters { FILTER_PERMANENT_AURAS.setLockedFilter(true); } - public static final FilterPermanent FILTER_PERMANENT_EQUIPMENT = new FilterEquipmentPermanent(); + public static final FilterPermanent FILTER_PERMANENT_EQUIPMENT = new FilterPermanent(SubType.EQUIPMENT, "Equipment"); static { FILTER_PERMANENT_EQUIPMENT.setLockedFilter(true); diff --git a/Mage/src/main/java/mage/filter/common/FilterEquipmentPermanent.java b/Mage/src/main/java/mage/filter/common/FilterEquipmentPermanent.java deleted file mode 100644 index bd5b02747cb..00000000000 --- a/Mage/src/main/java/mage/filter/common/FilterEquipmentPermanent.java +++ /dev/null @@ -1,31 +0,0 @@ - - - -package mage.filter.common; - -import mage.constants.SubType; -import mage.filter.FilterPermanent; - -/** - * @author TheElk801 - */ -public class FilterEquipmentPermanent extends FilterPermanent { - - public FilterEquipmentPermanent() { - this("Equipment"); - } - - public FilterEquipmentPermanent(String name) { - super(name); - this.add(SubType.EQUIPMENT.getPredicate()); - } - - protected FilterEquipmentPermanent(final FilterEquipmentPermanent filter) { - super(filter); - } - - @Override - public FilterEquipmentPermanent copy() { - return new FilterEquipmentPermanent(this); - } -} diff --git a/Mage/src/main/java/mage/target/common/TargetEquipmentPermanent.java b/Mage/src/main/java/mage/target/common/TargetEquipmentPermanent.java deleted file mode 100644 index 2fe9733ec75..00000000000 --- a/Mage/src/main/java/mage/target/common/TargetEquipmentPermanent.java +++ /dev/null @@ -1,37 +0,0 @@ - - -package mage.target.common; - -import mage.filter.common.FilterEquipmentPermanent; -import mage.target.TargetPermanent; - -/** - * @author TheElk801 - */ -public class TargetEquipmentPermanent extends TargetPermanent { - - public TargetEquipmentPermanent() { - this(1, 1, new FilterEquipmentPermanent(), false); - } - - public TargetEquipmentPermanent(FilterEquipmentPermanent filter) { - this(1, 1, filter, false); - } - - public TargetEquipmentPermanent(int numTargets) { - this(numTargets, numTargets, new FilterEquipmentPermanent(), false); - } - - public TargetEquipmentPermanent(int minNumTargets, int maxNumTargets, FilterEquipmentPermanent filter, boolean notTarget) { - super(minNumTargets, maxNumTargets, filter, notTarget); - } - - protected TargetEquipmentPermanent(final TargetEquipmentPermanent target) { - super(target); - } - - @Override - public TargetEquipmentPermanent copy() { - return new TargetEquipmentPermanent(this); - } -}