From 33f6c629c2f6028a6dfb4699b1abe5b230d9ff96 Mon Sep 17 00:00:00 2001 From: LevelX2 Date: Fri, 28 Apr 2017 11:18:26 +0200 Subject: [PATCH] * Shadow of the Grave - Some minor adjustments. --- Mage.Sets/src/mage/cards/s/ShadowOfTheGrave.java | 8 ++++---- .../CardsCycledOrDiscardedThisTurnWatcher.java | 16 ++++++---------- 2 files changed, 10 insertions(+), 14 deletions(-) diff --git a/Mage.Sets/src/mage/cards/s/ShadowOfTheGrave.java b/Mage.Sets/src/mage/cards/s/ShadowOfTheGrave.java index adea148f588..3ebf33a7426 100644 --- a/Mage.Sets/src/mage/cards/s/ShadowOfTheGrave.java +++ b/Mage.Sets/src/mage/cards/s/ShadowOfTheGrave.java @@ -84,13 +84,13 @@ class ShadowOfTheGraveEffect extends OneShotEffect { @Override public boolean apply(Game game, Ability source) { Player controller = game.getPlayer(source.getControllerId()); - CardsCycledOrDiscardedThisTurnWatcher watcher = (CardsCycledOrDiscardedThisTurnWatcher) game.getState().getWatchers().get("CardsCycledOrDiscardedThisTurnWatcher"); + CardsCycledOrDiscardedThisTurnWatcher watcher = (CardsCycledOrDiscardedThisTurnWatcher) game.getState() + .getWatchers().get(CardsCycledOrDiscardedThisTurnWatcher.class.getName()); if (controller != null && watcher != null) { for (Card card : watcher.getCardsCycledOrDiscardedThisTurn(controller.getId()).getCards(game)) { - if (card != null - && game.getState().getZone(card.getId()) == Zone.GRAVEYARD //must come from their graveyard - && card.getOwnerId().equals(controller.getId())) { //confirm ownership + if (game.getState().getZone(card.getId()) == Zone.GRAVEYARD //must come from their graveyard + && card.getOwnerId().equals(controller.getId())) { //confirm ownership, but it should not be possible to get not ownwd cards here controller.moveCardToHandWithInfo(card, source.getId(), game, true); } } diff --git a/Mage/src/main/java/mage/watchers/common/CardsCycledOrDiscardedThisTurnWatcher.java b/Mage/src/main/java/mage/watchers/common/CardsCycledOrDiscardedThisTurnWatcher.java index a4a8c29a12c..975ff721570 100644 --- a/Mage/src/main/java/mage/watchers/common/CardsCycledOrDiscardedThisTurnWatcher.java +++ b/Mage/src/main/java/mage/watchers/common/CardsCycledOrDiscardedThisTurnWatcher.java @@ -31,7 +31,6 @@ 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; @@ -50,28 +49,25 @@ public class CardsCycledOrDiscardedThisTurnWatcher extends Watcher { private final Map cycledOrDiscardedCardsThisTurn = new HashMap<>(); public CardsCycledOrDiscardedThisTurnWatcher() { - super("CardsCycledOrDiscardedThisTurnWatcher", WatcherScope.GAME); + super(CardsCycledOrDiscardedThisTurnWatcher.class.getName(), WatcherScope.GAME); } public CardsCycledOrDiscardedThisTurnWatcher(final CardsCycledOrDiscardedThisTurnWatcher watcher) { super(watcher); for (Entry entry : watcher.cycledOrDiscardedCardsThisTurn.entrySet()) { - cycledOrDiscardedCardsThisTurn.put(entry.getKey(), entry.getValue()); + cycledOrDiscardedCardsThisTurn.put(entry.getKey(), entry.getValue().copy()); } } @Override public void watch(GameEvent event, Game game) { - if (event.getType() == GameEvent.EventType.UNTAP_STEP_PRE) { - reset(); - } if (event.getType() == GameEvent.EventType.CYCLED_CARD || event.getType() == GameEvent.EventType.DISCARDED_CARD) { - UUID playerId = event.getPlayerId(); - if (playerId != null - && game.getCard(event.getTargetId()) != null) { + if (event.getPlayerId() != null) { Card card = game.getCard(event.getTargetId()); - getCardsCycledOrDiscardedThisTurn(playerId).add(card); + if (card != null) { + getCardsCycledOrDiscardedThisTurn(event.getPlayerId()).add(card); + } } } }