From 5a3cb81c6a6bb7d2efb7be53c038b676e494b109 Mon Sep 17 00:00:00 2001 From: theelk801 Date: Thu, 1 Jun 2023 21:17:33 -0400 Subject: [PATCH] [LTR] Implement Tale of Tinuviel --- .../src/mage/cards/t/TaleOfTinuviel.java | 64 +++++++++++++++++++ .../TheLordOfTheRingsTalesOfMiddleEarth.java | 1 + 2 files changed, 65 insertions(+) create mode 100644 Mage.Sets/src/mage/cards/t/TaleOfTinuviel.java diff --git a/Mage.Sets/src/mage/cards/t/TaleOfTinuviel.java b/Mage.Sets/src/mage/cards/t/TaleOfTinuviel.java new file mode 100644 index 0000000000..f5ccf51b00 --- /dev/null +++ b/Mage.Sets/src/mage/cards/t/TaleOfTinuviel.java @@ -0,0 +1,64 @@ +package mage.cards.t; + +import mage.abilities.common.SagaAbility; +import mage.abilities.effects.common.ReturnFromGraveyardToBattlefieldTargetEffect; +import mage.abilities.effects.common.continuous.GainAbilityTargetEffect; +import mage.abilities.keyword.IndestructibleAbility; +import mage.abilities.keyword.LifelinkAbility; +import mage.cards.CardImpl; +import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Duration; +import mage.constants.SagaChapter; +import mage.constants.SubType; +import mage.filter.StaticFilters; +import mage.target.common.TargetCardInYourGraveyard; +import mage.target.common.TargetControlledCreaturePermanent; + +import java.util.UUID; + +/** + * @author TheElk801 + */ +public final class TaleOfTinuviel extends CardImpl { + + public TaleOfTinuviel(UUID ownerId, CardSetInfo setInfo) { + super(ownerId, setInfo, new CardType[]{CardType.ENCHANTMENT}, "{3}{W}{W}"); + + this.subtype.add(SubType.SAGA); + + // (As this Saga enters and after your drasv step, add a lore counter. Sacrifice after III.) + SagaAbility sagaAbility = new SagaAbility(this); + + // I -- Target creature you control gains indestructible for as long as you control Tale of Tinuviel. + sagaAbility.addChapterEffect( + this, SagaChapter.CHAPTER_I, SagaChapter.CHAPTER_I, + new GainAbilityTargetEffect(IndestructibleAbility.getInstance(), Duration.WhileControlled), + new TargetControlledCreaturePermanent() + ); + + // II -- Return target creature card from your graveyard to the battlefield. + sagaAbility.addChapterEffect( + this, SagaChapter.CHAPTER_II, SagaChapter.CHAPTER_II, + new ReturnFromGraveyardToBattlefieldTargetEffect(), + new TargetCardInYourGraveyard(StaticFilters.FILTER_CARD_CREATURE_YOUR_GRAVEYARD) + ); + + // III -- Up to two target creatures you control each gain lifelink until end of turn. + sagaAbility.addChapterEffect( + this, SagaChapter.CHAPTER_III, SagaChapter.CHAPTER_III, + new GainAbilityTargetEffect(LifelinkAbility.getInstance(), Duration.EndOfTurn), + new TargetControlledCreaturePermanent(0, 2) + ); + this.addAbility(sagaAbility); + } + + private TaleOfTinuviel(final TaleOfTinuviel card) { + super(card); + } + + @Override + public TaleOfTinuviel copy() { + return new TaleOfTinuviel(this); + } +} diff --git a/Mage.Sets/src/mage/sets/TheLordOfTheRingsTalesOfMiddleEarth.java b/Mage.Sets/src/mage/sets/TheLordOfTheRingsTalesOfMiddleEarth.java index be7e32003c..279f351e10 100644 --- a/Mage.Sets/src/mage/sets/TheLordOfTheRingsTalesOfMiddleEarth.java +++ b/Mage.Sets/src/mage/sets/TheLordOfTheRingsTalesOfMiddleEarth.java @@ -79,6 +79,7 @@ public final class TheLordOfTheRingsTalesOfMiddleEarth extends ExpansionSet { cards.add(new SetCardInfo("Stew the Coneys", 189, Rarity.UNCOMMON, mage.cards.s.StewTheConeys.class)); cards.add(new SetCardInfo("Swamp", 266, Rarity.LAND, mage.cards.basiclands.Swamp.class, NON_FULL_USE_VARIOUS)); cards.add(new SetCardInfo("Swarming of Moria", 150, Rarity.COMMON, mage.cards.s.SwarmingOfMoria.class)); + cards.add(new SetCardInfo("Tale of Tinuviel", 34, Rarity.UNCOMMON, mage.cards.t.TaleOfTinuviel.class)); cards.add(new SetCardInfo("The Balrog, Flame of Udun", 395, Rarity.RARE, mage.cards.t.TheBalrogFlameOfUdun.class)); cards.add(new SetCardInfo("The Bath Song", 40, Rarity.UNCOMMON, mage.cards.t.TheBathSong.class)); cards.add(new SetCardInfo("The One Ring", 246, Rarity.MYTHIC, mage.cards.t.TheOneRing.class));