diff --git a/Mage.Sets/src/mage/sets/commander2013/TemptWithReflections.java b/Mage.Sets/src/mage/sets/commander2013/TemptWithReflections.java index 717eab9f9f9..bf678737764 100644 --- a/Mage.Sets/src/mage/sets/commander2013/TemptWithReflections.java +++ b/Mage.Sets/src/mage/sets/commander2013/TemptWithReflections.java @@ -39,9 +39,9 @@ import mage.constants.Rarity; import mage.constants.Zone; import mage.game.Game; import mage.game.permanent.Permanent; +import mage.game.permanent.token.EmptyToken; import mage.players.Player; import mage.players.PlayerList; -import mage.game.permanent.token.EmptyToken; import mage.target.common.TargetControlledCreaturePermanent; import mage.util.CardUtil; @@ -100,7 +100,7 @@ class TemptWithReflectionsEffect extends OneShotEffect { CardUtil.copyTo(token).from(permanent); token.putOntoBattlefield(1, game, source.getSourceId(), source.getControllerId()); - Set playersSaidYes = new HashSet(); + Set playersSaidYes = new HashSet<>(); PlayerList playerList = game.getPlayerList().copy(); playerList.setCurrent(game.getActivePlayerId()); Player player = game.getPlayer(game.getActivePlayerId()); diff --git a/Mage.Sets/src/mage/sets/urzassaga/ShowAndTell.java b/Mage.Sets/src/mage/sets/urzassaga/ShowAndTell.java index dd1fd593c83..139b08a3bab 100644 --- a/Mage.Sets/src/mage/sets/urzassaga/ShowAndTell.java +++ b/Mage.Sets/src/mage/sets/urzassaga/ShowAndTell.java @@ -27,6 +27,8 @@ */ package mage.sets.urzassaga; +import java.util.ArrayList; +import java.util.List; import java.util.UUID; import mage.abilities.Ability; import mage.abilities.effects.OneShotEffect; @@ -41,6 +43,7 @@ import mage.filter.predicate.Predicates; import mage.filter.predicate.mageobject.CardTypePredicate; import mage.game.Game; import mage.players.Player; +import mage.players.PlayerList; import mage.target.common.TargetCardInHand; /** @@ -101,20 +104,29 @@ class ShowAndTellEffect extends OneShotEffect { if (controller == null) { return false; } - - for (UUID playerId : controller.getInRange()) { - Player player = game.getPlayer(playerId); - if (player != null) { - if (player.chooseUse(outcome, "Put an artifact, creature, enchantment, or land card from hand onto the battlefield?", game)) { - TargetCardInHand target = new TargetCardInHand(filter); - if (player.choose(outcome, target, source.getSourceId(), game)) { - Card card = game.getCard(target.getFirstTarget()); - if (card != null) { - player.putOntoBattlefieldWithInfo(card, game, Zone.HAND, source.getSourceId()); - } + List cardsToPutIntoPlay = new ArrayList<>(); + TargetCardInHand target = new TargetCardInHand(filter); + PlayerList playerList = game.getPlayerList().copy(); + playerList.setCurrent(game.getActivePlayerId()); + Player player = game.getPlayer(game.getActivePlayerId()); + do { + if (player.chooseUse(outcome, "Put an artifact, creature, enchantment, or land card from hand onto the battlefield?", game)) { + target.clearChosen(); + if (player.chooseTarget(outcome, target, source, game)) { + Card card = game.getCard(target.getFirstTarget()); + if (card != null) { + cardsToPutIntoPlay.add(card); } } } + player = playerList.getNextInRange(controller, game); + } while (!player.getId().equals(game.getActivePlayerId())); + + for (Card card: cardsToPutIntoPlay) { + player = game.getPlayer(card.getOwnerId()); + if (player != null) { + player.putOntoBattlefieldWithInfo(card, game, Zone.HAND, source.getSourceId()); + } } return true; }