コード例 #1
0
        public void Target(IPoint3D p)
        {
            if (!Caster.CanSee(p))
            {
                Caster.SendLocalizedMessage(500237);                   // Target can not be seen.
            }
            else if (SpellHelper.CheckTown(p, Caster) && CheckSequence())
            {
                SpellHelper.Turn(Caster, p);

                SpellHelper.GetSurfaceTop(ref p);

                Effects.PlaySound(p, Caster.Map, 0x64F);

                double duration = DamagingSkill(Caster) / 5;

                RingOfFire ring = new RingOfFire(duration); ring.MoveToWorld(new Point3D(p.X, p.Y - 3, p.Z), Caster.Map);
                ring = new RingOfFire(duration); ring.MoveToWorld(new Point3D(p.X - 1, p.Y - 2, p.Z), Caster.Map);
                ring = new RingOfFire(duration); ring.MoveToWorld(new Point3D(p.X - 2, p.Y - 1, p.Z), Caster.Map);
                ring = new RingOfFire(duration); ring.MoveToWorld(new Point3D(p.X - 2, p.Y, p.Z), Caster.Map);
                ring = new RingOfFire(duration); ring.MoveToWorld(new Point3D(p.X - 2, p.Y + 1, p.Z), Caster.Map);
                ring = new RingOfFire(duration); ring.MoveToWorld(new Point3D(p.X - 1, p.Y + 2, p.Z), Caster.Map);
                ring = new RingOfFire(duration); ring.MoveToWorld(new Point3D(p.X, p.Y + 3, p.Z), Caster.Map);
                ring = new RingOfFire(duration); ring.MoveToWorld(new Point3D(p.X + 1, p.Y + 2, p.Z), Caster.Map);
                ring = new RingOfFire(duration); ring.MoveToWorld(new Point3D(p.X + 2, p.Y + 1, p.Z), Caster.Map);
                ring = new RingOfFire(duration); ring.MoveToWorld(new Point3D(p.X + 2, p.Y, p.Z), Caster.Map);
                ring = new RingOfFire(duration); ring.MoveToWorld(new Point3D(p.X + 2, p.Y - 1, p.Z), Caster.Map);
                ring = new RingOfFire(duration); ring.MoveToWorld(new Point3D(p.X + 1, p.Y - 2, p.Z), Caster.Map);
                ring = new RingOfFire(duration); ring.MoveToWorld(new Point3D(p.X, p.Y - 4, p.Z), Caster.Map);
                ring = new RingOfFire(duration); ring.MoveToWorld(new Point3D(p.X - 1, p.Y - 3, p.Z), Caster.Map);
                ring = new RingOfFire(duration); ring.MoveToWorld(new Point3D(p.X - 2, p.Y - 2, p.Z), Caster.Map);
                ring = new RingOfFire(duration); ring.MoveToWorld(new Point3D(p.X + 1, p.Y - 3, p.Z), Caster.Map);
                ring = new RingOfFire(duration); ring.MoveToWorld(new Point3D(p.X + 2, p.Y - 2, p.Z), Caster.Map);
                ring = new RingOfFire(duration); ring.MoveToWorld(new Point3D(p.X - 2, p.Y - 2, p.Z), Caster.Map);
                ring = new RingOfFire(duration); ring.MoveToWorld(new Point3D(p.X - 1, p.Y + 3, p.Z), Caster.Map);
                ring = new RingOfFire(duration); ring.MoveToWorld(new Point3D(p.X, p.Y + 4, p.Z), Caster.Map);
                ring = new RingOfFire(duration); ring.MoveToWorld(new Point3D(p.X + 1, p.Y + 3, p.Z), Caster.Map);
                ring = new RingOfFire(duration); ring.MoveToWorld(new Point3D(p.X + 2, p.Y + 2, p.Z), Caster.Map);

                Server.Misc.Research.ConsumeScroll(Caster, true, spellIndex, false);
            }

            FinishSequence();
        }