local XUiSettleLose = XLuaUiManager.Register(XLuaUi, "UiSettleLose") local GridLoseTip = require("XUi/XUiSettleLose/XUiGridLoseTip") function XUiSettleLose:OnAwake() self:InitAutoScript() self.GridLoseTip.gameObject:SetActiveEx(false) end function XUiSettleLose:OnStart() local beginData = XDataCenter.FubenManager.GetFightBeginData() local count = 0 for _, v in pairs(beginData.CharList) do if v ~= 0 then count = count + 1 end end self.TxtPeople.text = CS.XTextManager.GetText("BattleLoseActorNum", count) local stageId = beginData.StageId self.StageId = stageId local stageCfg = XDataCenter.FubenManager.GetStageCfg(stageId) self.TxtStageName.text = stageCfg.Name local stageInfo = XDataCenter.FubenManager.GetStageInfo(stageId) local showBtnRestart = stageInfo.Type == XDataCenter.FubenManager.StageType.BabelTower self.BtnRestart.gameObject:SetActiveEx(showBtnRestart) self:SetTips(stageCfg.SettleLoseTipId) end function XUiSettleLose:OnEnable() XDataCenter.FunctionEventManager.UnLockFunctionEvent() end function XUiSettleLose:OnDestroy() XDataCenter.AntiAddictionManager.EndFightAction() XEventManager.DispatchEvent(XEventId.EVENT_FIGHT_FINISH_LOSEUI_CLOSE) end --- --- 根据"settleLoseTipId"来生成提示 function XUiSettleLose:SetTips(settleLoseTipId) if not self.HadSetTip then local tipDescList = XFubenConfigs.GetTipDescList(settleLoseTipId) if tipDescList == nil then XLog.Error("XUiSettleLose:SetTips函数错误,tipDescList为空") return end local skipIdList = XFubenConfigs.GetSkipIdList(settleLoseTipId) if tipDescList == nil then XLog.Error("XUiSettleLose:SetTips函数错误,skipIdList为空") return end for i, desc in ipairs(tipDescList) do local obj = CS.UnityEngine.Object.Instantiate(self.GridLoseTip) obj.transform:SetParent(self.PanelTips.transform, false) obj.gameObject:SetActiveEx(true) GridLoseTip.New(obj, self, { ["TipDesc"] = desc, ["SkipId"] = skipIdList[i] }) end self.HadSetTip = true end end -- auto -- Automatic generation of code, forbid to edit function XUiSettleLose:InitAutoScript() self:AutoInitUi() self.SpecialSoundMap = {} self:AutoAddListener() end function XUiSettleLose:AutoInitUi() self.BtnLose = self.Transform:Find("SafeAreaContentPane/PanelLose/BtnLose"):GetComponent("Button") end function XUiSettleLose:GetAutoKey(uiNode, eventName) if not uiNode then return end return eventName .. uiNode:GetHashCode() end function XUiSettleLose:RegisterListener(uiNode, eventName, func) local key = self:GetAutoKey(uiNode, eventName) if not key then return end local listener = self.AutoCreateListeners[key] if listener ~= nil then uiNode[eventName]:RemoveListener(listener) end if func ~= nil then if type(func) ~= "function" then XLog.Error("XUiSettleLose:RegisterListener函数错误, 参数func需要是function类型, func的类型是" .. type(func)) end listener = function(...) XSoundManager.PlayBtnMusic(self.SpecialSoundMap[key], eventName) func(self, ...) end uiNode[eventName]:AddListener(listener) self.AutoCreateListeners[key] = listener end end function XUiSettleLose:AutoAddListener() self.AutoCreateListeners = {} self:RegisterClickEvent(self.BtnLose, self.OnBtnLoseClick) self.BtnRestart.CallBack = function() self:OnClickBtnRestart() end end -- auto function XUiSettleLose:OnBtnLoseClick() --CS.XAudioManager.RemoveCueSheet(CS.XAudioManager.BATTLE_MUSIC_CUE_SHEET_ID) --CS.XAudioManager.PlayMusic(CS.XAudioManager.MAIN_BGM) if XDataCenter.ArenaManager.JudgeGotoMainWhenFightOver() then return end local beginData = XDataCenter.FubenManager.GetFightBeginData() if XDataCenter.ArenaOnlineManager.JudgeGotoMainWhenFightOver(beginData.StageId) then return end local stageInfo = XDataCenter.FubenManager.GetStageInfo(self.StageId) if stageInfo.Type == XDataCenter.FubenManager.StageType.Expedition and XDataCenter.ExpeditionManager.GetIfBackMain() then XLuaUiManager.RunMain() XUiManager.TipMsg(CS.XTextManager.GetText("ExpeditionOnClose")) return end self:Close() end function XUiSettleLose:OnClickBtnRestart() self:Close() local stageInfo = XDataCenter.FubenManager.GetStageInfo(self.StageId) if stageInfo.Type == XDataCenter.FubenManager.StageType.BabelTower then if XLuaUiManager.IsUiLoad("UiBabelTowerSelectDiffcult") then XLuaUiManager.Remove("UiBabelTowerSelectDiffcult") end local curStageId, curTeamId, curStageGuideId, teamList, challengeBuffList, supportBuffList, captainPos, curStageLevel, firstFightPos = XDataCenter.FubenBabelTowerManager.GetCurStageInfo() XDataCenter.FubenBabelTowerManager.SelectBabelTowerStage(curStageId, curStageGuideId, teamList, challengeBuffList, supportBuffList, function() XDataCenter.FubenManager.EnterBabelTowerFight(curStageId, teamList, nil, captainPos, firstFightPos) end, curStageLevel, curTeamId) end end