From a9ba34395f7fc992b30ec63d12453974c84e1e52 Mon Sep 17 00:00:00 2001 From: LevelX2 Date: Tue, 23 Jun 2015 11:27:30 +0200 Subject: [PATCH] Fixed ShuffleIntoLibrarySourceEffect not working for permanent objects. --- .../ShuffleIntoLibrarySourceEffect.java | 30 ++++++++++++++----- 1 file changed, 22 insertions(+), 8 deletions(-) diff --git a/Mage/src/mage/abilities/effects/common/ShuffleIntoLibrarySourceEffect.java b/Mage/src/mage/abilities/effects/common/ShuffleIntoLibrarySourceEffect.java index 22f8bf9f667..5310e509388 100644 --- a/Mage/src/mage/abilities/effects/common/ShuffleIntoLibrarySourceEffect.java +++ b/Mage/src/mage/abilities/effects/common/ShuffleIntoLibrarySourceEffect.java @@ -28,12 +28,14 @@ package mage.abilities.effects.common; +import mage.MageObject; import mage.abilities.Ability; import mage.abilities.effects.OneShotEffect; import mage.cards.Card; import mage.constants.Outcome; import mage.constants.Zone; import mage.game.Game; +import mage.game.permanent.Permanent; import mage.players.Player; /** @@ -54,15 +56,27 @@ public class ShuffleIntoLibrarySourceEffect extends OneShotEffect { @Override public boolean apply(Game game, Ability source) { - Card card = game.getCard(source.getSourceId()); - if (card != null) { - Player player = game.getPlayer(card.getOwnerId()); - if (player != null) { - Zone fromZone = game.getState().getZone(card.getId()); - player.moveCardToLibraryWithInfo(card, source.getSourceId(), game, fromZone, true, true); - player.shuffleLibrary(game); - return true; + MageObject mageObject = source.getSourceObjectIfItStillExists(game); + if (mageObject != null) { + Zone fromZone = game.getState().getZone(mageObject.getId()); + Player owner; + if (mageObject instanceof Permanent) { + owner = game.getPlayer(((Permanent) mageObject).getOwnerId()); + if (owner != null) { + owner.moveCardToLibraryWithInfo((Permanent)mageObject, source.getSourceId(), game, fromZone, true, true); + owner.shuffleLibrary(game); + return true; + } + } else if (mageObject instanceof Card) { + owner = game.getPlayer(((Card) mageObject).getOwnerId()); + if (owner != null) { + owner.moveCardToLibraryWithInfo((Card)mageObject, source.getSourceId(), game, fromZone, true, true); + owner.shuffleLibrary(game); + return true; + } } + + } return false; }