From 38501e9574896e0093baa6677ef5e1dd7ff82a80 Mon Sep 17 00:00:00 2001 From: theelk801 Date: Tue, 20 May 2025 15:26:49 -0400 Subject: [PATCH] [FIN] Implement Summon: Titan --- Mage.Sets/src/mage/cards/s/SummonTitan.java | 76 +++++++++++++++++++++ Mage.Sets/src/mage/sets/FinalFantasy.java | 1 + Utils/mtg-cards-data.txt | 1 + 3 files changed, 78 insertions(+) create mode 100644 Mage.Sets/src/mage/cards/s/SummonTitan.java diff --git a/Mage.Sets/src/mage/cards/s/SummonTitan.java b/Mage.Sets/src/mage/cards/s/SummonTitan.java new file mode 100644 index 00000000000..f48129bb4cd --- /dev/null +++ b/Mage.Sets/src/mage/cards/s/SummonTitan.java @@ -0,0 +1,76 @@ +package mage.cards.s; + +import mage.MageInt; +import mage.abilities.common.SagaAbility; +import mage.abilities.dynamicvalue.common.LandsYouControlCount; +import mage.abilities.effects.Effects; +import mage.abilities.effects.common.MillCardsControllerEffect; +import mage.abilities.effects.common.ReturnFromYourGraveyardToBattlefieldAllEffect; +import mage.abilities.effects.common.continuous.BoostTargetEffect; +import mage.abilities.effects.common.continuous.GainAbilityTargetEffect; +import mage.abilities.hint.common.LandsYouControlHint; +import mage.abilities.keyword.ReachAbility; +import mage.abilities.keyword.TrampleAbility; +import mage.cards.CardImpl; +import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.SagaChapter; +import mage.constants.SubType; +import mage.filter.StaticFilters; +import mage.target.TargetPermanent; + +import java.util.UUID; + +/** + * @author TheElk801 + */ +public final class SummonTitan extends CardImpl { + + public SummonTitan(UUID ownerId, CardSetInfo setInfo) { + super(ownerId, setInfo, new CardType[]{CardType.ENCHANTMENT, CardType.CREATURE}, "{3}{G}{G}"); + + this.subtype.add(SubType.SAGA); + this.subtype.add(SubType.GIANT); + this.power = new MageInt(7); + this.toughness = new MageInt(7); + + // (As this Saga enters and after your draw step, add a lore counter. Sacrifice after III.) + SagaAbility sagaAbility = new SagaAbility(this); + + // I - Mill five cards. + sagaAbility.addChapterEffect(this, SagaChapter.CHAPTER_I, new MillCardsControllerEffect(5)); + + // II - Return all land cards from your graveyard to the battlefield tapped. + sagaAbility.addChapterEffect( + this, SagaChapter.CHAPTER_II, + new ReturnFromYourGraveyardToBattlefieldAllEffect(StaticFilters.FILTER_CARD_LANDS, true) + ); + + // III - Until end of turn, another target creature you control gains trample and gets +X/+X, where X is the number of lands you control. + sagaAbility.addChapterEffect( + this, SagaChapter.CHAPTER_III, + new Effects( + new GainAbilityTargetEffect(TrampleAbility.getInstance()) + .setText("until end of turn, another target creature you control gains trample"), + new BoostTargetEffect(LandsYouControlCount.instance, LandsYouControlCount.instance) + .setText("and gets +X/+X, where X is the number of lands you control") + ), new TargetPermanent(StaticFilters.FILTER_ANOTHER_TARGET_CREATURE_YOU_CONTROL) + ); + this.addAbility(sagaAbility.addHint(LandsYouControlHint.instance)); + + // Reach + this.addAbility(ReachAbility.getInstance()); + + // Trample + this.addAbility(TrampleAbility.getInstance()); + } + + private SummonTitan(final SummonTitan card) { + super(card); + } + + @Override + public SummonTitan copy() { + return new SummonTitan(this); + } +} diff --git a/Mage.Sets/src/mage/sets/FinalFantasy.java b/Mage.Sets/src/mage/sets/FinalFantasy.java index a2d6ce08bff..6a712e617d3 100644 --- a/Mage.Sets/src/mage/sets/FinalFantasy.java +++ b/Mage.Sets/src/mage/sets/FinalFantasy.java @@ -309,6 +309,7 @@ public final class FinalFantasy extends ExpansionSet { cards.add(new SetCardInfo("Summon: Primal Odin", 365, Rarity.RARE, mage.cards.s.SummonPrimalOdin.class, NON_FULL_USE_VARIOUS)); cards.add(new SetCardInfo("Summon: Shiva", 362, Rarity.UNCOMMON, mage.cards.s.SummonShiva.class, NON_FULL_USE_VARIOUS)); cards.add(new SetCardInfo("Summon: Shiva", 78, Rarity.UNCOMMON, mage.cards.s.SummonShiva.class, NON_FULL_USE_VARIOUS)); + cards.add(new SetCardInfo("Summon: Titan", 204, Rarity.RARE, mage.cards.s.SummonTitan.class)); cards.add(new SetCardInfo("Summoner's Grimoire", 205, Rarity.RARE, mage.cards.s.SummonersGrimoire.class)); cards.add(new SetCardInfo("Suplex", 164, Rarity.COMMON, mage.cards.s.Suplex.class)); cards.add(new SetCardInfo("Swamp", 300, Rarity.LAND, mage.cards.basiclands.Swamp.class, FULL_ART_BFZ_VARIOUS)); diff --git a/Utils/mtg-cards-data.txt b/Utils/mtg-cards-data.txt index 79af091dd06..157f8b102d6 100644 --- a/Utils/mtg-cards-data.txt +++ b/Utils/mtg-cards-data.txt @@ -57742,6 +57742,7 @@ A Realm Reborn|Final Fantasy|196|R|{4}{G}{G}|Enchantment|||Other permanents you Sazh Katzroy|Final Fantasy|199|R|{3}{G}|Legendary Creature - Human Pilot|3|3|When Sazh Katzroy enters, you may search your library for a Bird or basic land card, reveal it, put it into your hand, then shuffle.$Whenever Sazh Katzroy attacks, put a +1/+1 counter on target creature, then double the number of +1/+1 counters on that creature.| Sazh's Chocobo|Final Fantasy|200|U|{G}|Creature - Bird|0|1|Landfall -- Whenever a land you control enters, put a +1/+1 counter on this creature.| Summon: Fenrir|Final Fantasy|203|U|{2}{G}|Enchantment Creature - Saga Wolf|3|2|(As this Saga enters and after your draw step, add a lore counter. Sacrifice after III.)$I -- Crescent Fang -- Search your library for a basic land card, put it onto the battlefield tapped, then shuffle.$II -- Heavenward Howl -- When you next cast a creature spell this turn, that creature enters with an additional +1/+1 counter on it.$III -- Ecliptic Growl -- Draw a card if you control the creature with the greatest power or tied for the greatest power.| +Summon: Titan|Final Fantasy|204|R|{3}{G}{G}|Enchantment Creature - Saga Giant|7|7|(As this Saga enters and after your draw step, add a lore counter. Sacrifice after III.)$I - Mill five cards.$II - Return all land cards from your graveyard to the battlefield tapped.$III - Until end of turn, another target creature you control gains trample and gets +X/+X, where X is the number of lands you control.$Reach, trample| Summoner's Grimoire|Final Fantasy|205|R|{3}{G}|Artifact - Equipment|||Job select$Equipped creature is a Shaman in addition to its other types and has "Whenever this creature attacks, you may put a creature card from your hand onto the battlefield. If that card is an enchantment card, it enters tapped and attacking."$Abraxas -- Equip {3}| Tifa Lockhart|Final Fantasy|206|R|{1}{G}|Legendary Creature - Human Monk|1|2|Trample$Landfall -- Whenever a land you control enters, double Tifa Lockhart's power until end of turn.| Town Greeter|Final Fantasy|209|C|{1}{G}|Creature - Human Citizen|1|1|When this creature enters, mill four cards. You may put a land card from among them into your hand. If you put a Town card into your hand this way, you gain 2 life.|