diff --git a/Mage.Tests/src/test/java/org/mage/test/cards/abilities/keywords/CyclingTest.java b/Mage.Tests/src/test/java/org/mage/test/cards/abilities/keywords/CyclingTest.java index 06d35a74f8b..5e6e1fdc0cd 100644 --- a/Mage.Tests/src/test/java/org/mage/test/cards/abilities/keywords/CyclingTest.java +++ b/Mage.Tests/src/test/java/org/mage/test/cards/abilities/keywords/CyclingTest.java @@ -164,4 +164,20 @@ public class CyclingTest extends CardTestPlayerBase { assertGraveyardCount(playerA, "Akroma's Vengeance", 1); assertHandCount(playerA, 7); } + + + @Test + public void cycleShadowOfTheGrave(){ + addCard(Zone.HAND, playerA, "Darkwatch Elves", 1 ); + addCard(Zone.BATTLEFIELD, playerA, "Swamp", 20); + addCard(Zone.HAND, playerA, "Shadow of the Grave", 1); + + activateAbility(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Cycling"); + castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Shadow of the Grave"); + + setStopAt(1, PhaseStep.BEGIN_COMBAT); + execute(); + assertGraveyardCount(playerA, "Darkwatch Elves", 0); + assertHandCount(playerA, "Darkwatch Elves", 1); + } } diff --git a/Mage/src/main/java/mage/watchers/common/CardsCycledOrDiscardedThisTurnWatcher.java b/Mage/src/main/java/mage/watchers/common/CardsCycledOrDiscardedThisTurnWatcher.java index 1d9546605cd..cdee6623c1f 100644 --- a/Mage/src/main/java/mage/watchers/common/CardsCycledOrDiscardedThisTurnWatcher.java +++ b/Mage/src/main/java/mage/watchers/common/CardsCycledOrDiscardedThisTurnWatcher.java @@ -31,6 +31,7 @@ import java.util.HashMap; import java.util.Map; import java.util.Map.Entry; import java.util.UUID; + import mage.cards.Card; import mage.cards.Cards; import mage.cards.CardsImpl; @@ -61,12 +62,14 @@ public class CardsCycledOrDiscardedThisTurnWatcher extends Watcher { @Override public void watch(GameEvent event, Game game) { - if (event.getType() == GameEvent.EventType.CYCLED_CARD + if (event.getType() == GameEvent.EventType.PAY_CYCLE_COST || event.getType() == GameEvent.EventType.DISCARDED_CARD) { if (event.getPlayerId() != null) { Card card = game.getCard(event.getTargetId()); if (card != null) { - getCardsCycledOrDiscardedThisTurn(event.getPlayerId()).add(card); + Cards c = getCardsCycledOrDiscardedThisTurn(event.getPlayerId()); + c.add(card); + cycledOrDiscardedCardsThisTurn.put(event.getPlayerId(), c); } } }