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

58 lines
1.8 KiB
Lua

local UIWidgetBase = require_ex('Common/Core/UIWidgetBase')
GemSkillEnhanceCell = HL.Class('GemSkillEnhanceCell', UIWidgetBase)
GemSkillEnhanceCell._OnFirstTimeInit = HL.Override() << function(self)
end
GemSkillEnhanceCell.InitGemSkillEnhanceCell = HL.Method(HL.Table) << function(self, args)
self:_FirstTimeInit()
local isEmpty = args == nil or args.termId == nil
self.view.noSkillNode.gameObject:SetActive(isEmpty)
self.view.skillNode.gameObject:SetActive(not isEmpty)
if isEmpty then
return
end
local _, termCfg = Tables.gemTable:TryGetValue(args.termId)
if not termCfg then
logger.LogError("GemSkillEnhanceCell.InitGemSkillEnhanceCell: termCfg is nil, termId = " .. tostring(args.termId))
return
end
self.view.skillNode.txtAttrName:SetAndResolveTextStyle(string.format(Language.LUA_GEM_CARD_SKILL_ACTIVE, termCfg.tagName))
self.view.skillNode.rankValue.text = string.format(Language.LUA_WEAPON_EXHIBIT_UPGRADE_ADD_FORMAT, args.termLevel)
CSUtils.UIContainerResize(self.view.skillNode.levelNode, args.termLevel, 1)
if args.onClick then
self.view.skillNode.btnEnhance.onClick:RemoveAllListeners()
self.view.skillNode.btnEnhance.onClick:AddListener(function()
args.onClick(args.termId, args.termLevel)
end)
end
self.view.stateController:SetState("notTarget")
self.view.skillNode.btnEnhance.onIsNaviTargetChanged = function(isTarget)
local stateName = isTarget and "naviTarget" or "notTarget"
self.view.stateController:SetState(stateName)
end
local isMax = CharInfoUtils.isGemTermEnhanceMax(args.termId, args.termLevel)
self.view.skillNode.stateController:SetState(isMax and "Max" or "Normal")
end
HL.Commit(GemSkillEnhanceCell)
return GemSkillEnhanceCell