Пример #1
0
    void ThrowUpBone()
    {
        bone.Play();
        vomit.Play();

        if (Wendigo.facingLeft && Wendigo.transform.position.x < -5 || !Wendigo.facingLeft && Wendigo.transform.position.x > 5)
        {
            Wendigo.Flip();
            Wendigo.facingLeft = !Wendigo.facingLeft;
        }

        if (Wendigo.facingLeft && Wendigo.transform.position.x > 0)
        {
            distanceToShoot = -(Wendigo.transform.position.x + 9f);
        }
        else if (Wendigo.facingLeft && Wendigo.transform.position.x <= 0)
        {
            distanceToShoot = Mathf.Abs(Wendigo.transform.position.x) - 9f;
        }
        else if (!Wendigo.facingLeft && Wendigo.transform.position.x > 0)
        {
            distanceToShoot = 9f - Wendigo.transform.position.x;
        }
        else if (!Wendigo.facingLeft && Wendigo.transform.position.x < 0)
        {
            distanceToShoot = Mathf.Abs(Wendigo.transform.position.x) + 9f;
        }

        ////////////////
        ///////////////
        if (Mathf.Abs(distanceToShoot) < 5)
        {
            if (distanceToShoot < 0)
            {
                Phase2BoneProj.changeSpeedX(Random.Range(0f, distanceToShoot + 0.5f));
            }
            else if (distanceToShoot > 0)
            {
                Phase2BoneProj.changeSpeedX(Random.Range(0f, distanceToShoot - 0.5f));
            }
        }
        else if (Mathf.Abs(distanceToShoot) < 9 && Mathf.Abs(distanceToShoot) > 5)
        {
            Phase2BoneProj.changeSpeedX(Random.Range(0f, distanceToShoot));
        }
        else if (Mathf.Abs(distanceToShoot) > 9 && Mathf.Abs(distanceToShoot) < 15)
        {
            if (distanceToShoot < 0)
            {
                Phase2BoneProj.changeSpeedX(Random.Range(0f, distanceToShoot + 1.25f));
            }
            else if (distanceToShoot > 0)
            {
                Phase2BoneProj.changeSpeedX(Random.Range(0f, distanceToShoot - 1.25f));
            }
        }
        else if (Mathf.Abs(distanceToShoot) > 15 && Mathf.Abs(distanceToShoot) < 25)
        {
            if (distanceToShoot < 0)
            {
                Phase2BoneProj.changeSpeedX(Random.Range(0f, distanceToShoot + 2.5f));
            }
            else if (distanceToShoot > 0)
            {
                Phase2BoneProj.changeSpeedX(Random.Range(0f, distanceToShoot - 2.5f));
            }
        }
        Instantiate(boneProj, boneProjPos.position, Quaternion.identity);
    }
Пример #2
0
    // Update is called once per frame
    void FixedUpdate()
    {
        phaseThreeRandomizer = Random.Range(0, 2);

        if (EHM.enemyHealth <= Wendigo.EnterPhaseThreeHP)
        {
            BeginPhaseThree -= Time.deltaTime;
            if (BeginPhaseThree <= 0)
            {
                phaseThreeActivated = true;
            }
        }

        if (phaseThreeActivated == true)
        {
            phaseThreeCounter -= Time.deltaTime;
        }

        if (phaseThreeCounter <= 0 && !BoomerangIsOut)
        {
            if (transform.position.x < 0.65 && Wendigo.facingLeft && !hasFlipped)
            {
                Wendigo.Flip();
                Wendigo.facingLeft = !Wendigo.facingLeft;
                hasFlipped         = true;
            }
            else if (transform.position.x > 0.65 && !Wendigo.facingLeft && !hasFlipped)
            {
                Wendigo.Flip();
                Wendigo.facingLeft = !Wendigo.facingLeft;
                hasFlipped         = true;
            }

            if (Wendigo.facingLeft)
            {
                Wendigo.anim.SetInteger("State", 1);
                if (transform.position.x > 0.65)
                {
                    transform.position = new Vector3(transform.position.x - 0.05f, transform.position.y, transform.position.z);
                }

                if (transform.position.x <= 0.65)
                {
                    Wendigo.Flip();
                    Wendigo.facingLeft = !Wendigo.facingLeft;

                    Wendigo.anim.SetInteger("State", 6);
                    boomerangTimer -= Time.deltaTime;
                    if (boomerangTimer <= 0)
                    {
                        roar.Play(); // Sound
                        ThrowBoomerang();
                        BoomerangIsOut    = true;
                        phaseThreeCounter = 3f;
                        StartCoroutine(waitRoarBloodAnim(1.6f));
                    }
                }
            }
            else if (!Wendigo.facingLeft)
            {
                Wendigo.anim.SetInteger("State", 1);
                if (transform.position.x < 0.65)
                {
                    transform.position = new Vector3(transform.position.x + 0.05f, transform.position.y, transform.position.z);
                }
                if (transform.position.x >= 0.65)
                {
                    Wendigo.anim.SetInteger("State", 6);
                    boomerangTimer -= Time.deltaTime;
                    if (boomerangTimer <= 0)
                    {
                        ThrowBoomerang();
                        BoomerangIsOut    = true;
                        phaseThreeCounter = 3f;
                        StartCoroutine(waitRoarBloodAnim(1.6f));
                    }
                }
            }
        }
        else if (phaseThreeRandomizer == 0 && !Wendigo.isJumping && phaseThreeCounter <= 0 && RoarCounter < 2)
        {
            if (pushBackTimer > 0)
            {
                if (once)
                {
                    longRoar.Play(); // Sound
                    once = false;
                }
                Wendigo.anim.SetInteger("State", 6);
                isRoaring     = true;
                isPushingBack = true;
                PBR.Roar();
                pushBackTimer -= Time.deltaTime;
            }
            else
            {
                longRoar.Stop();
                once = true;
                Wendigo.anim.SetInteger("State", 0);
                RoarCounter++;
                PBR.playerIsIdle  = true;
                isRoaring         = false;
                pushBackTimer     = 5.5f;
                isPushingBack     = false;
                phaseThreeCounter = 2.5f;
            }
        }
        else if (phaseThreeRandomizer == 1 && !isRoaring && phaseThreeCounter <= 0)
        {
            Wendigo.isJumping       = true;
            Wendigo.phaseOneCounter = 0;
            phaseThreeCounter       = 3f;
            if (RoarCounter >= 2)
            {
                RoarCounter = 0;
            }
        }
    }