148 lines
4.5 KiB
Lua
148 lines
4.5 KiB
Lua
|
---@class WB_Item_KDA_Small_C:UUserWidget
|
||
|
---@field Image_HeadIcon UImage
|
||
|
---@field Image_Self UImage
|
||
|
---@field TextBlock_Assist UTextBlock
|
||
|
---@field TextBlock_Dead UTextBlock
|
||
|
---@field TextBlock_KDA UTextBlock
|
||
|
---@field TextBlock_Kill UTextBlock
|
||
|
---@field TextBlock_No UTextBlock
|
||
|
---@field TextBlock_PlayerName UTextBlock
|
||
|
--Edit Below--
|
||
|
---@type WB_PlayerInfoItem_C
|
||
|
local WB_PlayerInfoItem = { bInitDoOnce = false; };
|
||
|
|
||
|
WB_PlayerInfoItem.PlayerKey = 0;
|
||
|
|
||
|
function WB_PlayerInfoItem:Construct()
|
||
|
self:LuaInit();
|
||
|
end
|
||
|
|
||
|
function WB_PlayerInfoItem:LuaInit()
|
||
|
if self.bInitDoOnce then return ; end
|
||
|
|
||
|
self.bInitDoOnce = true;
|
||
|
end
|
||
|
|
||
|
--function WB_PlayerInfoItem:SetAsTitle()
|
||
|
-- self:SetIsMVP(false);
|
||
|
-- self:IsSelf(false);
|
||
|
--
|
||
|
--end
|
||
|
|
||
|
function WB_PlayerInfoItem:SetKDAItem(KDAItem)
|
||
|
self.TextBlock_KDA:SetText(KDAItem.KDA);
|
||
|
self.TextBlock_Kill:SetText(KDAItem.Kill);
|
||
|
self.TextBlock_Dead:SetText(KDAItem.Dead);
|
||
|
self.TextBlock_Assist:SetText(KDAItem.Assist);
|
||
|
|
||
|
self:SetPlayerKey(KDAItem.PlayerKey);
|
||
|
end
|
||
|
|
||
|
function WB_PlayerInfoItem:SetPlayerKey(InPlayerKey)
|
||
|
self:IsSelf(InPlayerKey == LocalPlayerKey);
|
||
|
local PlayerName = UE.GetPlayerName(InPlayerKey)
|
||
|
self.TextBlock_PlayerName:SetText(PlayerName);
|
||
|
UITool.DownloadImage(UE.GetPlayerIconURL(InPlayerKey), function(Texture)
|
||
|
self.Image_HeadIcon:SetBrushFromTextureDynamic(Texture);
|
||
|
end);
|
||
|
|
||
|
end
|
||
|
|
||
|
function WB_PlayerInfoItem:SetIsMVP(IsMVP)
|
||
|
self.Overlay_MVP:SetVisibility(ESlateVisibility.Hidden);
|
||
|
if IsMVP then
|
||
|
self.Overlay_MVP:SetVisibility(ESlateVisibility.SelfHitTestInvisible);
|
||
|
end
|
||
|
end
|
||
|
|
||
|
function WB_PlayerInfoItem:IsSelf(IsSelf)
|
||
|
if IsSelf then
|
||
|
self.Image_Self:SetVisibility(ESlateVisibility.SelfHitTestInvisible);
|
||
|
end
|
||
|
end
|
||
|
|
||
|
function WB_PlayerInfoItem:SetPlayerInfo(Info, InOwner)
|
||
|
UGCLogSystem.LogTree(string.format("[WB_PlayerInfoItem:SetPlayerInfo] Info ="), Info)
|
||
|
self.PlayerKey = Info.PlayerKey;
|
||
|
self:SetIsMVP(Info.No == 1);
|
||
|
self:IsSelf(Info.IsSelf)
|
||
|
self.TextBlock_No:SetText(tostring(Info.No));
|
||
|
self.TextBlock_PlayerName:SetText(Info.PlayerName);
|
||
|
self.TextBlock_Damage:SetText(string.format("%0.f", Info.Damage));
|
||
|
self.TextBlock_KDA:SetText(string.format("%.1f", Info.KDA));
|
||
|
|
||
|
local Icon = InOwner.HeadIcons[self.PlayerKey];
|
||
|
if Icon then
|
||
|
self.Image_HeadIcon:SetBrushFromTextureDynamic(Icon);
|
||
|
else
|
||
|
UITool.DownloadImage(Info.IconURL, function(Texture)
|
||
|
UGCLogSystem.Log("[WB_PlayerInfoItem:SetPlayerInfo] 执行")
|
||
|
self.Image_HeadIcon:SetBrushFromTextureDynamic(Texture);
|
||
|
end, function()
|
||
|
UGCLogSystem.Log("[WB_PlayerInfoItem:SetPlayerInfo] Failed")
|
||
|
end)
|
||
|
--UGCBackPackSystem.GetArmorInBackpack()
|
||
|
end
|
||
|
end
|
||
|
|
||
|
function WB_PlayerInfoItem:OnClickAddFriend()
|
||
|
---@type PlayerAccountInfo
|
||
|
local AccountInfo = GameState.PlayerDatas.AccountInfo[self.PlayerKey];
|
||
|
UGCLogSystem.LogTree(string.format("[WB_PlayerInfoItem:OnClickAddFriend] AccountInfo ="), AccountInfo)
|
||
|
if AccountInfo then
|
||
|
UGCGameSystem.AddFriend(AccountInfo.UID);
|
||
|
end
|
||
|
end
|
||
|
|
||
|
WB_PlayerInfoItem.IsGaming = false;
|
||
|
|
||
|
function WB_PlayerInfoItem:SetInGaming()
|
||
|
self.Overlay_MVP.SetVisibility(ESlateVisibility.Collapsed);
|
||
|
self.Button_AddFri:SetVisibility(ESlateVisibility.Collapsed);
|
||
|
self.Overlay_Damage:SetVisibility(ESlateVisibility.Collapsed);
|
||
|
self.IsGaming = true;
|
||
|
end
|
||
|
|
||
|
--- 设置信息
|
||
|
function WB_PlayerInfoItem:SetItemInfo(Index, Info)
|
||
|
UGCLogSystem.Log("[WB_PlayerInfoItem:SetItemInfo] Index = %s", tostring(Index));
|
||
|
if Info == nil then return ; end
|
||
|
self.TextBlock_No:SetText(tostring(Index));
|
||
|
local PlayerKey = Info.Winner;
|
||
|
local PlayerInfo = GameState.PlayerDatas.AccountInfo[PlayerKey]
|
||
|
if PlayerInfo then
|
||
|
self.TextBlock_PlayerName:SetText(PlayerInfo.PlayerName);
|
||
|
UITool.DownloadImage(PlayerInfo.IconURL, function(Texture)
|
||
|
self.Image_HeadIcon:SetBrushFromTextureDynamic(Texture);
|
||
|
end)
|
||
|
end
|
||
|
if Info.Time then
|
||
|
if Info.Time > 100 then
|
||
|
self.TextBlock_Damage:SetText(string.format('%0.0f', Info.Time));
|
||
|
else
|
||
|
self.TextBlock_Damage:SetText(string.format('%0.1f', Info.Time));
|
||
|
end
|
||
|
self.TextBlock_Damage:SetVisibility(ESlateVisibility.SelfHitTestInvisible);
|
||
|
else
|
||
|
self.TextBlock_Damage:SetVisibility(ESlateVisibility.Collapsed);
|
||
|
end
|
||
|
if Info.Weapon then
|
||
|
local WeaponInfo = UGCItemSystem.GetItemData(Info.Weapon);
|
||
|
if WeaponInfo then
|
||
|
self.TextBlock_BodySize:SetText(WeaponInfo.ItemName);
|
||
|
UE.AsyncLoadObject_Cached(WeaponInfo.ItemSmallIcon_n, function(TargetObject)
|
||
|
self.Image_WeaponIcon:SetBrushFromTexture(TargetObject);
|
||
|
end)
|
||
|
end
|
||
|
end
|
||
|
end
|
||
|
|
||
|
-- function WB_PlayerInfoItem:Tick(MyGeometry, InDeltaTime)
|
||
|
|
||
|
-- end
|
||
|
|
||
|
-- function WB_PlayerInfoItem:Destruct()
|
||
|
|
||
|
-- end
|
||
|
|
||
|
return WB_PlayerInfoItem;
|