124 lines
4.7 KiB
Lua
124 lines
4.7 KiB
Lua
require("Base/BasePanel")
|
|
local ATMTeamRankPopup = Inherit(BasePanel)
|
|
local this = ATMTeamRankPopup
|
|
local _PlayerHeadList = {}
|
|
--初始化组件(用于子类重写)
|
|
function ATMTeamRankPopup:InitComponent()
|
|
this.spLoader = SpriteLoader.New()
|
|
this.btnBack = Util.GetGameObject(self.transform, "btnBack")
|
|
this.title = Util.GetGameObject(self.transform, "Title"):GetComponent("Text")
|
|
this.commonPanel = Util.GetGameObject(self.transform, "content/Common")
|
|
this.rankPanel = Util.GetGameObject(self.transform, "content/Rank")
|
|
this.emptyPanel = Util.GetGameObject(self.transform, "content/Empty")
|
|
this.emptyText = Util.GetGameObject(self.transform, "content/Empty/Image/Text"):GetComponent("Text")
|
|
this.scrollRoot = Util.GetGameObject(self.transform, "content/Rank/scrollpos")
|
|
this.recordPre = Util.GetGameObject(this.scrollRoot, "mem")
|
|
|
|
local rootWidth = this.scrollRoot.transform.rect.width
|
|
local rootHeight = this.scrollRoot.transform.rect.height
|
|
this.ScrollView = SubUIManager.Open(SubUIConfig.ScrollCycleView, this.scrollRoot.transform,
|
|
this.recordPre, nil, Vector2.New(rootWidth, rootHeight), 1, 1, Vector2.New(0,0))
|
|
this.ScrollView.moveTween.Strength = 2
|
|
end
|
|
|
|
--绑定事件(用于子类重写)
|
|
function ATMTeamRankPopup:BindEvent()
|
|
Util.AddClick(this.btnBack, function ()
|
|
self:ClosePanel()
|
|
end)
|
|
end
|
|
|
|
--添加事件监听(用于子类重写)
|
|
function ATMTeamRankPopup:AddListener()
|
|
end
|
|
|
|
--移除事件监听(用于子类重写)
|
|
function ATMTeamRankPopup:RemoveListener()
|
|
end
|
|
|
|
--界面打开时调用(用于子类重写)
|
|
function ATMTeamRankPopup:OnOpen(...)
|
|
-- 请求数据
|
|
local dataList = ArenaTopMatchManager.GetMyTeamRankInfo()
|
|
if #dataList == 0 then
|
|
this.emptyPanel:SetActive(true)
|
|
this.rankPanel:SetActive(false)
|
|
this.emptyText.text = Language[10130]
|
|
else
|
|
this.emptyPanel:SetActive(false)
|
|
this.rankPanel:SetActive(true)
|
|
-- 设置数据
|
|
this.ScrollView:SetData(dataList, function(index, go)
|
|
this.RefreshData(go, dataList[index])
|
|
end)
|
|
end
|
|
this.title.text = Language[10131]
|
|
this.commonPanel:SetActive(false)
|
|
end
|
|
|
|
function this.RefreshData(go, data)
|
|
--- 基础信息
|
|
local head = Util.GetGameObject(go, "head")
|
|
local rankBg = Util.GetGameObject(go, "rank")
|
|
local rankLab = Util.GetGameObject(rankBg, "num")
|
|
local name = Util.GetGameObject(go, "name"):GetComponent("Text")
|
|
local force = Util.GetGameObject(go, "force"):GetComponent("Text")
|
|
local score = Util.GetGameObject(go, "score"):GetComponent("Text")
|
|
|
|
local personInfo = data.personInfo
|
|
Util.GetGameObject(go,"bg/selfBg"):SetActive(personInfo.uid == PlayerManager.uid)
|
|
-- 排名
|
|
if personInfo.rank > 0 and personInfo.rank <= 2 then
|
|
rankBg:GetComponent("Image").sprite = this.spLoader:LoadSprite("r_playerrumble_paiming_0"..personInfo.rank)
|
|
rankBg:GetComponent("Image"):SetNativeSize()
|
|
rankLab:SetActive(false)
|
|
else
|
|
rankBg:GetComponent("Image").sprite = this.spLoader:LoadSprite("r_hero_zhuangbeidi")
|
|
rankBg:GetComponent("RectTransform").sizeDelta = Vector2.New(120, 120)
|
|
rankLab:GetComponent("Text").text = personInfo.rank <= 0 and "200+" or personInfo.rank
|
|
rankLab:SetActive(true)
|
|
end
|
|
-- 基础信息
|
|
name.text = personInfo.name
|
|
force.text = personInfo.totalForce
|
|
local deltaIntegral = ArenaTopMatchManager.GetMatchDeltaIntegral()
|
|
score.text = personInfo.score * deltaIntegral --> 0 and personInfo.score * deltaIntegral or Language[10122]
|
|
|
|
if not _PlayerHeadList[go] then
|
|
_PlayerHeadList[go] = SubUIManager.Open(SubUIConfig.PlayerHeadView, head.transform)
|
|
end
|
|
_PlayerHeadList[go]:Reset()
|
|
_PlayerHeadList[go]:SetScale(Vector3.one * 0.7)
|
|
_PlayerHeadList[go]:SetHead(personInfo.head)
|
|
_PlayerHeadList[go]:SetFrame(personInfo.headFrame)
|
|
_PlayerHeadList[go]:SetLayer(this.sortingOrder)
|
|
_PlayerHeadList[go]:SetEffectScale(0.8)
|
|
|
|
Util.AddOnceClick(head,function()
|
|
if personInfo.uid ~= PlayerManager.uid then
|
|
UIManager.OpenPanel(UIName.PlayerInfoPopup, personInfo.uid, PLAYER_INFO_VIEW_TYPE.TOP_MATCH)
|
|
end
|
|
end)
|
|
|
|
end
|
|
|
|
--界面打开或者重新打开后,界面刷新时调用(用于子类重写)
|
|
function ATMTeamRankPopup:OnShow()
|
|
end
|
|
|
|
--界面关闭时调用(用于子类重写)
|
|
function ATMTeamRankPopup:OnClose()
|
|
end
|
|
|
|
--界面销毁时调用(用于子类重写)
|
|
function ATMTeamRankPopup:OnDestroy()
|
|
this.spLoader:Destroy()
|
|
for _, playerHead in pairs(_PlayerHeadList) do
|
|
playerHead:Recycle()
|
|
end
|
|
_PlayerHeadList = {}
|
|
|
|
this.ScrollView = nil
|
|
end
|
|
|
|
return ATMTeamRankPopup |