From 95f5355a10fce28ae96e10c6bd41f517d01fb8d6 Mon Sep 17 00:00:00 2001 From: theelk801 Date: Mon, 12 May 2025 19:48:35 -0400 Subject: [PATCH] [FIC] Implement Elena, Turk Recruit --- .../src/mage/cards/e/ElenaTurkRecruit.java | 64 +++++++++++++++++++ .../src/mage/sets/FinalFantasyCommander.java | 1 + 2 files changed, 65 insertions(+) create mode 100644 Mage.Sets/src/mage/cards/e/ElenaTurkRecruit.java diff --git a/Mage.Sets/src/mage/cards/e/ElenaTurkRecruit.java b/Mage.Sets/src/mage/cards/e/ElenaTurkRecruit.java new file mode 100644 index 00000000000..c5fbea1f82f --- /dev/null +++ b/Mage.Sets/src/mage/cards/e/ElenaTurkRecruit.java @@ -0,0 +1,64 @@ +package mage.cards.e; + +import mage.MageInt; +import mage.abilities.Ability; +import mage.abilities.common.EntersBattlefieldTriggeredAbility; +import mage.abilities.common.SpellCastControllerTriggeredAbility; +import mage.abilities.effects.common.ReturnFromGraveyardToHandTargetEffect; +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.constants.SuperType; +import mage.counters.CounterType; +import mage.filter.FilterCard; +import mage.filter.FilterSpell; +import mage.filter.common.FilterHistoricCard; +import mage.filter.common.FilterHistoricSpell; +import mage.filter.predicate.Predicates; +import mage.target.common.TargetCardInYourGraveyard; + +import java.util.UUID; + +/** + * @author TheElk801 + */ +public final class ElenaTurkRecruit extends CardImpl { + + private static final FilterCard filter = new FilterHistoricCard("non-Assassin historic card from your graveyard"); + private static final FilterSpell filter2 = new FilterHistoricSpell(); + + static { + filter.add(Predicates.not(SubType.ASSASSIN.getPredicate())); + } + + public ElenaTurkRecruit(UUID ownerId, CardSetInfo setInfo) { + super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{2}{W}"); + + this.supertype.add(SuperType.LEGENDARY); + this.subtype.add(SubType.HUMAN); + this.subtype.add(SubType.ASSASSIN); + this.power = new MageInt(1); + this.toughness = new MageInt(4); + + // When Elena enters, return target non-Assassin historic card from your graveyard to your hand. + Ability ability = new EntersBattlefieldTriggeredAbility(new ReturnFromGraveyardToHandTargetEffect()); + ability.addTarget(new TargetCardInYourGraveyard(filter)); + this.addAbility(ability); + + // Whenever you cast a historic spell, put a +1/+1 counter on Elena. + this.addAbility(new SpellCastControllerTriggeredAbility( + new AddCountersSourceEffect(CounterType.P1P1.createInstance()), filter2, false + )); + } + + private ElenaTurkRecruit(final ElenaTurkRecruit card) { + super(card); + } + + @Override + public ElenaTurkRecruit copy() { + return new ElenaTurkRecruit(this); + } +} diff --git a/Mage.Sets/src/mage/sets/FinalFantasyCommander.java b/Mage.Sets/src/mage/sets/FinalFantasyCommander.java index da88b53004f..d2e4c87c70c 100644 --- a/Mage.Sets/src/mage/sets/FinalFantasyCommander.java +++ b/Mage.Sets/src/mage/sets/FinalFantasyCommander.java @@ -65,6 +65,7 @@ public final class FinalFantasyCommander extends ExpansionSet { cards.add(new SetCardInfo("Dig Through Time", 263, Rarity.RARE, mage.cards.d.DigThroughTime.class)); cards.add(new SetCardInfo("Dispatch", 241, Rarity.UNCOMMON, mage.cards.d.Dispatch.class)); cards.add(new SetCardInfo("Duskshell Crawler", 301, Rarity.COMMON, mage.cards.d.DuskshellCrawler.class)); + cards.add(new SetCardInfo("Elena, Turk Recruit", 18, Rarity.RARE, mage.cards.e.ElenaTurkRecruit.class)); cards.add(new SetCardInfo("Exsanguinate", 276, Rarity.UNCOMMON, mage.cards.e.Exsanguinate.class)); cards.add(new SetCardInfo("Farewell", 242, Rarity.RARE, mage.cards.f.Farewell.class)); cards.add(new SetCardInfo("Farseek", 302, Rarity.COMMON, mage.cards.f.Farseek.class));