コード例 #1
0
ファイル: GameDataHandler.cs プロジェクト: wobushiren79/IL
    /// <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 });
    }
コード例 #2
0
    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);
        }
    }