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