public void Target( IPoint3D p )
{
if ( !Caster.CanSee( p ) )
{
Caster.SendLocalizedMessage( 500237 ); // Target can not be seen.
}
else if ( CheckSequence() )
{
SpellHelper.Turn( Caster, p );
SpellHelper.GetSurfaceTop( ref p );
List<Mobile> targets = new List<Mobile>();
Map map = Caster.Map;
if ( map != null )
{
IPooledEnumerable eable = map.GetMobilesInRange( new Point3D( p ), 1 + (int)(Caster.Skills[SkillName.Magery].Value / 20.0) );
foreach ( Mobile m in eable )
{
if ( m.Hidden && (m.AccessLevel == AccessLevel.Player || Caster.AccessLevel > m.AccessLevel) )
targets.Add( m );
}
eable.Free();
}
for ( int i = 0; i < targets.Count; ++i )
{
Mobile m = targets[i];
m.RevealingAction();
m.FixedParticles( 0x375A, 9, 20, 5049, EffectLayer.Head );
m.PlaySound( 0x1FD );
}
}
FinishSequence();
}