Files
Endfield-Data/LuaScripts/UI/Panels/CommonIntro/CommonIntroCtrl.lua
2025-12-02 20:37:18 +07:00

89 lines
1.8 KiB
Lua

local uiCtrl = require_ex('UI/Panels/Base/UICtrl')
local PANEL_ID = PanelId.CommonIntro
CommonIntroCtrl = HL.Class('CommonIntroCtrl', uiCtrl.UICtrl)
CommonIntroCtrl.s_messages = HL.StaticField(HL.Table) << {
}
CommonIntroCtrl.m_pageIndex = HL.Field(HL.Number) << -1
CommonIntroCtrl.m_pageInfos = HL.Field(HL.Userdata)
CommonIntroCtrl.OnCreate = HL.Override(HL.Any) << function(self, arg)
self.view.btnBack.onClick:AddListener(function()
self:PlayAnimationOutAndClose()
end)
self.view.controllerHintPlaceholder:InitControllerHintPlaceholder({ self.view.inputGroup.groupId })
end
CommonIntroCtrl._ShowIntro = HL.Method(HL.String) << function(self, args)
self.m_pageInfos = Tables.introTable:GetValue(args).dataArray
self.view.pageController:InitPageController(#self.m_pageInfos, function(pageIndex)
self:_OnMovePage(pageIndex)
end)
end
CommonIntroCtrl._OnMovePage = HL.Method(HL.Number) << function(self, pageIndex)
self.m_pageIndex = pageIndex
local pageInfo = self.m_pageInfos[CSIndex(pageIndex)]
self.view.panel:LoadSprite(pageInfo.imagePath)
self.view.titleTxt1:SetAndResolveTextStyle(pageInfo.title)
self.view.titleTxt2:SetAndResolveTextStyle(pageInfo.desc)
self:PlayAnimation("racingdungeonentrypop_switch")
end
CommonIntroCtrl.ShowIntro = HL.StaticMethod(HL.String) << function(args)
local valid = CommonIntroCtrl._CheckArgs(args)
if not valid then
logger.error("[CommonIntro] ShowIntro: Invalid args: " .. tostring(args))
return
end
local ctrl = CommonIntroCtrl.AutoOpen(PANEL_ID, nil, false)
ctrl:_ShowIntro(args)
end
CommonIntroCtrl._CheckArgs = HL.StaticMethod(HL.String).Return(HL.Boolean) << function(args)
local valid = Tables.introTable:ContainsKey(args)
return valid
end
HL.Commit(CommonIntroCtrl)