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

97 lines
1.6 KiB
Lua

local uiCtrl = require_ex('UI/Panels/Base/UICtrl')
local PANEL_ID = PanelId.CommonBlackOut
CommonBlackOutCtrl = HL.Class('CommonBlackOutCtrl', uiCtrl.UICtrl)
CommonBlackOutCtrl.s_messages = HL.StaticField(HL.Table) << {
}
CommonBlackOutCtrl.OnCreate = HL.Override(HL.Any) << function(self, arg)
end
CommonBlackOutCtrl.m_args = HL.Field(HL.Table)
CommonBlackOutCtrl.StartCommonBlackOut = HL.StaticMethod(HL.Table) << function(args)
local self = UIManager:AutoOpen(PANEL_ID)
self.m_args = args
self:_StartTransition()
end
CommonBlackOutCtrl._StartTransition = HL.Method() << function(self)
self.view.mask.color = Color(0, 0, 0, 0)
self.view.mask:DOKill()
local t = self.view.mask:DOFade(1, self.m_args.fadeInTime or 0.3)
t:OnComplete(function()
self:_OnFadeInComplete()
end)
end
CommonBlackOutCtrl._OnFadeInComplete = HL.Method() << function(self)
if self.m_args.onFadeInComplete then
self.m_args.onFadeInComplete()
end
if self.m_args.fadeOutTime and self.m_args.fadeOutTime > 0 then
local t = self.view.mask:DOFade(0, self.m_args.fadeOutTime)
t:OnComplete(function()
self:_OnFadeOutComplete()
end)
else
self:_OnFadeOutComplete()
end
end
CommonBlackOutCtrl._OnFadeOutComplete = HL.Method() << function(self)
local onComplete = self.m_args.onFadeOutComplete
if onComplete then
onComplete()
end
self:_StartCoroutine(function()
coroutine.step()
coroutine.step()
self:Close()
end)
end
HL.Commit(CommonBlackOutCtrl)