Exemple #1
0
 public MDDSRoom(MDDSInstance instance, Point3D entry, List <Point3D> exits)
 {
     m_Instance  = instance;
     m_Entry     = entry;
     m_Exits     = exits;
     m_Monsters  = new List <Mobile>();
     m_ExitGates = new List <MDDSGate>();
     GenExits();
 }
Exemple #2
0
        private List <MDDSRoom> GenRooms(MDDSInstance instance)
        {
            List <MDDSRoom> rooms = new List <MDDSRoom>();

            List <RoomCoords> tmp = new List <RoomCoords>(MDDSCoords.Rooms);

            while (tmp.Count > 0)
            {
                int next = Utility.RandomMinMax(0, tmp.Count - 1);
                rooms.Add(new MDDSRoom(instance, tmp[next].Entry, tmp[next].Exits));
                tmp.RemoveAt(next);
            }
            return(rooms);
        }
Exemple #3
0
        public override void OnDoubleClick(Mobile from)
        {
            if (m_Maps == null)
            {
                m_Maps = FillMaps();
            }

            if (m_Instances.Count >= m_Maps.Count || !from.InRange(this.Location, 2))
            {
                base.OnDoubleClick(from);
                return;
            }

            MDDSInstance newInstance = new MDDSInstance(this, FindFreeMap(), from.Location, from.Map);

            ClearGates(newInstance.Map);
            newInstance.Rooms = GenRooms(newInstance);
            newInstance.Followers.Add(from);

            from.SendMessage("Bienvenue dans le MDDS de la map {0}...", newInstance.Map.Name);
            from.MoveToWorld(newInstance.Rooms[0].Entry, newInstance.Map);

            m_Instances.Add(newInstance);
        }