|
@@ -7,42 +7,33 @@ using Random = UnityEngine.Random;
|
|
|
|
|
|
|
|
public class ESpirits_Cook : MonoBehaviour
|
|
public class ESpirits_Cook : MonoBehaviour
|
|
|
{
|
|
{
|
|
|
- public TextMeshProUGUI text; //剩余串的数量文本
|
|
|
|
|
- private GameObject dia; //文本框
|
|
|
|
|
|
|
+ public TextMeshProUGUI text; //剩余串的数量文本
|
|
|
|
|
+ private GameObject dia; //文本框
|
|
|
|
|
|
|
|
- private Transform cook; //厨子
|
|
|
|
|
- private Animator ani; //厨子动画
|
|
|
|
|
- private Collider col; //厨子的碰撞体
|
|
|
|
|
- public int chuan; //厨子拥有多少串
|
|
|
|
|
- public bool isGood; //厨子是否是好厨子
|
|
|
|
|
- public GameObject[] colliders; //一些要开要关的collider
|
|
|
|
|
- public float walkSpeed; //走路速度
|
|
|
|
|
- public float runSpeed; //冲刺速度
|
|
|
|
|
|
|
+ private Transform cook; //厨子
|
|
|
|
|
+ private Animator ani; //厨子动画
|
|
|
|
|
+ private Collider col; //厨子的碰撞体
|
|
|
|
|
+ public int chuan; //厨子拥有多少串
|
|
|
|
|
+ public bool isGood; //厨子是否是好厨子
|
|
|
|
|
+ public GameObject[] colliders; //一些要开要关的collider
|
|
|
|
|
|
|
|
private float intervalTimePast;
|
|
private float intervalTimePast;
|
|
|
- public float intervalTimeSell; //卖串的间隔时间
|
|
|
|
|
- private bool isInterval = false; //开始计算间隔时间
|
|
|
|
|
|
|
+ public float intervalTimeSell; //卖串的间隔时间
|
|
|
|
|
+ private bool isInterval = false; //开始计算间隔时间
|
|
|
|
|
|
|
|
- public float minX; //厨子卖串的最小地址站
|
|
|
|
|
- public float maxX; //厨子卖串的最大地址站
|
|
|
|
|
|
|
+ public float minX; //厨子卖串的最小地址站
|
|
|
|
|
+ public float maxX; //厨子卖串的最大地址站
|
|
|
|
|
|
|
|
- public float value; //加血程度百分比
|
|
|
|
|
- public GameObject effect; //加血效果
|
|
|
|
|
|
|
+ public float value; //加血程度百分比
|
|
|
|
|
+ public GameObject effect; //加血效果
|
|
|
|
|
|
|
|
- private Enemy ene; //厨子的enemy脚本
|
|
|
|
|
|
|
+ private Enemy ene; //厨子的enemy脚本
|
|
|
|
|
|
|
|
- //private bool once = false; //死一次
|
|
|
|
|
- //private bool die = false; //厨子命尽
|
|
|
|
|
- //private bool toCatch = false; //没串了去抓人
|
|
|
|
|
- private bool isRunning = false; //开跑
|
|
|
|
|
|
|
+ private float activeTime; //厨子已出现的时长
|
|
|
|
|
+ public float activeAniTime; //厨子出现动画的时长
|
|
|
|
|
+ private bool isAct = false; //厨子已经完整出现
|
|
|
|
|
|
|
|
- private float activeTime; //厨子已出现的时长
|
|
|
|
|
- public float activeAniTime; //厨子出现动画的时长
|
|
|
|
|
- private bool isAct = false; //厨子已经完整出现
|
|
|
|
|
-
|
|
|
|
|
- //private List<GameObject> customers; //厨子的所有顾客
|
|
|
|
|
-
|
|
|
|
|
- public float larger; //顾客变大的程度
|
|
|
|
|
|
|
+ public float larger; //顾客变大的程度
|
|
|
|
|
|
|
|
private GameObject player1;
|
|
private GameObject player1;
|
|
|
private GameObject player2;
|
|
private GameObject player2;
|
|
@@ -54,6 +45,8 @@ public class ESpirits_Cook : MonoBehaviour
|
|
|
|
|
|
|
|
private float pastTime;
|
|
private float pastTime;
|
|
|
public float cookTime;
|
|
public float cookTime;
|
|
|
|
|
+ public float seizeTime;
|
|
|
|
|
+ public float chargeTime;
|
|
|
|
|
|
|
|
private float destX;
|
|
private float destX;
|
|
|
|
|
|
|
@@ -91,6 +84,11 @@ public class ESpirits_Cook : MonoBehaviour
|
|
|
return x;
|
|
return x;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
+ private void ToRush()
|
|
|
|
|
+ {
|
|
|
|
|
+ ChangeState(cookState.run);
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
private void OnTriggerEnter(Collider other)
|
|
private void OnTriggerEnter(Collider other)
|
|
|
{
|
|
{
|
|
|
//路过发串
|
|
//路过发串
|
|
@@ -113,8 +111,7 @@ public class ESpirits_Cook : MonoBehaviour
|
|
|
if (chuan == 0)
|
|
if (chuan == 0)
|
|
|
{
|
|
{
|
|
|
ani.Play("charge", 0, 0);
|
|
ani.Play("charge", 0, 0);
|
|
|
- //toCatch = true;
|
|
|
|
|
- ChangeState(cookState.run);
|
|
|
|
|
|
|
+ Invoke("ToRush", chargeTime);
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
@@ -171,7 +168,7 @@ public class ESpirits_Cook : MonoBehaviour
|
|
|
g.SetActive(true);
|
|
g.SetActive(true);
|
|
|
}
|
|
}
|
|
|
ene.canMove = true;
|
|
ene.canMove = true;
|
|
|
- ene.ChangeState(CharacterState.Run);
|
|
|
|
|
|
|
+ ene.ChangeState(CharacterState.Rush);
|
|
|
break;
|
|
break;
|
|
|
//抓住你啦
|
|
//抓住你啦
|
|
|
case cookState.seize:
|
|
case cookState.seize:
|
|
@@ -188,6 +185,7 @@ public class ESpirits_Cook : MonoBehaviour
|
|
|
ene.canMove = true;
|
|
ene.canMove = true;
|
|
|
ene.isBack = true;
|
|
ene.isBack = true;
|
|
|
break;
|
|
break;
|
|
|
|
|
+ //首次登场
|
|
|
case cookState.first:
|
|
case cookState.first:
|
|
|
dia.SetActive(false);
|
|
dia.SetActive(false);
|
|
|
ene.canMove = true;
|
|
ene.canMove = true;
|
|
@@ -227,14 +225,6 @@ public class ESpirits_Cook : MonoBehaviour
|
|
|
{
|
|
{
|
|
|
switch (cs)
|
|
switch (cs)
|
|
|
{
|
|
{
|
|
|
- case cookState.walk:
|
|
|
|
|
- break;
|
|
|
|
|
- case cookState.find:
|
|
|
|
|
- if (ene.isFindPlayer)
|
|
|
|
|
- {
|
|
|
|
|
- ene.ChangeState(CharacterState.ReadyToRush);
|
|
|
|
|
- }
|
|
|
|
|
- break;
|
|
|
|
|
case cookState.back:
|
|
case cookState.back:
|
|
|
if (cook.transform.position.x <= destX)
|
|
if (cook.transform.position.x <= destX)
|
|
|
{
|
|
{
|
|
@@ -246,11 +236,11 @@ public class ESpirits_Cook : MonoBehaviour
|
|
|
if (pastTime >= cookTime)
|
|
if (pastTime >= cookTime)
|
|
|
{
|
|
{
|
|
|
pastTime = 0;
|
|
pastTime = 0;
|
|
|
- ChangeState(cookState.back);
|
|
|
|
|
|
|
+ ChangeState(cookState.sell);
|
|
|
}
|
|
}
|
|
|
break;
|
|
break;
|
|
|
case cookState.run:
|
|
case cookState.run:
|
|
|
- ene.targetCharacter = target.GetComponent<Character>();
|
|
|
|
|
|
|
+ //ene.targetCharacter = target.GetComponent<Character>();
|
|
|
break;
|
|
break;
|
|
|
case cookState.sell:
|
|
case cookState.sell:
|
|
|
break;
|
|
break;
|
|
@@ -260,6 +250,14 @@ public class ESpirits_Cook : MonoBehaviour
|
|
|
ChangeState(cookState.sell);
|
|
ChangeState(cookState.sell);
|
|
|
}
|
|
}
|
|
|
break;
|
|
break;
|
|
|
|
|
+ case cookState.seize:
|
|
|
|
|
+ pastTime += Time.deltaTime;
|
|
|
|
|
+ if (pastTime >= seizeTime)
|
|
|
|
|
+ {
|
|
|
|
|
+ pastTime = 0;
|
|
|
|
|
+ ChangeState(cookState.back);
|
|
|
|
|
+ }
|
|
|
|
|
+ break;
|
|
|
default:
|
|
default:
|
|
|
break;
|
|
break;
|
|
|
}
|
|
}
|