101 lines
3.5 KiB
Lua
101 lines
3.5 KiB
Lua
local DungeonCell = class("DungeonCell", BaseCell)
|
|
|
|
function DungeonCell:init()
|
|
local uiMap = self:getUIMap()
|
|
self.contentNode = uiMap["dungeon_cell.content"]
|
|
self.txTitle = uiMap["dungeon_cell.content.tx_title"]
|
|
self.infoNode = uiMap["dungeon_cell.content.info"]
|
|
self.btnHelp = uiMap["dungeon_cell.content.info.btn_help"]
|
|
self.timesTx = uiMap["dungeon_cell.content.info.tx_time"]
|
|
self.lockNode = uiMap["dungeon_cell.content.lock"]
|
|
self.lockTx = uiMap["dungeon_cell.content.lock.text"]
|
|
self.banner = uiMap["dungeon_cell.content.banner"]
|
|
self.rewardCells = {}
|
|
for i = 1, 3 do
|
|
table.insert(self.rewardCells, uiMap["dungeon_cell.content.info.rewards.reward_cell_" .. i]:addLuaComponent(GConst.TYPEOF_LUA_CLASS.REWARD_CELL))
|
|
end
|
|
self.txEmpty = uiMap["dungeon_cell.tx_empty"]
|
|
-- 敬请期待
|
|
self.bgComingSoon = uiMap["dungeon_cell.bg_coming_soon"]
|
|
self.bgComingSoonTx = uiMap["dungeon_cell.bg_coming_soon.text"]
|
|
self.bgComingSoonTx:setText(I18N:getGlobalText(I18N.GlobalConst.COLLECTION_DESC_8))
|
|
|
|
self.btnHelp:addClickListener(function()
|
|
local params = {
|
|
desc = I18N:getGlobalText(GConst.DungeonConst.STR_HELP[self.moduleKey])
|
|
}
|
|
ModuleManager.TipsManager:showHelpTips(params)
|
|
end)
|
|
|
|
self.baseObject:addClickListener(function()
|
|
self:onClickGo()
|
|
end)
|
|
end
|
|
|
|
function DungeonCell:refresh(moduleKey)
|
|
self.bgComingSoon:setVisible(false)
|
|
self.contentNode:setVisible(true)
|
|
self.moduleKey = moduleKey
|
|
self:getBaseObject():getGameObject().name = self.moduleKey
|
|
|
|
self.txTitle:setText(I18N:getGlobalText(GConst.DungeonConst.STR_TITLE[self.moduleKey]))
|
|
local rewards = DataManager.DungeonData:getShowRewards(self.moduleKey)
|
|
for i, cell in ipairs(self.rewardCells) do
|
|
if rewards and rewards[i] then
|
|
cell:setActive(true)
|
|
cell:refreshByConfig(rewards[i])
|
|
cell:hideRewardNum()
|
|
else
|
|
cell:setActive(false)
|
|
end
|
|
end
|
|
-- self.banner:setSprite(GConst.ATLAS_PATH.UI_DUNGEON, GConst.DungeonConst.IMG_BANNER[self.moduleKey])
|
|
self.banner:setTexture("assets/arts/textures/background/dungeon/" .. GConst.DungeonConst.IMG_BANNER[self.moduleKey] .. ".png")
|
|
if DataManager.DungeonData:isOpen(self.moduleKey) then
|
|
self.infoNode:setVisible(true)
|
|
self.lockNode:setVisible(false)
|
|
self.timesTx:setText(GConst.EMPTY_STRING)
|
|
else
|
|
self.timesTx:setText(GConst.EMPTY_STRING)
|
|
self.infoNode:setVisible(false)
|
|
self.lockNode:setVisible(true)
|
|
self.lockTx:setText(DataManager.DungeonData:getNotOpenStr(self.moduleKey))
|
|
end
|
|
|
|
if DataManager.DungeonData:hasRedPoint(self.moduleKey) then
|
|
self.baseObject:addRedPoint(334, 90, 1)
|
|
else
|
|
self.baseObject:removeRedPoint()
|
|
end
|
|
self.remainTime = nil
|
|
self:updateTime()
|
|
end
|
|
|
|
function DungeonCell:showComingSoon()
|
|
self.bgComingSoon:setVisible(true)
|
|
self.contentNode:setVisible(false)
|
|
end
|
|
|
|
function DungeonCell:onClickGo()
|
|
if not DataManager.DungeonData:isOpen(self.moduleKey, true) then
|
|
return
|
|
end
|
|
if self.moduleKey == GConst.DungeonConst.MODULE_KEY_DUNGEON_DAILY then
|
|
ModuleManager.DungeonManager:showDungeonDaylyMainUI()
|
|
elseif self.moduleKey == ModuleManager.MODULE_KEY.RUNES_OPEN then
|
|
ModuleManager.DungeonRuneManager:showMainUI()
|
|
end
|
|
end
|
|
|
|
function DungeonCell:updateTime()
|
|
if self.moduleKey == GConst.DungeonConst.MODULE_KEY_DUNGEON_DAILY or
|
|
self.moduleKey == ModuleManager.MODULE_KEY.RUNES_OPEN then
|
|
local remainTime = Time:getTodaySurplusTime()
|
|
if self.remainTime ~= remainTime then
|
|
self.remainTime = remainTime
|
|
self.timesTx:setText(I18N:getGlobalText(I18N.GlobalConst.GIFT_ROUTINE_DESC_9, Time:formatNumTime(remainTime)))
|
|
end
|
|
end
|
|
end
|
|
|
|
return DungeonCell |