mirror of
https://github.com/magefree/mage.git
synced 2025-12-20 02:30:08 -08:00
remove some unneeded filter classes, add static filters
related to #13734
This commit is contained in:
parent
663ada11d1
commit
47f2a4fbe5
101 changed files with 326 additions and 476 deletions
|
|
@ -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 {
|
||||
|
|
|
|||
|
|
@ -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());
|
||||
}
|
||||
}
|
||||
|
|
@ -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);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
|
@ -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);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
|
@ -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);
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue