---@class WB_ShowNirvanaLifeTime_C:UUserWidget ---@field Image_BG UImage ---@field Image_CD UImage --Edit Below-- local WB_ShowNirvanaLifeTime = { bInitDoOnce = false } --[==[ Construct function WB_ShowNirvanaLifeTime:Construct() end -- Construct ]==] function WB_ShowNirvanaLifeTime:OnShowPanel(TargetServerTime, LifeTime) self:Active(TargetServerTime, LifeTime) end function WB_ShowNirvanaLifeTime:OnClosePanel() self.bIsActive = false end function WB_ShowNirvanaLifeTime:Tick(MyGeometry, InDeltaTime) if self.bIsActive then self:UpdateCoolingTime() end end -- function WB_ShowNirvanaLifeTime:Destruct() -- end function WB_ShowNirvanaLifeTime:Active(InTargetServerTime, InLifeTime) self.LifeTime = InLifeTime self.TargetServerTime = InTargetServerTime self:SetVisibility(ESlateVisibility.HitTestInvisible) self.bIsActive = true end function WB_ShowNirvanaLifeTime:UpdateCoolingTime() local ServerTime = UGCGameSystem.GameState:GetServerGameTime() if ServerTime > self.TargetServerTime then self.bIsActive = false self:SetVisibility(ESlateVisibility.Collapsed) return end local Material = self.Image_CD:GetDynamicMaterial(); if Material then Material:SetScalarParameterValue("Mask_Percent", math.clamp(1 - (self.TargetServerTime - ServerTime) / self.LifeTime, 0, 1)); end end return WB_ShowNirvanaLifeTime