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(); }
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); }
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; }