74 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			Lua
		
	
			
		
		
	
	
			74 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			Lua
		
	
-- 管理需要UI表现得的数据
 | 
						|
FightUIManager = {};
 | 
						|
local this = FightUIManager
 | 
						|
 | 
						|
function this.Initialize()
 | 
						|
    this.rankInfo = {}  -- 实时排行数据
 | 
						|
    this.lastRankInfo = {} -- 刷新前的排行数据
 | 
						|
    this.playerInfo = {}  -- 玩家们
 | 
						|
    this._FightResultScoreData = nil        -- 血战结束后分数变化数据
 | 
						|
    this.remainTime = 0  -- 在血战地图里呆的时间
 | 
						|
end
 | 
						|
 | 
						|
-- 格式化玩家排名信息
 | 
						|
function this.ReStoreRankInfo()
 | 
						|
    local newData = {}
 | 
						|
    for i, v in pairs(this.playerInfo) do
 | 
						|
        newData[#newData + 1] = v
 | 
						|
    end
 | 
						|
 | 
						|
 | 
						|
    table.sort(newData, function(a, b)
 | 
						|
        if a.nineralNum == b.nineralNum then
 | 
						|
            if a.killNum == b.killNum then
 | 
						|
                return a.id < b.id
 | 
						|
            else
 | 
						|
                return a.killNum > b.killNum
 | 
						|
            end
 | 
						|
        else
 | 
						|
            return a.nineralNum > b.nineralNum
 | 
						|
        end
 | 
						|
    end)
 | 
						|
 | 
						|
 | 
						|
    return newData
 | 
						|
end
 | 
						|
 | 
						|
-- 更新玩家的排名信息
 | 
						|
function this.UpDateRankInfo(agentInfo)
 | 
						|
    if agentInfo.type == 1 then
 | 
						|
        local playerInfo = {}
 | 
						|
        playerInfo.id = agentInfo.id
 | 
						|
        playerInfo.name = agentInfo.userName
 | 
						|
        playerInfo.nineralNum = agentInfo.Creature.mineral
 | 
						|
        playerInfo.killNum = agentInfo.Creature.killNums
 | 
						|
        this.playerInfo[agentInfo.id] = playerInfo
 | 
						|
    end
 | 
						|
 | 
						|
    Game.GlobalEvent:DispatchEvent(GameEvent.MapFight.RankInfoChange)
 | 
						|
end
 | 
						|
 | 
						|
-- 返回排序好的玩家信息
 | 
						|
function this.GetPlayerInfo()
 | 
						|
    return this.ReStoreRankInfo()
 | 
						|
end
 | 
						|
 | 
						|
-- 获取血战结束后的积分数据
 | 
						|
function FightUIManager.SetFightResultScoreData(dataList)
 | 
						|
    this._FightResultScoreData = {}
 | 
						|
    for _, data in ipairs(dataList) do
 | 
						|
        this._FightResultScoreData[data.uid] = data
 | 
						|
        -- 刷新我的积分
 | 
						|
        if data.uid == PlayerManager.uid then
 | 
						|
            MatchDataManager.SetMyScore(data.score)
 | 
						|
        end
 | 
						|
    end
 | 
						|
end
 | 
						|
function FightUIManager.GetFightResultScoreData(uid)
 | 
						|
    if not this._FightResultScoreData or not this._FightResultScoreData[uid] then
 | 
						|
        Log("您在战斗未结束时获取了结果数据")
 | 
						|
    end
 | 
						|
    return this._FightResultScoreData[uid]
 | 
						|
end
 | 
						|
 | 
						|
return this |