32 lines
1.2 KiB
Lua
32 lines
1.2 KiB
Lua
|
---@class W_InvincibleTime_C:UUserWidget
|
||
|
---@field TextBlock_Time UTextBlock
|
||
|
--Edit Below--
|
||
|
---@type W_InvincibleTime_C
|
||
|
local W_InvincibleTime = {
|
||
|
bInitDoOnce = false;
|
||
|
SpawnTime = 0.;
|
||
|
};
|
||
|
|
||
|
function W_InvincibleTime:Construct()
|
||
|
WidgetLibrary.TextBlockBindingPropertyText(self.TextBlock_Time, self.TextBlock_Time_Txt, self)
|
||
|
self.SpawnTime = UGCSystemLibrary.GetGameTime()
|
||
|
end
|
||
|
|
||
|
function W_InvincibleTime:OnShowPanel()
|
||
|
self.SpawnTime = UGCSystemLibrary.GetGameTime()
|
||
|
UGCLogSystem.Log("[W_InvincibleTime_OnShowPanel] PlayerKey:%d, SpawnTime: %f", UGCSystemLibrary.GetLocalPlayerKey(), self.SpawnTime)
|
||
|
self:SetVisibility(ESlateVisibility.SelfHitTestInvisible)
|
||
|
UGCEventSystem.SetTimer(self, function () self:SetVisibility(ESlateVisibility.Collapsed) end, GlobalConfigs.GameSetting.InvincibleTime)
|
||
|
end
|
||
|
|
||
|
function W_InvincibleTime:TextBlock_Time_Txt(ReturnValue)
|
||
|
local NowTime = UGCSystemLibrary.GetGameTime()
|
||
|
if (NowTime - self.SpawnTime) < GlobalConfigs.GameSetting.InvincibleTime then
|
||
|
return string.format("%0.2f",
|
||
|
math.clamp((GlobalConfigs.GameSetting.InvincibleTime - (NowTime - self.SpawnTime)), 0., GlobalConfigs.GameSetting.InvincibleTime)
|
||
|
)
|
||
|
end
|
||
|
return ""
|
||
|
end
|
||
|
|
||
|
return W_InvincibleTime;
|