c1_lua/lua/app/ui/hero/cell/star_cell.lua
2025-06-22 19:05:14 +08:00

55 lines
1.5 KiB
Lua

local StarCell = class("StarCell", BaseCell)
function StarCell:init()
local uiMap = self:getUIMap()
self.starBg = uiMap["cell.star_bg"]
self.descTx = uiMap["cell.desc_tx"]
self.starImgs = {}
for i = 1, 5 do
self.starImgs[i] = uiMap["cell.star_bg.star_img_" .. i]
end
-- self:addClickListener(function()
-- EventManager:dispatchEvent(EventManager.CUSTOM_EVENT.SKIN_SELECT, self.skinId)
-- end)
end
function StarCell:refresh(heroEntity, idx)
self.heroEntity = heroEntity
if not self.heroEntity then
return
end
local star = self.heroEntity:getStar()
local starType = math.ceil(idx / 5)
for i, v in ipairs(self.starImgs) do
local star = (idx - 1)%5 + 1
if i <= star then
v:setActive(true)
if starType == 1 then
v:setSprite(GConst.ATLAS_PATH.COMMON, "common_star_1")
elseif starType == 2 then
v:setSprite(GConst.ATLAS_PATH.COMMON, "common_point")
else
v:setSprite(GConst.ATLAS_PATH.COMMON, "common_info")
end
else
v:setActive(false)
end
end
if idx <= star then
self.baseObject:setSprite(GConst.ATLAS_PATH.COMMON, "common_board_quality_3")
else
self.baseObject:setSprite(GConst.ATLAS_PATH.COMMON, "common_board_quality_2")
end
self.starBg:getComponent(GConst.TYPEOF_UNITY_CLASS.BF_HORIZONTAL_OR_VERTICAL_LAYOUT):RefreshLayout()
local attr = heroEntity:getStarAttrCfg(idx)
local descTx = GFunc.getAttrDesc(attr.type, attr.num)
if not table.containValue(GConst.MATCH_ALL_ATKP_NAME, attr.type) then
descTx = heroEntity:getName() .. descTx
end
self.descTx:setText(descTx)
end
return StarCell