|
@@ -10,6 +10,7 @@ public enum InvisibleState
|
|
|
FindPlayer = 3, //冷鯤소
|
|
FindPlayer = 3, //冷鯤소
|
|
|
Boom = 4, //괵珞
|
|
Boom = 4, //괵珞
|
|
|
Die = 5, //价空
|
|
Die = 5, //价空
|
|
|
|
|
+ Wait = 6, //된鯤소놔쳔
|
|
|
}
|
|
}
|
|
|
public class ESpirits_Invisible : MonoBehaviour
|
|
public class ESpirits_Invisible : MonoBehaviour
|
|
|
{
|
|
{
|
|
@@ -147,6 +148,26 @@ public class ESpirits_Invisible : MonoBehaviour
|
|
|
if (enemy.targetCharacter == null)
|
|
if (enemy.targetCharacter == null)
|
|
|
{
|
|
{
|
|
|
enemy.ChosePlayer();
|
|
enemy.ChosePlayer();
|
|
|
|
|
+ if(enemy.targetCharacter == null)
|
|
|
|
|
+ {
|
|
|
|
|
+ ChangeState(InvisibleState.Wait);
|
|
|
|
|
+ break;
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ else
|
|
|
|
|
+ {
|
|
|
|
|
+ PlayerController playerController =
|
|
|
|
|
+ enemy.targetCharacter.GetComponent<PlayerController>();
|
|
|
|
|
+ if (playerController.isBaseBtnOut)
|
|
|
|
|
+ {
|
|
|
|
|
+ enemy.ChosePlayer();
|
|
|
|
|
+ if (enemy.targetCharacter == null)
|
|
|
|
|
+ {
|
|
|
|
|
+ ChangeState(InvisibleState.Wait);
|
|
|
|
|
+ break;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ }
|
|
|
}
|
|
}
|
|
|
pos1 = new Vector3(transform.position.x, transform.position.y, 0);
|
|
pos1 = new Vector3(transform.position.x, transform.position.y, 0);
|
|
|
pos2 = new Vector3(enemy.targetCharacter.transform.position.x,
|
|
pos2 = new Vector3(enemy.targetCharacter.transform.position.x,
|
|
@@ -162,6 +183,21 @@ public class ESpirits_Invisible : MonoBehaviour
|
|
|
case InvisibleState.Boom:
|
|
case InvisibleState.Boom:
|
|
|
ChangeState(InvisibleState.Normal);
|
|
ChangeState(InvisibleState.Normal);
|
|
|
break;
|
|
break;
|
|
|
|
|
+ case InvisibleState.Wait:
|
|
|
|
|
+ enemy.ChosePlayer();
|
|
|
|
|
+ if (enemy.targetCharacter != null)
|
|
|
|
|
+ {
|
|
|
|
|
+ ChangeState(InvisibleState.FindPlayer);
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ targetPos = new Vector3(posx + offsetX, altitude + offsetY, transform.position.z);
|
|
|
|
|
+ Goto(targetPos, moveSpeed);
|
|
|
|
|
+ if (Vector3.Distance(targetPos, transform.position) < 1)
|
|
|
|
|
+ {
|
|
|
|
|
+ offsetY = Random.Range(-randomRageY, randomRageY);
|
|
|
|
|
+ offsetX = Random.Range(-randomRageX, randomRageX);
|
|
|
|
|
+ }
|
|
|
|
|
+ break;
|
|
|
default:
|
|
default:
|
|
|
break;
|
|
break;
|
|
|
}
|
|
}
|
|
@@ -181,6 +217,8 @@ public class ESpirits_Invisible : MonoBehaviour
|
|
|
break;
|
|
break;
|
|
|
case InvisibleState.Boom:
|
|
case InvisibleState.Boom:
|
|
|
break;
|
|
break;
|
|
|
|
|
+ case InvisibleState.Wait:
|
|
|
|
|
+ break;
|
|
|
default:
|
|
default:
|
|
|
break;
|
|
break;
|
|
|
}
|
|
}
|
|
@@ -216,6 +254,11 @@ public class ESpirits_Invisible : MonoBehaviour
|
|
|
followEffect.DropSoul(haveSoulNumber, false);
|
|
followEffect.DropSoul(haveSoulNumber, false);
|
|
|
gameObject.SetActive(false);
|
|
gameObject.SetActive(false);
|
|
|
break;
|
|
break;
|
|
|
|
|
+ case InvisibleState.Wait:
|
|
|
|
|
+ offsetY = Random.Range(-randomRageY, randomRageY);
|
|
|
|
|
+ offsetX = Random.Range(-randomRageX, randomRageX);
|
|
|
|
|
+ posx = transform.position.x;
|
|
|
|
|
+ break;
|
|
|
default:
|
|
default:
|
|
|
break;
|
|
break;
|
|
|
}
|
|
}
|