c1_lua/lua/app/ui/arena/arena_recent_battle_ui.lua

122 lines
3.8 KiB
Lua

-- 竞技场:最近战报
local ArenaRecentBattleUI = class("ArenaRecentBattleUI", BaseUI)
function ArenaRecentBattleUI:isFullScreen()
return false
end
function ArenaRecentBattleUI:showCommonBG()
return false
end
function ArenaRecentBattleUI:getPrefabPath()
return "assets/prefabs/ui/arena/arena_recent_battle_ui.prefab"
end
function ArenaRecentBattleUI:onPressBackspace()
self:closeUI()
end
function ArenaRecentBattleUI:ctor()
ModuleManager.ArenaManager:reqRecord()
end
function ArenaRecentBattleUI:onCover()
end
function ArenaRecentBattleUI:onReshow()
end
function ArenaRecentBattleUI:onClose()
end
function ArenaRecentBattleUI:onLoadRootComplete()
local uiMap = self.root:genAllChildren()
self.txTitle = uiMap["arena_recent_battle_ui.bg.title.tx_title"]
self.btnClose = uiMap["arena_recent_battle_ui.bg.btn_close"]
self.txResult = uiMap["arena_recent_battle_ui.bg.tab.tx_result"]
self.txName = uiMap["arena_recent_battle_ui.bg.tab.tx_name"]
self.txScore = uiMap["arena_recent_battle_ui.bg.tab.tx_score"]
self.txNone = uiMap["arena_recent_battle_ui.bg.tx_none"]
self.records = {}
for i = 1, 5 do
self.records[i] = uiMap["arena_recent_battle_ui.bg.records.battle_record_cell_"..i]
end
self.txTitle:setText(I18N:getGlobalText(I18N.GlobalConst.ARENA_DESC_7))
self.txResult:setText(I18N:getGlobalText(I18N.GlobalConst.ARENA_DESC_14))
self.txName:setText(I18N:getGlobalText(I18N.GlobalConst.ARENA_DESC_15))
self.txScore:setText(I18N:getGlobalText(I18N.GlobalConst.ARENA_DESC_16))
self.btnClose:addClickListener(function()
self:closeUI()
end)
self:addEventListener(EventManager.CUSTOM_EVENT.ARENA_RECORD_SUCCESS, function()
self:onRefresh()
end)
end
function ArenaRecentBattleUI:onRefresh()
local showCount = 0
for idx, obj in pairs(self.records) do
local info = DataManager.ArenaData:getRecentBattleByIdx(idx)
if info then
showCount = showCount + 1
obj:setActive(true)
self:refreshRecord(obj, info)
else
obj:setActive(false)
end
end
if showCount == 0 then
self.txNone:setText(I18N:getGlobalText(I18N.GlobalConst.ARENA_DESC_8))
else
self.txNone:setText("")
end
end
function ArenaRecentBattleUI:refreshRecord(obj, info)
local uiMap = obj:genAllChildren()
local playerHeadCell = CellManager:addCellComp(uiMap["player_head_cell"], GConst.TYPEOF_LUA_CLASS.PLAYER_HEAD_CELL)
playerHeadCell:refresh(info.match_info.avatar, info.match_info.avatar_frame)
uiMap["player_head_cell"]:addClickListener(function()
ModuleManager.TipsManager:showHeroFormation(uiMap["player_head_cell"], GFunc.formatPlayerFormationInfo(info.match_info))
end)
local name = info.match_info.name
if name == nil or #name == 0 then
name = I18N:getGlobalText(I18N.GlobalConst.NEW_PLAYER)
end
uiMap["tx_name"]:setText(name)
if info.win then
obj:setSprite(GConst.ATLAS_PATH.ARENA,"arena_bg_3")
uiMap["tx_score"]:setText("<color=#2BFF35>+"..info.incr_score.."</color>")
uiMap["img_result"]:setSprite(GConst.ATLAS_PATH.ARENA, "arena_dec_2")
if info.attacker then
uiMap["tx_result"]:setText(I18N:getGlobalText(I18N.GlobalConst.ARENA_DESC_19))
else
uiMap["tx_result"]:setText(I18N:getGlobalText(I18N.GlobalConst.ARENA_DESC_17))
end
else
obj:setSprite(GConst.ATLAS_PATH.ARENA,"arena_bg_4")
if info.incr_score == 0 then
uiMap["tx_score"]:setText("<color=#FF5454>-"..info.incr_score.."</color>")
else
uiMap["tx_score"]:setText("<color=#FF5454>"..info.incr_score.."</color>")
end
uiMap["img_result"]:setSprite(GConst.ATLAS_PATH.ARENA, "arena_dec_3")
if info.attacker then
uiMap["tx_result"]:setText(I18N:getGlobalText(I18N.GlobalConst.ARENA_DESC_20))
else
uiMap["tx_result"]:setText(I18N:getGlobalText(I18N.GlobalConst.ARENA_DESC_18))
end
end
local timeObj = uiMap["tx_time"]
local time = GFunc.formatTimeStep(info.occur_at)
timeObj:setText(Time:formatBeforeTimeStr(time))
end
return ArenaRecentBattleUI