예제 #1
0
파일: GameCenter.cs 프로젝트: rosilio6/test
        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);
            }
        }
예제 #2
0
        public User CreateUser(string name, string password, int id)
        {
            var newUser = new User(name, password, id);

            newUser.ChangePlayerState(PlayerState.InLobby);
            return(newUser);
        }
예제 #3
0
 public void ChangePlayerState(User user, PlayerState player)
 {
     user.ChangePlayerState(player);
 }