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

                    if (DateTime.UtcNow > m_End)
                    {
                        m_Item.Delete();
                        Stop();
                        return;
                    }

                    var from = m_Item.From;

                    if (m_Item.Map == null || from == null)
                    {
                        return;
                    }

                    foreach (var m in m_Item.GetMobilesInRange(0))
                    {
                        if (m.Z + 16 > m_Item.Z && m_Item.Z + 12 > m.Z && (!Core.AOS || m != from) &&
                            SpellHelper.ValidIndirectTarget(from, m) && from.CanBeHarmful(m, false))
                        {
                            from.DoHarmful(m);

                            AOS.Damage(m, from, m_Item.GetDamage(), 0, 100, 0, 0, 0);
                            m.PlaySound(0x208);
                        }
                    }
                }
Beispiel #2
0
                protected override void OnTick()
                {
                    if (m_Item.Deleted)
                    {
                        return;
                    }

                    if (DateTime.UtcNow > m_End)
                    {
                        m_Item.Delete();
                        Stop();
                        return;
                    }

                    Mobile from = m_Item.From;

                    if (m_Item.Map == null || from == null)
                    {
                        return;
                    }

                    List <Mobile>     mobiles = new List <Mobile>();
                    IPooledEnumerable eable   = m_Item.GetMobilesInRange(0);

                    foreach (Mobile mobile in eable)
                    {
                        mobiles.Add(mobile);
                    }
                    eable.Free();

                    for (int i = 0; i < mobiles.Count; i++)
                    {
                        Mobile m = mobiles[i];

                        if ((m.Z + 16) > m_Item.Z && (m_Item.Z + 12) > m.Z && (!Core.AOS || m != from) && SpellHelper.ValidIndirectTarget(from, m) && from.CanBeHarmful(m, false))
                        {
                            if (from != null)
                            {
                                from.DoHarmful(m);
                            }

                            AOS.Damage(m, from, m_Item.GetDamage(), 0, 100, 0, 0, 0);
                            m.PlaySound(0x208);
                        }
                    }

                    ColUtility.Free(mobiles);
                }
Beispiel #3
0
                protected override void OnTick()
                {
                    if (m_Item.Deleted)
                    {
                        return;
                    }

                    if (DateTime.UtcNow > m_End)
                    {
                        m_Item.Delete();
                        Stop();
                        return;
                    }

                    Mobile from = m_Item.From;

                    if (m_Item.Map == null || from == null)
                    {
                        return;
                    }

                    var mobiles = new List <Mobile>();

                    foreach (Mobile mobile in m_Item.GetMobilesInRange(0))
                    {
                        mobiles.Add(mobile);
                    }

                    for (int i = 0; i < mobiles.Count; i++)
                    {
                        Mobile m = mobiles[i];

                        if ((m.Z + 16) > m_Item.Z && (m_Item.Z + 12) > m.Z && m != from &&
                            SpellHelper.ValidIndirectTarget(from, m) && from.CanBeHarmful(m, false))
                        {
                            if (from != null)
                            {
                                from.DoHarmful(m);
                            }

                            m.Damage(m_Item.GetDamage(), from);
                            m.PlaySound(0x208);
                        }
                    }
                }