/// <summary> /// 检测是否要升级 /// </summary> /// <param name="workerData"></param> /// <returns></returns> private bool CheckCanImprove(CharacterWorkerBaseBean workerData, out StoreInfoBean levelInfo) { workerData.GetWorkerExp(out long nextLevelExp, out long currentExp, out float levelProportion); //获取升级数据 levelInfo = null; foreach (StoreInfoBean itemLevel in mListLevelInfo) { if (itemLevel.mark_type == workerData.workerLevel + 1) { levelInfo = itemLevel; } } //判断是否可以升级 if (currentExp >= nextLevelExp) { //可以升级 return(true); } else { //不可以升级 return(false); } }
/// <summary> /// 根据类型获取工作数据 /// </summary> /// <param name="worker"></param> /// <returns></returns> public CharacterWorkerBaseBean GetWorkerInfoByType(WorkerEnum worker) { CharacterWorkerBaseBean workerInfo = null; switch (worker) { case WorkerEnum.Chef: workerInfo = chefInfo; break; case WorkerEnum.Waiter: workerInfo = waiterInfo; break; case WorkerEnum.Accountant: workerInfo = accountantInfo; break; case WorkerEnum.Accost: workerInfo = accostInfo; break; case WorkerEnum.Beater: workerInfo = beaterInfo; break; } return(workerInfo); }
public void SetRuleContent(List <string> listRule) { string ruleStr = ""; for (int i = 0; i < listRule.Count; i++) { string itemRule = listRule[i]; ruleStr += ((i + 1) + "." + itemRule + "\n"); } //设置参与等级提示 string levelToastWorker = "???"; string levelToastLevel = "???"; switch (gameType) { case MiniGameEnum.Cooking: levelToastWorker = CharacterWorkerBaseBean.GetWorkerName(WorkerEnum.Chef); break; case MiniGameEnum.Barrage: levelToastWorker = CharacterWorkerBaseBean.GetWorkerName(WorkerEnum.Waiter); break; case MiniGameEnum.Account: levelToastWorker = CharacterWorkerBaseBean.GetWorkerName(WorkerEnum.Accountant); break; case MiniGameEnum.Debate: levelToastWorker = CharacterWorkerBaseBean.GetWorkerName(WorkerEnum.Accost); break; case MiniGameEnum.Combat: levelToastWorker = CharacterWorkerBaseBean.GetWorkerName(WorkerEnum.Beater); break; } switch (trophyType) { case TrophyTypeEnum.Elementary: levelToastLevel = " " + CharacterWorkerBaseBean.GetWorkerLevelName(0) + " " + CharacterWorkerBaseBean.GetWorkerLevelName(1); break; case TrophyTypeEnum.Intermediate: levelToastLevel = " " + CharacterWorkerBaseBean.GetWorkerLevelName(2) + " " + CharacterWorkerBaseBean.GetWorkerLevelName(3); break; case TrophyTypeEnum.Advanced: levelToastLevel = " " + CharacterWorkerBaseBean.GetWorkerLevelName(4) + " " + CharacterWorkerBaseBean.GetWorkerLevelName(5); break; case TrophyTypeEnum.Legendary: levelToastLevel = " " + CharacterWorkerBaseBean.GetWorkerLevelName(6); break; } string levelToast = string.Format(TextHandler.Instance.manager.GetTextById(221), levelToastWorker, levelToastLevel); ruleStr += (levelToast + "\n"); SetRuleContent(ruleStr); }
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 void SetLevel(int level) { string levelName = CharacterWorkerBaseBean.GetWorkerLevelName(level); string workName = CharacterWorkerBaseBean.GetWorkerName(WorkerEnum.Chef); if (tvLevel != null) { tvLevel.text = workName + levelName; } }
/// <summary> /// 创建角色提升item /// </summary> public void CreateCharacterImproveItem( WorkerEnum workerType, CharacterBean characterData, CharacterWorkerBaseBean workerData, StoreInfoBean levelData) { GameObject objItem = Instantiate(objImproveContent, objImproveModel); ItemTownGuildImproveCharacterCpt improveCharacterCpt = objItem.GetComponent <ItemTownGuildImproveCharacterCpt>(); improveCharacterCpt.SetData(workerType, characterData, workerData, levelData); }
/// <summary> /// 初始工作信息 /// </summary> public void InitWorkerInfo() { //给工作排序 listWorkerDetailsType = EnumUtil.GetEnumValue <WorkerDetilsEnum>(); listWorkerDetailsType = listWorkerDetailsType.OrderByDescending(i => { int priority = 0; CharacterWorkerBaseBean characterWorkerBase = null; switch (i) { case WorkerDetilsEnum.ChefForCook: characterWorkerBase = characterData.baseInfo.GetWorkerInfoByType(WorkerEnum.Chef); priority = characterWorkerBase.priority; break; case WorkerDetilsEnum.WaiterForSend: characterWorkerBase = characterData.baseInfo.GetWorkerInfoByType(WorkerEnum.Waiter); priority = (characterWorkerBase as CharacterWorkerForWaiterBean).priorityForSend; break; case WorkerDetilsEnum.WaiterForCleanTable: characterWorkerBase = characterData.baseInfo.GetWorkerInfoByType(WorkerEnum.Waiter); priority = (characterWorkerBase as CharacterWorkerForWaiterBean).priorityForCleanTable; break; case WorkerDetilsEnum.WaiterForCleanBed: characterWorkerBase = characterData.baseInfo.GetWorkerInfoByType(WorkerEnum.Waiter); priority = (characterWorkerBase as CharacterWorkerForWaiterBean).priorityForCleanBed; break; case WorkerDetilsEnum.AccountantForPay: characterWorkerBase = characterData.baseInfo.GetWorkerInfoByType(WorkerEnum.Accountant); priority = characterWorkerBase.priority; break; case WorkerDetilsEnum.AccostForSolicit: characterWorkerBase = characterData.baseInfo.GetWorkerInfoByType(WorkerEnum.Accost); priority = (characterWorkerBase as CharacterWorkerForAccostBean).priorityForSolicit; break; case WorkerDetilsEnum.AccostForGuide: characterWorkerBase = characterData.baseInfo.GetWorkerInfoByType(WorkerEnum.Accost); priority = (characterWorkerBase as CharacterWorkerForAccostBean).priorityForGuide; break; case WorkerDetilsEnum.BeaterForDrive: characterWorkerBase = characterData.baseInfo.GetWorkerInfoByType(WorkerEnum.Beater); priority = characterWorkerBase.priority; break; } return(priority); }).ToList(); }
protected static void CompleteRewardForExp(List <CharacterBean> listCharacterData, WorkerEnum workerType, int exp) { if (CheckUtil.ListIsNull(listCharacterData)) { return; } foreach (CharacterBean itemData in listCharacterData) { CharacterWorkerBaseBean characterWorker = itemData.baseInfo.GetWorkerInfoByType(workerType); characterWorker.AddExp(exp, out bool isLevelUp); } }
/// <summary> /// 设置数据 /// </summary> /// <param name="workerType"></param> /// <param name="characterData"></param> /// <param name="workerData"></param> public void SetData(WorkerEnum workerType, CharacterBean characterData, CharacterWorkerBaseBean workerData, StoreInfoBean levelData) { this.workerType = workerType; this.levelData = levelData; this.characterData = characterData; SetWorkerIcon(workerType); SetName(characterData.baseInfo.name); SetCharacter(characterData); SetLowLevelData(workerType, workerData.workerLevel); SetHighLevelData(workerType, workerData.workerLevel + 1); SetMoney(levelData.price_l, levelData.price_m, levelData.price_s); SetTime(int.Parse(levelData.mark)); }
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(); }
public void SetData(WorkerEnum workerType, CharacterWorkerBaseBean workInfo) { if (workInfo == null) { return; } //设置等级名称 string workerLevelName = CharacterWorkerBaseBean.GetWorkerLevelName(workInfo.workerLevel) + CharacterWorkerBaseBean.GetWorkerName(workerType); SetLevelName(workerLevelName); //设置经验条 workInfo.GetWorkerExp(out long nextLevelExp, out long currentExp, out float levelProportion); SetExp(workInfo.workerLevel, currentExp, nextLevelExp, levelProportion); // 设置等级图标 SetLevelIcon(workInfo.workerLevel); }
/// <summary> /// 初始化厨师考试 /// </summary> private MiniGameBaseBean InitChefGame() { MiniGameBaseBean miniGameData = MiniGameEnumTools.GetMiniGameData(MiniGameEnum.Cooking); miniGameData = PreTypeForMiniGameEnumTools.GetMiniGameData(miniGameData, levelData.pre_data_minigame); //先清除数据中的指定敌人 miniGameData.listEnemyGameData.Clear(); //随机生成敌人 List <CharacterBean> listEnemyData = new List <CharacterBean>(); CharacterWorkerBaseBean characterWorkerData = characterData.baseInfo.GetWorkerInfoByType(WorkerEnum.Chef); int equipLevel = (characterWorkerData.GetLevel() + 1) / 2; for (int i = 0; i < UnityEngine.Random.Range(1, 16); i++) { CharacterBean randomEnemy = CharacterBean.CreateRandomEnemyData(100, 10, equipLevel); listEnemyData.Add(randomEnemy); } miniGameData.InitData(characterData, listEnemyData); return(miniGameData); }
/// <summary> /// 获取等级数据 /// </summary> /// <param name="workerType"></param> /// <param name="level"></param> /// <param name="name"></param> /// <param name="spLevel"></param> private void GetLevelData(WorkerEnum workerType, int level, out string name, out Sprite spLevel) { string workName = CharacterWorkerBaseBean.GetWorkerName(workerType); string workLevelName = CharacterWorkerBaseBean.GetWorkerLevelName(level); name = workLevelName + workName; spLevel = null; switch (level) { case 0: break; case 1: spLevel = spWorkerLevel_1; break; case 2: spLevel = spWorkerLevel_2; break; case 3: spLevel = spWorkerLevel_3; break; case 4: spLevel = spWorkerLevel_4; break; case 5: spLevel = spWorkerLevel_5; break; case 6: spLevel = spWorkerLevel_6; break; } }
/// <summary> /// 游戏结束 /// </summary> /// <param name="isWinGame"></param> /// <param name="isSlow">是否开启慢镜头</param> public virtual void EndGame(MiniGameResultEnum gameResulte, bool isSlow) { if (GetMiniGameStatus() == MiniGameStatusEnum.Gameing) { SetMiniGameStatus(MiniGameStatusEnum.GameEnd); StopAllCoroutines(); //拉近尽头 BaseControl baseControl = GameControlHandler.Instance.manager.GetControl(); if (baseControl) { baseControl.SetCameraOrthographicSize(6); } if (isSlow) { //开启慢镜头 Time.timeScale = 0.1f; } transform.DOScale(new Vector3(1, 1, 1), 0.3f).OnComplete(delegate() { Time.timeScale = 1f; if (baseControl) { baseControl.SetCameraOrthographicSize(); } if (miniGameBuilder) { miniGameBuilder.DestroyAll(); } //设置游戏数据 miniGameData.SetGameResult(gameResulte); GameDataBean gameData = GameDataHandler.Instance.manager.GetGameData(); //经验加成 List <MiniGameCharacterBean> listUserData = miniGameData.GetListUserGameData(); List <CharacterBean> listWorkerData = gameData.GetAllCharacterData(); foreach (MiniGameCharacterBean itemCharacterData in listUserData) { foreach (CharacterBean itemWorkerData in listWorkerData) { if (itemWorkerData.baseInfo.characterId == null || itemCharacterData.characterData.baseInfo.characterId == null) { continue; } if (itemWorkerData.baseInfo.characterId.Equals(itemCharacterData.characterData.baseInfo.characterId)) { WorkerEnum workerType = MiniGameEnumTools.GetWorkerTypeByMiniGameType(miniGameData.gameType); CharacterWorkerBaseBean characterWorker = itemWorkerData.baseInfo.GetWorkerInfoByType(workerType); if (miniGameData.GetGameResult() == MiniGameResultEnum.Win) { characterWorker.AddExp(10, out bool isLevelUp); } else { characterWorker.AddExp(5, out bool isLevelUp); } } } } //打开游戏结束UI UIMiniGameEnd uiMiniGameEnd = UIHandler.Instance.manager.OpenUIAndCloseOther <UIMiniGameEnd>(UIEnum.MiniGameEnd); uiMiniGameEnd.SetData(miniGameData); uiMiniGameEnd.SetCallBack(this); }); //通知 游戏结束 notifyForMiniGameStatus?.Invoke(MiniGameStatusEnum.GameEnd, new object[] { miniGameData }); AudioHandler.Instance.StopMusic(); } }
public IEnumerator CoroutineForAccountingForBed(OrderForHotel orderForHotel) { float time = npcAIWorker.characterData.CalculationAccountingTime(); yield return(new WaitForSeconds(time)); orderForHotel.bed.GetPrice(out long basePriceS, out long addPriceS); long payMoneyL = 0; long payMoneyM = 0; long payMoneyS = basePriceS + addPriceS; //是否出错 bool isError = npcAIWorker.characterData.CalculationAccountingCheck(out float moreRate); long AddMoneyL = (long)(moreRate * payMoneyL); long AddMoneyM = (long)(moreRate * payMoneyM); long AddMoneyS = (long)(moreRate * payMoneyS); if (isError) { //出错 //记录数据 payMoneyL -= AddMoneyL; payMoneyM -= AddMoneyM; payMoneyS -= AddMoneyS; npcAIWorker.characterData.baseInfo.accountantInfo.AddAccountantFail ( payMoneyL, payMoneyM, payMoneyS, AddMoneyL, AddMoneyM, AddMoneyS ); //增加经验 npcAIWorker.characterData.baseInfo.accountantInfo.AddExp(1, out bool isLevelUp); if (isLevelUp) { ToastForLevelUp(WorkerEnum.Accountant); } //工作者表示抱歉 npcAIWorker.SetExpression(CharacterExpressionCpt.CharacterExpressionEnum.Wordless); //顾客生气 orderForHotel.customer.SetExpression(CharacterExpressionCpt.CharacterExpressionEnum.Mad); } else { //成功 payMoneyL += AddMoneyL; payMoneyM += AddMoneyM; payMoneyS += AddMoneyS; //记录数据 npcAIWorker.characterData.baseInfo.accountantInfo.AddAccountantSuccess ( payMoneyL, payMoneyM, payMoneyS, AddMoneyL, AddMoneyM, AddMoneyS ); //增加经验 npcAIWorker.characterData.baseInfo.accountantInfo.AddExp(1, out bool isLevelUp); if (isLevelUp) { ToastForLevelUp(WorkerEnum.Accountant); } //如果有额外的加成 工作者和店员都应该高兴 //orderForCustomer.customer.SetExpression(CharacterExpressionCpt.CharacterExpressionEnum.Love); } //加上小时数 payMoneyL *= orderForHotel.sleepTime; payMoneyM *= orderForHotel.sleepTime; payMoneyS *= orderForHotel.sleepTime; InnHandler.Instance.PayMoney(orderForHotel, payMoneyL, payMoneyM, payMoneyS, true); //结束订单 InnHandler.Instance.EndOrder(orderForHotel); //检测该柜台是否还有订单并且依旧没有取消改职业。如果有的话继续结账 //用于中断连续结账 CharacterWorkerBaseBean characterWorkerData = npcAIWorker.characterData.baseInfo.GetWorkerInfoByType(WorkerEnum.Accountant); if (characterWorkerData.isWorking && orderForHotel.counter.payQueue.Count != 0) { OrderForBase newOrder = orderForHotel.counter.payQueue[0]; orderForHotel.counter.payQueue.Remove(newOrder); StartAccounting(newOrder); } else { SetIntent(AccountantIntentEnum.Idle); } //通知离开 orderForHotel.customer.SetIntent(NpcAICustomerForHotelCpt.CustomerHotelIntentEnum.Leave); }
public void Submit(DialogView dialogView, DialogBean dialogBean) { GameDataBean gameData = GameDataHandler.Instance.manager.GetGameData(); if (dialogView as PickForCharacterDialogView) { //判断时间是否过晚 GameTimeHandler.Instance.GetTime(out float hour, out float min); if (hour >= 21 || hour < 6) { ToastHandler.Instance.ToastHint(TextHandler.Instance.manager.GetTextById(1034)); return; } //支付金钱 gameData.PayMoney(miniGameData.preMoneyL, miniGameData.preMoneyM, miniGameData.preMoneyS); //扣除时间 GameTimeHandler.Instance.AddHour(miniGameData.preGameTime); //如果有研究菜谱 菜谱增加经验 GameDataHandler.Instance.AddTimeProcess(miniGameData.preGameTime * 60); //设置参赛人员 PickForCharacterDialogView pickForCharacterDialog = dialogView as PickForCharacterDialogView; List <CharacterBean> listCharacter = pickForCharacterDialog.GetPickCharacter(); miniGameData.InitData(listCharacter); //今日不能再参加 GameCommonInfo.DailyLimitData.AddArenaAttendedCharacter(listCharacter); //删除该条数据 GameCommonInfo.DailyLimitData.RemoveArenaDataByType(trophyType, miniGameData); if (arenaJoinType == 1) { //设置竞技场数据 GameCommonInfo.SetArenaPrepareData(miniGameData); //保存之前的位置 GameCommonInfo.ScenesChangeData.beforeUserPosition = GameControlHandler.Instance.manager.GetControl <BaseControl>(GameControlHandler.ControlEnum.Normal).transform.position; //跳转到竞技场 GameScenesHandler.Instance.ChangeScene(ScenesEnum.GameArenaScene); } else if (arenaJoinType == 2) { //刷新UI ((UITownArena)uiComponent).RefreshUI(); CharacterBean character = listCharacter[0]; bool isWin = character.CalculationArenaSendWin(miniGameData.gameType); if (isWin) { ToastHandler.Instance.ToastHint(TextHandler.Instance.manager.GetTextById(7011)); AudioHandler.Instance.PlaySound(AudioSoundEnum.Reward); //设置不记录 foreach (RewardTypeBean rewardData in miniGameData.listReward) { if (rewardData.GetRewardType() == RewardTypeEnum.AddArenaTrophyAdvanced || rewardData.GetRewardType() == RewardTypeEnum.AddArenaTrophyElementary || rewardData.GetRewardType() == RewardTypeEnum.AddArenaTrophyIntermediate || rewardData.GetRewardType() == RewardTypeEnum.AddArenaTrophyLegendary) { rewardData.isRecord = false; } } //完成奖励 RewardTypeEnumTools.CompleteReward(listCharacter, miniGameData.listReward); } else { ToastHandler.Instance.ToastHint(TextHandler.Instance.manager.GetTextById(7012)); AudioHandler.Instance.PlaySound(AudioSoundEnum.Passive); } } } else { //弹出选人界面 DialogBean dialogData = new DialogBean(); PickForCharacterDialogView pickForCharacterDialog = DialogHandler.Instance.CreateDialog <PickForCharacterDialogView>(DialogEnum.PickForCharacter, this, dialogData); pickForCharacterDialog.SetPickCharacterMax(1); List <string> listExpelCharacterId = new List <string>(); //排出今日已经参加过的人 List <string> listAttendedCharacterId = GameCommonInfo.DailyLimitData.GetArenaAttendedCharacter(); //排出等级不符合的人 List <CharacterBean> listWorker = gameData.GetAllCharacterData(); foreach (CharacterBean itemWorker in listWorker) { bool isExpel = false; CharacterWorkerBaseBean workerInfo = null; switch (gameType) { case MiniGameEnum.Cooking: workerInfo = itemWorker.baseInfo.GetWorkerInfoByType(WorkerEnum.Chef); break; case MiniGameEnum.Barrage: workerInfo = itemWorker.baseInfo.GetWorkerInfoByType(WorkerEnum.Waiter); break; case MiniGameEnum.Account: workerInfo = itemWorker.baseInfo.GetWorkerInfoByType(WorkerEnum.Accountant); break; case MiniGameEnum.Debate: workerInfo = itemWorker.baseInfo.GetWorkerInfoByType(WorkerEnum.Accost); break; case MiniGameEnum.Combat: workerInfo = itemWorker.baseInfo.GetWorkerInfoByType(WorkerEnum.Beater); break; } int workLevel = workerInfo.GetLevel(); switch (trophyType) { case TrophyTypeEnum.Elementary: if (workLevel != 0 && workLevel != 1) { isExpel = true; } break; case TrophyTypeEnum.Intermediate: if (workLevel != 2 && workLevel != 3) { isExpel = true; } break; case TrophyTypeEnum.Advanced: if (workLevel != 4 && workLevel != 5) { isExpel = true; } break; case TrophyTypeEnum.Legendary: if (workLevel != 6) { isExpel = true; } break; } if (isExpel) { listExpelCharacterId.Add(itemWorker.baseInfo.characterId); } } listExpelCharacterId.AddRange(listAttendedCharacterId); pickForCharacterDialog.SetExpelCharacter(listExpelCharacterId); if (miniGameData.gameType == MiniGameEnum.Combat) { pickForCharacterDialog.SetPickCharacterMax(miniGameData.winBringDownNumber); } } }