56 lines
1.4 KiB
Lua
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 |