5e0d58cfad
EN: 1.2.0.60 CN: 1.2.0.61 JP: 1.2.0.63 KR: 1.2.0.67
137 lines
4.2 KiB
Lua
137 lines
4.2 KiB
Lua
local CharFgTrialCtrl = class("CharFgTrialCtrl", BaseCtrl)
|
|
local MoveBarPos = {
|
|
-483.6,
|
|
-162,
|
|
159.6,
|
|
481.2
|
|
}
|
|
local PanelToTab = {
|
|
[PanelId.CharInfoTrial] = 1,
|
|
[PanelId.CharSkillTrial] = 2,
|
|
[PanelId.CharPotentialTrial] = 3,
|
|
[PanelId.CharTalentTrial] = 4
|
|
}
|
|
local TabTextKey = {
|
|
"CharacterInfo_Tab1",
|
|
"CharacterInfo_Tab2",
|
|
"CharacterInfo_Tab4",
|
|
"CharacterInfo_Tab5"
|
|
}
|
|
CharFgTrialCtrl._mapNodeConfig = {
|
|
TopBar = {
|
|
sNodeName = "TopBarPanel",
|
|
sCtrlName = "Game.UI.TopBarEx.TopBarCtrl"
|
|
},
|
|
goBack = {},
|
|
goResBarAnimRoot = {},
|
|
btnTab = {
|
|
nCount = 4,
|
|
sComponentName = "UIButton",
|
|
callback = "OnBtnClick_Tab"
|
|
},
|
|
imgOn = {nCount = 4},
|
|
txtTabOn = {nCount = 4, sComponentName = "TMP_Text"},
|
|
txtTabOff = {nCount = 4, sComponentName = "TMP_Text"},
|
|
layoutOff = {nCount = 4},
|
|
imgMoveBar = {sComponentName = "Transform"},
|
|
Tab = {sNodeName = "--Tab--"},
|
|
aniSafeRoot = {
|
|
sNodeName = "----SafeAreaRoot----",
|
|
sComponentName = "Animator"
|
|
}
|
|
}
|
|
CharFgTrialCtrl._mapEventConfig = {
|
|
RefreshCharFg = "OnEvent_RefreshFg",
|
|
RefreshCharTopBar = "RefreshTopBar",
|
|
RefreshCharTopBarText = "OnEvent_SetTopBarText",
|
|
ChangeCharFgTab = "OnEvent_ChangeTab",
|
|
ChangeCharTopBar = "OnEvent_ChangeTopBar"
|
|
}
|
|
function CharFgTrialCtrl:InitTab()
|
|
self.nTab = PanelToTab[self._panel.nPanelId]
|
|
self._mapNode.imgMoveBar.localPosition = Vector3(MoveBarPos[self.nTab], 4.5, 0)
|
|
for i = 1, 4 do
|
|
NovaAPI.SetTMPText(self._mapNode.txtTabOn[i], ConfigTable.GetUIText(TabTextKey[i]))
|
|
NovaAPI.SetTMPText(self._mapNode.txtTabOff[i], ConfigTable.GetUIText(TabTextKey[i]))
|
|
self._mapNode.imgOn[i]:SetActive(PanelToTab[self._panel.nPanelId] == i)
|
|
self._mapNode.txtTabOn[i].gameObject:SetActive(PanelToTab[self._panel.nPanelId] == i)
|
|
self._mapNode.layoutOff[i].gameObject:SetActive(PanelToTab[self._panel.nPanelId] ~= i)
|
|
end
|
|
end
|
|
function CharFgTrialCtrl:RefreshTopBar()
|
|
local nPanelId = self._panel.nPanelId
|
|
local panelCfg = self.tbPanelCfg[nPanelId]
|
|
if nil ~= panelCfg then
|
|
if panelCfg.bShowTopBar then
|
|
self._mapNode.TopBar.gameObject:SetActive(true)
|
|
self._mapNode.TopBar:InitTopBar(nPanelId)
|
|
if nPanelId == PanelId.CharTalent then
|
|
local mapCharCfg = ConfigTable.GetData_Character(self._panel.nCharId)
|
|
self._mapNode.TopBar:CreateCoin({
|
|
mapCharCfg.FragmentsId
|
|
})
|
|
end
|
|
else
|
|
self._mapNode.TopBar.gameObject:SetActive(false)
|
|
end
|
|
end
|
|
if self._panel.bSecondPanel then
|
|
self:OnEvent_ChangeTopBar(false, true)
|
|
end
|
|
end
|
|
function CharFgTrialCtrl:Awake()
|
|
self:InitTab()
|
|
end
|
|
function CharFgTrialCtrl:OnEnable()
|
|
self.tbPanelCfg = self._panel:GetPanelShowCfg()
|
|
local tbSubPanel = self._panel:GetSubPanel()
|
|
if tbSubPanel[self._panel.nPanelId] or self._panel.bSecondPanel then
|
|
self._mapNode.aniSafeRoot:Play("CharFgPanel_out", 0, 1)
|
|
else
|
|
self._mapNode.aniSafeRoot:Play("CharFgPanel_in")
|
|
end
|
|
local wait = function()
|
|
coroutine.yield(CS.UnityEngine.WaitForEndOfFrame())
|
|
self:RefreshTopBar()
|
|
end
|
|
cs_coroutine.start(wait)
|
|
end
|
|
function CharFgTrialCtrl:OnDisable()
|
|
end
|
|
function CharFgTrialCtrl:OnDestroy()
|
|
end
|
|
function CharFgTrialCtrl:OnEvent_RefreshFg()
|
|
end
|
|
function CharFgTrialCtrl:OnEvent_ChangeTab(bOpen)
|
|
if bOpen then
|
|
self._mapNode.aniSafeRoot:Play("CharFgPanel_in")
|
|
else
|
|
self._mapNode.aniSafeRoot:Play("CharFgPanel_out")
|
|
end
|
|
end
|
|
function CharFgTrialCtrl:OnEvent_ChangeTopBar(bShowBack, bShowRes)
|
|
self._mapNode.goBack:SetActive(bShowBack)
|
|
self._mapNode.goResBarAnimRoot:SetActive(bShowRes)
|
|
end
|
|
function CharFgTrialCtrl:OnBtnClick_Tab(btn, nIndex)
|
|
if self.nTab == nIndex then
|
|
return
|
|
end
|
|
local nNextPanel = table.keyof(PanelToTab, nIndex)
|
|
self._mapNode.imgMoveBar:DOLocalMoveX(MoveBarPos[nIndex], 0.1):SetUpdate(true)
|
|
self._mapNode.imgOn[self.nTab]:SetActive(false)
|
|
self._mapNode.txtTabOn[self.nTab].gameObject:SetActive(false)
|
|
self._mapNode.layoutOff[self.nTab].gameObject:SetActive(true)
|
|
self._mapNode.imgOn[nIndex]:SetActive(true)
|
|
self._mapNode.txtTabOn[nIndex].gameObject:SetActive(true)
|
|
self._mapNode.layoutOff[nIndex].gameObject:SetActive(false)
|
|
self.nTab = nIndex
|
|
if nNextPanel then
|
|
EventManager.Hit(EventId.CharRelatePanelOpen, nNextPanel, self._panel.nCharId)
|
|
end
|
|
end
|
|
function CharFgTrialCtrl:OnEvent_SetTopBarText(sTitle)
|
|
self._mapNode.TopBar:SetTitleTxt(sTitle)
|
|
end
|
|
return CharFgTrialCtrl
|