46f967a584
EN: 1.6.0.84 CN: 1.6.0.87 JP: 1.6.0.88 KR: 1.6.0.91
144 lines
4.0 KiB
Lua
144 lines
4.0 KiB
Lua
local MonthlyCardCtrl = class("MonthlyCardCtrl", BaseCtrl)
|
|
local WwiseAudioMgr = CS.WwiseAudioManager.Instance
|
|
local BoxBornTime = 0.9
|
|
local InTime = 0.7
|
|
local OutTime = 0.5
|
|
MonthlyCardCtrl._mapNodeConfig = {
|
|
blur = {
|
|
sNodeName = "t_fullscreen_blur_blue"
|
|
},
|
|
btnBlur = {
|
|
sNodeName = "snapshot",
|
|
sComponentName = "Button",
|
|
callback = "OnBtnClick_Close"
|
|
},
|
|
aniRoot = {
|
|
sNodeName = "----SafeAreaRoot----",
|
|
sComponentName = "Animator"
|
|
},
|
|
txtTime = {sComponentName = "TMP_Text"},
|
|
txtClick = {
|
|
sComponentName = "TMP_Text",
|
|
sLanguageId = "MonthlyCard_Click"
|
|
},
|
|
Model = {
|
|
sCtrlName = "Game.UI.MonthlyCard.MonthlyCardModelCtrl"
|
|
},
|
|
imgTitle = {}
|
|
}
|
|
MonthlyCardCtrl._mapEventConfig = {}
|
|
function MonthlyCardCtrl:Refresh()
|
|
EventManager.Hit(EventId.TemporaryBlockInput, BoxBornTime + InTime)
|
|
local tbStr = {}
|
|
for i = 1, 2 do
|
|
if self.tbMonthlyCard[i] ~= nil then
|
|
ForEachTableLine(DataTable.MallMonthlyCard, function(mapData)
|
|
if mapData.MonthlyCardId == self.tbMonthlyCard[i].nId then
|
|
local str = mapData.Name2 .. orderedFormat(ConfigTable.GetUIText("MonthlyCard_RemainDay"), self.tbMonthlyCard[i].nRemaining)
|
|
table.insert(tbStr, str)
|
|
end
|
|
end)
|
|
end
|
|
end
|
|
local sStr = ""
|
|
for i, v in ipairs(tbStr) do
|
|
if i == #tbStr then
|
|
sStr = sStr .. v
|
|
else
|
|
sStr = sStr .. v .. "\n"
|
|
end
|
|
end
|
|
NovaAPI.SetTMPText(self._mapNode.txtTime, sStr)
|
|
self._mapNode.txtTime.gameObject:SetActive(false)
|
|
self._mapNode.txtClick.gameObject:SetActive(false)
|
|
self._mapNode.imgTitle.gameObject:SetActive(false)
|
|
local wait = function()
|
|
coroutine.yield(CS.UnityEngine.WaitForEndOfFrame())
|
|
self._mapNode.Model:ShowRawImage()
|
|
WwiseAudioMgr:PlaySound("ui_mall_monthlyCard_appear")
|
|
self:PlayInAnim()
|
|
end
|
|
cs_coroutine.start(wait)
|
|
end
|
|
function MonthlyCardCtrl:PlayInAnim()
|
|
local func_in = function()
|
|
self._mapNode.txtTime.gameObject:SetActive(true)
|
|
self._mapNode.txtClick.gameObject:SetActive(true)
|
|
self._mapNode.imgTitle.gameObject:SetActive(true)
|
|
self._mapNode.aniRoot:SetTrigger("tIn")
|
|
end
|
|
self:AddTimer(1, 0.9, func_in, true, true, true)
|
|
end
|
|
function MonthlyCardCtrl:PlayOutAnim()
|
|
self._mapNode.Model:PlayOpenAnim()
|
|
self._mapNode.aniRoot:SetTrigger("tOut")
|
|
EventManager.Hit(EventId.TemporaryBlockInput, OutTime)
|
|
end
|
|
function MonthlyCardCtrl:Awake()
|
|
local tbParam = self:GetPanelParam()
|
|
if type(tbParam) == "table" then
|
|
self.callback = tbParam[2]
|
|
end
|
|
self.tbMonthlyCard = {}
|
|
local tbTempMonthlyCard = {}
|
|
tbTempMonthlyCard = PlayerData.Daily.GetTempMonthlyCardData() or {}
|
|
for i, v in ipairs(tbTempMonthlyCard) do
|
|
table.insert(self.tbMonthlyCard, v)
|
|
end
|
|
PlayerData.Daily.ClearTempMonthlyCardData()
|
|
self.mapReward = {
|
|
tbDst = {},
|
|
tbReward = {},
|
|
tbSpReward = {},
|
|
tbSrc = {}
|
|
}
|
|
for _, v in ipairs(self.tbMonthlyCard) do
|
|
if v.mapReward.tbDst ~= nil then
|
|
for _, v in ipairs(v.mapReward.tbDst) do
|
|
table.insert(self.mapReward.tbDst, v)
|
|
end
|
|
end
|
|
if v.mapReward.tbReward ~= nil then
|
|
for _, v in ipairs(v.mapReward.tbReward) do
|
|
table.insert(self.mapReward.tbReward, v)
|
|
end
|
|
end
|
|
if v.mapReward.tbSpReward ~= nil then
|
|
for _, v in ipairs(v.mapReward.tbSpReward) do
|
|
table.insert(self.mapReward.tbSpReward, v)
|
|
end
|
|
end
|
|
if v.mapReward.tbSrc ~= nil then
|
|
for _, v in ipairs(v.mapReward.tbSrc) do
|
|
table.insert(self.mapReward.tbSrc, v)
|
|
end
|
|
end
|
|
end
|
|
end
|
|
function MonthlyCardCtrl:OnEnable()
|
|
self._mapNode.blur:SetActive(true)
|
|
self:Refresh()
|
|
end
|
|
function MonthlyCardCtrl:OnDisable()
|
|
end
|
|
function MonthlyCardCtrl:OnDestroy()
|
|
end
|
|
function MonthlyCardCtrl:OnBtnClick_Close(btn)
|
|
local func_close_receive = function()
|
|
EventManager.Hit(EventId.ClosePanel, PanelId.MonthlyCard)
|
|
local wait = function()
|
|
coroutine.yield(CS.UnityEngine.WaitForEndOfFrame())
|
|
if self.callback then
|
|
self.callback()
|
|
end
|
|
end
|
|
cs_coroutine.start(wait)
|
|
end
|
|
WwiseAudioMgr:PlaySound("ui_mall_monthlyCard_open")
|
|
self:PlayOutAnim()
|
|
self:AddTimer(1, OutTime, function()
|
|
UTILS.OpenReceiveByReward(self.mapReward, func_close_receive)
|
|
end, true, true, true)
|
|
end
|
|
return MonthlyCardCtrl
|