/// <summary>
 /// 设置数据
 /// </summary>
 /// <param name="waiterData"></param>
 public void SetData(CharacterWorkerForWaiterBean waiterData)
 {
     this.waiterData = waiterData;
     CptUtil.RemoveChildsByActive(objItemContent);
     AddSendNumber(waiterData.sendTotalNumber);
     AddCleanTableNumber(waiterData.cleanTotalNumber);
     AddCleanBedNumber(waiterData.cleanBedTotalNumber);
     //AddCleanTime(waiterData.cleanTotalTime);
 }
示例#2
0
    public void ChangeStatus(WorkerPriorityView view, bool isWork)
    {
        if (characterData == null || characterData.baseInfo == null)
        {
            return;
        }
        //厨师状态
        if (view == wvChef)
        {
            CharacterWorkerBaseBean characterWorker = characterData.baseInfo.GetWorkerInfoByType(WorkerEnum.Chef);
            characterWorker.SetWorkStatus(isWork);
        }
        //伙计状态
        else if (view == wvWaiterForSend)
        {
            CharacterWorkerForWaiterBean characterWorker = (CharacterWorkerForWaiterBean)characterData.baseInfo.GetWorkerInfoByType(WorkerEnum.Waiter);
            characterWorker.SetWorkStatusForSend(isWork);
        }
        else if (view == wvWaiterForCleanTable)
        {
            CharacterWorkerForWaiterBean characterWorker = (CharacterWorkerForWaiterBean)characterData.baseInfo.GetWorkerInfoByType(WorkerEnum.Waiter);
            characterWorker.SetWorkStatusForCleanTable(isWork);
        }
        else if (view == wvWaiterForCleanBed)
        {
            CharacterWorkerForWaiterBean characterWorker = (CharacterWorkerForWaiterBean)characterData.baseInfo.GetWorkerInfoByType(WorkerEnum.Waiter);
            characterWorker.SetWorkStatusForCleanBed(isWork);
        }
        //账房状态
        else if (view == wvAccounting)
        {
            CharacterWorkerBaseBean characterWorker = characterData.baseInfo.GetWorkerInfoByType(WorkerEnum.Accountant);
            characterWorker.SetWorkStatus(isWork);
        }
        //接待状态
        else if (view == wvAccostForSolicit)
        {
            CharacterWorkerForAccostBean characterWorker = (CharacterWorkerForAccostBean)characterData.baseInfo.GetWorkerInfoByType(WorkerEnum.Accost);
            characterWorker.SetWorkStatusForSolicit(isWork);
        }
        else if (view == wvAccostForGuide)
        {
            CharacterWorkerForAccostBean characterWorker = (CharacterWorkerForAccostBean)characterData.baseInfo.GetWorkerInfoByType(WorkerEnum.Accost);
            characterWorker.SetWorkStatusForGuide(isWork);
        }
        //打手状态
        else if (view == wvBeater)
        {
            CharacterWorkerBaseBean characterWorker = characterData.baseInfo.GetWorkerInfoByType(WorkerEnum.Beater);
            characterWorker.SetWorkStatus(isWork);
        }

        AudioHandler.Instance.PlaySound(AudioSoundEnum.ButtonForNormal);

        InnHandler.Instance.InitWorker();
    }
示例#3
0
    public IEnumerator CoroutineForCleanBed()
    {
        //计算清理时间
        float cleanTime = npcAIWorker.characterData.CalculationWaiterCleanTime();

        yield return(new WaitForSeconds(cleanTime));

        OrderForHotel orderForHotel = order as OrderForHotel;

        //记录数据
        npcAIWorker.characterData.baseInfo.waiterInfo.AddCleanBedNumber(1);
        //增加经验
        npcAIWorker.characterData.baseInfo.waiterInfo.AddExp(4, out bool isLevelUp);
        if (isLevelUp)
        {
            ToastForLevelUp(WorkerEnum.Waiter);
        }
        //清理
        orderForHotel.bed.CleanBed();

        //检测是否还有订单并且依旧没有取消改职业。如果有的话继续清理
        //用于中断连续清理
        CharacterWorkerForWaiterBean characterWorkerData = (CharacterWorkerForWaiterBean)npcAIWorker.characterData.baseInfo.GetWorkerInfoByType(WorkerEnum.Waiter);

        if (characterWorkerData.isWorkingCleanBed && InnHandler.Instance.bedCleanQueue.Count != 0)
        {
            //搜寻最近的床位
            OrderForHotel clearItem = null;
            float         distance  = float.MaxValue;
            foreach (OrderForHotel itemOrder in InnHandler.Instance.bedCleanQueue)
            {
                float tempDistance = Vector3.Distance(itemOrder.bed.GetSleepPosition(), transform.position);
                if (tempDistance < distance)
                {
                    distance  = tempDistance;
                    clearItem = itemOrder;
                }
            }
            if (clearItem != null)
            {
                InnHandler.Instance.bedCleanQueue.Remove(clearItem);
                SetIntent(WaiterIntentEnum.GoToBed, clearItem);
            }
            else
            {
                SetIntent(WaiterIntentEnum.GoToStairsForSecond);
            }
        }
        else
        {
            SetIntent(WaiterIntentEnum.GoToStairsForSecond);
        }
    }
示例#4
0
    public void ChangePriority(WorkerPriorityView view, int priority)
    {
        //厨师优先级
        if (view == wvChef)
        {
            CharacterWorkerBaseBean characterWorker = characterData.baseInfo.GetWorkerInfoByType(WorkerEnum.Chef);
            characterWorker.SetPriority(priority);
        }
        //伙计优先级
        else if (view == wvWaiterForSend)
        {
            CharacterWorkerForWaiterBean characterWorker = (CharacterWorkerForWaiterBean)characterData.baseInfo.GetWorkerInfoByType(WorkerEnum.Waiter);
            characterWorker.SetPriorityForSend(priority);
        }
        else if (view == wvWaiterForCleanTable)
        {
            CharacterWorkerForWaiterBean characterWorker = (CharacterWorkerForWaiterBean)characterData.baseInfo.GetWorkerInfoByType(WorkerEnum.Waiter);
            characterWorker.SetPriorityForCleanTable(priority);
        }
        else if (view == wvWaiterForCleanBed)
        {
            CharacterWorkerForWaiterBean characterWorker = (CharacterWorkerForWaiterBean)characterData.baseInfo.GetWorkerInfoByType(WorkerEnum.Waiter);
            characterWorker.SetPriorityForCleanBed(priority);
        }
        //账房优先级
        else if (view == wvAccounting)
        {
            CharacterWorkerBaseBean characterWorker = characterData.baseInfo.GetWorkerInfoByType(WorkerEnum.Accountant);
            characterWorker.SetPriority(priority);
        }
        //接待优先级
        else if (view == wvAccostForSolicit)
        {
            CharacterWorkerForAccostBean characterWorker = (CharacterWorkerForAccostBean)characterData.baseInfo.GetWorkerInfoByType(WorkerEnum.Accost);
            characterWorker.SetPriorityForSolicit(priority);
        }
        else if (view == wvAccostForGuide)
        {
            CharacterWorkerForAccostBean characterWorker = (CharacterWorkerForAccostBean)characterData.baseInfo.GetWorkerInfoByType(WorkerEnum.Accost);
            characterWorker.SetPriorityForGuide(priority);
        }
        //打手优先级
        else if (view == wvBeater)
        {
            CharacterWorkerBaseBean characterWorker = characterData.baseInfo.GetWorkerInfoByType(WorkerEnum.Beater);
            characterWorker.SetPriority(priority);
        }

        InnHandler.Instance.InitWorker();
    }
示例#5
0
 /// <summary>
 /// 是否升级排序点击
 /// </summary>
 public void OnClickForWorker(WorkerEnum worker, WorkerDetilsEnum workerDetils)
 {
     AudioHandler.Instance.PlaySound(AudioSoundEnum.ButtonForNormal);
     this.listCharacterData = this.listCharacterData.OrderByDescending(
         (data) =>
     {
         int workNumber = 0;
         CharacterWorkerBaseBean workerData = data.baseInfo.GetWorkerInfoByType(worker);
         if (worker == WorkerEnum.Chef || worker == WorkerEnum.Beater || worker == WorkerEnum.Accountant)
         {
             if (workerData.isWorking)
             {
                 workNumber++;
             }
         }
         else if (worker == WorkerEnum.Waiter)
         {
             CharacterWorkerForWaiterBean waiterData = workerData as CharacterWorkerForWaiterBean;
             if (workerDetils == WorkerDetilsEnum.WaiterForCleanBed && waiterData.isWorkingCleanBed)
             {
                 workNumber++;
             }
             if (workerDetils == WorkerDetilsEnum.WaiterForCleanTable && waiterData.isWorkingForCleanTable)
             {
                 workNumber++;
             }
             if (workerDetils == WorkerDetilsEnum.WaiterForSend && waiterData.isWorkingForSend)
             {
                 workNumber++;
             }
         }
         else if (worker == WorkerEnum.Accost)
         {
             CharacterWorkerForAccostBean accostData = workerData as CharacterWorkerForAccostBean;
             if (workerDetils == WorkerDetilsEnum.AccostForSolicit && accostData.isWorkingForSolicit)
             {
                 workNumber++;
             }
             if (workerDetils == WorkerDetilsEnum.AccostForGuide && accostData.isWorkingForGuide)
             {
                 workNumber++;
             }
         }
         return(workNumber);
     }).ToList();
     InitData();
 }