5e0d58cfad
EN: 1.2.0.60 CN: 1.2.0.61 JP: 1.2.0.63 KR: 1.2.0.67
86 lines
3.0 KiB
Lua
86 lines
3.0 KiB
Lua
local LoginRewardPopUpCtrl = class("LoginRewardPopUpCtrl", BaseCtrl)
|
|
local GameResourceLoader = require("Game.Common.Resource.GameResourceLoader")
|
|
local ResTypeAny = GameResourceLoader.ResType.Any
|
|
LoginRewardPopUpCtrl._mapNodeConfig = {
|
|
imgBlurredBg = {},
|
|
imgBlurMask = {},
|
|
rtContent = {
|
|
sNodeName = "---Content---",
|
|
sComponentName = "RectTransform"
|
|
}
|
|
}
|
|
LoginRewardPopUpCtrl._mapEventConfig = {
|
|
RefreshLoginRewardPanel = "OnEvent_RefreshLoginRewardPanel"
|
|
}
|
|
LoginRewardPopUpCtrl._mapRedDotConfig = {}
|
|
local sPrefabFolder = "UI_Activity/%s.prefab"
|
|
function LoginRewardPopUpCtrl:ShowLoginReward()
|
|
if self.tbActivityList == nil or #self.tbActivityList == 0 then
|
|
EventManager.Hit(EventId.ClosePanel, PanelId.LoginRewardPopUp)
|
|
if nil ~= self.callback then
|
|
self.callback()
|
|
end
|
|
return
|
|
end
|
|
local actData = table.remove(self.tbActivityList, 1)
|
|
self._panel.nActId = actData:GetActId()
|
|
self._panel.actData = PlayerData.Activity:GetActivityDataById(self._panel.nActId)
|
|
if nil ~= self._panel.actData then
|
|
self:RefreshActContent()
|
|
end
|
|
end
|
|
function LoginRewardPopUpCtrl:RefreshActContent()
|
|
self:ResetActContent()
|
|
local mapActCfg = ConfigTable.GetData("LoginRewardControl", self._panel.nActId)
|
|
if mapActCfg ~= nil then
|
|
local sPrefabPath = string.format(sPrefabFolder, mapActCfg.PopUpUIAssets)
|
|
local goObj = self:CreatePrefabInstance(sPrefabPath, self._mapNode.rtContent)
|
|
local sCtrlPath = string.format("Game.UI.Activity.LoginReward.%s.LoginRewardPopUpCtrl_01", "_" .. self._panel.nActId)
|
|
self.curPopUpCtrl = self:BindCtrlByNode(goObj, sCtrlPath)
|
|
self.curPopUpCtrl:RefreshActData()
|
|
end
|
|
end
|
|
function LoginRewardPopUpCtrl:ResetActContent()
|
|
if nil ~= self.curPopUpCtrl then
|
|
destroy(self.curPopUpCtrl.gameObject)
|
|
self:UnbindCtrlByNode(self.curPopUpCtrl)
|
|
end
|
|
self.curPopUpCtrl = nil
|
|
end
|
|
function LoginRewardPopUpCtrl:Awake()
|
|
self:ResetActContent()
|
|
local tbParam = self:GetPanelParam()
|
|
if type(tbParam) == "table" then
|
|
self.tbActivityList = tbParam[1]
|
|
self.callback = tbParam[2]
|
|
end
|
|
end
|
|
function LoginRewardPopUpCtrl:OnEnable()
|
|
self._mapNode.rtContent.gameObject:SetActive(false)
|
|
self._mapNode.imgBlurMask.gameObject:SetActive(false)
|
|
self._mapNode.imgBlurredBg.gameObject:SetActive(true)
|
|
local wait = function()
|
|
coroutine.yield(CS.UnityEngine.WaitForEndOfFrame())
|
|
self._mapNode.imgBlurMask.gameObject:SetActive(true)
|
|
self._mapNode.rtContent.gameObject:SetActive(true)
|
|
self:ShowLoginReward()
|
|
end
|
|
cs_coroutine.start(wait)
|
|
end
|
|
function LoginRewardPopUpCtrl:OnDisable()
|
|
end
|
|
function LoginRewardPopUpCtrl:OnDestroy()
|
|
end
|
|
function LoginRewardPopUpCtrl:OnEvent_RefreshLoginRewardPanel()
|
|
if self.curPopUpCtrl == nil then
|
|
self:ShowLoginReward()
|
|
else
|
|
self._panel.actData = PlayerData.Activity:GetActivityDataById(self._panel.nActId)
|
|
self.curPopUpCtrl:RefreshActData()
|
|
local nAnimTime = self.curPopUpCtrl:PlayOutAnim()
|
|
self:AddTimer(1, nAnimTime, "ShowLoginReward", true, true, true)
|
|
EventManager.Hit(EventId.TemporaryBlockInput, nAnimTime)
|
|
end
|
|
end
|
|
return LoginRewardPopUpCtrl
|