2025-01-04 23:00:19 +08:00

122 lines
3.7 KiB
Lua

---@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;