miduo_client/Assets/ManagedResources/~Lua/Modules/Arena/ArenaResultPopup.lua

143 lines
5.0 KiB
Lua
Raw Normal View History

2020-05-09 13:31:21 +08:00

require("Base/BasePanel")
local ArenaResultPopup = Inherit(BasePanel)
local this = ArenaResultPopup
local orginLayer
--初始化组件(用于子类重写)
function ArenaResultPopup:InitComponent()
orginLayer = 0
this.mask = Util.GetGameObject(self.transform, "mask")
this.win = Util.GetGameObject(self.transform, "win")
this.lose = Util.GetGameObject(self.transform, "lose")
this.winEffect = Util.GetGameObject(self.transform, "win/Effect")
this.loseEffect = Util.GetGameObject(self.transform, "lose/Effect (1)")
this.btnResult = Util.GetGameObject(self.transform, "btnResult")
screenAdapte(this.winEffect)
screenAdapte(this.loseEffect)
end
--绑定事件(用于子类重写)
function ArenaResultPopup:BindEvent()
Util.AddClick(this.mask, function()
self:ClosePanel()
end)
Util.AddClick(this.btnResult, function()
UIManager.OpenPanel(UIName.DamageResultPanel, this.realResult)
end)
end
--添加事件监听(用于子类重写)
function ArenaResultPopup:AddListener()
end
--移除事件监听(用于子类重写)
function ArenaResultPopup:RemoveListener()
end
function ArenaResultPopup:OnSortingOrderChange()
Util.AddParticleSortLayer(this.winEffect, self.sortingOrder - orginLayer)
Util.AddParticleSortLayer(this.loseEffect, self.sortingOrder - orginLayer)
orginLayer = self.sortingOrder
end
--界面打开时调用(用于子类重写)
function ArenaResultPopup:OnOpen(...)
SoundManager.PlaySound(SoundConfig.Sound_Arena_Result)
local pack = {...}
local args = pack[1]
if not args then return end
this.realResult = args.result
local panelType = args.panelType or 0
local isWin = args.result == 1
local blueInfo = args.blue
local redInfo = args.red
-- 如果我在防守方,交换数据,我要显示在蓝方
if redInfo.uid == PlayerManager.uid then
blueInfo = args.red
redInfo = args.blue
isWin = not isWin
end
this.win:SetActive(isWin)
this.winEffect:SetActive(isWin)
this.lose:SetActive(not isWin)
this.loseEffect:SetActive(not isWin)
local _CurPanel = isWin and this.win or this.lose
local blueName = Util.GetGameObject(_CurPanel, "Left/Grade/name")
local blueHeadIcon = Util.GetGameObject(_CurPanel, "Left/Grade/headIcon")
local blueHeadBg = Util.GetGameObject(_CurPanel, "Left/Grade/headBg")
local blueScore = Util.GetGameObject(_CurPanel, "Left/Grade/score")
local blueResult = Util.GetGameObject(_CurPanel, "Left/result")
local redName = Util.GetGameObject(_CurPanel, "Right/Grade/name")
local redHeadIcon = Util.GetGameObject(_CurPanel, "Right/Grade/headIcon")
local redHeadBg = Util.GetGameObject(_CurPanel, "Right/Grade/headBg")
local redScore = Util.GetGameObject(_CurPanel, "Right/Grade/score")
local redResult = Util.GetGameObject(_CurPanel, "Right/result")
local bigResult = Util.GetGameObject(_CurPanel, "ShiBai_WenZi"):GetComponent("Image")
-- 昵称
blueName:GetComponent("Text").text = blueInfo.name
redName:GetComponent("Text").text = redInfo.name
-- 头像
blueHeadIcon:GetComponent("Image").sprite = GetPlayerHeadSprite(blueInfo.head)
blueHeadBg:GetComponent("Image").sprite = GetPlayerHeadFrameSprite(blueInfo.frame)
redHeadIcon:GetComponent("Image").sprite = GetPlayerHeadSprite(redInfo.head)
redHeadBg:GetComponent("Image").sprite = GetPlayerHeadFrameSprite(redInfo.frame)
-- 积分
local bScore = blueInfo.deltaScore
if bScore then
blueScore:SetActive(true)
local blueScoreColor = bScore >= 0 and UIColorStr.GREEN or UIColorStr.RED
local blueScoreStr = bScore >= 0 and "+"..bScore or bScore
2020-06-23 18:36:24 +08:00
blueScore:GetComponent("Text").text = string.format(Language[10093], blueScoreColor, blueScoreStr)
2020-05-09 13:31:21 +08:00
else
blueScore:SetActive(false)
end
local rScore = redInfo.deltaScore
if rScore then
redScore:SetActive(true)
local redScoreColor = rScore >= 0 and UIColorStr.GREEN or UIColorStr.RED
local redScoreStr = rScore >= 0 and "+"..rScore or rScore
2020-06-23 18:36:24 +08:00
redScore:GetComponent("Text").text = string.format(Language[10093],redScoreColor, redScoreStr)
2020-05-09 13:31:21 +08:00
else
redScore:SetActive(false)
end
-- 判断显示类型
if panelType == 0 then
blueResult:SetActive(false)
redResult:SetActive(false)
bigResult.sprite = Util.LoadSprite(isWin and "UI_effect_JJC_JieSuan_ShengLi_png" or "UI_effect_JJC_JieSuan_ShiBai_png")
bigResult:SetNativeSize()
else
blueResult:SetActive(true)
redResult:SetActive(true)
bigResult.sprite = Util.LoadSprite("r_playerrumble_wan")
bigResult.transform.sizeDelta = Vector2.New(420, 420)
end
this._IsWin = isWin
2020-05-15 16:52:35 +08:00
local isRecord, record = BattleRecordManager.isHaveRecord()
2020-05-09 13:31:21 +08:00
this.btnResult:SetActive(isRecord)
end
--界面关闭时调用(用于子类重写)
function ArenaResultPopup:OnClose()
end
--界面销毁时调用(用于子类重写)
function ArenaResultPopup:OnDestroy()
end
2020-06-23 18:36:24 +08:00
return ArenaResultPopup