/// <summary> /// 增加菜品研究点数 /// </summary> /// <param name="time"></param> public void AddBedResearch(int time) { GameDataBean gameData = manager.GetGameData(); List <BuildBedBean> listBed = gameData.GetBedListForResearching(); if (CheckUtil.ListIsNull(listBed)) { return; } for (int i = 0; i < listBed.Count; i++) { BuildBedBean itemBed = listBed[i]; //获取研究人员 CharacterBean researcher = itemBed.GetResearchCharacter(gameData); //如果没有研究人员则停止研究 if (researcher == null) { itemBed.CancelResearch(gameData); continue; } long addExp = researcher.CalculationBedResearchAddExp(); bool isCompleteResearch = itemBed.AddResearchExp((int)addExp * time); //完成研究 if (isCompleteResearch) { itemBed.CompleteResearch(gameData); string toastStr = string.Format(TextHandler.Instance.manager.GetTextById(1071), itemBed.bedName); AudioHandler.Instance.PlaySound(AudioSoundEnum.Reward); ToastHandler.Instance.ToastHint(InnFoodHandler.Instance.manager.GetFoodSpriteByName("ui_features_bed"), toastStr, 5); DialogBean dialogData = new DialogBean { title = TextHandler.Instance.manager.GetTextById(1048), content = toastStr }; AchievementDialogView achievementDialog = DialogHandler.Instance.CreateDialog <AchievementDialogView>(DialogEnum.Achievement, this, dialogData); achievementDialog.SetData(2, "ui_features_bed"); } } notifyForData?.Invoke(NotifyTypeEnum.BedResearchChange, new object[] { listBed }); }
public void Submit(DialogView dialogView, DialogBean dialogBean) { GameDataBean gameData = GameDataHandler.Instance.manager.GetGameData(); if (dialogView is PickForCharacterDialogView) { buildBedData.GetResearchPrice(out long researchPriceL, out long researchPriceM, out long researchPriceS); //先判断一下是否有钱支付 if (!gameData.HasEnoughMoney(researchPriceL, researchPriceM, researchPriceS)) { ToastHandler.Instance.ToastHint(TextHandler.Instance.manager.GetTextById(1005)); return; } //扣除金钱 gameData.PayMoney(researchPriceL, researchPriceM, researchPriceS); //角色选择 PickForCharacterDialogView pickForCharacterDialog = dialogView as PickForCharacterDialogView; List <CharacterBean> listPickCharacter = pickForCharacterDialog.GetPickCharacter(); if (!CheckUtil.ListIsNull(listPickCharacter)) { //开始研究 buildBedData.StartResearch(listPickCharacter); string toastStr = string.Format(TextHandler.Instance.manager.GetTextById(1201), listPickCharacter[0].baseInfo.name, buildBedData.bedName); ToastHandler.Instance.ToastHint(toastStr); } } else if (dialogView is InputTextDialogView) { InputTextDialogView inputTextDialog = dialogView as InputTextDialogView; string bedName = inputTextDialog.GetText(); if (!CheckUtil.StringIsNull(bedName)) { buildBedData.bedName = bedName; } } else { if (dialogBean.dialogPosition == 1) { if (buildBedData.GetBedStatus() == ResearchStatusEnum.Researching) { ToastHandler.Instance.ToastHint(TextHandler.Instance.manager.GetTextById(1313)); return; } if (buildBedData.isSet) { ToastHandler.Instance.ToastHint(TextHandler.Instance.manager.GetTextById(1314)); return; } //丢弃确认 gameData.RemoveBed(buildBedData); uiComponent.RefreshUI(); } else if (dialogBean.dialogPosition == 2) { //普通弹窗(取消研究) buildBedData.CancelResearch(gameData); } } //重新设置数据 if (gameObject) { SetData(buildBedData); } }