/// <summary>
 /// this callback is triggered when the 'Attack activity deactivates
 /// </summary>
 protected virtual void OnStop_Attack()
 {
     // the Attack activity does not automatically disable the
     // component's Attack state, so schedule disabling it in
     // 'AttackStateDisableDelay' seconds
     vp_Timer.In(AttackStateDisableDelay, delegate()
     {
         if (!m_Player.Attack.Active)
         {
             if (m_CurrentWeapon != null)
             {
                 m_CurrentWeapon.SetState("Attack", false);
             }
         }
     }, m_DisableAttackStateTimer);
 }