Exemplo n.º 1
0
    // Update is called once per frame
    void Update()
    {
        //open water gate automatically
        if (this.transform.localPosition.y > 72.30476f)
        {
            timer += 0.01f + 0.005f * Time.deltaTime;
            this.transform.localPosition = Vector3.Lerp(begin, target, timer);
        }

        // constrain lake2
        if (watergate2.transform.localPosition.y > -2.2)
        {
            lake2.GetComponent <WaterProperties>().currentVolume = 0;
        }

        else
        {
            Boat2.GetComponent <BoatFloatOnWater>().wp = lake2.GetComponent <WaterProperties>();
            //Boat2.GetComponent<BoatFloatOnWater>().offset=4f;
        }

        //waterfall sha
        if (this.transform.localPosition.x < -159f && w1.currentVolume > 0.0f)
        {
            waterfallProgress = Mathf.Clamp(waterfallProgress + 0.007f, 0, 1);
            float waterfallX     = Mathf.Lerp(-32, -37, waterfallProgress);
            float waterfallScale = Mathf.Lerp(0, 500, waterfallProgress);
            waterfall.transform.position   = new Vector3(waterfallX, waterfall.transform.position.y, waterfall.transform.position.z);
            waterfall.transform.localScale = new Vector3(waterfallScale, waterfall.transform.localScale.y, waterfall.transform.localScale.z);
            lake2_cover.SetActive(false);
            //destroyCoverSound.SetActive(true);
            waterFallSound.SetActive(true);
            //w2.Fill(2);
            w1.Drain(2);
            //Instantiate(waterfall,waterflowposition2.transform.position,waterflowposition2.transform.rotation);
            Invoke("InsWater", 1.5f);
            Invoke("WaterFade", 4.0f);
            //waterFallSound.SetActive(false);
        }

        if (waterFade)
        {
            waterFadeProgress = Mathf.Clamp(waterFadeProgress - 0.01f, 0, 1);
            float waterfallScale = Mathf.Lerp(0, 500, waterFadeProgress);
            waterfall.transform.localScale = new Vector3(waterfallScale, waterfall.transform.localScale.y, waterfall.transform.localScale.z);
        }
    }
Exemplo n.º 2
0
    // Update is called once per frame
    void Update()
    {
        e.waterStored = 2f;
        waterLevel    = well.GetActualHeight();
        if (playRaiseSound)
        {
            firebase2RaiseSound.SetActive(true);
        }
        if (playRaiseSound == false)
        {
            firebase2RaiseSound.SetActive(false);
        }
        if (playDropSound)
        {
            firebase2DropSound.SetActive(true);
        }
        if (playDropSound == false)
        {
            firebase2DropSound.SetActive(false);
        }
        if (firebase2.transform.position.y < waterLevel)
        {
            L2.waterputsFireOut();
        }
        if (raise_firebase2)
        {
            if (firebase2.transform.localPosition.y < 12.0f)
            {
                firebase2.transform.localPosition += new Vector3(0, -17f * Time.deltaTime * (-2.0f), 0);
            }
            if (button.transform.position.y > 11.64f)
            {
                //need to wait
                button.transform.position -= new Vector3(0, 12.55f * Time.deltaTime * (0.5f), 0);
                firebase2DropSound.SetActive(true);
            }
        }
        else
        {
            if (button.transform.position.y < 12.51f)
            {
                button.transform.position += new Vector3(0, 11.64f * Time.deltaTime * (0.5f), 0);
            }
            if (firebase2.transform.localPosition.y > -0.1f)
            {
                firebase2.transform.localPosition += new Vector3(0, -5 * Time.deltaTime * (2.0f), 0);
            }
        }
        if (w1.currentVolume == 1)
        {
            L.waterputsFireOut();
        }

        //lake1

        // if watergate opened and lake1 filled: lake1's water will fall down to lake2
        if (WaterGate.transform.localPosition.y <= 23.5f && w1.currentVolume > 0.0f)
        {
            lake2_cover.SetActive(false);
            lake2.layer = 4;
            w2.Fill(2);
            w1.Drain(2);
            Instantiate(waterfall, waterflowposition2.transform.position, waterflowposition2.transform.rotation);
        }

        //lake 2


        //if open Lid losing water . waterflow press button:firebase 2 raise
        if ((p.gotLid || wellLid.gameObject.GetComponent <Renderer>().enabled == true) && w2.currentVolume > 0.0f)
        {
            w2.drainSpeed = 0.0005f;     //change lake2 drain speed here
            w2.Drain(0.1f);
            Instantiate(waterflow, waterflowposition.transform.position, waterflowposition.transform.rotation);
            raise_firebase2 = true;
            playRaiseSound  = true;
            playDropSound   = false;
        }
        else
        {
            raise_firebase2 = false;
            playRaiseSound  = false;
            //playDropSound = true;
        }

        //well 3
        //sail.transform.localPosition =new Vector3(sail.transform.localPosition.x, 1.41f*well.currentVolume*6.5f,sail.transform.localPosition.z);
        //close LID:water raise
        if (wellLid.gameObject.GetComponent <Renderer>().enabled == true)
        {
        }
        //open LID:  water can not above the hole
        if (well.currentVolume > 0.0f && wellLid.gameObject.GetComponent <Renderer>().enabled == false)
        {
            Instantiate(wellflow, wellLid.transform.position, wellLid.transform.rotation);
            if (well.currentVolume < 0.08f)
            {
                well.currentVolume += 0.0001f * Time.deltaTime;
            }
            else
            {
                well.currentVolume = 0.08f;
            }
        }
    }