mirror of
https://github.com/magefree/mage.git
synced 2025-12-20 02:30:08 -08:00
[DSK] Implement Derelict Attic // Widow's Walk
This commit is contained in:
parent
1901058a73
commit
565520d1d8
13 changed files with 67 additions and 3 deletions
|
|
@ -17,6 +17,7 @@ import java.util.UUID;
|
||||||
* @author TheElk801
|
* @author TheElk801
|
||||||
*/
|
*/
|
||||||
public final class DefiledCryptCadaverLab extends RoomCard {
|
public final class DefiledCryptCadaverLab extends RoomCard {
|
||||||
|
|
||||||
public DefiledCryptCadaverLab(UUID ownerId, CardSetInfo setInfo) {
|
public DefiledCryptCadaverLab(UUID ownerId, CardSetInfo setInfo) {
|
||||||
super(ownerId, setInfo, "{3}{B}", "{B}");
|
super(ownerId, setInfo, "{3}{B}", "{B}");
|
||||||
|
|
||||||
|
|
|
||||||
52
Mage.Sets/src/mage/cards/d/DerelictAtticWidowsWalk.java
Normal file
52
Mage.Sets/src/mage/cards/d/DerelictAtticWidowsWalk.java
Normal file
|
|
@ -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);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -9,7 +9,9 @@ import mage.abilities.effects.common.continuous.SetBasePowerToughnessAllEffect;
|
||||||
import mage.abilities.hint.ValueHint;
|
import mage.abilities.hint.ValueHint;
|
||||||
import mage.cards.CardSetInfo;
|
import mage.cards.CardSetInfo;
|
||||||
import mage.cards.RoomCard;
|
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.StaticFilters;
|
||||||
import mage.filter.common.FilterControlledCreaturePermanent;
|
import mage.filter.common.FilterControlledCreaturePermanent;
|
||||||
import mage.filter.predicate.Predicates;
|
import mage.filter.predicate.Predicates;
|
||||||
|
|
@ -44,7 +46,7 @@ public final class DollmakersShopPorcelainGallery extends RoomCard {
|
||||||
this.getRightHalfCard().addAbility(right);
|
this.getRightHalfCard().addAbility(right);
|
||||||
}
|
}
|
||||||
|
|
||||||
private DollmakersShopPorcelainGallery (final DollmakersShopPorcelainGallery card) {
|
private DollmakersShopPorcelainGallery(final DollmakersShopPorcelainGallery card) {
|
||||||
super(card);
|
super(card);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -16,6 +16,7 @@ import java.util.UUID;
|
||||||
* @author TheElk801
|
* @author TheElk801
|
||||||
*/
|
*/
|
||||||
public final class GlassworksShatteredYard extends RoomCard {
|
public final class GlassworksShatteredYard extends RoomCard {
|
||||||
|
|
||||||
public GlassworksShatteredYard(UUID ownerId, CardSetInfo setInfo) {
|
public GlassworksShatteredYard(UUID ownerId, CardSetInfo setInfo) {
|
||||||
super(ownerId, setInfo, "{2}{R}", "{4}{R}");
|
super(ownerId, setInfo, "{2}{R}", "{4}{R}");
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -16,6 +16,7 @@ import java.util.UUID;
|
||||||
* @author TheElk801
|
* @author TheElk801
|
||||||
*/
|
*/
|
||||||
public final class GrandEntrywayElegantRotunda extends RoomCard {
|
public final class GrandEntrywayElegantRotunda extends RoomCard {
|
||||||
|
|
||||||
public GrandEntrywayElegantRotunda(UUID ownerId, CardSetInfo setInfo) {
|
public GrandEntrywayElegantRotunda(UUID ownerId, CardSetInfo setInfo) {
|
||||||
super(ownerId, setInfo, "{1}{W}", "{2}{W}");
|
super(ownerId, setInfo, "{1}{W}", "{2}{W}");
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -18,6 +18,7 @@ import java.util.UUID;
|
||||||
* @author TheElk801
|
* @author TheElk801
|
||||||
*/
|
*/
|
||||||
public final class GreenhouseRicketyGazebo extends RoomCard {
|
public final class GreenhouseRicketyGazebo extends RoomCard {
|
||||||
|
|
||||||
public GreenhouseRicketyGazebo(UUID ownerId, CardSetInfo setInfo) {
|
public GreenhouseRicketyGazebo(UUID ownerId, CardSetInfo setInfo) {
|
||||||
super(ownerId, setInfo, "{2}{G}", "{3}{G}");
|
super(ownerId, setInfo, "{2}{G}", "{3}{G}");
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -16,6 +16,7 @@ import java.util.UUID;
|
||||||
* @author TheElk801
|
* @author TheElk801
|
||||||
*/
|
*/
|
||||||
public final class MeatLockerDrownedDiner extends RoomCard {
|
public final class MeatLockerDrownedDiner extends RoomCard {
|
||||||
|
|
||||||
public MeatLockerDrownedDiner(UUID ownerId, CardSetInfo setInfo) {
|
public MeatLockerDrownedDiner(UUID ownerId, CardSetInfo setInfo) {
|
||||||
super(ownerId, setInfo, "{2}{U}", "{3}{U}{U}");
|
super(ownerId, setInfo, "{2}{U}", "{3}{U}{U}");
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -15,6 +15,7 @@ import java.util.UUID;
|
||||||
* @author TheElk801
|
* @author TheElk801
|
||||||
*/
|
*/
|
||||||
public final class MolderingGymWeightRoom extends RoomCard {
|
public final class MolderingGymWeightRoom extends RoomCard {
|
||||||
|
|
||||||
public MolderingGymWeightRoom(UUID ownerId, CardSetInfo setInfo) {
|
public MolderingGymWeightRoom(UUID ownerId, CardSetInfo setInfo) {
|
||||||
super(ownerId, setInfo, "{2}{G}", "{5}{G}");
|
super(ownerId, setInfo, "{2}{G}", "{5}{G}");
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -18,10 +18,10 @@ import mage.target.common.TargetCardInYourGraveyard;
|
||||||
import java.util.UUID;
|
import java.util.UUID;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
|
||||||
* @author oscscull
|
* @author oscscull
|
||||||
*/
|
*/
|
||||||
public final class SurgicalSuiteHospitalRoom extends RoomCard {
|
public final class SurgicalSuiteHospitalRoom extends RoomCard {
|
||||||
|
|
||||||
private static final FilterCard filter = new FilterCreatureCard(
|
private static final FilterCard filter = new FilterCreatureCard(
|
||||||
"creature card with mana value 3 or less from your graveyard");
|
"creature card with mana value 3 or less from your graveyard");
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -16,6 +16,7 @@ import java.util.UUID;
|
||||||
* @author TheElk801
|
* @author TheElk801
|
||||||
*/
|
*/
|
||||||
public final class TicketBoothTunnelOfHate extends RoomCard {
|
public final class TicketBoothTunnelOfHate extends RoomCard {
|
||||||
|
|
||||||
public TicketBoothTunnelOfHate(UUID ownerId, CardSetInfo setInfo) {
|
public TicketBoothTunnelOfHate(UUID ownerId, CardSetInfo setInfo) {
|
||||||
super(ownerId, setInfo, "{2}{R}", "{4}{R}{R}");
|
super(ownerId, setInfo, "{2}{R}", "{4}{R}{R}");
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -13,6 +13,7 @@ import java.util.UUID;
|
||||||
* @author TheElk801
|
* @author TheElk801
|
||||||
*/
|
*/
|
||||||
public final class UnderwaterTunnelSlimyAquarium extends RoomCard {
|
public final class UnderwaterTunnelSlimyAquarium extends RoomCard {
|
||||||
|
|
||||||
public UnderwaterTunnelSlimyAquarium(UUID ownerId, CardSetInfo setInfo) {
|
public UnderwaterTunnelSlimyAquarium(UUID ownerId, CardSetInfo setInfo) {
|
||||||
super(ownerId, setInfo, "{U}", "{3}{U}");
|
super(ownerId, setInfo, "{U}", "{3}{U}");
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -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("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", 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("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", 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("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));
|
cards.add(new SetCardInfo("Disturbing Mirth", 212, Rarity.UNCOMMON, mage.cards.d.DisturbingMirth.class));
|
||||||
|
|
|
||||||
|
|
@ -12,6 +12,7 @@ import mage.constants.SpellAbilityType;
|
||||||
* @author [=$author=]
|
* @author [=$author=]
|
||||||
*/
|
*/
|
||||||
public final class [=$className=] extends RoomCard {
|
public final class [=$className=] extends RoomCard {
|
||||||
|
|
||||||
public [=$className=](UUID ownerId, CardSetInfo setInfo) {
|
public [=$className=](UUID ownerId, CardSetInfo setInfo) {
|
||||||
super(ownerId, setInfo, "[=$manaCost=]");
|
super(ownerId, setInfo, "[=$manaCost=]");
|
||||||
[= if ($power || $power eq 0) {
|
[= if ($power || $power eq 0) {
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue