From d435decd88971c6236a0fecfd1eb01c48e99a850 Mon Sep 17 00:00:00 2001 From: theelk801 Date: Wed, 9 Jul 2025 09:32:43 -0400 Subject: [PATCH] [EOE] Implement Archenemy's Charm --- .../src/mage/cards/a/ArchenemysCharm.java | 62 +++++++++++++++++++ Mage.Sets/src/mage/sets/EdgeOfEternities.java | 2 + 2 files changed, 64 insertions(+) create mode 100644 Mage.Sets/src/mage/cards/a/ArchenemysCharm.java diff --git a/Mage.Sets/src/mage/cards/a/ArchenemysCharm.java b/Mage.Sets/src/mage/cards/a/ArchenemysCharm.java new file mode 100644 index 00000000000..5e206896d38 --- /dev/null +++ b/Mage.Sets/src/mage/cards/a/ArchenemysCharm.java @@ -0,0 +1,62 @@ +package mage.cards.a; + +import mage.abilities.Mode; +import mage.abilities.effects.common.ExileTargetEffect; +import mage.abilities.effects.common.ReturnFromGraveyardToHandTargetEffect; +import mage.abilities.effects.common.continuous.GainAbilityTargetEffect; +import mage.abilities.effects.common.counter.AddCountersTargetEffect; +import mage.abilities.keyword.LifelinkAbility; +import mage.cards.CardImpl; +import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.counters.CounterType; +import mage.filter.FilterCard; +import mage.filter.predicate.Predicates; +import mage.target.common.TargetCardInYourGraveyard; +import mage.target.common.TargetControlledCreaturePermanent; +import mage.target.common.TargetCreatureOrPlaneswalker; + +import java.util.UUID; + +/** + * @author TheElk801 + */ +public final class ArchenemysCharm extends CardImpl { + + private static final FilterCard filter = new FilterCard("creature and/or planeswalker cards from your graveyard"); + + static { + filter.add(Predicates.or( + CardType.CREATURE.getPredicate(), + CardType.PLANESWALKER.getPredicate() + )); + } + + public ArchenemysCharm(UUID ownerId, CardSetInfo setInfo) { + super(ownerId, setInfo, new CardType[]{CardType.INSTANT}, "{B}{B}{B}"); + + // Choose one -- + // * Exile target creature or planeswalker. + this.getSpellAbility().addEffect(new ExileTargetEffect()); + this.getSpellAbility().addTarget(new TargetCreatureOrPlaneswalker()); + + // * Return one or two target creature and/or planeswalker cards from your graveyard to your hand. + this.getSpellAbility().addMode(new Mode(new ReturnFromGraveyardToHandTargetEffect()) + .addTarget(new TargetCardInYourGraveyard(1, 2, filter))); + + // * Put two +1/+1 counters on target creature you control. It gains lifelink until end of turn. + this.getSpellAbility().addMode(new Mode(new AddCountersTargetEffect(CounterType.P1P1.createInstance())) + .addEffect(new GainAbilityTargetEffect(LifelinkAbility.getInstance()) + .setText("It gains lifelink until end of turn")) + .addTarget(new TargetControlledCreaturePermanent())); + } + + private ArchenemysCharm(final ArchenemysCharm card) { + super(card); + } + + @Override + public ArchenemysCharm copy() { + return new ArchenemysCharm(this); + } +} diff --git a/Mage.Sets/src/mage/sets/EdgeOfEternities.java b/Mage.Sets/src/mage/sets/EdgeOfEternities.java index 5887cbd1a93..cd58752845e 100644 --- a/Mage.Sets/src/mage/sets/EdgeOfEternities.java +++ b/Mage.Sets/src/mage/sets/EdgeOfEternities.java @@ -29,6 +29,8 @@ public final class EdgeOfEternities extends ExpansionSet { cards.add(new SetCardInfo("Anticausal Vestige", 317, Rarity.RARE, mage.cards.a.AnticausalVestige.class, NON_FULL_USE_VARIOUS)); cards.add(new SetCardInfo("Anticausal Vestige", 357, Rarity.MYTHIC, mage.cards.a.AnticausalVestige.class, NON_FULL_USE_VARIOUS)); cards.add(new SetCardInfo("Anticausal Vestige", 383, Rarity.RARE, mage.cards.a.AnticausalVestige.class, NON_FULL_USE_VARIOUS)); + cards.add(new SetCardInfo("Archenemy's Charm", 307, Rarity.RARE, mage.cards.a.ArchenemysCharm.class, NON_FULL_USE_VARIOUS)); + cards.add(new SetCardInfo("Archenemy's Charm", 88, Rarity.RARE, mage.cards.a.ArchenemysCharm.class, NON_FULL_USE_VARIOUS)); cards.add(new SetCardInfo("Banishing Light", 6, Rarity.COMMON, mage.cards.b.BanishingLight.class)); cards.add(new SetCardInfo("Biotech Specialist", 214, Rarity.RARE, mage.cards.b.BiotechSpecialist.class, NON_FULL_USE_VARIOUS)); cards.add(new SetCardInfo("Biotech Specialist", 347, Rarity.RARE, mage.cards.b.BiotechSpecialist.class, NON_FULL_USE_VARIOUS));