Example #1
0
    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;
    }
Example #3
0
    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;
    }
Example #4
0
        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;
            }
        }