private void FixedUpdate() { ammoCounter.transform.localEulerAngles = new Vector3(90 + currentAmmo * 3f, 90, 90); if (!shooting && !overheating) { if (AudioFW.IsLoopPlaying("BurstLoop")) { StopShootSounds(); } if (barrelHeat > 0) { barrelHeat -= 0.05f; } else { barrelHeat = 0; } } else if (shooting && !overheating) { barrelHeat += 0.25f; } else if (overheating && barrelHeat > 0) { barrelHeat -= 1f; } if (GameManager.instance.gameLost && shooting) { shooting = false; StopShootSounds(); } if (currentAmmo < 1) { if (!outOfAmmo) { StartCoroutine(PlayClickWithDelay(0.02f)); outOfAmmo = true; shooting = false; flashParticle.SetActive(false); StopShootSounds(); StartCoroutine(Reload()); } } Color multip = new Color(0.07f, 0.015f, 0.01f, 1); Color intensity = multip * barrelHeat / 30; barrel.SetColor("_EmissionColor", intensity); barrel.EnableKeyword("_EMISSION"); if (barrelHeat > 99.9 && !overheating) { barrelHeat = 100; print("Overheating!"); overheating = true; StopShootSounds(); StartCoroutine(BarrelChange()); } }