using System; using System.Collections.Generic; using Server.Network; using Server.Items; using Server.Targeting; namespace Server.Spells.Eighth { public class EarthquakeSpell : MagerySpell { private static SpellInfo m_Info = new SpellInfo( "Earthquake", "In Vas Por", 233, 9012, false, Reagent.Bloodmoss, Reagent.Ginseng, Reagent.MandrakeRoot, Reagent.SulfurousAsh ); public override SpellCircle Circle { get { return SpellCircle.Eighth; } } public EarthquakeSpell( Mobile caster, Item scroll ) : base( caster, scroll, m_Info ) { } public override bool DelayedDamage{ get{ return true; } } public override void OnCast() { if ( SpellHelper.CheckTown( Caster, Caster ) && CheckSequence() ) { List targets = new List(); Map map = Caster.Map; if ( map != null ) foreach ( Mobile m in Caster.GetMobilesInRange( 1 + (int)(Caster.Skills[SkillName.Magery].Value / 15.0) ) ) if ( Caster != m && SpellHelper.ValidIndirectTarget( Caster, m ) && Caster.CanBeHarmful( m, false ) ) targets.Add( m ); Caster.PlaySound( 0x220 ); for ( int i = 0; i < targets.Count; ++i ) { Mobile m = targets[i]; int damage = (m.Hits * 6) / 10; damage = (int)(damage * GetDamageScalar( m ) ); if ( !m.Player && damage < 10 ) damage = 10; else if ( damage > 75 ) damage = 75; Caster.DoHarmful( m ); SpellHelper.Damage( TimeSpan.Zero, m, Caster, damage ); } } FinishSequence(); } } }