diff --git a/src/main/java/forge/control/input/InputBlock.java b/src/main/java/forge/control/input/InputBlock.java index c32c40e4691..40bec74bd95 100644 --- a/src/main/java/forge/control/input/InputBlock.java +++ b/src/main/java/forge/control/input/InputBlock.java @@ -22,7 +22,6 @@ import java.util.HashMap; import java.util.List; import forge.Card; -import forge.Singletons; import forge.game.GameState; import forge.game.phase.CombatUtil; import forge.game.player.Player; diff --git a/src/main/java/forge/control/input/InputCleanup.java b/src/main/java/forge/control/input/InputCleanup.java index f2d3e53821b..765ca6b64bf 100644 --- a/src/main/java/forge/control/input/InputCleanup.java +++ b/src/main/java/forge/control/input/InputCleanup.java @@ -18,10 +18,8 @@ package forge.control.input; import forge.Card; -import forge.Singletons; import forge.game.GameState; import forge.game.player.Player; -import forge.game.zone.Zone; import forge.game.zone.ZoneType; import forge.view.ButtonUtil; diff --git a/src/main/java/forge/control/input/InputConfirmMulligan.java b/src/main/java/forge/control/input/InputConfirmMulligan.java index caa2f0d7762..38e61cb2147 100644 --- a/src/main/java/forge/control/input/InputConfirmMulligan.java +++ b/src/main/java/forge/control/input/InputConfirmMulligan.java @@ -44,24 +44,25 @@ public class InputConfirmMulligan extends InputSyncronizedBase { boolean keepHand = false; final boolean isCommander; final List selected = new ArrayList(); + final private Player startingPlayer; - public InputConfirmMulligan(Player humanPlayer, boolean commander) { + public InputConfirmMulligan(Player humanPlayer, Player startsGame, boolean commander) { super(humanPlayer); isCommander = commander; + startingPlayer = startsGame; } /** {@inheritDoc} */ @Override public final void showMessage() { GameState game = player.getGame(); - Player startingPlayer = game.getPhaseHandler().getPlayerTurn(); StringBuilder sb = new StringBuilder(); if( startingPlayer == player ) { - sb.append("You are going first.\n"); + sb.append("You are going first!\n\n"); } else { - sb.append(startingPlayer.getName()).append(" is going first. "); - sb.append("You are going ").append(Lang.getOrdinal(game.getPosition(player, startingPlayer))).append(".\n"); + sb.append(startingPlayer.getName()).append(" is going first.\n"); + sb.append("You are going ").append(Lang.getOrdinal(game.getPosition(player, startingPlayer))).append(".\n\n"); } if ( isCommander ) { diff --git a/src/main/java/forge/game/GameAction.java b/src/main/java/forge/game/GameAction.java index 09dbfa1a877..07ef6e909f1 100644 --- a/src/main/java/forge/game/GameAction.java +++ b/src/main/java/forge/game/GameAction.java @@ -1484,7 +1484,7 @@ public class GameAction { do { for (int i = 0; i < whoCanMulligan.size(); i++) { Player p = whoCanMulligan.get(i); - List toMulligan = p.canMulligan() ? p.getController().getCardsToMulligan(isCommander) : null; + List toMulligan = p.canMulligan() ? p.getController().getCardsToMulligan(isCommander, firstPlayer) : null; if ( toMulligan != null ) { if( !isCommander ) { toMulligan = new ArrayList(p.getCardsIn(ZoneType.Hand)); diff --git a/src/main/java/forge/game/MatchController.java b/src/main/java/forge/game/MatchController.java index ef5adaa717c..1c0c7d1c3f2 100644 --- a/src/main/java/forge/game/MatchController.java +++ b/src/main/java/forge/game/MatchController.java @@ -20,8 +20,6 @@ import forge.game.player.LobbyPlayer; import forge.game.player.LobbyPlayerHuman; import forge.game.player.Player; import forge.game.player.PlayerStatistics; -import forge.game.player.PlayerType; -import forge.gui.GuiDialog; import forge.gui.framework.EDocID; import forge.gui.framework.SDisplayUtil; import forge.gui.match.CMatchUI; @@ -144,7 +142,7 @@ public class MatchController { public void startRound() { currentGame = new GameState(players, gameType, this); - + try { attachUiToMatch(this, FControl.SINGLETON_INSTANCE.getLobby().getGuiPlayer()); @@ -155,9 +153,9 @@ public class MatchController { } catch (Exception e) { BugReporter.reportException(e); } - - final Player firstPlayer = determineFirstTurnPlayer(getLastGameOutcome(), currentGame); + final Player firstPlayer = determineFirstTurnPlayer(getLastGameOutcome(), currentGame); + currentGame.getInputQueue().clearInput(); if(currentGame.getType() == GameType.Planechase) firstPlayer.initPlane(); @@ -233,17 +231,13 @@ public class MatchController { // per player observers were set in CMatchUI.SINGLETON_INSTANCE.initMatch } - /** - * TODO: Write javadoc for this method. - */ - public void replayRound() { - gamesPlayed.remove(gamesPlayed.size() - 1); - startRound(); - } - public void replay() { + public void clearGamesPlayed() { gamesPlayed.clear(); - startRound(); + } + + public void clearLastGame() { + gamesPlayed.remove(gamesPlayed.size() - 1); } /** @@ -375,9 +369,6 @@ public class MatchController { } boolean willPlay = goesFirst.getController().getWillPlayOnFirstTurn(message); - if ( goesFirst.getLobbyPlayer().getType() == PlayerType.COMPUTER ) { - GuiDialog.message(message + "\nComputer Going First"); - } goesFirst = willPlay ? goesFirst : goesFirst.getOpponent(); game.getPhaseHandler().setPlayerTurn(goesFirst); return goesFirst; diff --git a/src/main/java/forge/game/ai/AiInputBlock.java b/src/main/java/forge/game/ai/AiInputBlock.java index 2dfebb1931f..a7afabfca75 100644 --- a/src/main/java/forge/game/ai/AiInputBlock.java +++ b/src/main/java/forge/game/ai/AiInputBlock.java @@ -3,7 +3,6 @@ package forge.game.ai; import java.util.List; import forge.Card; -import forge.Singletons; import forge.control.input.InputBase; import forge.game.GameState; import forge.game.phase.CombatUtil; diff --git a/src/main/java/forge/game/phase/CombatUtil.java b/src/main/java/forge/game/phase/CombatUtil.java index 694d45f4fdc..4d90c345ed1 100644 --- a/src/main/java/forge/game/phase/CombatUtil.java +++ b/src/main/java/forge/game/phase/CombatUtil.java @@ -35,7 +35,6 @@ import forge.CardPredicates; import forge.Command; import forge.Constant; import forge.GameEntity; -import forge.Singletons; import forge.card.CardType; import forge.card.MagicColor; import forge.card.ability.ApiType; diff --git a/src/main/java/forge/game/player/Player.java b/src/main/java/forge/game/player/Player.java index ee28a17a80c..1ea00ce0199 100644 --- a/src/main/java/forge/game/player/Player.java +++ b/src/main/java/forge/game/player/Player.java @@ -53,7 +53,6 @@ import forge.card.spellability.SpellAbility; import forge.card.spellability.Target; import forge.card.staticability.StaticAbility; import forge.card.trigger.TriggerType; -import forge.control.FControl; import forge.game.GameActionUtil; import forge.game.GameState; import forge.game.GlobalRuleChange; diff --git a/src/main/java/forge/game/player/PlayerController.java b/src/main/java/forge/game/player/PlayerController.java index b664333d1bd..c8752913238 100644 --- a/src/main/java/forge/game/player/PlayerController.java +++ b/src/main/java/forge/game/player/PlayerController.java @@ -139,5 +139,5 @@ public abstract class PlayerController { public abstract String chooseSomeType(String kindOfType, String aiLogic, List validTypes, List invalidTypes); public abstract boolean confirmReplacementEffect(ReplacementEffect replacementEffect, SpellAbility effectSA, String question); - public abstract List getCardsToMulligan(boolean isCommander); + public abstract List getCardsToMulligan(boolean isCommander, Player firstPlayer); } diff --git a/src/main/java/forge/game/player/PlayerControllerAi.java b/src/main/java/forge/game/player/PlayerControllerAi.java index e94adf19a25..ded2da02e3e 100644 --- a/src/main/java/forge/game/player/PlayerControllerAi.java +++ b/src/main/java/forge/game/player/PlayerControllerAi.java @@ -288,7 +288,7 @@ public class PlayerControllerAi extends PlayerController { } @Override - public List getCardsToMulligan(boolean isCommander) { + public List getCardsToMulligan(boolean isCommander, Player firstPlayer) { if( !ComputerUtil.wantMulligan(player) ) return null; diff --git a/src/main/java/forge/game/player/PlayerControllerHuman.java b/src/main/java/forge/game/player/PlayerControllerHuman.java index a104220246a..050fd392657 100644 --- a/src/main/java/forge/game/player/PlayerControllerHuman.java +++ b/src/main/java/forge/game/player/PlayerControllerHuman.java @@ -469,8 +469,8 @@ public class PlayerControllerHuman extends PlayerController { @Override - public List getCardsToMulligan(boolean isCommander) { - final InputConfirmMulligan inp = new InputConfirmMulligan(player, isCommander); + public List getCardsToMulligan(boolean isCommander, Player firstPlayer) { + final InputConfirmMulligan inp = new InputConfirmMulligan(player, firstPlayer, isCommander); player.getGame().getInputQueue().setInputAndWait(inp); return inp.isKeepHand() ? null : inp.getSelectedCards(); } diff --git a/src/main/java/forge/gui/match/ControlWinLose.java b/src/main/java/forge/gui/match/ControlWinLose.java index ae8ae24daf5..6c0726e0afc 100644 --- a/src/main/java/forge/gui/match/ControlWinLose.java +++ b/src/main/java/forge/gui/match/ControlWinLose.java @@ -85,7 +85,8 @@ public class ControlWinLose { public void actionOnRestart() { SOverlayUtils.hideOverlay(); saveOptions(); - match.replay(); + match.clearGamesPlayed(); + match.startRound(); } /** Action performed when "quit" button is pressed in default win/lose UI. */ diff --git a/src/main/java/forge/gui/match/controllers/CDock.java b/src/main/java/forge/gui/match/controllers/CDock.java index 5fd3bcdd43f..6c5a4641462 100644 --- a/src/main/java/forge/gui/match/controllers/CDock.java +++ b/src/main/java/forge/gui/match/controllers/CDock.java @@ -33,7 +33,6 @@ import forge.Card; import forge.CardLists; import forge.CardPredicates.Presets; import forge.Command; -import forge.Singletons; import forge.deck.Deck; import forge.game.GameState; import forge.game.phase.CombatUtil;