143 lines
No EOL
5.7 KiB
Lua
143 lines
No EOL
5.7 KiB
Lua
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 |