Files
StellaSora_DataLua/lua/game/ui/mall/mallpopupctrl.lua
T
SL1900 5e0d58cfad Initial version - 1.2.0.60
EN: 1.2.0.60
CN: 1.2.0.61
JP: 1.2.0.63
KR: 1.2.0.67
2025-12-03 01:00:00 +09:00

89 lines
2.5 KiB
Lua

local MallPopupCtrl = class("MallPopupCtrl", BaseCtrl)
MallPopupCtrl._mapNodeConfig = {
TopBar = {
sNodeName = "TopBarPanel",
sCtrlName = "Game.UI.TopBarEx.TopBarCtrl"
},
blur = {
sNodeName = "t_fullscreen_blur_blue"
},
aniBlur = {
sNodeName = "t_fullscreen_blur_blue",
sComponentName = "Animator"
},
btnCloseDatail = {
sNodeName = "snapshot",
sComponentName = "Button",
callback = "OnBtnClick_CloseDetail"
},
PackageDetail = {
sNodeName = "---PackageDetail---",
sCtrlName = "Game.UI.Mall.MallPackageDetailCtrl"
},
ShopDetail = {
sNodeName = "---ShopDetail---",
sCtrlName = "Game.UI.Mall.MallShopDetailCtrl"
}
}
MallPopupCtrl._mapEventConfig = {
MallCloseDetail = "OnBtnClick_CloseDetail",
MallOrderClear = "OnBtnClick_CloseDetail"
}
function MallPopupCtrl:Open()
self._mapNode.blur:SetActive(true)
if self.nType == AllEnum.MallToggle.Package then
self._mapNode.PackageDetail:Refresh(self.mapData)
self._mapNode.TopBar:CreateCoin(self.tbCoin, true)
elseif self.nType == AllEnum.MallToggle.Shop then
self._mapNode.ShopDetail:Refresh(self.mapData, self._mapNode.TopBar)
self._mapNode.TopBar:CreateCoin(self.tbCoin, true)
end
end
function MallPopupCtrl:ClosePackageDetail()
if self._mapNode.PackageDetail.gameObject.activeSelf == false then
return
end
self._mapNode.PackageDetail:PlayOutAni()
self:CloseOther()
end
function MallPopupCtrl:CloseShopDetail()
if self._mapNode.ShopDetail.gameObject.activeSelf == false then
return
end
self._mapNode.ShopDetail:PlayOutAni()
self:CloseOther()
end
function MallPopupCtrl:CloseOther()
self._mapNode.TopBar.gameObject:SetActive(false)
self._mapNode.aniBlur:SetTrigger("tOut")
self:AddTimer(1, 0.2, function()
EventManager.Hit(EventId.ClosePanel, PanelId.MallPopup)
end, true, true, true)
EventManager.Hit(EventId.TemporaryBlockInput, 0.2)
end
function MallPopupCtrl:Awake()
self._mapNode.PackageDetail.gameObject:SetActive(false)
self._mapNode.ShopDetail.gameObject:SetActive(false)
local tbParam = self:GetPanelParam()
if type(tbParam) == "table" then
self.nType = tbParam[1]
self.mapData = tbParam[2]
self.tbCoin = tbParam[3]
end
end
function MallPopupCtrl:OnEnable()
self:Open()
end
function MallPopupCtrl:OnDisable()
end
function MallPopupCtrl:OnDestroy()
end
function MallPopupCtrl:OnBtnClick_CloseDetail()
if self.nType == AllEnum.MallToggle.Package then
self:ClosePackageDetail()
elseif self.nType == AllEnum.MallToggle.Shop then
self:CloseShopDetail()
end
end
return MallPopupCtrl