From 3e6d5cd3e904513fc5ddb37e403ebefe053a8e40 Mon Sep 17 00:00:00 2001 From: drdev Date: Sat, 13 Jun 2015 19:12:39 +0000 Subject: [PATCH] Show "Waiting for opponent..." while you wait for the other player to choose whether to go first or keep their first hand --- forge-ai/src/main/java/forge/ai/PlayerControllerAi.java | 9 +++++++++ forge-game/src/main/java/forge/game/GameAction.java | 5 +++++ .../main/java/forge/game/player/PlayerController.java | 4 ++++ .../util/PlayerControllerForTests.java | 9 +++++++++ .../main/java/forge/player/PlayerControllerHuman.java | 2 ++ 5 files changed, 29 insertions(+) diff --git a/forge-ai/src/main/java/forge/ai/PlayerControllerAi.java b/forge-ai/src/main/java/forge/ai/PlayerControllerAi.java index e95654d0360..1fa8557c33e 100644 --- a/forge-ai/src/main/java/forge/ai/PlayerControllerAi.java +++ b/forge-ai/src/main/java/forge/ai/PlayerControllerAi.java @@ -872,4 +872,13 @@ public class PlayerControllerAi extends PlayerController { public void autoPassCancel() { // Do nothing } + + @Override + public void awaitNextInput() { + // Do nothing + } + @Override + public void cancelAwaitNextInput() { + // Do nothing + } } diff --git a/forge-game/src/main/java/forge/game/GameAction.java b/forge-game/src/main/java/forge/game/GameAction.java index edb2a8fc1e6..f7fa40e2a87 100644 --- a/forge-game/src/main/java/forge/game/GameAction.java +++ b/forge-game/src/main/java/forge/game/GameAction.java @@ -1486,6 +1486,11 @@ public class GameAction { goesFirst = game.getPlayers().get(0); // does not really matter who plays first - it's controlled from the same computer. } + for (Player p : game.getPlayers()) { + if (p != goesFirst) { + p.getController().awaitNextInput(); //show "Waiting for opponent..." while first player chooses whether to go first or keep their hand + } + } goesFirst = goesFirst.getController().chooseStartingPlayer(isFirstGame); return goesFirst; } diff --git a/forge-game/src/main/java/forge/game/player/PlayerController.java b/forge-game/src/main/java/forge/game/player/PlayerController.java index 54d30010a83..7314253467a 100644 --- a/forge-game/src/main/java/forge/game/player/PlayerController.java +++ b/forge-game/src/main/java/forge/game/player/PlayerController.java @@ -229,6 +229,10 @@ public abstract class PlayerController { public abstract void autoPassCancel(); + public abstract void awaitNextInput(); + + public abstract void cancelAwaitNextInput(); + public boolean isGuiPlayer() { return false; } diff --git a/forge-gui-desktop/src/test/java/forge/gamesimulationtests/util/PlayerControllerForTests.java b/forge-gui-desktop/src/test/java/forge/gamesimulationtests/util/PlayerControllerForTests.java index 13e681ea0bc..f05d1283963 100644 --- a/forge-gui-desktop/src/test/java/forge/gamesimulationtests/util/PlayerControllerForTests.java +++ b/forge-gui-desktop/src/test/java/forge/gamesimulationtests/util/PlayerControllerForTests.java @@ -659,4 +659,13 @@ public class PlayerControllerForTests extends PlayerController { public void autoPassCancel() { // Not used by the controller for tests } + + @Override + public void awaitNextInput() { + // Not used by the controller for tests + } + @Override + public void cancelAwaitNextInput() { + // Not used by the controller for tests + } } diff --git a/forge-gui/src/main/java/forge/player/PlayerControllerHuman.java b/forge-gui/src/main/java/forge/player/PlayerControllerHuman.java index f54884ae5ba..2fe2d297bbe 100644 --- a/forge-gui/src/main/java/forge/player/PlayerControllerHuman.java +++ b/forge-gui/src/main/java/forge/player/PlayerControllerHuman.java @@ -1813,9 +1813,11 @@ public class PlayerControllerHuman public void autoPassCancel() { getGui().autoPassCancel(getLocalPlayerView()); } + @Override public void awaitNextInput() { getGui().awaitNextInput(); } + @Override public void cancelAwaitNextInput() { getGui().cancelAwaitNextInput(); }