Sending GameStats on joining a game.
This commit is contained in:
@@ -59,7 +59,7 @@ public class GameState {
|
||||
return _nextCardId++;
|
||||
}
|
||||
|
||||
public void init(PlayerOrder playerOrder, String firstPlayer, Map<String, List<String>> cards, LotroCardBlueprintLibrary library) {
|
||||
public void init(PlayerOrder playerOrder, String firstPlayer, Map<String, List<String>> 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);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -31,7 +31,6 @@ public class DefaultLotroGame implements LotroGame {
|
||||
private TurnProcedure _turnProcedure;
|
||||
private ActionStack _actionStack;
|
||||
|
||||
private Map<String, GameStateListener> _gameStateListeners = new HashMap<String, GameStateListener>();
|
||||
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<String, GameStateListener> 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);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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()) {
|
||||
|
||||
Reference in New Issue
Block a user