From 89e8899aba7855b51abe86c727f821799ec5cccf Mon Sep 17 00:00:00 2001 From: drdev Date: Mon, 15 Sep 2014 20:58:41 +0000 Subject: [PATCH] Resolve some merge conflicts and actually commit mobile game Auto-Yields menu item to SVN --- .../forge/screens/match/views/VGameMenu.java | 44 ++++++++++++++++--- 1 file changed, 38 insertions(+), 6 deletions(-) diff --git a/forge-gui-mobile/src/forge/screens/match/views/VGameMenu.java b/forge-gui-mobile/src/forge/screens/match/views/VGameMenu.java index 0e372c1114b..b0dc5c6bf10 100644 --- a/forge-gui-mobile/src/forge/screens/match/views/VGameMenu.java +++ b/forge-gui-mobile/src/forge/screens/match/views/VGameMenu.java @@ -5,27 +5,34 @@ import forge.LobbyPlayer; import forge.assets.FSkinImage; import forge.deck.Deck; import forge.deck.FDeckViewer; -import forge.game.io.GameStateDeserializer; -import forge.game.io.GameStateSerializer; +import forge.game.Game; +import forge.game.player.Player; +import forge.game.spellability.SpellAbility; import forge.menu.FDropDownMenu; import forge.menu.FMenuItem; -import forge.properties.ForgeConstants; import forge.screens.match.FControl; import forge.screens.settings.SettingsScreen; import forge.toolbox.FEvent; -import forge.toolbox.FOptionPane; import forge.toolbox.FEvent.FEventHandler; +import forge.view.IGameView; public class VGameMenu extends FDropDownMenu { + private final IGameView gameView; + + public VGameMenu(IGameView gameView0) { + gameView = gameView0; + } + @Override protected void buildMenu() { + final Game game = FControl.getGame(); addItem(new FMenuItem("Concede", FSkinImage.CONCEDE, new FEventHandler() { @Override public void handleEvent(FEvent e) { FControl.concede(); } })); - addItem(new FMenuItem("Save Game", FSkinImage.SAVE, new FEventHandler() { + /*addItem(new FMenuItem("Save Game", FSkinImage.SAVE, new FEventHandler() { @Override public void handleEvent(FEvent e) { GameStateSerializer.saveGameState(FControl.getGame(), ForgeConstants.USER_GAMES_DIR + "GameSave.txt"); @@ -37,7 +44,7 @@ public class VGameMenu extends FDropDownMenu { public void handleEvent(FEvent e) { GameStateDeserializer.loadGameState(FControl.getGame(), ForgeConstants.USER_GAMES_DIR + "GameSave.txt"); } - })); + }));*/ addItem(new FMenuItem("Deck List", FSkinImage.DECKLIST, new FEventHandler() { @Override public void handleEvent(FEvent e) { @@ -48,6 +55,31 @@ public class VGameMenu extends FDropDownMenu { } } })); + addItem(new FMenuItem("Auto-Yields", FSkinImage.WARNING, new FEventHandler() { + @Override + public void handleEvent(FEvent e) { + final Player localPlayer = FControl.getCurrentPlayer(); + if (localPlayer == null) { return; } + + final boolean autoYieldsDisabled = game.getDisableAutoYields(); + VAutoYields autoYields = new VAutoYields(game, localPlayer) { + @Override + public void setVisible(boolean b0) { + super.setVisible(b0); + if (!b0) { + if (autoYieldsDisabled && !game.getDisableAutoYields()) { + //if re-enabling auto-yields, auto-yield to current ability on stack if applicable + SpellAbility ability = game.getStack().peekAbility(); + if (ability != null && ability.isAbility() && localPlayer.getController().shouldAutoYield(ability.toUnsuppressedString())) { + gameView.passPriority(); + } + } + } + } + }; + autoYields.show(); + } + })); addItem(new FMenuItem("Settings", FSkinImage.SETTINGS, new FEventHandler() { @Override public void handleEvent(FEvent e) {