UGCProjects/GZJ/Script/UI/WBP_Skill_Item.lua
2025-01-08 22:46:12 +08:00

57 lines
2.1 KiB
Lua

---@class WBP_Skill_Item_C:UUserWidget
---@field Button_Select UNewButton
---@field Image_Skill_Icon UImage
---@field TextBlock_SkillDesc UTextBlock
---@field TextBlock_SkillName UTextBlock
---@field TextBlock_SkillShortDesc UTextBlock
--Edit Below--
local WBP_Skill_Item = {
bInitDoOnce = false,
BindedSkillName = nil,
ParentPanel = nil,
};
function WBP_Skill_Item:Construct()
self.Button_Select:SetVisibility(ESlateVisibility.SelfHitTestInvisible)
self.Button_Select.OnClicked:Add(WBP_Skill_Item.OnSelectButtonClicked, self)
self.Button_Select:SetTouchMethod(EButtonTouchMethod.PreciseTap)
end
function WBP_Skill_Item:Destruct()
self.BindedSkillName = nil
self.Button_Select.OnClicked:Remove(WBP_Skill_Item.OnSelectButtonClicked, self)
end
function WBP_Skill_Item:Init(SkillAccessType, SkillName)
self.BindedSkillAccessType = SkillAccessType
self.BindedSkillName = SkillName
self.TextBlock_SkillName:SetText(GameDataManager.GetSkillNameStrByName(SkillName))
self.TextBlock_SkillDesc:SetText(GameDataManager.GetSkillDescByName(SkillName))
if self.BindedSkillAccessType == ESkillAccessType.Talented then
self.TextBlock_SkillShortDesc:SetVisibility(ESlateVisibility.SelfHitTestInvisible)
self.TextBlock_SkillShortDesc:SetText(GameDataManager.GetTalentSkillShortDescByName(SkillName))
else
self.TextBlock_SkillShortDesc:SetVisibility(ESlateVisibility.Collapsed)
end
UIManager.LoadTexture(self.Image_Skill_Icon, GameDataManager.GetSkillIconPathByName(SkillName))
self.Button_Select:SetVisibility(ESlateVisibility.Visible)
end
function WBP_Skill_Item:OnSelectButtonClicked()
if self.BindedSkillName == nil then
return
end
if self.ParentPanel then
self.ParentPanel:OnSelectionChanged()
end
UIManager:GetPanel(EUIType.SelectSkill):SetSelectItem(self.BindedSkillName)
local PC = STExtraGameplayStatics.GetFirstPlayerController(self)
UnrealNetwork.CallUnrealRPC(PC, PC, "ServerRPC_GiveSkill", self.BindedSkillName, nil, nil)
NewPlayerGuideManager:RemoveGuide(3)
end
return WBP_Skill_Item;