Files
Endfield-Data/LuaScripts/UI/Widgets/ItemDescNode.lua
2025-12-02 20:37:18 +07:00

68 lines
2.1 KiB
Lua

local UIWidgetBase = require_ex('Common/Core/UIWidgetBase')
ItemDescNode = HL.Class('ItemDescNode', UIWidgetBase)
ItemDescNode._OnFirstTimeInit = HL.Override() << function(self)
end
ItemDescNode.InitItemDescNode = HL.Method(HL.String, HL.Opt(HL.Table)) << function(self, itemId, args)
self:_FirstTimeInit()
local itemCfg = Tables.itemTable:GetValue(itemId)
self.view.defaultDesc:SetAndResolveTextStyle(itemCfg.desc)
local isManualCraftItem = false
local isTacticalItem = false
local manualCraftId
if itemCfg.type == GEnums.ItemType.FormulaUnlock then
isManualCraftItem, manualCraftId = Tables.factoryManualCraftReverseTable:TryGetValue(itemId)
if isManualCraftItem then
local _, craftData = Tables.factoryManualCraftTable:TryGetValue(manualCraftId)
if craftData and #craftData.outcomes > 0 then
itemId = craftData.outcomes[0].id
end
end
end
self.view.decoSplitLine.gameObject:SetActive(isManualCraftItem)
local isUseItem, useItemCfg = Tables.useItemTable:TryGetValue(itemId)
if isUseItem and not useItemCfg.isValuableDepot then
isTacticalItem = true
end
self.view.tacticalItemTitle.gameObject:SetActive(isTacticalItem)
self.view.tacticalItemDesc.gameObject:SetActive(isTacticalItem)
self.view.defaultDesc.gameObject:SetActive(not isTacticalItem or isManualCraftItem)
if isTacticalItem then
self.view.tacticalItemDesc:SetAndResolveTextStyle(UIUtils.getItemUseDesc(itemId))
end
local isEquipUnlock = Utils.isSystemUnlocked(GEnums.UnlockSystemType.Equip)
local isEquipItem, equipItemCfg = Tables.equipItemTable:TryGetValue(itemId)
local showEquipDesc = isEquipUnlock and isEquipItem
self.view.equipItemTitle.gameObject:SetActive(showEquipDesc)
self.view.equipItemDesc.gameObject:SetActive(showEquipDesc)
if showEquipDesc then
self.view.equipItemDesc:SetAndResolveTextStyle(UIUtils.getItemEquippedDesc(itemId))
end
self.view.decoDesc.gameObject:SetActive(not showEquipDesc)
self.view.decoDesc.text = itemCfg.decoDesc
end
HL.Commit(ItemDescNode)
return ItemDescNode