示例#1
0
 /// <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();
 }
示例#2
0
 /// <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
                 {
                 }
             }
         }
     }
 }
示例#3
0
    /// <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);
    }
示例#4
0
    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);
        }
    }
示例#5
0
 /// <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);
         }
     }
 }
示例#6
0
 /// <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);
         }
     }
 }
示例#7
0
 /// <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);
 }
示例#8
0
 public OrderForCustomer(CustomerTypeEnum customerType, NpcAICustomerCpt customer)
 {
     this.customer     = customer;
     this.customerType = customerType;
 }