5e0d58cfad
EN: 1.2.0.60 CN: 1.2.0.61 JP: 1.2.0.63 KR: 1.2.0.67
118 lines
4.2 KiB
Lua
118 lines
4.2 KiB
Lua
local MessageBoxManager = {}
|
|
local objMessageBoxPanel, objPopupTipsPanel, objSideBannerPanel, objOrderWaitPanel
|
|
local OnEvent_Open = function(_, mapMsg, sLanguageId)
|
|
if type(mapMsg) == "string" then
|
|
mapMsg = {
|
|
nType = AllEnum.MessageBox.Tips,
|
|
bPositive = false,
|
|
sContent = mapMsg
|
|
}
|
|
elseif mapMsg == true then
|
|
mapMsg = {
|
|
nType = AllEnum.MessageBox.Tips,
|
|
bPositive = true,
|
|
sContent = ConfigTable.GetUIText(sLanguageId)
|
|
}
|
|
end
|
|
if mapMsg.nType == AllEnum.MessageBox.Tips then
|
|
if objPopupTipsPanel == nil then
|
|
local PopupTipsPanel = require("Game.UI.MessageBoxEx.PopupTipsPanel")
|
|
objPopupTipsPanel = PopupTipsPanel.new(AllEnum.UI_SORTING_ORDER.MessageBoxOverlay, 0, mapMsg)
|
|
objPopupTipsPanel:_PreEnter()
|
|
objPopupTipsPanel:_Enter()
|
|
else
|
|
EventManager.Hit("ContinuePopupTips", mapMsg)
|
|
end
|
|
elseif objMessageBoxPanel == nil then
|
|
local MessageBoxPanel = require("Game.UI.MessageBoxEx.MessageBoxPanel")
|
|
objMessageBoxPanel = MessageBoxPanel.new(AllEnum.UI_SORTING_ORDER.MessageBox, 0, mapMsg)
|
|
objMessageBoxPanel:_PreEnter()
|
|
objMessageBoxPanel:_Enter()
|
|
else
|
|
EventManager.Hit("ContinueMessageBox", mapMsg)
|
|
end
|
|
end
|
|
local OnEvent_ClosePopupTips = function(_)
|
|
if objPopupTipsPanel then
|
|
objPopupTipsPanel:_PreExit()
|
|
objPopupTipsPanel:_Exit()
|
|
objPopupTipsPanel:_Destroy()
|
|
objPopupTipsPanel = nil
|
|
end
|
|
end
|
|
local OnEvent_CloseMessageBox = function(_)
|
|
if objMessageBoxPanel then
|
|
objMessageBoxPanel:_PreExit()
|
|
objMessageBoxPanel:_Exit()
|
|
objMessageBoxPanel:_Destroy()
|
|
objMessageBoxPanel = nil
|
|
end
|
|
end
|
|
local OpenSideBannerPanel = function(mapMsg)
|
|
local SideBannerPanel = require("Game.UI.SideBanner.SideBannerPanel")
|
|
objSideBannerPanel = SideBannerPanel.new(AllEnum.UI_SORTING_ORDER.MessageBoxOverlay, 0, mapMsg)
|
|
objSideBannerPanel:_PreEnter()
|
|
objSideBannerPanel:_Enter()
|
|
end
|
|
local OnEvent_CloseSideBanner = function(_)
|
|
if objSideBannerPanel then
|
|
objSideBannerPanel:_PreExit()
|
|
objSideBannerPanel:_Exit()
|
|
objSideBannerPanel:_Destroy()
|
|
objSideBannerPanel = nil
|
|
end
|
|
end
|
|
local OnEvent_OpenSideBanner = function(_, mapMsg)
|
|
if objSideBannerPanel == nil then
|
|
OpenSideBannerPanel(mapMsg)
|
|
else
|
|
OnEvent_CloseSideBanner()
|
|
OpenSideBannerPanel(mapMsg)
|
|
end
|
|
end
|
|
local OpenOrderWaitPanel = function(mapMsg)
|
|
local OrderWaitPanel = require("Game.UI.Mall.OrderWaitPanel")
|
|
objOrderWaitPanel = OrderWaitPanel.new(AllEnum.UI_SORTING_ORDER.MessageBox, 0, mapMsg)
|
|
objOrderWaitPanel:_PreEnter()
|
|
objOrderWaitPanel:_Enter()
|
|
end
|
|
local OnEvent_CloseOrderWait = function(_)
|
|
if objOrderWaitPanel then
|
|
objOrderWaitPanel:_PreExit()
|
|
objOrderWaitPanel:_Exit()
|
|
objOrderWaitPanel:_Destroy()
|
|
objOrderWaitPanel = nil
|
|
end
|
|
end
|
|
local OnEvent_OpenOrderWait = function(_, mapMsg)
|
|
if objOrderWaitPanel == nil then
|
|
OpenOrderWaitPanel(mapMsg)
|
|
else
|
|
OnEvent_CloseOrderWait()
|
|
OpenOrderWaitPanel(mapMsg)
|
|
end
|
|
end
|
|
local function Uninit(_)
|
|
EventManager.Remove(EventId.OpenMessageBox, MessageBoxManager, OnEvent_Open)
|
|
EventManager.Remove(EventId.CloseMessageBox, MessageBoxManager, OnEvent_CloseMessageBox)
|
|
EventManager.Remove("OpenSideBanner", MessageBoxManager, OnEvent_OpenSideBanner)
|
|
EventManager.Remove("CloseSideBanner", MessageBoxManager, OnEvent_CloseSideBanner)
|
|
EventManager.Remove("OpenOrderWait", MessageBoxManager, OnEvent_OpenOrderWait)
|
|
EventManager.Remove("CloseOrderWait", MessageBoxManager, OnEvent_CloseOrderWait)
|
|
EventManager.Remove(EventId.CSLuaManagerShutdown, MessageBoxManager, Uninit)
|
|
end
|
|
function MessageBoxManager.CheckOrderWaitOpen()
|
|
return objOrderWaitPanel ~= nil
|
|
end
|
|
function MessageBoxManager.Init()
|
|
EventManager.Add(EventId.OpenMessageBox, MessageBoxManager, OnEvent_Open)
|
|
EventManager.Add(EventId.CloseMessageBox, MessageBoxManager, OnEvent_CloseMessageBox)
|
|
EventManager.Add(EventId.ClosePopupTips, MessageBoxManager, OnEvent_ClosePopupTips)
|
|
EventManager.Add("OpenSideBanner", MessageBoxManager, OnEvent_OpenSideBanner)
|
|
EventManager.Add("CloseSideBanner", MessageBoxManager, OnEvent_CloseSideBanner)
|
|
EventManager.Add("OpenOrderWait", MessageBoxManager, OnEvent_OpenOrderWait)
|
|
EventManager.Add("CloseOrderWait", MessageBoxManager, OnEvent_CloseOrderWait)
|
|
EventManager.Add(EventId.CSLuaManagerShutdown, MessageBoxManager, Uninit)
|
|
end
|
|
return MessageBoxManager
|