diff --git a/forge-gui-mobile/src/forge/Forge.java b/forge-gui-mobile/src/forge/Forge.java index 001979a773d..5957d90ef78 100644 --- a/forge-gui-mobile/src/forge/Forge.java +++ b/forge-gui-mobile/src/forge/Forge.java @@ -62,6 +62,7 @@ public class Forge implements ApplicationListener { static Batch animationBatch; static TextureRegion lastScreenTexture; private static boolean sceneWasSwapped = false; + public static boolean restrictAdvMenus = false; private static Clipboard clipboard; private static IDeviceAdapter deviceAdapter; private static int screenWidth; @@ -1060,7 +1061,6 @@ public class Forge implements ApplicationListener { } public static Scene switchToLast() { - if (lastScene.size != 0) { storeScreen(); currentScene = lastScene.get(lastScene.size - 1); diff --git a/forge-gui-mobile/src/forge/adventure/scene/DuelScene.java b/forge-gui-mobile/src/forge/adventure/scene/DuelScene.java index c23f4989d44..0f5462ae7d7 100644 --- a/forge-gui-mobile/src/forge/adventure/scene/DuelScene.java +++ b/forge-gui-mobile/src/forge/adventure/scene/DuelScene.java @@ -151,6 +151,7 @@ public class DuelScene extends ForgeScene { } Runnable endRunnable = null; void afterGameEnd(String enemyName, boolean winner) { + Forge.restrictAdvMenus = winner; endRunnable = () -> Gdx.app.postRunnable(()-> { if (GameScene.instance().isNotInWorldMap()) { SoundSystem.instance.pause(); diff --git a/forge-gui-mobile/src/forge/adventure/scene/RewardScene.java b/forge-gui-mobile/src/forge/adventure/scene/RewardScene.java index 54fd5febf0b..4712ae69627 100644 --- a/forge-gui-mobile/src/forge/adventure/scene/RewardScene.java +++ b/forge-gui-mobile/src/forge/adventure/scene/RewardScene.java @@ -133,6 +133,7 @@ public class RewardScene extends UIScene { } //save RAM ImageCache.unloadCardTextures(true); + Forge.restrictAdvMenus = false; Forge.switchToLast(); } public void reactivateInputs() { diff --git a/forge-gui-mobile/src/forge/adventure/stage/GameHUD.java b/forge-gui-mobile/src/forge/adventure/stage/GameHUD.java index 2fc837eac90..e154db9ae5b 100644 --- a/forge-gui-mobile/src/forge/adventure/stage/GameHUD.java +++ b/forge-gui-mobile/src/forge/adventure/stage/GameHUD.java @@ -156,12 +156,16 @@ public class GameHUD extends Stage { private void openMap() { if (console.isVisible()) return; + if (Forge.restrictAdvMenus) + return; Forge.switchScene(MapViewScene.instance()); } private void logbook() { if (console.isVisible()) return; + if (Forge.restrictAdvMenus) + return; Forge.switchScene(QuestLogScene.instance(Forge.getCurrentScene())); } @@ -484,12 +488,16 @@ public class GameHUD extends Stage { private void openDeck() { if (console.isVisible()) return; + if (Forge.restrictAdvMenus) + return; Forge.switchScene(DeckSelectScene.instance()); } private void openInventory() { if (console.isVisible()) return; + if (Forge.restrictAdvMenus) + return; WorldSave.getCurrentSave().header.createPreview(); Forge.switchScene(InventoryScene.instance()); } @@ -525,6 +533,8 @@ public class GameHUD extends Stage { private void menu() { if (console.isVisible()) return; + if (Forge.restrictAdvMenus) + return; gameStage.openMenu(); } diff --git a/forge-gui-mobile/src/forge/adventure/stage/GameStage.java b/forge-gui-mobile/src/forge/adventure/stage/GameStage.java index 97473016300..9348d410283 100644 --- a/forge-gui-mobile/src/forge/adventure/stage/GameStage.java +++ b/forge-gui-mobile/src/forge/adventure/stage/GameStage.java @@ -376,7 +376,8 @@ public abstract class GameStage extends Stage { } public void openMenu() { - + if (Forge.restrictAdvMenus) + return; WorldSave.getCurrentSave().header.createPreview(); Forge.switchScene(StartScene.instance()); } diff --git a/forge-gui-mobile/src/forge/adventure/stage/MapStage.java b/forge-gui-mobile/src/forge/adventure/stage/MapStage.java index 35c9136f019..d92c87dabbf 100644 --- a/forge-gui-mobile/src/forge/adventure/stage/MapStage.java +++ b/forge-gui-mobile/src/forge/adventure/stage/MapStage.java @@ -1125,6 +1125,7 @@ public class MapStage extends GameStage { int duration = mob.getData().boss ? 400 : 200; if (Controllers.getCurrent() != null && Controllers.getCurrent().canVibrate()) Controllers.getCurrent().startVibration(duration, 1); + Forge.restrictAdvMenus = true; startPause(0.8f, () -> { Forge.setCursor(null, Forge.magnifyToggle ? "1" : "2"); SoundSystem.instance.play(SoundEffectType.ManaBurn, false); diff --git a/forge-gui-mobile/src/forge/adventure/stage/WorldStage.java b/forge-gui-mobile/src/forge/adventure/stage/WorldStage.java index 1d0479a1719..9a2d7125508 100644 --- a/forge-gui-mobile/src/forge/adventure/stage/WorldStage.java +++ b/forge-gui-mobile/src/forge/adventure/stage/WorldStage.java @@ -116,6 +116,7 @@ public class WorldStage extends GameStage implements SaveFileContent { int duration = mob.getData().boss ? 400 : 200; if (Controllers.getCurrent() != null && Controllers.getCurrent().canVibrate()) Controllers.getCurrent().startVibration(duration, 1); + Forge.restrictAdvMenus = true; startPause(0.8f, () -> { Forge.setCursor(null, Forge.magnifyToggle ? "1" : "2"); SoundSystem.instance.play(SoundEffectType.ManaBurn, false);