public void DoEffect( object trigger )
{
if ( Deleted || m_TriggerType == EffectTriggerType.None )
return;
if( trigger is Mobile && ((Mobile)trigger).Hidden && ((Mobile)trigger).AccessLevel > AccessLevel.Player )
return;
if ( m_SoundID > 0 )
Timer.DelayCall( m_SoundDelay, new TimerStateCallback( PlaySound ), trigger );
if ( m_Trigger != null )
Timer.DelayCall( m_TriggerDelay, new TimerStateCallback( m_Trigger.DoEffect ), trigger );
if ( m_EffectType != ECEffectType.None )
Timer.DelayCall( m_EffectDelay, new TimerStateCallback( InternalDoEffect ), trigger );
}