---@class WB_RankListItem_C:UUserWidget ---@field Image_3 UImage ---@field Image_BG UImage ---@field Image_Icon UImage ---@field Image_SelfFrame UImage ---@field ProgressBar_Rank UProgressBar ---@field TextBlock_kda UTextBlock ---@field TextBlock_PlayerName UTextBlock ---@field TextBlock_RankNum UTextBlock ---@field TextBlock_RankPercent UTextBlock ---@field WidgetSwitcher_1 UWidgetSwitcher --Edit Below-- ---@type WB_RankListItem_C local WB_RankListItem = { bInitDoOnce = false; OwnerPlayerKey = 0; PlayerTeam = 1; DefaultColor = {R =0.955974, G=0.246201, B=0.082283, A=1.}; UpdateColorSucceed = false; AzureColor = { R = 0.06, G = 0.5, B = 1., A = 1 }; OrangeColor = {R =0.955974, G=0.246201, B=0.082283, A=1.}; }; function WB_RankListItem:Construct() self:LuaInit() end function WB_RankListItem:LuaInit() if self.bInitDoOnce then return ; end self.bInitDoOnce = true; self:UpdateColor() end function WB_RankListItem:UpdateColor() -- body if self.UpdateColorSucceed == true then return end self.PlayerTeam = UGCGameSystem.GameState:GetPlayerTeamId(WidgetManager.OwnerController.PlayerKey) if self.PlayerTeam == 1 then self.DefaultColor = self.OrangeColor elseif self.PlayerTeam == 2 then self.DefaultColor = self.AzureColor else return end -- self.DefaultColor = DefaultSettings.FloorMaterials[DefaultSettings.TeamColors[self.PlayerTeam]] UGCLogSystem.LogTree("[WB_RankListItem:UpdateColor] self.DefaultColor = ", self.DefaultColor); self.ProgressBar_Rank:SetFillColorAndOpacity(self.DefaultColor) self.UpdateColorSucceed = true end -- function WB_RankListItem:Tick(MyGeometry, InDeltaTime) -- end -- function WB_RankListItem:Destruct() -- end -- 相当于初始化 function WB_RankListItem:UpdateRankInfo(RankNum, InPlayerKey, PlayerDamage, InTotal, KDA) self:UpdateColor() self.OwnerPlayerKey = InPlayerKey; self.TextBlock_PlayerName:SetText(UGCGameSystem.GameState.PlayerInfos[InPlayerKey].PlayerName) self:SetDamage(PlayerDamage, InTotal) self:UpdateItemPlayerKDA(KDA) self.TextBlock_RankNum:SetText(tostring(RankNum)) if WidgetManager.OwnerController.PlayerKey == InPlayerKey then self.Image_SelfFrame:SetVisibility(ESlateVisibility.SelfHitTestInvisible) else self.Image_SelfFrame:SetVisibility(ESlateVisibility.Collapsed) end --if not UE_BUILD_TEST then -- local IconURL = UGCGameSystem.GameState.PlayerInfos[InPlayerKey].AccountInfo.IconURL -- WidgetManager:GetPlayerHeadSculpture(self.Image_Icon, IconURL) --end end -- 玩家 KDA -- { -- KillCount = 0, -- 击杀数 -- DeadCount = 0; -- 死亡数 -- AssistCount = 0; -- 助攻数 } -- } function WB_RankListItem:UpdateItemPlayerKDA(InList) self.TextBlock_kda:SetText(string.format("%d", InList.KillCount)) end function WB_RankListItem:SetDamage(InData, InTotal) if InData == nil then InData = 0. end if InTotal == nil then InTotal = 1. end self.ProgressBar_Rank:SetPercent(InData / InTotal); self.TextBlock_RankPercent:SetText(string.format("%0.1f%%", InData / InTotal * 100.)) end return WB_RankListItem;