135 lines
4.5 KiB
Lua
135 lines
4.5 KiB
Lua
local DungeonDailyMainUI = class("DungeonDailyMainUI", BaseUI)
|
|
|
|
local DUNGEON_GOLD_COMP = "app/ui/dungeon/comp/dungeon_gold_comp"
|
|
local DUNGEON_MATERIAL_COMP = "app/ui/dungeon/comp/dungeon_material_comp"
|
|
|
|
function DungeonDailyMainUI:ctor(params)
|
|
self.page = params and params.page
|
|
if self.page == nil then
|
|
if DataManager.DungeonDailyData.GoldData:isOpen() then
|
|
self.page = GConst.DungeonConst.DUNGEON_DAILY_TYPE.GOLD
|
|
elseif DataManager.DungeonDailyData.MaterialData:isOpen() then
|
|
self.page = GConst.DungeonConst.DUNGEON_DAILY_TYPE.MATERIAL
|
|
end
|
|
elseif self.page == GConst.DungeonConst.DUNGEON_DAILY_TYPE.GOLD then
|
|
if not DataManager.DungeonDailyData.GoldData:isOpen() then
|
|
self.page = GConst.DungeonConst.DUNGEON_DAILY_TYPE.MATERIAL
|
|
end
|
|
elseif self.page == GConst.DungeonConst.DUNGEON_DAILY_TYPE.MATERIAL then
|
|
if not DataManager.DungeonDailyData.MaterialData:isOpen() then
|
|
self.page = GConst.DungeonConst.DUNGEON_DAILY_TYPE.GOLD
|
|
end
|
|
end
|
|
self.btns = {}
|
|
end
|
|
|
|
function DungeonDailyMainUI:getPrefabPath()
|
|
return "assets/prefabs/ui/dungeon/dungeon_daily_main_ui.prefab"
|
|
end
|
|
|
|
function DungeonDailyMainUI:onLoadRootComplete()
|
|
local uiMap = self.root:genAllChildren()
|
|
self.closeBtn = uiMap["dungeon_daily_main_ui.bottom.close_btn"]
|
|
self.closeBtn:addClickListener(function()
|
|
self:closeUI()
|
|
end)
|
|
|
|
self.dungeonGoldComp = uiMap["dungeon_daily_main_ui.gold_comp"]:addLuaComponent(DUNGEON_GOLD_COMP)
|
|
self.dungeonMaterialComp = uiMap["dungeon_daily_main_ui.material_comp"]:addLuaComponent(DUNGEON_MATERIAL_COMP)
|
|
|
|
self.goldBtn = uiMap["dungeon_daily_main_ui.bottom.gold_btn"]
|
|
self.goldBtn:addClickListener(function()
|
|
self:switchPage(GConst.DungeonConst.DUNGEON_DAILY_TYPE.GOLD)
|
|
end)
|
|
uiMap["dungeon_daily_main_ui.bottom.gold_btn.text"]:setText(I18N:getGlobalText(I18N.GlobalConst.DUNGEON_TITLE_8))
|
|
self.materialBtn = uiMap["dungeon_daily_main_ui.bottom.material_btn"]
|
|
self.materialBtn:addClickListener(function()
|
|
self:switchPage(GConst.DungeonConst.DUNGEON_DAILY_TYPE.MATERIAL)
|
|
end)
|
|
uiMap["dungeon_daily_main_ui.bottom.material_btn.text"]:setText(I18N:getGlobalText(I18N.GlobalConst.DUNGEON_TITLE_9))
|
|
|
|
self:_bind()
|
|
end
|
|
|
|
function DungeonDailyMainUI:_bind()
|
|
self:bind(DataManager.DungeonDailyData.GoldData, "isDirty", function()
|
|
self:onRefresh()
|
|
end)
|
|
self:bind(DataManager.DungeonDailyData.MaterialData, "isDirty", function()
|
|
self:onRefresh()
|
|
end)
|
|
self:bind(DataManager.PrivilegeCardData, "isDirty", function()
|
|
self:onRefresh()
|
|
end)
|
|
end
|
|
|
|
function DungeonDailyMainUI:onRefresh()
|
|
local btnsCount = #self.btns
|
|
for i = 1, btnsCount do
|
|
table.remove(self.btns)
|
|
end
|
|
if DataManager.DungeonDailyData.MaterialData:isOpen() then
|
|
self.materialBtn:setActive(true)
|
|
table.insert(self.btns, self.materialBtn)
|
|
if DataManager.DungeonDailyData.MaterialData:getIsShowRedPoint() then
|
|
self.materialBtn:addRedPoint(30, 30, 1)
|
|
else
|
|
self.materialBtn:removeRedPoint()
|
|
end
|
|
else
|
|
self.materialBtn:setActive(false)
|
|
end
|
|
if DataManager.DungeonDailyData.GoldData:isOpen() then
|
|
self.goldBtn:setActive(true)
|
|
table.insert(self.btns, self.goldBtn)
|
|
if DataManager.DungeonDailyData.GoldData:getIsShowRedPoint() then
|
|
self.goldBtn:addRedPoint(30, 30, 1)
|
|
else
|
|
self.goldBtn:removeRedPoint()
|
|
end
|
|
else
|
|
self.goldBtn:setActive(false)
|
|
end
|
|
for k, v in ipairs(self.btns) do
|
|
v:setAnchoredPositionX(-76 - (k-1)*123)
|
|
end
|
|
self:switchPage(self.page)
|
|
end
|
|
|
|
function DungeonDailyMainUI:switchPage(page)
|
|
self.page = page
|
|
if self.page == GConst.DungeonConst.DUNGEON_DAILY_TYPE.GOLD then
|
|
self.dungeonGoldComp:getBaseObject():setActive(true)
|
|
self.dungeonMaterialComp:getBaseObject():setActive(false)
|
|
self.goldBtn:setSprite(GConst.ATLAS_PATH.UI_DUNGEON, "dungeon_btn_2_1")
|
|
self.materialBtn:setSprite(GConst.ATLAS_PATH.UI_DUNGEON, "dungeon_btn_1_2")
|
|
self:refreshGold()
|
|
elseif self.page == GConst.DungeonConst.DUNGEON_DAILY_TYPE.MATERIAL then
|
|
self.dungeonGoldComp:getBaseObject():setActive(false)
|
|
self.dungeonMaterialComp:getBaseObject():setActive(true)
|
|
self.goldBtn:setSprite(GConst.ATLAS_PATH.UI_DUNGEON, "dungeon_btn_2_2")
|
|
self.materialBtn:setSprite(GConst.ATLAS_PATH.UI_DUNGEON, "dungeon_btn_1_1")
|
|
self:refreshMaterial()
|
|
end
|
|
end
|
|
|
|
function DungeonDailyMainUI:refreshGold()
|
|
if self._alreadyEnterGold == nil then
|
|
self._alreadyEnterGold = true
|
|
self.dungeonGoldComp:onRefresh(true)
|
|
else
|
|
self.dungeonGoldComp:onRefresh()
|
|
end
|
|
end
|
|
|
|
function DungeonDailyMainUI:refreshMaterial()
|
|
if self._alreadyEnterMaterial == nil then
|
|
self._alreadyEnterMaterial = true
|
|
self.dungeonMaterialComp:onRefresh(true)
|
|
else
|
|
self.dungeonMaterialComp:onRefresh(false)
|
|
end
|
|
end
|
|
|
|
return DungeonDailyMainUI
|