private void Update() { if (textData == null) { return; } if (Input.GetButtonDown(InputInfo.Interactive_E) || Input.GetButtonDown(InputInfo.Confirm)) { if (tweenerText != null && tweenerText.IsActive() && tweenerText.IsPlaying()) { tweenerText.Complete(); //刷新控件 if (rtfTextContent != null) { GameUtil.RefreshRectViewHight(rtfTextContent, true); } } else { //当是选择对话 不能跳过 if (textData.GetTextType() == TextInfoTypeEnum.Select || textData.GetTextType() == TextInfoTypeEnum.Talk) { } else { uiComponent.NextText(); } } } GameDataBean gameData = GameDataHandler.Instance.manager.GetGameData(); if (tvMoneyL != null) { tvMoneyL.text = gameData.moneyL + ""; } if (tvMoneyM != null) { tvMoneyM.text = gameData.moneyM + ""; } if (tvMoneyS != null) { tvMoneyS.text = gameData.moneyS + ""; } }
/// <summary> /// 展示文本数据 /// </summary> /// <param name="textData"></param> public void ShowText(List <TextInfoBean> textListData) { if (CheckUtil.ListIsNull(textListData)) { LogUtil.LogWarning("没有查询到相应文本对话数据"); return; } currentTextData = textListData[0]; uiForTalk.Close(); uiForBook.Close(); uiForBehind.Close(); //时停选择 特殊处理 if (currentTextData.is_stoptime == 1) { //设置时间彻底停止计时 GameTimeHandler.Instance.SetTimeStop(); } switch (currentTextData.GetTextType()) { //对话和选择对话 case TextInfoTypeEnum.Normal: case TextInfoTypeEnum.Select: case TextInfoTypeEnum.Talk: uiForTalk.Open(); uiForTalk.SetData(currentTextData, textListData); break; case TextInfoTypeEnum.Book: //书本详情 uiForBook.Open(); uiForBook.SetData(currentTextData); break; case TextInfoTypeEnum.Behind: //黑幕 uiForBehind.Open(); uiForBehind.SetData(currentTextData); break; } }
/// <summary> /// 文本选择 /// </summary> /// <param name="textData"></param> public void SelectText(TextInfoBean textData) { GameDataBean gameData = GameDataHandler.Instance.manager.GetGameData(); switch (mTextEnum) { case TextEnum.Look: case TextEnum.Story: NextText(textData.next_order); break; case TextEnum.Talk: //不同的对话选项 //对话 //如果是对话选项 if (textData.GetTextType() == TextInfoTypeEnum.Talk) { if (textData.content.Equals(TextHandler.Instance.manager.GetTextById(99102))) { //对话 TextInfoHandler.Instance.manager.listTextData = RandomUtil.GetRandomDataByDictionary(TextInfoHandler.Instance.manager.mapTalkNormalData); NextText(1); //增加好感 if (GameCommonInfo.DailyLimitData.AddTalkNpc(mTalkNpcInfo.id)) { gameData.GetCharacterFavorability(mTalkNpcInfo.id).AddFavorability(1); } //增加数据记录 CharacterFavorabilityBean characterFavorability = gameData.GetCharacterFavorability(mTalkNpcInfo.id); characterFavorability.AddTalkNumber(1); } //退出 else if (textData.content.Equals(TextHandler.Instance.manager.GetTextById(99103))) { NextText(); } //招募 else if (textData.content.Equals(TextHandler.Instance.manager.GetTextById(99104))) { if (gameData.CheckIsMaxWorker()) { ToastHandler.Instance.ToastHint(TextHandler.Instance.manager.GetTextById(1051)); } else { TextInfoHandler.Instance.manager.listTextData = RandomUtil.GetRandomDataByDictionary(TextInfoHandler.Instance.manager.mapTalkRecruitData); NextText(1); } } //送礼 else if (textData.content.Equals(TextHandler.Instance.manager.GetTextById(99105))) { DialogBean dialogData = new DialogBean(); PickForItemsDialogView pickForItemsDialog = DialogHandler.Instance.CreateDialog <PickForItemsDialogView>(DialogEnum.PickForItems, this, dialogData); pickForItemsDialog.SetData(null, ItemsSelectionDialogView.SelectionTypeEnum.Gift); } //换取公会勋章 else if (textData.content.Equals(TextHandler.Instance.manager.GetTextById(99201))) { //对话 TextInfoHandler.Instance.manager.listTextData = RandomUtil.GetRandomDataByDictionary(TextInfoHandler.Instance.manager.mapTalkExchangeData); NextText(1); } //换取奖杯 else if (textData.content.Equals(TextHandler.Instance.manager.GetTextById(99202))) { //对话 TextInfoHandler.Instance.manager.listTextData = RandomUtil.GetRandomDataByDictionary(TextInfoHandler.Instance.manager.mapTalkExchangeData); NextText(1); } //换取装备 else if (textData.content.Equals(TextHandler.Instance.manager.GetTextById(99203))) { //对话 TextInfoHandler.Instance.manager.listTextData = RandomUtil.GetRandomDataByDictionary(TextInfoHandler.Instance.manager.mapTalkExchangeData); NextText(1); } //换取道具 else if (textData.content.Equals(TextHandler.Instance.manager.GetTextById(99204))) { //对话 TextInfoHandler.Instance.manager.listTextData = RandomUtil.GetRandomDataByDictionary(TextInfoHandler.Instance.manager.mapTalkExchangeData); NextText(1); } //求婚 else if (textData.content.Equals(TextHandler.Instance.manager.GetTextById(99205))) { gameData.CheckHasItems(99900021, out bool hasItems, out long number); //判断是否有信物 if (hasItems) { DialogBean dialogData = new DialogBean(); dialogData.content = string.Format(TextHandler.Instance.manager.GetTextById(3121), mTalkNpcInfo.name); DialogHandler.Instance.CreateDialog <DialogView>(DialogEnum.Normal, this, dialogData); NextText(textData.next_order); } else { ItemsInfoBean itemsInfo = GameItemsHandler.Instance.manager.GetItemsById(99900021); ToastHandler.Instance.ToastHint(string.Format(TextHandler.Instance.manager.GetTextById(5023), itemsInfo.name, "1")); } } } else { NextText(textData.next_order); } break; } }
/// <summary> /// 设置数据 /// </summary> /// <param name="textData"></param> /// <param name="listTextInfo"></param> public void SetData(TextInfoBean textData, List <TextInfoBean> listTextInfo) { GameDataBean gameData = GameDataHandler.Instance.manager.GetGameData(); //清空选项 CptUtil.RemoveChildsByName(objSelectContent.transform, "SelectButton", true); //清空文本 tvContent.text = ""; tvName.text = ""; //回到顶部 scrollRect.verticalNormalizedPosition = 0; this.textData = textData; //选择对话 特殊处理 增加选择框 if (textData.GetTextType() == TextInfoTypeEnum.Select || textData.GetTextType() == TextInfoTypeEnum.Talk) { objNext.gameObject.SetActive(false); foreach (TextInfoBean itemData in listTextInfo) { //提示文本 if (itemData.select_type == 0) { this.textData = itemData; } // 选项 else { GameObject objSelect = Instantiate(objSelectModel, objSelectContent.transform); objSelect.SetActive(true); ItemGameTextSelectCpt itemCpt = objSelect.GetComponent <ItemGameTextSelectCpt>(); itemCpt.SetData(itemData); } } } else { objNext.gameObject.SetActive(true); //添加奖励 AddReward(textData.reward_data); } //正常文本处理 //查询角色数据 CharacterBean characterData; if (textData.user_id == 0) { characterData = gameData.userCharacter; } else { characterData = NpcInfoHandler.Instance.manager.GetCharacterDataById(textData.user_id); } if (characterData == null) { LogUtil.LogError("文本展示没有找到该文本发起者"); return; } //名字设置 SetName(characterData.baseInfo.titleName, characterData.baseInfo.name, textData.name); //设置角色形象 SetCharacterUI(characterData); //设置正文内容 SetContent(textData.content); //添加好感度 AddFavorability(textData.user_id, textData.add_favorability); //场景人物表情展示 ShowSceneExpression(textData.scene_expression); }