/// <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); }
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(); }
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); } }
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(); }
/// <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(); }