From b01b5aa24de5cd87a524ea748fd25582a6c3ce53 Mon Sep 17 00:00:00 2001 From: Susucre <34709007+Susucre@users.noreply.github.com> Date: Sat, 6 Jul 2024 18:28:28 +0200 Subject: [PATCH] implement [DSK] Fear of Missing Out --- .../src/mage/cards/f/FearOfMissingOut.java | 60 +++++++++++++++++++ .../src/mage/sets/DuskmournHouseOfHorror.java | 1 + 2 files changed, 61 insertions(+) create mode 100644 Mage.Sets/src/mage/cards/f/FearOfMissingOut.java diff --git a/Mage.Sets/src/mage/cards/f/FearOfMissingOut.java b/Mage.Sets/src/mage/cards/f/FearOfMissingOut.java new file mode 100644 index 00000000000..863e38cab8e --- /dev/null +++ b/Mage.Sets/src/mage/cards/f/FearOfMissingOut.java @@ -0,0 +1,60 @@ +package mage.cards.f; + +import mage.MageInt; +import mage.abilities.Ability; +import mage.abilities.common.AttacksFirstTimeTriggeredAbility; +import mage.abilities.common.EntersBattlefieldTriggeredAbility; +import mage.abilities.condition.common.DeliriumCondition; +import mage.abilities.decorator.ConditionalInterveningIfTriggeredAbility; +import mage.abilities.effects.common.AdditionalCombatPhaseEffect; +import mage.abilities.effects.common.DrawCardSourceControllerEffect; +import mage.abilities.effects.common.UntapTargetEffect; +import mage.abilities.effects.common.discard.DiscardControllerEffect; +import mage.abilities.hint.common.CardTypesInGraveyardHint; +import mage.cards.CardImpl; +import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.SubType; +import mage.target.common.TargetCreaturePermanent; + +import java.util.UUID; + +/** + * @author Susucr + */ +public final class FearOfMissingOut extends CardImpl { + + public FearOfMissingOut(UUID ownerId, CardSetInfo setInfo) { + super(ownerId, setInfo, new CardType[]{CardType.ENCHANTMENT, CardType.CREATURE}, "{1}{R}"); + + this.subtype.add(SubType.NIGHTMARE); + this.power = new MageInt(2); + this.toughness = new MageInt(3); + + // When Fear of Missing Out enters, discard a card, then draw a card. + Ability ability = new EntersBattlefieldTriggeredAbility(new DiscardControllerEffect(1)); + ability.addEffect(new DrawCardSourceControllerEffect(1).concatBy(", then")); + this.addAbility(ability); + + // Delirium -- Whenever Fear of Missing Out attacks for the first time each turn, if there are four or more card types among cards in your graveyard, untap target creature. After this phase, there is an additional combat phase. + ability = new ConditionalInterveningIfTriggeredAbility( + new AttacksFirstTimeTriggeredAbility(new UntapTargetEffect(), false), + DeliriumCondition.instance, "Delirium — Whenever {this} attacks for the first time each turn, " + + "if there are four or more card types among cards in your graveyard, untap target creature. " + + "After this phase, there is an additional combat phase." + ); + ability.addTarget(new TargetCreaturePermanent()); + ability.addEffect(new AdditionalCombatPhaseEffect()); + ability.addHint(CardTypesInGraveyardHint.YOU); + this.addAbility(ability); + } + + private FearOfMissingOut(final FearOfMissingOut card) { + super(card); + } + + @Override + public FearOfMissingOut copy() { + return new FearOfMissingOut(this); + } +} diff --git a/Mage.Sets/src/mage/sets/DuskmournHouseOfHorror.java b/Mage.Sets/src/mage/sets/DuskmournHouseOfHorror.java index 752a54a5162..4f222b037f2 100644 --- a/Mage.Sets/src/mage/sets/DuskmournHouseOfHorror.java +++ b/Mage.Sets/src/mage/sets/DuskmournHouseOfHorror.java @@ -24,6 +24,7 @@ public final class DuskmournHouseOfHorror extends ExpansionSet { cards.add(new SetCardInfo("Cursed Recording", 131, Rarity.RARE, mage.cards.c.CursedRecording.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 Missing Out", 136, Rarity.RARE, mage.cards.f.FearOfMissingOut.class)); cards.add(new SetCardInfo("Forest", 276, Rarity.LAND, mage.cards.basiclands.Forest.class, NON_FULL_USE_VARIOUS)); cards.add(new SetCardInfo("Island", 273, Rarity.LAND, mage.cards.basiclands.Island.class, NON_FULL_USE_VARIOUS)); cards.add(new SetCardInfo("Leyline of Hope", 18, Rarity.RARE, mage.cards.l.LeylineOfHope.class));