UGCProjects/GZJ/Script/UI/ChildWidgets/WBP_FittingItemInfo.lua

101 lines
3.0 KiB
Lua
Raw Normal View History

2025-01-08 22:46:12 +08:00
---@class WBP_FittingItemInfo_C:UUserWidget
---@field TextBlock_Desc UTextBlock
---@field TextBlock_Name UTextBlock
---@field TextBlock_Pos UTextBlock
---@field WBP_CloseWidget UWBP_CloseWidget_C
---@field WBP_WidgetHeader UWBP_WidgetHeader_C
--Edit Below--
-- 这个界面是显示物品具体属性的界面
local WBP_FittingItemInfo = {
bInitDoOnce = false;
CurrentVisualItemWidget = nil,
};
function WBP_FittingItemInfo:Construct()
self.WBP_CloseWidget:SetWidgetToClose(self)
self.WBP_WidgetHeader:Construct()
end
-- function WBP_FittingItemInfo:Tick(MyGeometry, InDeltaTime)
-- end
-- function WBP_FittingItemInfo:Destruct()
-- end
function WBP_FittingItemInfo:SetInfoItemData(InData, InWidget)
-- 这里是显示具体的内容的位置
-- 获取品质
self.CurrentVisualItemWidget = InWidget
local Id = InData.ItemID
if Id > 20000 then
if Id < 20900 then
--天赋技能,不用进行赋值
else
local Quality = DropItemMap.SkillItemMap[Id].Quality
local Desc = DropItemMap.SkillItemMap[Id].Desc
local Name = DropItemMap.SkillItemMap[Id].SkillName
local ColdDown = DropItemMap.SkillItemMap[Id].ColdDown
local Cost = DropItemMap.SkillItemMap[Id].Cost
self.TextBlock_Name:SetText(string.format("%s-%s", Quality, Name))
self.TextBlock_Pos:SetText(string.format('冷却时间:%d\n消耗能量值:%d', ColdDown, Cost))
self.TextBlock_Desc:SetText("属性:".. Desc)
end
else
local Quality = DropItemMap.FittingItemMap[Id].Quality
local FittingType = DropItemMap.FittingItemMap[Id].FittingType
local WeaponType = DropItemMap.FittingItemMap[Id].WeaponType
local Props = DropItemMap.FittingItemMap[Id].Props
local str = ""
for _, v in pairs(Props) do
local c = v.Value == 0
local r = ''
if not c then
r = tostring(v.Value)
end
local Val = ''
local PercentIndex = string.find(v.Type, '%%')
if PercentIndex ~= nil then
Val = string.gsub(v.Type, '%%', '')
end
str = str .. Val
if v.Unit ~= 'Special' then
str = str .. '+' .. r
str = str .. v.Unit
end
str = str .. '\n'
end
self.TextBlock_Name:SetText(string.format("%s-%s", Quality, FittingType))
self.TextBlock_Pos:SetText( WeaponType )
self.TextBlock_Desc:SetText( "属性:".. str)
end
end
function WBP_FittingItemInfo:OnMouseButtonUp(MyGeometry, InTouchEvent)
if UIManager.AllPanel[EUIType.Backpack]:GetOperateType() == EBagOperateType.None then
EventSystem:SendEvent(EventType.ShowItemDescribe, self.FittingData, false)
end
if self.CurrentVisualItemWidget ~= nil then
self.CurrentVisualItemWidget:RestProperty()
end
end
function WBP_FittingItemInfo:OnMouseMove(MyGeometry, MouseEvent)
--当鼠标移动的时候
self:SetVisibility(ESlateVisibility.Collapsed)
return WBP_FittingItemInfo.SuperClass:OnMouseMove(MyGeometry, MouseEvent)
end
--当移除的时候
function WBP_FittingItemInfo:OnFocusLost(InFocusEvent)
print('[WBP_FittingItemInfo:OnFocusLost] 开始执行')
self:SetVisibility(ESlateVisibility.Collapsed)
return WBP_FittingItemInfo.SuperClass:OnFocusLost(InFocusEvent)
end
return WBP_FittingItemInfo;