|
|
@@ -72,7 +72,7 @@ public class Enemy : MoveCharacter
|
|
|
|
|
|
private void Awake()
|
|
|
{
|
|
|
-
|
|
|
+ aimDistance = rushTime * rushSpeed / 2;
|
|
|
}
|
|
|
|
|
|
private void Start()
|
|
|
@@ -361,7 +361,7 @@ public class Enemy : MoveCharacter
|
|
|
case CharacterState.Fall:
|
|
|
if (foot.TrigGround || canFly)
|
|
|
{
|
|
|
- if (isFindPlayer)
|
|
|
+ if (isFindingPlayer)
|
|
|
{
|
|
|
ChangeState(CharacterState.FindPlayer);
|
|
|
}
|
|
|
@@ -481,7 +481,9 @@ public class Enemy : MoveCharacter
|
|
|
break;
|
|
|
case CharacterState.ReadyToRush:
|
|
|
time += Time.deltaTime;
|
|
|
-
|
|
|
+ aimEffect.SetActive(true);
|
|
|
+ rb.constraints = RigidbodyConstraints.FreezeAll;
|
|
|
+ ReadyToDash(rushEndPos + Vector3.up, transform.position + Vector3.up);
|
|
|
if (time >= readyCD)
|
|
|
{
|
|
|
time = 0;
|
|
|
@@ -498,6 +500,7 @@ public class Enemy : MoveCharacter
|
|
|
break;
|
|
|
case CharacterState.RushAttack:
|
|
|
time += Time.deltaTime;
|
|
|
+ dashEffect.canHit = true;
|
|
|
Rush();
|
|
|
if (time >= rushTime)
|
|
|
{
|
|
|
@@ -528,8 +531,10 @@ public class Enemy : MoveCharacter
|
|
|
}
|
|
|
break;
|
|
|
case CharacterState.DownRush:
|
|
|
+
|
|
|
if (transform.position.y > 0)
|
|
|
{
|
|
|
+ dashEffect.canHit = true;
|
|
|
Rush();
|
|
|
}
|
|
|
if (foot.TrigGround || transform.position.y <= -1)
|
|
|
@@ -593,19 +598,21 @@ public class Enemy : MoveCharacter
|
|
|
isFindPlayer = false;
|
|
|
break;
|
|
|
case CharacterState.ReadyToRush:
|
|
|
-
|
|
|
+ time = 0;
|
|
|
aimEffect.SetActive(false);
|
|
|
aimEffect.transform.localScale = Vector3.zero;
|
|
|
rb.constraints =
|
|
|
RigidbodyConstraints.FreezePositionZ | RigidbodyConstraints.FreezeRotation;
|
|
|
break;
|
|
|
case CharacterState.RushAttack:
|
|
|
+ time = 0;
|
|
|
dashEffect.canHit = false;
|
|
|
rb.velocity = Vector3.zero;
|
|
|
bodyTrans.rotation = Quaternion.Euler(Vector3.zero);
|
|
|
|
|
|
break;
|
|
|
case CharacterState.ReadyToDownRush:
|
|
|
+ time = 0;
|
|
|
rb.constraints =
|
|
|
RigidbodyConstraints.FreezePositionZ | RigidbodyConstraints.FreezeRotation;
|
|
|
|
|
|
@@ -618,6 +625,7 @@ public class Enemy : MoveCharacter
|
|
|
transform.position = new Vector3(transform.position.x, -1, 0);
|
|
|
break;
|
|
|
case CharacterState.FinishRush:
|
|
|
+ time = 0;
|
|
|
searchState = SearchState.NoTarget;
|
|
|
noOnSearchState = false;
|
|
|
ani.Play("idle", 0, 0);
|
|
|
@@ -718,6 +726,7 @@ public class Enemy : MoveCharacter
|
|
|
break;
|
|
|
case CharacterState.FindPlayer:
|
|
|
isFindPlayer = false;
|
|
|
+ isFindingPlayer = true;
|
|
|
noOnSearchState = true;
|
|
|
ChosePlayer();
|
|
|
ani.Play("walk", 0, 0);
|
|
|
@@ -726,13 +735,10 @@ public class Enemy : MoveCharacter
|
|
|
case CharacterState.ReadyToRush:
|
|
|
time = 0;
|
|
|
ani.Play("charge", 0, 0);
|
|
|
- aimEffect.SetActive(true);
|
|
|
- aimDistance = rushTime * rushSpeed / 2;
|
|
|
- rb.constraints = RigidbodyConstraints.FreezeAll;
|
|
|
- ReadyToDash(rushEndPos + Vector3.up, transform.position + Vector3.up);
|
|
|
+
|
|
|
break;
|
|
|
case CharacterState.RushAttack:
|
|
|
- dashEffect.canHit = true;
|
|
|
+
|
|
|
targetDir =
|
|
|
(rushEndPos - transform.position).normalized;
|
|
|
ani.Play("rush_attack", 0, 0);
|
|
|
@@ -746,7 +752,6 @@ public class Enemy : MoveCharacter
|
|
|
time = 0;
|
|
|
targetDir = Vector3.down;
|
|
|
ani.Play("rush_attack", 0, 0);
|
|
|
- dashEffect.canHit = true;
|
|
|
break;
|
|
|
case CharacterState.FinishRush:
|
|
|
time = 0;
|