From 7fae9ed8b8a1d9228e3d97f8eed9a778f0fe77ac Mon Sep 17 00:00:00 2001 From: Maxmtg Date: Sat, 1 Jun 2013 21:58:36 +0000 Subject: [PATCH] Added option "10x Faster" for AI vs AI DigEffect uses reveal instead of guidialog.choose --- .../java/forge/card/ability/effects/DigEffect.java | 2 +- .../java/forge/control/FControlGamePlayback.java | 13 +++++++++---- .../java/forge/gui/input/InputPlaybackControl.java | 11 ++++++++--- 3 files changed, 18 insertions(+), 8 deletions(-) diff --git a/src/main/java/forge/card/ability/effects/DigEffect.java b/src/main/java/forge/card/ability/effects/DigEffect.java index 4022576ddaf..dc8227a8a6d 100644 --- a/src/main/java/forge/card/ability/effects/DigEffect.java +++ b/src/main/java/forge/card/ability/effects/DigEffect.java @@ -115,7 +115,7 @@ public class DigEffect extends SpellAbilityEffect { boolean hasRevealed = true; if (sa.hasParam("Reveal")) { - GuiChoose.one("Revealing cards from library", top); + game.getAction().reveal(top, p); // Singletons.getModel().getGameAction().revealToCopmuter(top.toArray()); // - for when it exists } else if (sa.hasParam("RevealOptional")) { diff --git a/src/main/java/forge/control/FControlGamePlayback.java b/src/main/java/forge/control/FControlGamePlayback.java index 2cd5415e234..ed5140fdfe5 100644 --- a/src/main/java/forge/control/FControlGamePlayback.java +++ b/src/main/java/forge/control/FControlGamePlayback.java @@ -39,10 +39,12 @@ public class FControlGamePlayback extends IGameEventVisitor.Base { private int combatDelay = 400; private int castDelay = 400; private int resolveDelay = 400; + + private boolean fasterPlayback = false; private void pauseForEvent(int delay) { try { - Thread.sleep(delay); + Thread.sleep(fasterPlayback ? delay / 10 : delay); } catch (InterruptedException e) { // TODO Auto-generated catch block ignores the exception, but sends it to System.err and probably forge.log. e.printStackTrace(); @@ -179,9 +181,12 @@ public class FControlGamePlayback extends IGameEventVisitor.Base { releaseGameThread(); } - public void endGame() { - fc.stopGame(); - releaseGameThread(); + /** + * TODO: Write javadoc for this method. + * @param isFast + */ + public void setSpeed(boolean isFast) { + fasterPlayback = isFast; } } \ No newline at end of file diff --git a/src/main/java/forge/gui/input/InputPlaybackControl.java b/src/main/java/forge/gui/input/InputPlaybackControl.java index 119da483718..b9eac857b8b 100644 --- a/src/main/java/forge/gui/input/InputPlaybackControl.java +++ b/src/main/java/forge/gui/input/InputPlaybackControl.java @@ -14,6 +14,7 @@ public class InputPlaybackControl extends InputSyncronizedBase implements InputS FControlGamePlayback control; private boolean isPaused = false; + private boolean isFast = false; /** * TODO: Write javadoc for Constructor. @@ -37,7 +38,7 @@ public class InputPlaybackControl extends InputSyncronizedBase implements InputS if ( isPaused ) ButtonUtil.setButtonText("Resume", "Step"); else { - ButtonUtil.setButtonText("Pause", "End game"); + ButtonUtil.setButtonText("Pause", isFast ? "1x Speed" : "10x Faster"); showMessage("Press pause to pause game."); } } @@ -62,8 +63,12 @@ public class InputPlaybackControl extends InputSyncronizedBase implements InputS protected void onCancel() { if ( isPaused ) { control.singleStep(); - } else - control.endGame(); + } else { + isFast = !isFast; + control.setSpeed(isFast); + setPause(isPaused); // update message + } + } }