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); }
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; } }
void patternStart() { ani.enemyPattern = DistanceAttackEnemyType01AtkPattern.patternFireBallAttack; rotate(); ani.aniSet("FireBallAttack"); }