public override void PlayerTurn() { if (!haveDetectPlayer) { if (!CheckDetectionWithPlayer()) { OnFinishTurn?.Invoke(); return; } } StartCoroutine(PlayerTurnCouroutine()); projectileObj.SetActive(haveDisc); }
IEnumerator PlayerTurnCouroutine() { if (isPreparing) { //Attack(); StartAttack(); isPreparing = false; yield return(new WaitForSeconds(1)); } if (CanAttack()) { PrepareAttack(); yield return(new WaitForSeconds(0.4f)); OnFinishTurn?.Invoke(); } else { Move(); } }
IEnumerator WaitDeplacement() { isPlaying = true; do { if (CanAttack()) { myAnimator.SetBool("Walking", false); myNavAgent.isStopped = true; myNavAgent.velocity = Vector3.zero; //PrepareAttack(); break; } yield return(null); SoundManager.Instance.PlaySound(Sound.EnemyMove, gameObject.transform.position); } while (myNavAgent.remainingDistance != 0); //si il a chopé un disc sur la route while (playingDiscDestroyAnimation) { yield return(new WaitForEndOfFrame()); } if (CanAttack() && !isPreparing) { PrepareAttack(); yield return(new WaitForSeconds(0.4f)); } myAnimator.SetBool("Walking", false); isPlaying = false; myNavAgent.isStopped = true; OnFinishTurn?.Invoke(); }
void ForceStopMyTurn() { StopAllCoroutines(); OnFinishTurn?.Invoke(); }