IEnumerator FinalTrial()
    {
        //Phase 1: Attack Rift Head and dodge death bolt.
        Shoot();
        yield return(StartCoroutine(CoroutineUnscaledWait.WaitForSecondsUnscaled(1f)));

        StrafeLeft();
        FireBolt();
        GameObject bolt = Instantiate(deathBolt, riftHead.transform.position, riftHead.transform.rotation);

        bolt.GetComponent <Rigidbody>().velocity = Vector3.back * Constants.SpellStats.C_MagicMissileSpeed;
        yield return(StartCoroutine(CoroutineUnscaledWait.WaitForSecondsUnscaled(1f)));

        isRunning = false;
        yield return(StartCoroutine(CoroutineUnscaledWait.WaitForSecondsUnscaled(1f)));

        ResetPosition();

        //Phase 2: Destroy Skeleton to deactivate shields.
        apprenticeAnim.Play("2Fire", -1, 0f);
        skeleton.SetActive(true);
        forceField.SetActive(true);
        isChasing = true;
        canShoot  = true;
        yield return(StartCoroutine(CoroutineUnscaledWait.WaitForSecondsUnscaled(2.0f)));

        skeleton.SetActive(false);
        forceField.SetActive(false);
        canShoot = false;
        yield return(StartCoroutine(CoroutineUnscaledWait.WaitForSecondsUnscaled(1.5f)));


        Debug.Log("End of Instruction.");
    }
    IEnumerator DestroyTheNecromancer()
    {
        //Phase 1: Attack retreating Necromancer.
        apprenticeAnim.Play("Run", -1, 0f);
        Shoot();
        _bulletLifetime = 1f;
        yield return(StartCoroutine(CoroutineUnscaledWait.WaitForSecondsUnscaled(2f)));

        isRunning = false;
        canShoot  = false;
        yield return(StartCoroutine(CoroutineUnscaledWait.WaitForSecondsUnscaled(0.5f)));

        necromancer.SetActive(false);
        yield return(StartCoroutine(CoroutineUnscaledWait.WaitForSecondsUnscaled(0.5f)));

        //Phase 2: Necromancer Spawns Skeletons
        ResetPosition();
        _bulletLifetime = 0.4f;
        StartCoroutine(NecromancerSummon());
        apprenticeAnim.Play("3Fire", -1, 0f);
        //yield return StartCoroutine(CoroutineUnscaledWait.WaitForSecondsUnscaled(0.5f));
        Shoot();
        yield return(StartCoroutine(CoroutineUnscaledWait.WaitForSecondsUnscaled(3f)));

        canShoot = false;
        yield return(StartCoroutine(CoroutineUnscaledWait.WaitForSecondsUnscaled(1f)));



        Debug.Log("End of Instruction.");
    }
Ejemplo n.º 3
0
    IEnumerator CrystalHockey()
    {
        //Phase 1: Wind parry the puck into the goal.
        MoveToPuck();
        anim1.Play("Wind Parry", -1, 0f);
        yield return(StartCoroutine(CoroutineUnscaledWait.WaitForSecondsUnscaled(1.1f)));

        pushGem();
        push1 = true;
        yield return(StartCoroutine(CoroutineUnscaledWait.WaitForSecondsUnscaled(0.5f)));

        GoalReached();
        puck.transform.position = puckPosition;
        puck.transform.rotation = puckRotation;
        yield return(StartCoroutine(CoroutineUnscaledWait.WaitForSecondsUnscaled(1)));

        //Phase 2: Opponent Intercepts
        anim1.Play("Wind Parry", -1, 0f);
        apprentice1.transform.position = originalPos;
        puck.SetActive(true);
        windParry1.SetActive(false);
        apprentice2.SetActive(true);
        MoveToPuck();
        StartCoroutine(EnemyInterception());
        MoveToPuck();
        yield return(StartCoroutine(CoroutineUnscaledWait.WaitForSecondsUnscaled(1.1f)));

        pushGem();
    }
    IEnumerator NecromancerSummon()
    {
        necroAnim.Play("Summon", -1, 0f);
        yield return(StartCoroutine(CoroutineUnscaledWait.WaitForSecondsUnscaled(0.2f)));

        Summon();
        yield return(StartCoroutine(CoroutineUnscaledWait.WaitForSecondsUnscaled(2.8f)));

        skeletons[0].SetActive(false);
        yield return(StartCoroutine(CoroutineUnscaledWait.WaitForSecondsUnscaled(1.2f)));

        isChasing = false;
    }
Ejemplo n.º 5
0
    IEnumerator EnemyInterception()
    {
        //yield return StartCoroutine(CoroutineUnscaledWait.WaitForSecondsUnscaled(0.5f));
        Chase();
        yield return(StartCoroutine(CoroutineUnscaledWait.WaitForSecondsUnscaled(0.6f)));

        magicMissileRun = true;
        yield return(StartCoroutine(CoroutineUnscaledWait.WaitForSecondsUnscaled(0.8f)));

        magicMissile.SetActive(false);
        //Destroy(magicMissile, 0.8f);
        yield return(StartCoroutine(CoroutineUnscaledWait.WaitForSecondsUnscaled(0.4f)));

        apprentince2Run = false;
        //anim2.SetTrigger("stop");
    }
Ejemplo n.º 6
0
    IEnumerator EnemyInterception()
    {
        Chase();
        anim2.Play("Wind Parry", -1, 0f);
        yield return(StartCoroutine(CoroutineUnscaledWait.WaitForSecondsUnscaled(1.5f)));

        windParry2.SetActive(true);
        apprentince2Run = false;
        push1           = false;
        push2           = true;
        yield return(StartCoroutine(CoroutineUnscaledWait.WaitForSecondsUnscaled(2)));

        puck.SetActive(false);



        Debug.Log("End of Instruction.");
    }
Ejemplo n.º 7
0
    IEnumerator CaptureTheGem()
    {
        //Phase 1: Grab the Gem and take it to the goal.
        //yield return StartCoroutine(CoroutineUnscaledWait.WaitForSecondsUnscaled(0.5f));
        MoveToGem();
        yield return(StartCoroutine(CoroutineUnscaledWait.WaitForSecondsUnscaled(0.8f)));

        GrabGem();
        yield return(StartCoroutine(CoroutineUnscaledWait.WaitForSecondsUnscaled(1)));

        GoalReached();
        DropGem();
        gem.SetActive(false);
        //apprentice1.GetComponent<PlayerController>().DropFlag();
        gem.transform.position = gemPosition;
        yield return(StartCoroutine(CoroutineUnscaledWait.WaitForSecondsUnscaled(1)));


        //Phase 2: Opponenet Intercepts
        //anim1.Play("Run");
        //animation["Run"].time = 0.0;
        anim1.Play("Run", -1, 0f);
        apprentice1.transform.position = originalPos;
        gem.SetActive(true);
        apprentice2.SetActive(true);
        magicMissile.SetActive(true);
        StartCoroutine(EnemyInterception());
        //yield return StartCoroutine(CoroutineUnscaledWait.WaitForSecondsUnscaled(0.5f));
        MoveToGem();
        yield return(StartCoroutine(CoroutineUnscaledWait.WaitForSecondsUnscaled(0.8f)));

        GrabGem();
        yield return(StartCoroutine(CoroutineUnscaledWait.WaitForSecondsUnscaled(0.5f)));

        DropGem();
        yield return(StartCoroutine(CoroutineUnscaledWait.WaitForSecondsUnscaled(0.5f)));

        GoalReached();
        yield return(StartCoroutine(CoroutineUnscaledWait.WaitForSecondsUnscaled(1)));



        Debug.Log("End of Instruction.");
    }