c1_lua/lua/app/ui/main_city/chapter_box_ui.lua
2025-09-22 16:08:20 +08:00

78 lines
2.6 KiB
Lua

local ChapterBoxUI = class("ChapterBoxUI", BaseUI)
function ChapterBoxUI:isFullScreen()
return false
end
function ChapterBoxUI:getPrefabPath()
return "assets/prefabs/ui/main_city/chapter_box_ui.prefab"
end
function ChapterBoxUI:ctor(params)
self.chapterId = params.chapterId
end
function ChapterBoxUI:onLoadRootComplete()
local uiMap = self.root:genAllChildren()
uiMap["chapter_box_ui.bg.close_btn"]:addClickListener(function()
self:closeUI()
end)
uiMap["chapter_box_ui.mask"]:addClickListener(function()
self:closeUI()
end)
self.selImg = uiMap["chapter_box_ui.bg.bg1.sel_img"]
self.maxWaveTx = uiMap["chapter_box_ui.bg.max_wave_tx"]
uiMap["chapter_box_ui.bg.title_tx"]:setText(I18N:getGlobalText(I18N.GlobalConst.CHAPTER_WAVE_REAWRD_2))
self.chapterPage = DataManager.ChapterData:getChapterPage(self.chapterId)
self.chapterStage = DataManager.ChapterData:getChapterStage(self.chapterId)
local chapterList = DataManager.ChapterData:getChapterList(self.chapterPage)
self.chapterTxs = {}
for i = 1, 5 do
self.chapterTxs[i] = uiMap["chapter_box_ui.bg.bg1.tx_node.chapter_tx_" .. i]
if i <= #chapterList then
self.chapterTxs[i]:setActive(true)
else
self.chapterTxs[i]:setActive(false)
end
self.chapterTxs[i]:addClickListener(function()
if self.chapterStage == i then
return
end
self.chapterStage = i
self:onRefresh()
end)
end
uiMap["chapter_box_ui.bg.bg1"]:setSizeDeltaX(#chapterList * 118)
uiMap["chapter_box_ui.bg.bg1.tx_node"]:getComponent(GConst.TYPEOF_UNITY_CLASS.BF_HORIZONTAL_OR_VERTICAL_LAYOUT):RefreshLayout()
self.scrollRect = uiMap["chapter_box_ui.bg.scrollrect"]
self.scrollRectComp = self.scrollRect:addLuaComponent(GConst.TYPEOF_LUA_CLASS.SCROLL_RECT_BASE)
self.scrollRectComp:addInitCallback(function()
return "app/ui/main_city/cell/chapter_box_cell"
end)
self.scrollRectComp:addRefreshCallback(function(index, cell)
cell:refresh(self.chapterId, index)
end)
self.scrollRectComp:setTotalCount(0)
self:bind(DataManager.ChapterData, "isDirty", function()
self:onRefresh()
end)
end
function ChapterBoxUI:onRefresh()
self.chapterId = DataManager.ChapterData:getChapterCfgByPageAndStage(self.chapterPage, self.chapterStage)
for i = 1, 5 do
self.chapterTxs[i]:setText(self.chapterPage .. "-" .. i)
end
self.selImg:setAnchoredPositionX((self.chapterStage - 0.5) * 118)
local list = DataManager.ChapterData:getChapterBoxRewardList(self.chapterId)
self.scrollRectComp:refillCells(#list)
self.maxWaveTx:setText(I18N:getGlobalText(I18N.GlobalConst.CHAPTER_DESC_1, DataManager.ChapterData:getChapterMaxWave(self.chapterId)))
end
return ChapterBoxUI