Esempio n. 1
0
        void ConnectionService_onPlayerConnect(ConnectionService con)
        {
            //Create a player instance
            Player player = new Player(con);

            Players.Add(player);
            Connections.Add(con, player);
            //Try to find a room for the player. If no room is found, create one.
            Room room;

            if (SearchingRooms.Count > 0)
            {
                room = SearchingRooms.First();
            }
            else
            {
                room = new Room(IDGen.GenerateRoomID());
                AllRooms.Add(room.RoomID, room);
                SearchingRooms.Add(room);
            }
            if (room.AddPlayer(player))
            {
                SearchingRooms.Remove(room);
            }
        }
Esempio n. 2
0
        void ConnectionService_onPlayerDisconnect(ConnectionService con)
        {
            //Remove player if it disconnects
            Player player = Connections[con];

            if (player.MyRoomID != 0)
            {
                //Remove player from room; if room has no more players, remove the room
                Room room = AllRooms[player.MyRoomID];
                if (room.RemovePlayer(player))
                {
                    AllRooms.Remove(room.RoomID);
                    SearchingRooms.Remove(room);
                }
            }
            Connections.Remove(con);
            Players.Remove(player);
        }