Exemple #1
0
            protected override void OnTick()
            {
                if (m_Item.Deleted)
                {
                    return;
                }

                if (!m_Item.Visible)
                {
                    if (m_InLOS && m_CanFit)
                    {
                        m_Item.Visible = true;
                    }
                    else
                    {
                        m_Item.Delete();
                    }

                    if (!m_Item.Deleted)
                    {
                        m_Item.ProcessDelta();
                        Effects.SendLocationParticles(EffectItem.Create(m_Item.Location, m_Item.Map, EffectItem.DefaultDuration), m_Item.ItemID, 9, 10, 5029);
                    }
                }
                else if (DateTime.Now > m_Item.m_End)
                {
                    m_Item.Delete();
                    Stop();
                }
                else
                {
                    Map          map    = m_Item.Map;
                    BaseCreature caster = m_Item.m_Caster;

                    if (map != null && caster != null)
                    {
                        foreach (Mobile m in m_Item.GetMobilesInRange(0))
                        {
                            if ((m.Z + 16) > m_Item.Z && (m_Item.Z + 12) > m.Z && ValidTarget(caster, m))
                            {
                                m_Queue.Enqueue(m);
                            }
                        }

                        while (m_Queue.Count > 0)
                        {
                            Mobile m = (Mobile)m_Queue.Dequeue();

                            if (caster.Name == ("an ice dragon"))
                            {
                                caster.Animate(19, 10, 2, true, false, 0);
                                return;
                            }
                            if (caster.Name == ("a fire dragon"))
                            {
                                caster.Animate(19, 10, 2, true, false, 0);
                                return;
                            }

                            caster.DoHarmful(m);

                            caster.BreathDealDamage(m);

                            caster.AOESpecialEffect(m);

                            /*
                             * int damage = Utility.Random(8) + 3;
                             *
                             * if (!Core.AOS && m.CheckSkill(SkillName.MagicResist, 0.0, 30.0))
                             * {
                             *  damage = 1;
                             *
                             *  m.SendLocalizedMessage(501783); // You feel yourself resisting magical energy.
                             * }
                             *
                             * AOS.Damage(m, caster, damage, 0, 0, 100, 0, 0);
                             */
                            m.PlaySound(0x15);
                        }
                    }
                }
            }