From 319e5df120e49e9b643974b8f641cde6de22a414 Mon Sep 17 00:00:00 2001 From: Susucre <34709007+Susucre@users.noreply.github.com> Date: Tue, 22 Aug 2023 15:46:13 +0200 Subject: [PATCH] [WOE] Implement Spell Stutter (#10936) --- Mage.Sets/src/mage/cards/s/SpellStutter.java | 50 ++++++++++++++++++++ Mage.Sets/src/mage/sets/WildsOfEldraine.java | 1 + 2 files changed, 51 insertions(+) create mode 100644 Mage.Sets/src/mage/cards/s/SpellStutter.java diff --git a/Mage.Sets/src/mage/cards/s/SpellStutter.java b/Mage.Sets/src/mage/cards/s/SpellStutter.java new file mode 100644 index 00000000000..9b051685a24 --- /dev/null +++ b/Mage.Sets/src/mage/cards/s/SpellStutter.java @@ -0,0 +1,50 @@ +package mage.cards.s; + +import mage.abilities.dynamicvalue.AdditiveDynamicValue; +import mage.abilities.dynamicvalue.DynamicValue; +import mage.abilities.dynamicvalue.common.PermanentsOnBattlefieldCount; +import mage.abilities.dynamicvalue.common.StaticValue; +import mage.abilities.effects.common.CounterUnlessPaysEffect; +import mage.abilities.hint.Hint; +import mage.abilities.hint.ValueHint; +import mage.cards.CardImpl; +import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.SubType; +import mage.filter.common.FilterControlledPermanent; +import mage.target.TargetSpell; + +import java.util.UUID; + +/** + * @author Susucr + */ +public final class SpellStutter extends CardImpl { + + private static final DynamicValue faerieCount = + new PermanentsOnBattlefieldCount(new FilterControlledPermanent(SubType.FAERIE)); + private static final DynamicValue xValue = new AdditiveDynamicValue(StaticValue.get(2), faerieCount); + + private static final Hint hint = new ValueHint("Faeries controlled", faerieCount); + + public SpellStutter(UUID ownerId, CardSetInfo setInfo) { + super(ownerId, setInfo, new CardType[]{CardType.INSTANT}, "{1}{U}"); + + // Counter target spell unless its controller pays {2} plus an additional {1} for each Faerie you control. + this.getSpellAbility().addEffect(new CounterUnlessPaysEffect(xValue).setText( + "Counter target spell unless its controller pays {2}" + + "plus an additional {1} for each Faerie you control." + )); + this.getSpellAbility().addTarget(new TargetSpell()); + this.getSpellAbility().addHint(hint); + } + + private SpellStutter(final SpellStutter card) { + super(card); + } + + @Override + public SpellStutter copy() { + return new SpellStutter(this); + } +} diff --git a/Mage.Sets/src/mage/sets/WildsOfEldraine.java b/Mage.Sets/src/mage/sets/WildsOfEldraine.java index adb08d401f2..00c994cffda 100644 --- a/Mage.Sets/src/mage/sets/WildsOfEldraine.java +++ b/Mage.Sets/src/mage/sets/WildsOfEldraine.java @@ -126,6 +126,7 @@ public final class WildsOfEldraine extends ExpansionSet { cards.add(new SetCardInfo("Solitary Sanctuary", 30, Rarity.UNCOMMON, mage.cards.s.SolitarySanctuary.class)); cards.add(new SetCardInfo("Soul-Guide Lantern", 251, Rarity.UNCOMMON, mage.cards.s.SoulGuideLantern.class)); cards.add(new SetCardInfo("Specter of Mortality", 107, Rarity.RARE, mage.cards.s.SpecterOfMortality.class)); + cards.add(new SetCardInfo("Spell Stutter", 69, Rarity.COMMON, mage.cards.s.SpellStutter.class)); cards.add(new SetCardInfo("Spellbook Vendor", 31, Rarity.RARE, mage.cards.s.SpellbookVendor.class)); cards.add(new SetCardInfo("Spellscorn Coven", 237, Rarity.UNCOMMON, mage.cards.s.SpellscornCoven.class)); cards.add(new SetCardInfo("Spiteful Hexmage", 108, Rarity.RARE, mage.cards.s.SpitefulHexmage.class));