From b12380a7724e1283c534ed90b0cb8f1128ab1c53 Mon Sep 17 00:00:00 2001 From: Agetian Date: Thu, 13 Jul 2017 09:43:54 +0000 Subject: [PATCH] - Mobile Forge: allow using A as alpha strike and E as end turn (unmodified with Ctrl) when running on desktop; bound to Ctrl+A / Ctrl+E on mobile (not sure what the rationale was, but probably to avoid skipping things when typing in something from on-screen keyboard? I decided not to touch it). - Added an option to disallow using Esc as a shortcut for passing until end of turn, like in desktop forge (mostly relevant when used on desktop, but could also prevent misclicking the Esc-bound button accidentally on mobile). --- .../src/forge/screens/match/MatchScreen.java | 14 ++++++++++---- .../src/forge/screens/settings/SettingsPage.java | 4 ++++ 2 files changed, 14 insertions(+), 4 deletions(-) diff --git a/forge-gui-mobile/src/forge/screens/match/MatchScreen.java b/forge-gui-mobile/src/forge/screens/match/MatchScreen.java index a16dfe61ef6..4206816928e 100644 --- a/forge-gui-mobile/src/forge/screens/match/MatchScreen.java +++ b/forge-gui-mobile/src/forge/screens/match/MatchScreen.java @@ -16,6 +16,7 @@ import com.google.common.collect.Maps; import forge.Forge; import forge.Forge.KeyInputAdapter; import forge.Graphics; +import forge.GuiBase; import forge.animation.AbilityEffect; import forge.assets.FSkinColor; import forge.assets.FSkinColor.Colors; @@ -367,17 +368,22 @@ public class MatchScreen extends FScreen { } return getActivePrompt().getBtnCancel().trigger(); //trigger Cancel if can't trigger OK case Keys.ESCAPE: + if (!FModel.getPreferences().getPrefBoolean(FPref.UI_ALLOW_ESC_TO_END_TURN)) { + if (getActivePrompt().getBtnCancel().getText().equals("End Turn")) { + return false; + } + } return getActivePrompt().getBtnCancel().trigger(); //otherwise trigger Cancel case Keys.BACK: return true; //suppress Back button so it's not bumped when trying to press OK or Cancel buttons - case Keys.A: //alpha strike on Ctrl+A - if (KeyInputAdapter.isCtrlKeyDown()) { + case Keys.A: //alpha strike on Ctrl+A on Android, A when running on desktop + if (KeyInputAdapter.isCtrlKeyDown() || GuiBase.getInterface().isRunningOnDesktop()) { getGameController().alphaStrike(); return true; } break; - case Keys.E: //end turn on Ctrl+E - if (KeyInputAdapter.isCtrlKeyDown()) { + case Keys.E: //end turn on Ctrl+E on Android, E when running on desktop + if (KeyInputAdapter.isCtrlKeyDown() || GuiBase.getInterface().isRunningOnDesktop()) { getGameController().passPriorityUntilEndOfTurn(); return true; } diff --git a/forge-gui-mobile/src/forge/screens/settings/SettingsPage.java b/forge-gui-mobile/src/forge/screens/settings/SettingsPage.java index 6534597aedb..a918bfb03ef 100644 --- a/forge-gui-mobile/src/forge/screens/settings/SettingsPage.java +++ b/forge-gui-mobile/src/forge/screens/settings/SettingsPage.java @@ -135,6 +135,10 @@ public class SettingsPage extends TabPage { "Defines the granularity level of auto-yields (yield to each unique ability or to each unique card).", new String[]{ForgeConstants.AUTO_YIELD_PER_ABILITY, ForgeConstants.AUTO_YIELD_PER_CARD}), 1); + lstSettings.addItem(new BooleanSetting(FPref.UI_ALLOW_ESC_TO_END_TURN, + "Use Escape Key To End Turn", + "Allows to use Esc keyboard shortcut to end turn prematurely"), + 1); //Random Deck Generation lstSettings.addItem(new BooleanSetting(FPref.DECKGEN_NOSMALL,