public void JoinGameAsSpectator(User userToJoin, IGame gameToJoin) { var properties = gameToJoin.GetProperties(); if (gameToJoin.GetProperties().IsClosed) { var msg = "The game " + properties.GameIdentifier + " to join was closed!"; ErrorLogger.Error(msg); throw new InvalidExpressionException(msg); } var userState = userToJoin.GetPlayerState(); if (userState == PlayerState.InLobby) { JoinGame(userToJoin, gameToJoin); userToJoin.ChangePlayerState(PlayerState.Spectator); gameToJoin.AddSpectator(userToJoin); } else { var msg = "User " + userToJoin.PlayerName + "[" + userState + "] can't join the game: " + gameToJoin.GetProperties().GameIdentifier; ErrorLogger.Error(msg); throw new InvalidOperationException(msg); } }
public User CreateUser(string name, string password, int id) { var newUser = new User(name, password, id); newUser.ChangePlayerState(PlayerState.InLobby); return(newUser); }
public void ChangePlayerState(User user, PlayerState player) { user.ChangePlayerState(player); }