void Update() { int index = (int)phaseBoss; switch (index) { case 0: countDownStart -= Time.deltaTime; if (countDownStart < 0) { phaseBoss = PhaseBoss.Move; } break; case 1: AudioManager.Instance.StopSound(1); AudioManager.Instance.PlaySound(2); if (transform.position.y > yTarget) { transform.position += new Vector3(0.0f, -moveSpeedY) * Time.deltaTime; } else { phaseBoss = PhaseBoss.PhaseOne; } break; case 2: shotCounter -= Time.deltaTime; if (!moveRight) { transform.position = Vector3.MoveTowards(transform.position, new Vector3(-xTarget, yTarget), Time.deltaTime * moveSpeedX); if (shotCounter <= 0) { for (int i = 0; i < 2; i++) { AudioManager.Instance.PlaySound(8); Instantiate(lasers[Random.Range(0, 2)], lasersPoint[i].position, lasersPoint[i].rotation); } shotCounter = shotDelay; } if (transform.position.x <= -xTarget) { moveRight = true; } } else { transform.position = Vector3.MoveTowards(transform.position, new Vector3(xTarget, yTarget), Time.deltaTime * moveSpeedX); if (shotCounter <= 0) { for (int i = 2; i < 4; i++) { AudioManager.Instance.PlaySound(8); Instantiate(lasers[Random.Range(0, 2)], lasersPoint[i].position, lasersPoint[i].rotation); } shotCounter = shotDelay; } if (transform.position.x >= xTarget) { moveRight = false; } } if (durableShield <= 0) { Destroy(Shields); GM.Instance.AddScore(200); phaseBoss = PhaseBoss.PhaseTwo; } break; case 3: shotCounter -= Time.deltaTime; if (!moveRight) { transform.position = Vector3.MoveTowards(transform.position, new Vector3(-xTarget, yTarget), Time.deltaTime * moveSpeedX * 1.8f); if (transform.position.x <= -xTarget) { moveRight = true; } } else { transform.position = Vector3.MoveTowards(transform.position, new Vector3(xTarget, yTarget), Time.deltaTime * moveSpeedX * 1.8f); if (transform.position.x >= xTarget) { moveRight = false; } } if (shotCounter <= 0) { for (int i = 0; i < lasersPoint.Length; i++) { AudioManager.Instance.PlaySound(8); Instantiate(lasers[Random.Range(0, 2)], lasersPoint[i].position, lasersPoint[i].rotation); } shotCounter = shotDelay; } if (bossLife <= 0) { GM.Instance.AddScore(350); AudioManager.Instance.PlaySound(5); gameObject.SetActive(false); GM.Instance.FinishGame(); } break; } }
void Start() { phaseBoss = PhaseBoss.Start; }