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

85 lines
1.4 KiB
Lua

local uiCtrl = require_ex('UI/Panels/Base/UICtrl')
local PANEL_ID = PanelId.LeadingCharacter
local PHASE_ID = PhaseId.LeadingCharacter
LeadingCharacterCtrl = HL.Class('LeadingCharacterCtrl', uiCtrl.UICtrl)
LeadingCharacterCtrl.s_messages = HL.StaticField(HL.Table) << {
}
LeadingCharacterCtrl.m_callback = HL.Field(HL.Any)
LeadingCharacterCtrl.m_inited = HL.Field(HL.Boolean) << false
LeadingCharacterCtrl.m_isCloseCalled = HL.Field(HL.Boolean) << false
LeadingCharacterCtrl.OnOpen = HL.StaticMethod(HL.Table) << function(arg)
PhaseManager:OpenPhaseFast(PHASE_ID, arg)
end
LeadingCharacterCtrl.OnShow = HL.Override() << function(self)
self.view.mediaDeco:PlayInAnimation(function()
self.m_inited = true
end)
end
LeadingCharacterCtrl.OnCreate = HL.Override(HL.Any) << function(self, arg)
self.m_inited = false
local callback = unpack(arg)
self.m_callback = callback
self.view.btnClose.onClick:AddListener(function()
if not self.m_inited then
return
end
if self.m_isCloseCalled then
return
end
self.m_isCloseCalled = true
self.view.mediaDeco:PlayOutAnimation(function()
self:Exit()
end)
end)
end
LeadingCharacterCtrl.Exit = HL.Method() << function(self)
PhaseManager:ExitPhaseFast(PHASE_ID)
if self.m_callback then
self.m_callback()
end
end
HL.Commit(LeadingCharacterCtrl)