Files
SL1900 46f967a584 Update - 1.6.0.84
EN: 1.6.0.84
CN: 1.6.0.87
JP: 1.6.0.88
KR: 1.6.0.91
2026-02-04 13:00:00 +09:00

70 lines
2.1 KiB
Lua

local PhonePopUpCtrl = class("PhonePopUpCtrl", BaseCtrl)
PhonePopUpCtrl._mapNodeConfig = {
imgBlurredBg = {sComponentName = "GameObject"},
goContent = {},
animRoot = {
sNodeName = "----SafeAreaRoot----",
sComponentName = "Animator"
},
goChat = {
sCtrlName = "Game.UI.Phone.Chat.PhoneChatCtrl"
},
btnClose = {
sComponentName = "UIButton",
callback = "OnBtnClick_Close"
},
btnMask = {
sComponentName = "Empty4Raycast"
}
}
PhonePopUpCtrl._mapEventConfig = {}
function PhonePopUpCtrl:Awake()
local param = self:GetPanelParam()
if type(param) == "table" then
self.nChatId = param[1]
self.bRestart = param[2]
self.callback = param[3]
end
end
function PhonePopUpCtrl:OnEnable()
self._mapNode.goContent.gameObject:SetActive(false)
self._mapNode.imgBlurredBg.gameObject:SetActive(true)
local wait = function()
coroutine.yield(CS.UnityEngine.WaitForEndOfFrame())
self._mapNode.goContent.gameObject:SetActive(true)
local nAnimLength = NovaAPI.GetAnimClipLength(self._mapNode.animRoot, {
"PhonePopUpPanel_in"
})
local callback = function()
local chatCfg = ConfigTable.GetData("Chat", self.nChatId)
self.nAddressId = chatCfg.AddressBookId
local addressData = PlayerData.Phone:GetAddressBookData(self.nAddressId)
if nil ~= addressData then
self._mapNode.goChat:SetChatContent(addressData, self.nChatId, self.bRestart)
self._mapNode.btnMask.enabled = false
end
end
self:AddTimer(1, nAnimLength, callback, true, true, true)
EventManager.Hit(EventId.TemporaryBlockInput, nAnimLength)
end
cs_coroutine.start(wait)
end
function PhonePopUpCtrl:OnDisable()
end
function PhonePopUpCtrl:OnDestroy()
if nil ~= self.callback then
self.callback()
end
end
function PhonePopUpCtrl:OnBtnClick_Close()
local nAnimLength = NovaAPI.GetAnimClipLength(self._mapNode.animRoot, {
"PhonePopUpPanel_out"
})
self._mapNode.animRoot:Play("PhonePopUpPanel_out")
EventManager.Hit(EventId.TemporaryBlockInput, nAnimLength)
self:AddTimer(1, nAnimLength, function()
EventManager.Hit(EventId.ClosePanel, PanelId.PhonePopUp)
end, true, true, true, true)
end
return PhonePopUpCtrl