From 2d4174c6d880aa8c084576648ec4f759a830df2b Mon Sep 17 00:00:00 2001 From: Hanmac Date: Thu, 8 Nov 2018 08:28:32 +0100 Subject: [PATCH] Update ExtraTurn in PlayerView --- .../main/java/forge/game/phase/PhaseHandler.java | 13 +++++++++++++ .../src/main/java/forge/screens/match/CMatchUI.java | 2 ++ 2 files changed, 15 insertions(+) diff --git a/forge-game/src/main/java/forge/game/phase/PhaseHandler.java b/forge-game/src/main/java/forge/game/phase/PhaseHandler.java index 29e13473533..74738a143e0 100644 --- a/forge-game/src/main/java/forge/game/phase/PhaseHandler.java +++ b/forge-game/src/main/java/forge/game/phase/PhaseHandler.java @@ -873,10 +873,13 @@ public class PhaseHandler implements java.io.Serializable { } public final ExtraTurn addExtraTurn(final Player player) { + Player previous = null; // use a stack to handle extra turns, make sure the bottom of the stack // restores original turn order if (extraTurns.isEmpty()) { extraTurns.push(new ExtraTurn(game.getNextPlayerAfter(playerTurn))); + } else { + previous = extraTurns.peek().getPlayer(); } ExtraTurn result = extraTurns.push(new ExtraTurn(player)); @@ -884,6 +887,16 @@ public class PhaseHandler implements java.io.Serializable { for (final Player p : game.getPlayers()) { p.setExtraTurnCount(getExtraTurnForPlayer(p)); } + + // get all players where the view should be updated + List toUpdate = Lists.newArrayList(player); + if (previous != null) { + toUpdate.add(previous); + } + + // fireEvent to update the Details + game.fireEvent(new GameEventPlayerStatsChanged(toUpdate)); + return result; } diff --git a/forge-gui-desktop/src/main/java/forge/screens/match/CMatchUI.java b/forge-gui-desktop/src/main/java/forge/screens/match/CMatchUI.java index 6d6b6c6f555..f1e70a8cb3e 100644 --- a/forge-gui-desktop/src/main/java/forge/screens/match/CMatchUI.java +++ b/forge-gui-desktop/src/main/java/forge/screens/match/CMatchUI.java @@ -412,6 +412,8 @@ public final class CMatchUI if (vHand != null) { vHand.getLayoutControl().updateHand(); } + // update Cards in Hand + getFieldViewFor(owner).updateDetails(); } if (updateAnte) { cAntes.update();