protected override void OnTick() { if (m_Player.Deleted) { Stop(); return; } if (!m_Player.Mounted) { m_Player.Animate(Utility.RandomBool() ? 16 : 17, 7, 1, true, false, 0); } if (m_Step == 4) { int baseX = KronusScroll.m_WellOfTearsArea.X; int baseY = KronusScroll.m_WellOfTearsArea.Y; int width = KronusScroll.m_WellOfTearsArea.Width; int height = KronusScroll.m_WellOfTearsArea.Height; Map map = KronusScroll.m_WellOfTearsMap; Effects.SendLocationParticles(EffectItem.Create(m_Player.Location, m_Player.Map, TimeSpan.FromSeconds(1.0)), 0, 0, 0, 0x13C4); Effects.PlaySound(m_Player.Location, m_Player.Map, 0x243); for (int i = 0; i < 15; i++) { int x = baseX + Utility.Random(width); int y = baseY + Utility.Random(height); int z = map.GetAverageZ(x, y); Point3D from = new Point3D(x, y, z + Utility.RandomMinMax(5, 20)); Point3D to = new Point3D(x, y, z); int hue = Utility.RandomList(0x481, 0x482, 0x489, 0x497, 0x66D); Effects.SendPacket(from, map, new HuedEffect(EffectType.Moving, Serial.Zero, Serial.Zero, 0x36D4, from, to, 0, 0, false, true, hue, 0)); } } if (m_Step < 5) { m_Player.Frozen = true; } else // Cast completed { m_Player.Frozen = false; SummonedPaladin.BeginSummon(m_Player); } m_Step++; }
protected override void OnTick() { if (m_Player.Deleted) { if (m_Step > 0) { m_Paladin.Delete(); } return; } if (m_Step > 0 && m_Paladin.Deleted) { return; } if (m_Step == 0) { SummonedPaladinMoongate moongate = new SummonedPaladinMoongate(); moongate.MoveToWorld(new Point3D(2091, 1348, -90), Map.Malas); Effects.PlaySound(moongate.Location, moongate.Map, 0x20E); m_Paladin = new SummonedPaladin(m_Player); m_Paladin.Frozen = true; m_Paladin.Location = moongate.Location; m_Paladin.Map = moongate.Map; Delay = TimeSpan.FromSeconds(2.0); Start(); } else if (m_Step == 1) { m_Paladin.Direction = m_Paladin.GetDirectionTo(m_Player); m_Paladin.Say(1060122); // STOP WICKED ONE! Delay = TimeSpan.FromSeconds(3.0); Start(); } else { m_Paladin.Frozen = false; m_Paladin.Say(1060123); // I will slay you before I allow you to complete your evil rites! m_Paladin.Combatant = m_Player; } m_Step++; }