Better way to achieve semi-automatic fire for third person shooter?

I think DoOnce state will reset inside the function?
It will work outside of it though. My bad.