diff --git a/Mage/src/main/java/mage/abilities/common/DiesAttachedTriggeredAbility.java b/Mage/src/main/java/mage/abilities/common/DiesAttachedTriggeredAbility.java index 5ec0bca313d..4e7c1cda0a4 100644 --- a/Mage/src/main/java/mage/abilities/common/DiesAttachedTriggeredAbility.java +++ b/Mage/src/main/java/mage/abilities/common/DiesAttachedTriggeredAbility.java @@ -81,6 +81,7 @@ public class DiesAttachedTriggeredAbility extends TriggeredAbilityImpl { && zEvent.getTargetId().equals(attachment.getAttachedTo())) { Permanent attachedTo = game.getPermanentOrLKIBattlefield(attachment.getAttachedTo()); if (attachedTo != null + && game.getState().getZone(attachedTo.getId()) == (Zone.GRAVEYARD) // Demonic Vigor && attachmentCard != null && attachment.getAttachedToZoneChangeCounter() == attachedTo.getZoneChangeCounter(game) && attachment.getZoneChangeCounter(game) == attachmentCard.getZoneChangeCounter(game)) { @@ -92,6 +93,7 @@ public class DiesAttachedTriggeredAbility extends TriggeredAbilityImpl { for (Effect effect : getEffects()) { if (zEvent.getTarget() != null) { effect.setValue("attachedTo", zEvent.getTarget()); + effect.setValue("zcc", zEvent.getTarget().getZoneChangeCounter(game) + 1); // zone change info from battlefield if (setTargetPointer == SetTargetPointer.ATTACHED_TO_CONTROLLER) { Permanent attachment = game.getPermanentOrLKIBattlefield(getSourceId()); if (attachment != null diff --git a/Mage/src/main/java/mage/abilities/effects/common/ReturnToHandAttachedEffect.java b/Mage/src/main/java/mage/abilities/effects/common/ReturnToHandAttachedEffect.java index 368788d3f28..0e39a35540b 100644 --- a/Mage/src/main/java/mage/abilities/effects/common/ReturnToHandAttachedEffect.java +++ b/Mage/src/main/java/mage/abilities/effects/common/ReturnToHandAttachedEffect.java @@ -1,5 +1,3 @@ - - package mage.abilities.effects.common; import mage.constants.Outcome; @@ -34,8 +32,9 @@ public class ReturnToHandAttachedEffect extends OneShotEffect { public boolean apply(Game game, Ability source) { Object object = getValue("attachedTo"); if (object instanceof Permanent) { - Card card = game.getCard(((Permanent)object).getId()); - if (card != null) { + Card card = game.getCard(((Permanent) object).getId()); + if (card != null + && getValue("zcc").equals(game.getState().getZoneChangeCounter(card.getId()))) { // Necrogenesis, etc. if (card.moveToZone(Zone.HAND, source.getSourceId(), game, false)) { return true; }