public void primaryFire() { if (primarySound != null) { primarySound.Play(); } recoil.fire(); playParticleEffect(primaryMuzzleFlash); spell.primaryFire(this); if (!infiniteAmmo) { activeAmmo--; } if (activeAmmo <= 0 && reserveAmmo > 0) { primaryReloadTimer = new GenericTimer(primaryReloadTime, false); } }