From 45200d3b78b61ecc00a5320e19a901702b1d0b95 Mon Sep 17 00:00:00 2001 From: theelk801 Date: Fri, 23 May 2025 13:42:02 -0400 Subject: [PATCH] [FIN] Implement Ultros, Obnoxious Octopus --- .../mage/cards/u/UltrosObnoxiousOctopus.java | 68 +++++++++++++++++++ Mage.Sets/src/mage/sets/FinalFantasy.java | 2 + 2 files changed, 70 insertions(+) create mode 100644 Mage.Sets/src/mage/cards/u/UltrosObnoxiousOctopus.java diff --git a/Mage.Sets/src/mage/cards/u/UltrosObnoxiousOctopus.java b/Mage.Sets/src/mage/cards/u/UltrosObnoxiousOctopus.java new file mode 100644 index 00000000000..7d9c9ea0559 --- /dev/null +++ b/Mage.Sets/src/mage/cards/u/UltrosObnoxiousOctopus.java @@ -0,0 +1,68 @@ +package mage.cards.u; + +import mage.MageInt; +import mage.abilities.Ability; +import mage.abilities.common.SpellCastControllerTriggeredAbility; +import mage.abilities.effects.common.TapTargetEffect; +import mage.abilities.effects.common.counter.AddCountersSourceEffect; +import mage.abilities.effects.common.counter.AddCountersTargetEffect; +import mage.cards.CardImpl; +import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.ComparisonType; +import mage.constants.SubType; +import mage.constants.SuperType; +import mage.counters.CounterType; +import mage.filter.FilterSpell; +import mage.filter.StaticFilters; +import mage.filter.predicate.Predicates; +import mage.filter.predicate.mageobject.ManaSpentToCastPredicate; +import mage.target.common.TargetOpponentsCreaturePermanent; + +import java.util.UUID; + +/** + * @author TheElk801 + */ +public final class UltrosObnoxiousOctopus extends CardImpl { + + private static final FilterSpell filter + = new FilterSpell("a noncreature spell, if at least eight mana was spent to cast it"); + + static { + filter.add(Predicates.not(CardType.CREATURE.getPredicate())); + filter.add(new ManaSpentToCastPredicate(ComparisonType.MORE_THAN, 7)); + } + + public UltrosObnoxiousOctopus(UUID ownerId, CardSetInfo setInfo) { + super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{1}{U}"); + + this.supertype.add(SuperType.LEGENDARY); + this.subtype.add(SubType.OCTOPUS); + this.power = new MageInt(2); + this.toughness = new MageInt(1); + + // Whenever you cast a noncreature spell, if at least four mana was spent to cast it, tap target creature an opponent controls and put a stun counter on it. + Ability ability = new SpellCastControllerTriggeredAbility( + new TapTargetEffect(), StaticFilters.FILTER_NONCREATURE_SPELL_FOUR_MANA_SPENT, false + ); + ability.addEffect(new AddCountersTargetEffect(CounterType.STUN.createInstance()) + .setText("and put a stun counter on it")); + ability.addTarget(new TargetOpponentsCreaturePermanent()); + this.addAbility(ability); + + // Whenever you cast a noncreature spell, if at least eight mana was spent to cast it, put eight +1/+1 counters on Ultros. + this.addAbility(new SpellCastControllerTriggeredAbility( + new AddCountersSourceEffect(CounterType.P1P1.createInstance(8)), filter, false + )); + } + + private UltrosObnoxiousOctopus(final UltrosObnoxiousOctopus card) { + super(card); + } + + @Override + public UltrosObnoxiousOctopus copy() { + return new UltrosObnoxiousOctopus(this); + } +} diff --git a/Mage.Sets/src/mage/sets/FinalFantasy.java b/Mage.Sets/src/mage/sets/FinalFantasy.java index 09a33852fde..9690d95fb3a 100644 --- a/Mage.Sets/src/mage/sets/FinalFantasy.java +++ b/Mage.Sets/src/mage/sets/FinalFantasy.java @@ -442,6 +442,8 @@ public final class FinalFantasy extends ExpansionSet { 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("Ultros, Obnoxious Octopus", 442, Rarity.UNCOMMON, mage.cards.u.UltrosObnoxiousOctopus.class, NON_FULL_USE_VARIOUS)); + cards.add(new SetCardInfo("Ultros, Obnoxious Octopus", 83, Rarity.UNCOMMON, mage.cards.u.UltrosObnoxiousOctopus.class, NON_FULL_USE_VARIOUS)); cards.add(new SetCardInfo("Undercity Dire Rat", 123, Rarity.COMMON, mage.cards.u.UndercityDireRat.class)); cards.add(new SetCardInfo("Valkyrie Aerial Unit", 84, Rarity.UNCOMMON, mage.cards.v.ValkyrieAerialUnit.class)); cards.add(new SetCardInfo("Vanille, Cheerful l'Cie", 211, Rarity.UNCOMMON, mage.cards.v.VanilleCheerfulLCie.class, NON_FULL_USE_VARIOUS));