80af235e05
EN: 1.12.0.120 CN: 1.12.0.120 JP: 1.12.0.124 KR: 1.12.0.124
236 lines
7.2 KiB
Lua
236 lines
7.2 KiB
Lua
local TutorialResultCtrl = class("TutorialResultCtrl", BaseCtrl)
|
|
local WwiseManger = CS.WwiseAudioManager.Instance
|
|
TutorialResultCtrl._mapNodeConfig = {
|
|
imgBlurredBg = {},
|
|
goComplete = {sComponentName = "GameObject"},
|
|
goFailed = {sComponentName = "GameObject"},
|
|
Mask = {
|
|
sComponentName = "CanvasGroup"
|
|
},
|
|
txtName = {nCount = 2, sComponentName = "TMP_Text"},
|
|
ButtonClose = {
|
|
sComponentName = "UIButton",
|
|
callback = "OnBtnClick_Close"
|
|
},
|
|
goRoot = {
|
|
sNodeName = "----SafeAreaRoot----"
|
|
},
|
|
txtQuestTitle1 = {
|
|
sComponentName = "TMP_Text",
|
|
sLanguageId = "Tutorial_Result_QuestTitle"
|
|
},
|
|
txtQuestValue1 = {sComponentName = "TMP_Text"},
|
|
txtTip = {
|
|
sComponentName = "TMP_Text",
|
|
sLanguageId = "Tutorial_Result_FailTips"
|
|
},
|
|
txtTipShadow = {
|
|
sComponentName = "TMP_Text",
|
|
sLanguageId = "Tutorial_Result_FailTips"
|
|
},
|
|
NextLevelName = {},
|
|
txtNextName = {sComponentName = "TMP_Text"},
|
|
btn_goNext = {
|
|
sComponentName = "UIButton",
|
|
callback = "OnBtnClick_GoNext"
|
|
},
|
|
txt_goNext = {
|
|
sComponentName = "TMP_Text",
|
|
sLanguageId = "Tutorial_NextLevel"
|
|
},
|
|
btn_retry = {
|
|
sComponentName = "UIButton",
|
|
callback = "OnBtnClick_Retry"
|
|
},
|
|
txt_retry = {
|
|
sComponentName = "TMP_Text",
|
|
sLanguageId = "Tutorial_Restart"
|
|
},
|
|
btn_complete = {
|
|
sComponentName = "UIButton",
|
|
callback = "OnBtnClick_Close"
|
|
},
|
|
txt_complete = {
|
|
sComponentName = "TMP_Text",
|
|
sLanguageId = "Tutorial_Complete"
|
|
},
|
|
animComplete = {sNodeName = "goComplete", sComponentName = "Animator"},
|
|
animFailed = {sNodeName = "goFailed", sComponentName = "Animator"}
|
|
}
|
|
TutorialResultCtrl._mapEventConfig = {}
|
|
TutorialResultCtrl._mapRedDotConfig = {}
|
|
function TutorialResultCtrl:Awake()
|
|
EventManager.Hit(EventId.AvgBubbleShutDown)
|
|
NovaAPI.SetComponentEnableByName(self.gameObject, "Canvas", false)
|
|
end
|
|
function TutorialResultCtrl:OnEnable()
|
|
local tbParam = self:GetPanelParam()
|
|
local nResultState = tbParam[1]
|
|
self.nLevelId = tbParam[2]
|
|
local GenerRewardItems = tbParam[3] or {}
|
|
local nCurQuest = tbParam[4] or 0
|
|
local nMaxQuest = tbParam[5] or 0
|
|
local tbChar = tbParam[6] or {}
|
|
self.mapChangeInfo = tbParam[7] or {}
|
|
local bPureAvg = tbParam[8] or false
|
|
self.bSuccess = nResultState == 1
|
|
local levelConfig = ConfigTable.GetData("TutorialLevel", self.nLevelId)
|
|
local sLevelName = ""
|
|
if levelConfig ~= nil then
|
|
sLevelName = levelConfig.Title
|
|
end
|
|
for _, v in ipairs(self._mapNode.txtName) do
|
|
NovaAPI.SetTMPText(v, sLevelName)
|
|
end
|
|
self.nextLevelId = PlayerData.TutorialData:GetNextLevelId(self.nLevelId)
|
|
if self.nextLevelId == 0 then
|
|
self._mapNode.NextLevelName:SetActive(false)
|
|
self._mapNode.btn_goNext.gameObject:SetActive(false)
|
|
else
|
|
local nextLevelConfig = ConfigTable.GetData("TutorialLevel", self.nextLevelId)
|
|
if nextLevelConfig ~= nil then
|
|
NovaAPI.SetTMPText(self._mapNode.txtNextName, nextLevelConfig.Title)
|
|
end
|
|
end
|
|
self.mapReward = {}
|
|
for _, v in pairs(GenerRewardItems) do
|
|
table.insert(self.mapReward, v)
|
|
end
|
|
NovaAPI.SetTMPText(self._mapNode.txtQuestValue1, nCurQuest .. "/" .. nMaxQuest)
|
|
local nCurTeam = 5
|
|
if PlayerData.nCurGameType == AllEnum.WorldMapNodeType.Mainline then
|
|
nCurTeam = PlayerData.Mainline.nCurTeamIndex
|
|
end
|
|
local tbTeamMemberId, nCaptain
|
|
if tbChar == nil then
|
|
nCaptain, tbTeamMemberId = PlayerData.Team:GetTeamData(nCurTeam)
|
|
else
|
|
tbTeamMemberId = tbChar
|
|
end
|
|
local tbRoleId = {}
|
|
for i = 1, #tbTeamMemberId do
|
|
if tbTeamMemberId[i] ~= nil and 0 < tbTeamMemberId[i] then
|
|
table.insert(tbRoleId, tbTeamMemberId[i])
|
|
end
|
|
end
|
|
if #tbRoleId == 0 then
|
|
table.insert(tbRoleId, 112)
|
|
end
|
|
WwiseManger:PostEvent("ui_loading_combatSFX_mute", nil, false)
|
|
WwiseManger:PostEvent("char_common_all_pause")
|
|
WwiseManger:PostEvent("mon_common_all_pause")
|
|
WwiseManger:SetState("level", "None")
|
|
WwiseManger:SetState("combat", "None")
|
|
local nAnimTime
|
|
if nResultState == 1 then
|
|
WwiseManger:PlaySound("ui_roguelike_victory")
|
|
WwiseManger:SetState("system", "victory")
|
|
self._mapNode.goRoot.gameObject:SetActive(true)
|
|
self._mapNode.goFailed:SetActive(false)
|
|
self._mapNode.goComplete:SetActive(true)
|
|
nAnimTime = 4
|
|
else
|
|
WwiseManger:SetState("system", "defeat")
|
|
CS.AdventureModuleHelper.PauseLogic()
|
|
self._mapNode.goRoot.gameObject:SetActive(false)
|
|
self._mapNode.imgBlurredBg.gameObject:SetActive(true)
|
|
self._mapNode.goFailed:SetActive(true)
|
|
self._mapNode.goComplete:SetActive(false)
|
|
nAnimTime = 3
|
|
end
|
|
self._mapNode.Mask.gameObject:SetActive(false)
|
|
self._mapNode.ButtonClose.gameObject:SetActive(false)
|
|
local wait = function()
|
|
coroutine.yield(CS.UnityEngine.WaitForEndOfFrame())
|
|
self._mapNode.goRoot.gameObject:SetActive(true)
|
|
self._mapNode.ButtonClose.gameObject:SetActive(true)
|
|
NovaAPI.SetComponentEnableByName(self.gameObject, "Canvas", true)
|
|
if bPureAvg then
|
|
self:OpenReward()
|
|
end
|
|
end
|
|
cs_coroutine.start(wait)
|
|
self:AddTimer(1, nAnimTime, "PlayAnim", true, true, true)
|
|
EventManager.Hit(EventId.TemporaryBlockInput, nAnimTime)
|
|
PlayerData.Voice:PlayBattleResultVoice(tbRoleId, nResultState == 1)
|
|
self.bProcessingClose = false
|
|
end
|
|
function TutorialResultCtrl:OnDisable()
|
|
PlayerData.Voice:StopCharVoice()
|
|
end
|
|
function TutorialResultCtrl:OnDestroy()
|
|
end
|
|
function TutorialResultCtrl:PlayAnim()
|
|
PlayerData.SideBanner:TryOpenSideBanner()
|
|
local callback = function()
|
|
self:OpenReward()
|
|
end
|
|
self.bOpenUpgrade = PlayerData.Base:TryOpenWorldClassUpgrade(callback)
|
|
end
|
|
function TutorialResultCtrl:ClosePanel()
|
|
if self.bProcessingClose then
|
|
return
|
|
end
|
|
self.bProcessingClose = true
|
|
local levelEndCallback = function()
|
|
CS.AdventureModuleHelper.ResumeLogic()
|
|
if NovaAPI.GetCurrentModuleName() == "MainMenuModuleScene" then
|
|
EventManager.Hit(EventId.CloesCurPanel)
|
|
PlayerData.Base:OnBackToMainMenuModule()
|
|
else
|
|
NovaAPI.SetCanvasGroupAlpha(self._mapNode.Mask, 0)
|
|
self._mapNode.Mask.gameObject:SetActive(true)
|
|
EventManager.Hit(EventId.TemporaryBlockInput, 0.5)
|
|
local sequence = DOTween.Sequence()
|
|
sequence:Append(self._mapNode.Mask:DOFade(1, 0.5):SetUpdate(true))
|
|
sequence:AppendCallback(function()
|
|
if self.bSuccess then
|
|
NovaAPI.EnterModule("MainMenuModuleScene", true, 17)
|
|
self._mapNode.imgBlurredBg:SetActive(false)
|
|
else
|
|
local function levelEndCallback()
|
|
EventManager.Remove("ADVENTURE_LEVEL_UNLOAD_COMPLETE", self, levelEndCallback)
|
|
NovaAPI.EnterModule("MainMenuModuleScene", true, 17)
|
|
self._mapNode.imgBlurredBg:SetActive(false)
|
|
end
|
|
EventManager.Add("ADVENTURE_LEVEL_UNLOAD_COMPLETE", self, levelEndCallback)
|
|
CS.AdventureModuleHelper.LevelStateChanged(true, 0, true)
|
|
end
|
|
end)
|
|
sequence:SetUpdate(true)
|
|
end
|
|
end
|
|
if self.bSuccess then
|
|
PlayerData.TutorialData:GetLevelReward(self.nLevelId, levelEndCallback)
|
|
else
|
|
levelEndCallback()
|
|
end
|
|
end
|
|
function TutorialResultCtrl:Close()
|
|
if self.bOpenUpgrade then
|
|
self:ClosePanel()
|
|
else
|
|
self:OpenReward()
|
|
end
|
|
end
|
|
function TutorialResultCtrl:OpenReward(callback)
|
|
if self.mapChangeInfo and next(self.mapChangeInfo) ~= nil then
|
|
local callback = function()
|
|
self:ClosePanel()
|
|
end
|
|
UTILS.OpenReceiveByChangeInfo(self.mapChangeInfo, callback)
|
|
else
|
|
self:ClosePanel()
|
|
end
|
|
end
|
|
function TutorialResultCtrl:OnBtnClick_Close()
|
|
self:Close()
|
|
end
|
|
function TutorialResultCtrl:OnBtnClick_GoNext()
|
|
self:Close()
|
|
end
|
|
function TutorialResultCtrl:OnBtnClick_Retry()
|
|
self:Close()
|
|
end
|
|
return TutorialResultCtrl
|