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)this.Circle, Caster, ref m ); SpellHelper.AddStatCurse( Caster, m, StatType.Str ); SpellHelper.DisableSkillCheck = true; SpellHelper.AddStatCurse( Caster, m, StatType.Dex ); SpellHelper.AddStatCurse( Caster, m, StatType.Int ); SpellHelper.DisableSkillCheck = false; Timer t = (Timer)UnderEffect[m]; if ( Caster.Player && m.Player && t == null ) { TimeSpan duration = SpellHelper.GetDuration( Caster, m ); UnderEffect[m] = t = Timer.DelayCall( duration, new TimerStateCallback( RemoveEffect ), m ); m.UpdateResistances(); } m.Paralyzed = false; m.FixedParticles( 0x374A, 10, 15, 5028, EffectLayer.Waist ); m.PlaySound( 0x1EA ); } FinishSequence(); }
public static void DoCurse(Mobile caster, Mobile m) { SpellHelper.AddStatCurse(caster, m, StatType.Str); SpellHelper.DisableSkillCheck = true; SpellHelper.AddStatCurse(caster, m, StatType.Dex); SpellHelper.AddStatCurse(caster, m, StatType.Int); SpellHelper.DisableSkillCheck = false; int percentage = (int)(SpellHelper.GetOffsetScalar(caster, m, true) * 100); TimeSpan length = SpellHelper.GetDuration(caster, m); string args = String.Format("{0}\t{1}\t{2}\t{3}\t{4}\t{5}\t{6}", percentage, percentage, percentage, 10, 10, 10, 10); BuffInfo.AddBuff(m, new BuffInfo(BuffIcon.Curse, 1075835, 1075836, length, m, args.ToString())); Timer t = (Timer)m_UnderEffect[m]; if (caster.Player && m.Player /*&& Caster != m */ && t == null) //On OSI you CAN curse yourself and get this effect. { TimeSpan duration = SpellHelper.GetDuration(caster, m); m_UnderEffect[m] = t = Timer.DelayCall(duration, new TimerStateCallback(RemoveEffect), m); m.UpdateResistances(); } if (m.Spell != null) m.Spell.OnCasterHurt(); m.Paralyzed = false; m.FixedParticles(0x374A, 10, 15, 5028, EffectLayer.Waist); m.PlaySound(0x1E1); }
public void Target(Mobile m) { if (!this.Caster.CanSee(m)) { this.Caster.SendLocalizedMessage(500237); // Target can not be seen. } else if (this.CheckHSequence(m)) { SpellHelper.Turn(this.Caster, m); SpellHelper.CheckReflect((int)this.Circle, this.Caster, ref m); SpellHelper.AddStatCurse(this.Caster, m, StatType.Str); SpellHelper.DisableSkillCheck = true; SpellHelper.AddStatCurse(this.Caster, m, StatType.Dex); SpellHelper.AddStatCurse(this.Caster, m, StatType.Int); SpellHelper.DisableSkillCheck = false; Timer t = (Timer)m_UnderEffect[m]; if (this.Caster.Player && m.Player /*&& Caster != m */ && t == null) //On OSI you CAN curse yourself and get this effect. { TimeSpan duration = SpellHelper.GetDuration(this.Caster, m); m_UnderEffect[m] = t = Timer.DelayCall(duration, new TimerStateCallback(RemoveEffect), m); m.UpdateResistances(); } if (m.Spell != null) m.Spell.OnCasterHurt(); m.Paralyzed = false; m.FixedParticles(0x374A, 10, 15, 5028, EffectLayer.Waist); m.PlaySound(0x1E1); int percentage = (int)(SpellHelper.GetOffsetScalar(this.Caster, m, true) * 100); TimeSpan length = SpellHelper.GetDuration(this.Caster, m); string args = String.Format("{0}\t{1}\t{2}\t{3}\t{4}\t{5}\t{6}", percentage, percentage, percentage, 10, 10, 10, 10); BuffInfo.AddBuff(m, new BuffInfo(BuffIcon.Curse, 1075835, 1075836, length, m, args.ToString())); this.HarmfulSpell(m); } this.FinishSequence(); }
public void Target( Mobile m ) { if ( !Caster.CanSee( m ) ) { Caster.SendAsciiMessage( "Target can not be seen." ); // Target can not be seen. } else if ( CheckHSequence( m ) ) { SpellHelper.Turn( Caster, m ); SpellHelper.CheckReflect( (int)this.Circle, Caster, ref m ); SpellHelper.AddStatCurse(Caster, m, StatType.Str, (int)((Caster.Skills[SkillName.Magery].Value / 10) + 1), TimeSpan.FromSeconds((6 * Caster.Skills[SkillName.Magery].Value / 5) + 1)); //SpellHelper.DisableSkillCheck = true; SpellHelper.AddStatCurse(Caster, m, StatType.Dex, (int)((Caster.Skills[SkillName.Magery].Value / 10) + 1), TimeSpan.FromSeconds((6 * Caster.Skills[SkillName.Magery].Value / 5) + 1)); SpellHelper.AddStatCurse(Caster, m, StatType.Int, (int)((Caster.Skills[SkillName.Magery].Value / 10) + 1), TimeSpan.FromSeconds((6 * Caster.Skills[SkillName.Magery].Value / 5) + 1)); //SpellHelper.DisableSkillCheck = false; Timer t = (Timer)m_UnderEffect[m]; if ( Caster.Player && m.Player /*&& Caster != m */ && t == null ) //On OSI you CAN curse yourself and get this effect. { TimeSpan duration = TimeSpan.FromSeconds((6 * Caster.Skills[SkillName.Magery].Value / 5) + 1);//SpellHelper.GetDuration( Caster, m ); m_UnderEffect[m] = t = Timer.DelayCall( duration, new TimerStateCallback( RemoveEffect ), m ); m.UpdateResistances(); } if ( m.Spell != null ) m.Spell.OnCasterHurt(); m.Paralyzed = false; m.FixedParticles( 0x374A, 10, 15, 5028, EffectLayer.Waist ); m.PlaySound( 0x1EA ); } FinishSequence(); }
public void DoCurse( Mobile m ) { SpellHelper.Turn( Caster, m ); SpellHelper.CheckReflect( (int) this.Circle, Caster, ref m ); SpellHelper.AddStatCurse( Caster, m, StatType.Str ); SpellHelper.DisableSkillCheck = true; SpellHelper.AddStatCurse( Caster, m, StatType.Dex ); SpellHelper.AddStatCurse( Caster, m, StatType.Int ); SpellHelper.DisableSkillCheck = false; Timer t = (Timer) m_UnderEffect[m]; if ( t == null ) { TimeSpan duration = ComputeDuration( Caster, m ); int percentage = (int) ( SpellHelper.GetOffsetScalar( Caster, m, true ) * 100 ); string buffFormat = String.Format( "{0}\t{0}\t{0}\t{1}\t{1}\t{1}\t{1}", percentage, 10 ); BuffInfo.AddBuff( m, new BuffInfo( BuffIcon.Curse, 1075835, duration, m, buffFormat ) ); m_UnderEffect[m] = t = Timer.DelayCall( duration, new TimerStateCallback( RemoveEffect ), m ); m.UpdateResistances(); } if ( m.Spell != null ) m.Spell.OnCasterHurt(); m.Paralyzed = false; m.FixedParticles( 0x374A, 10, 15, 5028, EffectLayer.Waist ); m.PlaySound( 0x1E1 ); }
public void Target( Mobile m ) { if ( !Caster.CanSee( m ) ) { Caster.SendLocalizedMessage( 500237 ); // Target can not be seen. } else if ( CheckHSequence( m ) ) { SpellHelper.CheckReflect((int)Circle, Caster, ref m); if (m.Spell != null) m.Spell.OnCasterHurt(); if (BlessSpell.UnderEffect(m)) { bool message = true; if (m.Str > m.RawStr) { m.RemoveStatMod(String.Format("[Magic] {0} Offset", StatType.Str)); message = false; } if (m.Dex > m.RawDex) { m.RemoveStatMod(String.Format("[Magic] {0} Offset", StatType.Dex)); message = false; } if (m.Int > m.RawInt) { m.RemoveStatMod(String.Format("[Magic] {0} Offset", StatType.Int)); message = false; } if (message) m.SendAsciiMessage("You are under the effect of a bless spell and cannot get any stat penalties"); } else { SpellHelper.AddStatCurse(Caster, m, StatType.Str); SpellHelper.DisableSkillCheck = true; SpellHelper.AddStatCurse(Caster, m, StatType.Dex); SpellHelper.AddStatCurse(Caster, m, StatType.Int); SpellHelper.DisableSkillCheck = false; } TimeSpan duration = SpellHelper.GetDuration(Caster, m); m_UnderEffect[m] = Timer.DelayCall(duration, new TimerStateCallback(RemoveEffect), m); m.UpdateResistances(); //m.Paralyzed = false; m.FixedParticles(0x374A, 10, 15, 5028, EffectLayer.Waist); m.PlaySound( Sound ); int percentage = (int)(SpellHelper.GetOffsetScalar(Caster, m, true) * 100); TimeSpan length = SpellHelper.GetDuration(Caster, m); string args = String.Format("{0}\t{1}\t{2}\t{3}\t{4}\t{5}\t{6}", percentage, percentage, percentage, 10, 10, 10, 10); BuffInfo.AddBuff(m, new BuffInfo(BuffIcon.Curse, 1075835, 1075836, length, m, args)); HarmfulSpell(m); } FinishSequence(); }
public override void OnHit( Mobile caster, Mobile target ) { bool success; success = SpellHelper.AddStatCurse( caster, target, StatType.Str ); SpellHelper.DisableSkillCheck = true; success = SpellHelper.AddStatCurse( caster, target, StatType.Dex ) || success; success = SpellHelper.AddStatCurse( caster, target, StatType.Int ) || success; SpellHelper.DisableSkillCheck = false; if ( success ) { target.FixedParticles( 0x374A, 10, 15, 5028, EffectLayer.Waist ); target.PlaySound( 0x1EA ); } else { //Mobile temp = Caster; // to make magic weapons fizzle their master //Caster = caster; //DoHurtFizzle(); //Caster = temp; target.FixedParticles( 0x374A, 10, 15, 5028, EffectLayer.Waist ); target.PlaySound( 0x1EA ); } Timer t = (Timer)m_UnderEffect[target]; if ( Caster.Player && target.Player && caster != target && t == null ) { TimeSpan duration = SpellHelper.GetDuration( caster, target ); m_UnderEffect[target] = t = Timer.DelayCall( duration, new TimerStateCallback( RemoveEffect ), target ); target.UpdateResistances(); } if ( target.Spell != null ) target.Spell.OnCasterHurt(); target.Paralyzed = false; }
public static void RemoveEffect(Mobile m) { m_UnderEffect.Remove(m); m.UpdateResistances(); }