UGCProjects/BoltGods/Script/UI/Child/WB_PlayerInfoItem_Small.lua
2025-01-04 23:00:19 +08:00

86 lines
2.5 KiB
Lua

---@class WB_PlayerInfoItem_Small_C:UUserWidget
---@field Button_AddFri UButton
---@field Image_HeadIcon UImage
---@field Image_No UImage
---@field Image_Self UImage
---@field Image_WeaponIcon UImage
---@field Overlay_Damage UOverlay
---@field Overlay_MVP UOverlay
---@field TextBlock_BodySize UTextBlock
---@field TextBlock_Damage UTextBlock
---@field TextBlock_KDA UTextBlock
---@field TextBlock_No UTextBlock
---@field TextBlock_PlayerName UTextBlock
---@field TextBlock_Weapon UTextBlock
---@field WidgetSwitcher_0 UWidgetSwitcher
--Edit Below--
---@type WB_PlayerInfoItem_Small_C
local WB_PlayerInfoItem_Small = { bInitDoOnce = false; };
WB_PlayerInfoItem_Small.PlayerKey = 0;
function WB_PlayerInfoItem_Small:Construct()
self:LuaInit();
end
function WB_PlayerInfoItem_Small:LuaInit()
if self.bInitDoOnce then return ; end
self.Button_AddFri.OnClicked:Add(self.OnClickAddFriend, self)
UITool.EnableButtonScroll(self.Button_AddFri)
self.bInitDoOnce = true;
end
function WB_PlayerInfoItem_Small:IsSelf(IsSelf)
if IsSelf then
self.Image_Self:SetVisibility(ESlateVisibility.SelfHitTestInvisible);
if not self.IsGaming then
self.Button_AddFri:SetVisibility(ESlateVisibility.Hidden);
end
end
end
function WB_PlayerInfoItem_Small:OnClickAddFriend()
---@type PlayerAccountInfo
local AccountInfo = GameState.PlayerDatas.AccountInfo[self.PlayerKey];
UGCLogSystem.LogTree(string.format("[WB_PlayerInfoItem_Small:OnClickAddFriend] AccountInfo ="), AccountInfo)
if AccountInfo then
UGCGameSystem.AddFriend(AccountInfo.UID);
end
end
WB_PlayerInfoItem_Small.IsGaming = false;
function WB_PlayerInfoItem_Small:SetRoundInfo(Index, RoundInfo)
self.TextBlock_No:SetText(tostring(Index));
local PlayerKey = RoundInfo.Winner;
local Info = GameState.PlayerDatas.AccountInfo[PlayerKey]
if Info then
self.TextBlock_PlayerName:SetText(Info.PlayerName);
end
if RoundInfo.Time then
if RoundInfo.Time > 100 then
self.TextBlock_Damage:SetText(string.format('%0.0f', RoundInfo.Time));
else
self.TextBlock_Damage:SetText(string.format('%0.1f', RoundInfo.Time));
end
end
if RoundInfo.Weapon then
local WeaponInfo = UGCItemSystem.GetItemData(RoundInfo.Weapon);
self.TextBlock_Weapon:SetText(WeaponInfo.ItemName);
UE.AsyncLoadObject_Cached(WeaponInfo.ItemSmallIcon_n, function(TargetObject)
self.Image_WeaponIcon:SetBrushFromTexture(TargetObject);
end)
end
end
-- function WB_PlayerInfoItem_Small_Small:Tick(MyGeometry, InDeltaTime)
-- end
-- function WB_PlayerInfoItem_Small_Small:Destruct()
-- end
return WB_PlayerInfoItem_Small;