2025-01-04 23:00:19 +08:00

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;