public void Target(Mobile m) { if (!Caster.CanSee(m)) { Caster.SendLocalizedMessage(500237); // Target can not be seen. } else if (CheckHSequence(m)) { SpellHelper.Turn(Caster, m); SpellHelper.CheckReflect((int)Circle, Caster, ref m); if (m.Spell != null) { m.Spell.OnCasterHurt(); } m.Paralyzed = false; if (CheckResisted(m) || Server.Spells.Mysticism.StoneFormSpell.CheckImmunity(m)) { m.SendLocalizedMessage(501783); // You feel yourself resisting magical energy. } else { int level; if (Core.AOS) { int total = (Caster.Skills.Magery.Fixed + Caster.Skills.Poisoning.Fixed) / 2; if (Core.SA && Caster.InRange(m, 8)) { int range = (int)Caster.GetDistanceToSqrt(m.Location); if (total >= 1000) { level = Utility.RandomDouble() <= .1 ? 4 : 3; } else if (total > 850) { level = 2; } else if (total > 650) { level = 1; } else { level = 0; } if (!Caster.InRange(m, 2)) { level -= range / 2; } if (level < 0) { level = 0; } } else if (Caster.InRange(m, 2)) { if (total >= 1000) { level = 3; } else if (total > 850) { level = 2; } else if (total > 650) { level = 1; } else { level = 0; } } else { level = 0; } } else { //double total = Caster.Skills[SkillName.Magery].Value + Caster.Skills[SkillName.Poisoning].Value; #region Dueling double total = Caster.Skills[SkillName.Magery].Value; if (Caster is Mobiles.PlayerMobile) { Mobiles.PlayerMobile pm = (Mobiles.PlayerMobile)Caster; if (pm.DuelContext != null && pm.DuelContext.Started && !pm.DuelContext.Finished && !pm.DuelContext.Ruleset.GetOption("Skills", "Poisoning")) { } else { total += Caster.Skills[SkillName.Poisoning].Value; } } else { total += Caster.Skills[SkillName.Poisoning].Value; } #endregion double dist = Caster.GetDistanceToSqrt(m); if (dist >= 3.0) { total -= (dist - 3.0) * 10.0; } if (total >= 200.0 && 1 > Utility.Random(10)) { level = 3; } else if (total > (Core.AOS ? 170.1 : 170.0)) { level = 2; } else if (total > (Core.AOS ? 130.1 : 130.0)) { level = 1; } else { level = 0; } } m.ApplyPoison(Caster, Poison.GetPoison(level)); } m.FixedParticles(0x374A, 10, 15, 5021, EffectLayer.Waist); m.PlaySound(0x205); HarmfulSpell(m); } FinishSequence(); }
public bool Equals(Mobiles.PlayerMobile pm) { return(pm != null && pm.Account != null && Accounts != null && Equals(pm.Account)); }