115 lines
4 KiB
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 |