From 54fc7e9481cec302614b61dbf077e7995a7f7c24 Mon Sep 17 00:00:00 2001 From: "marcins78@gmail.com" Date: Tue, 25 Oct 2011 12:32:29 +0000 Subject: [PATCH] Sending GameStats on joining a game. --- .../gempukku/lotro/game/state/GameState.java | 12 +++++----- .../lotro/logic/timing/DefaultLotroGame.java | 22 ++++--------------- .../lotro/logic/timing/TurnProcedure.java | 4 ++++ 3 files changed, 15 insertions(+), 23 deletions(-) diff --git a/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/game/state/GameState.java b/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/game/state/GameState.java index 20e769c22..e4c77f92c 100644 --- a/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/game/state/GameState.java +++ b/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/game/state/GameState.java @@ -59,7 +59,7 @@ public class GameState { return _nextCardId++; } - public void init(PlayerOrder playerOrder, String firstPlayer, Map> cards, LotroCardBlueprintLibrary library) { + public void init(PlayerOrder playerOrder, String firstPlayer, Map> cards, LotroCardBlueprintLibrary library, GameStats gameStats) { _playerOrder = playerOrder; _currentPlayerId = firstPlayer; @@ -81,7 +81,7 @@ public class GameState { } for (String playerId : _gameStateListeners.keySet()) - sendStateToPlayer(playerId); + sendStateToPlayer(playerId, gameStats); } private String _possibleChars = "abcdefghijklmnopqrstuvwxyz0123456789"; @@ -174,9 +174,9 @@ public class GameState { return _playerOrder; } - public void addGameStateListener(String playerId, GameStateListener gameStateListener) { + public void addGameStateListener(String playerId, GameStateListener gameStateListener, GameStats gameStats) { _gameStateListeners.put(playerId, gameStateListener); - sendStateToPlayer(playerId); + sendStateToPlayer(playerId, gameStats); } public void removeGameStateListener(String playerId, GameStateListener gameStateListener) { @@ -200,7 +200,7 @@ public class GameState { return allListeners; } - private void sendStateToPlayer(String playerId) { + private void sendStateToPlayer(String playerId, GameStats gameStats) { if (_playerOrder != null) { GameStateListener listener = _gameStateListeners.get(playerId); listener.setPlayerOrder(_playerOrder.getAllPlayers()); @@ -259,6 +259,8 @@ public class GameState { listener.addTokens(card, tokenIntegerEntry.getKey(), count); } } + + listener.sendGameStats(gameStats); } } diff --git a/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/logic/timing/DefaultLotroGame.java b/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/logic/timing/DefaultLotroGame.java index 4e6db41aa..82aed8134 100644 --- a/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/logic/timing/DefaultLotroGame.java +++ b/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/logic/timing/DefaultLotroGame.java @@ -31,7 +31,6 @@ public class DefaultLotroGame implements LotroGame { private TurnProcedure _turnProcedure; private ActionStack _actionStack; - private Map _gameStateListeners = new HashMap(); private LotroFormat _format; private GameResultListener _gameResultListener; @@ -69,11 +68,8 @@ public class DefaultLotroGame implements LotroGame { new PlayerOrderFeedback() { @Override public void setPlayerOrder(PlayerOrder playerOrder, String firstPlayer) { - _gameState.init(playerOrder, firstPlayer, cards, library); - for (Map.Entry stringGameStateListenerEntry : _gameStateListeners.entrySet()) - _gameState.addGameStateListener(stringGameStateListenerEntry.getKey(), stringGameStateListenerEntry.getValue()); - _gameStateListeners = null; - + final GameStats gameStats = _turnProcedure.getGameStats(); + _gameState.init(playerOrder, firstPlayer, cards, library, gameStats); } } ); @@ -177,21 +173,11 @@ public class DefaultLotroGame implements LotroGame { } } - public ActionStack getActionStack() { - return _actionStack; - } - public void addGameStateListener(String playerId, GameStateListener gameStateListener) { - if (_gameState != null) - _gameState.addGameStateListener(playerId, gameStateListener); - else - _gameStateListeners.put(playerId, gameStateListener); + _gameState.addGameStateListener(playerId, gameStateListener, _turnProcedure.getGameStats()); } public void removeGameStateListener(String playerId, GameStateListener gameStateListener) { - if (_gameState != null) - _gameState.removeGameStateListener(playerId, gameStateListener); - else - _gameStateListeners.remove(playerId); + _gameState.removeGameStateListener(playerId, gameStateListener); } } diff --git a/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/logic/timing/TurnProcedure.java b/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/logic/timing/TurnProcedure.java index d173a73f7..53e726443 100644 --- a/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/logic/timing/TurnProcedure.java +++ b/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/logic/timing/TurnProcedure.java @@ -35,6 +35,10 @@ public class TurnProcedure { _gameProcess = new BiddingGameProcess(players, lotroGame, playerOrderFeedback); } + public GameStats getGameStats() { + return _gameStats; + } + public void carryOutPendingActionsUntilDecisionNeeded() { while (!_userFeedback.hasPendingDecisions() && _game.getWinnerPlayerId() == null) { if (_actionStack.isEmpty()) {