PGRData/Script/matrix/xui/xuisignin/XUiNewYearSignIn.lua

115 lines
4 KiB
Lua

local XUiNewYearSignIn = XClass(nil, "XUiNewYearSignIn")
function XUiNewYearSignIn:Ctor(ui, rootUi)
self.GameObject = ui.gameObject
self.Transform = ui.transform
self.RootUi = rootUi
XTool.InitUiObject(self)
self:InitAddListen()
self.PanelEffectZhanBu.gameObject:SetActiveEx(false)
self.RewardPanelList = {}
end
function XUiNewYearSignIn:InitAddListen()
self.BtnHelp.CallBack = function()
self:OnBtnHelpClick()
end
self.BtnDivining.CallBack = function()
self:OnBtnDiviningClick()
end
end
function XUiNewYearSignIn:Refresh(signId, isShow)
self.SignId = signId or self.SignId
local todayDiviningState = XDataCenter.SignInManager.GetTodayDiviningState()
--self.PanelEffectZhanBu.gameObject:SetActiveEx(false)
if not todayDiviningState then
self.PanelDiviningGroup.gameObject:SetActiveEx(true)
self.PanelDiviningSignGroup.gameObject:SetActiveEx(false)
XEventManager.DispatchEvent(XEventId.EVENT_SING_IN_OPEN_BTN, true)
return
end
self.PanelEffectGet.gameObject:SetActiveEx(true)
self.PanelDiviningGroup.gameObject:SetActiveEx(false)
self.PanelDiviningSignGroup.gameObject:SetActiveEx(true)
local todayRewardData = XDataCenter.SignInManager.GetDiviningTodayData()
local rewardConfig = XSignInConfigs.GetDiviningSignRewardConfig(todayRewardData.DailyLotteryRewardId)
self.TxtSign.text = rewardConfig.RewardText
self.TxtSign.text = string.gsub(self.TxtSign.text, "\\n", "\n")
if rewardConfig.RewardSignPath then
self.ImgSign:SetRawImage(rewardConfig.RewardSignPath)
else
self.ImgSign.gameObject:SetActiveEx(false)
end
self.TxtAward.text = CS.XTextManager.GetText("DiviningRewardsText")
--显示奖励
local rewards = XRewardManager.GetRewardList(rewardConfig.RewardId)
if not rewards then
return
end
for i = 1, #rewards do
local panel = self.RewardPanelList[i]
if not panel then
if #self.RewardPanelList == 0 then
panel = XUiGridCommon.New(self.RootUi, self.GridItem)
else
local ui = CS.UnityEngine.Object.Instantiate(self.GridItem)
ui.transform:SetParent(self.PanelAwardContent, false)
panel = XUiGridCommon.New(self.RootUi, ui)
end
table.insert(self.RewardPanelList, panel)
end
panel:Refresh(rewards[i])
end
XEventManager.DispatchEvent(XEventId.EVENT_SING_IN_OPEN_BTN, true)
end
function XUiNewYearSignIn:OnBtnHelpClick()
XLuaUiManager.Open("UiDiviningLog", self.SignId)
end
function XUiNewYearSignIn:OnBtnDiviningClick()
local id = XDataCenter.SignInManager.GetDiviningActivityId() or self.SignId
XDataCenter.SignInManager.RequestNewYearDivining(id, function()
self.PanelEffectZhanBu.gameObject:SetActiveEx(false)
self.PanelEffectZhanBu.gameObject:SetActiveEx(true)
self.PanelAnimationZhanBu.gameObject:SetActiveEx(true)
self.DrawTipTimeId = CS.XScheduleManager.ScheduleOnce(function ()
if self.PanelAnimationZhanBu:Exist() then
self.PanelAnimationZhanBu.gameObject:SetActiveEx(false)
end
if self.PanelEffectZhanBu:Exist() then
self.PanelEffectZhanBu.gameObject:SetActiveEx(false)
end
end, 2000)
self:Refresh()
end)
end
function XUiNewYearSignIn:OnShow()
XEventManager.AddEventListener(XEventId.EVENT_CARD_REFRESH_WELFARE_BTN, self.ForceUpdate, self)
end
function XUiNewYearSignIn:ForceUpdate()
if self.SignId then
self:Refresh(self.SignId)
end
end
function XUiNewYearSignIn:OnHide()
if self.DrawTipTimeId then
CS.XScheduleManager.UnSchedule(self.DrawTipTimeId)
self.DrawTipTimeId = nil
end
XEventManager.RemoveEventListener(XEventId.EVENT_CARD_REFRESH_WELFARE_BTN, self.ForceUpdate, self)
end
return XUiNewYearSignIn