From 1901058a731e060d376266217ee9b267ba02bb8c Mon Sep 17 00:00:00 2001 From: theelk801 Date: Sun, 7 Dec 2025 14:47:32 -0500 Subject: [PATCH] [DSK] Implement Defiled Crypt // Cadaver Lab --- .../mage/cards/d/DefiledCryptCadaverLab.java | 44 +++++++++++++++++++ .../src/mage/sets/DuskmournHouseOfHorror.java | 1 + 2 files changed, 45 insertions(+) create mode 100644 Mage.Sets/src/mage/cards/d/DefiledCryptCadaverLab.java diff --git a/Mage.Sets/src/mage/cards/d/DefiledCryptCadaverLab.java b/Mage.Sets/src/mage/cards/d/DefiledCryptCadaverLab.java new file mode 100644 index 00000000000..36759d80550 --- /dev/null +++ b/Mage.Sets/src/mage/cards/d/DefiledCryptCadaverLab.java @@ -0,0 +1,44 @@ +package mage.cards.d; + +import mage.abilities.Ability; +import mage.abilities.common.CardsLeaveGraveyardTriggeredAbility; +import mage.abilities.common.UnlockThisDoorTriggeredAbility; +import mage.abilities.effects.common.CreateTokenEffect; +import mage.abilities.effects.common.ReturnFromGraveyardToHandTargetEffect; +import mage.cards.CardSetInfo; +import mage.cards.RoomCard; +import mage.filter.StaticFilters; +import mage.game.permanent.token.HorrorEnchantmentCreatureToken; +import mage.target.common.TargetCardInYourGraveyard; + +import java.util.UUID; + +/** + * @author TheElk801 + */ +public final class DefiledCryptCadaverLab extends RoomCard { + public DefiledCryptCadaverLab(UUID ownerId, CardSetInfo setInfo) { + super(ownerId, setInfo, "{3}{B}", "{B}"); + + // Defiled Crypt + // Whenever one or more cards leave your graveyard, create a 2/2 black Horror enchantment creature token. This ability triggers only once each turn. + this.getLeftHalfCard().addAbility(new CardsLeaveGraveyardTriggeredAbility( + new CreateTokenEffect(new HorrorEnchantmentCreatureToken()) + ).setTriggersLimitEachTurn(1)); + + // Cadaver Lab + // When you unlock this door, return target creature card from your graveyard to your hand. + Ability ability = new UnlockThisDoorTriggeredAbility(new ReturnFromGraveyardToHandTargetEffect(), false, false); + ability.addTarget(new TargetCardInYourGraveyard(StaticFilters.FILTER_CARD_CREATURE_YOUR_GRAVEYARD)); + this.getRightHalfCard().addAbility(ability); + } + + private DefiledCryptCadaverLab(final DefiledCryptCadaverLab card) { + super(card); + } + + @Override + public DefiledCryptCadaverLab copy() { + return new DefiledCryptCadaverLab(this); + } +} diff --git a/Mage.Sets/src/mage/sets/DuskmournHouseOfHorror.java b/Mage.Sets/src/mage/sets/DuskmournHouseOfHorror.java index 56e70d16488..b478e35be23 100644 --- a/Mage.Sets/src/mage/sets/DuskmournHouseOfHorror.java +++ b/Mage.Sets/src/mage/sets/DuskmournHouseOfHorror.java @@ -73,6 +73,7 @@ public final class DuskmournHouseOfHorror extends ExpansionSet { cards.add(new SetCardInfo("Dazzling Theater // Prop Room", 3, Rarity.RARE, mage.cards.d.DazzlingTheaterPropRoom.class, NON_FULL_USE_VARIOUS)); cards.add(new SetCardInfo("Dazzling Theater // Prop Room", 334, Rarity.RARE, mage.cards.d.DazzlingTheaterPropRoom.class, NON_FULL_USE_VARIOUS)); cards.add(new SetCardInfo("Defiant Survivor", 175, Rarity.UNCOMMON, mage.cards.d.DefiantSurvivor.class)); + cards.add(new SetCardInfo("Defiled Crypt // Cadaver Lab", 91, Rarity.UNCOMMON, mage.cards.d.DefiledCryptCadaverLab.class)); cards.add(new SetCardInfo("Demonic Counsel", 310, Rarity.RARE, mage.cards.d.DemonicCounsel.class, NON_FULL_USE_VARIOUS)); cards.add(new SetCardInfo("Demonic Counsel", 92, Rarity.RARE, mage.cards.d.DemonicCounsel.class, NON_FULL_USE_VARIOUS)); cards.add(new SetCardInfo("Dissection Tools", 245, Rarity.RARE, mage.cards.d.DissectionTools.class, NON_FULL_USE_VARIOUS));