UGCProjects/SoloKing/Script/UI/SelectWeapons/WB_ReselectWeaponBtn.lua
2025-01-21 11:29:14 +08:00

84 lines
2.6 KiB
Lua

---@class WB_ReselectWeaponBtn_C:UUserWidget
---@field Button_ReselectWeapon UButton
---@field Image_CD UImage
---@field Image_CD_ClassicMode UImage
---@field WidgetSwitcher_ClassicMode UWidgetSwitcher
--Edit Below--
---@type WB_ReselectWeaponBtn_C
local WB_ReselectWeaponBtn = {
bInitDoOnce = false;
StartShowTime = -10;
ShowTime = 10;
bIsShowing = false;
};
function WB_ReselectWeaponBtn:LuaInit()
if self.bInitDoOnce then return ; end
self.bInitDoOnce = true;
UITool.BindButtonClicked(self.Button_ReselectWeapon, self.ClickBtn, self)
-- 在这里修改 检查一下这里判断模式的方式是否正确
UGCEventSystem.AddListener(EventTypes.UpdateModeType, self.SetIsGangUpMode, self);
self:SetIsGangUpMode(GlobalModeType)
end
function WB_ReselectWeaponBtn:OnTick()
if self.bIsShowing then
self:UpdateCooling()
end
end
--function WB_ReselectWeaponBtn:Tick(MyGeometry, InDeltaTime)
--
--end
-- function WB_ReselectWeaponBtn:Destruct()
-- end
function WB_ReselectWeaponBtn:OnShowPanel()
UGCLogSystem.Log("[WB_ReselectWeaponBtn_OnShowPanel]")
self:ShowBtn()
end
function WB_ReselectWeaponBtn:ShowBtn()
self.StartShowTime = KismetSystemLibrary.GetGameTimeInSeconds(UGCGameSystem.GameState)
self.bIsShowing = true
end
function WB_ReselectWeaponBtn:CloseBtn()
self.bIsShowing = false
self:SetVisibility(ESlateVisibility.Collapsed);
end
function WB_ReselectWeaponBtn:UpdateCooling()
local NowTime = KismetSystemLibrary.GetGameTimeInSeconds(UGCGameSystem.GameState)
if NowTime - self.StartShowTime > self.ShowTime then
self:CloseBtn()
end
local Material = self.Image_CD:GetDynamicMaterial();
local Percent = 1 - (NowTime - self.StartShowTime) / self.ShowTime
Material:SetScalarParameterValue("Mask_Percent", Percent);
local Material_ClassicMode = self.Image_CD_ClassicMode:GetDynamicMaterial();
local Percent_ClassicMode = 1 - (NowTime - self.StartShowTime) / self.ShowTime
Material_ClassicMode:SetScalarParameterValue("Mask_Percent", Percent_ClassicMode);
-- UGCLogSystem.Log("[WB_ReselectWeaponBtn_UpdateCooling] " 1 - (NowTime - self.StartShowTime) / self.ShowTime)
end
function WB_ReselectWeaponBtn:ClickBtn()
self:CloseBtn()
if GlobalModeType == GameModeConfig.EGameModeType.DefaultMode then
WidgetManager:ShowPanel(WidgetConfig.EUIType.WeaponConfiguration)
else
WidgetManager:ShowPanel(WidgetConfig.EUIType.SelectWeaponNew, false);
end
end
function WB_ReselectWeaponBtn:SetIsGangUpMode(ModeType)
self.WidgetSwitcher_ClassicMode:SetActiveWidgetIndex(ModeType == GameModeConfig.EGameModeType.DefaultMode and 1 or 0);
end
return WB_ReselectWeaponBtn;