Beispiel #1
0
        public void RemoveUser(ClaimsPrincipal user, Action <long> onGameFinish, Action <long> onTurnTimeout)
        {
            lock (lobbyLock)
            {
                if (!HasUser(user))
                {
                    return;
                }

                var removeUser = players
                                 .Where((item) => item.GetUserLoginID() == user.GetUserLoginID())
                                 .FirstOrDefault();

                players.Remove(removeUser);
                hosts.Remove(removeUser);
                if (hosts.Count == 0 && players.Count > 0)
                {
                    hosts.Add(players[0]);
                }
                if (InGame())
                {
                    GameLogicController.GameUserLeave(removeUser, onTurnTimeout, onGameFinish);
                }
            }
        }