98 lines
3.4 KiB
Lua
98 lines
3.4 KiB
Lua
|
---@class WB_UseSkill_C:UAEUserWidget
|
||
|
---@field DX_UpgradeSkills UWidgetAnimation
|
||
|
---@field DX_UpgradeSkills_old UWidgetAnimation
|
||
|
---@field DX_RefreshSkill UWidgetAnimation
|
||
|
---@field Border_Cancel UBorder
|
||
|
---@field Border_SkillSlot UBorder
|
||
|
---@field Button_UseSkill UButton
|
||
|
---@field CanvasPanel_tips UCanvasPanel
|
||
|
---@field CustomizeCanvasPanel_BP_C_1 UCustomizeCanvasPanel_BP_C
|
||
|
---@field CustomizeCanvasPanel_Cancel UCustomizeCanvasPanel_BP_C
|
||
|
---@field Image_BG UImage
|
||
|
---@field Image_CDTime UImage
|
||
|
---@field Image_Icon UImage
|
||
|
---@field Image_Select UImage
|
||
|
---@field NewButton_Cancel UNewButton
|
||
|
---@field Text_Time UTextBlock
|
||
|
--Edit Below--
|
||
|
local WB_UseSkill = {
|
||
|
bInitDoOnce = false;
|
||
|
SkillType = nil;
|
||
|
bCanUseSkill = false;
|
||
|
bIsShowing = true;
|
||
|
}
|
||
|
|
||
|
|
||
|
function WB_UseSkill:Construct()
|
||
|
-- Test
|
||
|
self.SkillType = SkillConfig.ESkillType.PlaceNirvana
|
||
|
-- TestFinish
|
||
|
|
||
|
self.Text_Time:SetText("")
|
||
|
WidgetLibrary.BindButtonPressed(self.Button_UseSkill, self.PressedSkill, self)
|
||
|
WidgetLibrary.BindButtonReleased(self.Button_UseSkill, self.ReleasedSkill, self)
|
||
|
WidgetLibrary.BindButtonClicked(self.NewButton_Cancel, self.CancelSkill, self)
|
||
|
UGCEventSystem.SetTimerLoop(self, self.UpdateCoolingTime, 0.2)
|
||
|
end
|
||
|
|
||
|
function WB_UseSkill:PressedSkill()
|
||
|
|
||
|
if SkillConfig.ExeSkill(UGCSystemLibrary.GetLocalPlayerKey(), self.SkillType, UTSkillEventType.SET_KEY_DOWN) then
|
||
|
self.NewButton_Cancel:SetVisibility(ESlateVisibility.Visible)
|
||
|
end
|
||
|
end
|
||
|
|
||
|
function WB_UseSkill:ReleasedSkill()
|
||
|
SkillConfig.ExeSkill(UGCSystemLibrary.GetLocalPlayerKey(), self.SkillType, UTSkillEventType.SET_KEY_UP)
|
||
|
self.NewButton_Cancel:SetVisibility(ESlateVisibility.Collapsed)
|
||
|
end
|
||
|
|
||
|
function WB_UseSkill:CancelSkill()
|
||
|
SkillConfig.ExeSkill(UGCSystemLibrary.GetLocalPlayerKey(), self.SkillType, UTSkillEventType.SET_SKILL_CANCEL)
|
||
|
end
|
||
|
|
||
|
function WB_UseSkill:UpdateCoolingTime()
|
||
|
local CD = SkillConfig.GetSkillCD(self.SkillType)
|
||
|
local RestCoolDownTime = SkillConfig.GetSkillRestCoolDownTime(UGCSystemLibrary.GetLocalPlayerKey(), self.SkillType)
|
||
|
if RestCoolDownTime then
|
||
|
if self.bIsShowing == false then
|
||
|
self:SetVisibility(ESlateVisibility.SelfHitTestInvisible)
|
||
|
end
|
||
|
UGCLogSystem.Log("[WB_UseSkill_UpdateCoolingTime] RestCoolDownTime:%s", tostring(RestCoolDownTime))
|
||
|
if RestCoolDownTime > 0 then
|
||
|
self.Text_Time:SetText(string.format("%.1f", RestCoolDownTime))
|
||
|
self.bCanUseSkill = false
|
||
|
local Material = self.Image_CDTime:GetDynamicMaterial();
|
||
|
if Material then
|
||
|
Material:SetScalarParameterValue("Mask_Percent", math.clamp(1 - RestCoolDownTime / CD, 0, 1));
|
||
|
end
|
||
|
else
|
||
|
if self.bCanUseSkill == false then
|
||
|
self.Text_Time:SetText("")
|
||
|
local Material = self.Image_CDTime:GetDynamicMaterial();
|
||
|
if Material then
|
||
|
Material:SetScalarParameterValue("Mask_Percent", 1);
|
||
|
end
|
||
|
self:PlayAnimation(self.DX_UpgradeSkills, 0, 1, EUMGSequencePlayMode.Forward, 1.0)
|
||
|
end
|
||
|
self.bCanUseSkill = true
|
||
|
end
|
||
|
self.bIsShowing = true
|
||
|
else
|
||
|
if self.bIsShowing == true then
|
||
|
self:SetVisibility(ESlateVisibility.Collapsed)
|
||
|
end
|
||
|
self.bIsShowing = false
|
||
|
end
|
||
|
|
||
|
end
|
||
|
|
||
|
-- function WB_UseSkill:Tick(MyGeometry, InDeltaTime)
|
||
|
|
||
|
-- end
|
||
|
|
||
|
-- function WB_UseSkill:Destruct()
|
||
|
|
||
|
-- end
|
||
|
|
||
|
return WB_UseSkill
|