// void Start() // { // blasterPos = transform.position; // blasterPos.y = blasterPos.y - 18; // DroneMovement = gameObject.GetComponent<ShipMovement>(); // DroneHealth = gameObject.GetComponent<EnemyHealth>(); // moonTrig = GameObject.Find("BossTrigger").GetComponent<MoonTrigger>(); // StartCoroutine(AttackDecider()); // StartCoroutine(MovementDecider()); // DroneMovement.TriggerLeftMovement(); // } // Update is called once per frame void FixedUpdate() { blasterPos = transform.position; blasterPos.y = blasterPos.y - 18; if (transform.position == DroneMovement.GetLeft()) { DroneMovement.TriggerRightMovement(); } else if (transform.position == DroneMovement.GetRight()) { DroneMovement.TriggerLeftMovement(); } if (DroneHealth.getCurrHP() < 5000) { DroneMovement.PauseMovement(); StopCoroutine(AttackDecider()); StopCoroutine(MovementDecider()); StartCoroutine(moonTrig.SpawnFinalPhase()); } }
IEnumerator AttackDecider() { yield return(new WaitForSeconds(2.0f)); while (true) { int atkSelector = Random.Range(0, 7); switch (atkSelector) { case 0: StartCoroutine(FireThreeWaveBurstCenter()); break; case 1: StartCoroutine(FireWaves()); StartCoroutine(FireThreeDRoundBurstRight()); StartCoroutine(FireThreeDRoundBurstLeft()); break; case 2: StartCoroutine(FirePhotonLeft()); StartCoroutine(FirePhotonRight()); break; case 3: StartCoroutine(FireClusterBlastLeft()); StartCoroutine(FireClusterBlastRight()); yield return(new WaitForSeconds(2.0f)); break; case 4: StartCoroutine(ShootExplosionPattern()); yield return(new WaitForSeconds(4.0f)); break; case 5: allowMovement = false; DroneMovement.PauseMovement(); yield return(new WaitForSeconds(1.0f)); DroneMovement.PauseMovement(); StartCoroutine(FireLeftWave()); StartCoroutine(FireRightWave()); yield return(new WaitForSeconds(4.0f)); allowMovement = true; break; case 6: allowMovement = false; DroneMovement.PauseMovement(); yield return(new WaitForSeconds(1.0f)); StartCoroutine(LockWaves()); allowMovement = true; break; } yield return(new WaitForSeconds(3.0f)); } }