From 792af6d3311f4287449d82256efa0f7adad41d8a Mon Sep 17 00:00:00 2001 From: jeffwadsworth Date: Wed, 27 Nov 2019 23:56:22 -0600 Subject: [PATCH] - Fixed #5854 --- Mage.Sets/src/mage/cards/w/WatcherForTomorrow.java | 9 +++++++-- .../common/LeavesBattlefieldTriggeredAbility.java | 1 - .../abilities/effects/common/HideawayPlayEffect.java | 11 +++++++++-- .../java/mage/abilities/keyword/HideawayAbility.java | 4 ++-- 4 files changed, 18 insertions(+), 7 deletions(-) diff --git a/Mage.Sets/src/mage/cards/w/WatcherForTomorrow.java b/Mage.Sets/src/mage/cards/w/WatcherForTomorrow.java index fed14663f50..a6751c12d3e 100644 --- a/Mage.Sets/src/mage/cards/w/WatcherForTomorrow.java +++ b/Mage.Sets/src/mage/cards/w/WatcherForTomorrow.java @@ -19,6 +19,7 @@ import mage.players.Player; import mage.util.CardUtil; import java.util.UUID; +import mage.game.permanent.Permanent; /** * @author TheElk801 @@ -72,11 +73,15 @@ class WatcherForTomorrowEffect extends OneShotEffect { if (player == null) { return false; } - ExileZone zone = game.getExile().getExileZone(CardUtil.getCardExileZoneId(game, source.getSourceId(), true)); + Permanent permanentLeftBattlefield = (Permanent) getValue("permanentLeftBattlefield"); + if (permanentLeftBattlefield == null) { + return false; + } + ExileZone zone = game.getExile().getExileZone(CardUtil.getExileZoneId(game, source.getSourceId(), permanentLeftBattlefield.getZoneChangeCounter(game))); if (zone == null) { return false; } Cards cards = new CardsImpl(zone.getCards(game)); return player.moveCards(cards, Zone.HAND, source, game); } -} \ No newline at end of file +} diff --git a/Mage/src/main/java/mage/abilities/common/LeavesBattlefieldTriggeredAbility.java b/Mage/src/main/java/mage/abilities/common/LeavesBattlefieldTriggeredAbility.java index bac71dfac13..df4cf2527eb 100644 --- a/Mage/src/main/java/mage/abilities/common/LeavesBattlefieldTriggeredAbility.java +++ b/Mage/src/main/java/mage/abilities/common/LeavesBattlefieldTriggeredAbility.java @@ -1,4 +1,3 @@ - package mage.abilities.common; import mage.abilities.effects.Effect; diff --git a/Mage/src/main/java/mage/abilities/effects/common/HideawayPlayEffect.java b/Mage/src/main/java/mage/abilities/effects/common/HideawayPlayEffect.java index 377fbcb8ee0..2aec1d0d7c7 100644 --- a/Mage/src/main/java/mage/abilities/effects/common/HideawayPlayEffect.java +++ b/Mage/src/main/java/mage/abilities/effects/common/HideawayPlayEffect.java @@ -9,6 +9,7 @@ import mage.cards.Card; import mage.constants.Outcome; import mage.game.ExileZone; import mage.game.Game; +import mage.game.permanent.Permanent; import mage.players.Player; import mage.util.CardUtil; @@ -34,8 +35,14 @@ public class HideawayPlayEffect extends OneShotEffect { @Override public boolean apply(Game game, Ability source) { - ExileZone zone = game.getExile().getExileZone(CardUtil.getCardExileZoneId(game, source)); - if (zone == null || zone.isEmpty()) { + ExileZone zone = null; + Permanent permanent = game.getPermanentOrLKIBattlefield(source.getSourceId()); + if (permanent != null) { + zone = game.getExile().getExileZone(CardUtil.getExileZoneId(game, source.getSourceId(), permanent.getZoneChangeCounter(game))); + } + + if (zone == null + || zone.isEmpty()) { return true; } Card card = zone.getCards(game).iterator().next(); diff --git a/Mage/src/main/java/mage/abilities/keyword/HideawayAbility.java b/Mage/src/main/java/mage/abilities/keyword/HideawayAbility.java index d22df10203b..8d1906594fc 100644 --- a/Mage/src/main/java/mage/abilities/keyword/HideawayAbility.java +++ b/Mage/src/main/java/mage/abilities/keyword/HideawayAbility.java @@ -1,4 +1,3 @@ - package mage.abilities.keyword; import mage.abilities.Ability; @@ -105,7 +104,8 @@ class HideawayExileEffect extends OneShotEffect { Card card = cards.get(target1.getFirstTarget(), game); if (card != null) { cards.remove(card); - controller.moveCardToExileWithInfo(card, CardUtil.getCardExileZoneId(game, source), + UUID exileId = CardUtil.getExileZoneId(game, source.getSourceId(), source.getSourceObjectZoneChangeCounter()); + controller.moveCardToExileWithInfo(card, exileId, "Hideaway (" + hideawaySource.getIdName() + ')', source.getSourceId(), game, Zone.LIBRARY, false); card.setFaceDown(true, game); }