PGRData/Resources/Scripts/XUi/XUiDraw/XUiNewGridDrawBanner.lua
2022-12-26 14:06:01 +05:30

172 lines
No EOL
5.8 KiB
Lua
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

local XUiNewGridDrawBanner = XClass(nil, "XUiNewGridDrawBanner")
function XUiNewGridDrawBanner:Ctor(ui, data, base)
self.GameObject = ui.gameObject
self.Transform = ui.transform
XTool.InitUiObject(self)
self.Data = data
self.Base = base
self.BtnSkipList = {}
self:TryGetComponent()
self:SetButtonCallBack()
self:SetUpBottomTimes()
self:SetUpRewardPreview()
self:SetBannerTime()
self:SetSwitchInfo()
self:SetNewHandTag()
end
function XUiNewGridDrawBanner:TryGetComponent()
if self.BtnGo then
self.BtnGo = self.BtnGo.transform:GetComponent("XUiButton")
end
if self.MingyunSelectChoukacounts then
self.MingyunSelectChoukacounts = self.MingyunSelectChoukacounts.transform:GetComponent("Text")
end
if self.MingyunNomalChoukacounts then
self.MingyunNomalChoukacounts = self.MingyunNomalChoukacounts.transform:GetComponent("Text")
end
if self.PutongSelectChoukacounts then
self.PutongSelectChoukacounts = self.PutongSelectChoukacounts.transform:GetComponent("Text")
end
if self.PutongNormalChoukacounts then
self.PutongNormalChoukacounts = self.PutongNormalChoukacounts.transform:GetComponent("Text")
end
if self.PifuChoukaCounts then
self.PifuChoukaCounts = self.PifuChoukaCounts.transform:GetComponent("Text")
end
if self.TimeTxt then
self.TimeTxt = self.TimeTxt.transform:GetComponent("Text")
end
if self.TxtSwitch then
self.TxtSwitch = self.TxtSwitch.transform:GetComponent("Text")
end
-- 隐藏所有的跳转按钮
local index = 1
while true do
local btnSkip = self[string.format("BtnSkip%s", tostring(index))]
if not btnSkip then
break
end
btnSkip = btnSkip.transform:GetComponent("Button")
btnSkip.gameObject:SetActiveEx(false)
self.BtnSkipList[index] = btnSkip
index = index + 1
end
end
function XUiNewGridDrawBanner:SetButtonCallBack()
if self.BtnGo then
self.BtnGo.CallBack = function()
self:OnBtnGoClick()
end
end
-- 添加跳转逻辑并显示跳转按钮
local skipList = XDrawConfigs.GetDrawSkipList(self.Data.Id)
if skipList and next(skipList) then
for i = 1, #skipList do
if not self.BtnSkipList[i] then
XLog.Warning(string.format("XUiNewGridDrawBanner:TryGetComponent()函数警告DrawGroupId:%s 预制界面的跳转按钮不足,第%s个跳转:%s 与后面配置的跳转无法生效",
tostring(self.Data.Id), tostring(i), tostring(skipList[i])))
break
end
self.BtnSkipList[i].CallBack = function()
XFunctionManager.SkipInterface(skipList[i])
end
self.BtnSkipList[i].gameObject:SetActiveEx(true)
end
end
end
function XUiNewGridDrawBanner:OnBtnGoClick()
self.Data:GoDraw(function ()
self.Base:MarkCurNewTag()
end)
end
function XUiNewGridDrawBanner:SetUpBottomTimes()
if self.MingyunSelectChoukacounts then
self.MingyunSelectChoukacounts.text = self:GetBottomText(XDrawConfigs.GroupType.Destiny)
end
if self.MingyunNomalChoukacounts then
self.MingyunNomalChoukacounts.text = self:GetBottomText(XDrawConfigs.GroupType.Destiny)
end
if self.PutongSelectChoukacounts then
self.PutongSelectChoukacounts.text = self:GetBottomText(XDrawConfigs.GroupType.Normal)
end
if self.PutongNormalChoukacounts then
self.PutongNormalChoukacounts.text = self:GetBottomText(XDrawConfigs.GroupType.Normal)
end
if self.PifuChoukaCounts then
self.PifuChoukaCounts.text = self.Data:GetBottomText()
end
end
function XUiNewGridDrawBanner:GetBottomText(type)
local relationGroupData = self.Base:GetRelationGroupData(self.Data:GetId())
local bottomText = "———"
local count = 0
if relationGroupData and relationGroupData:GetGroupType() == type then
bottomText = relationGroupData:GetBottomText()
count = count + 1
end
if self.Data:GetGroupType() == type then
bottomText = self.Data:GetBottomText()
count = count + 1
end
if count == 2 then
XLog.Error("Client/Draw/DrawGroupRelation.tab's Data Is Error: NormalGroupId and DestinyGroupId Is Same Type")
end
return bottomText
end
function XUiNewGridDrawBanner:SetUpRewardPreview()
if self.Grid256 then
local grid = XUiGridCommon.New(self.Base, self.Grid256)
local rewardData = self.Data:GetTopRewardData()
grid:Refresh(rewardData:GetTemplateId())
if self.ImgGet then
self.ImgGet.gameObject:SetActiveEx(rewardData:GetIsGeted())
end
end
end
function XUiNewGridDrawBanner:SetBannerTime()
local beginTime = self.Data:GetBannerBeginTime() or 0
local endTime = self.Data:GetBannerEndTime() or 0
if self.TimeTxt then
self.TimeTxt.gameObject:SetActiveEx(beginTime ~= 0 and endTime ~= 0)
local beginTimeStr = XTime.TimestampToGameDateTimeString(beginTime, "MM/dd")
local endTimeStr = XTime.TimestampToGameDateTimeString(endTime, "MM/dd HH:mm")
self.TimeTxt.text = string.format("%s-%s", beginTimeStr, endTimeStr)
end
if self.TimeDetail then
self.TimeDetail.gameObject:SetActiveEx(beginTime ~= 0 and endTime ~= 0)
end
end
function XUiNewGridDrawBanner:SetNewHandTag()
if self.PanelNewHand then
self.PanelNewHand.gameObject:SetActiveEx(self.Data:GetMaxBottomTimes() == self.Data:GetNewHandBottomCount())
end
if self.PanelNewHandTop then
self.PanelNewHandTop.gameObject:SetActiveEx(self.Data:GetMaxBottomTimes() == self.Data:GetNewHandBottomCount())
end
end
function XUiNewGridDrawBanner:SetSwitchInfo()
if self.TxtSwitch then
self.TxtSwitch.text = self.Data:GetSwitchText()
end
end
return XUiNewGridDrawBanner