public void Disable()
 {
     m_Enabled = false;
     if ( m_Timer != null )
     {
         if ( m_Timer.Running )
             m_Timer.Stop();
         m_Timer = null;
     }
 }
 public void Enable()
 {
     m_Enabled = true;
     if ( m_Timer == null )
         m_Timer = new AutoCombatBrainTimer( this );
 }
        // call Act() after AT MOST this much time ( could be sooner )
        public void DelayThink( TimeSpan duration )
        {
            if ( Enabled )
            {
                if ( m_Timer == null )
                    m_Timer = new AutoCombatBrainTimer( this );
                else if ( m_Timer.Running )
                {
                    if ( m_Timer.Next > DateTime.Now + duration )
                        m_Timer.Stop();
                    else
                        return; // we need to call it sooner, so ignore
                }

                m_Timer.Delay = duration;
                m_Timer.Start();
            }
        }