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

70 lines
1.9 KiB
Lua

local UIWidgetBase = require_ex('Common/Core/UIWidgetBase')
EquipEnhanceNode = HL.Class('EquipEnhanceNode', UIWidgetBase)
EquipEnhanceNode.customNormalBgColor = HL.Field(HL.Any)
EquipEnhanceNode.m_enhancedLevel = HL.Field(HL.Number) << 0
EquipEnhanceNode.m_maxEnhancedLevel = HL.Field(HL.Number) << 0
EquipEnhanceNode._OnFirstTimeInit = HL.Override() << function(self)
end
EquipEnhanceNode.InitEquipEnhanceNode = HL.Method(HL.Table) << function(self, args)
self:_FirstTimeInit()
if not EquipTechUtils.canShowEquipEnhanceNode(args.equipInstId) then
self.view.gameObject:SetActive(false)
return
end
local equipInstData = EquipTechUtils.getEquipInstData(args.equipInstId)
local _, equipData = Tables.equipTable:TryGetValue(equipInstData.templateId)
self.view.gameObject:SetActiveIfNecessary(true)
local attrMaxEnhanceLevel = Tables.equipConst.maxAttrEnhanceLevel
if args.attrIndex ~= nil then
self.m_enhancedLevel = equipInstData:GetAttrEnhanceLevel(args.attrIndex)
self.m_maxEnhancedLevel = attrMaxEnhanceLevel
else
self.m_enhancedLevel = equipInstData:GetEnhanceLevel()
self.m_maxEnhancedLevel = #equipData.displayAttrModifiers * attrMaxEnhanceLevel
end
if args.showNextLevel then
self.m_enhancedLevel = self.m_enhancedLevel + 1
end
local isMaxEnhanced = self.m_enhancedLevel >= self.m_maxEnhancedLevel
local isEnhanced = self.m_enhancedLevel > 0
self.view.enhanced.gameObject:SetActive(isEnhanced and not isMaxEnhanced)
self.view.img.color = isMaxEnhanced and self.config.COLOR_ENHANCED or
(self.customNormalBgColor == nil and self.config.COLOR_NORMAL or self.customNormalBgColor)
end
EquipEnhanceNode.GetEnhanceLevel = HL.Method().Return(HL.Number, HL.Number) << function(self)
return self.m_enhancedLevel, self.m_maxEnhancedLevel
end
HL.Commit(EquipEnhanceNode)
return EquipEnhanceNode