44 lines
1.4 KiB
Lua
44 lines
1.4 KiB
Lua
---@class WB_ParkourRank_C:UUserWidget
|
|
---@field My_ParkourRankItem UWB_ParkourRankItem_C
|
|
---@field VerticalBox_Rank UVerticalBox
|
|
--Edit Below--
|
|
---@type WB_ParkourRank_C
|
|
local WB_ParkourRank = {
|
|
bInitDoOnce = false;
|
|
LeftTeamType = 1;
|
|
RightTeamType = 2;
|
|
};
|
|
|
|
function WB_ParkourRank:Construct()
|
|
UGCEventSystem.AddListener(EventEnum.UpdatePlayerScoreData, self.UpdateRank, self);
|
|
for i = 0, self.VerticalBox_Rank:GetChildrenCount() - 1 do
|
|
local ItemInst = self.VerticalBox_Rank:GetChildAt(i)
|
|
ItemInst:SetIndex(i + 1)
|
|
end
|
|
end
|
|
|
|
function WB_ParkourRank:UpdateRank()
|
|
-- ScoreData: {[PlayerKey] = {Kill = int32, Dead = int32, Score = float}...}
|
|
local RankData = PlayerScoreSystem.GetRank()
|
|
UGCLogSystem.LogTree("[WB_ParkourRank_UpdateRank]", RankData)
|
|
|
|
|
|
|
|
for i = 0, self.VerticalBox_Rank:GetChildrenCount() - 1 do
|
|
local ItemInst = self.VerticalBox_Rank:GetChildAt(i)
|
|
local PlayerKey = RankData[i + 1]
|
|
if PlayerKey then
|
|
ItemInst:SetVisibility(ESlateVisibility.SelfHitTestInvisible)
|
|
ItemInst:InitRankInfo(PlayerKey)
|
|
else
|
|
ItemInst:SetVisibility(ESlateVisibility.Collapsed)
|
|
end
|
|
if PlayerKey == UGCSystemLibrary.GetLocalPlayerKey() then
|
|
self.My_ParkourRankItem:InitRankInfo(PlayerKey)
|
|
self.My_ParkourRankItem:SetIndex(i + 1)
|
|
end
|
|
end
|
|
|
|
end
|
|
|
|
return WB_ParkourRank; |