53 lines
1.7 KiB
Lua
53 lines
1.7 KiB
Lua
---@class WBP_ForceGuide_Tech_C:UUserWidget
|
|
---@field Panel_BG UWBP_WidgetHeader_C
|
|
---@field TextBlock_KillPoint UTextBlock
|
|
---@field UniformGridPanel_Technology UUniformGridPanel
|
|
--Edit Below--
|
|
local WBP_ForceGuide_Tech = { bInitDoOnce = false; };
|
|
|
|
function WBP_ForceGuide_Tech:OnStartGuideProgress()
|
|
self:SetVisibility(ESlateVisibility.SelfHitTestInvisible)
|
|
|
|
self.PendingEndGuide = false
|
|
|
|
self.Panel_BG:Construct()
|
|
|
|
EventSystem:AddListener(EventType.ForceGuide_TechBuy, self.OnTechBuy, self)
|
|
EventSystem:AddListener(EventType.PlayerKillPointChanged, self.ChangeKillPoint, self)
|
|
local TargetPlayerState = GameDataManager.GetLocalPlayerState()
|
|
self:ChangeKillPoint(TargetPlayerState.KillPoint.Current)
|
|
|
|
EventSystem:SendEvent(EventType.ForceGuide_OnGuideTriggered, 1)
|
|
end
|
|
|
|
function WBP_ForceGuide_Tech:OnEndGuideProgress()
|
|
self:SetVisibility(ESlateVisibility.Collapsed)
|
|
|
|
EventSystem:RemoveListener(EventType.PlayerKillPointChanged, self.ChangeKillPoint, self)
|
|
EventSystem:RemoveListener(EventType.ForceGuide_TechBuy, self.OnTechBuy, self)
|
|
|
|
EventSystem:SendEvent(EventType.ForceGuide_OnGuideFinished, 1)
|
|
end
|
|
|
|
function WBP_ForceGuide_Tech:ChangeKillPoint(NewKillPoint)
|
|
self.TextBlock_KillPoint:SetText(string.format('%d', NewKillPoint))
|
|
end
|
|
|
|
function WBP_ForceGuide_Tech:OnTechBuy()
|
|
if self.PendingEndGuide then
|
|
return
|
|
end
|
|
self.PendingEndGuide = true
|
|
|
|
if self.Timer ~= nil then
|
|
EventSystem.StopTimer(self.Timer)
|
|
end
|
|
self.Timer = EventSystem.SetTimer(self, function()
|
|
self:SetVisibility(ESlateVisibility.Collapsed)
|
|
self:OnEndGuideProgress()
|
|
EventSystem.StopTimer(self.Timer)
|
|
self.Timer = nil
|
|
end, 0.5)
|
|
end
|
|
|
|
return WBP_ForceGuide_Tech; |