From 1dcfe87584fcc494fe51ccdf65e9a7b5107dfd97 Mon Sep 17 00:00:00 2001 From: theelk801 Date: Fri, 9 Jan 2026 10:32:26 -0500 Subject: [PATCH] [ECL] Implement Eclipsed Elf --- Mage.Sets/src/mage/cards/e/EclipsedElf.java | 53 +++++++++++++++++++++ Mage.Sets/src/mage/sets/LorwynEclipsed.java | 2 + 2 files changed, 55 insertions(+) create mode 100644 Mage.Sets/src/mage/cards/e/EclipsedElf.java diff --git a/Mage.Sets/src/mage/cards/e/EclipsedElf.java b/Mage.Sets/src/mage/cards/e/EclipsedElf.java new file mode 100644 index 00000000000..2a0ffe593a9 --- /dev/null +++ b/Mage.Sets/src/mage/cards/e/EclipsedElf.java @@ -0,0 +1,53 @@ +package mage.cards.e; + +import mage.MageInt; +import mage.abilities.common.EntersBattlefieldTriggeredAbility; +import mage.abilities.effects.common.LookLibraryAndPickControllerEffect; +import mage.cards.CardImpl; +import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.PutCards; +import mage.constants.SubType; +import mage.filter.FilterCard; +import mage.filter.predicate.Predicates; + +import java.util.UUID; + +/** + * @author TheElk801 + */ +public final class EclipsedElf extends CardImpl { + + private static final FilterCard filter = new FilterCard("Elf, Swamp, or Forest card"); + + static { + filter.add(Predicates.or( + SubType.ELF.getPredicate(), + SubType.SWAMP.getPredicate(), + SubType.FOREST.getPredicate() + )); + } + + public EclipsedElf(UUID ownerId, CardSetInfo setInfo) { + super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{B/G}{B/G}{B/G}"); + + this.subtype.add(SubType.ELF); + this.subtype.add(SubType.SCOUT); + this.power = new MageInt(3); + this.toughness = new MageInt(2); + + // When this creature enters, look at the top four cards of your library. You may reveal an Elf, Swamp, or Forest card from among them and put it into your hand. Put the rest on the bottom of your library in a random order. + this.addAbility(new EntersBattlefieldTriggeredAbility(new LookLibraryAndPickControllerEffect( + 4, 1, filter, PutCards.HAND, PutCards.BOTTOM_RANDOM + ))); + } + + private EclipsedElf(final EclipsedElf card) { + super(card); + } + + @Override + public EclipsedElf copy() { + return new EclipsedElf(this); + } +} diff --git a/Mage.Sets/src/mage/sets/LorwynEclipsed.java b/Mage.Sets/src/mage/sets/LorwynEclipsed.java index 3fdc5341c83..e9d8ebda48c 100644 --- a/Mage.Sets/src/mage/sets/LorwynEclipsed.java +++ b/Mage.Sets/src/mage/sets/LorwynEclipsed.java @@ -85,6 +85,8 @@ public final class LorwynEclipsed extends ExpansionSet { cards.add(new SetCardInfo("Dundoolin Weaver", 175, Rarity.UNCOMMON, mage.cards.d.DundoolinWeaver.class)); cards.add(new SetCardInfo("Eclipsed Boggart", 217, Rarity.UNCOMMON, mage.cards.e.EclipsedBoggart.class, NON_FULL_USE_VARIOUS)); cards.add(new SetCardInfo("Eclipsed Boggart", 335, Rarity.UNCOMMON, mage.cards.e.EclipsedBoggart.class, NON_FULL_USE_VARIOUS)); + cards.add(new SetCardInfo("Eclipsed Elf", 218, Rarity.UNCOMMON, mage.cards.e.EclipsedElf.class, NON_FULL_USE_VARIOUS)); + cards.add(new SetCardInfo("Eclipsed Elf", 336, Rarity.UNCOMMON, mage.cards.e.EclipsedElf.class, NON_FULL_USE_VARIOUS)); cards.add(new SetCardInfo("Eclipsed Flamekin", 219, Rarity.UNCOMMON, mage.cards.e.EclipsedFlamekin.class, NON_FULL_USE_VARIOUS)); cards.add(new SetCardInfo("Eclipsed Flamekin", 337, Rarity.UNCOMMON, mage.cards.e.EclipsedFlamekin.class, NON_FULL_USE_VARIOUS)); cards.add(new SetCardInfo("Eirdu, Carrier of Dawn", 13, Rarity.MYTHIC, mage.cards.e.EirduCarrierOfDawn.class, NON_FULL_USE_VARIOUS));