c1_lua/lua/app/ui/hero/equip_info_comp.lua
2025-10-26 18:10:13 +08:00

144 lines
4.7 KiB
Lua

local EquipInfoComp = class("EquipInfoComp", LuaComponent)
function EquipInfoComp:init()
local uiMap = self:getUIMap()
self.descTx = uiMap["equip_info.equip_node.up.desc_tx"]
self.descTx1 = uiMap["equip_info.equip_node.up.desc_tx_1"]
self.infoBtn = uiMap["equip_info.equip_node.up.info_btn"]
self.autoWearBtn = uiMap["equip_info.equip_node.auto_wear_btn"]
self.autoWearBtnTx = uiMap["equip_info.equip_node.auto_wear_btn.text"]
self.upBtn = uiMap["equip_info.equip_node.up_btn"]
self.upBtnTx = uiMap["equip_info.equip_node.up_btn.text"]
self.equipNode = uiMap["equip_info.equip_node"]
self.emptyTx = uiMap["equip_info.empty_tx"]
self.emptyTx:setText(I18N:getGlobalText(I18N.GlobalConst.EQUIP_HERO_DESC_7))
self.upBtnTx:setText(I18N:getGlobalText(I18N.GlobalConst.EQUIP_HERO_DESC_3))
self.autoWearBtnTx:setText(I18N:getGlobalText(I18N.GlobalConst.EQUIP_HERO_DESC_2))
self.equipCells = {}
self.suitTxs = {}
for i = 1, 6 do
self.suitTxs[i] = uiMap["equip_info.equip_node.up.suit_tx_" .. i]
self.equipCells[i] = uiMap["equip_info.equip_node.equip_cell_" .. i]:addLuaComponent(GConst.TYPEOF_LUA_CLASS.EQUIP_CELL)
self.equipCells[i]:addClickListener(function()
local eid = DataManager.EquipData:getPartEquipUid(self.heroEntity:getMatchType(), i)
if eid and eid > 0 then
local equipEntity = DataManager.EquipData:getEquipByUid(eid)
local parmas = {}
parmas.heroEntity = self.heroEntity
parmas.slotId = self.heroEntity:getMatchType()
parmas.part = i
parmas.uid = eid
parmas.id = equipEntity:getId()
parmas.showType = GConst.EquipConst.INFO_SHOW_TYPE.ALL_ATTR
ModuleManager.EquipManager:showEquipInfoUI(parmas)
else
ModuleManager.EquipManager:showEquipListUI(self.heroEntity, i)
end
end)
end
for i = 1, 3 do
local descTx = uiMap["equip_info.equip_node.up.suit_desc_tx_" .. i]
descTx:setText(I18N:getGlobalText(I18N.GlobalConst["EQUIP_HERO_LV_" .. i]))
end
self.descTx:setText(I18N:getGlobalText(I18N.GlobalConst.EQUIP_HERO_DESC_4))
self.descTx1:setText(I18N:getGlobalText(I18N.GlobalConst.EQUIP_HERO_DESC_5))
self.autoWearBtn:addClickListener(function()
local slotId = self.heroEntity:getMatchType()
local listUids = {}
for i = 1, 6 do
local equip = DataManager.EquipData:getEquipMaxScore(slotId, i)
if equip ~= nil then
table.insert(listUids, equip:getUid())
end
end
ModuleManager.EquipManager:onEquipWearReq(slotId, listUids)
end)
self.upBtn:addClickListener(function()
local slotId = self.heroEntity:getMatchType()
local part
for i = 1, 6 do
local eid = DataManager.EquipData:getPartEquipUid(slotId, i)
if eid and eid > 0 then
part = part or i
if DataManager.EquipData:hasEquipGrowthRedPointBySlotIdAndPartId(slotId, part) then
ModuleManager.EquipManager:showEquipGrowthUI(slotId, i)
return
end
end
end
if part then
ModuleManager.EquipManager:showEquipGrowthUI(slotId, part)
end
end)
self.infoBtn:addClickListener(function()
ModuleManager.EquipManager:showEquipResonateUI(self.heroEntity:getMatchType(), 1)
end)
end
function EquipInfoComp:setParentUI(ui)
self.uiRoot = ui
end
function EquipInfoComp:setHeroData(heroEntity)
self.heroEntity = heroEntity
end
function EquipInfoComp:refresh()
self:refreshEquip()
self:refreshEquipSuit()
self:refreshRedPoint()
end
function EquipInfoComp:refreshEquip()
local slotId = self.heroEntity:getMatchType()
self.curFormation = DataManager.FormationData:getStageFormation()
if self.curFormation[slotId] ~= self.heroEntity:getCfgId() then
self.emptyTx:setActive(true)
self.equipNode:setActive(false)
return
end
self.emptyTx:setActive(false)
self.equipNode:setActive(true)
for part = 1, 6 do
local eid = DataManager.EquipData:getPartEquipUid(slotId, part)
if eid and eid > 0 then
local equipEntity = DataManager.EquipData:getEquipByUid(eid)
self.equipCells[part]:refresh(equipEntity, slotId)
else
self.equipCells[part]:refreshEmpty(part)
end
if DataManager.EquipData:hasEquipWearRedPointByPart(slotId, part) then
self.equipCells[part]:addRedPoint(60, 60, 1)
else
self.equipCells[part]:removeRedPoint()
end
end
end
function EquipInfoComp:refreshEquipSuit()
local slotId = self.heroEntity:getMatchType()
for i = 1, 3 do
local lv = DataManager.EquipData:getResonateLevel(i, slotId)
self.suitTxs[i]:setText(lv)
end
end
function EquipInfoComp:refreshRedPoint()
local slotId = self.heroEntity:getMatchType()
if DataManager.EquipData:hasEquipWearRedPointById(slotId) then
self.autoWearBtn:addRedPoint(70, 30, 1)
else
self.autoWearBtn:removeRedPoint()
end
if DataManager.EquipData:hasEquipGrowthRedPoint(slotId) then
self.upBtn:addRedPoint(70, 30, 1)
else
self.upBtn:removeRedPoint()
end
end
return EquipInfoComp