diff --git a/Mage.Sets/src/mage/cards/d/DefiledCryptCadaverLab.java b/Mage.Sets/src/mage/cards/d/DefiledCryptCadaverLab.java index 36759d80550..3029cc0fd6b 100644 --- a/Mage.Sets/src/mage/cards/d/DefiledCryptCadaverLab.java +++ b/Mage.Sets/src/mage/cards/d/DefiledCryptCadaverLab.java @@ -17,6 +17,7 @@ import java.util.UUID; * @author TheElk801 */ public final class DefiledCryptCadaverLab extends RoomCard { + public DefiledCryptCadaverLab(UUID ownerId, CardSetInfo setInfo) { super(ownerId, setInfo, "{3}{B}", "{B}"); diff --git a/Mage.Sets/src/mage/cards/d/DerelictAtticWidowsWalk.java b/Mage.Sets/src/mage/cards/d/DerelictAtticWidowsWalk.java new file mode 100644 index 00000000000..969eb49623f --- /dev/null +++ b/Mage.Sets/src/mage/cards/d/DerelictAtticWidowsWalk.java @@ -0,0 +1,52 @@ +package mage.cards.d; + +import mage.abilities.Ability; +import mage.abilities.common.AttacksAloneControlledTriggeredAbility; +import mage.abilities.common.UnlockThisDoorTriggeredAbility; +import mage.abilities.effects.common.DrawCardSourceControllerEffect; +import mage.abilities.effects.common.LoseLifeSourceControllerEffect; +import mage.abilities.effects.common.continuous.BoostTargetEffect; +import mage.abilities.effects.common.continuous.GainAbilityTargetEffect; +import mage.abilities.keyword.DeathtouchAbility; +import mage.cards.CardSetInfo; +import mage.cards.RoomCard; +import mage.filter.StaticFilters; + +import java.util.UUID; + +/** + * @author TheElk801 + */ +public final class DerelictAtticWidowsWalk extends RoomCard { + + public DerelictAtticWidowsWalk(UUID ownerId, CardSetInfo setInfo) { + super(ownerId, setInfo, "{2}{B}", "{3}{B}"); + + // Derelict Attic + // When you unlock this door, you draw two cards and you lose 2 life. + Ability ability = new UnlockThisDoorTriggeredAbility( + new DrawCardSourceControllerEffect(2, true), false, true + ); + ability.addEffect(new LoseLifeSourceControllerEffect(2).concatBy("and")); + this.getLeftHalfCard().addAbility(ability); + + // Widow's Walk + // Whenever a creature you control attacks alone, it gets +1/+0 and gains deathtouch until end of turn. + ability = new AttacksAloneControlledTriggeredAbility( + new BoostTargetEffect(1, 0).setText("it gets +1/+0"), + StaticFilters.FILTER_CONTROLLED_A_CREATURE, true, false + ); + ability.addEffect(new GainAbilityTargetEffect(DeathtouchAbility.getInstance()) + .setText("and gains deathtouch until end of turn")); + this.getRightHalfCard().addAbility(ability); + } + + private DerelictAtticWidowsWalk(final DerelictAtticWidowsWalk card) { + super(card); + } + + @Override + public DerelictAtticWidowsWalk copy() { + return new DerelictAtticWidowsWalk(this); + } +} diff --git a/Mage.Sets/src/mage/cards/d/DollmakersShopPorcelainGallery.java b/Mage.Sets/src/mage/cards/d/DollmakersShopPorcelainGallery.java index a92241f0385..1f264b2ade7 100644 --- a/Mage.Sets/src/mage/cards/d/DollmakersShopPorcelainGallery.java +++ b/Mage.Sets/src/mage/cards/d/DollmakersShopPorcelainGallery.java @@ -9,7 +9,9 @@ import mage.abilities.effects.common.continuous.SetBasePowerToughnessAllEffect; import mage.abilities.hint.ValueHint; import mage.cards.CardSetInfo; import mage.cards.RoomCard; -import mage.constants.*; +import mage.constants.Duration; +import mage.constants.SetTargetPointer; +import mage.constants.SubType; import mage.filter.StaticFilters; import mage.filter.common.FilterControlledCreaturePermanent; import mage.filter.predicate.Predicates; @@ -44,7 +46,7 @@ public final class DollmakersShopPorcelainGallery extends RoomCard { this.getRightHalfCard().addAbility(right); } - private DollmakersShopPorcelainGallery (final DollmakersShopPorcelainGallery card) { + private DollmakersShopPorcelainGallery(final DollmakersShopPorcelainGallery card) { super(card); } diff --git a/Mage.Sets/src/mage/cards/g/GlassworksShatteredYard.java b/Mage.Sets/src/mage/cards/g/GlassworksShatteredYard.java index abcb907136d..ad65477e7bd 100644 --- a/Mage.Sets/src/mage/cards/g/GlassworksShatteredYard.java +++ b/Mage.Sets/src/mage/cards/g/GlassworksShatteredYard.java @@ -16,6 +16,7 @@ import java.util.UUID; * @author TheElk801 */ public final class GlassworksShatteredYard extends RoomCard { + public GlassworksShatteredYard(UUID ownerId, CardSetInfo setInfo) { super(ownerId, setInfo, "{2}{R}", "{4}{R}"); diff --git a/Mage.Sets/src/mage/cards/g/GrandEntrywayElegantRotunda.java b/Mage.Sets/src/mage/cards/g/GrandEntrywayElegantRotunda.java index 8c2fd06117d..2df43f1745e 100644 --- a/Mage.Sets/src/mage/cards/g/GrandEntrywayElegantRotunda.java +++ b/Mage.Sets/src/mage/cards/g/GrandEntrywayElegantRotunda.java @@ -16,6 +16,7 @@ import java.util.UUID; * @author TheElk801 */ public final class GrandEntrywayElegantRotunda extends RoomCard { + public GrandEntrywayElegantRotunda(UUID ownerId, CardSetInfo setInfo) { super(ownerId, setInfo, "{1}{W}", "{2}{W}"); diff --git a/Mage.Sets/src/mage/cards/g/GreenhouseRicketyGazebo.java b/Mage.Sets/src/mage/cards/g/GreenhouseRicketyGazebo.java index 6528755f9c5..f91689a14c9 100644 --- a/Mage.Sets/src/mage/cards/g/GreenhouseRicketyGazebo.java +++ b/Mage.Sets/src/mage/cards/g/GreenhouseRicketyGazebo.java @@ -18,6 +18,7 @@ import java.util.UUID; * @author TheElk801 */ public final class GreenhouseRicketyGazebo extends RoomCard { + public GreenhouseRicketyGazebo(UUID ownerId, CardSetInfo setInfo) { super(ownerId, setInfo, "{2}{G}", "{3}{G}"); diff --git a/Mage.Sets/src/mage/cards/m/MeatLockerDrownedDiner.java b/Mage.Sets/src/mage/cards/m/MeatLockerDrownedDiner.java index 0da895ce453..32bd8fcfc08 100644 --- a/Mage.Sets/src/mage/cards/m/MeatLockerDrownedDiner.java +++ b/Mage.Sets/src/mage/cards/m/MeatLockerDrownedDiner.java @@ -16,6 +16,7 @@ import java.util.UUID; * @author TheElk801 */ public final class MeatLockerDrownedDiner extends RoomCard { + public MeatLockerDrownedDiner(UUID ownerId, CardSetInfo setInfo) { super(ownerId, setInfo, "{2}{U}", "{3}{U}{U}"); diff --git a/Mage.Sets/src/mage/cards/m/MolderingGymWeightRoom.java b/Mage.Sets/src/mage/cards/m/MolderingGymWeightRoom.java index 0460d7f8d01..298ffeede31 100644 --- a/Mage.Sets/src/mage/cards/m/MolderingGymWeightRoom.java +++ b/Mage.Sets/src/mage/cards/m/MolderingGymWeightRoom.java @@ -15,6 +15,7 @@ import java.util.UUID; * @author TheElk801 */ public final class MolderingGymWeightRoom extends RoomCard { + public MolderingGymWeightRoom(UUID ownerId, CardSetInfo setInfo) { super(ownerId, setInfo, "{2}{G}", "{5}{G}"); diff --git a/Mage.Sets/src/mage/cards/s/SurgicalSuiteHospitalRoom.java b/Mage.Sets/src/mage/cards/s/SurgicalSuiteHospitalRoom.java index 5d8472facc5..962e1feb9d8 100644 --- a/Mage.Sets/src/mage/cards/s/SurgicalSuiteHospitalRoom.java +++ b/Mage.Sets/src/mage/cards/s/SurgicalSuiteHospitalRoom.java @@ -18,10 +18,10 @@ import mage.target.common.TargetCardInYourGraveyard; import java.util.UUID; /** - * * @author oscscull */ public final class SurgicalSuiteHospitalRoom extends RoomCard { + private static final FilterCard filter = new FilterCreatureCard( "creature card with mana value 3 or less from your graveyard"); diff --git a/Mage.Sets/src/mage/cards/t/TicketBoothTunnelOfHate.java b/Mage.Sets/src/mage/cards/t/TicketBoothTunnelOfHate.java index 11e530fe261..8eff7e5a755 100644 --- a/Mage.Sets/src/mage/cards/t/TicketBoothTunnelOfHate.java +++ b/Mage.Sets/src/mage/cards/t/TicketBoothTunnelOfHate.java @@ -16,6 +16,7 @@ import java.util.UUID; * @author TheElk801 */ public final class TicketBoothTunnelOfHate extends RoomCard { + public TicketBoothTunnelOfHate(UUID ownerId, CardSetInfo setInfo) { super(ownerId, setInfo, "{2}{R}", "{4}{R}{R}"); diff --git a/Mage.Sets/src/mage/cards/u/UnderwaterTunnelSlimyAquarium.java b/Mage.Sets/src/mage/cards/u/UnderwaterTunnelSlimyAquarium.java index 35a06ae9f41..93331c50117 100644 --- a/Mage.Sets/src/mage/cards/u/UnderwaterTunnelSlimyAquarium.java +++ b/Mage.Sets/src/mage/cards/u/UnderwaterTunnelSlimyAquarium.java @@ -13,6 +13,7 @@ import java.util.UUID; * @author TheElk801 */ public final class UnderwaterTunnelSlimyAquarium extends RoomCard { + public UnderwaterTunnelSlimyAquarium(UUID ownerId, CardSetInfo setInfo) { super(ownerId, setInfo, "{U}", "{3}{U}"); diff --git a/Mage.Sets/src/mage/sets/DuskmournHouseOfHorror.java b/Mage.Sets/src/mage/sets/DuskmournHouseOfHorror.java index b478e35be23..e5bde23ca75 100644 --- a/Mage.Sets/src/mage/sets/DuskmournHouseOfHorror.java +++ b/Mage.Sets/src/mage/sets/DuskmournHouseOfHorror.java @@ -76,6 +76,7 @@ public final class DuskmournHouseOfHorror extends ExpansionSet { 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("Derelict Attic // Widow's Walk", 93, Rarity.COMMON, mage.cards.d.DerelictAtticWidowsWalk.class)); cards.add(new SetCardInfo("Dissection Tools", 245, Rarity.RARE, mage.cards.d.DissectionTools.class, NON_FULL_USE_VARIOUS)); cards.add(new SetCardInfo("Dissection Tools", 385, Rarity.RARE, mage.cards.d.DissectionTools.class, NON_FULL_USE_VARIOUS)); cards.add(new SetCardInfo("Disturbing Mirth", 212, Rarity.UNCOMMON, mage.cards.d.DisturbingMirth.class)); diff --git a/Utils/cardSplitClass.tmpl b/Utils/cardSplitClass.tmpl index c463f18794c..bea55bfc800 100644 --- a/Utils/cardSplitClass.tmpl +++ b/Utils/cardSplitClass.tmpl @@ -12,6 +12,7 @@ import mage.constants.SpellAbilityType; * @author [=$author=] */ public final class [=$className=] extends RoomCard { + public [=$className=](UUID ownerId, CardSetInfo setInfo) { super(ownerId, setInfo, "[=$manaCost=]"); [= if ($power || $power eq 0) {