示例#1
0
    public override void PlayerTurn()
    {
        if (!haveDetectPlayer)
        {
            if (!CheckDetectionWithPlayer())
            {
                OnFinishTurn?.Invoke();
                return;
            }
        }

        StartCoroutine(PlayerTurnCouroutine());
        projectileObj.SetActive(haveDisc);
    }
示例#2
0
    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();
        }
    }
示例#3
0
    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();
    }
示例#4
0
 void ForceStopMyTurn()
 {
     StopAllCoroutines();
     OnFinishTurn?.Invoke();
 }