237 lines
		
	
	
		
			8.6 KiB
		
	
	
	
		
			Lua
		
	
			
		
		
	
	
			237 lines
		
	
	
		
			8.6 KiB
		
	
	
	
		
			Lua
		
	
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[10210])
 | 
						|
    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("挑战失败,罗浮争锋排行无变化!")
 | 
						|
    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[11455])
 | 
						|
        else
 | 
						|
 | 
						|
            MsgPanel.ShowTwo(Language[11456], function()
 | 
						|
                Game.GlobalEvent:DispatchEvent(GameEvent.Expedition.RefreshMainPanel)--刷新界面
 | 
						|
            end, function()
 | 
						|
                NetManager.EndConfirmExpeditionBattleRequest(GetCurNodeInfo.sortId, function (msg)
 | 
						|
                    Game.GlobalEvent:DispatchEvent(GameEvent.Expedition.RefreshMainPanel)--刷新界面
 | 
						|
                end)
 | 
						|
            end,Language[10731],Language[11457])
 | 
						|
            -- 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)
 | 
						|
end
 | 
						|
 | 
						|
--界面销毁时调用(用于子类重写)
 | 
						|
function BattleFailPopup:OnDestroy()
 | 
						|
    this.spLoader:Destroy()
 | 
						|
 | 
						|
end
 | 
						|
 | 
						|
return BattleFailPopup |