diff --git a/Mage.Sets/src/mage/cards/g/GhostlyFlicker.java b/Mage.Sets/src/mage/cards/g/GhostlyFlicker.java index 53a00635b03..358697c079b 100644 --- a/Mage.Sets/src/mage/cards/g/GhostlyFlicker.java +++ b/Mage.Sets/src/mage/cards/g/GhostlyFlicker.java @@ -110,7 +110,14 @@ class GhostlyFlickerEffect extends OneShotEffect { } controller.moveCardsToExile(toExile, source, game, true, exileId, sourceObject.getIdName()); game.applyEffects(); - controller.moveCards(game.getExile().getExileZone(exileId).getCards(game), Zone.BATTLEFIELD, source, game); + Set toBattlefield = new HashSet<>(); + for (Card card : toExile) { + Zone currentZone = game.getState().getZone(card.getId()); + if (!Zone.BATTLEFIELD.equals(currentZone) && Zone.isPublicZone(currentZone)) { + toBattlefield.add(game.getCard(card.getId())); + } + } + controller.moveCards(toBattlefield, Zone.BATTLEFIELD, source, game); return true; } return false; diff --git a/Mage/src/main/java/mage/constants/Zone.java b/Mage/src/main/java/mage/constants/Zone.java index f9718238001..618f58b4aad 100644 --- a/Mage/src/main/java/mage/constants/Zone.java +++ b/Mage/src/main/java/mage/constants/Zone.java @@ -47,4 +47,7 @@ public enum Zone { return super.toString(); } + public static boolean isPublicZone(Zone zone) { + return GRAVEYARD.equals(zone) || BATTLEFIELD.equals(zone) || STACK.equals(zone) || EXILED.equals(zone) || COMMAND.equals(zone); + } }