public override void ApplyDamage(int damage)
 {
     if (m_currentShield - damage < 0 && m_currentShield != 0)
     {
         int damageLeftovers = damage - m_currentShield;
         m_currentShield = 0;
         m_HPUI.UpdateShield(m_currentShield);
         ApplyDamage(damageLeftovers);
     }
     else if (m_currentShield - damage >= 0)
     {
         m_currentShield -= damage;
         m_HPUI.UpdateShield(m_currentShield);
         return;
     }
     else
     {
         m_currentHealth -= damage;
         m_HPUI.UpdateHealth(m_currentHealth);
         if (m_currentHealth <= 0)
         {
             m_currentHealth = 0;
             m_stateMachine.SetState(m_nextState);
         }
     }
 }