5e0d58cfad
EN: 1.2.0.60 CN: 1.2.0.61 JP: 1.2.0.63 KR: 1.2.0.67
252 lines
7.0 KiB
Lua
252 lines
7.0 KiB
Lua
local FriendCtrl = class("FriendCtrl", BaseCtrl)
|
|
local Actor2DManager = require("Game.Actor2D.Actor2DManager")
|
|
local Tog = {
|
|
Info = 1,
|
|
List = 2,
|
|
Request = 3
|
|
}
|
|
local AnimName = {
|
|
[1] = "FriendPanel_Info_",
|
|
[2] = "FriendPanel_List_",
|
|
[3] = "FriendPanel_Request_"
|
|
}
|
|
FriendCtrl._mapNodeConfig = {
|
|
TopBar = {
|
|
sNodeName = "TopBarPanel",
|
|
sCtrlName = "Game.UI.TopBarEx.TopBarCtrl"
|
|
},
|
|
tog = {
|
|
nCount = 3,
|
|
sComponentName = "UIButton",
|
|
callback = "OnBtnClick_ChangeSheet"
|
|
},
|
|
ctrlTog = {
|
|
nCount = 3,
|
|
sNodeName = "tog",
|
|
sCtrlName = "Game.UI.TemplateEx.TemplateToggleCtrl"
|
|
},
|
|
blur = {
|
|
sNodeName = "t_fullscreen_blur_blue"
|
|
},
|
|
aniBlur = {
|
|
sNodeName = "t_fullscreen_blur_blue",
|
|
sComponentName = "Animator"
|
|
},
|
|
animRoot = {
|
|
sNodeName = "----SafeAreaRoot----",
|
|
sComponentName = "Animator"
|
|
},
|
|
btnBlur = {
|
|
sNodeName = "snapshot",
|
|
sComponentName = "Button",
|
|
callback = "OnBtnClick_ClosePop"
|
|
},
|
|
trActor2D_PNG = {
|
|
sNodeName = "----Actor2D_PNG----",
|
|
sComponentName = "Transform"
|
|
},
|
|
Info = {
|
|
sNodeName = "---Info---",
|
|
sCtrlName = "Game.UI.FriendEx.FriendInfoCtrl"
|
|
},
|
|
List = {
|
|
sNodeName = "---List---",
|
|
sCtrlName = "Game.UI.FriendEx.FriendListCtrl"
|
|
},
|
|
Request = {
|
|
sNodeName = "---Request---",
|
|
sCtrlName = "Game.UI.FriendEx.FriendRequestCtrl"
|
|
},
|
|
Rename = {
|
|
sNodeName = "---Rename---",
|
|
sCtrlName = "Game.UI.FriendEx.FriendRenameCtrl"
|
|
},
|
|
Head = {
|
|
sNodeName = "---Head---",
|
|
sCtrlName = "Game.UI.FriendEx.FriendHeadCtrl"
|
|
},
|
|
Search = {
|
|
sNodeName = "---Search---",
|
|
sCtrlName = "Game.UI.FriendEx.FriendSearchCtrl"
|
|
},
|
|
Title = {
|
|
sNodeName = "---Title---",
|
|
sCtrlName = "Game.UI.FriendEx.FriendTitleCtrl"
|
|
},
|
|
Signature = {
|
|
sNodeName = "---Signature---",
|
|
sCtrlName = "Game.UI.FriendEx.FriendSignatureCtrl"
|
|
},
|
|
Member = {
|
|
sNodeName = "---Member---",
|
|
sCtrlName = "Game.UI.FriendEx.FriendMemberCtrl"
|
|
},
|
|
Portrait = {
|
|
sNodeName = "---Portrait---",
|
|
sCtrlName = "Game.UI.FriendEx.FriendPortraitCtrl"
|
|
},
|
|
Recommend = {
|
|
sNodeName = "---Recommend---",
|
|
sCtrlName = "Game.UI.FriendEx.FriendRecommendCtrl"
|
|
},
|
|
HonorTitle = {
|
|
sNodeName = "---HonorTitle---",
|
|
sCtrlName = "Game.UI.FriendEx.FriendHonorTitleCtrl"
|
|
},
|
|
redDotTog = {nCount = 3}
|
|
}
|
|
FriendCtrl._mapEventConfig = {
|
|
FriendChangeHead = "OnEvent_ChangeHead",
|
|
FriendChangeName = "OnEvent_ChangeName",
|
|
FriendChangeTitle = "OnEvent_ChangeTitle",
|
|
FriendChangeSignature = "OnEvent_ChangeSignature",
|
|
FriendChangePortrait = "OnEvent_ChangePortrait",
|
|
FriendChangeMember = "OnEvent_ChangeMember",
|
|
FriendClosePop = "OnBtnClick_ClosePop",
|
|
FriendSearch = "OnEvent_Search",
|
|
FriendRecommend = "OnEvent_Recommend",
|
|
FriendRefreshActor2D = "OnEvent_RefreshActor2D",
|
|
FriendChangeHonorTitle = "OnEvent_ChangeHonorTitle"
|
|
}
|
|
function FriendCtrl:RegisterRedDot()
|
|
RedDotManager.RegisterNode(RedDotDefine.Friend_Info, nil, self._mapNode.redDotTog[1])
|
|
RedDotManager.RegisterNode(RedDotDefine.Friend_Energy, nil, self._mapNode.redDotTog[2])
|
|
RedDotManager.RegisterNode(RedDotDefine.Friend_Apply, nil, self._mapNode.redDotTog[3])
|
|
end
|
|
function FriendCtrl:SwitchTog()
|
|
if self.nPrevTog ~= nil then
|
|
local animPrev = AnimName[self.nPrevTog] .. "out"
|
|
self._mapNode.animRoot:Play(animPrev)
|
|
local nAnimTime = NovaAPI.GetAnimClipLength(self._mapNode.animRoot, {animPrev})
|
|
if self.timerAnim ~= nil then
|
|
self.timerAnim:Cancel()
|
|
self.timerAnim = nil
|
|
end
|
|
self.timerAnim = self:AddTimer(1, nAnimTime, function()
|
|
self:OpenCtrl()
|
|
end, true, true, true)
|
|
else
|
|
self:OpenCtrl()
|
|
end
|
|
end
|
|
function FriendCtrl:OpenCtrl()
|
|
self._mapNode.Info.gameObject:SetActive(self.nCurTog == Tog.Info)
|
|
self._mapNode.List.gameObject:SetActive(self.nCurTog == Tog.List)
|
|
self._mapNode.Request.gameObject:SetActive(self.nCurTog == Tog.Request)
|
|
self._mapNode.trActor2D_PNG.gameObject:SetActive(self.nCurTog == Tog.Info)
|
|
if self.nCurTog == Tog.Info then
|
|
self._mapNode.Info:Refresh(self._panel.nId)
|
|
elseif self.nCurTog == Tog.List then
|
|
self._mapNode.List:Refresh()
|
|
elseif self.nCurTog == Tog.Request then
|
|
self._mapNode.Request:Refresh()
|
|
end
|
|
if self.nPrevTog ~= nil then
|
|
local animCur = AnimName[self.nCurTog] .. "in"
|
|
self._mapNode.animRoot:Play(animCur)
|
|
end
|
|
end
|
|
function FriendCtrl:SetDefaultTog()
|
|
if self.nCurTog == nil then
|
|
self.nCurTog = Tog.Info
|
|
end
|
|
for i = 1, 3 do
|
|
self._mapNode.ctrlTog[i]:SetDefault(i == self.nCurTog)
|
|
end
|
|
self:SwitchTog()
|
|
end
|
|
function FriendCtrl:RefreshTogText()
|
|
self._mapNode.ctrlTog[1]:SetText(ConfigTable.GetUIText("Friend_Tog_Info"))
|
|
self._mapNode.ctrlTog[2]:SetText(ConfigTable.GetUIText("Friend_Tog_List"))
|
|
self._mapNode.ctrlTog[3]:SetText(ConfigTable.GetUIText("Friend_Tog_Add"))
|
|
end
|
|
function FriendCtrl:FadeIn(bPlayFadeIn)
|
|
EventManager.Hit(EventId.SetTransition)
|
|
end
|
|
function FriendCtrl:Awake()
|
|
self.ctrlPop = nil
|
|
self:RefreshTogText()
|
|
end
|
|
function FriendCtrl:OnEnable()
|
|
self:SetDefaultTog()
|
|
self:RegisterRedDot()
|
|
end
|
|
function FriendCtrl:OnDisable()
|
|
if self.timerAnim ~= nil then
|
|
self.timerAnim:Cancel()
|
|
self.timerAnim = nil
|
|
end
|
|
end
|
|
function FriendCtrl:OnDestroy()
|
|
end
|
|
function FriendCtrl:OnBtnClick_ChangeSheet(btn, nIndex)
|
|
if nIndex == self.nCurTog then
|
|
return
|
|
end
|
|
self._mapNode.ctrlTog[nIndex]:SetTrigger(true)
|
|
self._mapNode.ctrlTog[self.nCurTog]:SetTrigger(false)
|
|
self.nPrevTog = self.nCurTog
|
|
self.nCurTog = nIndex
|
|
self:SwitchTog()
|
|
end
|
|
function FriendCtrl:OnEvent_ChangeHead()
|
|
self.ctrlPop = self._mapNode.Head
|
|
self._mapNode.Head:Open()
|
|
self._mapNode.blur:SetActive(true)
|
|
end
|
|
function FriendCtrl:OnEvent_ChangeName()
|
|
self.ctrlPop = self._mapNode.Rename
|
|
self._mapNode.Rename:Open()
|
|
self._mapNode.blur:SetActive(true)
|
|
end
|
|
function FriendCtrl:OnEvent_ChangeTitle()
|
|
self.ctrlPop = self._mapNode.Title
|
|
self._mapNode.Title:Open()
|
|
self._mapNode.blur:SetActive(true)
|
|
end
|
|
function FriendCtrl:OnEvent_ChangeSignature()
|
|
self.ctrlPop = self._mapNode.Signature
|
|
self._mapNode.Signature:Open()
|
|
self._mapNode.blur:SetActive(true)
|
|
end
|
|
function FriendCtrl:OnEvent_ChangeMember()
|
|
self.ctrlPop = self._mapNode.Member
|
|
self._mapNode.Member:Open()
|
|
self._mapNode.blur:SetActive(true)
|
|
end
|
|
function FriendCtrl:OnEvent_ChangePortrait()
|
|
self.ctrlPop = self._mapNode.Portrait
|
|
self._mapNode.Portrait:Open()
|
|
self._mapNode.blur:SetActive(true)
|
|
end
|
|
function FriendCtrl:OnEvent_Search(mapData)
|
|
self.ctrlPop = self._mapNode.Search
|
|
self._mapNode.Search:Open(mapData)
|
|
self._mapNode.blur:SetActive(true)
|
|
end
|
|
function FriendCtrl:OnEvent_Recommend(mapData)
|
|
self.ctrlPop = self._mapNode.Recommend
|
|
self._mapNode.Recommend:Open(mapData)
|
|
self._mapNode.blur:SetActive(true)
|
|
end
|
|
function FriendCtrl:OnEvent_ChangeHonorTitle()
|
|
self.ctrlPop = self._mapNode.HonorTitle
|
|
self._mapNode.HonorTitle:Open()
|
|
self._mapNode.blur:SetActive(true)
|
|
end
|
|
function FriendCtrl:OnBtnClick_ClosePop()
|
|
if self.ctrlPop then
|
|
self.ctrlPop:PlayOutAni()
|
|
self.ctrlPop = nil
|
|
end
|
|
self._mapNode.aniBlur:SetTrigger("tOut")
|
|
self:AddTimer(1, 0.2, function()
|
|
self._mapNode.blur:SetActive(false)
|
|
end, true, true, true)
|
|
EventManager.Hit(EventId.TemporaryBlockInput, 0.2)
|
|
end
|
|
function FriendCtrl:OnEvent_RefreshActor2D(nCharId, nSkinId)
|
|
Actor2DManager.SetActor2D_PNG(self._mapNode.trActor2D_PNG, self:GetPanelId(), nCharId, nSkinId)
|
|
end
|
|
return FriendCtrl
|