101 lines
3.0 KiB
Lua
101 lines
3.0 KiB
Lua
|
---@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;
|