---@class WB_ReselectWeaponBtn_C:UUserWidget ---@field Button_ReselectWeapon UButton ---@field Image_CD UImage --Edit Below-- local WB_ReselectWeaponBtn = { bInitDoOnce = false; StartShowTime = -10; ShowTime = 10; bIsShowing = false; }; function WB_ReselectWeaponBtn:Construct() WidgetLibrary.BindButtonClicked(self.Button_ReselectWeapon, self.ClickBtn, self) self.LoopCheckDeadShowBtnHandle = UGCEventSystem.SetTimerLoop(self, self.CheckDeadShowBtn, 1) end function WB_ReselectWeaponBtn:Tick(MyGeometry, InDeltaTime) if self.bIsShowing then self:UpdateCooling() end end function WB_ReselectWeaponBtn:Destruct() if self.LoopCheckDeadShowBtnHandle then UGCEventSystem.StopTimer(self.LoopCheckDeadShowBtnHandle) end end function WB_ReselectWeaponBtn:OnShowPanel() UGCLogSystem.Log("[WB_ReselectWeaponBtn_OnShowPanel]") self:ShowBtn() end function WB_ReselectWeaponBtn:ShowBtn() self.StartShowTime = UGCSystemLibrary.GetGameTime() self.bIsShowing = true end function WB_ReselectWeaponBtn:CloseBtn() self.bIsShowing = false WidgetManager:ClosePanel(WidgetConfig.EUIType.ReselectWeaponBtn) end function WB_ReselectWeaponBtn:UpdateCooling() local NowTime = UGCSystemLibrary.GetGameTime() 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); -- UGCLogSystem.Log("[WB_ReselectWeaponBtn_UpdateCooling] " 1 - (NowTime - self.StartShowTime) / self.ShowTime) end function WB_ReselectWeaponBtn:ClickBtn() self:CloseBtn() WidgetManager:ShowPanel(WidgetConfig.EUIType.WeaponSelect) end function WB_ReselectWeaponBtn:CheckDeadShowBtn() local LocalPawn = UGCSystemLibrary.GetLocalPlayerPawn() if not UE.IsValid(LocalPawn) or UGCPawnSystem.HasPawnState(LocalPawn, EPawnState.Dead) then self:SetVisibility(ESlateVisibility.SelfHitTestInvisible) else local NowTime = UGCSystemLibrary.GetGameTime() if NowTime - self.StartShowTime > self.ShowTime then self:CloseBtn() end end end return WB_ReselectWeaponBtn;