local BaseCtrl = require("GameCore.UI.BaseCtrl") local AvgData = PlayerData.Avg local StoryEntranceCtrl = class("StoryEntranceCtrl", BaseCtrl) StoryEntranceCtrl._mapNodeConfig = { btnMainline = { sNodeName = "btnMainline", sComponentName = "UIButton", callback = "OnBtn_ClickMainline" }, btnNovaStory = { sNodeName = "btnNovaStory", sComponentName = "UIButton", callback = "OnBtn_ClickNovaStory" }, btnActivity = { sNodeName = "btnActivity", sComponentName = "UIButton", callback = "OnBtn_ClickActivity" }, txtMainlineTilte = { sNodeName = "txtMainlineTilte", sComponentName = "TMP_Text", sLanguageId = "WorldMap_MainLine_Avg" }, txtCurMainline = { sNodeName = "txtCurMainline", sComponentName = "TMP_Text", sLanguageId = "Continue_MainlineStory" }, txtNovaStoryTilte = { sNodeName = "txtNovaStoryTilte", sComponentName = "TMP_Text", sLanguageId = "Nova_Story" }, txtCurNovaStory = { sNodeName = "txtCurNovaStory", sComponentName = "TMP_Text", sLanguageId = "Nova_Story_Desc" }, txtActivityTilte = { sNodeName = "txtActivityTilte", sComponentName = "TMP_Text", sLanguageId = "Activity_Review" }, txtActivity = { sNodeName = "txtActivity", sComponentName = "TMP_Text", sLanguageId = "Previous_Activity_Plot" }, btnMainlineQuickEntrance = { sNodeName = "btnMainlineQuickEntrance", sComponentName = "UIButton", callback = "OnBtn_ClickMainlineQuickEntrance" }, txtMainlineQuickTitle = { sNodeName = "txtMainlineQuickTitle", sComponentName = "TMP_Text", sLanguageId = "MainLine_Progress" }, imgMainlinceChapterBg = { sNodeName = "imgMainlinceChapterBg", sComponentName = "Image" }, txtMainlineChapter = { sNodeName = "txtMainlineChapter", sComponentName = "TMP_Text" }, txtRecentStoryQuickTitle = { sNodeName = "txtRecentStoryQuickTitle", sComponentName = "TMP_Text", sLanguageId = "Continue_Reading" }, btnRecentStoryQuickEntrance = { sNodeName = "btnRecentStoryQuickEntrance", sComponentName = "UIButton", callback = "OnBtn_ClickRecentStoryQuickEntrance" }, goRecentStory = { sNodeName = "goRecentStory", sComponentName = "GameObject" }, goNoStory = {sNodeName = "goNoStory", sComponentName = "GameObject"}, imgRecentStoryBg = { sNodeName = "imgRecentStoryBg", sComponentName = "Image" }, txtRecentStoryTitle = { sNodeName = "txtRecentStoryTitle", sComponentName = "TMP_Text" }, txtNoProgress = { sNodeName = "txtNoProgress", sComponentName = "TMP_Text", sLanguageId = "No_Progress_Yet" }, txtActivityQuickTitle = { sNodeName = "txtActivityQuickTitle", sComponentName = "TMP_Text", sLanguageId = "Latest_Release" }, btnActivityQuickEntrance = { sNodeName = "btnActivityQuickEntrance", sComponentName = "UIButton", callback = "OnBtn_ClickActivityQuickEntrance" }, goActivityStory = { sNodeName = "goActivityStory", sComponentName = "GameObject" }, goNoActivity = { sNodeName = "goNoActivity", sComponentName = "GameObject" }, imgActivityStoryBg = { sNodeName = "imgActivityStoryBg", sComponentName = "Image" }, txtActivityStoryTitle = { sNodeName = "txtActivityStoryTitle", sComponentName = "TMP_Text" }, txtComingSoon = { sNodeName = "txtComingSoon", sComponentName = "TMP_Text", sLanguageId = "RegusBoss_NotOpenItem" }, btnBack = { sComponentName = "UIButton", callback = "OnBtn_ClickBack" }, btnHome = { sComponentName = "UIButton", callback = "OnBtn_ClickHome" }, redDotNovaStory = {}, redDotMainline = {} } StoryEntranceCtrl._mapEventConfig = {} StoryEntranceCtrl._mapRedDotConfig = { [RedDotDefine.Story_Set] = { sNodeName = "redDotNovaStory" }, [RedDotDefine.Map_MainLine_Entrance] = { sNodeName = "redDotMainline" } } function StoryEntranceCtrl:Awake() local callback = function() self.bHasAchievementData = true end PlayerData.Achievement:SendAchievementInfoReq(callback) end function StoryEntranceCtrl:FadeIn() EventManager.Hit(EventId.SetTransition) end function StoryEntranceCtrl:OnEnable() self.bHasActivityStorys = false self.bHasNovaStorys = false self:RefreshMainlineQuickEntranceState() self:RefreshRecentStoryQuickEntranceState() self:RefreshComingSoonState() end function StoryEntranceCtrl:OnDisable() end function StoryEntranceCtrl:RefreshMainlineQuickEntranceState() local curChapter = AvgData:GetRecentChapterId() local curStoryId = AvgData:GetRecentStoryId(curChapter) local storConfig = ConfigTable.GetData_Story(curStoryId) if storConfig.IsLast == true and AvgData:IsStoryReaded(curStoryId) == true then curChapter = curChapter + 1 if ConfigTable.GetData("StoryChapter", curChapter, "") ~= nil then curStoryId = AvgData:GetRecentStoryId(curChapter) else curChapter = curChapter - 1 end end local chapterConfig = ConfigTable.GetData("StoryChapter", curChapter, "") local storyConfig = ConfigTable.GetData_Story(curStoryId) local title = chapterConfig.Name .. " " .. storyConfig.Index NovaAPI.SetTMPText(self._mapNode.txtMainlineChapter, title) self:SetPngSprite(self._mapNode.imgMainlinceChapterBg, "UI/big_sprites/banner_avg_chapter" .. curChapter) self.curChapter = curChapter self.curStoryId = curStoryId end function StoryEntranceCtrl:RefreshRecentStoryQuickEntranceState() local bHasRecentStory = false self._mapNode.goRecentStory:SetActive(bHasRecentStory) self._mapNode.goNoStory:SetActive(not bHasRecentStory) end function StoryEntranceCtrl:RefreshComingSoonState() local bHasActivity = false self._mapNode.goActivityStory:SetActive(bHasActivity) self._mapNode.goNoActivity:SetActive(not bHasActivity) end function StoryEntranceCtrl:OnBtn_ClickMainline() EventManager.Hit(EventId.OpenPanel, PanelId.StoryChapter) end function StoryEntranceCtrl:OnBtn_ClickNovaStory() PlayerData.StorySet:TryOpenStorySetPanel(function() EventManager.Hit(EventId.OpenPanel, PanelId.StorySet) end) end function StoryEntranceCtrl:OnBtn_ClickActivity() if not self.bHasActivityStorys then local data = { nType = AllEnum.MessageBox.Alert, sContent = ConfigTable.GetUIText("NotHave_Story_WaitUpdate"), sContentSub = "" } EventManager.Hit(EventId.OpenMessageBox, data) return end end function StoryEntranceCtrl:OnBtn_ClickMainlineQuickEntrance() local isUnlock, lockText = PlayerData.Avg:IsStoryChapterUnlock(self.curChapter) if not isUnlock then EventManager.Hit(EventId.OpenMessageBox, lockText) else EventManager.Hit(EventId.OpenPanel, PanelId.MainlineEx, self.curChapter) end end function StoryEntranceCtrl:OnBtn_ClickRecentStoryQuickEntrance() end function StoryEntranceCtrl:OnBtn_ClickActivityQuickEntrance() end function StoryEntranceCtrl:OnBtn_ClickHome() PanelManager.Home() end function StoryEntranceCtrl:OnBtn_ClickBack() EventManager.Hit(EventId.ClosePanel, PanelId.StoryEntrance) end return StoryEntranceCtrl