/// <summary> /// 设置顾客数据 /// </summary> /// <param name="npcAICustomer"></param> public void SetDataForCustomerFood(NpcAICustomerCpt npcAICustomer) { this.targetNpcAIForCustomerFood = npcAICustomer; //设置类型 if (npcAICustomer.GetOrderForCustomer() == null) { SetType(TextHandler.Instance.manager.GetTextById(70)); } else { SetType(TextHandler.Instance.manager.GetTextById(60)); //设置状态 objNpcStatus.SetActive(true); npcAICustomer.GetCustomerStatus(out string customerStatus); SetStatus(customerStatus); } //设置好友 if (npcAICustomer as NpcAICostomerForFriendCpt) { objFriend.SetActive(true); } //设置团队 if (npcAICustomer as NpcAICustomerForGuestTeamCpt) { NpcAICustomerForGuestTeamCpt npcTeam = (NpcAICustomerForGuestTeamCpt)npcAICustomer; if (!CheckUtil.StringIsNull(npcTeam.teamCode)) { objTeam.SetActive(true); ivTeam.color = npcTeam.teamColor; tvTeamName.text = TextHandler.Instance.manager.GetTextById(49) + ":" + npcTeam.teamData.name; } } ShowCustomerFoodData(); }
/// <summary> /// 检测 /// </summary> /// <param name="collision"></param> public void OnTriggerEnter2D(Collider2D collision) { if (objConvertSpaceShow.activeSelf) { NpcAICustomerCpt customerCpt = collision.GetComponent <NpcAICustomerCpt>(); if (customerCpt) { if (customerCpt.customerIntent != NpcAICustomerCpt.CustomerIntentEnum.Leave && customerCpt.customerIntent != NpcAICustomerCpt.CustomerIntentEnum.Walk && customerCpt.customerIntent != NpcAICustomerCpt.CustomerIntentEnum.Want && customerCpt.customerIntent != NpcAICustomerCpt.CustomerIntentEnum.WaitAccost && customerCpt.customerIntent != NpcAICustomerCpt.CustomerIntentEnum.TalkWithAccost) { if (teamData.GetTeamType() == NpcTeamTypeEnum.Entertain) { EffectHandler.Instance.PlayEffect(customerCpt.objEffectContainer, "Effect_Happy_1", customerCpt.transform.position + new Vector3(0, 0.5f), 0); customerCpt.ChangeMood(20f); } else if (teamData.GetTeamType() == NpcTeamTypeEnum.Disappointed) { EffectHandler.Instance.PlayEffect(customerCpt.objEffectContainer, "Effect_Sulkiness_1", customerCpt.transform.position + new Vector3(0, 0.5f), 0); customerCpt.ChangeMood(-20f); } else { } } } } }
/// <summary> /// 创建一个订单 /// </summary> /// <param name="npc"></param> /// <returns></returns> public OrderForCustomer CreateOrder(NpcAICustomerCpt npc) { OrderForCustomer order = new OrderForCustomer(npc.customerType, npc); npc.SetOrderForCustomer(order); listOrder.Add(order); return(order); }
public void BuildCustomer(Vector3 npcPosition) { //生成NPC GameObject npcObj = BuildNpc(npcPosition); //设置意图 NpcAICustomerCpt customerAI = npcObj.GetComponent <NpcAICustomerCpt>(); //想要吃饭概率 if (GameTimeHandler.Instance.GetDayStatus() == GameTimeHandler.DayEnum.Work && IsWantEat(CustomerTypeEnum.Normal)) { customerAI.SetIntent(NpcAICustomerCpt.CustomerIntentEnum.Want); } else { customerAI.SetIntent(NpcAICustomerCpt.CustomerIntentEnum.Walk); } }
/// <summary> /// 检测 /// </summary> /// <param name="collision"></param> public void OnTriggerEnter2D(Collider2D collision) { if (objRascalSpaceShow.activeSelf) { NpcAICustomerCpt customerCpt = collision.GetComponent <NpcAICustomerCpt>(); if (customerCpt) { if (customerCpt.customerIntent != NpcAICustomerCpt.CustomerIntentEnum.Leave && customerCpt.customerIntent != NpcAICustomerCpt.CustomerIntentEnum.Walk && customerCpt.customerIntent != NpcAICustomerCpt.CustomerIntentEnum.Want && customerCpt.customerIntent != NpcAICustomerCpt.CustomerIntentEnum.WaitAccost && customerCpt.customerIntent != NpcAICustomerCpt.CustomerIntentEnum.TalkWithAccost) { AudioHandler.Instance.PlaySound(AudioSoundEnum.Passive); } customerCpt.ChangeMood(-99999); } } }
/// <summary> /// 范围检测 /// </summary> /// <param name="collision"></param> private void OnTriggerEnter2D(Collider2D collision) { if (collision != null) { NpcAICustomerCpt npcAICustomer = collision.GetComponent <NpcAICustomerCpt>(); if (accostIntent == AccostIntentEnum.Finding && this.npcAICustomer == null && npcAICustomer != null && npcAICustomer.customerIntent == NpcAICustomerCpt.CustomerIntentEnum.Walk) { //设置顾客 this.npcAICustomer = npcAICustomer; //关闭检测 if (mAccostBox != null) { mAccostBox.enabled = false; } SetIntent(AccostIntentEnum.GoToCustomer); } } }
/// <summary> /// 意图-闲置 /// </summary> public void SetIntentForIdle() { orderForHotel = null; if (accostPro != null) { accostPro.SetActive(false); } if (talkPro != null) { talkPro.SetActive(false); } if (guidePro != null) { guidePro.SetActive(false); } if (mAccostBox != null) { mAccostBox.enabled = false; } npcAICustomer = null; npcAIWorker.SetIntent(NpcAIWorkerCpt.WorkerIntentEnum.Idle); }
public OrderForCustomer(CustomerTypeEnum customerType, NpcAICustomerCpt customer) { this.customer = customer; this.customerType = customerType; }