public void Update(float timeDelta) { if (startFireTimer) { fireTimer += timeDelta; if (fireTimer > fireInterval) { canFire = true; startFireTimer = false; fireTimer = 0f; } } if (startReloadTimer) { reloadTimer += timeDelta; if (reloadTimer > reloadInterval) { state = WeaponGunState.IDLE; canFire = true; startReloadTimer = false; reloadTimer = 0f; } } }
public void Reload() { if (clipLeft == clipSize) { return; } if (ammoLeft == 0) { //Debug.Log("Out of ammo."); return; } canFire = false; startReloadTimer = true; state = WeaponGunState.RELOADING; int ammoNeeded = clipSize - clipLeft; if (ammoLeft <= ammoNeeded) { clipLeft += ammoLeft; ammoLeft = 0; } else { clipLeft = clipSize; ammoLeft -= ammoNeeded; } }