From 9b72097827d0f45e5a8e5ff71c11721e4972b274 Mon Sep 17 00:00:00 2001 From: magenoxx Date: Sat, 25 Dec 2010 23:48:56 +0300 Subject: [PATCH] Fixed Phase stops (skipped possibility to response to spells and abilities if phase was off) --- .../main/java/mage/client/game/GamePanel.java | 2 ++ .../java/mage/client/util/GameManager.java | 21 +++++++++++++++++++ .../java/mage/client/util/PhaseManager.java | 3 +++ 3 files changed, 26 insertions(+) create mode 100644 Mage.Client/src/main/java/mage/client/util/GameManager.java diff --git a/Mage.Client/src/main/java/mage/client/game/GamePanel.java b/Mage.Client/src/main/java/mage/client/game/GamePanel.java index 2cc0eb3beac..1ea81220525 100644 --- a/Mage.Client/src/main/java/mage/client/game/GamePanel.java +++ b/Mage.Client/src/main/java/mage/client/game/GamePanel.java @@ -59,6 +59,7 @@ import mage.client.game.FeedbackPanel.FeedbackMode; import mage.client.plugins.impl.Plugins; import mage.client.remote.Session; import mage.client.util.Config; +import mage.client.util.GameManager; import mage.client.util.PhaseManager; import mage.client.util.gui.ArrowBuilder; import mage.util.Logging; @@ -303,6 +304,7 @@ public class GamePanel extends javax.swing.JPanel { } this.stack.loadCards(game.getStack(), bigCard, gameId); + GameManager.getInstance().setStackSize(game.getStack().size()); for (ExileView exile: game.getExile()) { if (!exiles.containsKey(exile.getId())) { diff --git a/Mage.Client/src/main/java/mage/client/util/GameManager.java b/Mage.Client/src/main/java/mage/client/util/GameManager.java new file mode 100644 index 00000000000..c7950a07fcf --- /dev/null +++ b/Mage.Client/src/main/java/mage/client/util/GameManager.java @@ -0,0 +1,21 @@ +package mage.client.util; + +/** + * Controls game state on client side. + * + * @author nantuko + */ +public class GameManager { + private static GameManager fInstance = new GameManager(); + public static GameManager getInstance() { + return fInstance; + } + public void setStackSize(int stackSize) { + this.stackSize = stackSize; + } + public int getStackSize() { + return stackSize; + } + + private int stackSize; +} diff --git a/Mage.Client/src/main/java/mage/client/util/PhaseManager.java b/Mage.Client/src/main/java/mage/client/util/PhaseManager.java index fa269fc1f35..15e357d3fcc 100644 --- a/Mage.Client/src/main/java/mage/client/util/PhaseManager.java +++ b/Mage.Client/src/main/java/mage/client/util/PhaseManager.java @@ -62,6 +62,9 @@ public class PhaseManager { } public boolean isSkip(GameView gameView, String message) { + if (GameManager.getInstance().getStackSize() > 0) { + return false; + } Map map = gameView.getActivePlayerName().equals(DEFAULT_PLAYER_NAME) ? mapYou : mapOthers; for (Map.Entry entry : map.entrySet()) { if (message.equals(entry.getKey())) {