|
@@ -10,14 +10,11 @@ public class ESpirits_Cook : MonoBehaviour
|
|
|
public TextMeshProUGUI text; //剩余串的数量文本
|
|
public TextMeshProUGUI text; //剩余串的数量文本
|
|
|
private GameObject dia; //文本框
|
|
private GameObject dia; //文本框
|
|
|
|
|
|
|
|
- private float offset;
|
|
|
|
|
-
|
|
|
|
|
private Transform cook; //厨子
|
|
private Transform cook; //厨子
|
|
|
private Animator ani; //厨子动画
|
|
private Animator ani; //厨子动画
|
|
|
private Collider col; //厨子的碰撞体
|
|
private Collider col; //厨子的碰撞体
|
|
|
public int chuan; //厨子拥有多少串
|
|
public int chuan; //厨子拥有多少串
|
|
|
- public bool isGood; //厨子是否是好厨子
|
|
|
|
|
- public GameObject[] colliders; //一些要开要关的collider
|
|
|
|
|
|
|
+ //public bool isGood; //厨子是否是好厨子
|
|
|
|
|
|
|
|
private float intervalTimePast;
|
|
private float intervalTimePast;
|
|
|
public float intervalTimeSell; //卖串的间隔时间
|
|
public float intervalTimeSell; //卖串的间隔时间
|
|
@@ -41,29 +38,8 @@ public class ESpirits_Cook : MonoBehaviour
|
|
|
public Character target;
|
|
public Character target;
|
|
|
public SearchTrigger searchtrigger;
|
|
public SearchTrigger searchtrigger;
|
|
|
|
|
|
|
|
- public GameObject lockEffect;
|
|
|
|
|
- private GameObject curLock;
|
|
|
|
|
- //public GameObject cookKillEffect;
|
|
|
|
|
-
|
|
|
|
|
- private float pastTime;
|
|
|
|
|
- public float cookTime;
|
|
|
|
|
- public float seizeTime;
|
|
|
|
|
- public float chargeTime;
|
|
|
|
|
-
|
|
|
|
|
private float destX;
|
|
private float destX;
|
|
|
|
|
|
|
|
- public enum cookState
|
|
|
|
|
- {
|
|
|
|
|
- sell = 0,
|
|
|
|
|
- run = 1,
|
|
|
|
|
- seize = 2, //抓住
|
|
|
|
|
- back = 3,
|
|
|
|
|
- cook = 4,
|
|
|
|
|
- first = 5, //刚出生
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
- private cookState state;
|
|
|
|
|
- private GameObject food; //被抓的食材
|
|
|
|
|
|
|
|
|
|
private void Start()
|
|
private void Start()
|
|
|
{
|
|
{
|
|
@@ -74,11 +50,9 @@ public class ESpirits_Cook : MonoBehaviour
|
|
|
col.enabled = false;
|
|
col.enabled = false;
|
|
|
dia = text.transform.parent.gameObject;
|
|
dia = text.transform.parent.gameObject;
|
|
|
dia.SetActive(false);
|
|
dia.SetActive(false);
|
|
|
- //customers = new List<GameObject>();
|
|
|
|
|
destX = DestinationX();
|
|
destX = DestinationX();
|
|
|
text.text = chuan.ToString();
|
|
text.text = chuan.ToString();
|
|
|
ene.noOnSearchState = true;
|
|
ene.noOnSearchState = true;
|
|
|
- //curLock = Instantiate(lockEffect, cook.transform.position, new Quaternion(0, 0, 0, 0), cook.transform);
|
|
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
private float DestinationX()
|
|
private float DestinationX()
|
|
@@ -87,31 +61,12 @@ public class ESpirits_Cook : MonoBehaviour
|
|
|
return x;
|
|
return x;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
- public void ReleaseFood()
|
|
|
|
|
- {
|
|
|
|
|
- if (food.layer == 7)
|
|
|
|
|
- {
|
|
|
|
|
- Demonic dem = food.GetComponent<Demonic>();
|
|
|
|
|
- dem.isCaughtByCook = false;
|
|
|
|
|
- }
|
|
|
|
|
- else if (food.layer == 6)
|
|
|
|
|
- {
|
|
|
|
|
- PlayerController pc = food.GetComponent<PlayerController>();
|
|
|
|
|
- pc.isCaughtByCook = false;
|
|
|
|
|
- }
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
- private void ToRush()
|
|
|
|
|
- {
|
|
|
|
|
- ChangeState(cookState.run);
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
private void TargetInteract()
|
|
private void TargetInteract()
|
|
|
{
|
|
{
|
|
|
target = searchtrigger.GetMinDisTarget(ene.targetTypes, ene.canHitFly);
|
|
target = searchtrigger.GetMinDisTarget(ene.targetTypes, ene.canHitFly);
|
|
|
if (target != null)
|
|
if (target != null)
|
|
|
{
|
|
{
|
|
|
- if (state == cookState.sell && (target.gameObject.layer == 7 || target.gameObject.layer == 8 || target.gameObject.layer == 6))
|
|
|
|
|
|
|
+ if (target.gameObject.layer == 7 || target.gameObject.layer == 8 || target.gameObject.layer == 6)
|
|
|
{
|
|
{
|
|
|
if (!isInterval && chuan > 0)
|
|
if (!isInterval && chuan > 0)
|
|
|
{
|
|
{
|
|
@@ -127,167 +82,11 @@ public class ESpirits_Cook : MonoBehaviour
|
|
|
//Instantiate(effect, ga.transform.position, new Quaternion(0, 0, 0, 0), ga.transform);
|
|
//Instantiate(effect, ga.transform.position, new Quaternion(0, 0, 0, 0), ga.transform);
|
|
|
if (chuan == 0)
|
|
if (chuan == 0)
|
|
|
{
|
|
{
|
|
|
- customers = new List<Character>();
|
|
|
|
|
- ani.Play("charge", 0, 0);
|
|
|
|
|
- Invoke("ToRush", chargeTime);
|
|
|
|
|
|
|
+ ene.ChangeState(CharacterState.Die);
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
- //抓人
|
|
|
|
|
- else if (state == cookState.run)
|
|
|
|
|
- {
|
|
|
|
|
- if (target.gameObject.layer == 6 || target.gameObject.layer == 7)
|
|
|
|
|
- {
|
|
|
|
|
- food = target.gameObject;
|
|
|
|
|
- if (food.layer == 7 && !target.isDie)
|
|
|
|
|
- {
|
|
|
|
|
- Demonic fDem = food.GetComponent<Demonic>();
|
|
|
|
|
- fDem.isCaughtByCook = true;
|
|
|
|
|
- fDem.ChangeState(CharacterState.Coma);
|
|
|
|
|
- //food.GetComponent<Demonic>().ChangeState(CharacterState.Die);
|
|
|
|
|
- //cookKillEffect.SetActive(true);
|
|
|
|
|
- ChangeState(cookState.seize);
|
|
|
|
|
- }
|
|
|
|
|
- else if (food.layer == 6 && !target.isDie)
|
|
|
|
|
- {
|
|
|
|
|
- PlayerController fPC = food.GetComponent<PlayerController>();
|
|
|
|
|
- fPC.isCaughtByCook = true;
|
|
|
|
|
- fPC.ChangeState(CharacterState.Coma);
|
|
|
|
|
- //food.GetComponent<PlayerController>().ChangeState(CharacterState.Die);
|
|
|
|
|
- //cookKillEffect.SetActive(true);
|
|
|
|
|
- ChangeState(cookState.seize);
|
|
|
|
|
- }
|
|
|
|
|
- chuan = food.GetComponent<Character>().cookNum;
|
|
|
|
|
- offset = cook.transform.position.x - food.transform.position.x;
|
|
|
|
|
- text.text = chuan.ToString();
|
|
|
|
|
- }
|
|
|
|
|
- }
|
|
|
|
|
- //回家卖串
|
|
|
|
|
- /*
|
|
|
|
|
- else if (state == cookState.back && target.gameObject.layer == 8)
|
|
|
|
|
- {
|
|
|
|
|
- ChangeState(cookState.cook);
|
|
|
|
|
- if (food.layer == 7 && !target.isDie)
|
|
|
|
|
- {
|
|
|
|
|
- food.GetComponent<Demonic>().ChangeState(CharacterState.Die);
|
|
|
|
|
- }
|
|
|
|
|
- else if (food.layer == 6 && !target.isDie)
|
|
|
|
|
- {
|
|
|
|
|
- food.GetComponent<PlayerController>().ChangeState(CharacterState.Die);
|
|
|
|
|
- }
|
|
|
|
|
- }*/
|
|
|
|
|
- }
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
- private void ChangeState(cookState cs)
|
|
|
|
|
- {
|
|
|
|
|
- switch (cs)
|
|
|
|
|
- {
|
|
|
|
|
- //卖串中
|
|
|
|
|
- case cookState.sell:
|
|
|
|
|
- dia.SetActive(true);
|
|
|
|
|
- ene.isBack = false;
|
|
|
|
|
- ene.canMove = false;
|
|
|
|
|
- //不能被攻击
|
|
|
|
|
- foreach (GameObject g in colliders)
|
|
|
|
|
- {
|
|
|
|
|
- g.SetActive(false);
|
|
|
|
|
- }
|
|
|
|
|
- break;
|
|
|
|
|
- //冲刺中
|
|
|
|
|
- case cookState.run:
|
|
|
|
|
- dia.SetActive(false);
|
|
|
|
|
- foreach (GameObject g in colliders)
|
|
|
|
|
- {
|
|
|
|
|
- g.SetActive(true);
|
|
|
|
|
- }
|
|
|
|
|
- ene.canMove = true;
|
|
|
|
|
- ene.ChangeState(CharacterState.Rush);
|
|
|
|
|
- break;
|
|
|
|
|
- //抓住你啦
|
|
|
|
|
- case cookState.seize:
|
|
|
|
|
- ene.canMove = false;
|
|
|
|
|
- break;
|
|
|
|
|
- //鲨人中
|
|
|
|
|
- case cookState.cook:
|
|
|
|
|
- ene.canMove = false;
|
|
|
|
|
- ani.Play("attack_march", 0, 0);
|
|
|
|
|
- break;
|
|
|
|
|
- //返回中
|
|
|
|
|
- case cookState.back:
|
|
|
|
|
- ene.canMove = true;
|
|
|
|
|
- ene.isBack = true;
|
|
|
|
|
- break;
|
|
|
|
|
- //首次登场
|
|
|
|
|
- case cookState.first:
|
|
|
|
|
- dia.SetActive(false);
|
|
|
|
|
- ene.canMove = true;
|
|
|
|
|
- foreach (GameObject g in colliders)
|
|
|
|
|
- {
|
|
|
|
|
- g.SetActive(true);
|
|
|
|
|
- }
|
|
|
|
|
- break;
|
|
|
|
|
- default:
|
|
|
|
|
- break;
|
|
|
|
|
- }
|
|
|
|
|
- state = cs;
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
- private void AimAtPlayer()
|
|
|
|
|
- {
|
|
|
|
|
- lockEffect.transform.position = transform.position;
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
- private void StateAct(cookState cs)
|
|
|
|
|
- {
|
|
|
|
|
- switch (cs)
|
|
|
|
|
- {
|
|
|
|
|
- case cookState.back:
|
|
|
|
|
- if (cook.transform.position.x <= destX)
|
|
|
|
|
- {
|
|
|
|
|
- ChangeState(cookState.cook);
|
|
|
|
|
- if (food.layer == 7 && !target.isDie)
|
|
|
|
|
- {
|
|
|
|
|
- food.GetComponent<Demonic>().ChangeState(CharacterState.Die);
|
|
|
|
|
- }
|
|
|
|
|
- else if (food.layer == 6 && !target.isDie)
|
|
|
|
|
- {
|
|
|
|
|
- food.GetComponent<PlayerController>().ChangeState(CharacterState.Die);
|
|
|
|
|
- }
|
|
|
|
|
- }
|
|
|
|
|
- food.transform.position = new Vector3(cook.transform.position.x - offset, food.transform.position.y,
|
|
|
|
|
- food.transform.position.z);
|
|
|
|
|
- break;
|
|
|
|
|
- case cookState.cook:
|
|
|
|
|
- pastTime += Time.deltaTime;
|
|
|
|
|
- if (pastTime >= cookTime)
|
|
|
|
|
- {
|
|
|
|
|
- pastTime = 0;
|
|
|
|
|
- ChangeState(cookState.sell);
|
|
|
|
|
- }
|
|
|
|
|
- break;
|
|
|
|
|
- case cookState.run:
|
|
|
|
|
- //ene.targetCharacter = target.GetComponent<Character>();
|
|
|
|
|
- break;
|
|
|
|
|
- case cookState.sell:
|
|
|
|
|
- break;
|
|
|
|
|
- case cookState.first:
|
|
|
|
|
- if (cook.transform.position.x >= destX)
|
|
|
|
|
- {
|
|
|
|
|
- ChangeState(cookState.sell);
|
|
|
|
|
- }
|
|
|
|
|
- break;
|
|
|
|
|
- case cookState.seize:
|
|
|
|
|
- pastTime += Time.deltaTime;
|
|
|
|
|
- if (pastTime >= seizeTime)
|
|
|
|
|
- {
|
|
|
|
|
- pastTime = 0;
|
|
|
|
|
- ChangeState(cookState.back);
|
|
|
|
|
- }
|
|
|
|
|
- break;
|
|
|
|
|
- default:
|
|
|
|
|
- break;
|
|
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
|
|
|
|
@@ -301,13 +100,8 @@ public class ESpirits_Cook : MonoBehaviour
|
|
|
dia.SetActive(true);
|
|
dia.SetActive(true);
|
|
|
isAct = true;
|
|
isAct = true;
|
|
|
col.enabled = true;
|
|
col.enabled = true;
|
|
|
- ChangeState(cookState.first);
|
|
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
- else
|
|
|
|
|
- {
|
|
|
|
|
- StateAct(state);
|
|
|
|
|
- }
|
|
|
|
|
if (isInterval)
|
|
if (isInterval)
|
|
|
{
|
|
{
|
|
|
intervalTimePast += Time.deltaTime;
|
|
intervalTimePast += Time.deltaTime;
|
|
@@ -319,18 +113,6 @@ public class ESpirits_Cook : MonoBehaviour
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
- private void OnDisable()
|
|
|
|
|
- {
|
|
|
|
|
- if (food.layer == 7 && !target.isDie)
|
|
|
|
|
- {
|
|
|
|
|
- food.GetComponent<Demonic>().ChangeState(CharacterState.Weak);
|
|
|
|
|
- }
|
|
|
|
|
- else if (food.layer == 6 && !target.isDie)
|
|
|
|
|
- {
|
|
|
|
|
- food.GetComponent<PlayerController>().ChangeState(CharacterState.Weak);
|
|
|
|
|
- }
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
private void FixedUpdate()
|
|
private void FixedUpdate()
|
|
|
{
|
|
{
|
|
|
if (isAct)
|
|
if (isAct)
|