void Die() { ScreenShakeGenerator shake = Camera.main.GetComponent <ScreenShakeGenerator> (); shake.ShakeScreen(0.2f, 0.2f); RoundManager manager = Camera.main.GetComponent <RoundManager> (); manager.round = Rounds.End; manager.winner = Winner.Mimics; Instantiate(particle, transform.position, particle.transform.rotation); source.PlayOneShot(death); Destroy(gameObject); }
void OnCollisionEnter(Collision col) { MimicManager mimics = Camera.main.GetComponent<MimicManager> (); if (col.gameObject.tag != "BottomWall") { /*rb.isKinematic = true; transform.parent = col.transform; isFlying = false;*/ if (col.gameObject.tag == "Furniture") { Transform mimic = col.transform.Find ("Mimic(Clone)"); if (mimic != null) { //Screenshake ScreenShakeGenerator shake = Camera.main.GetComponent<ScreenShakeGenerator> (); shake.ShakeScreen (0.1f, 0.2f); //Sound source.PlayOneShot (hitMimic); //Blood Instantiate (splatter, new Vector3 (mimic.position.x, 0.01f, mimic.position.z), mimic.rotation); //Remove from list mimics.mimicList.Remove (mimic.gameObject); //Win condition if (mimics.mimicList.Count == 0) { RoundManager manager = Camera.main.GetComponent<RoundManager> (); manager.round = Rounds.End; manager.winner = Winner.Human; } //Kill mimic mimic.GetComponent<MimicController> ().Die (); //Gain arrow if (human.ammo < 3) { human.ammo++; //source.PlayDelayed (boltRecup, 0.5f); StartCoroutine (human.hud.UpdateArrows ()); } } else { source.PlayOneShot (hitWood); col.gameObject.GetComponent<NavMeshObstacle> ().enabled = false; col.gameObject.GetComponent<Rigidbody> ().isKinematic = true; col.collider.enabled = false; Transform brokenMesh = col.transform.Find("Mesh_Broken"); Transform mesh = col.transform.Find ("Mesh"); brokenMesh.gameObject.SetActive (true); mesh.gameObject.SetActive (false); Vector3 force = rb.velocity.normalized; force.y = 0; brokenMesh.GetComponent<Destructible> ().direction = force; mimics.furnitureList.Remove (col.transform); } } } if (human.ammo == 0) { foreach (GameObject m in mimics.mimicList) { MimicController mimicCont = m.GetComponent<MimicController> (); mimicCont.moveSpeed = mimicCont.moveSpeed * 2; mimicCont.lungeSpeed = mimicCont.lungeSpeed * 3; mimicCont.speed = mimicCont.moveSpeed; } foreach (PlayerClass player in mimics.availableList) { player.moveSpeed = player.moveSpeed * 2; player.lungeSpeed = player.lungeSpeed * 3; } } Destroy (gameObject); }