public override TaskStatus OnUpdate()
    {
        if (Vector3.Distance(transform.position, target.Value.position) <= checkDistance)
        {
            return(TaskStatus.Failure);
        }

        switch (thisGameObjName.Value)
        {
        case "CloseAttackEnemy01":
            closeAttackEnemyAni = GetComponent <CloseAttackTypeNormalAni>();
            closeAttackEnemyAni.aniSet("Rest");
            break;

        case "DistanceAttackEnemy01":
            distanceAttackAni = GetComponent <DistanceAttackTypeNormalAni>();
            distanceAttackAni.aniSet("Rest");
            break;

        case "Boss_01(Clone)":
            bossAni = GetComponent <BossAniScript>();
            break;
        }

        return(TaskStatus.Success);
    }
Exemple #2
0
    private void OnTriggerExit(Collider other)
    {
        if (IsAttackedState == DistacneAttackEnemy01IsAttacked.attacked)
        {
            return;
        }

        switch (other.gameObject.tag)
        {
        case "PlayerSword01":
            hpPostionScript.enemyDamagedAndImageChange(0.2f);
            hpPostionScript.enemyHpDeadCheck();

            camShackManagerScript.shake();
            timeManagerScript.playerAttackTime();

            hitObjOnOff();

            if (hpPostionScript.deadOrLive == 1)
            {
                skinMeshRender.materials[0].color = Color.white;

                aniScript.aniSet("Dead");
                Destroy(this.gameObject, 3f);
            }
            else
            {
                skinMeshRender.materials[0].color = Color.white;

                aniScript.aniSet("Hitted");
                IsAttackedState = DistacneAttackEnemy01IsAttacked.attacked;
                Invoke("stateChange", 0.3f);
            }
            break;

        case "PlayerSword02":
            hpPostionScript.enemyDamagedAndImageChange(0.5f);
            hpPostionScript.enemyHpDeadCheck();

            camShackManagerScript.shake();
            timeManagerScript.playerAttackTime();

            hitObjOnOff();

            if (hpPostionScript.deadOrLive == 1)
            {
                skinMeshRender.materials[0].color = Color.white;

                aniScript.aniSet("Dead");
                Destroy(this.gameObject, 3f);
            }
            else
            {
                skinMeshRender.materials[0].color = Color.white;

                aniScript.aniSet("Hitted");
                IsAttackedState = DistacneAttackEnemy01IsAttacked.attacked;
                Invoke("stateChange", 0.3f);
            }
            break;

        case "PlayerSword03":
            hpPostionScript.enemyDamagedAndImageChange(0.8f);
            hpPostionScript.enemyHpDeadCheck();

            camShackManagerScript.shake();
            timeManagerScript.playerAttackTime();

            hitObjOnOff();

            if (hpPostionScript.deadOrLive == 1)
            {
                skinMeshRender.materials[0].color = Color.white;

                aniScript.aniSet("Dead");
                Destroy(this.gameObject, 3f);
            }
            else
            {
                skinMeshRender.materials[0].color = Color.white;

                aniScript.aniSet("Hitted");
                IsAttackedState = DistacneAttackEnemy01IsAttacked.attacked;
                Invoke("stateChange", 0.3f);
            }
            break;
        }
    }
    public override TaskStatus OnUpdate()
    {
        switch (thisGameObjName.Value)
        {
        case "CloseAttackEnemy01":
            if ((hpPostionScript.deadOrLive != 1) ||
                (closeAttackTypeNormalColliderCon.IsAttackedState != CloseAttackTypeNormalColliderCon.CloseAttackEnemy01IsAttacked.stuned))
            {
                rotate();
            }

            if (startTime + randomTime < Time.time)
            {
                waitForAttack.Value = true;
                closeAttackEnemyaniScript.resetAni();
                return(TaskStatus.Success);
            }
            if (Vector3.Distance(transform.position, target.Value.position) >= 4f)
            {
                closeAttackEnemyaniScript.aniSet("Run");
                transform.position = Vector3.SmoothDamp(transform.position, target.Value.position, ref velo, 5f);
            }
            else
            {
                closeAttackEnemyaniScript.forIdle();
            }
            break;

        case "DistanceAttackEnemy01":
            if (startTime + randomTime < Time.time)
            {
                distanceAttackEnemyaniScript.aniSet("Reset_Ani");
                waitForAttack.Value = true;
                return(TaskStatus.Success);
            }
            if (Vector3.Distance(transform.position, target.Value.position) >= 8f)
            {
                distanceAttackEnemyaniScript.aniSet("Run");
                transform.position = Vector3.SmoothDamp(transform.position, target.Value.position, ref velo, 5f);
            }
            else
            {
                distanceAttackEnemyaniScript.aniSet("Reset_Ani");
                waitForAttack.Value = true;
            }
            break;

        case "Boss_01(Clone)":
            if (startTime + randomTime < Time.time)
            {
                bossAniScript01.resetAttackPattern();
                waitForAttack.Value = true;

                if (Vector3.Distance(transform.position, target.Value.position) < 7f)
                {
                    ifClosePatternChoiceBoss01();
                }
                else
                {
                    ifFarPatternChoiceBoss01();
                }

                switch (numOfPattern.Value)
                {
                case 2:
                    bossAniScript01.bossPatternStorageToCheckLastOneState = BossPatternStorageToCheckLastOne.pattern02;
                    break;

                case 3:
                    bossAniScript01.bossPatternStorageToCheckLastOneState = BossPatternStorageToCheckLastOne.pattern03;
                    break;

                case 4:
                    bossAniScript01.bossPatternStorageToCheckLastOneState = BossPatternStorageToCheckLastOne.pattern04;
                    break;

                case 5:
                    bossAniScript01.bossPatternStorageToCheckLastOneState = BossPatternStorageToCheckLastOne.pattern05;
                    break;

                case 6:
                    bossAniScript01.bossPatternStorageToCheckLastOneState = BossPatternStorageToCheckLastOne.pattern06;
                    break;

                case 7:
                    bossAniScript01.bossPatternStorageToCheckLastOneState = BossPatternStorageToCheckLastOne.pattern07;
                    break;

                case 8:
                    bossAniScript01.bossPatternStorageToCheckLastOneState = BossPatternStorageToCheckLastOne.pattern08;
                    break;

                case 9:
                    bossAniScript01.bossPatternStorageToCheckLastOneState = BossPatternStorageToCheckLastOne.pattern09;
                    break;
                }

                return(TaskStatus.Success);
            }
            if (Vector3.Distance(transform.position, target.Value.position) >= 5f)
            {
                bossAniScript01.run();
                transform.position = Vector3.SmoothDamp(transform.position, target.Value.position, ref velo, 5f);
            }
            else
            {
                bossAniScript01.resetAttackPattern();
            }
            break;
        }

        rotate();
        return(TaskStatus.Running);
    }
    public override void OnStart()
    {
        velo = Vector3.zero;

        startTime  = Time.time;
        randomTime = Random.Range(minRandomTime, maxRandomTime);

        switch (thisGameObjName.Value)
        {
        case "CloseAttackEnemy01":
            hpPostionScript = GetComponent <EnemyHpPostionScript>();
            closeAttackTypeNormalColliderCon = GetComponent <CloseAttackTypeNormalColliderCon>();
            closeAttackEnemyaniScript        = GetComponent <CloseAttackTypeNormalAni>();
            closeAttackEnemyaniScript.aniSet("Reset_Ani");
            break;

        case "DistanceAttackEnemy01":
            distanceAttackEnemyaniScript = GetComponent <DistanceAttackTypeNormalAni>();
            distanceAttackEnemyaniScript.aniSet("Reset_Ani");
            break;

        case "Boss_01(Clone)":
            boss01ColliderCon       = GetComponent <Boss01ColliderCon>();
            bossAniScript01         = GetComponent <BossAniScript>();
            weaponColliderConScript = GetComponent <WeaponColliderCon>();

            weaponColliderConScript.weaponColliderOff();

            for (int i = 1; i < 10; i++)
            {
                float num = 0;
                switch (i)
                {
                case 1:
                    num = 8f;
                    break;

                case 2:
                    num = 3f;
                    break;

                case 3:
                    num = 2f;
                    break;

                case 4:
                    num = 2f;
                    break;

                case 5:
                    num = 2f;
                    break;

                case 6:
                    num = 2f;
                    break;

                case 7:
                    num = 1.5f;
                    break;

                case 8:
                    num = 1.6f;
                    break;

                case 9:
                    num = 2f;
                    break;
                }

                bossAttackDistancePattern[i] = num;
            }
            break;
        }
    }
Exemple #5
0
 void patternStart()
 {
     ani.enemyPattern = DistanceAttackEnemyType01AtkPattern.patternFireBallAttack;
     rotate();
     ani.aniSet("FireBallAttack");
 }