|
@@ -250,48 +250,50 @@ public class MoveCharacter : Character
|
|
|
|
|
|
|
|
public override void BeHit(int damage, Vector3 force, bool changeHurt, float repelValue)
|
|
public override void BeHit(int damage, Vector3 force, bool changeHurt, float repelValue)
|
|
|
{
|
|
{
|
|
|
- if (isInvisible)
|
|
|
|
|
|
|
+ if (!isTran)
|
|
|
{
|
|
{
|
|
|
- return;
|
|
|
|
|
- }
|
|
|
|
|
- if (invincibleTime > 0)
|
|
|
|
|
- {
|
|
|
|
|
- return;
|
|
|
|
|
- }
|
|
|
|
|
|
|
+ if (isInvisible)
|
|
|
|
|
+ {
|
|
|
|
|
+ return;
|
|
|
|
|
+ }
|
|
|
|
|
+ if (invincibleTime > 0)
|
|
|
|
|
+ {
|
|
|
|
|
+ return;
|
|
|
|
|
+ }
|
|
|
|
|
|
|
|
- hp -= damage;
|
|
|
|
|
- if (isTran)
|
|
|
|
|
|
|
+ hp -= damage;
|
|
|
|
|
+ uiHp.Show(hp, totalHp);
|
|
|
|
|
+ if (hp <= 0)
|
|
|
|
|
+ {
|
|
|
|
|
+
|
|
|
|
|
+ ChangeState(CharacterState.Die);
|
|
|
|
|
+ rb.AddForce(force);
|
|
|
|
|
+ return;
|
|
|
|
|
+ }
|
|
|
|
|
+ if (canNotChangeHurt)
|
|
|
|
|
+ {
|
|
|
|
|
+ return;
|
|
|
|
|
+ }
|
|
|
|
|
+ if (changeHurt && state == CharacterState.Weak)
|
|
|
|
|
+ {
|
|
|
|
|
+ ChangeState(CharacterState.Hurt);
|
|
|
|
|
+ rb.AddForce(force);
|
|
|
|
|
+ beRepelValue = totalBeRepelValue;
|
|
|
|
|
+ return;
|
|
|
|
|
+ }
|
|
|
|
|
+ beRepelValue -= repelValue;
|
|
|
|
|
+ if (changeHurt && beRepelValue <= 0)
|
|
|
|
|
+ {
|
|
|
|
|
+ ChangeState(CharacterState.Weak);
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ else
|
|
|
{
|
|
{
|
|
|
if (pc == null)
|
|
if (pc == null)
|
|
|
{
|
|
{
|
|
|
pc = GetComponentInParent<PlayerController>();
|
|
pc = GetComponentInParent<PlayerController>();
|
|
|
}
|
|
}
|
|
|
- pc.hp = hp;
|
|
|
|
|
- pc.uiHp.Show(pc.hp, pc.totalHp);
|
|
|
|
|
- }
|
|
|
|
|
- uiHp.Show(hp, totalHp);
|
|
|
|
|
- if (hp <= 0)
|
|
|
|
|
- {
|
|
|
|
|
-
|
|
|
|
|
- ChangeState(CharacterState.Die);
|
|
|
|
|
- rb.AddForce(force);
|
|
|
|
|
- return;
|
|
|
|
|
- }
|
|
|
|
|
- if (canNotChangeHurt)
|
|
|
|
|
- {
|
|
|
|
|
- return;
|
|
|
|
|
- }
|
|
|
|
|
- if (changeHurt && state == CharacterState.Weak)
|
|
|
|
|
- {
|
|
|
|
|
- ChangeState(CharacterState.Hurt);
|
|
|
|
|
- rb.AddForce(force);
|
|
|
|
|
- beRepelValue = totalBeRepelValue;
|
|
|
|
|
- return;
|
|
|
|
|
- }
|
|
|
|
|
- beRepelValue -= repelValue;
|
|
|
|
|
- if (changeHurt && beRepelValue <= 0)
|
|
|
|
|
- {
|
|
|
|
|
- ChangeState(CharacterState.Weak);
|
|
|
|
|
|
|
+ pc.BeHit(damage, force, changeHurt, repelValue);
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|