c1_lua/lua/app/ui/arena/arena_season_reward_ui.lua
2023-07-03 18:34:51 +08:00

133 lines
4.3 KiB
Lua

-- 竞技场:赛季奖励
local ArenaSeasonRewardUI = class("ArenaSeasonRewardUI", BaseUI)
function ArenaSeasonRewardUI:isFullScreen()
return false
end
function ArenaSeasonRewardUI:showCommonBG()
return false
end
function ArenaSeasonRewardUI:getPrefabPath()
return "assets/prefabs/ui/arena/arena_season_reward_ui.prefab"
end
function ArenaSeasonRewardUI:onPressBackspace()
self:closeUI()
end
function ArenaSeasonRewardUI:ctor()
end
function ArenaSeasonRewardUI:onCover()
end
function ArenaSeasonRewardUI:onReshow()
end
function ArenaSeasonRewardUI:onClose()
if self.seasonChangeSid then
self:unscheduleGlobal(self.seasonChangeSid)
self.seasonChangeSid = nil
end
end
function ArenaSeasonRewardUI:onLoadRootComplete()
local uiMap = self.root:genAllChildren()
self.txTitle = uiMap["arena_season_reward_ui.bg.title.tx_title"]
self.closeBtn = uiMap["arena_season_reward_ui.bg.close_btn"]
-- 赛季奖励
self.seasonReward = uiMap["arena_season_reward_ui.bg.season_reward"]
self.txDesc = uiMap["arena_season_reward_ui.bg.season_reward.tx_desc"]
self.txTime = uiMap["arena_season_reward_ui.bg.season_reward.countdown.tx_time"]
self.seasonRewardComp = uiMap["arena_season_reward_ui.bg.season_reward.reward_list"]:addLuaComponent(GConst.TYPEOF_LUA_CLASS.SCROLL_RECT_BASE)
-- 领取奖励
self.getReward = uiMap["arena_season_reward_ui.bg.last_reward"]
self.txSeason = uiMap["arena_season_reward_ui.bg.last_reward.tx_season"]
self.imgGrading = uiMap["arena_season_reward_ui.bg.last_reward.img_grading"]
self.txGrading = uiMap["arena_season_reward_ui.bg.last_reward.img_grading.tx_grading"]
self.getRewardComp = uiMap["arena_season_reward_ui.bg.last_reward.rewards"]:addLuaComponent(GConst.TYPEOF_LUA_CLASS.SCROLL_RECT_BASE)
self.btnGet = uiMap["arena_season_reward_ui.bg.last_reward.btn_get"]
self.txGet = uiMap["arena_season_reward_ui.bg.last_reward.btn_get.tx_get"]
self.txTitle:setText(I18N:getGlobalText(I18N.GlobalConst.ARENA_DESC_11))
self.closeBtn:addClickListener(function()
self:closeUI()
end)
self.btnGet:addClickListener(function()
ModuleManager.ArenaManager:reqLastSeasonReward()
end)
self:bind(DataManager.ArenaData, "isDirty", function()
self:closeUI()
end)
self:addEventListener(EventManager.CUSTOM_EVENT.ARENA_SEASON_END, function()
self:closeUI()
end)
end
function ArenaSeasonRewardUI:onRefresh()
if DataManager.ArenaData:hasSeasonReward() then
self:showGetReward()
else
self:showSeasonReward()
end
end
-- 显示赛季奖励
function ArenaSeasonRewardUI:showSeasonReward()
self.seasonReward:setActive(true)
self.getReward:setActive(false)
self.txDesc:setText(I18N:getGlobalText(I18N.GlobalConst.ARENA_DESC_12, DataManager.ArenaData:getSeason()))
if self.seasonChangeSid then
self:unscheduleGlobal(self.seasonChangeSid)
end
self:refreshCountdown()
self.seasonChangeSid = self:scheduleGlobal(function()
self:refreshCountdown()
end, 1)
local ids = DataManager.ArenaData:getGradingIdList()
self.seasonRewardComp:addInitCallback(function()
return "app/ui/arena/cell/arena_season_reward_cell"
end)
self.seasonRewardComp:addRefreshCallback(function(index, cell)
cell:refresh(ids[index])
end)
self.seasonRewardComp:clearCells()
self.seasonRewardComp:refillCells(#ids)
end
function ArenaSeasonRewardUI:refreshCountdown()
self.txTime:setText(Time:formatNumTimeStr(DataManager.ArenaData:getRemainSeasonTime()))
end
-- 显示领取奖励
function ArenaSeasonRewardUI:showGetReward()
self.seasonReward:setActive(false)
self.getReward:setActive(true)
local lastId = DataManager.ArenaData:getLastGradingId()
local rewards = DataManager.ArenaData:getGradingRewardInfo(lastId)
self.txSeason:setText(I18N:getGlobalText(I18N.GlobalConst.ARENA_DESC_13, DataManager.ArenaData:getSeason() - 1))
self.imgGrading:setSprite(GConst.ATLAS_PATH.ARENA, DataManager.ArenaData:getGradingIconName(lastId))
self.txGrading:setText(DataManager.ArenaData:getGradingName(lastId))
self.txGet:setText(I18N:getGlobalText(I18N.GlobalConst.BTN_CLAIM))
self.btnGet:addRedPoint(110, 35, 0.6)
self.getRewardComp:addInitCallback(function()
return GConst.TYPEOF_LUA_CLASS.REWARD_CELL
end)
self.getRewardComp:addRefreshCallback(function(index, cell)
cell:refresh(rewards[index])
end)
self.seasonRewardComp:clearCells()
self.seasonRewardComp:refillCells(#rewards)
end
return ArenaSeasonRewardUI