From 1df242adce58ecf8e38347fcbd2af43f261b3777 Mon Sep 17 00:00:00 2001 From: "maurer.it" Date: Sat, 22 Oct 2011 11:21:24 -0400 Subject: [PATCH] [FIX] Fixes issue 309. Seems that canChoose and possibleTargets fell out of sync. canChoose was saying that the abilities target could be chosen but when it came to actually select the target no possibilities were returned. --- Mage/src/mage/target/TargetCard.java | 52 +++++++++++++++------------- 1 file changed, 28 insertions(+), 24 deletions(-) diff --git a/Mage/src/mage/target/TargetCard.java b/Mage/src/mage/target/TargetCard.java index 1f4cc6ef364..1ea360e5f15 100644 --- a/Mage/src/mage/target/TargetCard.java +++ b/Mage/src/mage/target/TargetCard.java @@ -134,31 +134,35 @@ public class TargetCard> extends TargetObject possibleTargets(UUID sourceControllerId, Game game) { Set possibleTargets = new HashSet(); - Player player = game.getPlayer(sourceControllerId); - if (player != null) { - switch (zone) { - case HAND: - for (Card card: player.getHand().getCards(filter, game)) { - possibleTargets.add(card.getId()); + for (UUID playerId: game.getPlayer(sourceControllerId).getInRange()) { + if (filter.matchOwner(playerId)) { + Player player = game.getPlayer(playerId); + if (player != null) { + switch (zone) { + case HAND: + for (Card card: player.getHand().getCards(filter, game)) { + possibleTargets.add(card.getId()); + } + break; + case GRAVEYARD: + for (Card card: player.getGraveyard().getCards(filter, game)) { + possibleTargets.add(card.getId()); + } + break; + case LIBRARY: + for (Card card: player.getLibrary().getUniqueCards(game)) { + if (filter.match(card)) + possibleTargets.add(card.getId()); + } + break; + case EXILED: + for (Card card: game.getExile().getPermanentExile().getUniqueCards(game)) { + if (filter.match(card, player.getId(), game)) + possibleTargets.add(card.getId()); + } + break; } - break; - case GRAVEYARD: - for (Card card: player.getGraveyard().getCards(filter, game)) { - possibleTargets.add(card.getId()); - } - break; - case LIBRARY: - for (Card card: player.getLibrary().getUniqueCards(game)) { - if (filter.match(card)) - possibleTargets.add(card.getId()); - } - break; - case EXILED: - for (Card card: game.getExile().getPermanentExile().getUniqueCards(game)) { - if (filter.match(card, player.getId(), game)) - possibleTargets.add(card.getId()); - } - break; + } } } return possibleTargets;