internal ClientController(Client client, LoginClient login, ClientInitInfo cii)
        {
            Client = client;
            users  = new Dictionary <int, User>();
            rooms  = new Dictionary <int, Room>();
            _user  = new User(cii.User, login.Name, login.Avatar);
            _room  = new RoomController(Client);
            _users = new ObservableList <User>(cii.LobbyUsers);
            _rooms = new ObservableList <Room>(cii.Rooms);

            foreach (var u in cii.LobbyUsers)
            {
                users.Add(u.Id, u);
            }
            foreach (var r in cii.Rooms)
            {
                rooms.Add(r.Id, r);
                foreach (var u in r.Players)
                {
                    AddUser(u);
                }
                foreach (var u in r.Spectators)
                {
                    AddUser(u);
                }
            }

            users.Add(_user.Id, _user);
            _users.Add(_user);
        }
Exemplo n.º 2
0
 internal Client(TcpClient network, LoginClient login, ClientInitInfo cii)
 {
     Network               = network;
     network.Listener      = this;
     network.Disconnected += () =>
     {
         Disconnected();
         Dispose();
     };
     Controller = new ClientController(this, login, cii);
     KeepAlive  = new Timer(OnKeepAlive, network, PBOMarks.TIMEOUT, PBOMarks.TIMEOUT);
 }