Fix logic errors with weapon firing