|
|
@@ -480,8 +480,13 @@ public class Demonic : MoveCharacter
|
|
|
}
|
|
|
break;
|
|
|
case CharacterState.Fall:
|
|
|
- if (foot.TrigGround || canFly)
|
|
|
+ if (foot.TrigGround || (canFly && !isDie))
|
|
|
{
|
|
|
+ if (isDie)
|
|
|
+ {
|
|
|
+ ChangeState(CharacterState.Die);
|
|
|
+ break;
|
|
|
+ }
|
|
|
ChangeState(CharacterState.Idle);
|
|
|
break;
|
|
|
}
|
|
|
@@ -502,7 +507,6 @@ public class Demonic : MoveCharacter
|
|
|
Turn();
|
|
|
}
|
|
|
}
|
|
|
-
|
|
|
rb.velocity = velocity;
|
|
|
break;
|
|
|
case CharacterState.Attack:
|
|
|
@@ -715,9 +719,19 @@ public class Demonic : MoveCharacter
|
|
|
case CharacterState.Attack:
|
|
|
break;
|
|
|
case CharacterState.Die:
|
|
|
- ani.Play("die", 0, 0);
|
|
|
- isDie = true;
|
|
|
- dieKeepTime = totalDieKeepTime;
|
|
|
+ if (canFly && !isDie)
|
|
|
+ {
|
|
|
+ rb.constraints = RigidbodyConstraints.FreezeRotation | RigidbodyConstraints.FreezePositionZ;
|
|
|
+ rb.velocity = Vector3.zero;
|
|
|
+ ChangeState(CharacterState.Fall);
|
|
|
+ isDie = true;
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ isDie = true;
|
|
|
+ ani.Play("die", 0, 0);
|
|
|
+ dieKeepTime = totalDieKeepTime;
|
|
|
+ }
|
|
|
break;
|
|
|
case CharacterState.LockSoul:
|
|
|
rb.velocity = Vector3.zero;
|