|
@@ -16,6 +16,8 @@ public class Spirits_Cook : MonoBehaviour
|
|
|
public bool isEnemy; //厨子是否是敌方
|
|
public bool isEnemy; //厨子是否是敌方
|
|
|
public bool isGood; //厨子是否是好厨子
|
|
public bool isGood; //厨子是否是好厨子
|
|
|
public GameObject[] colliders; //一些要开要关的collider
|
|
public GameObject[] colliders; //一些要开要关的collider
|
|
|
|
|
+ public float walkSpeed; //走路速度
|
|
|
|
|
+ public float runSpeed; //冲刺速度
|
|
|
|
|
|
|
|
public float value; //加血程度百分比
|
|
public float value; //加血程度百分比
|
|
|
public GameObject effect; //加血效果
|
|
public GameObject effect; //加血效果
|
|
@@ -24,7 +26,7 @@ public class Spirits_Cook : MonoBehaviour
|
|
|
private Enemy ene; //厨子的enemy脚本
|
|
private Enemy ene; //厨子的enemy脚本
|
|
|
|
|
|
|
|
private bool once = false; //死一次
|
|
private bool once = false; //死一次
|
|
|
- private bool goAway = false; //厨子命尽
|
|
|
|
|
|
|
+ private bool die = false; //厨子命尽
|
|
|
private bool toCatch = false; //没串了去抓人
|
|
private bool toCatch = false; //没串了去抓人
|
|
|
private bool isRunning = false; //开跑
|
|
private bool isRunning = false; //开跑
|
|
|
|
|
|
|
@@ -49,11 +51,15 @@ public class Spirits_Cook : MonoBehaviour
|
|
|
public enum cookState
|
|
public enum cookState
|
|
|
{
|
|
{
|
|
|
sell = 0,
|
|
sell = 0,
|
|
|
- run = 1,
|
|
|
|
|
- cook = 2,
|
|
|
|
|
|
|
+ walk = 1,
|
|
|
|
|
+ find = 2,
|
|
|
|
|
+ run = 3,
|
|
|
|
|
+ cook = 4,
|
|
|
|
|
+ back = 5,
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
private cookState state;
|
|
private cookState state;
|
|
|
|
|
+ private GameObject food; //被抓的食材
|
|
|
|
|
|
|
|
private void Start()
|
|
private void Start()
|
|
|
{
|
|
{
|
|
@@ -78,7 +84,8 @@ public class Spirits_Cook : MonoBehaviour
|
|
|
|
|
|
|
|
private void OnTriggerEnter(Collider other)
|
|
private void OnTriggerEnter(Collider other)
|
|
|
{
|
|
{
|
|
|
- if (!once && other.gameObject.layer == 7 || other.gameObject.layer == 8 || other.gameObject.layer == 6)
|
|
|
|
|
|
|
+ //路过发串
|
|
|
|
|
+ if (state == cookState.sell && !die && other.gameObject.layer == 7 || other.gameObject.layer == 8 || other.gameObject.layer == 6)
|
|
|
{
|
|
{
|
|
|
if (chuan > 0)
|
|
if (chuan > 0)
|
|
|
{
|
|
{
|
|
@@ -100,21 +107,15 @@ public class Spirits_Cook : MonoBehaviour
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
- /*总共拿一串
|
|
|
|
|
- if (!ca.hasHpUp)
|
|
|
|
|
|
|
+ }
|
|
|
|
|
+ //抓人
|
|
|
|
|
+ else if (state == cookState.run || state == cookState.find || state == cookState.walk && !once)
|
|
|
|
|
+ {
|
|
|
|
|
+ if (!isEnemy && other.gameObject.layer == 8 || isEnemy && (other.gameObject.layer == 7 || other.gameObject.layer == 6))
|
|
|
{
|
|
{
|
|
|
- chuan -= 1;
|
|
|
|
|
- text.text = chuan.ToString();
|
|
|
|
|
- ani.Play("attack_march", 0, 0);
|
|
|
|
|
- ca.HpUp(value);
|
|
|
|
|
- ca.hasHpUp = true;
|
|
|
|
|
- Instantiate(effect, ga.transform.position, new Quaternion(0, 0, 0, 0), ga.transform);
|
|
|
|
|
- if (chuan == 0)
|
|
|
|
|
- {
|
|
|
|
|
- goAway = true;
|
|
|
|
|
- }
|
|
|
|
|
|
|
+ food = other.gameObject;
|
|
|
|
|
+ ChangeState(cookState.cook);
|
|
|
}
|
|
}
|
|
|
- */
|
|
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
|
|
|
|
@@ -122,44 +123,46 @@ public class Spirits_Cook : MonoBehaviour
|
|
|
{
|
|
{
|
|
|
switch (cs)
|
|
switch (cs)
|
|
|
{
|
|
{
|
|
|
- case cookState.cook:
|
|
|
|
|
- break;
|
|
|
|
|
- case cookState.run:
|
|
|
|
|
- canMove = true;
|
|
|
|
|
- col.enabled = false;
|
|
|
|
|
- dia.SetActive(false);
|
|
|
|
|
- foreach(GameObject g in colliders)
|
|
|
|
|
- {
|
|
|
|
|
- g.SetActive(true);
|
|
|
|
|
- }
|
|
|
|
|
- if (isEnemy)
|
|
|
|
|
- {
|
|
|
|
|
- ene.canMove = true;
|
|
|
|
|
- }
|
|
|
|
|
- else
|
|
|
|
|
- {
|
|
|
|
|
- dem.canMove = true;
|
|
|
|
|
- dem.isNonAttack = false;
|
|
|
|
|
- }
|
|
|
|
|
- break;
|
|
|
|
|
|
|
+ //卖串中
|
|
|
case cookState.sell:
|
|
case cookState.sell:
|
|
|
canMove = false;
|
|
canMove = false;
|
|
|
|
|
+ //不能被攻击
|
|
|
foreach (GameObject g in colliders)
|
|
foreach (GameObject g in colliders)
|
|
|
{
|
|
{
|
|
|
g.SetActive(false);
|
|
g.SetActive(false);
|
|
|
}
|
|
}
|
|
|
- if (isEnemy)
|
|
|
|
|
|
|
+ break;
|
|
|
|
|
+ //走路中
|
|
|
|
|
+ case cookState.walk:
|
|
|
|
|
+ canMove = true;
|
|
|
|
|
+ dia.SetActive(false);
|
|
|
|
|
+ //能被攻击
|
|
|
|
|
+ foreach (GameObject g in colliders)
|
|
|
{
|
|
{
|
|
|
- ene.canMove = false;
|
|
|
|
|
|
|
+ g.SetActive(true);
|
|
|
}
|
|
}
|
|
|
- else
|
|
|
|
|
|
|
+ break;
|
|
|
|
|
+ //发现目标
|
|
|
|
|
+ case cookState.find:
|
|
|
|
|
+ break;
|
|
|
|
|
+ //冲刺中
|
|
|
|
|
+ case cookState.run:
|
|
|
|
|
+ canMove = true;
|
|
|
|
|
+ foreach (GameObject g in colliders)
|
|
|
{
|
|
{
|
|
|
- dem.canMove = false;
|
|
|
|
|
|
|
+ g.SetActive(true);
|
|
|
}
|
|
}
|
|
|
break;
|
|
break;
|
|
|
|
|
+ //鲨人中
|
|
|
|
|
+ case cookState.cook:
|
|
|
|
|
+ break;
|
|
|
|
|
+ //返回中
|
|
|
|
|
+ case cookState.back:
|
|
|
|
|
+ break;
|
|
|
default:
|
|
default:
|
|
|
break;
|
|
break;
|
|
|
}
|
|
}
|
|
|
|
|
+ state = cs;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
private void ChoosePlayer()
|
|
private void ChoosePlayer()
|
|
@@ -191,6 +194,10 @@ public class Spirits_Cook : MonoBehaviour
|
|
|
|
|
|
|
|
break;
|
|
break;
|
|
|
case cookState.run:
|
|
case cookState.run:
|
|
|
|
|
+ if (isEnemy)
|
|
|
|
|
+ {
|
|
|
|
|
+ ene.targetCharacter = target.GetComponent<Character>();
|
|
|
|
|
+ }
|
|
|
break;
|
|
break;
|
|
|
case cookState.sell:
|
|
case cookState.sell:
|
|
|
break;
|
|
break;
|
|
@@ -211,7 +218,7 @@ public class Spirits_Cook : MonoBehaviour
|
|
|
col.enabled = true;
|
|
col.enabled = true;
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
- if (goAway && !once)
|
|
|
|
|
|
|
+ if (die && !once)
|
|
|
{
|
|
{
|
|
|
once = true;
|
|
once = true;
|
|
|
col.enabled = false;
|
|
col.enabled = false;
|