public override bool DoEffect(Mobile from, Mobile target) { bool result = false; if (!SpellHelper.HasStatEffect(target, m_Stat) && from.CanSee(target) && from.InLOS(target) && target.Alive && from.CanBeHarmful(target)) { from.DoHarmful(target); SpellHelper.Turn(from, target); SpellHelper.CheckReflect(2, from, ref target); if (m_Stat != StatType.All) { SpellHelper.AddStatCurse(null, target, m_Stat); result = true; } else { if (from.Player && target.Player && !CurseSpell.UnderEffect(target)) { SpellHelper.AddStatCurse(null, target, StatType.Str); SpellHelper.DisableSkillCheck = true; SpellHelper.AddStatCurse(null, target, StatType.Dex); SpellHelper.AddStatCurse(null, target, StatType.Int); SpellHelper.DisableSkillCheck = false; TimeSpan duration = SpellHelper.GetDuration(from, target); CurseSpell.PutUnderEffect(target, Timer.DelayCall(duration, new TimerStateCallback(CurseSpell.RemoveEffect), target)); target.UpdateResistances(); result = true; } else { result = false; } } if (result) { target.Paralyzed = false; target.FixedParticles(m_EffIID, m_EffSpd, m_Dur, m_Eff, m_ELayer); target.PlaySound(m_Snd); } } return(result); }