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)); } }
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)); } } }