protected override void OnTick() { if (m_Item.Deleted) { return; } if (DateTime.UtcNow > m_Item.m_End) { m_Item.Delete(); Stop(); } else { Map map = m_Item.Map; Mobile 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 && (!Core.AOS || m != caster) && SpellHelper.ValidIndirectTarget(caster, m) && caster.CanBeHarmful(m, false)) { m_Queue.Enqueue(m); } } while (m_Queue.Count > 0) { Mobile m = (Mobile)m_Queue.Dequeue(); if (SpellHelper.CanRevealCaster(m)) { caster.RevealingAction(); } caster.DoHarmful(m); int damage = m_Item.m_Damage; 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, 100, 0, 0, 0); m.PlaySound(0x208); if (m is BaseCreature) { ((BaseCreature)m).OnHarmfulSpell(caster); } } } } }
protected override void OnTick() { if (m_Item.Deleted) { return; } if (DateTime.UtcNow > m_Item.m_End) { m_Item.Delete(); Stop(); } else { Map map = m_Item.Map; Mobile caster = m_Item.m_Caster; if (map != null && caster != null) { IPooledEnumerable eable = m_Item.GetMobilesInRange(0); foreach (Mobile m in eable) { if ((m.Z + 16) > m_Item.Z && (m_Item.Z + 12) > m.Z && m != caster && SpellHelper.ValidIndirectTarget(caster, m) && caster.CanBeHarmful(m, false)) { m_Queue.Enqueue(m); } } eable.Free(); while (m_Queue.Count > 0) { Mobile m = (Mobile)m_Queue.Dequeue(); if (SpellHelper.CanRevealCaster(m)) { caster.RevealingAction(); } caster.DoHarmful(m); int damage = m_Item.m_Damage; AOS.Damage(m, caster, damage, 0, 100, 0, 0, 0); m.PlaySound(0x208); if (m is BaseCreature) { ((BaseCreature)m).OnHarmfulSpell(caster); } } } } }
protected override void OnTick() { if (m_Item.Deleted) { return; } else if (DateTime.Now > m_Item.m_End) { m_Item.Delete(); Stop(); } else { Map map = m_Item.Map; Mobile caster = m_Item.m_Caster; if (map != null && caster != null) { foreach (Mobile m in m_Item.GetMobilesInRange(0)) { if (m != caster && caster.CanBeHarmful(m, false)) { m_Queue.Enqueue(m); } } while (m_Queue.Count > 0) { Mobile m = m_Queue.Dequeue(); caster.DoHarmful(m); AOS.Damage(m, caster, Utility.RandomMinMax(15, 20), 0, 100, 0, 0, 0); m.PlaySound(0x5CF); } } } }
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), 0x376A, 9, 10, 5029 ); } } else if (DateTime.UtcNow > m_Item.m_End) { m_Item.Delete(); Stop(); } else { var map = m_Item.Map; var caster = m_Item.m_Caster; if (map == null || caster == 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 != caster) && SpellHelper.ValidIndirectTarget(caster, m) && caster.CanBeHarmful(m, false)) { m_Queue.Enqueue(m); } } while (m_Queue.Count > 0) { var m = (Mobile)m_Queue.Dequeue(); if (SpellHelper.CanRevealCaster(m)) { caster.RevealingAction(); } caster.DoHarmful(m); var damage = m_Item.m_Damage; 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, 100, 0, 0, 0); m.PlaySound(0x208); (m as BaseCreature)?.OnHarmfulSpell(caster); } } }
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), 0x376A, 9, 10, Server.Items.CharacterDatabase.GetMySpellHue(m_Item.m_Caster, 0), 0, 5029, 0); } } else if (DateTime.Now > m_Item.m_End) { m_Item.Delete(); Stop(); } else { Map map = m_Item.Map; Mobile 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 && (!Core.AOS || m != caster) && SpellHelper.ValidIndirectTarget(caster, m) && caster.CanBeHarmful(m, false)) { m_Queue.Enqueue(m); } } while (m_Queue.Count > 0) { Mobile m = (Mobile)m_Queue.Dequeue(); if (SpellHelper.CanRevealCaster(m)) { caster.RevealingAction(); } caster.DoHarmful(m); int damage = m_Item.m_Damage; AOS.Damage(m, caster, damage, 0, 100, 0, 0, 0); m.PlaySound(0x5CF); if (m is BaseCreature) { ((BaseCreature)m).OnHarmfulSpell(caster); } } } } }
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), 0x376A, 9, 10, 5029); } } else if (DateTime.UtcNow > m_Item.m_End) { m_Item.Delete(); Stop(); } else { Map map = m_Item.Map; Mobile caster = m_Item.m_Caster; if (map != null && caster != null) { IPooledEnumerable eable = m_Item.GetMobilesInRange(0); foreach (Mobile m in eable) { if ((m.Z + 16) > m_Item.Z && (m_Item.Z + 12) > m.Z && SpellHelper.ValidIndirectTarget(caster, m) && caster.CanBeHarmful(m, false)) { m_Queue.Enqueue(m); } } eable.Free(); while (m_Queue.Count > 0) { Mobile m = (Mobile)m_Queue.Dequeue(); caster.DoHarmful(m); double damage = (double)m_Item.m_Damage; if (m_ResistCheck && m.CheckSkill(SkillName.MagicResist, 0.0, m_Item.MaxResist, 1.0)) { damage *= .5; } if (m_Item.m_Enhanced && m is BaseCreature) { damage *= .5; } int finalDamage = (int)Math.Round(damage); if (finalDamage < 1) { finalDamage = 1; } AOS.Damage(m, caster, finalDamage, 0, 100, 0, 0, 0); m.PlaySound(0x208); if (m is BaseCreature) { ((BaseCreature)m).OnHarmfulSpell(caster); } } } } }
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), 0x376A, 9, 10, 5029); } } else if (DateTime.Now > m_Item.m_End) { m_Item.Delete(); Stop(); } else { Map map = m_Item.Map; Mobile 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 && (!Core.AOS || m != caster) && SpellHelper.ValidIndirectTarget(caster, m) && caster.CanBeHarmful(m, false)) { m_Queue.Enqueue(m); } } while (m_Queue.Count > 0) { Mobile m = (Mobile)m_Queue.Dequeue(); caster.DoHarmful(m); int damage = m_Item.m_Damage; if (!Core.AOS && m.CheckSkill(SkillName.MagicResist, 0.0, 30.0)) { damage = 1; m.SendAsciiMessage("You feel yourself resisting magical energy."); // You feel yourself resisting magical energy. } AOS.Damage(m, caster, damage, 0, 100, 0, 0, 0); m.PlaySound(0x208); } } } }