Update - 1.4.0.73
EN: 1.4.0.73 CN: 1.4.0.74 JP: 1.4.0.77 KR: 1.4.0.80
This commit is contained in:
@@ -0,0 +1,174 @@
|
||||
local QuestNewbieCtrl = class("QuestNewbieCtrl", BaseCtrl)
|
||||
local Actor2DManager = require("Game.Actor2D.Actor2DManager")
|
||||
local ConfigData = require("GameCore.Data.ConfigData")
|
||||
QuestNewbieCtrl._mapNodeConfig = {
|
||||
TopBar = {
|
||||
sNodeName = "TopBarPanel",
|
||||
sCtrlName = "Game.UI.TopBarEx.TopBarCtrl"
|
||||
},
|
||||
rtTeamFormation = {
|
||||
sCtrlName = "Game.UI.QuestNewbie.TeamFormation.QuestNewbieFormationCtrl"
|
||||
},
|
||||
rtTutorial = {
|
||||
sCtrlName = "Game.UI.QuestNewbie.Tutorial.TutorialLevelCtrl"
|
||||
},
|
||||
goTutorialBg = {},
|
||||
btnTab = {
|
||||
nCount = 2,
|
||||
sComponentName = "UIButton",
|
||||
callback = "OnBtnClick_Tab"
|
||||
},
|
||||
imgLock = {nCount = 2},
|
||||
tabUnlock = {nCount = 2},
|
||||
cvTabLayout = {
|
||||
nCount = 2,
|
||||
sNodeName = "layoutOff",
|
||||
sComponentName = "CanvasGroup"
|
||||
},
|
||||
imgOn = {nCount = 2},
|
||||
trTabOff = {
|
||||
sComponentName = "RectTransform"
|
||||
},
|
||||
trTabOn = {
|
||||
sComponentName = "RectTransform"
|
||||
},
|
||||
txtTabOn = {nCount = 2, sComponentName = "TMP_Text"},
|
||||
txtTabOff = {nCount = 2, sComponentName = "TMP_Text"},
|
||||
rtImgMoveBar = {
|
||||
sNodeName = "imgMoveBar",
|
||||
sComponentName = "RectTransform"
|
||||
},
|
||||
layoutOff = {nCount = 2},
|
||||
redDot = {nCount = 2}
|
||||
}
|
||||
QuestNewbieCtrl._mapEventConfig = {
|
||||
QuestNewbiePanelChangeTab = "OnEvent_ChangeTab"
|
||||
}
|
||||
QuestNewbieCtrl._mapRedDotConfig = {
|
||||
[RedDotDefine.TaskNewbie_TeamFormation] = {sNodeName = "redDot", nNodeIndex = 1},
|
||||
[RedDotDefine.TaskNewbie_Tutorial] = {sNodeName = "redDot", nNodeIndex = 2}
|
||||
}
|
||||
local MoveBarPos = {
|
||||
[1] = 0,
|
||||
[2] = 120
|
||||
}
|
||||
local functionType = {
|
||||
[1] = GameEnum.OpenFuncType.DailyQuest,
|
||||
[2] = GameEnum.OpenFuncType.TutorialLevel
|
||||
}
|
||||
function QuestNewbieCtrl:RefreshContent()
|
||||
self._mapNode.rtTeamFormation.gameObject:SetActive(self._panel.nCurTab == AllEnum.QuestNewbieTab.TeamFormation)
|
||||
self._mapNode.rtTutorial.gameObject:SetActive(self._panel.nCurTab == AllEnum.QuestNewbieTab.Tutorial)
|
||||
self._mapNode.goTutorialBg.gameObject:SetActive(self._panel.nCurTab == AllEnum.QuestNewbieTab.Tutorial)
|
||||
if self._panel.nCurTab == AllEnum.QuestNewbieTab.Tutorial then
|
||||
PlayerData.TutorialData:RefreshRedDot(false)
|
||||
self._mapNode.rtTutorial:Refresh()
|
||||
elseif self._panel.nCurTab == AllEnum.QuestNewbieTab.TeamFormation then
|
||||
self._mapNode.rtTeamFormation:Refresh()
|
||||
end
|
||||
self.nLastTab = self._panel.nCurTab
|
||||
end
|
||||
function QuestNewbieCtrl:InitTab()
|
||||
self._mapNode.rtImgMoveBar.localPosition = Vector3(MoveBarPos[self._panel.nCurTab], 4.5, 0)
|
||||
for i = 1, #self._mapNode.txtTabOn do
|
||||
NovaAPI.SetTMPText(self._mapNode.txtTabOn[i], ConfigTable.GetUIText("QuestNewbiePanel_Tab_" .. i))
|
||||
NovaAPI.SetTMPText(self._mapNode.txtTabOff[i], ConfigTable.GetUIText("QuestNewbiePanel_Tab_" .. i))
|
||||
self._mapNode.imgOn[i]:SetActive(self._panel.nCurTab == i)
|
||||
self._mapNode.txtTabOn[i].gameObject:SetActive(self._panel.nCurTab == i)
|
||||
self._mapNode.layoutOff[i].gameObject:SetActive(self._panel.nCurTab ~= i)
|
||||
end
|
||||
end
|
||||
function QuestNewbieCtrl:InitMoveBarPos()
|
||||
MoveBarPos = {}
|
||||
for i = 1, #self._mapNode.txtTabOn do
|
||||
local tab = self._mapNode.trTabOn:Find("tab" .. i)
|
||||
if tab.gameObject.activeSelf then
|
||||
local pos = tab.localPosition.x
|
||||
table.insert(MoveBarPos, pos)
|
||||
end
|
||||
end
|
||||
end
|
||||
function QuestNewbieCtrl:RefreshTabUnlock()
|
||||
for i = 1, #self._mapNode.txtTabOn do
|
||||
local nFuncType = functionType[i]
|
||||
local bUnlock = false
|
||||
if nFuncType == 0 then
|
||||
bUnlock = true
|
||||
else
|
||||
bUnlock = PlayerData.Base:CheckFunctionUnlock(nFuncType, false)
|
||||
end
|
||||
self._mapNode.imgLock[i].gameObject:SetActive(not bUnlock)
|
||||
self._mapNode.tabUnlock[i].gameObject:SetActive(bUnlock)
|
||||
NovaAPI.SetCanvasGroupAlpha(self._mapNode.cvTabLayout[i], bUnlock and 1 or 0.5)
|
||||
end
|
||||
end
|
||||
function QuestNewbieCtrl:OnBtnClick_Tab(btn, nIndex)
|
||||
if self._panel.nCurTab == nIndex then
|
||||
return
|
||||
end
|
||||
local nFuncType = functionType[nIndex]
|
||||
if nFuncType ~= 0 then
|
||||
local bFuncUnlock = PlayerData.Base:CheckFunctionUnlock(nFuncType, true)
|
||||
if not bFuncUnlock then
|
||||
return
|
||||
end
|
||||
end
|
||||
self._mapNode.imgOn[self._panel.nCurTab]:SetActive(false)
|
||||
self._mapNode.rtImgMoveBar:DOLocalMoveX(MoveBarPos[nIndex], 0.1):SetUpdate(true)
|
||||
self._mapNode.txtTabOn[self._panel.nCurTab].gameObject:SetActive(false)
|
||||
self._mapNode.layoutOff[self._panel.nCurTab].gameObject:SetActive(true)
|
||||
self._mapNode.imgOn[nIndex]:SetActive(true)
|
||||
self._mapNode.txtTabOn[nIndex].gameObject:SetActive(true)
|
||||
self._mapNode.layoutOff[nIndex].gameObject:SetActive(false)
|
||||
self._panel.nCurTab = nIndex
|
||||
self:RefreshContent()
|
||||
end
|
||||
function QuestNewbieCtrl:OnEvent_ChangeTab(nJumpTab)
|
||||
self._panel.nCurTab = nJumpTab
|
||||
local wait = function()
|
||||
coroutine.yield(CS.UnityEngine.WaitForEndOfFrame())
|
||||
self:InitMoveBarPos()
|
||||
self:InitTab()
|
||||
self:RefreshTabUnlock()
|
||||
self:RefreshContent()
|
||||
EventManager.Hit(EventId.SetTransition)
|
||||
end
|
||||
cs_coroutine.start(wait)
|
||||
end
|
||||
function QuestNewbieCtrl:OnEnable()
|
||||
local tbParam = self:GetPanelParam()
|
||||
local nJumpTab = 0
|
||||
if nil ~= next(tbParam) then
|
||||
nJumpTab = tbParam[1]
|
||||
end
|
||||
if self._panel.nCurTab == nil then
|
||||
local nTotalCount, nReceivedCount = PlayerData.TutorialData:GetProgress()
|
||||
local bTutorialComplete = nTotalCount <= nReceivedCount
|
||||
local bTeamFormationComplete = PlayerData.Quest:CheckTeamFormationAllCompleted()
|
||||
self._panel.nCurTab = AllEnum.QuestNewbieTab.TeamFormation
|
||||
if bTeamFormationComplete and not bTutorialComplete then
|
||||
self._panel.nCurTab = AllEnum.QuestNewbieTab.Tutorial
|
||||
end
|
||||
end
|
||||
self.nLastTab = 0
|
||||
if nJumpTab ~= 0 then
|
||||
self._panel.nCurTab = nJumpTab
|
||||
end
|
||||
local sAnimName = "QuestNewbiePanel_in"
|
||||
local nAnimLen = NovaAPI.GetAnimClipLength(self.animRoot, {sAnimName})
|
||||
self.animRoot:Play(sAnimName, 0, 0)
|
||||
EventManager.Hit(EventId.TemporaryBlockInput, nAnimLen)
|
||||
local wait = function()
|
||||
coroutine.yield(CS.UnityEngine.WaitForEndOfFrame())
|
||||
self:InitMoveBarPos()
|
||||
self:InitTab()
|
||||
self:RefreshTabUnlock()
|
||||
self:RefreshContent()
|
||||
EventManager.Hit(EventId.SetTransition)
|
||||
end
|
||||
cs_coroutine.start(wait)
|
||||
end
|
||||
function QuestNewbieCtrl:Awake()
|
||||
self.animRoot = self.gameObject:GetComponent("Animator")
|
||||
end
|
||||
return QuestNewbieCtrl
|
||||
Reference in New Issue
Block a user