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

72 lines
2.4 KiB
Lua

---@class WBP_SelectSkillSlots_C:UUserWidget
---@field CanvasPanel_Main UCanvasPanel
---@field HorizontalBox_Skills UHorizontalBox
---@field WBP_SelectSkillItem UWBP_SelectSkillItem_C
---@field WBP_SelectSkillItem_0 UWBP_SelectSkillItem_C
---@field WBP_SelectSkillItem_1 UWBP_SelectSkillItem_C
---@field WBP_SkillSelectButton UWBP_SkillSelectButton_C
---@field WBP_WidgetHeader UWBP_WidgetHeader_C
---@field WidgetSwitcher_Main UWidgetSwitcher
--Edit Below--
local WBP_SelectSkillSlots = {
bInitDoOnce = false;
SkillItemId = 0;
};
function WBP_SelectSkillSlots:Construct()
WBP_SelectSkillSlots.SuperClass:Construct()
self.WBP_WidgetHeader:Construct()
end
function WBP_SelectSkillSlots:InitFromParam(InData, InPos)
self:ShowSelectSkill(InData, InPos)
end
function WBP_SelectSkillSlots:ShowSelectSkill(InItem, InPosition)
print(string.format('[WBP_SelectSkillSlots:ShowSelectSkill] 显示选择'))
local CanvasSlot = self.CanvasPanel_Main.Slot
CanvasSlot:SetPosition(InPosition)
self:InitData(InItem.ItemID)
end
function WBP_SelectSkillSlots:InitData(InId)
-- 初始化数据
print(string.format('[WBP_SelectSkillSlots:InitData] 初始化Id = %d', InId))
self.SkillItemId = InId
local PC = GameDataManager.GetLocalPlayerController()
local InitiativeSkillSlots = PC:GetInitiativeSkillSlots()
if #InitiativeSkillSlots < 3 then
-- 此时是 select Button
self.WidgetSwitcher_Main:SetActiveWidgetIndex(1)
self.WBP_SkillSelectButton:SetSkillId(self.SkillItemId)
else
self.WidgetSwitcher_Main:SetActiveWidgetIndex(0)
self:FillDatas()
end
end
-- 填充数据到背包中
function WBP_SelectSkillSlots:FillDatas()
print(string.format('[WBP_SelectSkillSlots:FillDatas] 填充数据'))
local PC = GameDataManager.GetLocalPlayerController()
local InitiativeSkillSlots = PC:GetInitiativeSkillSlots()
print(string.format('[WBP_SelectSkillSlots:FillDatas] 主动技能数量:%d', #InitiativeSkillSlots))
for i = 1, #InitiativeSkillSlots do
local Slot = InitiativeSkillSlots[i]
if i <= 3 then
local ItemId = PC.ActiveSkillNameList[Slot].SkillName * 100 + PC.ActiveSkillNameList[Slot].SkillLevel * 10 + 20000
self.HorizontalBox_Skills:GetChildAt(i - 1):SetLastItemId(ItemId)
self.HorizontalBox_Skills:GetChildAt(i - 1):SetReplaceItemId(self.SkillItemId)
end
end
end
-- function WBP_SelectSkillSlots:Tick(MyGeometry, InDeltaTime)
-- end
-- function WBP_SelectSkillSlots:Destruct()
-- end
return WBP_SelectSkillSlots;