コード例 #1
0
ファイル: MafiaHub.cs プロジェクト: ukrgerri4/BoardApp
        public HubResult GetState(string gameId)
        {
            _gameService.Games.TryGetValue(gameId, out IGame game);
            if (game == null)
            {
                return(HubResult.Fail("Game not found."));
            }

            Clients.User(Context.UserIdentifier).SendAsync("upd-state", game.GameStatePacket());

            return(HubResult.Ok());
        }
コード例 #2
0
ファイル: MafiaHub.cs プロジェクト: ukrgerri4/BoardApp
        public async Task <HubResult> JoinGame(string gameId)
        {
            if (_activeUserService.HasGameConnections(Context.UserIdentifier))
            {
                return(HubResult.Fail("User already in game."));
            }

            _gameService.Games.TryGetValue(gameId, out IGame game);
            var user = await _userManager.FindByIdAsync(Context.UserIdentifier);

            if (game == null || user == null)
            {
                return(HubResult.Fail("Game not found."));
            }

            game.AddPlayer(user);
            return(HubResult.Ok(game.Id));
        }
コード例 #3
0
ファイル: MafiaHub.cs プロジェクト: ukrgerri4/BoardApp
        public async Task <HubResult> CreateGame(MafiaCreateGameOptions options)
        {
            if (_activeUserService.HasGameConnections(Context.UserIdentifier))
            {
                return(HubResult.Fail("User already in game."));
            }

            var user = await _userManager.FindByIdAsync(Context.UserIdentifier);

            var game = _mafiaGameBuilder
                       .CreateGame()
                       .WithName(options.Name)
                       .HasMaxPlayers(options.MaxPlayers)
                       .ContainsPlayer(user)
                       .Build();

            _gameService.AddGame(game);

            return(HubResult.Ok(game.Id));
        }