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

56 lines
1.4 KiB
Lua

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