// Update is called once per frame void Update() { if (starting) { //play the intro voice over StartCoroutine(Introduction()); starting = false; } //If game is unpaused if (playRound) { //pause and unpause the music if (Input.GetKeyDown("m") && paused == false) { musicSource.GetComponent <AudioSource>().Pause(); paused = true; } else if (Input.GetKeyDown("m") && paused == true) { musicSource.GetComponent <AudioSource>().Play(); paused = false; } if (throwScript.jackThrown && !jackThrown) { //after 4 seconds have passed since throwing if (Time.time - throwScript.shotTime > 4) { jackThrown = true; //Check all faulty areas for jack foreach (FaultBoxes fault in faultBoxList) { if (fault != faultBoxList[faultBoxList.Count - 1]) { if (fault.GetJackFault()) { //Faulty throw faultyJack = true; //Reset fault check fault.SetJackFaultFalse(); aimAssistScript.ResetAim(); } } } //set jack as thrown on this script, create a new ball and tell throw that there is a new ball if (!faultyJack) { if (currentPlayer == 1) { newBall = Instantiate(redBall, player.transform.position + (player.transform.forward * 2), player.transform.rotation); redBalls++; } else if (currentPlayer == 2) { newBall = Instantiate(greenBall, player.transform.position + (player.transform.forward * 2), player.transform.rotation); greenBalls++; } ballList.Add(newBall); //give throwscript the new ball throwScript.setPower(0.0f); throwScript.setBall(newBall); player.transform.eulerAngles = new Vector3(0, 90, 0); //update scoreboard //activate jack camera cameraOverlay.SetActive(false); cameraOverlay2.SetActive(false); splashScreensScript.PlayerTurnPrompt(currentPlayer); } } } //spawn a new ball if (!gameOver) { //If faulty jack throw if (faultyJack) { //Destroy jack Object.Destroy(jack); //Reset bools throwScript.jackThrown = false; throwScript.ballThrown = false; jackThrown = false; //Reset power throwScript.setPower(0); //Reset player rotation player.transform.eulerAngles = new Vector3(0, 90, 0); //Spawn new jack spawnJack(); //Script gets disabled on jack creation - force enable //jack.GetComponent<Collision>().enabled = true; //Reset bool faultyJack = false; } else { spawnBall(); } } //10 balls have been thrown if (amountOfBalls > 11 && Time.time - throwScript.shotTime > 5) { if (!gameOver) { checkWinner(); gameOver = true; } if (currentRound < maximumRounds) { if (Time.time - throwScript.shotTime > 10) { currentRound++; //reload the level reset(); //next round StartCoroutine(RoundEnd()); } } else { if (player1Score == player2Score) { if (Time.time - throwScript.shotTime > 10) { currentRound++; reset(); //next round StartCoroutine(RoundEnd()); } } else { if (gameOver && Time.time - throwScript.shotTime > 12) { // reloadScene(); } } } } } }