public void PrepareGame() { Time.timeScale = 1; for (int i = 0; i <= hazards.Length - 1; i++) { GameObject hazard = hazards[i]; mover = hazard.GetComponent <Mover>(); mover.speed = 600; mover.rotateToPlayer = false; enemyInCircle = hazard.GetComponent <EnemyInCircle>(); enemyInCircle.enabled = false; enemyInCircle.onPlayer = false; } }
IEnumerator BossFight() { //playerController.destroy = true; //Destroy(platforma); //ChangeButtons(); Vector3 spawnPositionBoss = new Vector3(0f, spawnPositiony, 0f); GameObject bossObject = Instantiate(boss, spawnPositionBoss, Quaternion.identity) as GameObject; BossHp bossHp = bossObject.GetComponent <BossHp>(); Quaternion spawnRotation = Quaternion.Euler(180, 180, 180); yield return(new WaitForSeconds(levelWait * 3)); do { CheckGameOver(); if (bossHp.hpBoss <= 120 && bossHp.hpBoss > 90) { for (int i = 0; i < 5; i++) { spawnPositionBoss = bossObject.transform.position; int type = UnityEngine.Random.Range(0, hazards.Length - 1); GameObject hazard = hazards[type]; enemyInCircle = hazard.GetComponent <EnemyInCircle>(); enemyInCircle.enabled = true; Instantiate(hazard, spawnPositionBoss, spawnRotation); yield return(new WaitForSeconds(0.3f)); } bossHp.ChangeImage(); bossHp.moved = false; while (!bossHp.moved) { yield return(new WaitForSeconds(0.0000001f)); } if (gameOver) { UpdateScore(count); } yield return(new WaitForSeconds(waveWait)); } else if (bossHp.hpBoss <= 90 && bossHp.hpBoss > 60) { for (int i = 0; i < 5; i++) { spawnPositionBoss = bossObject.transform.position; int type = UnityEngine.Random.Range(0, hazards.Length - 1); GameObject hazard = hazards[type]; enemyInCircle = hazard.GetComponent <EnemyInCircle>(); enemyInCircle.enabled = true; enemyInCircle.onPlayer = true; Instantiate(hazard, spawnPositionBoss, spawnRotation); yield return(new WaitForSeconds(0.3f)); } bossHp.ChangeImage(); bossHp.moved = false; while (!bossHp.moved) // && animation running { yield return(new WaitForSeconds(0.0000001f)); } if (gameOver) { UpdateScore(count); } yield return(new WaitForSeconds(waveWait)); } else if (bossHp.hpBoss <= 60 && bossHp.hpBoss > 30) { for (int i = 0; i < 5; i++) { spawnPositionBoss = bossObject.transform.position; int type = UnityEngine.Random.Range(0, hazards.Length - 1); GameObject hazard = hazards[type]; enemyInCircle = hazard.GetComponent <EnemyInCircle>(); enemyInCircle.enabled = false; mover = hazard.GetComponent <Mover>(); mover.rotateToPlayer = true; Instantiate(hazard, spawnPositionBoss, spawnRotation); yield return(new WaitForSeconds(spawnWait)); } bossHp.ChangeImage(); bossHp.moved = false; while (!bossHp.moved) // && animation running { yield return(new WaitForSeconds(0.0000001f)); } if (gameOver) { UpdateScore(count); } yield return(new WaitForSeconds(waveWait)); } else if (bossHp.hpBoss <= 30) { for (int i = 0; i < 5; i++) { spawnPositionBoss = bossObject.transform.position; int type = UnityEngine.Random.Range(0, hazards.Length - 1); GameObject hazard = hazards[type]; enemyInCircle = hazard.GetComponent <EnemyInCircle>(); enemyInCircle.enabled = true; enemyInCircle.onPlayer = false; mover = hazard.GetComponent <Mover>(); mover.rotateToPlayer = false; Instantiate(hazard, spawnPositionBoss, spawnRotation); yield return(new WaitForSeconds(0.3f)); } for (int i = 0; i < 5; i++) { int type = UnityEngine.Random.Range(0, hazards.Length - 1); GameObject hazard = hazards[type]; enemyInCircle = hazard.GetComponent <EnemyInCircle>(); enemyInCircle.enabled = true; enemyInCircle.onPlayer = true; Instantiate(hazard, spawnPositionBoss, spawnRotation); yield return(new WaitForSeconds(0.3f)); } for (int i = 0; i < 5; i++) { int type = UnityEngine.Random.Range(0, hazards.Length - 1); GameObject hazard = hazards[type]; enemyInCircle = hazard.GetComponent <EnemyInCircle>(); enemyInCircle.enabled = false; mover = hazard.GetComponent <Mover>(); mover.rotateToPlayer = true; Instantiate(hazard, spawnPositionBoss, spawnRotation); yield return(new WaitForSeconds(spawnWait)); } bossHp.ChangeImage(); bossHp.moved = false; while (!bossHp.moved) { yield return(new WaitForSeconds(0.0000001f)); } if (gameOver) { UpdateScore(count); } yield return(new WaitForSeconds(waveWait)); } } while (!end); playerControllerV2.boxCollider2d.enabled = false; spawnRotation = Quaternion.Euler(0, 0, 270); PrepareGame(); highScore = 51; UpdateScore(highScore); gameManagerScript.Save(); for (int i = 0; i < hazards.Length - 1; i++) { GameObject hazard = hazards[i]; spawnPositionBoss = new Vector2(UnityEngine.Random.Range(-3, 3), 0); GameObject enemy = Instantiate(hazard, spawnPositionBoss, spawnRotation) as GameObject; yield return(new WaitForSeconds(spawnWait)); } bossHp.destroyBoss = true; SceneManager.LoadScene("End"); }