From a54c79197615035284ff26c67b98e81d2e30fdc0 Mon Sep 17 00:00:00 2001 From: LoneFox Date: Thu, 7 Jan 2016 10:34:36 +0200 Subject: [PATCH] Add FixedTarget support back to ExileTargetForSourceEffect and ReturnToHandTargetEffect --- .../common/ExileTargetForSourceEffect.java | 17 ++++++++++++++--- .../common/ReturnToHandTargetEffect.java | 17 ++++++++++++++--- 2 files changed, 28 insertions(+), 6 deletions(-) diff --git a/Mage/src/main/java/mage/abilities/effects/common/ExileTargetForSourceEffect.java b/Mage/src/main/java/mage/abilities/effects/common/ExileTargetForSourceEffect.java index be7ff93ee47..2ac10f4471f 100644 --- a/Mage/src/main/java/mage/abilities/effects/common/ExileTargetForSourceEffect.java +++ b/Mage/src/main/java/mage/abilities/effects/common/ExileTargetForSourceEffect.java @@ -40,6 +40,7 @@ import mage.game.Game; import mage.game.permanent.Permanent; import mage.players.Player; import mage.target.Target; +import mage.target.targetpointer.FirstTargetPointer; import mage.util.CardUtil; /** @@ -67,10 +68,20 @@ public class ExileTargetForSourceEffect extends OneShotEffect { MageObject sourceObject = source.getSourceObject(game); if (controller != null && sourceObject != null) { Set cards = new LinkedHashSet<>(); - for (Target target : source.getTargets()) { - for (UUID targetId : target.getTargets()) { + if (source.getTargets().size() > 1 && targetPointer instanceof FirstTargetPointer) { + for (Target target : source.getTargets()) { + for (UUID targetId : target.getTargets()) { + MageObject mageObject = game.getObject(targetId); + if (mageObject instanceof Card) { + cards.add((Card) mageObject); + } + } + } + } + else { + for (UUID targetId : targetPointer.getTargets(game, source)) { MageObject mageObject = game.getObject(targetId); - if (mageObject instanceof Card) { + if (mageObject != null) { cards.add((Card) mageObject); } } diff --git a/Mage/src/main/java/mage/abilities/effects/common/ReturnToHandTargetEffect.java b/Mage/src/main/java/mage/abilities/effects/common/ReturnToHandTargetEffect.java index 5804e5d3906..a8fe124fc1e 100644 --- a/Mage/src/main/java/mage/abilities/effects/common/ReturnToHandTargetEffect.java +++ b/Mage/src/main/java/mage/abilities/effects/common/ReturnToHandTargetEffect.java @@ -40,6 +40,7 @@ import mage.constants.Zone; import mage.game.Game; import mage.players.Player; import mage.target.Target; +import mage.target.targetpointer.FirstTargetPointer; import mage.util.CardUtil; /** @@ -75,10 +76,20 @@ public class ReturnToHandTargetEffect extends OneShotEffect { return false; } Set cards = new LinkedHashSet<>(); - for (Target target : source.getTargets()) { - for (UUID targetId : target.getTargets()) { + if (source.getTargets().size() > 1 && targetPointer instanceof FirstTargetPointer) { + for (Target target : source.getTargets()) { + for (UUID targetId : target.getTargets()) { + MageObject mageObject = game.getObject(targetId); + if (mageObject instanceof Card) { + cards.add((Card) mageObject); + } + } + } + } + else { + for (UUID targetId : targetPointer.getTargets(game, source)) { MageObject mageObject = game.getObject(targetId); - if (mageObject instanceof Card) { + if (mageObject != null) { cards.add((Card) mageObject); } }