Files
StellaSora_DataLua/lua/game/ui/mall/mallctrl.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

144 lines
4.3 KiB
Lua

local MallCtrl = class("MallCtrl", BaseCtrl)
MallCtrl._mapNodeConfig = {
TopBar = {
sNodeName = "TopBarPanel",
sCtrlName = "Game.UI.TopBarEx.TopBarCtrl"
},
tog = {
nCount = 5,
sComponentName = "UIButton",
callback = "OnBtnClick_ChangeSheet"
},
ctrlTog = {
nCount = 5,
sNodeName = "tog",
sCtrlName = "Game.UI.TemplateEx.TemplateToggleCtrl"
},
Gem = {
sNodeName = "---Gem---",
sCtrlName = "Game.UI.Mall.MallGemCtrl"
},
Package = {
sNodeName = "---Package---",
sCtrlName = "Game.UI.Mall.MallPackageCtrl"
},
MonthlyCard = {
sNodeName = "---MonthlyCard---",
sCtrlName = "Game.UI.Mall.MallMonthlyCardCtrl"
},
Shop = {
sNodeName = "---Shop---",
sCtrlName = "Game.UI.Mall.MallShopCtrl"
},
Skin = {
sNodeName = "---Skin---",
sCtrlName = "Game.UI.Mall.MallSkinCtrl"
},
btnCharShard = {
sNodeName = "btnCharShard",
sComponentName = "UIButton",
callback = "OnBtnClick_OpenCharShardPanel"
},
aniMonthlyCard = {
sNodeName = "---MonthlyCard---",
sComponentName = "Animator"
},
redDotTog = {nCount = 4}
}
MallCtrl._mapEventConfig = {
OpenMallTog = "OnEvent_OpenMallTog",
MallChangeTopCoin = "OnEvent_ChangeTopCoin"
}
function MallCtrl:RegisterRedDot()
RedDotManager.RegisterNode(RedDotDefine.Mall_Free, nil, self._mapNode.redDotTog[2])
end
function MallCtrl:SwitchTog()
self._mapNode.Gem.gameObject:SetActive(self._panel.nCurTog == AllEnum.MallToggle.Gem)
self._mapNode.Package.gameObject:SetActive(self._panel.nCurTog == AllEnum.MallToggle.Package)
self._mapNode.MonthlyCard.gameObject:SetActive(self._panel.nCurTog == AllEnum.MallToggle.MonthlyCard)
self._mapNode.Shop.gameObject:SetActive(self._panel.nCurTog == AllEnum.MallToggle.Shop)
self._mapNode.Skin.gameObject:SetActive(self._panel.nCurTog == AllEnum.MallToggle.Skin)
if self._panel.nCurTog == AllEnum.MallToggle.Gem then
self._mapNode.Gem:Refresh()
self._mapNode.TopBar:CreateCoin({
AllEnum.CoinItemId.Jade,
AllEnum.CoinItemId.FREESTONE
})
elseif self._panel.nCurTog == AllEnum.MallToggle.Package then
self._mapNode.Package:ResetTab(self.nTabParam)
self._mapNode.Package:Refresh(true)
self._mapNode.TopBar:CreateCoin({
AllEnum.CoinItemId.FREESTONE
})
elseif self._panel.nCurTog == AllEnum.MallToggle.MonthlyCard then
self._mapNode.MonthlyCard:Refresh()
self._mapNode.TopBar:CreateCoin({
AllEnum.CoinItemId.Jade,
AllEnum.CoinItemId.FREESTONE
})
elseif self._panel.nCurTog == AllEnum.MallToggle.Shop then
self._mapNode.Shop:ResetTab()
self._mapNode.Shop:Refresh(true)
elseif self._panel.nCurTog == AllEnum.MallToggle.Skin then
self._mapNode.Skin:ResetTab()
self._mapNode.Skin:Refresh(true)
end
self:RegisterRedDot()
end
function MallCtrl:PlayTogAni()
if self._panel.nCurTog == AllEnum.MallToggle.MonthlyCard then
self._mapNode.aniMonthlyCard:Play("MonthlyCard_in")
end
end
function MallCtrl:SetDefaultTog()
if self._panel.nCurTog == nil then
self._panel.nCurTog = AllEnum.MallToggle.MonthlyCard
end
for i = 1, 5 do
self._mapNode.ctrlTog[i]:SetDefault(i == self._panel.nCurTog)
end
self:SwitchTog()
end
function MallCtrl:RefreshTogText()
self._mapNode.ctrlTog[1]:SetText(ConfigTable.GetUIText("Mall_Tog_MonthlyCard"))
self._mapNode.ctrlTog[2]:SetText(ConfigTable.GetUIText("Mall_Tog_Package"))
self._mapNode.ctrlTog[3]:SetText(ConfigTable.GetUIText("Mall_Tog_Gem"))
self._mapNode.ctrlTog[4]:SetText(ConfigTable.GetUIText("Mall_Tog_Exchange"))
self._mapNode.ctrlTog[5]:SetText(ConfigTable.GetUIText("Mall_Tog_Skin"))
end
function MallCtrl:FadeIn(bPlayFadeIn)
EventManager.Hit(EventId.SetTransition)
self:PlayTogAni()
end
function MallCtrl:Awake()
self:RefreshTogText()
end
function MallCtrl:OnEnable()
EventManager.Hit("MallCloseDetail")
self:SetDefaultTog()
end
function MallCtrl:OnDisable()
end
function MallCtrl:OnDestroy()
end
function MallCtrl:OnBtnClick_ChangeSheet(btn, nIndex)
if nIndex == self._panel.nCurTog then
return
end
self._mapNode.ctrlTog[nIndex]:SetTrigger(true)
self._mapNode.ctrlTog[self._panel.nCurTog]:SetTrigger(false)
self._panel.nCurTog = nIndex
self:SwitchTog()
self:PlayTogAni()
end
function MallCtrl:OnBtnClick_OpenCharShardPanel(btn)
EventManager.Hit(EventId.OpenPanel, PanelId.CharShardsConvert)
end
function MallCtrl:OnEvent_ChangeTopCoin(tbCoin)
self._mapNode.TopBar:CreateCoin(tbCoin)
end
function MallCtrl:OnEvent_OpenMallTog(nTog)
self:OnBtnClick_ChangeSheet(nil, nTog)
end
return MallCtrl