PGRData/Script/matrix/xui/xuiguildwar/task/XUiGuildWarLzTaskGrid.lua
2024-09-01 22:49:41 +02:00

70 lines
2.4 KiB
Lua

local RewardStatus = XGuildWarConfig.RewardStatus
---@class XUiGuildWarLzTaskGrid
local XUiGuildWarLzTaskGrid = XClass(nil, "XUiGuildWarLzTaskGrid")
function XUiGuildWarLzTaskGrid:Ctor(ui)
self.GameObject = ui.gameObject
self.Transform = ui.transform
XTool.InitUiObject(self)
self._GridList = {}
---@type XUiGuildWarLzTaskGridData
self._Data = false
self.IsAnimation = false
XUiHelper.RegisterClickEvent(self, self.BtnFinish, self.OnClickReceive)
self.GridCommon.gameObject:SetActiveEx(false)
self.Bg = self.Bg or XUiHelper.TryGetComponent(self.Transform, "PanelAnimation/Bg", "RectTransform")
self.Bg2 = self.Bg2 or XUiHelper.TryGetComponent(self.Transform, "PanelAnimation/Bg2", "RectTransform")
end
---@param data XUiGuildWarLzTaskGridData
function XUiGuildWarLzTaskGrid:Update(data)
self._Data = data
local rewardList = data.RewardGoodList
XUiHelper.CreateTemplates(nil, self._GridList, rewardList, XUiGridCommon.New, self.GridCommon, self.GridCommon.transform.parent, function(grid, data)
grid:Refresh(data, nil, nil, false)
end)
if data.Status == RewardStatus.Incomplete then
self.BtnSkip.gameObject:SetActiveEx(true)
self.BtnFinish.gameObject:SetActiveEx(false)
self.ImgComplete.gameObject:SetActiveEx(false)
self.Bg.gameObject:SetActiveEx(true)
self.Bg2.gameObject:SetActiveEx(false)
elseif data.Status == RewardStatus.Complete then
self.BtnSkip.gameObject:SetActiveEx(false)
self.BtnFinish.gameObject:SetActiveEx(true)
self.ImgComplete.gameObject:SetActiveEx(false)
self.Bg.gameObject:SetActiveEx(true)
self.Bg2.gameObject:SetActiveEx(false)
elseif data.Status == RewardStatus.Received then
self.BtnSkip.gameObject:SetActiveEx(false)
self.BtnFinish.gameObject:SetActiveEx(false)
self.ImgComplete.gameObject:SetActiveEx(true)
self.Bg.gameObject:SetActiveEx(false)
self.Bg2.gameObject:SetActiveEx(true)
end
self.TxtTaskName.text = data.Name
end
function XUiGuildWarLzTaskGrid:PlayAnimation()
if self.IsAnimation then
return
end
self.IsAnimation = true
self.GridTaskTimeline:PlayTimelineAnimation()
end
function XUiGuildWarLzTaskGrid:OnClickReceive()
if self._Data then
XDataCenter.GuildWarManager.RequestReceiveBossReward(self._Data.Id, self._Data.ParentUid)
end
end
return XUiGuildWarLzTaskGrid