From 2e3ee82a7d17fc5b842bff7d25d2bb051aa9b357 Mon Sep 17 00:00:00 2001 From: theelk801 Date: Sun, 1 Sep 2024 10:58:08 -0400 Subject: [PATCH] [DSK] Implement Fear of Immobility --- .../src/mage/cards/f/FearOfImmobility.java | 72 +++++++++++++++++++ .../src/mage/sets/DuskmournHouseOfHorror.java | 1 + 2 files changed, 73 insertions(+) create mode 100644 Mage.Sets/src/mage/cards/f/FearOfImmobility.java diff --git a/Mage.Sets/src/mage/cards/f/FearOfImmobility.java b/Mage.Sets/src/mage/cards/f/FearOfImmobility.java new file mode 100644 index 00000000000..8a90c87ae58 --- /dev/null +++ b/Mage.Sets/src/mage/cards/f/FearOfImmobility.java @@ -0,0 +1,72 @@ +package mage.cards.f; + +import mage.MageInt; +import mage.abilities.Ability; +import mage.abilities.common.EntersBattlefieldTriggeredAbility; +import mage.abilities.effects.OneShotEffect; +import mage.abilities.effects.common.TapTargetEffect; +import mage.cards.CardImpl; +import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Outcome; +import mage.constants.SubType; +import mage.counters.CounterType; +import mage.game.Game; +import mage.game.permanent.Permanent; +import mage.target.common.TargetCreaturePermanent; + +import java.util.UUID; + +/** + * @author TheElk801 + */ +public final class FearOfImmobility extends CardImpl { + + public FearOfImmobility(UUID ownerId, CardSetInfo setInfo) { + super(ownerId, setInfo, new CardType[]{CardType.ENCHANTMENT, CardType.CREATURE}, "{4}{W}"); + + this.subtype.add(SubType.NIGHTMARE); + this.power = new MageInt(4); + this.toughness = new MageInt(4); + + // When Fear of Immobility enters, tap up to one target creature. If an opponent controls that creature, put a stun counter on it. + Ability ability = new EntersBattlefieldTriggeredAbility(new TapTargetEffect()); + ability.addEffect(new FearOfImmobilityEffect()); + ability.addTarget(new TargetCreaturePermanent(0, 1)); + this.addAbility(ability); + } + + private FearOfImmobility(final FearOfImmobility card) { + super(card); + } + + @Override + public FearOfImmobility copy() { + return new FearOfImmobility(this); + } +} + +class FearOfImmobilityEffect extends OneShotEffect { + + FearOfImmobilityEffect() { + super(Outcome.Benefit); + staticText = "If an opponent controls that creature, put a stun counter on it"; + } + + private FearOfImmobilityEffect(final FearOfImmobilityEffect effect) { + super(effect); + } + + @Override + public FearOfImmobilityEffect copy() { + return new FearOfImmobilityEffect(this); + } + + @Override + public boolean apply(Game game, Ability source) { + Permanent permanent = game.getPermanent(getTargetPointer().getFirst(game, source)); + return permanent != null + && game.getOpponents(source.getControllerId()).contains(permanent.getControllerId()) + && permanent.addCounters(CounterType.STUN.createInstance(), source, game); + } +} diff --git a/Mage.Sets/src/mage/sets/DuskmournHouseOfHorror.java b/Mage.Sets/src/mage/sets/DuskmournHouseOfHorror.java index 40c8770af04..fcc985d23ce 100644 --- a/Mage.Sets/src/mage/sets/DuskmournHouseOfHorror.java +++ b/Mage.Sets/src/mage/sets/DuskmournHouseOfHorror.java @@ -26,6 +26,7 @@ public final class DuskmournHouseOfHorror extends ExpansionSet { cards.add(new SetCardInfo("Disturbing Mirth", 212, Rarity.UNCOMMON, mage.cards.d.DisturbingMirth.class)); cards.add(new SetCardInfo("Doomsday Excruciator", 94, Rarity.RARE, mage.cards.d.DoomsdayExcruciator.class)); cards.add(new SetCardInfo("Enduring Tenacity", 95, Rarity.RARE, mage.cards.e.EnduringTenacity.class)); + cards.add(new SetCardInfo("Fear of Immobility", 10, Rarity.COMMON, mage.cards.f.FearOfImmobility.class)); cards.add(new SetCardInfo("Fear of Lost Teeth", 97, Rarity.COMMON, mage.cards.f.FearOfLostTeeth.class)); cards.add(new SetCardInfo("Fear of Missing Out", 136, Rarity.RARE, mage.cards.f.FearOfMissingOut.class)); cards.add(new SetCardInfo("Forest", 276, Rarity.LAND, mage.cards.basiclands.Forest.class, FULL_ART_BFZ_VARIOUS));