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 |