Exemplo n.º 1
0
    void Volcano()
    {
        List <LavaMove> LavaList = new List <LavaMove>();

        for (int i = 0; i < NumOfLava; i++)
        {
            LavaMove newLava = Instantiate(Lava, transform.position, transform.rotation) as LavaMove;
            LavaList.Add(newLava);
        }

        for (int i = 0; i < NumOfLava / 2; i++)
        {
            LavaList[i].gameObject.SetActive(true);
            LavaList[i].transform.Translate(new Vector3(0f, 0f, 0f));
            LavaList[i].transform.Rotate(new Vector3(0f, 0f, Random.Range(-LavaAngle, -0.5f)));
            LavaList[i].LavaSpeed = LavaSpeed;
        }

        for (int i = NumOfLava / 2; i < NumOfLava; i++)
        {
            LavaList[i].gameObject.SetActive(true);
            LavaList[i].transform.Translate(new Vector3(0f, 0f, 0f));
            LavaList[i].transform.Rotate(new Vector3(0f, 0f, Random.Range(0.5f, LavaAngle)));
            LavaList[i].LavaSpeed = LavaSpeed;
        }

        CameraShaker.Instance.ShakeOnce(shakeMagnitude, shakeRoughness, shakeFadein, shakeFadeout);
        eruption.volume = 2f;
        eruption.Play();
    }
Exemplo n.º 2
0
    private void OnTriggerEnter(Collider other)
    {
        if (other.tag == "wall" || other.tag == "container" || other.tag == "icicle")
        {
            hitSound.pitch = 0.1f * 1.05946f * Random.Range(8, 15);
            //0.8-1.5 as normal, 0.5-0.8 as big, need more modification
            hitSound.Play();
            GameObject newSparks = Instantiate(sparks[0], transform.position, transform.rotation) as GameObject;
            if (isBig)
            {
                newSparks.transform.localScale = new Vector3(2f, 2f, 2f);
                CameraShaker.Instance.ShakeOnce(1.5f, 4f, 0f, 2f);
            }
            else
            {
                CameraShaker.Instance.ShakeOnce(1f, 4f, 0f, 0.8f);
            }
            if (comeFrom.activeSelf)
            {
                comeFrom.SendMessage("SetAmmo", isMulti ? 0.5f : 1f);
            }
            Destroy(gameObject);
            Destroy(newSparks, 0.5f);
        }
        else if (other.tag == "Player")
        {
            GameObject newExplosion = Instantiate(explosion[0], transform.position, transform.rotation) as GameObject;
            GameObject newDelay     = Instantiate(delay[0], transform.position, transform.rotation) as GameObject;
            newDelay.SetActive(true);
            if (isBig)
            {
                newExplosion.transform.localScale = new Vector3(2f, 2f, 2f);
            }
            else if (isFrozen)//
            {
                other.transform.parent.SendMessage("Buff_Time", Time.time);
            }
            expSound.pitch = Random.Range(0.7f, 1.5f);
            expSound.Play();

            CameraShaker.Instance.ShakeOnce(isBig ? 6f : 3f, 20f, 0f, 0.5f);
            comeFrom.SendMessage("SetAmmo", isMulti ? 0.5f : 1f);
            Destroy(gameObject);
            Destroy(newExplosion, 2.0f);
            Destroy(newDelay, 2.0f);
            if (!damagded)
            {
                other.transform.parent.SendMessage("SetLife", isBig ? -2 : -1);
                damagded = !damagded;
            }
        }
        else if (other.tag == "water")
        {
            waterSound.pitch = 0.1f * 1.05946f * Random.Range(8, 15);
            waterSound.Play();
            GameObject newSplatters = Instantiate(waterSplatter, transform.position, new Quaternion()) as GameObject;
            if (isBig)
            {
                ParticleSystem SplattersParticle = newSplatters.GetComponent <ParticleSystem>();
                var            main = SplattersParticle.main;
                main.startSize  = 0.4f;
                main.startSpeed = 5f;
            }

            if (comeFrom.activeSelf)
            {
                comeFrom.SendMessage("SetAmmo", isMulti ? 0.5f : 1f);
            }

            Destroy(gameObject);
            Destroy(newSplatters, 1.5f);
        }

        else if (other.tag == "lava")
        {
            waterSound.pitch = 0.1f * 1.05946f * Random.Range(8, 15);
            waterSound.Play();

            GameObject newSplatters = Instantiate(waterSplatter, transform.position, new Quaternion()) as GameObject;

            LavaMove newLava1 = Instantiate(lavaSplatter, new Vector3(transform.position.x, transform.position.y + 0.7f, transform.position.z), new Quaternion()) as LavaMove;
            LavaMove newLava2 = Instantiate(lavaSplatter, new Vector3(transform.position.x, transform.position.y + 0.7f, transform.position.z), new Quaternion()) as LavaMove;

            newLava1.gameObject.SetActive(true);
            newLava1.transform.Rotate(new Vector3(0f, 0f, isBig ? -20f : -45f));
            newLava1.GetComponent <Rigidbody>().AddForce(0f, 16f, 0f);

            newLava2.gameObject.SetActive(true);
            newLava2.transform.Rotate(new Vector3(0f, 0f, isBig ? 20f : 45f));
            newLava2.GetComponent <Rigidbody>().AddForce(0f, 16f, 0f);

            if (isBig)
            {
                ParticleSystem SplattersParticle = newSplatters.GetComponent <ParticleSystem>();
                var            main = SplattersParticle.main;
                main.startSize  = 0.4f;
                main.startSpeed = 5f;

                LavaMove newLava3 = Instantiate(lavaSplatter, new Vector3(transform.position.x, transform.position.y + 0.7f, transform.position.z), new Quaternion()) as LavaMove;
                LavaMove newLava4 = Instantiate(lavaSplatter, new Vector3(transform.position.x, transform.position.y + 0.7f, transform.position.z), new Quaternion()) as LavaMove;

                newLava3.gameObject.SetActive(true);
                newLava3.transform.Rotate(new Vector3(0f, 0f, -80f));
                newLava3.GetComponent <Rigidbody>().AddForce(0f, 20f, 0f);

                newLava4.gameObject.SetActive(true);
                newLava4.transform.Rotate(new Vector3(0f, 0f, 80f));
                newLava4.GetComponent <Rigidbody>().AddForce(0f, 20f, 0f);
            }

            if (comeFrom.activeSelf)
            {
                comeFrom.SendMessage("SetAmmo", isMulti ? 0.5f : 1f);
            }

            Destroy(gameObject);
            Destroy(newSplatters, 1.5f);
        }
        if (other.tag == "Tornado")
        {
            rigid.AddForce(new Vector3(0f, windForce, 0f));
        }
    }
Exemplo n.º 3
0
    private void OnTriggerEnter(Collider other)
    {
        if (other.tag == "wall" || other.tag == "container" || other.tag == "icicle")
        {
            hitSound.pitch = 0.5f * 1.05946f * Random.Range(1, 4);
            // 0.75-1.5
            hitSound.Play();
            GameObject newSparks = Instantiate(sparks[0], transform.position, transform.rotation) as GameObject;

            CameraShaker.Instance.ShakeOnce(1.5f, 4f, 0f, 1.5f);
            //comeFrom.SendMessage("SetAmmo", 1f);
            //           if (!hit)
            {
                comeFrom.SendMessage("SetAmmo", 1f);
                //               hit = true;
            }
            Destroy(gameObject);
            Destroy(newSparks, 0.5f);
        }
        else if (other.tag == "Player")
        {
            GameObject newExplosion = Instantiate(explosion[0], transform.position, transform.rotation) as GameObject;
            GameObject newDelay     = Instantiate(delay[0], transform.position, transform.rotation) as GameObject;
            newDelay.SetActive(true);

            expSound.pitch = Random.Range(0.7f, 1.5f);
            expSound.Play();

            CameraShaker.Instance.ShakeOnce(3f, 20f, 0f, 1f);

            //           if (!hit)
            {
                other.transform.parent.SendMessage("SetLife", -1);
                comeFrom.SendMessage("SetAmmo", 1f);
                //               hit = true;
            }

            Destroy(gameObject);
            Destroy(newExplosion, 2.0f);
            Destroy(newDelay, 2.0f);
        }
        else if (other.tag == "water")
        {
            waterSound.pitch = 0.1f * 1.05946f * Random.Range(8, 15);
            waterSound.Play();
            if (comeFrom.activeSelf)
            {
                comeFrom.SendMessage("SetAmmo", 1f);
            }
            GameObject newSplatters = Instantiate(waterSplatter, transform.position, new Quaternion()) as GameObject;
            Destroy(gameObject);
            Destroy(newSplatters, 1.5f);
        }

        else if (other.tag == "lava")
        {
            waterSound.pitch = 0.1f * 1.05946f * Random.Range(8, 15);
            waterSound.Play();

            GameObject newSplatters = Instantiate(waterSplatter, transform.position, new Quaternion()) as GameObject;

            LavaMove newLava1 = Instantiate(lavaSplatter, new Vector3(transform.position.x, transform.position.y + 0.7f, transform.position.z), new Quaternion()) as LavaMove;
            LavaMove newLava2 = Instantiate(lavaSplatter, new Vector3(transform.position.x, transform.position.y + 0.7f, transform.position.z), new Quaternion()) as LavaMove;

            newLava1.gameObject.SetActive(true);
            newLava1.transform.Rotate(new Vector3(0f, 0f, -45f));
            newLava1.GetComponent <Rigidbody>().AddForce(0f, 18f, 0f);

            newLava2.gameObject.SetActive(true);
            newLava2.transform.Rotate(new Vector3(0f, 0f, 45f));
            newLava2.GetComponent <Rigidbody>().AddForce(0f, 18f, 0f);

            if (comeFrom.activeSelf)
            {
                comeFrom.SendMessage("SetAmmo", 1f);
            }

            Destroy(gameObject);
            Destroy(newSplatters, 1.5f);
        }
        if (other.tag == "Tornado")
        {
            rigid.AddForce(new Vector3(0f, windForce, 0f));
        }

        ParticleSystem P  = newMissileTrail.GetComponent <ParticleSystem>();
        var            em = P.emission;

        em.enabled = false;
        Destroy(newMissileTrail, 3.0f);
    }