local XUiFubenExploreChapter = XLuaUiManager.Register(XLuaUi, "UiFubenExploreChapter") function XUiFubenExploreChapter:OnAwake() self.CurChapterId = 0 self.GridRecordList = {} self.ChapterTabBtnList = {} self.AnimQieHuanGo = self:FindGameObject("AnimQieHuan") self:AddListener() self:InitTabBtn() self.TabBtnGroup:SelectIndex(XDataCenter.FubenExploreManager.GetNewestChapterId()) end function XUiFubenExploreChapter:OnStart() self.AssetPanel = XUiPanelAsset.New(self, self.PanelAsset, XDataCenter.ItemManager.ItemId.FreeGem, XDataCenter.ItemManager.ItemId.ActionPoint, XDataCenter.ItemManager.ItemId.Coin) end function XUiFubenExploreChapter:OnEnable() self:InitTabBtn() local chapterId = XDataCenter.FubenExploreManager.GetNewestChapterId() if chapterId ~= nil then self.TabBtnGroup:SelectIndex(chapterId) else self.TabBtnGroup:SelectIndex(1) end end function XUiFubenExploreChapter:UpdateInfo() self.TxtTitle.text = self.CurChapterData.Name local progress = XDataCenter.FubenExploreManager.GetExploreProgress(self.CurChapterId) local progressInt = math.floor(progress * 100) self.TxtExplorNumber.text = string.format("%d%%", progressInt) self.ImgProgress.fillAmount = 0 --CS.DG.Tweening.DOTween.To(self.ImgProgress.fillAmount,self.ImgProgress.fillAmount,progress, 0.5) self.ImgProgress:DOFillAmount(progress, 0.5) --self.ImgProgress.fillAmount = progress self.RImgBigBg:SetRawImage(self.CurChapterData.BgPic) self:UpdateRecord() end function XUiFubenExploreChapter:UpdateRecord() local allRecordData = XDataCenter.FubenExploreManager.GetChapterStoryText(self.CurChapterId) for i = 1, #allRecordData do if self.GridRecordList[i] == nil then local tempGridRecord = CS.UnityEngine.Object.Instantiate(self.GridRecord) tempGridRecord.transform:SetParent(self.PanelContent, false) tempGridRecord.gameObject:SetActive(true) table.insert(self.GridRecordList, tempGridRecord) else self.GridRecordList[i].gameObject:SetActive(true) end --setdata local uiObj = self.GridRecordList[i]:GetComponent(typeof(CS.UiObject)) uiObj:GetObject("TxtSubtitle").text = allRecordData[i].Title uiObj:GetObject("TxtContent").text = allRecordData[i].Text end if #XFubenExploreConfigs.GetChapterStoryText(self.CurChapterId) ~= #allRecordData then self.GridExploring.gameObject.transform:SetAsLastSibling() self.GridExploring.gameObject:SetActive(true) else self.GridExploring.gameObject:SetActive(false) end for i = #allRecordData + 1, #self.GridRecordList do self.GridRecordList[i].gameObject:SetActive(false) end CS.UnityEngine.UI.LayoutRebuilder.ForceRebuildLayoutImmediate(self.PanelContent) end function XUiFubenExploreChapter:InitTabBtn() local allChapterData = XFubenExploreConfigs.GetExploreChapterCfg() for i = 1, #allChapterData do if self.ChapterTabBtnList[i] == nil then local tempChapterTabBtn = CS.UnityEngine.Object.Instantiate(self.Obj:GetPrefab("BtnExploreChapter")) tempChapterTabBtn.transform:SetParent(self.ChapterTabGroup, false) table.insert(self.ChapterTabBtnList, tempChapterTabBtn) end end self.TabBtnGroup = XUiTabBtnGroup.New(self.ChapterTabBtnList, function(index) self:OnBtnChapterClick(index) end, function(tabId) return self:TabBtnClickCheck(tabId) end, nil, XUiTabBtnGroup.TabBtnType.Chapter) for i = 1, #allChapterData do --setdata self.TabBtnGroup.TabBtnList[i]:SetName(allChapterData[i].Name, CS.XTextManager.GetText("ExploreChapterName", i)) self.TabBtnGroup.TabBtnList[i]:SetPic(allChapterData[i].Icon) self.TabBtnGroup.TabBtnList[i]:SetRedPoint(XDataCenter.FubenExploreManager.IsChapterRedPoint(allChapterData[i].Id)) if i ~= 1 and allChapterData[i].PreId > 0 and XDataCenter.FubenExploreManager.GetExploreProgress(allChapterData[i].PreId) ~= 1 then self.TabBtnGroup:LockIndex(i) else self.TabBtnGroup:UnLockIndex(i) end end end function XUiFubenExploreChapter:TabBtnClickCheck(index) local result = true local allChapterData = XFubenExploreConfigs.GetExploreChapterCfg() if index ~= 1 and XDataCenter.FubenExploreManager.GetExploreProgress(allChapterData[index - 1].Id) ~= 1 then XUiManager.TipError(CS.XTextManager.GetText("ExploreNotOpenError")) result = false end return result end function XUiFubenExploreChapter:AddListener() self:RegisterClickEvent(self.BtnBack, self.OnBtnBackClick) self:RegisterClickEvent(self.BtnMainUi, self.OnBtnMainUiClick) self:RegisterClickEvent(self.BtnEnter, self.OnBtnEnterClick) self:RegisterClickEvent(self.BtnHelp, self.OnBtnHelpClick) self:BindHelpBtn(self.BtnHelpCourse, "Explore") end function XUiFubenExploreChapter:OnBtnHelpClick() XUiManager.UiFubenDialogTip("", CS.XTextManager.GetText("ExploreExplain") or "") end function XUiFubenExploreChapter:OnBtnMainUiClick() XLuaUiManager.RunMain() end function XUiFubenExploreChapter:OnBtnBackClick() self:Close() end function XUiFubenExploreChapter:OnBtnEnterClick() XLuaUiManager.Open("UiFubenExploreLevel", self.CurChapterId) end function XUiFubenExploreChapter:OnBtnChapterClick(chapterId) if self.AnimQieHuanGo and self.AnimQieHuanGo.activeInHierarchy then self:PlayAnimation("AnimQieHuan") end self.CurChapterId = chapterId XDataCenter.FubenExploreManager.SetCurChapterId(self.CurChapterId) self.CurChapterData = XFubenExploreConfigs.GetChapterData(self.CurChapterId) self:UpdateInfo() end