From b896c97251d4a1ffbd8d06e877e40ec785149a10 Mon Sep 17 00:00:00 2001 From: theelk801 Date: Thu, 12 Sep 2024 09:51:51 -0400 Subject: [PATCH] [DSK] Implement Get Out --- Mage.Sets/src/mage/cards/g/GetOut.java | 59 +++++++++++++++++++ .../src/mage/sets/DuskmournHouseOfHorror.java | 1 + 2 files changed, 60 insertions(+) create mode 100644 Mage.Sets/src/mage/cards/g/GetOut.java diff --git a/Mage.Sets/src/mage/cards/g/GetOut.java b/Mage.Sets/src/mage/cards/g/GetOut.java new file mode 100644 index 00000000000..1a33fed5315 --- /dev/null +++ b/Mage.Sets/src/mage/cards/g/GetOut.java @@ -0,0 +1,59 @@ +package mage.cards.g; + +import mage.MageObject; +import mage.abilities.Mode; +import mage.abilities.effects.common.CounterTargetEffect; +import mage.abilities.effects.common.ReturnToHandTargetEffect; +import mage.cards.CardImpl; +import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.TargetController; +import mage.filter.FilterPermanent; +import mage.filter.FilterSpell; +import mage.filter.predicate.Predicate; +import mage.filter.predicate.Predicates; +import mage.target.TargetPermanent; +import mage.target.TargetSpell; + +import java.util.UUID; + +/** + * @author TheElk801 + */ +public final class GetOut extends CardImpl { + + private static final FilterSpell filter = new FilterSpell("creature or enchantment spell"); + private static final FilterPermanent filter2 = new FilterPermanent("creatures and/or enchantments you own to your hand"); + private static final Predicate predicate = Predicates.or( + CardType.CREATURE.getPredicate(), + CardType.ENCHANTMENT.getPredicate() + ); + + static { + filter.add(predicate); + filter2.add(predicate); + filter2.add(TargetController.YOU.getOwnerPredicate()); + } + + public GetOut(UUID ownerId, CardSetInfo setInfo) { + super(ownerId, setInfo, new CardType[]{CardType.INSTANT}, "{U}{U}"); + + // Choose one -- + // * Counter target creature or enchantment spell. + this.getSpellAbility().addEffect(new CounterTargetEffect()); + this.getSpellAbility().addTarget(new TargetSpell(filter)); + + // * Return one or two target creatures and/or enchantments you own to your hand. + this.getSpellAbility().addMode(new Mode(new ReturnToHandTargetEffect()) + .addTarget(new TargetPermanent(1, 2, filter2))); + } + + private GetOut(final GetOut card) { + super(card); + } + + @Override + public GetOut copy() { + return new GetOut(this); + } +} diff --git a/Mage.Sets/src/mage/sets/DuskmournHouseOfHorror.java b/Mage.Sets/src/mage/sets/DuskmournHouseOfHorror.java index 515be5d13e5..9b0525e1762 100644 --- a/Mage.Sets/src/mage/sets/DuskmournHouseOfHorror.java +++ b/Mage.Sets/src/mage/sets/DuskmournHouseOfHorror.java @@ -91,6 +91,7 @@ public final class DuskmournHouseOfHorror extends ExpansionSet { cards.add(new SetCardInfo("Frantic Strength", 179, Rarity.COMMON, mage.cards.f.FranticStrength.class)); cards.add(new SetCardInfo("Friendly Ghost", 12, Rarity.COMMON, mage.cards.f.FriendlyGhost.class)); cards.add(new SetCardInfo("Friendly Teddy", 247, Rarity.COMMON, mage.cards.f.FriendlyTeddy.class)); + cards.add(new SetCardInfo("Get Out", 60, Rarity.UNCOMMON, mage.cards.g.GetOut.class)); cards.add(new SetCardInfo("Give In to Violence", 101, Rarity.COMMON, mage.cards.g.GiveInToViolence.class)); cards.add(new SetCardInfo("Glimmer Seeker", 14, Rarity.UNCOMMON, mage.cards.g.GlimmerSeeker.class)); cards.add(new SetCardInfo("Glimmerlight", 249, Rarity.COMMON, mage.cards.g.Glimmerlight.class));