From 41e895cfdabd6270a7ad61ec8fb841f1bcc58356 Mon Sep 17 00:00:00 2001 From: theelk801 Date: Wed, 14 May 2025 10:21:43 -0400 Subject: [PATCH] [FIN] Implement Ultimecia, Temporal Threat --- .../mage/cards/u/UltimeciaTemporalThreat.java | 53 +++++++++++++++++++ Mage.Sets/src/mage/sets/FinalFantasy.java | 2 + 2 files changed, 55 insertions(+) create mode 100644 Mage.Sets/src/mage/cards/u/UltimeciaTemporalThreat.java diff --git a/Mage.Sets/src/mage/cards/u/UltimeciaTemporalThreat.java b/Mage.Sets/src/mage/cards/u/UltimeciaTemporalThreat.java new file mode 100644 index 00000000000..ceec7075d46 --- /dev/null +++ b/Mage.Sets/src/mage/cards/u/UltimeciaTemporalThreat.java @@ -0,0 +1,53 @@ +package mage.cards.u; + +import mage.MageInt; +import mage.abilities.common.DealsDamageToAPlayerAllTriggeredAbility; +import mage.abilities.common.EntersBattlefieldTriggeredAbility; +import mage.abilities.effects.common.DrawCardSourceControllerEffect; +import mage.abilities.effects.common.TapAllEffect; +import mage.cards.CardImpl; +import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.SetTargetPointer; +import mage.constants.SubType; +import mage.constants.SuperType; +import mage.filter.StaticFilters; + +import java.util.UUID; + +/** + * @author TheElk801 + */ +public final class UltimeciaTemporalThreat extends CardImpl { + + public UltimeciaTemporalThreat(UUID ownerId, CardSetInfo setInfo) { + super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{4}{U}{U}"); + + this.supertype.add(SuperType.LEGENDARY); + this.subtype.add(SubType.HUMAN); + this.subtype.add(SubType.WARLOCK); + this.power = new MageInt(4); + this.toughness = new MageInt(4); + + // When Ultimecia enters, tap all creatures your opponents control. + this.addAbility(new EntersBattlefieldTriggeredAbility( + new TapAllEffect(StaticFilters.FILTER_OPPONENTS_PERMANENT_CREATURES) + )); + + // Whenever a creature you control deals combat damage to a player, draw a card. + this.addAbility(new DealsDamageToAPlayerAllTriggeredAbility( + new DrawCardSourceControllerEffect(1), + StaticFilters.FILTER_CONTROLLED_A_CREATURE, + false, SetTargetPointer.NONE, true + )); + } + + private UltimeciaTemporalThreat(final UltimeciaTemporalThreat card) { + super(card); + } + + @Override + public UltimeciaTemporalThreat copy() { + return new UltimeciaTemporalThreat(this); + } +} diff --git a/Mage.Sets/src/mage/sets/FinalFantasy.java b/Mage.Sets/src/mage/sets/FinalFantasy.java index 7be802828e5..245dfb2c498 100644 --- a/Mage.Sets/src/mage/sets/FinalFantasy.java +++ b/Mage.Sets/src/mage/sets/FinalFantasy.java @@ -209,6 +209,8 @@ public final class FinalFantasy extends ExpansionSet { cards.add(new SetCardInfo("Ultima Weapon", 563, Rarity.RARE, mage.cards.u.UltimaWeapon.class)); cards.add(new SetCardInfo("Ultimecia, Omnipotent", 247, Rarity.UNCOMMON, mage.cards.u.UltimeciaOmnipotent.class, NON_FULL_USE_VARIOUS)); cards.add(new SetCardInfo("Ultimecia, Omnipotent", 513, Rarity.UNCOMMON, mage.cards.u.UltimeciaOmnipotent.class, NON_FULL_USE_VARIOUS)); + cards.add(new SetCardInfo("Ultimecia, Temporal Threat", 441, Rarity.RARE, mage.cards.u.UltimeciaTemporalThreat.class, NON_FULL_USE_VARIOUS)); + cards.add(new SetCardInfo("Ultimecia, Temporal Threat", 556, Rarity.RARE, mage.cards.u.UltimeciaTemporalThreat.class, NON_FULL_USE_VARIOUS)); cards.add(new SetCardInfo("Ultimecia, Time Sorceress", 247, Rarity.UNCOMMON, mage.cards.u.UltimeciaTimeSorceress.class, NON_FULL_USE_VARIOUS)); cards.add(new SetCardInfo("Ultimecia, Time Sorceress", 513, Rarity.UNCOMMON, mage.cards.u.UltimeciaTimeSorceress.class, NON_FULL_USE_VARIOUS)); cards.add(new SetCardInfo("Valkyrie Aerial Unit", 84, Rarity.UNCOMMON, mage.cards.v.ValkyrieAerialUnit.class));