private void HandleFireDown() { switch (CurFireMode) { case FireMode.Chain: case FireMode.Rapid: m_shooter.StartFire(); break; case FireMode.Single: m_shooter.Fire(); break; case FireMode.Timed: m_shooter.FireForSec(2.0f); break; case FireMode.ChargeHoldRelease: m_shooter.ChargeReset(); break; case FireMode.ChargePress: m_shooter.ChargeToMax(); break; case FireMode.ChargeHoldMax: if (!m_allowCharging) { return; } m_shooter.ChargeReset(); break; } }