From f0bf3285bb247549eb086a5f45290e799c299fa1 Mon Sep 17 00:00:00 2001 From: Jeff Wadsworth Date: Mon, 4 Oct 2021 17:32:10 -0500 Subject: [PATCH] - Issue #8352 --- Mage.Sets/src/mage/cards/p/PraetorsGrasp.java | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) diff --git a/Mage.Sets/src/mage/cards/p/PraetorsGrasp.java b/Mage.Sets/src/mage/cards/p/PraetorsGrasp.java index 35b78ff8149..db5e73c7870 100644 --- a/Mage.Sets/src/mage/cards/p/PraetorsGrasp.java +++ b/Mage.Sets/src/mage/cards/p/PraetorsGrasp.java @@ -71,10 +71,13 @@ class PraetorsGraspEffect extends OneShotEffect { if (controller.searchLibrary(target, source, game, opponent.getId())) { UUID targetId = target.getFirstTarget(); Card card = opponent.getLibrary().getCard(targetId, game); - UUID exileId = CardUtil.getExileZoneId(game, source.getSourceId(), - source.getSourceObjectZoneChangeCounter()); - if (card != null - && exileId != null) { + if (card == null) { + return false; + } + // account for card going into exile from the library + final int zcc = game.getState().getZoneChangeCounter(card.getId()) + 1; + UUID exileId = CardUtil.getExileZoneId(card.getId().toString() + zcc, game); + if (exileId != null) { game.informPlayers(controller.getLogName() + " moves the searched " + "card face down to exile"); card.moveToExile(exileId, sourceObject.getIdName(), source, game); @@ -120,14 +123,15 @@ class PraetorsGraspPlayEffect extends AsThoughEffectImpl { if (objectId.equals(cardId) && affectedControllerId.equals(source.getControllerId())) { Player controller = game.getPlayer(source.getControllerId()); - UUID exileId = CardUtil.getExileZoneId(game, source.getSourceId(), - source.getSourceObjectZoneChangeCounter()); + UUID exileId = CardUtil.getExileZoneId(cardId.toString() + game.getState().getZoneChangeCounter(cardId), game); if (exileId != null && controller != null) { ExileZone exileZone = game.getExile().getExileZone(exileId); if (exileZone != null && exileZone.contains(cardId)) { return true; + } else { + discard(); } } } @@ -166,8 +170,7 @@ class PraetorsGraspRevealEffect extends AsThoughEffectImpl { if (objectId.equals(cardId) && affectedControllerId.equals(source.getControllerId())) { MageObject sourceObject = source.getSourceObject(game); - UUID exileId = CardUtil.getExileZoneId(game, source.getSourceId(), - source.getSourceObjectZoneChangeCounter()); + UUID exileId = CardUtil.getExileZoneId(cardId.toString() + game.getState().getZoneChangeCounter(cardId), game); if (exileId != null && sourceObject != null) { ExileZone exileZone = game.getExile().getExileZone(exileId);