From 7a91e31f8a60c99bf5d3e90e5d0cb8c7a32cb086 Mon Sep 17 00:00:00 2001 From: drdev Date: Sun, 10 Aug 2014 05:25:42 +0000 Subject: [PATCH] Fix so game doesn't skip over phases with stops too quickly after using End Turn --- .../forge/player/PlayerControllerHuman.java | 20 +++++++++++++++---- 1 file changed, 16 insertions(+), 4 deletions(-) diff --git a/forge-gui/src/main/java/forge/player/PlayerControllerHuman.java b/forge-gui/src/main/java/forge/player/PlayerControllerHuman.java index 06278e9ec4c..6a4c5ce856e 100644 --- a/forge-gui/src/main/java/forge/player/PlayerControllerHuman.java +++ b/forge-gui/src/main/java/forge/player/PlayerControllerHuman.java @@ -655,16 +655,28 @@ public class PlayerControllerHuman extends PlayerController { @Override public SpellAbility chooseSpellAbilityToPlay() { if (mayAutoPass()) { - if (!game.getStack().isEmpty()) { + //avoid prompting for input if current phase is set to be auto-passed + //instead posing a short delay if needed to prevent the game jumping ahead too quick + int delay = 0; + if (game.getStack().isEmpty()) { + //make sure to briefly pause at phases your not set up to skip + if (!isUiSetToSkipPhase(game.getPhaseHandler().getPlayerTurn(), game.getPhaseHandler().getPhase())) { + delay = FControlGamePlayback.phasesDelay; + } + } + else { + //pause slightly longer for spells and abilities on the stack resolving + delay = FControlGamePlayback.resolveDelay; + } + if (delay > 0) { try { - //pause briefly while spells and abilities on the stack resolve - Thread.sleep(FControlGamePlayback.resolveDelay); + Thread.sleep(delay); } catch (InterruptedException e) { e.printStackTrace(); } } - return null; //avoid prompting for input if current phase is set to be auto-passed + return null; } if (game.getStack().isEmpty() && isUiSetToSkipPhase(game.getPhaseHandler().getPlayerTurn(), game.getPhaseHandler().getPhase())) {