Ejemplo n.º 1
0
        void Update()
        {
            if (torch.isSelected == true)
            {
                if (Input.GetKeyDown(KeyCode.Q))
                {
                    Debug.Log(torch.isSelected);

                    isOn = !isOn;

                    if (obj.getCurrentObj() == null)
                    {
                        return;
                    }

                    if (isOn)
                    {
                        currentTimeOfTorchLife = ssr.GetRemainLifeTorch();
                        if (obj.ammo[0] > 0)
                        {
                            fireLight.enabled = true;
                            fire.Play();
                            obj.ammo[0]--;

                            UI.UpdateResources("Matches", -1);
                        }
                    }
                    else
                    {
                        fireLight.enabled = false;
                        fire.Stop();
                        ssr.SetRemainLifeTorch(currentTimeOfTorchLife);
                        if (obj.ammo[0] == 0)
                        {
                            Debug.Log("Sono finiti i fiammiferi");
                        }
                    }
                }

                if (isOn)
                {
                    currentTimeOfTorchLife -= decrementRate * Time.deltaTime;
                    //Debug.Log(Mathf.Round(currentTimeOfTorchLife));

                    //fadelight

                    if (currentTimeOfTorchLife <= fireTimeLeftTot)
                    {
                        fireLight.DOIntensity(0f, fireTimeLeftTot);
                        for (int i = 0; i < firech.Length; i++)
                        {
                            if (startRate == 0f)
                            {
                                startRate = firech[i].emission.rateOverTime.Evaluate(1f);
                                //Debug.Log("startrate assigned value: " + startRate);
                                fireTimeLeft = fireTimeLeftTot;
                            }
                            if (firech[i].emission.rateOverTime.Evaluate(1f) > 0)
                            {
                                var emission = firech[i].emission;
                                emission.rateOverTime = Mathf.Clamp(Mathf.Lerp(0f, startRate, fireTimeLeft / fireTimeLeftTot), 0f, startRate);
                                //Debug.Log("Emission: " + firech[i].emission.rateOverTime.Evaluate(1f) + "firetimeleft: " + fireTimeLeft);
                            }
                        }
                        fireTimeLeft -= decrementRate * Time.deltaTime;
                    }

                    //end fadelight
                }
                if (currentTimeOfTorchLife <= 0)
                {
                    int i = obj.getCurrentIndex();
                    obj.pickLoadout[i].isSelected = false;
                    obj.pickLoadout[i]            = null;
                    Destroy(obj.getCurrentObj());

                    UI.ActiveWeapon(3);
                    UI.UpdateWeapons("", i);
                }
            }
            if (torch.isSelected == false)
            {
                ssr.SetRemainLifeTorch(currentTimeOfTorchLife);
            }
        }