remove some unneeded filter classes, add static filters

related to #13734
This commit is contained in:
xenohedron 2025-06-08 01:52:14 -04:00
parent 663ada11d1
commit 47f2a4fbe5
101 changed files with 326 additions and 476 deletions

View file

@ -24,12 +24,6 @@ public final class StaticFilters {
private StaticFilters() {
}
public static final FilterSpiritOrArcaneCard FILTER_SPIRIT_OR_ARCANE_CARD = new FilterSpiritOrArcaneCard();
static {
FILTER_SPIRIT_OR_ARCANE_CARD.setLockedFilter(true);
}
public static final FilterCard FILTER_CARD = new FilterCard("card");
static {
@ -158,24 +152,20 @@ public final class StaticFilters {
FILTER_CARD_CREATURE_A_GRAVEYARD.setLockedFilter(true);
}
public static final FilterNoncreatureCard FILTER_CARD_NON_CREATURE = new FilterNoncreatureCard();
public static final FilterCard FILTER_CARD_NON_CREATURE = new FilterCard();
static {
FILTER_CARD_NON_CREATURE.add(Predicates.not(CardType.CREATURE.getPredicate()));
FILTER_CARD_NON_CREATURE.setLockedFilter(true);
}
public static final FilterNoncreatureCard FILTER_CARD_A_NON_CREATURE = new FilterNoncreatureCard("a noncreature card");
public static final FilterCard FILTER_CARD_A_NON_CREATURE = new FilterCard("a noncreature card");
static {
FILTER_CARD_A_NON_CREATURE.add(Predicates.not(CardType.CREATURE.getPredicate()));
FILTER_CARD_A_NON_CREATURE.setLockedFilter(true);
}
public static final FilterNoncreatureCard FILTER_CARDS_NON_CREATURE = new FilterNoncreatureCard("noncreature cards");
static {
FILTER_CARDS_NON_CREATURE.setLockedFilter(true);
}
public static final FilterLandCard FILTER_CARD_LAND = new FilterLandCard();
static {
@ -520,9 +510,13 @@ public final class StaticFilters {
FILTER_CONTROLLED_PERMANENT_LANDS.setLockedFilter(true);
}
public static final FilterPermanent FILTER_CONTROLLED_PERMANENT_CREATURE_OR_PLANESWALKER = new FilterControlledCreatureOrPlaneswalkerPermanent("creature or planeswalker you control");
public static final FilterPermanent FILTER_CONTROLLED_PERMANENT_CREATURE_OR_PLANESWALKER = new FilterControlledPermanent("creature or planeswalker you control");
static {
FILTER_CONTROLLED_PERMANENT_CREATURE_OR_PLANESWALKER.add(Predicates.or(
CardType.CREATURE.getPredicate(),
CardType.PLANESWALKER.getPredicate()
));
FILTER_CONTROLLED_PERMANENT_CREATURE_OR_PLANESWALKER.setLockedFilter(true);
}
@ -1047,12 +1041,30 @@ public final class StaticFilters {
FILTER_SPELL_AN_ENCHANTMENT.setLockedFilter(true);
}
public static final FilterSpell FILTER_SPELL_AN_ARTIFACT = new FilterArtifactSpell("an artifact spell");
public static final FilterSpell FILTER_SPELL_AN_ARTIFACT = new FilterSpell("an artifact spell");
static {
FILTER_SPELL_AN_ARTIFACT.add(CardType.ARTIFACT.getPredicate());
FILTER_SPELL_AN_ARTIFACT.setLockedFilter(true);
}
public static final FilterSpell FILTER_SPELL_SPIRIT_OR_ARCANE = new FilterSpell("a Spirit or Arcane spell");
static {
FILTER_SPELL_SPIRIT_OR_ARCANE.add(Predicates.or(
SubType.SPIRIT.getPredicate(),
SubType.ARCANE.getPredicate()
));
FILTER_SPELL_SPIRIT_OR_ARCANE.setLockedFilter(true);
}
public static final FilterSpell FILTER_SPELL_HISTORIC = new FilterSpell("a historic spell");
static {
FILTER_SPELL_HISTORIC.add(HistoricPredicate.instance);
FILTER_SPELL_HISTORIC.setLockedFilter(true);
}
public static final FilterSpell FILTER_SPELL_KICKED_A = new FilterSpell("a kicked spell");
static {

View file

@ -1,21 +0,0 @@
package mage.filter.common;
import mage.constants.CardType;
import mage.filter.FilterSpell;
/**
*
* @author Jgod
*/
public class FilterArtifactSpell extends FilterSpell {
public FilterArtifactSpell() {
this("artifact spell");
}
public FilterArtifactSpell(String name) {
super(name);
this.add(CardType.ARTIFACT.getPredicate());
}
}

View file

@ -1,46 +0,0 @@
package mage.filter.common;
import mage.constants.CardType;
import mage.constants.SubType;
import mage.filter.predicate.Predicates;
/**
* @author LevelX2
*/
public class FilterControlledCreatureOrPlaneswalkerPermanent extends FilterControlledPermanent {
public FilterControlledCreatureOrPlaneswalkerPermanent() {
this("creature or planeswalker you control");
}
public FilterControlledCreatureOrPlaneswalkerPermanent(SubType subType) {
this(subType, "a " + subType + " creature or a " + subType + " planeswalker");
}
public FilterControlledCreatureOrPlaneswalkerPermanent(SubType subType, String name) {
super(name);
this.add(Predicates.or(
CardType.CREATURE.getPredicate(),
CardType.PLANESWALKER.getPredicate()
));
this.add(subType.getPredicate());
}
public FilterControlledCreatureOrPlaneswalkerPermanent(String name) {
super(name);
this.add(Predicates.or(
CardType.CREATURE.getPredicate(),
CardType.PLANESWALKER.getPredicate()
));
}
protected FilterControlledCreatureOrPlaneswalkerPermanent(final FilterControlledCreatureOrPlaneswalkerPermanent filter) {
super(filter);
}
@Override
public FilterControlledCreatureOrPlaneswalkerPermanent copy() {
return new FilterControlledCreatureOrPlaneswalkerPermanent(this);
}
}

View file

@ -1,28 +0,0 @@
package mage.filter.common;
import mage.filter.FilterCard;
import mage.filter.predicate.mageobject.HistoricPredicate;
/**
* @author LevelX2
*/
public class FilterHistoricCard extends FilterCard {
public FilterHistoricCard() {
this("historic card");
}
public FilterHistoricCard(String name) {
super(name);
this.add(HistoricPredicate.instance);
}
protected FilterHistoricCard(final FilterHistoricCard filter) {
super(filter);
}
@Override
public FilterHistoricCard copy() {
return new FilterHistoricCard(this);
}
}

View file

@ -1,24 +0,0 @@
package mage.filter.common;
import mage.filter.FilterSpell;
import mage.filter.predicate.mageobject.HistoricPredicate;
/**
* @author igoudt
*/
public class FilterHistoricSpell extends FilterSpell {
public FilterHistoricSpell() {
super("a historic spell");
this.add(HistoricPredicate.instance);
}
protected FilterHistoricSpell(final FilterHistoricSpell filter) {
super(filter);
}
@Override
public FilterHistoricSpell copy() {
return new FilterHistoricSpell(this);
}
}

View file

@ -1,26 +0,0 @@
package mage.filter.common;
import mage.constants.CardType;
import mage.filter.FilterSpell;
public class FilterInstantSpell extends FilterSpell {
public FilterInstantSpell() {
this("instant spell");
}
public FilterInstantSpell(String name) {
super(name);
this.add(CardType.INSTANT.getPredicate());
}
protected FilterInstantSpell(final FilterInstantSpell filter) {
super(filter);
}
@Override
public FilterInstantSpell copy() {
return new FilterInstantSpell(this);
}
}

View file

@ -1,29 +0,0 @@
package mage.filter.common;
import mage.constants.CardType;
import mage.filter.FilterCard;
import mage.filter.predicate.Predicates;
/**
* @author ssouders412
*/
public class FilterNoncreatureCard extends FilterCard {
public FilterNoncreatureCard() {
this("noncreature card");
}
public FilterNoncreatureCard(String name) {
super(name);
this.add(Predicates.not(CardType.CREATURE.getPredicate()));
}
protected FilterNoncreatureCard(final FilterNoncreatureCard filter) {
super(filter);
}
@Override
public FilterNoncreatureCard copy() {
return new FilterNoncreatureCard(this);
}
}

View file

@ -1,26 +0,0 @@
package mage.filter.common;
import mage.constants.SubType;
import mage.filter.FilterSpell;
import mage.filter.predicate.Predicates;
public class FilterSpiritOrArcaneCard extends FilterSpell {
public FilterSpiritOrArcaneCard() {
this("a Spirit or Arcane spell");
}
public FilterSpiritOrArcaneCard(String name) {
super(name);
this.add(Predicates.or(SubType.SPIRIT.getPredicate(), SubType.ARCANE.getPredicate()));
}
protected FilterSpiritOrArcaneCard(final FilterSpiritOrArcaneCard filter) {
super(filter);
}
@Override
public FilterSpiritOrArcaneCard copy() {
return new FilterSpiritOrArcaneCard(this);
}
}

View file

@ -1,6 +1,5 @@
package mage.target.common;
import mage.filter.common.FilterControlledCreatureOrPlaneswalkerPermanent;
import mage.filter.common.FilterCreatureOrPlaneswalkerPermanent;
/**
@ -53,22 +52,6 @@ public class TargetCreatureOrPlaneswalkerAmount extends TargetPermanentAmount {
super(amount, minNumberOfTargets, maxNumberOfTargets, filter);
}
/**
* <b>IMPORTANT</b>: Use more specific constructor if {@code amount} is not always the same number!
*
* @see TargetCreatureOrPlaneswalkerAmount#TargetCreatureOrPlaneswalkerAmount(int, FilterCreatureOrPlaneswalkerPermanent)
*/
public TargetCreatureOrPlaneswalkerAmount(int amount, FilterControlledCreatureOrPlaneswalkerPermanent filter) {
this(amount, amount > 3 ? 0 : 1, amount, filter);
}
/**
* @see TargetCreatureOrPlaneswalkerAmount#TargetCreatureOrPlaneswalkerAmount(int, int, int, FilterCreatureOrPlaneswalkerPermanent)
*/
public TargetCreatureOrPlaneswalkerAmount(int amount, int minNumberOfTargets, int maxNumberOfTargets, FilterControlledCreatureOrPlaneswalkerPermanent filter) {
super(amount, minNumberOfTargets, maxNumberOfTargets, filter);
}
private TargetCreatureOrPlaneswalkerAmount(final TargetCreatureOrPlaneswalkerAmount target) {
super(target);
}