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(); }
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)); } }
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); }