125 lines
4.6 KiB
Lua
125 lines
4.6 KiB
Lua
---@class WB_ShowVSPlayerInfo_C:UUserWidget
|
|
---@field ShowPK UWidgetAnimation
|
|
---@field Common_Avatar_BP_C_Enemy UCommon_Avatar_BP_C
|
|
---@field Common_Avatar_BP_C_Self UCommon_Avatar_BP_C
|
|
---@field Image_EnemyDan UImage
|
|
---@field Image_EnemyHead UImage
|
|
---@field Image_SelfDan UImage
|
|
---@field Image_SelfHead UImage
|
|
---@field TextBlock_EnemyHideScore UTextBlock
|
|
---@field TextBlock_EnemyName UTextBlock
|
|
---@field TextBlock_EnemyScore UTextBlock
|
|
---@field TextBlock_SelfHideScore UTextBlock
|
|
---@field TextBlock_SelfName UTextBlock
|
|
---@field TextBlock_SelfScore UTextBlock
|
|
---@field WidgetSwitcher_0 UWidgetSwitcher
|
|
---@field WidgetSwitcher_1 UWidgetSwitcher
|
|
--Edit Below--
|
|
---@type WB_ShowVSPlayerInfo_C
|
|
local WB_ShowVSPlayerInfo = { bInitDoOnce = false }
|
|
|
|
function WB_ShowVSPlayerInfo:Construct()
|
|
self:LuaInit();
|
|
end
|
|
|
|
|
|
-- function WB_ShowVSPlayerInfo:Tick(MyGeometry, InDeltaTime)
|
|
|
|
-- end
|
|
|
|
-- function WB_ShowVSPlayerInfo:Destruct()
|
|
|
|
-- end
|
|
|
|
-- [Editor Generated Lua] function define Begin:
|
|
function WB_ShowVSPlayerInfo:LuaInit()
|
|
if self.bInitDoOnce then return ; end
|
|
self.bInitDoOnce = true;
|
|
UGCGameSystem.SetTimer(self, function()
|
|
self:InsertPlayerInfo();
|
|
end, 10);
|
|
end
|
|
|
|
function WB_ShowVSPlayerInfo:OnShowPanel()
|
|
if table.getCount(UE.GetAccountInfo()) > 1 then
|
|
self:PlayAnimation(self.ShowPK, 0, 1, EUMGSequencePlayMode.Forward, 1.0);
|
|
-- 延迟移除
|
|
UGCLogSystem.Log("[WB_ShowVSPlayerInfo:OnShowPanel] ShowPK Time = %s", tostring(self.ShowPK:GetEndTime()));
|
|
UGCEventSystem.SetTimer(self, function()
|
|
self.Common_Avatar_BP_C_Enemy:SetVisibility(ESlateVisibility.Collapsed);
|
|
self.Common_Avatar_BP_C_Self:SetVisibility(ESlateVisibility.Collapsed);
|
|
self:SetVisibility(ESlateVisibility.Collapsed);
|
|
WidgetManager:ClosePanel(WidgetConfig.EUIType.ShowPK);
|
|
end, self.ShowPK:GetEndTime());
|
|
else
|
|
self.Common_Avatar_BP_C_Enemy:SetVisibility(ESlateVisibility.Collapsed);
|
|
self.Common_Avatar_BP_C_Self:SetVisibility(ESlateVisibility.Collapsed);
|
|
self:SetVisibility(ESlateVisibility.Collapsed);
|
|
WidgetManager:ClosePanel(WidgetConfig.EUIType.ShowPK);
|
|
end
|
|
end
|
|
|
|
function WB_ShowVSPlayerInfo:InsertPlayerInfo()
|
|
UGCLogSystem.Log("[WB_ShowVSPlayerInfo:InsertPlayerInfo] 执行")
|
|
for PlayerKey, Archive in pairs(ArchiveTable) do
|
|
self:UpdatePlayerInfo(PlayerKey, {
|
|
UID = AccountTable[PlayerKey].UID,
|
|
IconURL = AccountTable[PlayerKey].IconURL,
|
|
Gender = AccountTable[PlayerKey].Gender,
|
|
AvatarBoxId = AccountTable[PlayerKey].AvatarBoxId,
|
|
PlayerLevel = AccountTable[PlayerKey].PlayerLevel,
|
|
PlayerName = AccountTable[PlayerKey].PlayerName,
|
|
Score = Archive.Score,
|
|
HideScore = Archive.HideScore,
|
|
});
|
|
end
|
|
end
|
|
|
|
---@param HeadInfo table {UID:string, IconURL:string, Gender:int, AvatarBoxId:int, PlayerLevel:int, PlayerName:string, Score:uint, HideScore:uint} 其中AvatarBoxId可以从PlayerState中获取
|
|
function WB_ShowVSPlayerInfo:UpdatePlayerInfo(PlayerKey, PlayerInfo)
|
|
UGCLogSystem.LogTree(string.format("[WB_ShowVSPlayerInfo:UpdatePlayerInfo] PlayerInfo ="), PlayerInfo)
|
|
local Dan = 1
|
|
for i, v in pairs(RankInformationTable.DanInfo) do
|
|
if v.MinScore <= PlayerInfo.Score then Dan = i; end
|
|
end
|
|
|
|
UGCLogSystem.Log("[WB_ShowVSPlayerInfo:UpdatePlayerInfo] PlayerName = %s", PlayerInfo.PlayerName)
|
|
local ShowSelf = false;
|
|
if LocalIsFriendSpectator or LocalIsGlobalSpectator then
|
|
ShowSelf = UE.GetTeamID(PlayerKey) == 1;
|
|
else
|
|
ShowSelf = PlayerKey == LocalPlayerKey;
|
|
end
|
|
|
|
if ShowSelf then
|
|
self.TextBlock_SelfName:SetText(PlayerInfo.PlayerName)
|
|
self.TextBlock_SelfScore:SetText(PlayerInfo.Score)
|
|
if PlayerInfo.HideScore > 0 then
|
|
self.TextBlock_SelfHideScore:SetText('(' .. PlayerInfo.HideScore .. ')')
|
|
else
|
|
self.TextBlock_SelfHideScore:SetText("")
|
|
end
|
|
|
|
UE.AsyncLoadObject(RankInformationTable.DanInfo[Dan].Icon, function(Tex)
|
|
self.Image_SelfDan:SetBrushFromTexture(Tex);
|
|
end);
|
|
self.Common_Avatar_BP_C_Self:InitView(2, PlayerInfo.UIDString, PlayerInfo.IconURL, PlayerInfo.Gender, PlayerInfo.AvatarBoxId, PlayerInfo.PlayerLevel, false, false)
|
|
else
|
|
self.TextBlock_EnemyName:SetText(PlayerInfo.PlayerName)
|
|
self.TextBlock_EnemyScore:SetText(PlayerInfo.Score)
|
|
if PlayerInfo.HideScore > 0 then
|
|
self.TextBlock_EnemyHideScore:SetText('(' .. PlayerInfo.HideScore .. ')')
|
|
else
|
|
self.TextBlock_EnemyHideScore:SetText("")
|
|
end
|
|
UE.AsyncLoadObject(RankInformationTable.DanInfo[Dan].Icon, function(Tex)
|
|
self.Image_EnemyDan:SetBrushFromTexture(Tex);
|
|
end);
|
|
self.Common_Avatar_BP_C_Enemy:InitView(2, PlayerInfo.UIDString, PlayerInfo.IconURL, PlayerInfo.Gender, PlayerInfo.AvatarBoxId, PlayerInfo.PlayerLevel, false, false)
|
|
end
|
|
|
|
end
|
|
|
|
-- [Editor Generated Lua] function define End;
|
|
|
|
return WB_ShowVSPlayerInfo |