Ejemplo n.º 1
0
    IEnumerator attacking()
    {
        while (myState == states.ATK)
        {
            if (!isDeath)
            {
                archerControl.DrawStand();
            }
            yield return(new WaitForSeconds(1f));

            if (!isDeath)
            {
                archerControl.shootArrow();
            }
            yield return(new WaitUntil(() => archerControl.canShoot));
        }
    }
Ejemplo n.º 2
0
    IEnumerator attacking()
    {
        int loopCount = 0;

        while (myState == states.ATK)
        {
            if (archerControl.ultimateManager.isFull())
            {
                archerControl.showAvatar();
                yield return(new WaitForSeconds(0.8f));
            }
            else
            {
                if (!isDeath)
                {
                    archerControl.DrawStand();
                }
                yield return(new WaitForSeconds(0.1f));
            }
            if (!isDeath)
            {
                archerControl.shootArrow();
            }

            yield return(new WaitUntil(() => archerControl.canShoot));

            loopCount++;
            if (loopCount == 10)
            {
                loopCount = 0;
                ChangeMode();
            }
            if (Vector3.Distance(transform.position, enemyAI.target.transform.position) < 4f)
            {
                archerControl.preformDodge();
                transform.eulerAngles += new Vector3(0, 180, 0);
                agent.SetDestination(transform.position + (Vector3.forward * 5f));
                yield return(new WaitUntil(() => !archerControl.isDodge));
            }
        }
    }