miduo_client/Assets/ManagedResources/~Lua/Modules/ArenaTopMatch/TopMatchPlayBattleAinSelect...

132 lines
4.4 KiB
Lua

require("Base/BasePanel")
TopMatchPlayBattleAinSelectPopup = Inherit(BasePanel)
local this = TopMatchPlayBattleAinSelectPopup
local resultRes = {
[0] = "UI_effect_JJC_JieSuan_ShiBai_png_zh",
[1] = "UI_effect_JJC_JieSuan_ShengLi_png_zh",
}
--初始化组件(用于子类重写)
function TopMatchPlayBattleAinSelectPopup:InitComponent()
this.spLoader = SpriteLoader.New()
this.btnBack = Util.GetGameObject(self.transform, "btnBack")
this.title = Util.GetGameObject(self.transform, "Title"):GetComponent("Text")
this.battleRecord = {}
for i = 1, 3 do
this.battleRecord[i] = Util.GetGameObject(self.transform, "content/pre ("..i..")")
end
this.playerHead={}--玩家头像列表
end
--绑定事件(用于子类重写)
function TopMatchPlayBattleAinSelectPopup:BindEvent()
Util.AddClick(this.btnBack, function ()
self:ClosePanel()
end)
end
--添加事件监听(用于子类重写)
function TopMatchPlayBattleAinSelectPopup:AddListener()
end
--移除事件监听(用于子类重写)
function TopMatchPlayBattleAinSelectPopup:RemoveListener()
end
--界面打开时调用(用于子类重写)
function TopMatchPlayBattleAinSelectPopup:OnOpen(v)
this.title.text = Language[10139]
for i = 1, 3 do
local curPre = this.battleRecord[i]
if curPre then
if #v >= i then
curPre:SetActive(true)
this.SetPreShow(i,curPre,v[i])
else
curPre:SetActive(false)
end
end
end
end
function this.SetPreShow(index,curPre,v)
Util.GetGameObject(curPre, "titleText"):GetComponent("Text").text = string.format(Language[10142], index)
Util.AddOnceClick(Util.GetGameObject(curPre, "PlayBackBtn"), function ()
this.SetPlayBack(v.fightResult,v.id,v.defInfo,v.attackInfo)
end)
this.SetHead( Util.GetGameObject(curPre, "attackInfo"),v.attackInfo,v.fightResult == 1)
this.SetHead(Util.GetGameObject(curPre, "defInfo"),v.defInfo,v.fightResult == 0)
end
function this.SetHead(curPre,data,isShowWinImage)
local head= Util.GetGameObject(curPre,"head")
local name= Util.GetGameObject(curPre,"nameBg/Text"):GetComponent("Text")
local winOrFail= Util.GetGameObject(curPre,"winOrFail"):GetComponent("Image")
if isShowWinImage then
winOrFail.sprite = this.spLoader:LoadSprite(resultRes[1])
else
winOrFail.sprite = this.spLoader:LoadSprite(resultRes[0])
end
if data then
if not this.playerHead[curPre] then
this.playerHead[curPre] = CommonPool.CreateNode(POOL_ITEM_TYPE.PLAYER_HEAD,head)
end
this.playerHead[curPre]:Reset()
this.playerHead[curPre]:SetScale(Vector3.one)
this.playerHead[curPre]:SetHead(data.head)
this.playerHead[curPre]:SetFrame(data.headFrame)
this.playerHead[curPre]:SetLevel(data.level)
this.playerHead[curPre]:SetLayer(this.sortingOrder)
name.text=data.name
Util.AddOnceClick(head,function()
UIManager.OpenPanel(UIName.PlayerInfoPopup, data.uid)
end)
else
if this.playerHead[curPre] then
this.playerHead[curPre] = nil
end
name.text=""
end
end
--设置战斗回放按钮
function this.SetPlayBack(fightResult, id, defInfo, attackInfo)
if fightResult == -1 then
return
end
-- playBackBtn:SetActive(_IsShowData and fightResult~=-1)
-- Util.AddOnceClick(playBackBtn,function()
ArenaTopMatchManager.RequestRecordFightData(fightResult,id, attackInfo.name.."|"..defInfo.name,function()
--构建显示结果数据(我永远在蓝方)
local arg = {}
arg.panelType = 1
arg.result = fightResult
arg.blue = {}
arg.blue.uid = attackInfo.uid
arg.blue.name = attackInfo.name
arg.blue.head = attackInfo.head
arg.blue.frame = attackInfo.headFrame
arg.red = {}
arg.red.uid = defInfo.uid
arg.red.name = defInfo.name
arg.red.head = defInfo.head
arg.red.frame = defInfo.headFrame
UIManager.OpenPanel(UIName.ArenaResultPopup, arg)
end)
-- end)
end
--界面关闭时调用(用于子类重写)
function TopMatchPlayBattleAinSelectPopup:OnClose()
end
--界面销毁时调用(用于子类重写)
function TopMatchPlayBattleAinSelectPopup:OnDestroy()
this.spLoader:Destroy()
end
return TopMatchPlayBattleAinSelectPopup