71 lines
2.7 KiB
Lua
Raw Normal View History

2025-01-04 23:00:19 +08:00
---@class WB_SettlementItem_C:UUserWidget
---@field ShowAnim UWidgetAnimation
---@field ShowDefensiveSuccess UWidgetAnimation
---@field Button_Result_AddFriend UButton
---@field Image_PlayerIcon UImage
---@field TextBlock_BreakThrough UTextBlock
---@field TextBlock_K UTextBlock
---@field TextBlock_PlayerName UTextBlock
---@field TextBlock_RankNum UTextBlock
---@field TextBlock_Score UTextBlock
---@field WidgetSwitcher_IsLocalPlayer UWidgetSwitcher
--Edit Below--
---@type WB_SettlementItem_C
local WB_SettlementItem = {
bInitDoOnce = false;
PlayerKey = -1;
bDefendSucceed = false;
};
function WB_SettlementItem:LuaInit()
if self.bInitDoOnce then
return;
end
self.bInitDoOnce = true;
WidgetLibrary.BindButtonClicked(self.Button_Result_AddFriend, self.AddFriend, self)
end
function WB_SettlementItem:InitRankInfo(InPlayerKey, RankNum)
UGCLogSystem.Log("[WB_SettlementItem_InitRankInfo]")
self:LuaInit()
self.PlayerKey = InPlayerKey
if self.PlayerKey == UGCSystemLibrary.GetLocalPlayerKey() then
self.WidgetSwitcher_IsLocalPlayer:SetActiveWidgetIndex(1)
self.Button_Result_AddFriend:SetVisibility(ESlateVisibility.Collapsed)
else
self.WidgetSwitcher_IsLocalPlayer:SetActiveWidgetIndex(0)
end
local PlayerName = UGCGameSystem.GameState:GetPlayerNameByPlayerKey(self.PlayerKey);
self.TextBlock_RankNum:SetText(tostring(RankNum));
self.TextBlock_PlayerName:SetText(PlayerName);
self.TextBlock_Score:SetText(tostring(PlayerScoreSystem.GetPlayerScore(InPlayerKey)))
self.TextBlock_K:SetText(tostring(PlayerScoreSystem.GetPlayerScoreDataFromType(InPlayerKey, PlacementModeConfig.AddScoreType.KillAddScore)))
self.TextBlock_BreakThrough:SetText(tostring(PlayerScoreSystem.GetPlayerScoreDataFromType(InPlayerKey, PlacementModeConfig.AddScoreType.EnterDefenseLineAddScore)))
self.bDefendSucceed = PlayerScoreSystem.GetPlayerScoreDataFromType(InPlayerKey, PlacementModeConfig.AddScoreType.DefendSucceedAddScore) > 0
UGCSystemLibrary.DownloadImageToUImage(self.Image_PlayerIcon, UGCGameSystem.GameState:GetHeadIconByPlayerKey(self.PlayerKey));
UGCEventSystem.SetTimer(self, self.ShowPanelAnim, 0.5 + RankNum * 0.3)
end
function WB_SettlementItem:ShowPanelAnim()
UGCLogSystem.Log("[WB_SettlementItem_ShowPanelAnim]")
self:PlayAnimation(self.ShowAnim, 0, 1, EUMGSequencePlayMode.Forward, 1.0)
if self.bDefendSucceed then
UGCEventSystem.SetTimer(self, function()
self:PlayAnimation(self.ShowDefensiveSuccess, 0, 1, EUMGSequencePlayMode.Forward, 1.0)
end, 1)
end
end
function WB_SettlementItem:AddFriend()
local TargetPlayerData = UGCGameSystem.GameState.PlayerPersonalInfos[self.PlayerKey]
if TargetPlayerData then
UGCGameSystem.AddFriend(TargetPlayerData.UID)
end
end
return WB_SettlementItem;