108 lines
3.0 KiB
Lua
108 lines
3.0 KiB
Lua
|
---@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;
|