require("Base/BasePanel") BattleFailPopup = Inherit(BasePanel) local this = BattleFailPopup local m_battlePanel local m_showRecord = true local m_backPanel local orginLayer local fightType local isBackBattle = false local itemConfig = ConfigManager.GetConfig(ConfigName.ItemConfig) --初始化组件(用于子类重写) function BattleFailPopup:InitComponent() this.spLoader = SpriteLoader.New() orginLayer = 0 this.btnClose = Util.GetGameObject(self.gameObject, "Lose") this.failImg = Util.GetGameObject(self.gameObject, "Lose/image/ziti"):GetComponent("Image") this.failImg.sprite = this.spLoader:LoadSprite("UI_effect_JJC_JieSuan_ShiBai_png_zh") this.btn_record = Util.GetGameObject(this.btnClose, "layout/record") this.btnBattleBack = Util.GetGameObject(this.btnClose, "btnBattleBack") this.btnBattleBack:GetComponent("Image").sprite = this.spLoader:LoadSprite("s_silingshilian_huifanganniu_zh") this.btnGrowUp = Util.GetGameObject(this.btnClose, "btnGrowUp") end --绑定事件(用于子类重写) function BattleFailPopup:BindEvent() Util.AddClick(this.btnClose, function() -- 三秒后才能关闭 if GetTimeStamp() - this.openTime < 1 then return end this.ClosePanelRefreshData() if m_battlePanel then m_battlePanel:ClosePanel() end self:ClosePanel() if m_backPanel then UIManager.OpenPanel(m_backPanel) end -- this.ClosePanelRefreshData() end) Util.AddClick(this.btnGrowUp, function() -- 一秒后才能跳转 if GetTimeStamp() - this.openTime < 1 then return end this.ClosePanelRefreshData() if m_battlePanel then m_battlePanel:ClosePanel() end self:ClosePanel() -- 跳转到我要变强 JumpManager.GoJump(48001) end) Util.AddClick(Util.GetGameObject(this.btnClose, "tip/zhaomu"), function() FightManager.curIsInFightArea = 0 this:LoseJump(1001) this.ClosePanelRefreshData() end) Util.AddClick(Util.GetGameObject(this.btnClose, "tip/chengyuan"), function() FightManager.curIsInFightArea = 0 this:LoseJump(22001) this.ClosePanelRefreshData() end) Util.AddClick(Util.GetGameObject(this.btnClose, "record"), function() UIManager.OpenPanel(UIName.DamageResultPanel, 0) --this.ClosePanelRefreshData() end) Util.AddClick(this.btnBattleBack, function() --LogGreen("isBackBattle = true") isBackBattle = true BattleManager.BattleBackFun() end) end --添加事件监听(用于子类重写) function BattleFailPopup:AddListener() end --移除事件监听(用于子类重写) function BattleFailPopup:RemoveListener() end function BattleFailPopup:OnSortingOrderChange() Util.AddParticleSortLayer(this.btnClose, self.sortingOrder - orginLayer) orginLayer = self.sortingOrder end --界面打开时调用(用于子类重写) function BattleFailPopup:OnOpen(battlePanel, showRecord, backPanel, _fightType) this.openTime = GetTimeStamp() --LogGreen("isBackBattle = false") isBackBattle = false if battlePanel then m_battlePanel = battlePanel end m_showRecord = true -- 默认显示 if showRecord == false then m_showRecord = showRecord end m_backPanel = nil if backPanel then m_backPanel = backPanel end if _fightType then fightType = _fightType end FightPointPassManager.FightBattleEnd() Util.GetGameObject(this.btnClose, "record"):SetActive(m_showRecord) Util.GetGameObject(this.btnClose, "tip"):SetActive(not fightType == 12) --副本内无法点击招募 if fightType == BATTLE_TYPE.MAP_FIGHT or GuideManager.IsInMainGuide() or MapManager.Mapping or fightType == BATTLE_TYPE.Test or fightType == BATTLE_TYPE.EndlessMpaFight then --地图 this.btnBattleBack:SetActive(false) this.btnGrowUp:SetActive(false) elseif fightType == BATTLE_TYPE.GodsWayTower then this.btnBattleBack:SetActive(false) this.btn_record:SetActive(false) else this.btnBattleBack:SetActive(true) this.btnGrowUp:SetActive(true) end if fightType == BATTLE_TYPE.GUILD_CAR_DELAY then --车迟 --车迟抢夺cd计时 GuildCarDelayManager.SetCdTime(GuildCarDelayProType.Loot) end end function this:LoseJump(id) if not MapManager.Mapping then if JumpManager.CheckJump(id) then if m_battlePanel then m_battlePanel:ClosePanel() end self:ClosePanel() JumpManager.GoJumpWithoutTip(id) end else PopupTipPanel.ShowTip(Language[10237]) end end function this.ClosePanelRefreshData() LogRed("fightType:" .. tostring(fightType)) if fightType then if fightType == BATTLE_TYPE.EXECUTE_FIGHT then --远征 this.ShowBattleResultByExpedition() elseif fightType == BATTLE_TYPE.XIAOYAOYOU then --逍遥游 this.ShowBattleResultByXYY() elseif fightType == BATTLE_TYPE.FOURELEMENT then --四灵 this.ShowBattleResultByFOURELEMENT() --新回放功能 elseif fightType == BATTLE_TYPE.BACK_BATTLE then if BattleManager.GetLastBattleType() == BATTLE_TYPE.EXECUTE_FIGHT then -- 猎妖之路 this.ShowBattleResultByExpedition() elseif BattleManager.GetLastBattleType() == BATTLE_TYPE.XIAOYAOYOU then -- 逍遥游 this.ShowBattleResultByXYY() elseif BattleManager.GetLastBattleType() == BATTLE_TYPE.FOURELEMENT then --四灵 this.ShowBattleResultByFOURELEMENT() end end end end -- 逍遥游结算界面特殊显示 function this.ShowBattleResultByXYY() if not isBackBattle then XiaoYaoManager.OpenXiaoYaoMap(XiaoYaoManager.curMapId, function() this.fightBossIndex = XiaoYaoManager.fightBossOldIndex UIManager.OpenPanel(UIName.XiaoYaoLuckyBossPopup) end) end end -- 罗浮争锋结算界面特殊显示 function this.ShowBattleResultByJumpServerHightLadder() PopupTipPanel.ShowTip(Language[10244]) if not isBackBattle and JumpServerManager.curBattleDrop.itemlist ~= nil and #JumpServerManager.curBattleDrop.itemlist > 0 then local content = {} for i = 1, #JumpServerManager.curBattleDrop.itemlist do local itemdata = {} itemdata.configData = itemConfig[JumpServerManager.curBattleDrop.itemlist[i].itemId] itemdata.name = GetLanguageStrById(itemdata.configData.Name) itemdata.icon = this.spLoader:LoadSprite(GetResourcePath(itemdata.configData.ResourceID)) itemdata.num = JumpServerManager.curBattleDrop.itemlist[i].itemNum table.insert(content, itemdata) end PopupText(content, 0.5, 2) end end -- 猎妖之路结算界面特殊显示 function this.ShowBattleResultByExpedition() if not isBackBattle then local GetCurNodeInfo = ExpeditionManager.curAttackNodeInfo if GetCurNodeInfo.type == ExpeditionNodeType.Greed then --贪婪节点 Timer.New(function() Game.GlobalEvent:DispatchEvent(GameEvent.Expedition.RefreshPlayAniMainPanel) -- Game.GlobalEvent:DispatchEvent(GameEvent.Expedition.RefreshMainPanel)--刷新界面 end, 0.3):Start() PopupTipPanel.ShowTip(Language[12088]) else MsgPanel.ShowTwo(Language[12089], function() Game.GlobalEvent:DispatchEvent(GameEvent.Expedition.RefreshMainPanel) --刷新界面 end, function() NetManager.EndConfirmExpeditionBattleRequest(GetCurNodeInfo.sortId, function(msg) Game.GlobalEvent:DispatchEvent(GameEvent.Expedition.RefreshMainPanel) --刷新界面 end) end, Language[10685], Language[12090]) -- Game.GlobalEvent:DispatchEvent(GameEvent.Expedition.RefreshMainPanel)--刷新界面 end end end function this.ShowBattleResultByFOURELEMENT() if MonsterCampManager.fourMonsterData[MonsterCampManager.curType].openState ~= 0 then UIManager.OpenPanel(UIName.FourElementMonsterCampPanel, MonsterCampManager.curType) else UIManager.OpenPanel(UIName.MonsterCampMainPanel) end end --界面关闭时调用(用于子类重写) function BattleFailPopup:OnClose() Game.GlobalEvent:DispatchEvent(GameEvent.Map.MaskState, 0) if PlayerManager.serverTime > (PlayerPrefs.GetInt("FirstRecharge", 0) + 86400) then local activityId = ActivityGiftManager.IsActivityTypeOpen(ActivityTypeDef.FirstRecharge) if activityId and activityId ~= 0 and ActTimeCtrlManager.SingleFuncState(1) then PlayerPrefs.SetInt("FirstRecharge", PlayerManager.serverTime) UIManager.OpenPanel(UIName.FirstRechargePanel) end end end --界面销毁时调用(用于子类重写) function BattleFailPopup:OnDestroy() this.spLoader:Destroy() end return BattleFailPopup