Ejemplo n.º 1
0
    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());
        }
    }