|
|
@@ -81,6 +81,8 @@ public class MoveCharacter : Character
|
|
|
public Material[] playerOut;
|
|
|
public bool isInvisible;
|
|
|
public bool canNotChangeHurt;
|
|
|
+ public GameObject soulPrefab;
|
|
|
+ public float soulStartSpeed = 1f;
|
|
|
|
|
|
private void Awake()
|
|
|
{
|
|
|
@@ -272,8 +274,10 @@ public class MoveCharacter : Character
|
|
|
|
|
|
public override void BeHit(int damage, Vector3 force, bool changeHurt, float repelValue)
|
|
|
{
|
|
|
+
|
|
|
if (!isTran)
|
|
|
{
|
|
|
+
|
|
|
if (isInvisible)
|
|
|
{
|
|
|
return;
|
|
|
@@ -292,6 +296,12 @@ public class MoveCharacter : Character
|
|
|
rb.AddForce(force);
|
|
|
return;
|
|
|
}
|
|
|
+ if (isSoulUnstable)
|
|
|
+ {
|
|
|
+ GameObject soulObj = PoolManager.Instantiate(soulPrefab, transform.position);
|
|
|
+ Vector3 dir = Vector3.up;
|
|
|
+ soulObj.GetComponent<Soul>().Burst(dir * soulStartSpeed);
|
|
|
+ }
|
|
|
if (canNotChangeHurt)
|
|
|
{
|
|
|
return;
|
|
|
@@ -308,6 +318,7 @@ public class MoveCharacter : Character
|
|
|
{
|
|
|
ChangeState(CharacterState.Weak);
|
|
|
}
|
|
|
+
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
@@ -318,4 +329,5 @@ public class MoveCharacter : Character
|
|
|
pc.BeHit(damage, force, changeHurt, repelValue);
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
}
|