Esempio n. 1
0
    public override TaskStatus OnUpdate()
    {
        if (numOfPattern.Value != 2)
        {
            return(TaskStatus.Failure);
        }

        if (hpPostionScript.deadOrLive == 1)
        {
            return(TaskStatus.Failure);
        }


        if ((aniStart == false) && Vector3.Distance(transform.position, target.Value.position) < checkPatternForEnemyScript.bossAttackDistancePattern[2])
        {
            ischaseStart = false;
            bossAniScript01.bossPatternChoice(numOfPattern.Value);
            weaponColliderConScript.weaponColliderOn(0);
            aniStart = true;
        }

        if ((aniStart == true) && (startTime + endTime < Time.time))
        {
            return(TaskStatus.Failure);
        }
        if (ischaseStart == true)
        {
            transform.position = Vector3.Lerp(transform.position, target.Value.position, bossAttackSpeedPattern);
        }


        rotateBoss();

        return(TaskStatus.Running);
    }
    public void patternChoice(int patternCount)
    {
        switch (patternCount)
        {
        // close
        case 0:
            ani.SetBool("Bool_Enemy_PatternClose", true);
            weaponColliderConScript.weaponColliderOn(0);
            Invoke("resetAni", resetAniTime);
            Invoke("resetWeaponCollider", 1.6f);
            //Invoke("resetPattern", resetPatternTime);
            break;

        // far
        case 1:
            ani.SetBool("Bool_Enemy_PatternFar", true);
            break;
        }
    }