[DSK] Implement Withering Torment

This commit is contained in:
theelk801 2024-09-09 16:59:52 -04:00
parent 397bc8733a
commit dd471949c5
18 changed files with 97 additions and 198 deletions

View file

@ -1,33 +1,25 @@
package mage.cards.a;
import java.util.UUID;
import mage.abilities.effects.common.ExileTargetEffect;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
import mage.constants.CardType;
import mage.filter.FilterPermanent;
import mage.filter.predicate.Predicates;
import mage.filter.StaticFilters;
import mage.target.TargetPermanent;
import java.util.UUID;
/**
*
* @author LevelX2
*/
public final class AngelicEdict extends CardImpl {
private static final FilterPermanent filter = new FilterPermanent("creature or enchantment");
static {
filter.add(Predicates.or(CardType.CREATURE.getPredicate(), CardType.ENCHANTMENT.getPredicate()));
}
public AngelicEdict(UUID ownerId, CardSetInfo setInfo) {
super(ownerId,setInfo,new CardType[]{CardType.SORCERY},"{4}{W}");
super(ownerId, setInfo, new CardType[]{CardType.SORCERY}, "{4}{W}");
// Exile target creature or enchantment.
getSpellAbility().addEffect(new ExileTargetEffect());
getSpellAbility().addTarget(new TargetPermanent(filter));
getSpellAbility().addTarget(new TargetPermanent(StaticFilters.FILTER_PERMANENT_CREATURE_OR_ENCHANTMENT));
}
private AngelicEdict(final AngelicEdict card) {

View file

@ -1,33 +1,25 @@
package mage.cards.b;
import java.util.UUID;
import mage.abilities.effects.common.ExileTargetEffect;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
import mage.constants.CardType;
import mage.filter.FilterPermanent;
import mage.filter.predicate.Predicates;
import mage.filter.StaticFilters;
import mage.target.TargetPermanent;
import java.util.UUID;
/**
*
* @author LevelX2
*/
public final class BlessedLight extends CardImpl {
private static final FilterPermanent filter = new FilterPermanent("creature or enchantment");
static {
filter.add(Predicates.or(CardType.CREATURE.getPredicate(), CardType.ENCHANTMENT.getPredicate()));
}
public BlessedLight(UUID ownerId, CardSetInfo setInfo) {
super(ownerId, setInfo, new CardType[]{CardType.INSTANT}, "{4}{W}");
// Exile target creature or enchantment.
getSpellAbility().addEffect(new ExileTargetEffect());
getSpellAbility().addTarget(new TargetPermanent(filter));
getSpellAbility().addTarget(new TargetPermanent(StaticFilters.FILTER_PERMANENT_CREATURE_OR_ENCHANTMENT));
}
private BlessedLight(final BlessedLight card) {

View file

@ -17,8 +17,6 @@ import mage.constants.Duration;
import mage.constants.SubType;
import mage.counters.CounterType;
import mage.filter.StaticFilters;
import mage.filter.common.FilterControlledPermanent;
import mage.filter.predicate.Predicates;
import mage.target.common.TargetCreaturePermanent;
import java.util.UUID;
@ -28,15 +26,6 @@ import java.util.UUID;
*/
public final class BloodAspirant extends CardImpl {
private static final FilterControlledPermanent filter = new FilterControlledPermanent("a creature or enchantment");
static {
filter.add(Predicates.or(
CardType.CREATURE.getPredicate(),
CardType.ENCHANTMENT.getPredicate()
));
}
public BloodAspirant(UUID ownerId, CardSetInfo setInfo) {
super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{1}{R}");
@ -56,7 +45,7 @@ public final class BloodAspirant extends CardImpl {
new DamageTargetEffect(1), new ManaCostsImpl<>("{1}{R}")
);
ability.addCost(new TapSourceCost());
ability.addCost(new SacrificeTargetCost(filter));
ability.addCost(new SacrificeTargetCost(StaticFilters.FILTER_PERMANENT_CREATURE_OR_ENCHANTMENT));
ability.addEffect(new CantBlockTargetEffect(Duration.EndOfTurn)
.setText("That creature can't block this turn."));
ability.addTarget(new TargetCreaturePermanent());

View file

@ -1,7 +1,6 @@
package mage.cards.e;
import java.util.UUID;
import mage.MageInt;
import mage.abilities.Ability;
import mage.abilities.common.SimpleActivatedAbility;
@ -15,25 +14,18 @@ import mage.constants.CardType;
import mage.constants.SubType;
import mage.constants.SuperType;
import mage.constants.Zone;
import mage.filter.common.FilterControlledPermanent;
import mage.filter.predicate.Predicates;
import mage.filter.StaticFilters;
import mage.target.TargetSpell;
import mage.target.common.TargetControlledPermanent;
import java.util.UUID;
/**
*
* @author fireshoes
*/
public final class ErtaiTheCorrupted extends CardImpl {
private static final FilterControlledPermanent filter = new FilterControlledPermanent("a creature or enchantment");
static {
filter.add(Predicates.or(CardType.CREATURE.getPredicate(), CardType.ENCHANTMENT.getPredicate()));
}
public ErtaiTheCorrupted(UUID ownerId, CardSetInfo setInfo) {
super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{2}{W}{U}{B}");
super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{2}{W}{U}{B}");
this.supertype.add(SuperType.LEGENDARY);
this.subtype.add(SubType.PHYREXIAN);
this.subtype.add(SubType.HUMAN);
@ -44,10 +36,10 @@ public final class ErtaiTheCorrupted extends CardImpl {
// {U}, {tap}, Sacrifice a creature or enchantment: Counter target spell.
Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new CounterTargetEffect(), new ManaCostsImpl<>("{U}"));
ability.addCost(new TapSourceCost());
ability.addCost(new SacrificeTargetCost(filter));
ability.addCost(new SacrificeTargetCost(StaticFilters.FILTER_PERMANENT_CREATURE_OR_ENCHANTMENT));
ability.addTarget(new TargetSpell());
this.addAbility(ability);
}
}
private ErtaiTheCorrupted(final ErtaiTheCorrupted card) {
super(card);

View file

@ -1,8 +1,5 @@
package mage.cards.e;
import java.util.UUID;
import mage.MageInt;
import mage.abilities.Ability;
import mage.abilities.common.SimpleActivatedAbility;
@ -16,26 +13,19 @@ import mage.cards.CardSetInfo;
import mage.constants.CardType;
import mage.constants.SubType;
import mage.constants.Zone;
import mage.filter.FilterPermanent;
import mage.filter.predicate.Predicates;
import mage.filter.StaticFilters;
import mage.target.Target;
import mage.target.TargetPermanent;
import java.util.UUID;
/**
*
* @author Loki
*/
public final class EtherswornAdjudicator extends CardImpl {
private static final FilterPermanent filter = new FilterPermanent("creature or enchantment");
static {
filter.add(Predicates.or(
CardType.CREATURE.getPredicate(),
CardType.ENCHANTMENT.getPredicate()));
}
public EtherswornAdjudicator(UUID ownerId, CardSetInfo setInfo) {
super(ownerId,setInfo,new CardType[]{CardType.ARTIFACT,CardType.CREATURE},"{4}{U}");
super(ownerId, setInfo, new CardType[]{CardType.ARTIFACT, CardType.CREATURE}, "{4}{U}");
this.subtype.add(SubType.VEDALKEN);
this.subtype.add(SubType.KNIGHT);
@ -47,7 +37,7 @@ public final class EtherswornAdjudicator extends CardImpl {
// {1}{W}{B}, {T}: Destroy target creature or enchantment.
Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new DestroyTargetEffect(), new ManaCostsImpl<>("{1}{W}{B}"));
ability.addCost(new TapSourceCost());
Target target = new TargetPermanent(filter);
Target target = new TargetPermanent(StaticFilters.FILTER_PERMANENT_CREATURE_OR_ENCHANTMENT);
ability.addTarget(target);
this.addAbility(ability);
// {2}{U}: Untap Ethersworn Adjudicator.
@ -62,5 +52,4 @@ public final class EtherswornAdjudicator extends CardImpl {
public EtherswornAdjudicator copy() {
return new EtherswornAdjudicator(this);
}
}

View file

@ -5,9 +5,7 @@ import mage.abilities.effects.common.DamageTargetEffect;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
import mage.constants.CardType;
import mage.filter.common.FilterControlledPermanent;
import mage.filter.predicate.Predicates;
import mage.target.common.TargetControlledPermanent;
import mage.filter.StaticFilters;
import mage.target.common.TargetCreaturePermanent;
import java.util.UUID;
@ -17,21 +15,11 @@ import java.util.UUID;
*/
public final class FinalFlare extends CardImpl {
private static final FilterControlledPermanent filter
= new FilterControlledPermanent("a creature or enchantment");
static {
filter.add(Predicates.or(
CardType.CREATURE.getPredicate(),
CardType.ENCHANTMENT.getPredicate()
));
}
public FinalFlare(UUID ownerId, CardSetInfo setInfo) {
super(ownerId, setInfo, new CardType[]{CardType.INSTANT}, "{2}{R}");
// As an additional cost to cast this spell, sacrifice a creature or enchantment.
this.getSpellAbility().addCost(new SacrificeTargetCost(filter));
this.getSpellAbility().addCost(new SacrificeTargetCost(StaticFilters.FILTER_PERMANENT_CREATURE_OR_ENCHANTMENT));
// Final Flare deals 5 damage to target creature.
this.getSpellAbility().addEffect(new DamageTargetEffect(5));

View file

@ -1,8 +1,5 @@
package mage.cards.f;
import java.util.UUID;
import mage.abilities.costs.Cost;
import mage.abilities.costs.OrCost;
import mage.abilities.costs.common.PayLifeCost;
import mage.abilities.costs.common.SacrificeTargetCost;
@ -10,30 +7,23 @@ import mage.abilities.effects.common.DestroyTargetEffect;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
import mage.constants.CardType;
import mage.filter.common.FilterControlledPermanent;
import mage.filter.predicate.Predicates;
import mage.target.common.TargetControlledPermanent;
import mage.filter.StaticFilters;
import mage.target.common.TargetCreaturePermanent;
import java.util.UUID;
/**
*
* @author FateRevoked
*/
public final class FinalPayment extends CardImpl {
private static final FilterControlledPermanent filter = new FilterControlledPermanent("a creature or enchantment");
static {
filter.add(Predicates.or(CardType.CREATURE.getPredicate(), CardType.ENCHANTMENT.getPredicate()));
}
public FinalPayment(UUID ownerId, CardSetInfo setInfo) {
super(ownerId, setInfo, new CardType[]{CardType.INSTANT}, "{W}{B}");
// As an additional cost to cast this spell, pay 5 life or sacrifice a creature or enchantment.
final Cost lifeCost = new PayLifeCost(5);
final Cost sacrificeCost = new SacrificeTargetCost(filter);
this.getSpellAbility().addCost(new OrCost("pay 5 life or sacrifice a creature or enchantment", lifeCost, sacrificeCost
this.getSpellAbility().addCost(new OrCost(
"pay 5 life or sacrifice a creature or enchantment", new PayLifeCost(5),
new SacrificeTargetCost(StaticFilters.FILTER_PERMANENT_CREATURE_OR_ENCHANTMENT)
));
// Destroy target creature

View file

@ -5,8 +5,7 @@ import mage.abilities.effects.common.ExileTargetEffect;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
import mage.constants.CardType;
import mage.filter.FilterPermanent;
import mage.filter.predicate.Predicates;
import mage.filter.StaticFilters;
import mage.target.common.TargetCreaturePermanent;
import java.util.UUID;
@ -16,20 +15,11 @@ import java.util.UUID;
*/
public final class FinalVengeance extends CardImpl {
private static final FilterPermanent filter = new FilterPermanent("creature or enchantment");
static {
filter.add(Predicates.or(
CardType.CREATURE.getPredicate(),
CardType.ENCHANTMENT.getPredicate()
));
}
public FinalVengeance(UUID ownerId, CardSetInfo setInfo) {
super(ownerId, setInfo, new CardType[]{CardType.SORCERY}, "{B}");
// As an additional cost to cast this spell, sacrifice a creature or enchantment.
this.getSpellAbility().addCost(new SacrificeTargetCost(filter));
this.getSpellAbility().addCost(new SacrificeTargetCost(StaticFilters.FILTER_PERMANENT_CREATURE_OR_ENCHANTMENT));
// Exile target creature.
this.getSpellAbility().addEffect(new ExileTargetEffect());

View file

@ -4,8 +4,7 @@ import mage.abilities.effects.common.ExileThenReturnTargetEffect;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
import mage.constants.CardType;
import mage.filter.FilterPermanent;
import mage.filter.predicate.Predicates;
import mage.filter.StaticFilters;
import mage.target.TargetPermanent;
import java.util.UUID;
@ -15,21 +14,12 @@ import java.util.UUID;
*/
public final class FlickerOfFate extends CardImpl {
private static final FilterPermanent filter = new FilterPermanent("creature or enchantment");
static {
filter.add(Predicates.or(
CardType.CREATURE.getPredicate(),
CardType.ENCHANTMENT.getPredicate()
));
}
public FlickerOfFate(UUID ownerId, CardSetInfo setInfo) {
super(ownerId, setInfo, new CardType[]{CardType.INSTANT}, "{1}{W}");
// Exile target creature or enchantment, then return it to the battlefield under its owner's control.
this.getSpellAbility().addEffect(new ExileThenReturnTargetEffect(false, false));
this.getSpellAbility().addTarget(new TargetPermanent(filter));
this.getSpellAbility().addTarget(new TargetPermanent(StaticFilters.FILTER_PERMANENT_CREATURE_OR_ENCHANTMENT));
}
private FlickerOfFate(final FlickerOfFate card) {

View file

@ -1,7 +1,5 @@
package mage.cards.k;
import java.util.UUID;
import mage.ObjectColor;
import mage.abilities.Ability;
import mage.abilities.LoyaltyAbility;
@ -10,31 +8,23 @@ import mage.abilities.effects.common.CreateTokenCopyTargetEffect;
import mage.abilities.effects.common.DrawCardSourceControllerEffect;
import mage.abilities.effects.common.GainLifeEffect;
import mage.abilities.effects.common.LoseLifeOpponentsEffect;
import mage.constants.*;
import mage.abilities.keyword.HexproofAbility;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
import mage.filter.FilterPermanent;
import mage.filter.predicate.Predicates;
import mage.constants.*;
import mage.filter.StaticFilters;
import mage.game.Game;
import mage.game.permanent.Permanent;
import mage.players.Player;
import mage.target.TargetPermanent;
import java.util.UUID;
/**
* @author TheElk801
*/
public final class KayaIntangibleSlayer extends CardImpl {
private static final FilterPermanent filter = new FilterPermanent("creature or enchantment");
static {
filter.add(Predicates.or(
CardType.CREATURE.getPredicate(),
CardType.ENCHANTMENT.getPredicate()
));
}
public KayaIntangibleSlayer(UUID ownerId, CardSetInfo setInfo) {
super(ownerId, setInfo, new CardType[]{CardType.PLANESWALKER}, "{3}{W}{W}{B}{B}");
@ -57,7 +47,7 @@ public final class KayaIntangibleSlayer extends CardImpl {
// -3: Exile target creature or enchantment. If it wasn't an Aura, create a token that's a copy of it, except it's a 1/1 white Spirit creature with flying in addition to its other types.
ability = new LoyaltyAbility(new KayaIntangibleSlayerExileEffect(), -3);
ability.addTarget(new TargetPermanent(filter));
ability.addTarget(new TargetPermanent(StaticFilters.FILTER_PERMANENT_CREATURE_OR_ENCHANTMENT));
this.addAbility(ability);
}

View file

@ -4,8 +4,7 @@ import mage.abilities.effects.common.SacrificeOpponentsEffect;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
import mage.constants.CardType;
import mage.filter.FilterPermanent;
import mage.filter.predicate.Predicates;
import mage.filter.StaticFilters;
import java.util.UUID;
@ -14,20 +13,11 @@ import java.util.UUID;
*/
public final class MireInMisery extends CardImpl {
private static final FilterPermanent filter = new FilterPermanent("a creature or enchantment");
static {
filter.add(Predicates.or(
CardType.CREATURE.getPredicate(),
CardType.ENCHANTMENT.getPredicate()
));
}
public MireInMisery(UUID ownerId, CardSetInfo setInfo) {
super(ownerId, setInfo, new CardType[]{CardType.SORCERY}, "{1}{B}");
// Each opponent sacrifices a creature or enchantment.
this.getSpellAbility().addEffect(new SacrificeOpponentsEffect(filter));
this.getSpellAbility().addEffect(new SacrificeOpponentsEffect(StaticFilters.FILTER_PERMANENT_CREATURE_OR_ENCHANTMENT));
}
private MireInMisery(final MireInMisery card) {

View file

@ -1,34 +1,24 @@
package mage.cards.m;
import java.util.UUID;
import mage.abilities.effects.common.DestroyTargetEffect;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
import mage.constants.CardType;
import mage.filter.FilterPermanent;
import mage.filter.predicate.Predicates;
import mage.filter.StaticFilters;
import mage.target.TargetPermanent;
import java.util.UUID;
/**
* @author Loki
*/
public final class Mortify extends CardImpl {
private static final FilterPermanent filter = new FilterPermanent("creature or enchantment");
static {
filter.add(Predicates.or(
CardType.CREATURE.getPredicate(),
CardType.ENCHANTMENT.getPredicate()));
}
public Mortify(UUID ownerId, CardSetInfo setInfo) {
super(ownerId,setInfo,new CardType[]{CardType.INSTANT},"{1}{W}{B}");
super(ownerId, setInfo, new CardType[]{CardType.INSTANT}, "{1}{W}{B}");
this.getSpellAbility().addEffect(new DestroyTargetEffect());
this.getSpellAbility().addTarget(new TargetPermanent(filter));
this.getSpellAbility().addTarget(new TargetPermanent(StaticFilters.FILTER_PERMANENT_CREATURE_OR_ENCHANTMENT));
}
private Mortify(final Mortify card) {

View file

@ -8,8 +8,7 @@ import mage.abilities.keyword.EnchantAbility;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
import mage.constants.*;
import mage.filter.FilterPermanent;
import mage.filter.predicate.Predicates;
import mage.filter.StaticFilters;
import mage.game.Game;
import mage.game.permanent.Permanent;
import mage.target.TargetPermanent;
@ -21,14 +20,6 @@ import java.util.UUID;
*/
public final class OneWithTheStars extends CardImpl {
private static final FilterPermanent filter = new FilterPermanent("creature or enchantment");
static {
filter.add(Predicates.or(
CardType.CREATURE.getPredicate(),
CardType.ENCHANTMENT.getPredicate()
));
}
public OneWithTheStars(UUID ownerId, CardSetInfo setInfo) {
super(ownerId, setInfo, new CardType[]{CardType.ENCHANTMENT}, "{3}{U}");
@ -36,7 +27,7 @@ public final class OneWithTheStars extends CardImpl {
this.subtype.add(SubType.AURA);
// Enchant creature or enchantment
TargetPermanent auraTarget = new TargetPermanent(filter);
TargetPermanent auraTarget = new TargetPermanent(StaticFilters.FILTER_PERMANENT_CREATURE_OR_ENCHANTMENT);
this.getSpellAbility().addTarget(auraTarget);
this.getSpellAbility().addEffect(new AttachEffect(Outcome.Detriment));
Ability ability = new EnchantAbility(auraTarget);

View file

@ -6,8 +6,7 @@ import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
import mage.constants.CardType;
import mage.constants.RoleType;
import mage.filter.FilterPermanent;
import mage.filter.predicate.Predicates;
import mage.filter.StaticFilters;
import mage.target.TargetPermanent;
import mage.target.common.TargetControlledCreaturePermanent;
import mage.target.targetpointer.FirstTargetPointer;
@ -20,21 +19,12 @@ import java.util.UUID;
*/
public final class ShatterTheOath extends CardImpl {
private static final FilterPermanent filter = new FilterPermanent("creature or enchantment");
static {
filter.add(Predicates.or(
CardType.CREATURE.getPredicate(),
CardType.ENCHANTMENT.getPredicate()
));
}
public ShatterTheOath(UUID ownerId, CardSetInfo setInfo) {
super(ownerId, setInfo, new CardType[]{CardType.SORCERY}, "{3}{B}{B}");
// Destroy target creature or enchantment. Create a Wicked Role token attached to up to one target creature you control.
this.getSpellAbility().addEffect(new DestroyTargetEffect().setTargetPointer(new FirstTargetPointer()));
this.getSpellAbility().addTarget(new TargetPermanent(filter));
this.getSpellAbility().addTarget(new TargetPermanent(StaticFilters.FILTER_PERMANENT_CREATURE_OR_ENCHANTMENT));
this.getSpellAbility().addEffect(new CreateRoleAttachedTargetEffect(RoleType.WICKED).setTargetPointer(new SecondTargetPointer()));
this.getSpellAbility().addTarget(new TargetControlledCreaturePermanent(0, 1));
}

View file

@ -10,8 +10,7 @@ import mage.abilities.mana.AnyColorManaAbility;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
import mage.constants.CardType;
import mage.filter.FilterPermanent;
import mage.filter.predicate.Predicates;
import mage.filter.StaticFilters;
import mage.target.TargetPermanent;
import java.util.UUID;
@ -21,15 +20,6 @@ import java.util.UUID;
*/
public final class UrnOfGodfire extends CardImpl {
private static final FilterPermanent filter = new FilterPermanent("creature or enchantment");
static {
filter.add(Predicates.or(
CardType.CREATURE.getPredicate(),
CardType.ENCHANTMENT.getPredicate()
));
}
public UrnOfGodfire(UUID ownerId, CardSetInfo setInfo) {
super(ownerId, setInfo, new CardType[]{CardType.ARTIFACT}, "{1}");
@ -40,7 +30,7 @@ public final class UrnOfGodfire extends CardImpl {
Ability ability = new SimpleActivatedAbility(new DestroyTargetEffect(), new GenericManaCost(6));
ability.addCost(new TapSourceCost());
ability.addCost(new SacrificeSourceCost());
ability.addTarget(new TargetPermanent(filter));
ability.addTarget(new TargetPermanent(StaticFilters.FILTER_PERMANENT_CREATURE_OR_ENCHANTMENT));
this.addAbility(ability);
}

View file

@ -0,0 +1,35 @@
package mage.cards.w;
import mage.abilities.effects.common.DestroyTargetEffect;
import mage.abilities.effects.common.LoseLifeSourceControllerEffect;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
import mage.constants.CardType;
import mage.filter.StaticFilters;
import mage.target.TargetPermanent;
import java.util.UUID;
/**
* @author TheElk801
*/
public final class WitheringTorment extends CardImpl {
public WitheringTorment(UUID ownerId, CardSetInfo setInfo) {
super(ownerId, setInfo, new CardType[]{CardType.INSTANT}, "{2}{B}");
// Destroy target creature or enchantment. You lose 2 life.
this.getSpellAbility().addEffect(new DestroyTargetEffect());
this.getSpellAbility().addEffect(new LoseLifeSourceControllerEffect(2));
this.getSpellAbility().addTarget(new TargetPermanent(StaticFilters.FILTER_PERMANENT_CREATURE_OR_ENCHANTMENT));
}
private WitheringTorment(final WitheringTorment card) {
super(card);
}
@Override
public WitheringTorment copy() {
return new WitheringTorment(this);
}
}

View file

@ -163,6 +163,7 @@ public final class DuskmournHouseOfHorror extends ExpansionSet {
cards.add(new SetCardInfo("Victor, Valgavoth's Seneschal", 238, Rarity.RARE, mage.cards.v.VictorValgavothsSeneschal.class));
cards.add(new SetCardInfo("Wary Watchdog", 206, Rarity.COMMON, mage.cards.w.WaryWatchdog.class));
cards.add(new SetCardInfo("Winter, Misanthropic Guide", 240, Rarity.RARE, mage.cards.w.WinterMisanthropicGuide.class));
cards.add(new SetCardInfo("Withering Torment", 124, Rarity.UNCOMMON, mage.cards.w.WitheringTorment.class));
cards.add(new SetCardInfo("Zimone, All-Questioning", 241, Rarity.RARE, mage.cards.z.ZimoneAllQuestioning.class));
cards.removeIf(setCardInfo -> setCardInfo.getName().startsWith("Overlord"));

View file

@ -346,6 +346,16 @@ public final class StaticFilters {
FILTER_PERMANENT_ARTIFACT_OR_CREATURE.setLockedFilter(true);
}
public static final FilterPermanent FILTER_PERMANENT_CREATURE_OR_ENCHANTMENT = new FilterPermanent("creature or enchantment");
static {
FILTER_PERMANENT_CREATURE_OR_ENCHANTMENT.add(Predicates.or(
CardType.CREATURE.getPredicate(),
CardType.ENCHANTMENT.getPredicate()
));
FILTER_PERMANENT_CREATURE_OR_ENCHANTMENT.setLockedFilter(true);
}
public static final FilterPermanent FILTER_PERMANENT_ARTIFACT_CREATURE_OR_ENCHANTMENT = new FilterPermanent("artifact, creature, or enchantment");
static {