72 lines
2.4 KiB
Lua
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; |