From a072d8275fd677b4c82247a41a73a75147958ca3 Mon Sep 17 00:00:00 2001 From: Oleg Agafonov Date: Tue, 21 Jan 2020 04:44:50 +0400 Subject: [PATCH] * Target card in hands - fixed that player can stuck/freeze the game if it must select cards from opponent's hand (related #6209); --- .../src/mage/player/human/HumanPlayer.java | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/Mage.Server.Plugins/Mage.Player.Human/src/mage/player/human/HumanPlayer.java b/Mage.Server.Plugins/Mage.Player.Human/src/mage/player/human/HumanPlayer.java index f775e378ff6..054fca62154 100644 --- a/Mage.Server.Plugins/Mage.Player.Human/src/mage/player/human/HumanPlayer.java +++ b/Mage.Server.Plugins/Mage.Player.Human/src/mage/player/human/HumanPlayer.java @@ -635,7 +635,7 @@ public class HumanPlayer extends PlayerImpl { } // choose one or multiple cards - if (cards == null) { + if (cards == null || cards.isEmpty()) { return false; } @@ -666,6 +666,11 @@ public class HumanPlayer extends PlayerImpl { options.put("choosable", (Serializable) choosable); } + // if nothing to choose then show window (user must see non selectable items and click on any of them) + if (required && choosable.isEmpty()) { + required = false; + } + updateGameStatePriority("choose(4)", game); prepareForResponse(game); if (!isExecutingMacro()) { @@ -704,7 +709,7 @@ public class HumanPlayer extends PlayerImpl { return true; } - if (cards == null) { + if (cards == null || cards.isEmpty()) { return false; } @@ -735,6 +740,11 @@ public class HumanPlayer extends PlayerImpl { options.put("choosable", (Serializable) choosable); } + // if nothing to choose then show window (user must see non selectable items and click on any of them) + if (required && choosable.isEmpty()) { + required = false; + } + updateGameStatePriority("chooseTarget(5)", game); prepareForResponse(game); if (!isExecutingMacro()) {