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

57 lines
2.3 KiB
Lua

local XUiBiancaTheatreItemGrid = require("XUi/XUiBiancaTheatre/Common/XUiBiancaTheatreItemGrid")
local XUiRewardEventNodePanel = XClass(nil, "XUiRewardEventNodePanel")
function XUiRewardEventNodePanel:Ctor(ui, rootUi)
XUiHelper.InitUiClass(self, ui)
self.RootUi = rootUi
-- XALocalRewardEventNode | XAGlobalRewardEventNode
self.Node = nil
XUiHelper.RegisterClickEvent(self, self.BtnOK, self.OnBtnComfirmClicked)
self.PanelIcon = XUiHelper.TryGetComponent(ui.transform, "PanelIcon")
self.Bg = XUiHelper.TryGetComponent(ui.transform, "Bg")
self.ItemGridList = {}
end
-- node : XALocalRewardEventNode | XAGlobalRewardEventNode
function XUiRewardEventNodePanel:SetData(node)
self.Node = node
self.TxtContent.text = node:GetDesc()
self.BtnOK:SetName(node:GetBtnConfirmText())
if self.Node.EventConfig.StepRewardItemType == XBiancaTheatreConfigs.XEventStepItemType.OpenVision or
self.Node.EventConfig.StepRewardItemType == XBiancaTheatreConfigs.XEventStepItemType.ObtainVision
then
self.Bg.gameObject:SetActiveEx(false)
self.PanelReward.gameObject:SetActiveEx(false)
return
end
-- 创建奖励
local itemIdList = node:GetItemIdList()
local itemType = node:GetStepRewardItemType()
local count
for i, itemId in ipairs(itemIdList) do
count = node:GetItemCount(i)
local itemGrid = self.ItemGridList[i]
if not itemGrid then
local gridPanel = i ~= 1 and XUiHelper.Instantiate(self.PanelReward, self.PanelIcon.transform)
itemGrid = XUiBiancaTheatreItemGrid.New(i == 1 and self.GridReward or XUiHelper.TryGetComponent(gridPanel.transform, "Grid256New"), nil, gridPanel)
self.ItemGridList[i] = itemGrid
end
itemGrid:Refresh(itemId, nil, count, itemType)
if itemGrid.RootUi then
itemGrid.RootUi.gameObject:SetActiveEx(true)
end
end
for i = #itemIdList + 1, #self.ItemGridList do
if self.ItemGridList[i].RootUi then
self.ItemGridList[i].RootUi.gameObject:SetActiveEx(false)
end
end
end
function XUiRewardEventNodePanel:OnBtnComfirmClicked()
self.Node:RequestTriggerNode(function(newEventNode)
self.RootUi:RefreshNode(newEventNode)
end)
end
return XUiRewardEventNodePanel