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