diff --git a/forge-game/src/main/java/forge/game/ability/effects/ChangeZoneAllEffect.java b/forge-game/src/main/java/forge/game/ability/effects/ChangeZoneAllEffect.java index 57c6a945fdf..4ed23fa7392 100644 --- a/forge-game/src/main/java/forge/game/ability/effects/ChangeZoneAllEffect.java +++ b/forge-game/src/main/java/forge/game/ability/effects/ChangeZoneAllEffect.java @@ -156,7 +156,7 @@ public class ChangeZoneAllEffect extends SpellAbilityEffect { // Auras without Candidates stay in their current location if (c.isAura()) { final SpellAbility saAura = c.getFirstAttachSpell(); - if (!saAura.getTargetRestrictions().hasCandidates(saAura, false)) { + if (saAura != null && !saAura.getTargetRestrictions().hasCandidates(saAura, false)) { continue; } } diff --git a/forge-game/src/main/java/forge/game/ability/effects/ChangeZoneEffect.java b/forge-game/src/main/java/forge/game/ability/effects/ChangeZoneEffect.java index fb6a0234b37..8db3539f502 100644 --- a/forge-game/src/main/java/forge/game/ability/effects/ChangeZoneEffect.java +++ b/forge-game/src/main/java/forge/game/ability/effects/ChangeZoneEffect.java @@ -555,9 +555,11 @@ public class ChangeZoneEffect extends SpellAbilityEffect { // location if (tgtC.isAura()) { final SpellAbility saAura = tgtC.getFirstAttachSpell(); - saAura.setActivatingPlayer(sa.getActivatingPlayer()); - if (!saAura.getTargetRestrictions().hasCandidates(saAura, false)) { - continue; + if (saAura != null) { + saAura.setActivatingPlayer(sa.getActivatingPlayer()); + if (!saAura.getTargetRestrictions().hasCandidates(saAura, false)) { + continue; + } } } diff --git a/forge-game/src/main/java/forge/game/card/Card.java b/forge-game/src/main/java/forge/game/card/Card.java index 84f0b25bc1b..fcba64e8b4c 100644 --- a/forge-game/src/main/java/forge/game/card/Card.java +++ b/forge-game/src/main/java/forge/game/card/Card.java @@ -2161,7 +2161,7 @@ public class Card extends GameEntity implements Comparable { */ public final SpellAbility getFirstAttachSpell() { for (final SpellAbility sa : getSpells()) { - if (sa.getApi() == ApiType.Attach) { + if (sa.getApi() == ApiType.Attach && !sa.isSuppressed()) { return sa; } } diff --git a/forge-gui/res/cardsfolder/d/dance_of_the_dead.txt b/forge-gui/res/cardsfolder/d/dance_of_the_dead.txt index 7985243fe70..0d4bb4497fa 100644 --- a/forge-gui/res/cardsfolder/d/dance_of_the_dead.txt +++ b/forge-gui/res/cardsfolder/d/dance_of_the_dead.txt @@ -3,7 +3,7 @@ ManaCost:1 B Types:Enchantment Aura K:Enchant creature card in a graveyard A:SP$ Attach | Cost$ 1 B | ValidTgts$ Creature | TgtZone$ Graveyard | AILogic$ Reanimate -T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self | Execute$ TrigReanimate | TriggerDescription$ When CARDNAME enters the battlefield, if it's on the battlefield, it loses "enchant creature card in a graveyard" and gains "enchant creature put onto the battlefield with CARDNAME." Put enchanted creature card onto the battlefield under your control and attach CARDNAME to it. +T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self | Execute$ TrigReanimate | TriggerDescription$ When CARDNAME enters the battlefield, if it's on the battlefield, it loses "enchant creature card in a graveyard" and gains "enchant creature put onto the battlefield with CARDNAME." Put enchanted creature card onto the battlefield tapped under your control and attach CARDNAME to it. SVar:TrigReanimate:DB$ ChangeZone | Origin$ Graveyard | Destination$ Battlefield | Defined$ Enchanted | RememberChanged$ True | GainControl$ True | Tapped$ True | SubAbility$ DBAnimate SVar:DBAnimate:DB$ Animate | Defined$ Self | OverwriteSpells$ True | Abilities$ NewAttach | Keywords$ Enchant creature put onto the battlefield with CARDNAME | RemoveKeywords$ Enchant creature card in a graveyard | Permanent$ True | SubAbility$ DBAttach SVar:DBAttach:DB$ Attach | Defined$ Remembered