예제 #1
0
    // 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());
        }
    }
예제 #2
0
    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));
        }
    }