87 lines
2.3 KiB
Lua
87 lines
2.3 KiB
Lua
local UIWidgetBase = require_ex('Common/Core/UIWidgetBase')
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
GemCard = HL.Class('GemCard', UIWidgetBase)
|
|
|
|
|
|
GemCard.m_starCellCache = HL.Field(HL.Forward("UIListCache"))
|
|
|
|
|
|
GemCard.m_gemInst = HL.Field(HL.Number) << -1
|
|
|
|
|
|
GemCard.m_refreshSkillNode = HL.Field(HL.Function)
|
|
|
|
|
|
|
|
|
|
GemCard._OnFirstTimeInit = HL.Override() << function(self)
|
|
self.m_starCellCache = UIUtils.genCellCache(self.view.starCell)
|
|
self.view.naviGroup.onIsTopLayerChanged:AddListener(function(isTopLayer)
|
|
self.view.controllerFocusHintNode.gameObject:SetActive(not isTopLayer)
|
|
end)
|
|
self:RegisterMessage(MessageConst.ON_GEM_ENHANCE, function(args)
|
|
|
|
local msg = unpack(args)
|
|
if msg.IsSuccess and msg.GemInstId == self.m_gemInst then
|
|
self.m_refreshSkillNode()
|
|
end
|
|
end)
|
|
end
|
|
|
|
|
|
|
|
|
|
|
|
GemCard.InitGemCard = HL.Method(HL.Number, HL.Opt(HL.Number)) << function(self, gemInstId, tryWeaponInstId)
|
|
self:_FirstTimeInit()
|
|
|
|
if not gemInstId or gemInstId <= 0 then
|
|
return
|
|
end
|
|
self.m_gemInst = gemInstId
|
|
self:_RefreshBasicInfo(gemInstId)
|
|
self.m_refreshSkillNode = function()
|
|
self.view.gemSkillNode:InitGemSkillNode(gemInstId, { weaponInstId = tryWeaponInstId })
|
|
end
|
|
self.m_refreshSkillNode()
|
|
end
|
|
|
|
|
|
|
|
|
|
GemCard._RefreshBasicInfo = HL.Method(HL.Number) << function(self, gemInstId)
|
|
local gemInst = CharInfoUtils.getGemByInstId(gemInstId)
|
|
local gemItemCfg = Tables.itemTable:GetValue(gemInst.templateId)
|
|
|
|
self.view.gemName.text = UIUtils.getItemName(gemInst.templateId, gemInst.instId)
|
|
self.view.gemItemIcon:InitItemIcon(gemInst.templateId, true, gemInst.instId)
|
|
self.view.lockToggle:InitLockToggle(gemInst.templateId, gemInst.instId)
|
|
self.view.trashToggle:InitTrashToggle(gemInst.templateId, gemInst.instId)
|
|
local _, domainData = Tables.domainDataTable:TryGetValue(gemInst.domainId)
|
|
self.view.domainNode.gameObject:SetActive(domainData ~= nil)
|
|
if domainData then
|
|
self.view.txtDomain.text = domainData.domainName
|
|
end
|
|
UIUtils.setItemRarityImage(self.view.bgColor, gemItemCfg.rarity)
|
|
UIUtils.setItemRarityImage(self.view.titleColor, gemItemCfg.rarity)
|
|
self.m_starCellCache:Refresh(gemItemCfg.rarity)
|
|
end
|
|
|
|
|
|
|
|
|
|
GemCard.ActiveToggleGroup = HL.Method(HL.Boolean) << function(self, isActive)
|
|
self.view.naviGroup.gameObject:SetActive(isActive)
|
|
end
|
|
|
|
HL.Commit(GemCard)
|
|
return GemCard
|