|
|
@@ -226,7 +226,7 @@ public class Enemy : MoveCharacter
|
|
|
public override void OnState()
|
|
|
{
|
|
|
base.OnState();
|
|
|
- hurtKeepTime -= Time.deltaTime;
|
|
|
+ //hurtKeepTime -= Time.deltaTime;
|
|
|
attackTime -= Time.deltaTime;
|
|
|
dieKeepTime -= Time.deltaTime;
|
|
|
invincibleTime -= Time.deltaTime;
|
|
|
@@ -429,20 +429,20 @@ public class Enemy : MoveCharacter
|
|
|
//}
|
|
|
rb.velocity += Vector3.up * extraFallGravity * Time.deltaTime;
|
|
|
break;
|
|
|
- case CharacterState.Hurt:
|
|
|
- if (hurtKeepTime <= 0 && rb.velocity.magnitude < hurtChangeVelocity)
|
|
|
- {
|
|
|
- ChangeState(CharacterState.Idle);
|
|
|
- break;
|
|
|
- }
|
|
|
- if (!foot.TrigGround && !canFly)
|
|
|
- {
|
|
|
- rb.velocity += Vector3.up * extraFallGravity * Time.deltaTime;
|
|
|
- }
|
|
|
- Vector3 vel = rb.velocity;
|
|
|
- vel.x = vel.x * (1 - decelerationRatio * Time.deltaTime);
|
|
|
- rb.velocity = vel;
|
|
|
- break;
|
|
|
+ //case CharacterState.Hurt:
|
|
|
+ // if (hurtKeepTime <= 0 && rb.velocity.magnitude < hurtChangeVelocity)
|
|
|
+ // {
|
|
|
+ // ChangeState(CharacterState.Idle);
|
|
|
+ // break;
|
|
|
+ // }
|
|
|
+ // if (!foot.TrigGround && !canFly)
|
|
|
+ // {
|
|
|
+ // rb.velocity += Vector3.up * extraFallGravity * Time.deltaTime;
|
|
|
+ // }
|
|
|
+ // Vector3 vel = rb.velocity;
|
|
|
+ // vel.x = vel.x * (1 - decelerationRatio * Time.deltaTime);
|
|
|
+ // rb.velocity = vel;
|
|
|
+ // break;
|
|
|
case CharacterState.Attack:
|
|
|
if (attackTime <= 0)
|
|
|
{
|
|
|
@@ -463,6 +463,43 @@ public class Enemy : MoveCharacter
|
|
|
ChangeState(CharacterState.Idle);
|
|
|
break;
|
|
|
}
|
|
|
+ if(rb.velocity.magnitude > 1)
|
|
|
+ {
|
|
|
+ if(ani.GetCurrentAnimatorClipInfo(0)[0].clip.name != "hitted")
|
|
|
+ {
|
|
|
+ ani.Play("hitted",0,0);
|
|
|
+ aniCollider.Play("Hurt",0,0);
|
|
|
+ }
|
|
|
+ Vector3 vel = rb.velocity;
|
|
|
+ if (!canFly)
|
|
|
+ {
|
|
|
+ if (foot.TrigGround && vel.y < 0)
|
|
|
+ {
|
|
|
+ vel.y = 0;
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ vel += Vector3.up * extraFallGravity * Time.deltaTime;
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ vel.y = vel.y * (1 - decelerationRatio * Time.deltaTime);
|
|
|
+ vel.x = vel.x * (1 - decelerationRatio * Time.deltaTime);
|
|
|
+ rb.velocity = vel;
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ if (ani.GetCurrentAnimatorClipInfo(0)[0].clip.name != "weak")
|
|
|
+ {
|
|
|
+ ani.Play("weak",0,0);
|
|
|
+ aniCollider.Play("Weak",0,0);
|
|
|
+ rb.velocity = Vector3.zero;
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
break;
|
|
|
case CharacterState.Coma:
|
|
|
if (!isCaughtByCook)
|
|
|
@@ -633,8 +670,8 @@ public class Enemy : MoveCharacter
|
|
|
case CharacterState.Fall:
|
|
|
rb.velocity = Vector3.zero;
|
|
|
break;
|
|
|
- case CharacterState.Hurt:
|
|
|
- break;
|
|
|
+ //case CharacterState.Hurt:
|
|
|
+ // break;
|
|
|
case CharacterState.Attack:
|
|
|
aniCollider.Play("NotAttack", 1, 0);
|
|
|
break;
|
|
|
@@ -642,7 +679,7 @@ public class Enemy : MoveCharacter
|
|
|
isDie = false;
|
|
|
break;
|
|
|
case CharacterState.Weak:
|
|
|
-
|
|
|
+ beRepelValue = totalBeRepelValue;
|
|
|
break;
|
|
|
case CharacterState.Float:
|
|
|
canMove = true;
|
|
|
@@ -724,25 +761,25 @@ public class Enemy : MoveCharacter
|
|
|
aniCollider.Play("Fall", 0, 0);
|
|
|
//animalAni.SetInteger("state", (int)PlayerState.Fall);
|
|
|
break;
|
|
|
- case CharacterState.Hurt:
|
|
|
- switch (oldState)
|
|
|
- {
|
|
|
- case CharacterState.ReadyToRush:
|
|
|
- case CharacterState.RushAttack:
|
|
|
- case CharacterState.ReadyToDownRush:
|
|
|
- case CharacterState.DownRush:
|
|
|
- case CharacterState.Rush:
|
|
|
- state = oldState;
|
|
|
- beRepelValue = totalBeRepelValue;
|
|
|
- break;
|
|
|
- default:
|
|
|
- ani.Play("hitted", 0, 0);
|
|
|
- aniCollider.Play("Hurt", 0, 0);
|
|
|
- invincibleTime = totalInvincibleTime;
|
|
|
- hurtKeepTime = minHurtKeepTime;
|
|
|
- break;
|
|
|
- }
|
|
|
- break;
|
|
|
+ //case CharacterState.Hurt:
|
|
|
+ // switch (oldState)
|
|
|
+ // {
|
|
|
+ // case CharacterState.ReadyToRush:
|
|
|
+ // case CharacterState.RushAttack:
|
|
|
+ // case CharacterState.ReadyToDownRush:
|
|
|
+ // case CharacterState.DownRush:
|
|
|
+ // case CharacterState.Rush:
|
|
|
+ // state = oldState;
|
|
|
+ // beRepelValue = totalBeRepelValue;
|
|
|
+ // break;
|
|
|
+ // default:
|
|
|
+ // ani.Play("hitted", 0, 0);
|
|
|
+ // aniCollider.Play("Hurt", 0, 0);
|
|
|
+ // invincibleTime = totalInvincibleTime;
|
|
|
+ // hurtKeepTime = minHurtKeepTime;
|
|
|
+ // break;
|
|
|
+ // }
|
|
|
+ // break;
|
|
|
case CharacterState.Float:
|
|
|
canMove = false;
|
|
|
break;
|
|
|
@@ -781,19 +818,15 @@ public class Enemy : MoveCharacter
|
|
|
case CharacterState.RushAttack:
|
|
|
case CharacterState.ReadyToDownRush:
|
|
|
case CharacterState.DownRush:
|
|
|
+ case CharacterState.Rush:
|
|
|
state = oldState;
|
|
|
beRepelValue = totalBeRepelValue;
|
|
|
break;
|
|
|
default:
|
|
|
- aniCollider.Play("Weak", 0, 0);
|
|
|
- ani.Play("weak", 0, 0);
|
|
|
- Vector3 velocity = rb.velocity;
|
|
|
- velocity.y = weakUpSpeed;
|
|
|
- rb.velocity = velocity;
|
|
|
weakTime = totalWeakTime;
|
|
|
+ //hurtKeepTime = minHurtKeepTime;
|
|
|
break;
|
|
|
}
|
|
|
-
|
|
|
break;
|
|
|
case CharacterState.FindPlayer:
|
|
|
isFindPlayer = false;
|