public BattleshipsService(Battleships game, string playerId) { _gameStarter = new GameStarter(game); _gameJoiner = new GameJoiner(game); _gameResigner = new GameResigner(game); _gameRestarter = new GameRestarter(game); _gamePlayerGetter = new GamePlayerGetter <BattleshipsPlayerModel>(game); _gameMover = new GameMover <BattleshipsPosition>(game); _playerId = playerId; _game = game; }
public ConnectFourService(ConnectFour game, string playerId) { _gameStarter = new GameStarter(game); _gameJoiner = new GameJoiner(game); _gameResigner = new GameResigner(game); _gameRestarter = new GameRestarter(game); _gamePlayerGetter = new GamePlayerGetter <ConnectFourPlayer>(game); _gameStateGetter = new GameStateGetter <ConnectFourGameState>(game); _gameMover = new GameMover <int>(game); _playerId = playerId; }
public ChessService(Chess game, string playerId) { _gameStarter = new GameStarter(game); _gameJoiner = new GameJoiner(game); _gameResigner = new GameResigner(game); _gameRestarter = new GameRestarter(game); _gamePlayerGetter = new GamePlayerGetter <ChessPlayer>(game); _gameStateGetter = new GameStateGetter <ChessGameState>(game); _gameMover = new GameMover <Move>(game); _playerId = playerId; _game = game; }
protected async Task UpdateGameState(GameState gameState) { if (GameState == null || GameState.GameId == gameState.GameId) { GameState = gameState; if (!GameStateManager.UserHasJoinedGame(gameState, UserConnectionInfo.User)) { Team = await GameJoiner.JoinGameAsync(gameState.GameId, UserConnectionInfo.User); } else { Team = gameState.Teams.FirstOrDefault(t => t.Users.Any(u => u.UserId == UserConnectionInfo.User.UserId)); } var user = Team?.Users.FirstOrDefault(u => u.UserId == UserConnectionInfo.User.UserId); if (user != null) { if (user.NextActionUnlocked > DateTime.Now) { Logger.LogInformation($"Locking Actions Due to NextActionLock for: {user.DisplayName} {user.NextActionUnlocked} {DateTime.Now}"); ActionsLocked = true; } ActionLockCountDown.UpdateCountDownTo(user.NextActionUnlocked); } if (GameState.GameResult != null && NextGameState == null) { NextGameState = new GameState() { GameId = GameState.GameResult.NextGameId }; Logger.LogInformation($"Creating Next Game State: {NextGameState.GameId}"); StartGameCountDown.UpdateCountDownTo(DateTime.Now.AddSeconds(gameState.GameSettings.GameStartDelaySeconds)); } } else if (NextGameState != null && NextGameState.GameId == gameState.GameId) { Logger.LogInformation($"Logging Next Game State"); NextGameState = gameState; if (!GameStateManager.UserHasJoinedGame(gameState, UserConnectionInfo.User)) { await GameJoiner.JoinGameAsync(gameState.GameId, UserConnectionInfo.User); } } else { Logger.LogInformation($"How did we get here?"); Logger.LogInformation($"NextGameState Null? {NextGameState==null}"); Logger.LogInformation($"NextGameState.GameId? {NextGameState?.GameId}"); Logger.LogInformation($"gameState.GameId? {gameState?.GameId}"); Logger.LogInformation($"All Together? {NextGameState != null && NextGameState.GameId == gameState.GameId}"); } if (gameState.GameStart > DateTime.Now) { StartGameCountDown.UpdateCountDownTo(gameState.GameStart); ActionLockCountDown.UpdateCountDownTo(null); Logger.LogInformation($"Locking Actions Due to Game Start Timer: {gameState.GameStart.ToLongTimeString()}"); ActionsLocked = true; } }