private void HandleFireHeld()
    {
        switch (CurFireMode)
        {
        case FireMode.ChargeHoldMax:
            m_shooter.Charge(Time.deltaTime);
            if (m_shooter.ChargePercent < 1.0f)
            {
                return;
            }
            m_shooter.Fire();
            m_hasFired = true;
            break;

        case FireMode.ChargeHoldRelease: m_shooter.Charge(Time.deltaTime); break;
        }
    }