From 4da4ddb5e5798706bfa9b80c26ceb9fe0540d386 Mon Sep 17 00:00:00 2001 From: elcnesh Date: Sun, 6 Jul 2014 14:37:31 +0000 Subject: [PATCH] Add preference to enable/disable mana pool emptying prompt. --- .../forge/screens/home/settings/CSubmenuPreferences.java | 1 + .../forge/screens/home/settings/VSubmenuPreferences.java | 8 ++++++++ .../main/java/forge/match/input/InputPassPriority.java | 2 +- .../src/main/java/forge/properties/ForgePreferences.java | 1 + 4 files changed, 11 insertions(+), 1 deletion(-) diff --git a/forge-gui-desktop/src/main/java/forge/screens/home/settings/CSubmenuPreferences.java b/forge-gui-desktop/src/main/java/forge/screens/home/settings/CSubmenuPreferences.java index 4d84c45a041..5f1f746a71e 100644 --- a/forge-gui-desktop/src/main/java/forge/screens/home/settings/CSubmenuPreferences.java +++ b/forge-gui-desktop/src/main/java/forge/screens/home/settings/CSubmenuPreferences.java @@ -108,6 +108,7 @@ public enum CSubmenuPreferences implements ICDoc { lstControls.add(Pair.of(view.getCbHideReminderText(), FPref.UI_HIDE_REMINDER_TEXT)); lstControls.add(Pair.of(view.getCbOpenPacksIndiv(), FPref.UI_OPEN_PACKS_INDIV)); lstControls.add(Pair.of(view.getCbStackCreatures(), FPref.UI_STACK_CREATURES)); + lstControls.add(Pair.of(view.getCbManaLostPrompt(), FPref.UI_MANA_LOST_PROMPT)); for(final Pair kv : lstControls) { kv.getKey().addItemListener(new ItemListener() { diff --git a/forge-gui-desktop/src/main/java/forge/screens/home/settings/VSubmenuPreferences.java b/forge-gui-desktop/src/main/java/forge/screens/home/settings/VSubmenuPreferences.java index 7e250376953..75bebeb55aa 100644 --- a/forge-gui-desktop/src/main/java/forge/screens/home/settings/VSubmenuPreferences.java +++ b/forge-gui-desktop/src/main/java/forge/screens/home/settings/VSubmenuPreferences.java @@ -83,6 +83,7 @@ public enum VSubmenuPreferences implements IVSubmenu { private final JCheckBox cbHideReminderText = new OptionsCheckBox("Hide Reminder Text"); private final JCheckBox cbOpenPacksIndiv = new OptionsCheckBox("Open Packs Individually"); private final JCheckBox cbStackCreatures = new OptionsCheckBox("Stack Creatures"); + private final JCheckBox cbManaLostPrompt = new OptionsCheckBox("Prompt Mana Pool Emptying"); private final Map shortcutFields = new HashMap(); @@ -155,6 +156,9 @@ public enum VSubmenuPreferences implements IVSubmenu { pnlPrefs.add(cbPromptFreeBlocks, regularConstraints); pnlPrefs.add(new NoteLabel("When enabled, if you would have to pay 0 to block, pay automatically without prompt."), regularConstraints); + + pnlPrefs.add(cbManaLostPrompt, regularConstraints); + pnlPrefs.add(new NoteLabel("When enabled, you get a warning if passing priority would cause you to lose mana in your mana pool."), regularConstraints); // Deck building options pnlPrefs.add(new SectionLabel("Random Deck Generation"), sectionConstraints); @@ -543,6 +547,10 @@ public enum VSubmenuPreferences implements IVSubmenu { public final JCheckBox getCbStackCreatures() { return cbStackCreatures; } + + public final JCheckBox getCbManaLostPrompt() { + return cbManaLostPrompt; + } /** @return {@link forge.toolbox.FLabel} */ public FLabel getBtnReset() { diff --git a/forge-gui/src/main/java/forge/match/input/InputPassPriority.java b/forge-gui/src/main/java/forge/match/input/InputPassPriority.java index 2d5813dc572..32324a6e073 100644 --- a/forge-gui/src/main/java/forge/match/input/InputPassPriority.java +++ b/forge-gui/src/main/java/forge/match/input/InputPassPriority.java @@ -95,7 +95,7 @@ public class InputPassPriority extends InputSyncronizedBase { Game game = GuiBase.getInterface().getGame(); if (game.getStack().isEmpty()) { //phase can't end right now if stack isn't empty Player player = game.getPhaseHandler().getPriorityPlayer(); - if (player != null && player.getManaPool().willManaBeLostAtEndOfPhase() && player.getLobbyPlayer() == GuiBase.getInterface().getGuiPlayer()) { + if (player != null && FModel.getPreferences().getPrefBoolean(FPref.UI_MANA_LOST_PROMPT) && player.getManaPool().willManaBeLostAtEndOfPhase() && player.getLobbyPlayer() == GuiBase.getInterface().getGuiPlayer()) { ThreadUtil.invokeInGameThread(new Runnable() { //must invoke in game thread so dialog can be shown on mobile game @Override public void run() { diff --git a/forge-gui/src/main/java/forge/properties/ForgePreferences.java b/forge-gui/src/main/java/forge/properties/ForgePreferences.java index 134cc67b0e8..e30eba301b8 100644 --- a/forge-gui/src/main/java/forge/properties/ForgePreferences.java +++ b/forge-gui/src/main/java/forge/properties/ForgePreferences.java @@ -72,6 +72,7 @@ public class ForgePreferences extends PreferencesStore { UI_LOCK_TITLE_BAR ("false"), UI_HIDE_GAME_TABS ("false"), // Visibility of tabs in match screen. UI_CLOSE_ACTION ("NONE"), + UI_MANA_LOST_PROMPT ("false"), // Prompt on losing mana when passing priority UI_FOR_TOUCHSCREN("false"),