mirror of
https://github.com/correl/mage.git
synced 2024-12-24 11:50:45 +00:00
finish rewriting subtypepredicate
This commit is contained in:
parent
8ab4f5b454
commit
6d83a4a65f
342 changed files with 736 additions and 634 deletions
|
@ -34,6 +34,7 @@ import mage.abilities.effects.OneShotEffect;
|
|||
import mage.cards.*;
|
||||
import mage.constants.CardType;
|
||||
import mage.constants.Outcome;
|
||||
import mage.constants.SubType;
|
||||
import mage.constants.Zone;
|
||||
import mage.filter.FilterCard;
|
||||
import mage.filter.common.FilterControlledPermanent;
|
||||
|
@ -104,7 +105,7 @@ class BalaGedThiefEffect extends OneShotEffect {
|
|||
Player you = game.getPlayer(source.getControllerId());
|
||||
|
||||
FilterControlledPermanent filter = new FilterControlledPermanent();
|
||||
filter.add(new SubtypePredicate("Ally"));
|
||||
filter.add(new SubtypePredicate(SubType.ALLY));
|
||||
|
||||
int numberOfAllies = game.getBattlefield().countAll(filter, you.getId(), game);
|
||||
|
||||
|
|
|
@ -36,6 +36,7 @@ import mage.cards.CardImpl;
|
|||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.CardType;
|
||||
import mage.constants.Outcome;
|
||||
import mage.constants.SubType;
|
||||
import mage.filter.FilterCard;
|
||||
import mage.filter.predicate.Predicates;
|
||||
import mage.filter.predicate.mageobject.ColorPredicate;
|
||||
|
@ -77,7 +78,7 @@ class BalefulStareEffect extends OneShotEffect {
|
|||
private static final FilterCard filter = new FilterCard("Mountain or red card");
|
||||
|
||||
static {
|
||||
filter.add(Predicates.or(new SubtypePredicate("Mountain"),
|
||||
filter.add(Predicates.or(new SubtypePredicate(SubType.MOUNTAIN),
|
||||
new ColorPredicate(ObjectColor.RED)));
|
||||
}
|
||||
|
||||
|
|
|
@ -38,6 +38,7 @@ import mage.cards.CardImpl;
|
|||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.CardType;
|
||||
import mage.constants.Duration;
|
||||
import mage.constants.SubType;
|
||||
import mage.constants.Zone;
|
||||
import mage.filter.FilterPermanent;
|
||||
import mage.filter.predicate.mageobject.SubtypePredicate;
|
||||
|
@ -53,7 +54,7 @@ public class BasalSliver extends CardImpl {
|
|||
private static final FilterPermanent filter = new FilterPermanent("All Slivers");
|
||||
|
||||
static {
|
||||
filter.add(new SubtypePredicate("Sliver"));
|
||||
filter.add(new SubtypePredicate(SubType.SLIVER));
|
||||
}
|
||||
|
||||
public BasalSliver(UUID ownerId, CardSetInfo setInfo) {
|
||||
|
|
|
@ -35,6 +35,7 @@ import mage.cards.CardImpl;
|
|||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.CardType;
|
||||
import mage.constants.Duration;
|
||||
import mage.constants.SubType;
|
||||
import mage.constants.Zone;
|
||||
import mage.filter.common.FilterCreaturePermanent;
|
||||
import mage.filter.predicate.mageobject.SubtypePredicate;
|
||||
|
@ -50,7 +51,7 @@ public class BatteringSliver extends CardImpl {
|
|||
private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("all Sliver creatures");
|
||||
|
||||
static {
|
||||
filter.add(new SubtypePredicate("Sliver"));
|
||||
filter.add(new SubtypePredicate(SubType.SLIVER));
|
||||
}
|
||||
|
||||
public BatteringSliver(UUID ownerId, CardSetInfo setInfo) {
|
||||
|
|
|
@ -35,6 +35,7 @@ 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.FilterSpell;
|
||||
import mage.filter.predicate.mageobject.SubtypePredicate;
|
||||
|
@ -50,8 +51,8 @@ public class BattlewandOak extends CardImpl {
|
|||
private static final FilterPermanent filterForest = new FilterPermanent("a Forest");
|
||||
private static final FilterSpell filterTreefolk = new FilterSpell("a Treefolk spell");
|
||||
static {
|
||||
filterForest.add(new SubtypePredicate("Forest"));
|
||||
filterTreefolk.add(new SubtypePredicate("Treefolk"));
|
||||
filterForest.add(new SubtypePredicate(SubType.FOREST));
|
||||
filterTreefolk.add(new SubtypePredicate(SubType.TREEFOLK));
|
||||
}
|
||||
|
||||
public BattlewandOak(UUID ownerId, CardSetInfo setInfo) {
|
||||
|
|
|
@ -33,6 +33,7 @@ import mage.abilities.effects.common.ShuffleSpellEffect;
|
|||
import mage.cards.CardImpl;
|
||||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.CardType;
|
||||
import mage.constants.SubType;
|
||||
import mage.filter.common.FilterControlledPermanent;
|
||||
import mage.filter.predicate.mageobject.SubtypePredicate;
|
||||
import mage.game.permanent.token.InsectToken;
|
||||
|
@ -48,7 +49,7 @@ public class BeaconOfCreation extends CardImpl {
|
|||
private static final FilterControlledPermanent filter = new FilterControlledPermanent("Forest you control");
|
||||
|
||||
static {
|
||||
filter.add(new SubtypePredicate("Forest"));
|
||||
filter.add(new SubtypePredicate(SubType.FOREST));
|
||||
}
|
||||
|
||||
public BeaconOfCreation(UUID ownerId, CardSetInfo setInfo) {
|
||||
|
|
|
@ -34,10 +34,7 @@ import mage.abilities.effects.common.continuous.GainAbilityAllEffect;
|
|||
import mage.abilities.keyword.MenaceAbility;
|
||||
import mage.cards.CardImpl;
|
||||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.CardType;
|
||||
import mage.constants.Duration;
|
||||
import mage.constants.TargetController;
|
||||
import mage.constants.Zone;
|
||||
import mage.constants.*;
|
||||
import mage.filter.common.FilterCreaturePermanent;
|
||||
import mage.filter.predicate.mageobject.SubtypePredicate;
|
||||
import mage.filter.predicate.permanent.ControllerPredicate;
|
||||
|
@ -54,7 +51,7 @@ public class BelligerentSliver extends CardImpl {
|
|||
|
||||
static {
|
||||
filter.add(new ControllerPredicate(TargetController.YOU));
|
||||
filter.add(new SubtypePredicate("Sliver"));
|
||||
filter.add(new SubtypePredicate(SubType.SLIVER));
|
||||
}
|
||||
|
||||
public BelligerentSliver(UUID ownerId, CardSetInfo setInfo) {
|
||||
|
|
|
@ -37,6 +37,7 @@ import mage.abilities.effects.common.DamageTargetEffect;
|
|||
import mage.cards.CardImpl;
|
||||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.CardType;
|
||||
import mage.constants.SubType;
|
||||
import mage.constants.SuperType;
|
||||
import mage.constants.Zone;
|
||||
import mage.filter.common.FilterLandPermanent;
|
||||
|
@ -57,7 +58,7 @@ public class BenBenAkkiHermit extends CardImpl {
|
|||
|
||||
static {
|
||||
filter.add(Predicates.not(new TappedPredicate()));
|
||||
filter.add(new SubtypePredicate("Mountain"));
|
||||
filter.add(new SubtypePredicate(SubType.MOUNTAIN));
|
||||
}
|
||||
|
||||
public BenBenAkkiHermit (UUID ownerId, CardSetInfo setInfo) {
|
||||
|
|
|
@ -40,6 +40,7 @@ import mage.cards.CardImpl;
|
|||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.CardType;
|
||||
import mage.constants.Duration;
|
||||
import mage.constants.SubType;
|
||||
import mage.constants.Zone;
|
||||
import mage.filter.common.FilterControlledPermanent;
|
||||
import mage.filter.predicate.Predicates;
|
||||
|
@ -60,7 +61,7 @@ public class Benthicore extends CardImpl {
|
|||
|
||||
static {
|
||||
filter.add(Predicates.not(new TappedPredicate()));
|
||||
filter.add(new SubtypePredicate("Merfolk"));
|
||||
filter.add(new SubtypePredicate(SubType.MERFOLK));
|
||||
}
|
||||
|
||||
public Benthicore(UUID ownerId, CardSetInfo setInfo) {
|
||||
|
|
|
@ -36,6 +36,7 @@ import mage.cards.CardImpl;
|
|||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.CardType;
|
||||
import mage.constants.Duration;
|
||||
import mage.constants.SubType;
|
||||
import mage.filter.common.FilterCreaturePermanent;
|
||||
import mage.filter.predicate.mageobject.SubtypePredicate;
|
||||
|
||||
|
@ -50,7 +51,7 @@ public class BerserkMurlodont extends CardImpl {
|
|||
private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("a Beast");
|
||||
|
||||
static {
|
||||
filter.add(new SubtypePredicate("Beast"));
|
||||
filter.add(new SubtypePredicate(SubType.BEAST));
|
||||
}
|
||||
|
||||
public BerserkMurlodont(UUID ownerId, CardSetInfo setInfo) {
|
||||
|
|
|
@ -37,6 +37,7 @@ import mage.abilities.effects.common.DestroyTargetEffect;
|
|||
import mage.cards.CardImpl;
|
||||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.CardType;
|
||||
import mage.constants.SubType;
|
||||
import mage.constants.Zone;
|
||||
import mage.filter.FilterPermanent;
|
||||
import mage.filter.predicate.mageobject.SubtypePredicate;
|
||||
|
@ -53,7 +54,7 @@ public class BlasterMage extends CardImpl {
|
|||
private static final FilterPermanent filter = new FilterPermanent("Wall");
|
||||
|
||||
static {
|
||||
filter.add(new SubtypePredicate("Wall"));
|
||||
filter.add(new SubtypePredicate(SubType.WALL));
|
||||
}
|
||||
|
||||
public BlasterMage(UUID ownerId, CardSetInfo setInfo) {
|
||||
|
|
|
@ -39,6 +39,7 @@ import mage.abilities.effects.common.LoseLifeTargetEffect;
|
|||
import mage.cards.CardImpl;
|
||||
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.SubtypePredicate;
|
||||
|
@ -58,7 +59,7 @@ public class BloodChinFanatic extends CardImpl {
|
|||
|
||||
static {
|
||||
filter.add(new AnotherPredicate());
|
||||
filter.add(new SubtypePredicate("Warrior"));
|
||||
filter.add(new SubtypePredicate(SubType.WARRIOR));
|
||||
}
|
||||
|
||||
public BloodChinFanatic(UUID ownerId, CardSetInfo setInfo) {
|
||||
|
|
|
@ -38,6 +38,7 @@ import mage.abilities.effects.common.search.SearchLibraryPutInHandEffect;
|
|||
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.filter.FilterCard;
|
||||
|
@ -56,8 +57,8 @@ public class BloodSpeaker extends CardImpl {
|
|||
private static final FilterControlledCreaturePermanent filter = new FilterControlledCreaturePermanent("a Demon under your control");
|
||||
private static final FilterCard filterCard = new FilterCard("Demon card");
|
||||
static {
|
||||
filter.add(new SubtypePredicate("Demon"));
|
||||
filterCard.add(new SubtypePredicate("Demon"));
|
||||
filter.add(new SubtypePredicate(SubType.DEMON));
|
||||
filterCard.add(new SubtypePredicate(SubType.DEMON));
|
||||
}
|
||||
|
||||
public BloodSpeaker (UUID ownerId, CardSetInfo setInfo) {
|
||||
|
|
|
@ -38,6 +38,7 @@ import mage.cards.CardImpl;
|
|||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.CardType;
|
||||
import mage.constants.Outcome;
|
||||
import mage.constants.SubType;
|
||||
import mage.filter.common.FilterControlledCreaturePermanent;
|
||||
import mage.filter.predicate.Predicates;
|
||||
import mage.filter.predicate.mageobject.SubtypePredicate;
|
||||
|
@ -59,7 +60,7 @@ public class BloodTribute extends CardImpl {
|
|||
|
||||
static {
|
||||
filter.add(Predicates.not(new TappedPredicate()));
|
||||
filter.add(new SubtypePredicate("Vampire"));
|
||||
filter.add(new SubtypePredicate(SubType.VAMPIRE));
|
||||
}
|
||||
|
||||
public BloodTribute(UUID ownerId, CardSetInfo setInfo) {
|
||||
|
|
|
@ -108,7 +108,7 @@ class BludgeonBrawlAddSubtypeEffect extends ContinuousEffectImpl {
|
|||
public boolean apply(Game game, Ability source) {
|
||||
FilterArtifactPermanent filter = new FilterArtifactPermanent("noncreature, non-Equipment artifact");
|
||||
filter.add(Predicates.not(new CardTypePredicate(CardType.CREATURE)));
|
||||
filter.add(Predicates.not(new SubtypePredicate("Equipment")));
|
||||
filter.add(Predicates.not(new SubtypePredicate(SubType.EQUIPMENT)));
|
||||
|
||||
Cards affectedPermanents = new CardsImpl();
|
||||
List<Permanent> permanents = game.getBattlefield().getActivePermanents(filter, source.getControllerId(), game);
|
||||
|
|
|
@ -36,6 +36,7 @@ import mage.abilities.keyword.SwampwalkAbility;
|
|||
import mage.cards.CardImpl;
|
||||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.CardType;
|
||||
import mage.constants.SubType;
|
||||
import mage.filter.FilterSpell;
|
||||
import mage.filter.predicate.mageobject.SubtypePredicate;
|
||||
|
||||
|
@ -50,7 +51,7 @@ public class BogStriderAsh extends CardImpl {
|
|||
private static final FilterSpell filter = new FilterSpell("a Goblin spell");
|
||||
|
||||
static {
|
||||
filter.add(new SubtypePredicate("Goblin"));
|
||||
filter.add(new SubtypePredicate(SubType.GOBLIN));
|
||||
}
|
||||
|
||||
public BogStriderAsh(UUID ownerId, CardSetInfo setInfo) {
|
||||
|
|
|
@ -36,6 +36,7 @@ import mage.abilities.keyword.MorphAbility;
|
|||
import mage.cards.CardImpl;
|
||||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.CardType;
|
||||
import mage.constants.SubType;
|
||||
import mage.constants.Zone;
|
||||
import mage.filter.FilterPermanent;
|
||||
import mage.filter.predicate.mageobject.SubtypePredicate;
|
||||
|
@ -52,7 +53,7 @@ public class Boneknitter extends CardImpl {
|
|||
private static final FilterPermanent filter = new FilterPermanent("Zombie");
|
||||
|
||||
static {
|
||||
filter.add(new SubtypePredicate("Zombie"));
|
||||
filter.add(new SubtypePredicate(SubType.ZOMBIE));
|
||||
}
|
||||
|
||||
public Boneknitter(UUID ownerId, CardSetInfo setInfo) {
|
||||
|
|
|
@ -33,6 +33,7 @@ import mage.abilities.effects.common.cost.SpellsCostReductionControllerEffect;
|
|||
import mage.cards.CardImpl;
|
||||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.CardType;
|
||||
import mage.constants.SubType;
|
||||
import mage.constants.Zone;
|
||||
import mage.filter.FilterCard;
|
||||
import mage.filter.predicate.Predicates;
|
||||
|
@ -50,8 +51,8 @@ public class BoskBanneret extends CardImpl {
|
|||
|
||||
static {
|
||||
filter.add(Predicates.or(
|
||||
new SubtypePredicate("Treefolk"),
|
||||
new SubtypePredicate("Shaman")));
|
||||
new SubtypePredicate(SubType.TREEFOLK),
|
||||
new SubtypePredicate(SubType.SHAMAN)));
|
||||
}
|
||||
|
||||
public BoskBanneret(UUID ownerId, CardSetInfo setInfo) {
|
||||
|
|
|
@ -38,6 +38,7 @@ import mage.cards.CardImpl;
|
|||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.CardType;
|
||||
import mage.constants.Duration;
|
||||
import mage.constants.SubType;
|
||||
import mage.constants.Zone;
|
||||
import mage.filter.common.FilterControlledPermanent;
|
||||
import mage.filter.common.FilterCreaturePermanent;
|
||||
|
@ -58,7 +59,7 @@ public class Brawn extends CardImpl {
|
|||
|
||||
static {
|
||||
filter.add(new CardTypePredicate(CardType.LAND));
|
||||
filter.add(new SubtypePredicate("Forest"));
|
||||
filter.add(new SubtypePredicate(SubType.FOREST));
|
||||
}
|
||||
|
||||
public Brawn(UUID ownerId, CardSetInfo setInfo) {
|
||||
|
|
|
@ -35,6 +35,7 @@ import mage.abilities.keyword.ReinforceAbility;
|
|||
import mage.cards.CardImpl;
|
||||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.CardType;
|
||||
import mage.constants.SubType;
|
||||
import mage.constants.Zone;
|
||||
import mage.filter.FilterCard;
|
||||
import mage.filter.predicate.Predicates;
|
||||
|
@ -52,8 +53,8 @@ public class BrighthearthBanneret extends CardImpl {
|
|||
|
||||
static {
|
||||
filter.add(Predicates.or(
|
||||
new SubtypePredicate("Elemental"),
|
||||
new SubtypePredicate("Warrior")));
|
||||
new SubtypePredicate(SubType.ELEMENTAL),
|
||||
new SubtypePredicate(SubType.WARRIOR)));
|
||||
}
|
||||
|
||||
public BrighthearthBanneret(UUID ownerId, CardSetInfo setInfo) {
|
||||
|
|
|
@ -33,6 +33,7 @@ import mage.abilities.effects.common.DynamicManaEffect;
|
|||
import mage.cards.CardImpl;
|
||||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.CardType;
|
||||
import mage.constants.SubType;
|
||||
import mage.filter.FilterPermanent;
|
||||
import mage.filter.predicate.mageobject.SubtypePredicate;
|
||||
|
||||
|
@ -47,7 +48,7 @@ public class BrightstoneRitual extends CardImpl {
|
|||
private static final FilterPermanent filter = new FilterPermanent("Goblin on the battlefield");
|
||||
|
||||
static {
|
||||
filter.add(new SubtypePredicate("Goblin"));
|
||||
filter.add(new SubtypePredicate(SubType.GOBLIN));
|
||||
}
|
||||
|
||||
public BrightstoneRitual(UUID ownerId, CardSetInfo setInfo) {
|
||||
|
|
|
@ -33,6 +33,7 @@ import mage.cards.CardImpl;
|
|||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.CardType;
|
||||
import mage.constants.Outcome;
|
||||
import mage.constants.SubType;
|
||||
import mage.filter.common.FilterControlledCreaturePermanent;
|
||||
import mage.filter.predicate.mageobject.SubtypePredicate;
|
||||
import mage.game.Game;
|
||||
|
@ -82,8 +83,8 @@ class BroodBirthingEffect extends OneShotEffect {
|
|||
@Override
|
||||
public boolean apply(Game game, Ability source) {
|
||||
FilterControlledCreaturePermanent filter = new FilterControlledCreaturePermanent("Eldrazi Spawn");
|
||||
filter.add(new SubtypePredicate("Eldrazi"));
|
||||
filter.add(new SubtypePredicate("Spawn"));
|
||||
filter.add(new SubtypePredicate(SubType.ELDRAZI));
|
||||
filter.add(new SubtypePredicate(SubType.SPAWN));
|
||||
|
||||
EldraziSpawnToken token = new EldraziSpawnToken();
|
||||
int count = game.getBattlefield().countAll(filter, source.getControllerId(), game) > 0 ? 3 : 1;
|
||||
|
|
|
@ -109,7 +109,7 @@ class BrunaLightOfAlabasterEffect extends OneShotEffect {
|
|||
filterAura.add(new SubtypePredicate(SubType.AURA));
|
||||
filterAura.add(new AuraPermanentCanAttachToPermanentId(bruna));
|
||||
filterAuraCard.add(new CardTypePredicate(CardType.ENCHANTMENT));
|
||||
filterAuraCard.add(new SubtypePredicate("Aura"));
|
||||
filterAuraCard.add(new SubtypePredicate(SubType.AURA));
|
||||
filterAuraCard.add(new AuraCardCanAttachToPermanentId(bruna));
|
||||
|
||||
if (player == null) {
|
||||
|
|
|
@ -38,6 +38,7 @@ import mage.abilities.effects.common.LoseLifeTargetEffect;
|
|||
import mage.cards.CardImpl;
|
||||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.CardType;
|
||||
import mage.constants.SubType;
|
||||
import mage.constants.Zone;
|
||||
import mage.filter.common.FilterControlledPermanent;
|
||||
import mage.filter.predicate.mageobject.SubtypePredicate;
|
||||
|
@ -55,7 +56,7 @@ public class CabalArchon extends CardImpl {
|
|||
private static final FilterControlledPermanent filter = new FilterControlledPermanent("a Cleric");
|
||||
|
||||
static {
|
||||
filter.add(new SubtypePredicate("Cleric"));
|
||||
filter.add(new SubtypePredicate(SubType.CLERIC));
|
||||
}
|
||||
|
||||
public CabalArchon(UUID ownerId, CardSetInfo setInfo) {
|
||||
|
|
|
@ -38,6 +38,7 @@ import mage.abilities.effects.common.search.SearchLibraryPutInPlayEffect;
|
|||
import mage.cards.CardImpl;
|
||||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.CardType;
|
||||
import mage.constants.SubType;
|
||||
import mage.constants.Zone;
|
||||
import mage.filter.common.FilterPermanentCard;
|
||||
import mage.filter.predicate.mageobject.ConvertedManaCostPredicate;
|
||||
|
@ -54,7 +55,7 @@ public class CateranKidnappers extends CardImpl {
|
|||
private static final FilterPermanentCard filter = new FilterPermanentCard("Mercenary permanent card with converted mana cost 3 or less");
|
||||
|
||||
static {
|
||||
filter.add(new SubtypePredicate("Mercenary"));
|
||||
filter.add(new SubtypePredicate(SubType.MERCENARY));
|
||||
filter.add(new ConvertedManaCostPredicate(ComparisonType.FEWER_THAN, 4));
|
||||
}
|
||||
|
||||
|
|
|
@ -35,6 +35,7 @@ import mage.cards.CardImpl;
|
|||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.CardType;
|
||||
import mage.constants.Duration;
|
||||
import mage.constants.SubType;
|
||||
import mage.constants.Zone;
|
||||
import mage.filter.FilterCard;
|
||||
import mage.filter.predicate.mageobject.SubtypePredicate;
|
||||
|
@ -77,7 +78,7 @@ class CeaselessSearbladesTriggeredAbility extends TriggeredAbilityImpl {
|
|||
private static final FilterCard filter = new FilterCard("an Elemental");
|
||||
|
||||
static {
|
||||
filter.add(new SubtypePredicate("Elemental"));
|
||||
filter.add(new SubtypePredicate(SubType.ELEMENTAL));
|
||||
}
|
||||
|
||||
CeaselessSearbladesTriggeredAbility() {
|
||||
|
|
|
@ -33,6 +33,7 @@ import mage.abilities.effects.common.counter.AddCountersSourceEffect;
|
|||
import mage.cards.CardImpl;
|
||||
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;
|
||||
|
@ -49,7 +50,7 @@ public class ChampionOfTheParish extends CardImpl {
|
|||
|
||||
private static final FilterPermanent filter = new FilterControlledCreaturePermanent("another Human");
|
||||
static {
|
||||
filter.add(new SubtypePredicate("Human"));
|
||||
filter.add(new SubtypePredicate(SubType.HUMAN));
|
||||
filter.add(new AnotherPredicate());
|
||||
}
|
||||
|
||||
|
|
|
@ -36,6 +36,7 @@ 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.predicate.mageobject.SubtypePredicate;
|
||||
import mage.target.TargetPermanent;
|
||||
|
@ -52,7 +53,7 @@ public class ChaosCharm extends CardImpl {
|
|||
private static final FilterPermanent filter = new FilterPermanent("Wall");
|
||||
|
||||
static {
|
||||
filter.add(new SubtypePredicate("Wall"));
|
||||
filter.add(new SubtypePredicate(SubType.WALL));
|
||||
}
|
||||
|
||||
public ChaosCharm(UUID ownerId, CardSetInfo setInfo) {
|
||||
|
|
|
@ -38,6 +38,7 @@ import mage.abilities.keyword.MonstrosityAbility;
|
|||
import mage.cards.CardImpl;
|
||||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.CardType;
|
||||
import mage.constants.SubType;
|
||||
import mage.constants.SuperType;
|
||||
import mage.constants.TargetController;
|
||||
import mage.counters.CounterType;
|
||||
|
@ -65,7 +66,7 @@ public class ChiefChirpa extends CardImpl {
|
|||
diedFilter.add(new ColorPredicate(ObjectColor.GREEN));
|
||||
diedFilter.add(new ControllerPredicate(TargetController.YOU));
|
||||
|
||||
ewokFilter.add(new SubtypePredicate("Ewok"));
|
||||
ewokFilter.add(new SubtypePredicate(SubType.EWOK));
|
||||
ewokFilter.add(new AnotherPredicate());
|
||||
}
|
||||
|
||||
|
|
|
@ -34,6 +34,7 @@ import mage.cards.CardImpl;
|
|||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.CardType;
|
||||
import mage.constants.Duration;
|
||||
import mage.constants.SubType;
|
||||
import mage.constants.Zone;
|
||||
import mage.filter.common.FilterCreaturePermanent;
|
||||
import mage.filter.predicate.mageobject.SubtypePredicate;
|
||||
|
@ -49,7 +50,7 @@ public class ChiefOfTheScale extends CardImpl {
|
|||
private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("Warrior creatures");
|
||||
|
||||
static {
|
||||
filter.add(new SubtypePredicate("Warrior"));
|
||||
filter.add(new SubtypePredicate(SubType.WARRIOR));
|
||||
}
|
||||
|
||||
public ChiefOfTheScale(UUID ownerId, CardSetInfo setInfo) {
|
||||
|
|
|
@ -35,6 +35,7 @@ import mage.abilities.mana.BlueManaAbility;
|
|||
import mage.cards.CardImpl;
|
||||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.CardType;
|
||||
import mage.constants.SubType;
|
||||
import mage.filter.FilterCard;
|
||||
import mage.filter.predicate.Predicates;
|
||||
import mage.filter.predicate.mageobject.SubtypePredicate;
|
||||
|
@ -51,8 +52,8 @@ public class ChokedEstuary extends CardImpl {
|
|||
private static final FilterCard filter = new FilterCard("an Island or Swamp card from your hand");
|
||||
|
||||
static {
|
||||
filter.add(Predicates.or(new SubtypePredicate("Island"),
|
||||
new SubtypePredicate("Swamp")));
|
||||
filter.add(Predicates.or(new SubtypePredicate(SubType.ISLAND),
|
||||
new SubtypePredicate(SubType.SWAMP)));
|
||||
}
|
||||
|
||||
public ChokedEstuary(UUID ownerId, CardSetInfo setInfo) {
|
||||
|
|
|
@ -40,6 +40,7 @@ import mage.abilities.mana.WhiteManaAbility;
|
|||
import mage.cards.CardImpl;
|
||||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.CardType;
|
||||
import mage.constants.SubType;
|
||||
import mage.filter.common.FilterLandPermanent;
|
||||
import mage.filter.predicate.Predicates;
|
||||
import mage.filter.predicate.mageobject.SubtypePredicate;
|
||||
|
@ -54,7 +55,7 @@ public class ClifftopRetreat extends CardImpl {
|
|||
private static final FilterLandPermanent filter = new FilterLandPermanent();
|
||||
|
||||
static {
|
||||
filter.add(Predicates.or(new SubtypePredicate("Mountain"), new SubtypePredicate("Plains")));
|
||||
filter.add(Predicates.or(new SubtypePredicate(SubType.MOUNTAIN), new SubtypePredicate(SubType.PLAINS)));
|
||||
}
|
||||
|
||||
public ClifftopRetreat(UUID ownerId, CardSetInfo setInfo) {
|
||||
|
|
|
@ -37,6 +37,7 @@ import mage.cards.CardImpl;
|
|||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.CardType;
|
||||
import mage.constants.Duration;
|
||||
import mage.constants.SubType;
|
||||
import mage.constants.Zone;
|
||||
import mage.filter.FilterPermanent;
|
||||
import mage.filter.predicate.mageobject.SubtypePredicate;
|
||||
|
@ -51,7 +52,7 @@ public class ClotSliver extends CardImpl {
|
|||
private static final FilterPermanent filter = new FilterPermanent("Slivers");
|
||||
|
||||
static {
|
||||
filter.add(new SubtypePredicate("Sliver"));
|
||||
filter.add(new SubtypePredicate(SubType.SLIVER));
|
||||
}
|
||||
|
||||
public ClotSliver(UUID ownerId, CardSetInfo setInfo) {
|
||||
|
|
|
@ -31,6 +31,7 @@ import mage.abilities.effects.common.WishEffect;
|
|||
import mage.cards.CardImpl;
|
||||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.CardType;
|
||||
import mage.constants.SubType;
|
||||
import mage.filter.FilterCard;
|
||||
import mage.filter.predicate.mageobject.SubtypePredicate;
|
||||
|
||||
|
@ -45,7 +46,7 @@ public class CoaxFromTheBlindEternities extends CardImpl {
|
|||
private static final FilterCard filter = new FilterCard("an Eldrazi card");
|
||||
|
||||
static {
|
||||
filter.add(new SubtypePredicate("Eldrazi"));
|
||||
filter.add(new SubtypePredicate(SubType.ELDRAZI));
|
||||
}
|
||||
|
||||
public CoaxFromTheBlindEternities(UUID ownerId, CardSetInfo setInfo) {
|
||||
|
|
|
@ -39,6 +39,7 @@ import mage.abilities.keyword.FlyingAbility;
|
|||
import mage.cards.CardImpl;
|
||||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.CardType;
|
||||
import mage.constants.SubType;
|
||||
import mage.constants.Zone;
|
||||
import mage.filter.common.FilterPlaneswalkerPermanent;
|
||||
import mage.filter.predicate.mageobject.SubtypePredicate;
|
||||
|
@ -52,7 +53,7 @@ public class CompanionOfTheTrials extends CardImpl {
|
|||
|
||||
private static final FilterPlaneswalkerPermanent filter = new FilterPlaneswalkerPermanent("you control a Gideon planeswalker");
|
||||
static {
|
||||
filter.add(new SubtypePredicate("Gideon"));
|
||||
filter.add(new SubtypePredicate(SubType.GIDEON));
|
||||
}
|
||||
|
||||
public CompanionOfTheTrials(UUID ownerId, CardSetInfo setInfo) {
|
||||
|
|
|
@ -34,6 +34,7 @@ import mage.abilities.effects.common.LookLibraryAndPickControllerEffect;
|
|||
import mage.cards.CardImpl;
|
||||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.CardType;
|
||||
import mage.constants.SubType;
|
||||
import mage.filter.FilterCard;
|
||||
import mage.filter.predicate.mageobject.SubtypePredicate;
|
||||
|
||||
|
@ -48,7 +49,7 @@ public class CourageousOutrider extends CardImpl {
|
|||
private static final FilterCard filter = new FilterCard("a Human card");
|
||||
|
||||
static {
|
||||
filter.add(new SubtypePredicate("Human"));
|
||||
filter.add(new SubtypePredicate(SubType.HUMAN));
|
||||
}
|
||||
|
||||
public CourageousOutrider(UUID ownerId, CardSetInfo setInfo) {
|
||||
|
|
|
@ -36,6 +36,7 @@ import mage.abilities.effects.common.continuous.BoostSourceWhileControlsEffect;
|
|||
import mage.cards.CardImpl;
|
||||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.CardType;
|
||||
import mage.constants.SubType;
|
||||
import mage.constants.Zone;
|
||||
import mage.filter.FilterPermanent;
|
||||
import mage.filter.predicate.mageobject.SubtypePredicate;
|
||||
|
@ -51,7 +52,7 @@ public class CrimsonMuckwader extends CardImpl {
|
|||
private static final FilterPermanent filter = new FilterPermanent("Swamp");
|
||||
|
||||
static {
|
||||
filter.add(new SubtypePredicate("Swamp"));
|
||||
filter.add(new SubtypePredicate(SubType.SWAMP));
|
||||
}
|
||||
|
||||
public CrimsonMuckwader(UUID ownerId, CardSetInfo setInfo) {
|
||||
|
|
|
@ -37,6 +37,7 @@ import mage.cards.CardImpl;
|
|||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.CardType;
|
||||
import mage.constants.Duration;
|
||||
import mage.constants.SubType;
|
||||
import mage.constants.Zone;
|
||||
import mage.filter.common.FilterAttackingCreature;
|
||||
import mage.filter.predicate.mageobject.SubtypePredicate;
|
||||
|
@ -53,7 +54,7 @@ public class CrossroadsConsecrator extends CardImpl {
|
|||
private final static FilterAttackingCreature filter = new FilterAttackingCreature("attacking Human");
|
||||
|
||||
static {
|
||||
filter.add(new SubtypePredicate("Human"));
|
||||
filter.add(new SubtypePredicate(SubType.HUMAN));
|
||||
}
|
||||
|
||||
public CrossroadsConsecrator(UUID ownerId, CardSetInfo setInfo) {
|
||||
|
|
|
@ -31,10 +31,7 @@ import mage.abilities.common.SimpleStaticAbility;
|
|||
import mage.abilities.effects.common.continuous.BoostControlledEffect;
|
||||
import mage.cards.CardImpl;
|
||||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.CardType;
|
||||
import mage.constants.Duration;
|
||||
import mage.constants.TargetController;
|
||||
import mage.constants.Zone;
|
||||
import mage.constants.*;
|
||||
import mage.filter.common.FilterCreaturePermanent;
|
||||
import mage.filter.predicate.mageobject.SubtypePredicate;
|
||||
import mage.filter.predicate.permanent.ControllerPredicate;
|
||||
|
@ -50,7 +47,7 @@ public class CrucibleOfFire extends CardImpl {
|
|||
private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("Dragon creatures");
|
||||
static {
|
||||
filter.add(new ControllerPredicate(TargetController.YOU));
|
||||
filter.add(new SubtypePredicate("Dragon"));
|
||||
filter.add(new SubtypePredicate(SubType.DRAGON));
|
||||
}
|
||||
|
||||
public CrucibleOfFire(UUID ownerId, CardSetInfo setInfo) {
|
||||
|
|
|
@ -36,6 +36,7 @@ import mage.abilities.mana.TriggeredManaAbility;
|
|||
import mage.cards.CardImpl;
|
||||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.CardType;
|
||||
import mage.constants.SubType;
|
||||
import mage.constants.Zone;
|
||||
import mage.filter.common.FilterControlledLandPermanent;
|
||||
import mage.filter.predicate.mageobject.SubtypePredicate;
|
||||
|
@ -79,7 +80,7 @@ class CryptGhastTriggeredAbility extends TriggeredManaAbility {
|
|||
|
||||
private static final FilterControlledLandPermanent filter = new FilterControlledLandPermanent("Swamp");
|
||||
static {
|
||||
filter.add(new SubtypePredicate("Swamp"));
|
||||
filter.add(new SubtypePredicate(SubType.SWAMP));
|
||||
}
|
||||
|
||||
public CryptGhastTriggeredAbility() {
|
||||
|
|
|
@ -33,10 +33,7 @@ import mage.abilities.effects.common.DontUntapInControllersUntapStepAllEffect;
|
|||
import mage.abilities.effects.common.TapAllEffect;
|
||||
import mage.cards.CardImpl;
|
||||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.CardType;
|
||||
import mage.constants.Duration;
|
||||
import mage.constants.TargetController;
|
||||
import mage.constants.Zone;
|
||||
import mage.constants.*;
|
||||
import mage.filter.FilterPermanent;
|
||||
import mage.filter.predicate.mageobject.SubtypePredicate;
|
||||
|
||||
|
@ -51,7 +48,7 @@ public class CurseOfMaritLage extends CardImpl {
|
|||
private static final FilterPermanent filter = new FilterPermanent("Islands");
|
||||
|
||||
static {
|
||||
filter.add(new SubtypePredicate("Island"));
|
||||
filter.add(new SubtypePredicate(SubType.ISLAND));
|
||||
}
|
||||
|
||||
public CurseOfMaritLage(UUID ownerId, CardSetInfo setInfo) {
|
||||
|
|
|
@ -35,6 +35,7 @@ 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.common.FilterCreaturePermanent;
|
||||
import mage.filter.predicate.mageobject.SubtypePredicate;
|
||||
|
@ -72,7 +73,7 @@ class CutTheTethersEffect extends OneShotEffect {
|
|||
|
||||
private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("Spirit creatures");
|
||||
static {
|
||||
filter.add(new SubtypePredicate("Spirit"));
|
||||
filter.add(new SubtypePredicate(SubType.SPIRIT));
|
||||
}
|
||||
|
||||
public CutTheTethersEffect() {
|
||||
|
|
|
@ -35,6 +35,7 @@ import mage.cards.CardImpl;
|
|||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.CardType;
|
||||
import mage.constants.Duration;
|
||||
import mage.constants.SubType;
|
||||
import mage.constants.Zone;
|
||||
import mage.filter.common.FilterControlledPermanent;
|
||||
import mage.filter.predicate.mageobject.SubtypePredicate;
|
||||
|
@ -50,7 +51,7 @@ public class DakmorSorceress extends CardImpl {
|
|||
private static final FilterControlledPermanent filter = new FilterControlledPermanent("Swamps you control");
|
||||
|
||||
static {
|
||||
filter.add(new SubtypePredicate("Swamp"));
|
||||
filter.add(new SubtypePredicate(SubType.SWAMP));
|
||||
}
|
||||
|
||||
public DakmorSorceress(UUID ownerId, CardSetInfo setInfo) {
|
||||
|
|
|
@ -33,6 +33,7 @@ import mage.abilities.effects.common.GainLifeEffect;
|
|||
import mage.cards.CardImpl;
|
||||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.CardType;
|
||||
import mage.constants.SubType;
|
||||
import mage.constants.Zone;
|
||||
import mage.filter.common.FilterControlledPermanent;
|
||||
import mage.filter.predicate.mageobject.SubtypePredicate;
|
||||
|
@ -49,7 +50,7 @@ public class DarkHeartOfTheWood extends CardImpl {
|
|||
private static final FilterControlledPermanent filter = new FilterControlledPermanent("Forest");
|
||||
|
||||
static {
|
||||
filter.add(new SubtypePredicate("Forest"));
|
||||
filter.add(new SubtypePredicate(SubType.FOREST));
|
||||
}
|
||||
|
||||
public DarkHeartOfTheWood(UUID ownerId, CardSetInfo setInfo) {
|
||||
|
|
|
@ -68,7 +68,7 @@ public class DarkIntimations extends CardImpl {
|
|||
|
||||
static {
|
||||
filter.add(new CardTypePredicate(CardType.PLANESWALKER));
|
||||
filter.add(new SubtypePredicate("Bolas"));
|
||||
filter.add(new SubtypePredicate(SubType.BOLAS));
|
||||
}
|
||||
|
||||
public DarkIntimations(UUID ownerId, CardSetInfo setInfo) {
|
||||
|
|
|
@ -37,6 +37,7 @@ import mage.cards.CardImpl;
|
|||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.CardType;
|
||||
import mage.constants.Duration;
|
||||
import mage.constants.SubType;
|
||||
import mage.filter.common.FilterCreaturePermanent;
|
||||
import mage.filter.predicate.mageobject.SubtypePredicate;
|
||||
import mage.game.Game;
|
||||
|
@ -86,7 +87,7 @@ class ZombiesControlledByTargetPlayerCount implements DynamicValue {
|
|||
private final static FilterCreaturePermanent filter = new FilterCreaturePermanent("Zombies");
|
||||
|
||||
static {
|
||||
filter.add(new SubtypePredicate("Zombie"));
|
||||
filter.add(new SubtypePredicate(SubType.ZOMBIE));
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
@ -35,6 +35,7 @@ import mage.cards.CardImpl;
|
|||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.CardType;
|
||||
import mage.constants.Duration;
|
||||
import mage.constants.SubType;
|
||||
import mage.constants.Zone;
|
||||
import mage.filter.FilterCard;
|
||||
import mage.filter.common.FilterCreaturePermanent;
|
||||
|
@ -52,8 +53,8 @@ public class DaruWarchief extends CardImpl {
|
|||
private static final FilterCreaturePermanent filterCreatures = new FilterCreaturePermanent("Soldier creatures");
|
||||
|
||||
static {
|
||||
filter.add(new SubtypePredicate("Soldier"));
|
||||
filterCreatures.add(new SubtypePredicate("Soldier"));
|
||||
filter.add(new SubtypePredicate(SubType.SOLDIER));
|
||||
filterCreatures.add(new SubtypePredicate(SubType.SOLDIER));
|
||||
}
|
||||
|
||||
public DaruWarchief(UUID ownerId, CardSetInfo setInfo) {
|
||||
|
|
|
@ -40,6 +40,7 @@ import mage.cards.CardImpl;
|
|||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.CardType;
|
||||
import mage.constants.Duration;
|
||||
import mage.constants.SubType;
|
||||
import mage.constants.Zone;
|
||||
import mage.filter.common.FilterControlledPermanent;
|
||||
import mage.filter.predicate.Predicates;
|
||||
|
@ -59,9 +60,9 @@ public class DauntlessDourbark extends CardImpl {
|
|||
final static private FilterControlledPermanent filter2 = new FilterControlledPermanent();
|
||||
|
||||
static {
|
||||
filter.add(Predicates.or(new SubtypePredicate("Forest"),
|
||||
new SubtypePredicate("Treefolk")));
|
||||
filter2.add(new SubtypePredicate("Treefolk"));
|
||||
filter.add(Predicates.or(new SubtypePredicate(SubType.FOREST),
|
||||
new SubtypePredicate(SubType.TREEFOLK)));
|
||||
filter2.add(new SubtypePredicate(SubType.TREEFOLK));
|
||||
filter2.add(new AnotherPredicate());
|
||||
}
|
||||
|
||||
|
|
|
@ -37,6 +37,7 @@ import mage.abilities.effects.common.continuous.BoostSourceWhileControlsEffect;
|
|||
import mage.cards.CardImpl;
|
||||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.CardType;
|
||||
import mage.constants.SubType;
|
||||
import mage.constants.Zone;
|
||||
import mage.filter.FilterPermanent;
|
||||
import mage.filter.predicate.mageobject.SubtypePredicate;
|
||||
|
@ -53,7 +54,7 @@ public class DauntlessRiverMarshal extends CardImpl {
|
|||
private static final FilterPermanent filter = new FilterPermanent("an Island");
|
||||
|
||||
static {
|
||||
filter.add(new SubtypePredicate("Island"));
|
||||
filter.add(new SubtypePredicate(SubType.ISLAND));
|
||||
|
||||
}
|
||||
|
||||
|
|
|
@ -35,6 +35,7 @@ import mage.abilities.keyword.VigilanceAbility;
|
|||
import mage.cards.CardImpl;
|
||||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.CardType;
|
||||
import mage.constants.SubType;
|
||||
import mage.constants.Zone;
|
||||
import mage.filter.common.FilterControlledPermanent;
|
||||
import mage.filter.predicate.Predicates;
|
||||
|
@ -53,8 +54,8 @@ public class DeathlessBehemoth extends CardImpl {
|
|||
|
||||
static {
|
||||
filter.add(Predicates.and(
|
||||
new SubtypePredicate("Eldrazi"),
|
||||
new SubtypePredicate("Scion")));
|
||||
new SubtypePredicate(SubType.ELDRAZI),
|
||||
new SubtypePredicate(SubType.SCION)));
|
||||
}
|
||||
|
||||
public DeathlessBehemoth(UUID ownerId, CardSetInfo setInfo) {
|
||||
|
|
|
@ -38,10 +38,7 @@ import mage.abilities.effects.common.continuous.BoostTargetEffect;
|
|||
import mage.abilities.effects.common.counter.AddCountersSourceEffect;
|
||||
import mage.cards.CardImpl;
|
||||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.CardType;
|
||||
import mage.constants.Duration;
|
||||
import mage.constants.TargetController;
|
||||
import mage.constants.Zone;
|
||||
import mage.constants.*;
|
||||
import mage.counters.CounterType;
|
||||
import mage.filter.common.FilterControlledCreaturePermanent;
|
||||
import mage.filter.predicate.mageobject.SubtypePredicate;
|
||||
|
@ -59,7 +56,7 @@ public class DeathsporeThallid extends CardImpl {
|
|||
|
||||
private static final FilterControlledCreaturePermanent filter = new FilterControlledCreaturePermanent("Saproling");
|
||||
static {
|
||||
filter.add(new SubtypePredicate("Saproling"));
|
||||
filter.add(new SubtypePredicate(SubType.SAPROLING));
|
||||
}
|
||||
|
||||
public DeathsporeThallid(UUID ownerId, CardSetInfo setInfo) {
|
||||
|
|
|
@ -38,10 +38,7 @@ import mage.abilities.effects.OneShotEffect;
|
|||
import mage.abilities.effects.common.NameACardEffect;
|
||||
import mage.abilities.effects.common.continuous.GainAbilityAllEffect;
|
||||
import mage.cards.*;
|
||||
import mage.constants.CardType;
|
||||
import mage.constants.Duration;
|
||||
import mage.constants.Outcome;
|
||||
import mage.constants.Zone;
|
||||
import mage.constants.*;
|
||||
import mage.filter.FilterPermanent;
|
||||
import mage.filter.predicate.mageobject.SubtypePredicate;
|
||||
import mage.game.Game;
|
||||
|
@ -59,7 +56,7 @@ public class DementiaSliver extends CardImpl {
|
|||
private static final FilterPermanent filter = new FilterPermanent("All Slivers");
|
||||
|
||||
static {
|
||||
filter.add(new SubtypePredicate("Sliver"));
|
||||
filter.add(new SubtypePredicate(SubType.SLIVER));
|
||||
}
|
||||
|
||||
public DementiaSliver(UUID ownerId, CardSetInfo setInfo) {
|
||||
|
|
|
@ -36,6 +36,7 @@ import mage.abilities.effects.common.ExileTargetEffect;
|
|||
import mage.cards.CardImpl;
|
||||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.CardType;
|
||||
import mage.constants.SubType;
|
||||
import mage.constants.Zone;
|
||||
import mage.filter.common.FilterArtifactOrEnchantmentPermanent;
|
||||
import mage.filter.common.FilterControlledPermanent;
|
||||
|
@ -56,7 +57,7 @@ public class DevoutChaplain extends CardImpl {
|
|||
|
||||
static {
|
||||
humanFilter.add(Predicates.not(new TappedPredicate()));
|
||||
humanFilter.add(new SubtypePredicate("Human"));
|
||||
humanFilter.add(new SubtypePredicate(SubType.HUMAN));
|
||||
}
|
||||
|
||||
public DevoutChaplain(UUID ownerId, CardSetInfo setInfo) {
|
||||
|
|
|
@ -37,6 +37,7 @@ import mage.cards.CardImpl;
|
|||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.CardType;
|
||||
import mage.constants.Duration;
|
||||
import mage.constants.SubType;
|
||||
import mage.constants.Zone;
|
||||
import mage.filter.common.FilterCreaturePermanent;
|
||||
import mage.filter.predicate.mageobject.SubtypePredicate;
|
||||
|
@ -58,7 +59,7 @@ public class DiregrafCaptain extends CardImpl {
|
|||
private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("Zombie");
|
||||
|
||||
static {
|
||||
filter.add(new SubtypePredicate("Zombie"));
|
||||
filter.add(new SubtypePredicate(SubType.ZOMBIE));
|
||||
}
|
||||
|
||||
public DiregrafCaptain(UUID ownerId, CardSetInfo setInfo) {
|
||||
|
@ -91,7 +92,7 @@ class DiregrafCaptainTriggeredAbility extends TriggeredAbilityImpl {
|
|||
private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("Zombie");
|
||||
|
||||
static {
|
||||
filter.add(new SubtypePredicate("Zombie"));
|
||||
filter.add(new SubtypePredicate(SubType.ZOMBIE));
|
||||
}
|
||||
|
||||
public DiregrafCaptainTriggeredAbility() {
|
||||
|
|
|
@ -37,6 +37,7 @@ import mage.cards.CardImpl;
|
|||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.CardType;
|
||||
import mage.constants.Outcome;
|
||||
import mage.constants.SubType;
|
||||
import mage.counters.CounterType;
|
||||
import mage.filter.FilterSpell;
|
||||
import mage.filter.common.FilterCreatureCard;
|
||||
|
@ -57,7 +58,7 @@ public class DiregrafColossus extends CardImpl {
|
|||
private static final FilterSpell filter = new FilterSpell("a Zombie spell");
|
||||
|
||||
static {
|
||||
filter.add(new SubtypePredicate("Zombie"));
|
||||
filter.add(new SubtypePredicate(SubType.ZOMBIE));
|
||||
}
|
||||
|
||||
public DiregrafColossus(UUID ownerId, CardSetInfo setInfo) {
|
||||
|
@ -90,7 +91,7 @@ class DiregrafColossusEffect extends OneShotEffect {
|
|||
private static final FilterCreatureCard filter = new FilterCreatureCard();
|
||||
|
||||
static {
|
||||
filter.add(new SubtypePredicate("Zombie"));
|
||||
filter.add(new SubtypePredicate(SubType.ZOMBIE));
|
||||
}
|
||||
|
||||
public DiregrafColossusEffect() {
|
||||
|
|
|
@ -35,6 +35,7 @@ import mage.abilities.keyword.SoulbondAbility;
|
|||
import mage.cards.CardImpl;
|
||||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.CardType;
|
||||
import mage.constants.SubType;
|
||||
import mage.constants.Zone;
|
||||
import mage.filter.FilterPermanent;
|
||||
import mage.filter.common.FilterCreaturePermanent;
|
||||
|
@ -52,7 +53,7 @@ public class DiregrafEscort extends CardImpl {
|
|||
private static final FilterPermanent filter = new FilterCreaturePermanent("Zombies");
|
||||
|
||||
static {
|
||||
filter.add(new SubtypePredicate("Zombie"));
|
||||
filter.add(new SubtypePredicate(SubType.ZOMBIE));
|
||||
}
|
||||
|
||||
public DiregrafEscort(UUID ownerId, CardSetInfo setInfo) {
|
||||
|
|
|
@ -33,6 +33,7 @@ import mage.cards.CardImpl;
|
|||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.CardType;
|
||||
import mage.constants.Outcome;
|
||||
import mage.constants.SubType;
|
||||
import mage.filter.FilterPermanent;
|
||||
import mage.filter.predicate.mageobject.SubtypePredicate;
|
||||
import mage.filter.predicate.permanent.AttachedToPredicate;
|
||||
|
@ -91,7 +92,7 @@ public class Disarm extends CardImpl {
|
|||
|
||||
FilterPermanent equipmentFilter = new FilterPermanent();
|
||||
equipmentFilter.add(new AttachedToPredicate(creatureFilter));
|
||||
equipmentFilter.add(new SubtypePredicate("Equipment"));
|
||||
equipmentFilter.add(new SubtypePredicate(SubType.EQUIPMENT));
|
||||
|
||||
for (Permanent equipment : game.getBattlefield().getAllActivePermanents(equipmentFilter, game)) {
|
||||
creature.removeAttachment(equipment.getId(), game);
|
||||
|
|
|
@ -41,6 +41,7 @@ import mage.cards.CardSetInfo;
|
|||
import mage.cards.f.FinalIteration;
|
||||
import mage.constants.CardType;
|
||||
import mage.constants.Outcome;
|
||||
import mage.constants.SubType;
|
||||
import mage.constants.TargetController;
|
||||
import mage.filter.FilterPermanent;
|
||||
import mage.filter.FilterSpell;
|
||||
|
@ -105,7 +106,7 @@ class DocentOfPerfectionEffect extends OneShotEffect {
|
|||
private static final FilterPermanent filter = new FilterPermanent("Wizards");
|
||||
|
||||
static {
|
||||
filter.add(new SubtypePredicate("Wizard"));
|
||||
filter.add(new SubtypePredicate(SubType.WIZARD));
|
||||
filter.add(new ControllerPredicate(TargetController.YOU));
|
||||
}
|
||||
|
||||
|
|
|
@ -36,6 +36,7 @@ import mage.cards.CardImpl;
|
|||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.CardType;
|
||||
import mage.constants.Duration;
|
||||
import mage.constants.SubType;
|
||||
import mage.constants.Zone;
|
||||
import mage.filter.FilterPermanent;
|
||||
import mage.filter.predicate.mageobject.SubtypePredicate;
|
||||
|
@ -51,7 +52,7 @@ public class DoubtlessOne extends CardImpl {
|
|||
final static FilterPermanent filter = new FilterPermanent("Clerics on the battlefield");
|
||||
|
||||
static {
|
||||
filter.add(new SubtypePredicate("Cleric"));
|
||||
filter.add(new SubtypePredicate(SubType.CLERIC));
|
||||
}
|
||||
|
||||
public DoubtlessOne(UUID ownerId, CardSetInfo setInfo) {
|
||||
|
|
|
@ -39,10 +39,7 @@ import mage.abilities.keyword.FlyingAbility;
|
|||
import mage.abilities.keyword.TrampleAbility;
|
||||
import mage.cards.CardImpl;
|
||||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.CardType;
|
||||
import mage.constants.Duration;
|
||||
import mage.constants.TargetController;
|
||||
import mage.constants.Zone;
|
||||
import mage.constants.*;
|
||||
import mage.filter.common.FilterCreaturePermanent;
|
||||
import mage.filter.predicate.mageobject.SubtypePredicate;
|
||||
import mage.filter.predicate.permanent.ControllerPredicate;
|
||||
|
@ -59,7 +56,7 @@ public class DragonloftIdol extends CardImpl {
|
|||
|
||||
static {
|
||||
filter.add(new ControllerPredicate(TargetController.YOU));
|
||||
filter.add(new SubtypePredicate("Dragon"));
|
||||
filter.add(new SubtypePredicate(SubType.DRAGON));
|
||||
}
|
||||
|
||||
public DragonloftIdol(UUID ownerId, CardSetInfo setInfo) {
|
||||
|
|
|
@ -40,6 +40,7 @@ import mage.abilities.mana.RedManaAbility;
|
|||
import mage.cards.CardImpl;
|
||||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.CardType;
|
||||
import mage.constants.SubType;
|
||||
import mage.filter.common.FilterLandPermanent;
|
||||
import mage.filter.predicate.Predicates;
|
||||
import mage.filter.predicate.mageobject.SubtypePredicate;
|
||||
|
@ -55,7 +56,7 @@ public class DragonskullSummit extends CardImpl {
|
|||
private static final FilterLandPermanent filter = new FilterLandPermanent();
|
||||
|
||||
static {
|
||||
filter.add(Predicates.or(new SubtypePredicate("Swamp"), new SubtypePredicate("Mountain")));
|
||||
filter.add(Predicates.or(new SubtypePredicate(SubType.SWAMP), new SubtypePredicate(SubType.MOUNTAIN)));
|
||||
}
|
||||
|
||||
public DragonskullSummit(UUID ownerId, CardSetInfo setInfo) {
|
||||
|
|
|
@ -37,6 +37,7 @@ import mage.cards.CardImpl;
|
|||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.CardType;
|
||||
import mage.constants.Duration;
|
||||
import mage.constants.SubType;
|
||||
import mage.constants.Zone;
|
||||
import mage.filter.common.FilterCreaturePermanent;
|
||||
import mage.filter.predicate.mageobject.SubtypePredicate;
|
||||
|
@ -51,7 +52,7 @@ public class DrogskolCaptain extends CardImpl {
|
|||
private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("Spirit");
|
||||
|
||||
static {
|
||||
filter.add(new SubtypePredicate("Spirit"));
|
||||
filter.add(new SubtypePredicate(SubType.SPIRIT));
|
||||
}
|
||||
|
||||
public DrogskolCaptain(UUID ownerId, CardSetInfo setInfo) {
|
||||
|
|
|
@ -36,6 +36,7 @@ import mage.abilities.mana.WhiteManaAbility;
|
|||
import mage.cards.CardImpl;
|
||||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.CardType;
|
||||
import mage.constants.SubType;
|
||||
import mage.filter.common.FilterControlledLandPermanent;
|
||||
import mage.filter.predicate.Predicates;
|
||||
import mage.filter.predicate.mageobject.SubtypePredicate;
|
||||
|
@ -51,7 +52,7 @@ public class DromarsCavern extends CardImpl {
|
|||
|
||||
private static final FilterControlledLandPermanent filter = new FilterControlledLandPermanent("non-Lair land");
|
||||
static{
|
||||
filter.add(Predicates.not(new SubtypePredicate("Lair")));
|
||||
filter.add(Predicates.not(new SubtypePredicate(SubType.LAIR)));
|
||||
}
|
||||
public DromarsCavern(UUID ownerId, CardSetInfo setInfo) {
|
||||
super(ownerId,setInfo,new CardType[]{CardType.LAND},"");
|
||||
|
|
|
@ -40,6 +40,7 @@ import mage.abilities.mana.BlueManaAbility;
|
|||
import mage.cards.CardImpl;
|
||||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.CardType;
|
||||
import mage.constants.SubType;
|
||||
import mage.filter.common.FilterLandPermanent;
|
||||
import mage.filter.predicate.Predicates;
|
||||
import mage.filter.predicate.mageobject.SubtypePredicate;
|
||||
|
@ -55,7 +56,7 @@ public class DrownedCatacomb extends CardImpl {
|
|||
private static final FilterLandPermanent filter = new FilterLandPermanent();
|
||||
|
||||
static {
|
||||
filter.add(Predicates.or(new SubtypePredicate("Swamp"), new SubtypePredicate("Island")));
|
||||
filter.add(Predicates.or(new SubtypePredicate(SubType.SWAMP), new SubtypePredicate(SubType.ISLAND)));
|
||||
}
|
||||
|
||||
public DrownedCatacomb(UUID ownerId, CardSetInfo setInfo) {
|
||||
|
|
|
@ -38,6 +38,7 @@ import mage.cards.CardImpl;
|
|||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.CardType;
|
||||
import mage.constants.Duration;
|
||||
import mage.constants.SubType;
|
||||
import mage.constants.Zone;
|
||||
import mage.filter.common.FilterControlledPermanent;
|
||||
import mage.filter.predicate.mageobject.SubtypePredicate;
|
||||
|
@ -51,7 +52,7 @@ public class DungroveElder extends CardImpl {
|
|||
final static FilterControlledPermanent filterLands = new FilterControlledPermanent("Forests you control");
|
||||
|
||||
static {
|
||||
filterLands.add(new SubtypePredicate("Forest"));
|
||||
filterLands.add(new SubtypePredicate(SubType.FOREST));
|
||||
}
|
||||
|
||||
public DungroveElder (UUID ownerId, CardSetInfo setInfo) {
|
||||
|
|
|
@ -35,6 +35,7 @@ import mage.abilities.effects.common.DestroyTargetEffect;
|
|||
import mage.cards.CardImpl;
|
||||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.CardType;
|
||||
import mage.constants.SubType;
|
||||
import mage.constants.Zone;
|
||||
import mage.filter.common.FilterCreaturePermanent;
|
||||
import mage.filter.predicate.mageobject.SubtypePredicate;
|
||||
|
@ -51,7 +52,7 @@ public class DwarvenDemolitionTeam extends CardImpl {
|
|||
private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("Wall");
|
||||
|
||||
static{
|
||||
filter.add(new SubtypePredicate("Wall"));
|
||||
filter.add(new SubtypePredicate(SubType.WALL));
|
||||
}
|
||||
|
||||
public DwarvenDemolitionTeam(UUID ownerId, CardSetInfo setInfo) {
|
||||
|
|
|
@ -38,6 +38,7 @@ import mage.cards.CardImpl;
|
|||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.CardType;
|
||||
import mage.constants.Duration;
|
||||
import mage.constants.SubType;
|
||||
import mage.constants.Zone;
|
||||
import mage.filter.common.FilterCreaturePermanent;
|
||||
import mage.filter.predicate.mageobject.SubtypePredicate;
|
||||
|
@ -54,7 +55,7 @@ public class DwarvenPony extends CardImpl {
|
|||
private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("Dwarf creature");
|
||||
|
||||
static {
|
||||
filter.add(new SubtypePredicate("Dwarf"));
|
||||
filter.add(new SubtypePredicate(SubType.DWARF));
|
||||
}
|
||||
|
||||
public DwarvenPony(UUID ownerId, CardSetInfo setInfo) {
|
||||
|
|
|
@ -37,6 +37,7 @@ import mage.abilities.effects.common.CreateTokenEffect;
|
|||
import mage.cards.CardImpl;
|
||||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.CardType;
|
||||
import mage.constants.SubType;
|
||||
import mage.filter.common.FilterControlledPermanent;
|
||||
import mage.filter.predicate.mageobject.SubtypePredicate;
|
||||
import mage.filter.predicate.permanent.AnotherPredicate;
|
||||
|
@ -54,7 +55,7 @@ public class DwynensElite extends CardImpl {
|
|||
|
||||
static {
|
||||
filter.add(new AnotherPredicate());
|
||||
filter.add(new SubtypePredicate("Elf"));
|
||||
filter.add(new SubtypePredicate(SubType.ELF));
|
||||
}
|
||||
|
||||
public DwynensElite(UUID ownerId, CardSetInfo setInfo) {
|
||||
|
|
|
@ -37,6 +37,7 @@ import mage.abilities.effects.common.DestroyTargetEffect;
|
|||
import mage.cards.CardImpl;
|
||||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.CardType;
|
||||
import mage.constants.SubType;
|
||||
import mage.constants.Zone;
|
||||
import mage.filter.common.FilterControlledPermanent;
|
||||
import mage.filter.predicate.mageobject.SubtypePredicate;
|
||||
|
@ -53,7 +54,7 @@ public class Earthblighter extends CardImpl {
|
|||
|
||||
private static final FilterControlledPermanent filter = new FilterControlledPermanent("Goblin");
|
||||
static {
|
||||
filter.add(new SubtypePredicate("Goblin"));
|
||||
filter.add(new SubtypePredicate(SubType.GOBLIN));
|
||||
}
|
||||
|
||||
public Earthblighter(UUID ownerId, CardSetInfo setInfo) {
|
||||
|
|
|
@ -56,7 +56,7 @@ public class EchoBaseCommando extends CardImpl {
|
|||
private static final Filter filter = new FilterPermanent("Beasts");
|
||||
|
||||
static {
|
||||
filter.add(new SubtypePredicate("Beast"));
|
||||
filter.add(new SubtypePredicate(SubType.BEAST));
|
||||
}
|
||||
|
||||
public EchoBaseCommando(UUID ownerId, CardSetInfo setInfo) {
|
||||
|
|
|
@ -34,6 +34,7 @@ import mage.abilities.effects.common.cost.SpellsCostReductionControllerEffect;
|
|||
import mage.cards.CardImpl;
|
||||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.CardType;
|
||||
import mage.constants.SubType;
|
||||
import mage.constants.Zone;
|
||||
import mage.filter.FilterCard;
|
||||
import mage.filter.predicate.mageobject.SubtypePredicate;
|
||||
|
@ -48,7 +49,7 @@ public class Edgewalker extends CardImpl {
|
|||
|
||||
private static final FilterCard filter = new FilterCard("Cleric spells");
|
||||
static {
|
||||
filter.add(new SubtypePredicate("Cleric"));
|
||||
filter.add(new SubtypePredicate(SubType.CLERIC));
|
||||
}
|
||||
|
||||
public Edgewalker(UUID ownerId, CardSetInfo setInfo) {
|
||||
|
|
|
@ -32,6 +32,7 @@ import mage.abilities.effects.common.search.SearchLibraryPutInHandEffect;
|
|||
import mage.cards.CardImpl;
|
||||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.CardType;
|
||||
import mage.constants.SubType;
|
||||
import mage.filter.FilterCard;
|
||||
import mage.filter.predicate.mageobject.SubtypePredicate;
|
||||
import mage.target.common.TargetCardInLibrary;
|
||||
|
@ -46,7 +47,7 @@ public class EerieProcession extends CardImpl {
|
|||
private static final FilterCard filter = new FilterCard("Arcane card");
|
||||
|
||||
static {
|
||||
filter.add(new SubtypePredicate("Arcane"));
|
||||
filter.add(new SubtypePredicate(SubType.ARCANE));
|
||||
}
|
||||
|
||||
public EerieProcession(UUID ownerId, CardSetInfo setInfo) {
|
||||
|
|
|
@ -35,6 +35,7 @@ import mage.abilities.effects.common.GainLifeEffect;
|
|||
import mage.cards.CardImpl;
|
||||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.CardType;
|
||||
import mage.constants.SubType;
|
||||
import mage.constants.Zone;
|
||||
import mage.filter.FilterCard;
|
||||
import mage.filter.predicate.mageobject.SubtypePredicate;
|
||||
|
@ -50,7 +51,7 @@ public class ElvishEulogist extends CardImpl {
|
|||
private static final FilterCard filter = new FilterCard("Elf");
|
||||
|
||||
static {
|
||||
filter.add(new SubtypePredicate("Elf"));
|
||||
filter.add(new SubtypePredicate(SubType.ELF));
|
||||
}
|
||||
|
||||
public ElvishEulogist(UUID ownerId, CardSetInfo setInfo) {
|
||||
|
|
|
@ -33,6 +33,7 @@ import mage.abilities.effects.common.counter.AddCountersSourceEffect;
|
|||
import mage.cards.CardImpl;
|
||||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.CardType;
|
||||
import mage.constants.SubType;
|
||||
import mage.counters.CounterType;
|
||||
import mage.filter.FilterSpell;
|
||||
import mage.filter.predicate.mageobject.SubtypePredicate;
|
||||
|
@ -48,7 +49,7 @@ public class ElvishHandservant extends CardImpl {
|
|||
private static final FilterSpell filter = new FilterSpell("Giant");
|
||||
|
||||
static {
|
||||
filter.add(new SubtypePredicate("Giant"));
|
||||
filter.add(new SubtypePredicate(SubType.GIANT));
|
||||
}
|
||||
|
||||
public ElvishHandservant(UUID ownerId, CardSetInfo setInfo) {
|
||||
|
|
|
@ -36,6 +36,7 @@ import mage.cards.CardImpl;
|
|||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.CardType;
|
||||
import mage.constants.Duration;
|
||||
import mage.constants.SubType;
|
||||
import mage.filter.common.FilterEnchantmentPermanent;
|
||||
import mage.filter.predicate.Predicates;
|
||||
import mage.filter.predicate.mageobject.SubtypePredicate;
|
||||
|
@ -54,7 +55,7 @@ public class EmeraldCharm extends CardImpl {
|
|||
private static final FilterEnchantmentPermanent filter = new FilterEnchantmentPermanent("non-Aura enchantment");
|
||||
|
||||
static {
|
||||
filter.add(Predicates.not(new SubtypePredicate("Aura")));
|
||||
filter.add(Predicates.not(new SubtypePredicate(SubType.AURA)));
|
||||
}
|
||||
|
||||
public EmeraldCharm(UUID ownerId, CardSetInfo setInfo) {
|
||||
|
|
|
@ -28,14 +28,11 @@
|
|||
package mage.cards.e;
|
||||
|
||||
import mage.abilities.Ability;
|
||||
import mage.constants.ComparisonType;
|
||||
import mage.constants.*;
|
||||
import mage.abilities.effects.OneShotEffect;
|
||||
import mage.cards.Card;
|
||||
import mage.cards.CardImpl;
|
||||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.CardType;
|
||||
import mage.constants.Outcome;
|
||||
import mage.constants.Zone;
|
||||
import mage.filter.FilterPermanent;
|
||||
import mage.filter.common.FilterControlledPermanent;
|
||||
import mage.filter.common.FilterCreaturePermanent;
|
||||
|
@ -77,7 +74,7 @@ class EngulfTheShoreEffect extends OneShotEffect {
|
|||
private static final FilterControlledPermanent filter = new FilterControlledPermanent("number of Islands you control");
|
||||
|
||||
static {
|
||||
filter.add(new SubtypePredicate("Island"));
|
||||
filter.add(new SubtypePredicate(SubType.ISLAND));
|
||||
}
|
||||
|
||||
public EngulfTheShoreEffect() {
|
||||
|
|
|
@ -34,10 +34,7 @@ import mage.abilities.effects.common.continuous.GainAbilityTargetEffect;
|
|||
import mage.abilities.keyword.ForestwalkAbility;
|
||||
import mage.cards.CardImpl;
|
||||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.CardType;
|
||||
import mage.constants.Duration;
|
||||
import mage.constants.PhaseStep;
|
||||
import mage.constants.TargetController;
|
||||
import mage.constants.*;
|
||||
import mage.filter.common.FilterCreaturePermanent;
|
||||
import mage.filter.predicate.Predicates;
|
||||
import mage.filter.predicate.mageobject.SubtypePredicate;
|
||||
|
@ -55,7 +52,7 @@ public class ErhnamDjinn extends CardImpl {
|
|||
private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("non-Wall creature an opponent controls");
|
||||
|
||||
static {
|
||||
filter.add(Predicates.not(new SubtypePredicate("Wall")));
|
||||
filter.add(Predicates.not(new SubtypePredicate(SubType.WALL)));
|
||||
filter.add(new ControllerPredicate(TargetController.OPPONENT));
|
||||
}
|
||||
|
||||
|
|
|
@ -37,6 +37,7 @@ import mage.abilities.mana.SimpleManaAbility;
|
|||
import mage.cards.CardImpl;
|
||||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.CardType;
|
||||
import mage.constants.SubType;
|
||||
import mage.constants.Zone;
|
||||
import mage.filter.common.FilterControlledLandPermanent;
|
||||
import mage.filter.predicate.Predicates;
|
||||
|
@ -55,7 +56,7 @@ public class Everglades extends CardImpl {
|
|||
private static final FilterControlledLandPermanent filter = new FilterControlledLandPermanent("an untapped Swamp");
|
||||
|
||||
static {
|
||||
filter.add(new SubtypePredicate("Swamp"));
|
||||
filter.add(new SubtypePredicate(SubType.SWAMP));
|
||||
filter.add(Predicates.not(new TappedPredicate()));
|
||||
}
|
||||
|
||||
|
|
|
@ -34,10 +34,7 @@ import mage.abilities.effects.common.combat.CantAttackAnyPlayerAllEffect;
|
|||
import mage.abilities.effects.common.combat.CantBeBlockedByCreaturesSourceEffect;
|
||||
import mage.cards.CardImpl;
|
||||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.CardType;
|
||||
import mage.constants.Duration;
|
||||
import mage.constants.TargetController;
|
||||
import mage.constants.Zone;
|
||||
import mage.constants.*;
|
||||
import mage.filter.common.FilterCreaturePermanent;
|
||||
import mage.filter.predicate.Predicates;
|
||||
import mage.filter.predicate.mageobject.SubtypePredicate;
|
||||
|
@ -55,8 +52,8 @@ public class EvilEyeOfOrmsByGore extends CardImpl {
|
|||
private static final FilterCreaturePermanent cantBeBlockedByFilter = new FilterCreaturePermanent("except by Walls");
|
||||
|
||||
static {
|
||||
cantBeBlockedByFilter.add(Predicates.not(new SubtypePredicate("Wall")));
|
||||
cantAttackFilter.add(Predicates.not((new SubtypePredicate("Eye"))));
|
||||
cantBeBlockedByFilter.add(Predicates.not(new SubtypePredicate(SubType.WALL)));
|
||||
cantAttackFilter.add(Predicates.not((new SubtypePredicate(SubType.EYE))));
|
||||
cantAttackFilter.add(new ControllerPredicate(TargetController.YOU));
|
||||
}
|
||||
|
||||
|
|
|
@ -34,10 +34,7 @@ import mage.abilities.effects.common.DestroyTargetEffect;
|
|||
import mage.abilities.effects.common.combat.CantAttackAnyPlayerAllEffect;
|
||||
import mage.cards.CardImpl;
|
||||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.CardType;
|
||||
import mage.constants.Duration;
|
||||
import mage.constants.TargetController;
|
||||
import mage.constants.Zone;
|
||||
import mage.constants.*;
|
||||
import mage.filter.common.FilterCreaturePermanent;
|
||||
import mage.filter.predicate.Predicates;
|
||||
import mage.filter.predicate.mageobject.SubtypePredicate;
|
||||
|
@ -54,7 +51,7 @@ public class EvilEyeOfUrborg extends CardImpl {
|
|||
private static final FilterCreaturePermanent cantAttackFilter = new FilterCreaturePermanent("Non-Eye creatures you control");
|
||||
|
||||
static {
|
||||
cantAttackFilter.add(Predicates.not((new SubtypePredicate("Eye"))));
|
||||
cantAttackFilter.add(Predicates.not((new SubtypePredicate(SubType.EYE))));
|
||||
cantAttackFilter.add(new ControllerPredicate(TargetController.YOU));
|
||||
}
|
||||
|
||||
|
|
|
@ -35,10 +35,7 @@ import mage.abilities.costs.mana.ColoredManaCost;
|
|||
import mage.abilities.effects.common.continuous.BoostSourceEffect;
|
||||
import mage.cards.CardImpl;
|
||||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.CardType;
|
||||
import mage.constants.ColoredManaSymbol;
|
||||
import mage.constants.Duration;
|
||||
import mage.constants.Zone;
|
||||
import mage.constants.*;
|
||||
import mage.filter.common.FilterControlledPermanent;
|
||||
import mage.filter.predicate.mageobject.SubtypePredicate;
|
||||
import mage.target.common.TargetControlledPermanent;
|
||||
|
@ -54,7 +51,7 @@ public class Facevaulter extends CardImpl {
|
|||
private static final FilterControlledPermanent filter = new FilterControlledPermanent("Goblin");
|
||||
|
||||
static {
|
||||
filter.add(new SubtypePredicate("Goblin"));
|
||||
filter.add(new SubtypePredicate(SubType.GOBLIN));
|
||||
}
|
||||
|
||||
public Facevaulter(UUID ownerId, CardSetInfo setInfo) {
|
||||
|
|
|
@ -39,6 +39,7 @@ import mage.cards.CardImpl;
|
|||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.CardType;
|
||||
import mage.constants.Duration;
|
||||
import mage.constants.SubType;
|
||||
import mage.constants.Zone;
|
||||
import mage.filter.common.FilterCreaturePermanent;
|
||||
import mage.filter.predicate.mageobject.SubtypePredicate;
|
||||
|
@ -54,7 +55,7 @@ public class FaerieNoble extends CardImpl {
|
|||
private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("Faerie creatures");
|
||||
|
||||
static {
|
||||
filter.add(new SubtypePredicate("Faerie"));
|
||||
filter.add(new SubtypePredicate(SubType.FAERIE));
|
||||
}
|
||||
|
||||
public FaerieNoble(UUID ownerId, CardSetInfo setInfo) {
|
||||
|
|
|
@ -35,6 +35,7 @@ import mage.abilities.effects.common.GainLifeEffect;
|
|||
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.SubtypePredicate;
|
||||
import mage.game.Game;
|
||||
|
@ -75,7 +76,7 @@ class FeastOfBloodCost extends CostImpl {
|
|||
private static final FilterControlledCreaturePermanent filter = new FilterControlledCreaturePermanent();
|
||||
|
||||
static {
|
||||
filter.add(new SubtypePredicate("Vampire"));
|
||||
filter.add(new SubtypePredicate(SubType.VAMPIRE));
|
||||
}
|
||||
|
||||
public FeastOfBloodCost() {
|
||||
|
|
|
@ -36,6 +36,7 @@ import mage.cards.CardImpl;
|
|||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.CardType;
|
||||
import mage.constants.Duration;
|
||||
import mage.constants.SubType;
|
||||
import mage.constants.Zone;
|
||||
import mage.filter.common.FilterLandPermanent;
|
||||
import mage.filter.predicate.mageobject.SubtypePredicate;
|
||||
|
@ -52,7 +53,7 @@ public class FendeepSummoner extends CardImpl {
|
|||
static final FilterLandPermanent filter = new FilterLandPermanent("Swamp");
|
||||
|
||||
static {
|
||||
filter.add(new SubtypePredicate("Swamp"));
|
||||
filter.add(new SubtypePredicate(SubType.SWAMP));
|
||||
}
|
||||
|
||||
public FendeepSummoner(UUID ownerId, CardSetInfo setInfo) {
|
||||
|
|
|
@ -36,6 +36,7 @@ import mage.cards.CardImpl;
|
|||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.CardType;
|
||||
import mage.constants.Duration;
|
||||
import mage.constants.SubType;
|
||||
import mage.constants.Zone;
|
||||
import mage.filter.common.FilterCreaturePermanent;
|
||||
import mage.filter.predicate.mageobject.SubtypePredicate;
|
||||
|
@ -50,7 +51,7 @@ public class FieldMarshal extends CardImpl {
|
|||
private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("Soldier creatures");
|
||||
|
||||
static {
|
||||
filter.add(new SubtypePredicate("Soldier"));
|
||||
filter.add(new SubtypePredicate(SubType.SOLDIER));
|
||||
}
|
||||
|
||||
public FieldMarshal(UUID ownerId, CardSetInfo setInfo) {
|
||||
|
|
|
@ -60,7 +60,7 @@ public class FiendOfTheShadows extends CardImpl {
|
|||
private static final FilterControlledCreaturePermanent filter = new FilterControlledCreaturePermanent("a Human");
|
||||
|
||||
static {
|
||||
filter.add(new SubtypePredicate("Human"));
|
||||
filter.add(new SubtypePredicate(SubType.HUMAN));
|
||||
}
|
||||
|
||||
public FiendOfTheShadows(UUID ownerId, CardSetInfo setInfo) {
|
||||
|
|
|
@ -38,6 +38,7 @@ import mage.cards.CardImpl;
|
|||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.CardType;
|
||||
import mage.constants.Duration;
|
||||
import mage.constants.SubType;
|
||||
import mage.constants.Zone;
|
||||
import mage.filter.common.FilterControlledPermanent;
|
||||
import mage.filter.common.FilterCreaturePermanent;
|
||||
|
@ -58,7 +59,7 @@ public class Filth extends CardImpl {
|
|||
|
||||
static {
|
||||
filter.add(new CardTypePredicate(CardType.LAND));
|
||||
filter.add(new SubtypePredicate("Swamp"));
|
||||
filter.add(new SubtypePredicate(SubType.SWAMP));
|
||||
}
|
||||
|
||||
public Filth(UUID ownerId, CardSetInfo setInfo) {
|
||||
|
|
|
@ -38,10 +38,7 @@ import mage.abilities.effects.common.continuous.GainAbilityAllEffect;
|
|||
import mage.abilities.keyword.FlyingAbility;
|
||||
import mage.cards.CardImpl;
|
||||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.CardType;
|
||||
import mage.constants.Duration;
|
||||
import mage.constants.TargetController;
|
||||
import mage.constants.Zone;
|
||||
import mage.constants.*;
|
||||
import mage.filter.FilterSpell;
|
||||
import mage.filter.common.FilterCreaturePermanent;
|
||||
import mage.filter.predicate.Predicates;
|
||||
|
@ -62,7 +59,7 @@ public class FinalIteration extends CardImpl {
|
|||
private static final FilterSpell filterSpell = new FilterSpell("an instant or sorcery spell");
|
||||
|
||||
static {
|
||||
filter.add(new SubtypePredicate("Wizard"));
|
||||
filter.add(new SubtypePredicate(SubType.WIZARD));
|
||||
filter.add(new ControllerPredicate(TargetController.YOU));
|
||||
filterSpell.add(Predicates.or(
|
||||
new CardTypePredicate(CardType.INSTANT),
|
||||
|
|
|
@ -37,6 +37,7 @@ import mage.abilities.keyword.FlyingAbility;
|
|||
import mage.cards.CardImpl;
|
||||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.CardType;
|
||||
import mage.constants.SubType;
|
||||
import mage.filter.common.FilterControlledPermanent;
|
||||
import mage.filter.predicate.mageobject.SubtypePredicate;
|
||||
import mage.target.common.TargetCreaturePermanent;
|
||||
|
@ -52,7 +53,7 @@ public class FireDragon extends CardImpl {
|
|||
private static final FilterControlledPermanent filter = new FilterControlledPermanent("for each Mountain you control");
|
||||
|
||||
static {
|
||||
filter.add(new SubtypePredicate("Mountain"));
|
||||
filter.add(new SubtypePredicate(SubType.MOUNTAIN));
|
||||
}
|
||||
|
||||
public FireDragon(UUID ownerId, CardSetInfo setInfo) {
|
||||
|
|
|
@ -40,10 +40,7 @@ import mage.abilities.effects.common.ExileTargetEffect;
|
|||
import mage.abilities.keyword.FlashbackAbility;
|
||||
import mage.cards.CardImpl;
|
||||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.CardType;
|
||||
import mage.constants.Outcome;
|
||||
import mage.constants.TimingRule;
|
||||
import mage.constants.Zone;
|
||||
import mage.constants.*;
|
||||
import mage.filter.common.FilterControlledLandPermanent;
|
||||
import mage.filter.predicate.mageobject.SubtypePredicate;
|
||||
import mage.game.Game;
|
||||
|
@ -61,7 +58,7 @@ public class FirecatBlitz extends CardImpl {
|
|||
private static final FilterControlledLandPermanent filter = new FilterControlledLandPermanent("Mountains");
|
||||
|
||||
static {
|
||||
filter.add(new SubtypePredicate("Mountain"));
|
||||
filter.add(new SubtypePredicate(SubType.MOUNTAIN));
|
||||
}
|
||||
|
||||
public FirecatBlitz(UUID ownerId, CardSetInfo setInfo) {
|
||||
|
|
|
@ -34,6 +34,7 @@ import mage.abilities.costs.mana.GenericManaCost;
|
|||
import mage.cards.CardImpl;
|
||||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.CardType;
|
||||
import mage.constants.SubType;
|
||||
import mage.filter.FilterCard;
|
||||
import mage.filter.predicate.mageobject.SubtypePredicate;
|
||||
import mage.target.common.TargetCardInHand;
|
||||
|
@ -48,7 +49,7 @@ public class FlamekinBladewhirl extends CardImpl {
|
|||
|
||||
private static final FilterCard filter = new FilterCard("an Elemental card from your hand");
|
||||
static {
|
||||
filter.add(new SubtypePredicate("Elemental"));
|
||||
filter.add(new SubtypePredicate(SubType.ELEMENTAL));
|
||||
}
|
||||
|
||||
public FlamekinBladewhirl(UUID ownerId, CardSetInfo setInfo) {
|
||||
|
|
|
@ -40,6 +40,7 @@ import mage.cards.CardImpl;
|
|||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.CardType;
|
||||
import mage.constants.Duration;
|
||||
import mage.constants.SubType;
|
||||
import mage.constants.Zone;
|
||||
import mage.filter.FilterCard;
|
||||
import mage.filter.predicate.mageobject.SubtypePredicate;
|
||||
|
@ -57,7 +58,7 @@ public class FlamekinVillage extends CardImpl {
|
|||
private static final FilterCard filter = new FilterCard("an Elemental card from your hand");
|
||||
|
||||
static {
|
||||
filter.add(new SubtypePredicate("Elemental"));
|
||||
filter.add(new SubtypePredicate(SubType.ELEMENTAL));
|
||||
}
|
||||
|
||||
public FlamekinVillage(UUID ownerId, CardSetInfo setInfo) {
|
||||
|
|
|
@ -42,6 +42,7 @@ import mage.cards.CardImpl;
|
|||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.CardType;
|
||||
import mage.constants.Duration;
|
||||
import mage.constants.SubType;
|
||||
import mage.constants.Zone;
|
||||
import mage.filter.common.FilterCreaturePermanent;
|
||||
import mage.filter.predicate.mageobject.SubtypePredicate;
|
||||
|
@ -58,7 +59,7 @@ public class FlamestickCourier extends CardImpl {
|
|||
private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("Goblin creature");
|
||||
|
||||
static {
|
||||
filter.add(new SubtypePredicate("Goblin"));
|
||||
filter.add(new SubtypePredicate(SubType.GOBLIN));
|
||||
}
|
||||
|
||||
public FlamestickCourier(UUID ownerId, CardSetInfo setInfo) {
|
||||
|
|
|
@ -31,6 +31,7 @@ import mage.abilities.effects.common.DestroyAllEffect;
|
|||
import mage.cards.CardImpl;
|
||||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.CardType;
|
||||
import mage.constants.SubType;
|
||||
import mage.filter.common.FilterLandPermanent;
|
||||
import mage.filter.predicate.mageobject.SubtypePredicate;
|
||||
|
||||
|
@ -45,7 +46,7 @@ public class Flashfires extends CardImpl {
|
|||
private static final FilterLandPermanent filter = new FilterLandPermanent("Plains");
|
||||
|
||||
static{
|
||||
filter.add(new SubtypePredicate("Plains"));
|
||||
filter.add(new SubtypePredicate(SubType.PLAINS));
|
||||
}
|
||||
|
||||
public Flashfires(UUID ownerId, CardSetInfo setInfo) {
|
||||
|
|
|
@ -35,6 +35,7 @@ import mage.abilities.effects.keyword.InvestigateEffect;
|
|||
import mage.cards.CardImpl;
|
||||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.CardType;
|
||||
import mage.constants.SubType;
|
||||
import mage.constants.Zone;
|
||||
import mage.filter.common.FilterControlledPermanent;
|
||||
import mage.filter.predicate.mageobject.SubtypePredicate;
|
||||
|
@ -54,7 +55,7 @@ public class FleetingMemories extends CardImpl {
|
|||
private static final FilterControlledPermanent filter = new FilterControlledPermanent("a Clue");
|
||||
|
||||
static {
|
||||
filter.add(new SubtypePredicate("Clue"));
|
||||
filter.add(new SubtypePredicate(SubType.CLUE));
|
||||
}
|
||||
|
||||
public FleetingMemories(UUID ownerId, CardSetInfo setInfo) {
|
||||
|
|
|
@ -37,6 +37,7 @@ import mage.cards.CardSetInfo;
|
|||
import mage.constants.AbilityType;
|
||||
import mage.constants.CardType;
|
||||
import mage.constants.Outcome;
|
||||
import mage.constants.SubType;
|
||||
import mage.filter.FilterCard;
|
||||
import mage.filter.common.FilterCreaturePermanent;
|
||||
import mage.filter.predicate.mageobject.SubtypePredicate;
|
||||
|
@ -57,7 +58,7 @@ public class FoulTongueInvocation extends CardImpl {
|
|||
private static final FilterCard filter = new FilterCard("a Dragon card from your hand (you don't have to)");
|
||||
|
||||
static {
|
||||
filter.add(new SubtypePredicate("Dragon"));
|
||||
filter.add(new SubtypePredicate(SubType.DRAGON));
|
||||
}
|
||||
|
||||
public FoulTongueInvocation(UUID ownerId, CardSetInfo setInfo) {
|
||||
|
|
|
@ -34,6 +34,7 @@ import mage.abilities.keyword.HasteAbility;
|
|||
import mage.cards.CardImpl;
|
||||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.CardType;
|
||||
import mage.constants.SubType;
|
||||
import mage.constants.Zone;
|
||||
import mage.filter.FilterCard;
|
||||
import mage.filter.predicate.Predicates;
|
||||
|
@ -51,8 +52,8 @@ public class FrogtosserBanneret extends CardImpl {
|
|||
|
||||
static {
|
||||
filter.add(Predicates.or(
|
||||
new SubtypePredicate("Goblin"),
|
||||
new SubtypePredicate("Rogue")));
|
||||
new SubtypePredicate(SubType.GOBLIN),
|
||||
new SubtypePredicate(SubType.ROGUE)));
|
||||
}
|
||||
|
||||
public FrogtosserBanneret(UUID ownerId, CardSetInfo setInfo) {
|
||||
|
|
|
@ -32,6 +32,7 @@ import mage.abilities.effects.common.GainLifeEffect;
|
|||
import mage.cards.CardImpl;
|
||||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.CardType;
|
||||
import mage.constants.SubType;
|
||||
import mage.filter.FilterPermanent;
|
||||
import mage.filter.predicate.mageobject.SubtypePredicate;
|
||||
|
||||
|
@ -46,7 +47,7 @@ public class Fruition extends CardImpl {
|
|||
private static final FilterPermanent filter = new FilterPermanent("for each Forest on the battlefield");
|
||||
|
||||
static {
|
||||
filter.add(new SubtypePredicate("Forest"));
|
||||
filter.add(new SubtypePredicate(SubType.FOREST));
|
||||
}
|
||||
|
||||
public Fruition(UUID ownerId, CardSetInfo setInfo) {
|
||||
|
|
|
@ -33,6 +33,7 @@ import mage.abilities.effects.common.DrawCardSourceControllerEffect;
|
|||
import mage.cards.CardImpl;
|
||||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.CardType;
|
||||
import mage.constants.SubType;
|
||||
import mage.filter.FilterSpell;
|
||||
import mage.filter.predicate.mageobject.SubtypePredicate;
|
||||
|
||||
|
@ -47,7 +48,7 @@ public class FugitiveDruid extends CardImpl {
|
|||
private static final FilterSpell filter = new FilterSpell("an Aura spell");
|
||||
|
||||
static {
|
||||
filter.add(new SubtypePredicate("Aura"));
|
||||
filter.add(new SubtypePredicate(SubType.AURA));
|
||||
}
|
||||
|
||||
public FugitiveDruid(UUID ownerId, CardSetInfo setInfo) {
|
||||
|
|
|
@ -34,6 +34,7 @@ import mage.abilities.effects.common.counter.AddCountersTargetEffect;
|
|||
import mage.cards.CardImpl;
|
||||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.CardType;
|
||||
import mage.constants.SubType;
|
||||
import mage.constants.Zone;
|
||||
import mage.counters.CounterType;
|
||||
import mage.filter.FilterPermanent;
|
||||
|
@ -51,7 +52,7 @@ public class FungalBloom extends CardImpl {
|
|||
private static final FilterPermanent filter = new FilterPermanent("Fungus");
|
||||
|
||||
static {
|
||||
filter.add(new SubtypePredicate("Fungus"));
|
||||
filter.add(new SubtypePredicate(SubType.FUNGUS));
|
||||
}
|
||||
|
||||
public FungalBloom(UUID ownerId, CardSetInfo setInfo) {
|
||||
|
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Reference in a new issue