---@class WB_Main_C:UAEUserWidget ---@field ShowScore UWidgetAnimation ---@field Button_FaceNotice UButton ---@field CanvasPanel_Prepare UCanvasPanel ---@field TextBlock_Prepare UTextBlock ---@field WB_BuffButton UWB_BuffButton_C ---@field WB_HoldProcess UWB_HoldProcess_C ---@field WB_PlayerScores UWB_PlayerScores_C ---@field WB_PlayerSoldiers UWB_PlayerSoldiers_C ---@field WB_RoundEnd UWB_RoundEnd_C ---@field WB_SelectParts UWB_SelectParts_C ---@field WB_SelectWeaponButton UWB_SelectWeaponButton_C ---@field WB_TestMain UWB_TestMain_C ---@field WB_Title1 UWB_Title1_C --Edit Below-- ---@type WB_Main_C local WB_Main = { bInitDoOnce = false; }; WB_Main.BuffButtons = {}; function WB_Main:Construct() UGCEventSystem.AddListener(EventTypes.ChangeBuffs, self.OnChangeBuffs, self) UITool.ButtonOnClickShowPanel(self.Button_FaceNotice, WidgetConfig.EUIType.FaceNotice, true); if DefaultSettings.EnableTest then self.WB_TestMain:LuaInit(); else self.WB_TestMain:SetVisibility(ESlateVisibility.Collapsed); end self.WB_RoundEnd:LuaInit(); if self.WB_Title1 then self.WB_Title1:LuaInit(); self.WB_Title1:SetOwner(self, self.OnShowScore); end self.CanvasPanel_Prepare:SetVisibility(ESlateVisibility.Collapsed); UIManager:Register("WB_Main", self); UIManager:Register("WB_BuffButton", self.WB_BuffButton); UIManager:Register("WB_SelectWeaponButton", self.WB_SelectWeaponButton); UIManager:Register("WB_PlayerSoldiers", self.WB_PlayerSoldiers); UIManager:Register("WB_HoldProcess", self.WB_HoldProcess); UIManager:Register("WB_PlayerScores", self.WB_PlayerScores); self.WB_SelectWeaponButton:LuaInit(); self.WB_SelectWeaponButton:SetVisibility(ESlateVisibility.Collapsed); self.WB_PlayerSoldiers:LuaInit(); self.WB_HoldProcess:SetVisibility(ESlateVisibility.Collapsed); self.WB_HoldProcess:LuaInit(); UGCEventSystem.SetTimer(self, function() self:OnShowScore(); end, 5); end --function WB_Main:Tick(MyGeometry, InDeltaTime) --end function WB_Main:Destruct() UGCEventSystem.RemoveListener(EventTypes.ChangeBuffs, self.OnChangeBuffs, self); end WB_Main.IsShowScore = true; function WB_Main:OnShowScore() self.IsShowScore = not self.IsShowScore; if self.IsShowScore then self:PlayAnimation(self.ShowScore, 0, 1, EUMGSequencePlayMode.Forward, 1) else self:PlayAnimation(self.ShowScore, 0, 1, EUMGSequencePlayMode.Reverse, 1); end end WB_Main.DotCount = 0; function WB_Main:OnPrepareTick() self.DotCount = (self.DotCount + 1) % 3; local Str = "游戏准备中." for i = 1, self.DotCount do Str = Str .. '.' end self.TextBlock_Prepare:SetText(Str); end WB_Main.IsShowDetail = false; function WB_Main:OnGameStart() UGCLogSystem.Log("[WB_Main:OnGameStart] 执行") self.CanvasPanel_Prepare:SetVisibility(ESlateVisibility.Collapsed); GlobalTickTool:RemoveCustomTick(self); self.DotCount = nil; --WidgetManager:ClosePanel(WidgetConfig.EUIType.FaceNotice); end WB_Main.ShowRoundWinTimer = nil; function WB_Main:ShowRoundWin(IsShow, Winner) if IsShow then self.WB_RoundEnd:SetVisibility(ESlateVisibility.HitTestInvisible); self.WB_RoundEnd:SetWin(Winner == LocalPlayerKey); -- 定时关闭 UGCEventSystem.SetTimer(self, function() self.WB_RoundEnd:SetVisibility(ESlateVisibility.Collapsed); end, 10); else self.WB_RoundEnd:SetVisibility(ESlateVisibility.Collapsed); if self.ShowRoundWinTimer ~= nil then UGCEventSystem.StopTimer(self.ShowRoundWinTimer); self.ShowRoundWinTimer = nil; end end end function WB_Main:OnChangeBuffs(InPlayerKey, InBuffs) if table.isEmpty(InBuffs) then for i, v in pairs(self.BuffButtons) do v:SetVisibility(ESlateVisibility.Collapsed); end end for i, v in pairs(self.BuffButtons) do v:SetBuffType(InBuffs[i]); v:SetVisibility(ESlateVisibility.Visible); end end return WB_Main;