---@class WB_SettlementItem_C:UUserWidget ---@field ShowAnim 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;