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

104 lines
1.8 KiB
Lua

local uiCtrl = require_ex('UI/Panels/Base/UICtrl')
local PANEL_ID = PanelId.FriendlyTips
local PHASE_ID = PhaseId.FriendlyTips
FriendlyTipsCtrl = HL.Class('FriendlyTipsCtrl', uiCtrl.UICtrl)
FriendlyTipsCtrl.s_messages = HL.StaticField(HL.Table) << {
}
FriendlyTipsCtrl.m_callback = HL.Field(HL.Any)
FriendlyTipsCtrl.m_inited = HL.Field(HL.Boolean) << false
FriendlyTipsCtrl.m_isCloseCalled = HL.Field(HL.Boolean) << false
FriendlyTipsCtrl.OnOpen = HL.StaticMethod(HL.Table) << function(arg)
PhaseManager:OpenPhaseFast(PHASE_ID, arg)
end
FriendlyTipsCtrl.OnShow = HL.Override() << function(self)
self.view.mediaDeco:PlayInAnimation(function()
self.m_inited = true
end)
end
FriendlyTipsCtrl.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()
self:_OnClickCloseBtn()
end)
self.view.btnCloseFake.onClick:AddListener(function()
self:_OnClickCloseBtn()
end)
self.view.controllerHintPlaceholder:InitControllerHintPlaceholder({self.view.inputGroup.groupId})
end
FriendlyTipsCtrl._OnClickCloseBtn = HL.Method() << function(self)
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
FriendlyTipsCtrl.Exit = HL.Method() << function(self)
PhaseManager:ExitPhaseFast(PHASE_ID)
if self.m_callback then
self.m_callback()
end
end
FriendlyTipsCtrl._OnOpenFriendlyTips = HL.StaticMethod(HL.Table) << function(arg)
PhaseManager:OpenPhaseFast(PHASE_ID, arg)
end
HL.Commit(FriendlyTipsCtrl)