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()); }
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)); }
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)); }