Esempio n. 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();
 }
Esempio n. 2
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);
        }
Esempio n. 3
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;
        }