From e557b7a04b76cf2743c9a7c44e9cec6daefb86ff Mon Sep 17 00:00:00 2001 From: Evan Kranzler Date: Sat, 27 Aug 2022 10:58:34 -0400 Subject: [PATCH] [DMU] Implemented Shadow Prophecy --- .../src/mage/cards/s/ShadowProphecy.java | 42 +++++++++++++++++++ Mage.Sets/src/mage/cards/s/ShoreUp.java | 2 + Mage.Sets/src/mage/sets/DominariaUnited.java | 1 + 3 files changed, 45 insertions(+) create mode 100644 Mage.Sets/src/mage/cards/s/ShadowProphecy.java diff --git a/Mage.Sets/src/mage/cards/s/ShadowProphecy.java b/Mage.Sets/src/mage/cards/s/ShadowProphecy.java new file mode 100644 index 0000000000..0be344f2f6 --- /dev/null +++ b/Mage.Sets/src/mage/cards/s/ShadowProphecy.java @@ -0,0 +1,42 @@ +package mage.cards.s; + +import mage.abilities.dynamicvalue.common.DomainValue; +import mage.abilities.effects.common.LookLibraryAndPickControllerEffect; +import mage.abilities.effects.common.LookLibraryControllerEffect; +import mage.abilities.effects.common.LoseLifeSourceControllerEffect; +import mage.abilities.hint.common.DomainHint; +import mage.cards.CardImpl; +import mage.cards.CardSetInfo; +import mage.constants.AbilityWord; +import mage.constants.CardType; + +import java.util.UUID; + +/** + * @author TheElk801 + */ +public final class ShadowProphecy extends CardImpl { + + public ShadowProphecy(UUID ownerId, CardSetInfo setInfo) { + super(ownerId, setInfo, new CardType[]{CardType.INSTANT}, "{2}{B}"); + + // Domain - Look at the top X cards of your library, where X is the number of basic land types among lands you control. Put up to two of them into your hand and the rest into your graveyard. You lose 2 life. + this.getSpellAbility().addEffect(new LookLibraryAndPickControllerEffect( + DomainValue.REGULAR, 2, + LookLibraryControllerEffect.PutCards.HAND, + LookLibraryControllerEffect.PutCards.GRAVEYARD + )); + this.getSpellAbility().addEffect(new LoseLifeSourceControllerEffect(2)); + this.getSpellAbility().setAbilityWord(AbilityWord.DOMAIN); + this.getSpellAbility().addHint(DomainHint.instance); + } + + private ShadowProphecy(final ShadowProphecy card) { + super(card); + } + + @Override + public ShadowProphecy copy() { + return new ShadowProphecy(this); + } +} diff --git a/Mage.Sets/src/mage/cards/s/ShoreUp.java b/Mage.Sets/src/mage/cards/s/ShoreUp.java index ef17682734..c211672673 100644 --- a/Mage.Sets/src/mage/cards/s/ShoreUp.java +++ b/Mage.Sets/src/mage/cards/s/ShoreUp.java @@ -1,5 +1,6 @@ package mage.cards.s; +import mage.abilities.effects.common.UntapTargetEffect; import mage.abilities.effects.common.continuous.BoostTargetEffect; import mage.abilities.effects.common.continuous.GainAbilityTargetEffect; import mage.abilities.keyword.HexproofAbility; @@ -26,6 +27,7 @@ public final class ShoreUp extends CardImpl { this.getSpellAbility().addEffect(new GainAbilityTargetEffect( HexproofAbility.getInstance(), Duration.EndOfTurn ).setText("and gains hexproof until end of turn")); + this.getSpellAbility().addEffect(new UntapTargetEffect("Untap it")); this.getSpellAbility().addTarget(new TargetControlledCreaturePermanent()); } diff --git a/Mage.Sets/src/mage/sets/DominariaUnited.java b/Mage.Sets/src/mage/sets/DominariaUnited.java index d024b20aa8..a5763ee386 100644 --- a/Mage.Sets/src/mage/sets/DominariaUnited.java +++ b/Mage.Sets/src/mage/sets/DominariaUnited.java @@ -160,6 +160,7 @@ public final class DominariaUnited extends ExpansionSet { cards.add(new SetCardInfo("Samite Herbalist", 31, Rarity.COMMON, mage.cards.s.SamiteHerbalist.class)); cards.add(new SetCardInfo("Scout the Wilderness", 176, Rarity.COMMON, mage.cards.s.ScoutTheWilderness.class)); cards.add(new SetCardInfo("Sengir Connoisseur", 104, Rarity.UNCOMMON, mage.cards.s.SengirConnoisseur.class)); + cards.add(new SetCardInfo("Shadow Prophecy", 105, Rarity.COMMON, mage.cards.s.ShadowProphecy.class)); cards.add(new SetCardInfo("Shalai's Acolyte", 33, Rarity.UNCOMMON, mage.cards.s.ShalaisAcolyte.class)); cards.add(new SetCardInfo("Sheoldred, the Apocalypse", 107, Rarity.MYTHIC, mage.cards.s.SheoldredTheApocalypse.class)); cards.add(new SetCardInfo("Shield-Wall Sentinel", 238, Rarity.COMMON, mage.cards.s.ShieldWallSentinel.class));