public FlameOfOrder(Point3D location, Map map) : base(0x19AB) { Movable = false; Light = LightType.Circle225; MoveToWorld(location, map); m_Barriers = new List <EnergyBarrier>(m_BarrierLocations.Length); m_Blockers = new List <Blocker>(m_BarrierLocations.Length); m_LOSBlockers = new List <LOSBlocker>(m_BarrierLocations.Length); m_MsgTriggers = new List <SBMessageTrigger>(m_MsgTriggerLocations.Length); foreach (Point3D loc in m_BarrierLocations) { m_Barriers.Add(new EnergyBarrier(loc, map)); Blocker blocker = new Blocker(); blocker.MoveToWorld(loc, map); m_Blockers.Add(blocker); LOSBlocker losblocker = new LOSBlocker(); losblocker.MoveToWorld(loc, map); m_LOSBlockers.Add(losblocker); } foreach (Point3D loc in m_MsgTriggerLocations) { SBMessageTrigger trigger = new SBMessageTrigger(this); trigger.MoveToWorld(loc, map); m_MsgTriggers.Add(trigger); } }
protected void RestoreBarrier() { for (var index = 0; index < m_Barriers.Count; index++) { EnergyBarrier barrier = m_Barriers[index]; barrier.Active = true; } for (var index = 0; index < m_BarrierLocations.Length; index++) { Point3D loc = m_BarrierLocations[index]; Blocker blocker = new Blocker(); blocker.MoveToWorld(loc, Map); m_Blockers.Add(blocker); LOSBlocker losblocker = new LOSBlocker(); losblocker.MoveToWorld(loc, Map); m_LOSBlockers.Add(losblocker); } Visible = true; }
protected void RestoreBarrier() { foreach (EnergyBarrier barrier in m_Barriers) { barrier.Active = true; } foreach (Point3D loc in m_BarrierLocations) { Blocker blocker = new Blocker(); blocker.MoveToWorld(loc, Map); m_Blockers.Add(blocker); LOSBlocker losblocker = new LOSBlocker(); losblocker.MoveToWorld(loc, Map); m_LOSBlockers.Add(losblocker); } Visible = true; }
private static void GenerateCoral_OnCommand(CommandEventArgs e) { e.Mobile.SendMessage("Generating Corals..."); int count = 0; for(int i = 0; i < limits.Length; i++) { Point2D actual = limits[i]; Point2D next = (i == limits.Length - 1 ? limits[0] : limits[i + 1]); for (int x = actual.X, y = actual.Y; x != next.X || y != next.Y;) { if (x != next.X) { if (x < next.X) x++; else x--; } if (y != next.Y) { if (y < next.Y) y++; else y--; } Static rock = new Static(rocks[Utility.Random(0, rocks.Count)]); Item blocker = new Blocker(); Item losBlocker = new LOSBlocker(); int z = map.GetAverageZ(x, y); // on récupère la hauteur du sol à cet endroit rock.MoveToWorld(new Point3D(x, y, z), map); // le rocher pour la forme blocker.MoveToWorld(new Point3D(x, y, z), map); // un blocker pour empêcher de passer même avec un sea horse par exemple losBlocker.MoveToWorld(new Point3D(x, y, z), map); // pour empêcher tout sort de téléport de fonctionner count++; } } e.Mobile.SendMessage(String.Format("{0} Corals have been generated !", count)); }