76 lines
1.9 KiB
Lua
76 lines
1.9 KiB
Lua
local DungeonComp = class("DungeonComp", LuaComponent)
|
|
|
|
local CELL = "app/ui/dungeon/cell/dungeon_cell"
|
|
|
|
function DungeonComp:init()
|
|
local uiMap = self:getUIMap()
|
|
self.scrollrect = uiMap["dungeon_comp.content.scrollrect"]
|
|
|
|
self:bind(DataManager.DungeonDailyData.GoldData, "isDirty", function()
|
|
self:refresh()
|
|
end)
|
|
self:bind(DataManager.DungeonDailyData.MaterialData, "isDirty", function()
|
|
self:refresh()
|
|
end)
|
|
end
|
|
|
|
function DungeonComp:refresh(moduleKey)
|
|
if not self:getBaseObject():getActiveSelf() then
|
|
return
|
|
end
|
|
self:checkRankData()
|
|
|
|
self.showList = DataManager.DungeonData:getDungeonList()
|
|
if self.scrollRect == nil then
|
|
self.scrollRect = self.scrollrect:addLuaComponent(GConst.TYPEOF_LUA_CLASS.SCROLL_RECT_BASE)
|
|
self.scrollRect:addInitCallback(function()
|
|
return CELL
|
|
end)
|
|
self.scrollRect:addRefreshCallback(function(index, cell)
|
|
if self.showList[index] then
|
|
cell:refresh(self.showList[index])
|
|
else
|
|
cell:showComingSoon()
|
|
end
|
|
end)
|
|
end
|
|
local cellCount = #self.showList
|
|
if not GFunc.isShenhe() then
|
|
cellCount = cellCount + 1 -- 最后一个显示敬请期待
|
|
end
|
|
if self.scrollRect:getTotalCount() == nil or self.scrollRect:getTotalCount() <= 0 then
|
|
self.scrollRect:refillCells(cellCount)
|
|
elseif self.scrollRect:getTotalCount() ~= cellCount then
|
|
self.scrollRect:clearCells()
|
|
self.scrollRect:refillCells(cellCount)
|
|
else
|
|
self.scrollRect:updateAllCell()
|
|
end
|
|
|
|
local findIdx = moduleKey and table.indexof(self.showList, moduleKey) or 0
|
|
if moduleKey then
|
|
self.scrollRect:moveToIndex(findIdx)
|
|
end
|
|
end
|
|
|
|
function DungeonComp:onCrossDay()
|
|
self.checkedRank = false
|
|
end
|
|
|
|
function DungeonComp:checkRankData()
|
|
if self.checkedRank then
|
|
return
|
|
end
|
|
self.checkedRank = true
|
|
end
|
|
|
|
function DungeonComp:updateTime()
|
|
local list = self.scrollRect:getListCell()
|
|
if list then
|
|
for k, v in ipairs(list) do
|
|
v:updateTime()
|
|
end
|
|
end
|
|
end
|
|
|
|
return DungeonComp |