示例#1
0
        public JoinedLobby(LobbyDataPacket data, IClientSocket connection)
        {
            Data        = data;
            _connection = connection;
            connection.SetHandler((short)MsfOpCodes.LobbyMemberPropertyChanged, HandleMemberPropertyChanged);
            connection.SetHandler((short)MsfOpCodes.LeftLobby, HandleLeftLobbyMsg);
            connection.SetHandler((short)MsfOpCodes.LobbyChatMessage, HandleLobbyChatMessageMsg);
            connection.SetHandler((short)MsfOpCodes.LobbyMemberJoined, HandleLobbyMemberJoinedMsg);
            connection.SetHandler((short)MsfOpCodes.LobbyMemberLeft, HandleLobbyMemberLeftMsg);
            connection.SetHandler((short)MsfOpCodes.LobbyStateChange, HandleLobbyStateChangeMsg);
            connection.SetHandler((short)MsfOpCodes.LobbyStatusTextChange, HandleLobbyStatusTextChangeMsg);
            connection.SetHandler((short)MsfOpCodes.LobbyMemberChangedTeam, HandlePlayerTeamChangeMsg);
            connection.SetHandler((short)MsfOpCodes.LobbyMemberReadyStatusChange, HandleLobbyMemberReadyStatusChangeMsg);
            connection.SetHandler((short)MsfOpCodes.LobbyMasterChange, HandleLobbyMasterChangeMsg);
            connection.SetHandler((short)MsfOpCodes.LobbyPropertyChanged, HandleLobbyPropertyChanged);

            Properties = data.LobbyProperties;
            Members    = data.Players;
            Teams      = data.Teams;
        }
示例#2
0
        public LobbyDataPacket GenerateLobbyData(LobbyUserPeerExtension user)
        {
            var info = new LobbyDataPacket
            {
                LobbyType       = Type ?? "",
                GameMaster      = GameMaster != null ? GameMaster.Username : "",
                LobbyName       = Name,
                LobbyId         = Id,
                LobbyProperties = propertiesList,
                Players         = membersList.Values
                                  .ToDictionary(m => m.Username, GenerateMemberData),
                Teams               = teamsList.Values.ToDictionary(t => t.Name, t => t.GenerateData()),
                Controls            = Controls,
                LobbyState          = State,
                MaxPlayers          = MaxPlayers,
                EnableTeamSwitching = Config.EnableTeamSwitching,
                EnableReadySystem   = Config.EnableReadySystem,
                EnableManualStart   = Config.EnableManualStart,
                CurrentUserUsername = TryGetUsername(user.Peer)
            };

            return(info);
        }