PGRData/Script/matrix/xui/xuibiancatheatre/reward/XUiBiancaTheatreLvReward.lua
2024-09-01 22:49:41 +02:00

87 lines
No EOL
3.2 KiB
Lua

local XUiBiancaTheatrePanelReward = require("XUi/XUiBiancaTheatre/Common/XUiBiancaTheatrePanelReward")
local XUiLvRewardGrid = require("XUi/XUiBiancaTheatre/Reward/XUiLvRewardGrid")
--肉鸽玩法二期奖励界面
local XUiBiancaTheatreLvReward = XLuaUiManager.Register(XLuaUi, "UiBiancaTheatreLvReward")
function XUiBiancaTheatreLvReward:OnAwake()
self:InitButtonCallBack()
self.LevelRewardIdList = XBiancaTheatreConfigs.GetLevelRewardIdList()
self.DynamicTable = XDynamicTableNormal.New(self.PanelReward)
self.DynamicTable:SetProxy(XUiLvRewardGrid)
self.DynamicTable:SetDelegate(self)
self.PanelGrid.gameObject:SetActiveEx(false)
--奖励面板
self.PanelReward = XUiBiancaTheatrePanelReward.New(self.PanelLv, true)
end
function XUiBiancaTheatreLvReward:OnStart(closeCb)
self.CloseCb = closeCb
end
function XUiBiancaTheatreLvReward:OnEnable()
self:Refresh(true)
if XDataCenter.BiancaTheatreManager.GetIsReadNewRewardLevel() then
self.DynamicTable:ReloadDataSync(#self.LevelRewardIdList)
end
XDataCenter.BiancaTheatreManager.SetIsReadNewRewardLevel()
XEventManager.AddEventListener(XEventId.EVENT_BIANCA_THEATRE_TOTAL_EXP_CHANGE, self.Refresh, self)
end
function XUiBiancaTheatreLvReward:OnDisable()
XEventManager.RemoveEventListener(XEventId.EVENT_BIANCA_THEATRE_TOTAL_EXP_CHANGE, self.Refresh, self)
end
function XUiBiancaTheatreLvReward:OnDestroy()
if self.CloseCb then
self.CloseCb()
end
end
function XUiBiancaTheatreLvReward:InitButtonCallBack()
self:RegisterClickEvent(self.BtnBack, function()
XDataCenter.BiancaTheatreManager.ResetAudioFilter()
self:Close()
end)
self:RegisterClickEvent(self.BtnMainUi, function() XDataCenter.BiancaTheatreManager.RunMain() end)
self:RegisterClickEvent(self.BtnReward, self.OnBtnRewardClick)
end
function XUiBiancaTheatreLvReward:Refresh(isJump)
local index
local list = XDataCenter.BiancaTheatreManager.GetCanReceiveLevelRewardIds()
if isJump then
index = XTool.IsTableEmpty(list) and XDataCenter.BiancaTheatreManager.GetCurRewardLevel() or list[1]
end
self.BtnReward.gameObject:SetActiveEx(#list > 0)
self.DynamicTable:SetDataSource(self.LevelRewardIdList)
self.DynamicTable:ReloadDataSync(index)
self.PanelReward:Refresh()
end
function XUiBiancaTheatreLvReward:OnDynamicTableEvent(event, index, grid)
if event == DYNAMIC_DELEGATE_EVENT.DYNAMIC_GRID_ATINDEX then
grid:Refresh(self.LevelRewardIdList[index])
elseif event == DYNAMIC_DELEGATE_EVENT.DYNAMIC_GRID_TOUCHED then
grid:OnClickGrid(self.LevelRewardIdList[index], handler(self, self.Refresh))
end
end
--一键领取
function XUiBiancaTheatreLvReward:OnBtnRewardClick()
local check = XDataCenter.BiancaTheatreManager.IsHaveReward()
if not check then
XUiManager.TipMsg(XBiancaTheatreConfigs.GetRewardTips(1))
return
end
--local isAdventure = XDataCenter.BiancaTheatreManager.CheckHasAdventure()
--if isAdventure then
-- XUiManager.TipMsg(XBiancaTheatreConfigs.GetRewardTips(2))
-- return
--end
XDataCenter.BiancaTheatreManager.RequestGetAllReward(function()
self:Refresh()
end)
end