From 42bde03b2a7d9a3d27fb1d4d74585e8730d71754 Mon Sep 17 00:00:00 2001 From: theelk801 Date: Sun, 7 Dec 2025 14:04:07 -0500 Subject: [PATCH] [DSK] Implement Restricted Office // Lecture Hall --- .../cards/r/RestrictedOfficeLectureHall.java | 53 +++++++++++++++++++ .../src/mage/sets/DuskmournHouseOfHorror.java | 2 + 2 files changed, 55 insertions(+) create mode 100644 Mage.Sets/src/mage/cards/r/RestrictedOfficeLectureHall.java diff --git a/Mage.Sets/src/mage/cards/r/RestrictedOfficeLectureHall.java b/Mage.Sets/src/mage/cards/r/RestrictedOfficeLectureHall.java new file mode 100644 index 00000000000..587c27d6a14 --- /dev/null +++ b/Mage.Sets/src/mage/cards/r/RestrictedOfficeLectureHall.java @@ -0,0 +1,53 @@ +package mage.cards.r; + +import mage.abilities.common.SimpleStaticAbility; +import mage.abilities.common.UnlockThisDoorTriggeredAbility; +import mage.abilities.effects.common.DestroyAllEffect; +import mage.abilities.effects.common.continuous.GainAbilityControlledEffect; +import mage.abilities.keyword.HexproofAbility; +import mage.cards.CardSetInfo; +import mage.cards.RoomCard; +import mage.constants.ComparisonType; +import mage.constants.Duration; +import mage.filter.FilterPermanent; +import mage.filter.StaticFilters; +import mage.filter.common.FilterCreaturePermanent; +import mage.filter.predicate.mageobject.PowerPredicate; + +import java.util.UUID; + +/** + * @author TheElk801 + */ +public final class RestrictedOfficeLectureHall extends RoomCard { + + private static final FilterPermanent filter = new FilterCreaturePermanent("creatures with power 3 or greater"); + + static { + filter.add(new PowerPredicate(ComparisonType.MORE_THAN, 2)); + } + + public RestrictedOfficeLectureHall(UUID ownerId, CardSetInfo setInfo) { + super(ownerId, setInfo, "{2}{W}{W}", "{5}{U}{U}"); + + // Restricted Office + // When you unlock this door, destroy all creatures with power 3 or greater. + this.getLeftHalfCard().addAbility(new UnlockThisDoorTriggeredAbility(new DestroyAllEffect(filter), false, true)); + + // Lecture Hall + // Other permanents you control have hexproof. + this.getRightHalfCard().addAbility(new SimpleStaticAbility(new GainAbilityControlledEffect( + HexproofAbility.getInstance(), Duration.WhileOnBattlefield, + StaticFilters.FILTER_PERMANENTS, true + ))); + } + + private RestrictedOfficeLectureHall(final RestrictedOfficeLectureHall card) { + super(card); + } + + @Override + public RestrictedOfficeLectureHall copy() { + return new RestrictedOfficeLectureHall(this); + } +} diff --git a/Mage.Sets/src/mage/sets/DuskmournHouseOfHorror.java b/Mage.Sets/src/mage/sets/DuskmournHouseOfHorror.java index b3a865b8830..32f98eca9aa 100644 --- a/Mage.Sets/src/mage/sets/DuskmournHouseOfHorror.java +++ b/Mage.Sets/src/mage/sets/DuskmournHouseOfHorror.java @@ -296,6 +296,8 @@ public final class DuskmournHouseOfHorror extends ExpansionSet { cards.add(new SetCardInfo("Reluctant Role Model", 26, Rarity.RARE, mage.cards.r.ReluctantRoleModel.class, NON_FULL_USE_VARIOUS)); cards.add(new SetCardInfo("Reluctant Role Model", 289, Rarity.RARE, mage.cards.r.ReluctantRoleModel.class, NON_FULL_USE_VARIOUS)); cards.add(new SetCardInfo("Reluctant Role Model", 303, Rarity.RARE, mage.cards.r.ReluctantRoleModel.class, NON_FULL_USE_VARIOUS)); + cards.add(new SetCardInfo("Restricted Office // Lecture Hall", 342, Rarity.RARE, mage.cards.r.RestrictedOfficeLectureHall.class, NON_FULL_USE_VARIOUS)); + cards.add(new SetCardInfo("Restricted Office // Lecture Hall", 227, Rarity.RARE, mage.cards.r.RestrictedOfficeLectureHall.class, NON_FULL_USE_VARIOUS)); cards.add(new SetCardInfo("Resurrected Cultist", 115, Rarity.COMMON, mage.cards.r.ResurrectedCultist.class)); cards.add(new SetCardInfo("Rip, Spawn Hunter", 228, Rarity.RARE, mage.cards.r.RipSpawnHunter.class, NON_FULL_USE_VARIOUS)); cards.add(new SetCardInfo("Rip, Spawn Hunter", 362, Rarity.RARE, mage.cards.r.RipSpawnHunter.class, NON_FULL_USE_VARIOUS));