c1_lua/lua/app/ui/hero/hero_attr_ui.lua
2023-08-15 12:20:17 +08:00

63 lines
2.0 KiB
Lua

local HeroAttrUI = class("HeroAttrUI", BaseUI)
local ATTR_NODE_CELL = "app/ui/hero/cell/attr_node_cell"
local ATTR_NODE_CELL_PATH = "assets/prefabs/ui/hero/cell/attr_node_cell.prefab"
local ATTR_CELLS_PADDING = 60
local ATTR_CELL_HEIGHT = 80
local ATTR_CELL_SPACING_Y = 8
function HeroAttrUI:isFullScreen()
return false
end
function HeroAttrUI:getPrefabPath()
return "assets/prefabs/ui/hero/hero_attr_ui.prefab"
end
function HeroAttrUI:onPressBackspace()
self:closeUI()
end
function HeroAttrUI:onClose()
self.rootNodes:removeAllChildren()
end
function HeroAttrUI:ctor(parmas)
self.heroEntity = parmas.heroEntity
end
function HeroAttrUI:onLoadRootComplete()
local uiMap = self.root:genAllChildren()
self.txTitle = uiMap["hero_attr_ui.content.tx_title"]
self.btnClose = uiMap["hero_attr_ui.content.btn_close"]
self.rootNodes = uiMap["hero_attr_ui.content.ScrollView.Viewport.Content"]
self.txTitle:setText(I18N:getGlobalText(I18N.GlobalConst.EQUIP_DESC_18))
self.btnClose:addClickListener(function()
self:closeUI()
end)
end
function HeroAttrUI:onRefresh()
local totalHeight = 0
for index, node in ipairs(GConst.HeroConst.SHOW_NODE) do
-- 有皮肤属性时才显示皮肤
if node ~= GConst.HeroConst.ATTR_SHOW_SKIN or #DataManager.SkinData:getOwnAllAttr(self.heroEntity) > 0 then
CellManager:loadCellAsync(ATTR_NODE_CELL_PATH, ATTR_NODE_CELL, self.rootNodes, function(cell)
cell:refresh(self.heroEntity, node)
local attrCount = cell:getShowAttrCount()
local nodeHeight = math.ceil(attrCount / 2) * ATTR_CELL_HEIGHT + (math.ceil(attrCount / 2) - 1) * ATTR_CELL_SPACING_Y + ATTR_CELLS_PADDING
cell.baseObject:setLocalPositionY(-totalHeight)
cell.baseObject:setSizeDeltaY(nodeHeight)
totalHeight = totalHeight + nodeHeight
self.rootNodes:setSizeDeltaY(totalHeight)
end)
end
end
self.rootNodes:setAnchoredPositionY(0)
end
return HeroAttrUI