This commit is contained in:
puxuan 2025-10-09 17:47:27 +08:00
parent 2a65830015
commit 4886eb5bef
2 changed files with 104 additions and 104 deletions

View File

@ -103,6 +103,33 @@ function HeroDetailUI:onLoadRootComplete()
end) end)
end end
self.skillBg = uiMap["hero_detail_ui.top.bg_1.skill_node"]
self.skillBg = uiMap["hero_detail_ui.top.bg_1.skill_node.skill_bg"]
self.imgSkill = uiMap["hero_detail_ui.top.bg_1.skill_node.skill_bg.skill_icon"]
self.skillNameTx = uiMap["hero_detail_ui.top.bg_1.skill_node.skill_bg.skill_name_tx"]
self.skill = {}
self.skillIcon = {}
self.skillDescTxs = {}
self.skillNeedStarNodes = {}
self.skillNeedStarDescTx1s = {}
self.skillNeedStarStarImgs = {}
self.skillNeedStarDescTx2s = {}
for i = 1, 4 do
self.skill[i] = uiMap["hero_detail_ui.top.bg_1.skill_node.skill_up_" .. i]
self.skillIcon[i] = uiMap["hero_detail_ui.top.bg_1.skill_node.skill_up_" .. i .. ".icon"]
self.skillDescTxs[i] = uiMap["hero_detail_ui.top.bg_1.skill_node.skill_up_" .. i .. ".desc_tx"]
self.skillNeedStarNodes[i] = uiMap["hero_detail_ui.top.bg_1.skill_node.skill_up_" .. i .. ".need_star_node"]
self.skillNeedStarDescTx1s[i] = uiMap["hero_detail_ui.top.bg_1.skill_node.skill_up_" .. i .. ".need_star_node.desc_tx_1"]
self.skillNeedStarStarImgs[i] = uiMap["hero_detail_ui.top.bg_1.skill_node.skill_up_" .. i .. ".need_star_node.star_img"]
self.skillNeedStarDescTx2s[i] = uiMap["hero_detail_ui.top.bg_1.skill_node.skill_up_" .. i .. ".need_star_node.desc_tx_2"]
end
self.skillBg:addClickListener(function()
local cfg = ConfigManager:getConfig("skill")[self.heroEntity:getBaseSkill()]
if cfg.buff_id and #cfg.buff_id > 0 then
ModuleManager.TipsManager:showSkillTips(self.skillBg, cfg.buff_id)
end
end)
self.lvUpVfxs = {} self.lvUpVfxs = {}
for i = 1, 5 do for i = 1, 5 do
self.lvUpVfxs[i] = uiMap["hero_detail_ui.top.vfx_c1_ui_uplight_b0" .. i] self.lvUpVfxs[i] = uiMap["hero_detail_ui.top.vfx_c1_ui_uplight_b0" .. i]
@ -175,6 +202,7 @@ function HeroDetailUI:onRefresh(checkLevel)
self:updateHero() self:updateHero()
self:updateSide() self:updateSide()
self:refreshPageInfo() self:refreshPageInfo()
self:refreshSkillInfo()
self:checkLvUp(checkLevel) self:checkLvUp(checkLevel)
end end
@ -235,6 +263,82 @@ function HeroDetailUI:updateHero()
self.qltBgTx:setText(GFunc.getHeroQltStr(qlt)) self.qltBgTx:setText(GFunc.getHeroQltStr(qlt))
end end
function HeroDetailUI:refreshSkillInfo()
local skillId = self.heroEntity:getBaseSkill()
self.skillNameTx:setText(ModuleManager.HeroManager:getSkillName(skillId))
-- self.txSkill:setText(ModuleManager.HeroManager:getSkillDesc(skillId))
self.imgSkill:setSprite(GConst.ATLAS_PATH.ICON_SKILL, ModuleManager.HeroManager:getSkillIcon(skillId))
local skillList = self.heroEntity:getRogueSkillList()
local lv = self.heroEntity:getLv()
local star = self.heroEntity:getStar()
for i = 1, 4 do
local skillInfo = skillList[i]
if skillInfo then
local skillUnlcokStar = skillInfo[1]
local skillId = skillInfo[2]
local skillBg = self.skill[i]
local skillIcon = self.skillIcon[i]
local nextLvUpStar = self.heroEntity:getNextRougeLvUp(i)
skillBg:addClickListener(function()
local cfg = ConfigManager:getConfig("skill_rogue")[skillId]
-- ModuleManager.TipsManager:showSkillTips(skillIcon, cfg.buff_id, skillId)
ModuleManager.HeroManager:showHeroSkillInfoUI(self.heroEntity, i, cfg.buff_id)
end)
skillIcon:setSprite(GConst.ATLAS_PATH.ICON_SKILL_ROGUE, ModuleManager.HeroManager:getSkillRogueIcon(skillId))
skillBg:setTouchEnable(true)
if skillUnlcokStar > star then
self.skillNeedStarNodes[i]:setActive(true)
local nextStar = (skillUnlcokStar - 1)%5 + 1
self.skillNeedStarDescTx1s[i]:setText(nextStar)
local meshProComp = self.skillNeedStarDescTx1s[i]:getComponent(GConst.TYPEOF_UNITY_CLASS.UI_TEXT_MESH_PRO)
local contentWidth = meshProComp.preferredWidth
self.skillNeedStarDescTx1s[i]:setSizeDeltaX(contentWidth)
local starType = math.ceil(skillUnlcokStar / 5)
self.skillNeedStarStarImgs[i]:setSprite(GFunc.getStarImg(starType))
self.skillNeedStarDescTx2s[i]:setText(I18N:getGlobalText(I18N.GlobalConst.STR_UNLOCK))
local meshProComp = self.skillNeedStarDescTx2s[i]:getComponent(GConst.TYPEOF_UNITY_CLASS.UI_TEXT_MESH_PRO)
local contentWidth = meshProComp.preferredWidth
self.skillNeedStarDescTx2s[i]:setSizeDeltaX(contentWidth)
self.skillNeedStarNodes[i]:getComponent(GConst.TYPEOF_UNITY_CLASS.BF_HORIZONTAL_OR_VERTICAL_LAYOUT):RefreshLayout()
skillBg:setSprite(GConst.ATLAS_PATH.ICON_ITEM, "frame_1")
else
if nextLvUpStar then
self.skillNeedStarNodes[i]:setActive(true)
local nextStar = (nextLvUpStar - 1)%5 + 1
self.skillNeedStarDescTx1s[i]:setText(nextStar)
local meshProComp = self.skillNeedStarDescTx1s[i]:getComponent(GConst.TYPEOF_UNITY_CLASS.UI_TEXT_MESH_PRO)
local contentWidth = meshProComp.preferredWidth
self.skillNeedStarDescTx1s[i]:setSizeDeltaX(contentWidth)
local starType = math.ceil(nextLvUpStar / 5)
self.skillNeedStarStarImgs[i]:setSprite(GFunc.getStarImg(starType))
self.skillNeedStarDescTx2s[i]:setText(I18N:getGlobalText(I18N.GlobalConst.HERO_DESC_17))
local meshProComp = self.skillNeedStarDescTx2s[i]:getComponent(GConst.TYPEOF_UNITY_CLASS.UI_TEXT_MESH_PRO)
local contentWidth = meshProComp.preferredWidth
self.skillNeedStarDescTx2s[i]:setSizeDeltaX(contentWidth)
self.skillNeedStarNodes[i]:getComponent(GConst.TYPEOF_UNITY_CLASS.BF_HORIZONTAL_OR_VERTICAL_LAYOUT):RefreshLayout()
else
self.skillNeedStarNodes[i]:setActive(false)
end
skillBg:setSprite(GConst.ATLAS_PATH.ICON_SKILL_ROGUE, ModuleManager.HeroManager:getSkillRogueBg(skillId, true))
end
end
end
-- local needPop, isUnlock, skillIdx = self.heroEntity:checkSkillUnlock()
-- if needPop then
-- self.baseObject:performWithDelayGlobal(function()
-- local skillInfo = skillList[skillIdx]
-- if skillInfo then
-- local skillId = skillInfo[2]
-- local cfg = ConfigManager:getConfig("skill_rogue")[skillId]
-- ModuleManager.HeroManager:showHeroSkillInfoUI(self.heroEntity, skillIdx, cfg.buff_id, isUnlock, needPop)
-- end
-- end, 0.5)
-- end
end
function HeroDetailUI:refreshPageInfo() function HeroDetailUI:refreshPageInfo()
self.titleTx:setText(self.heroEntity:getName()) self.titleTx:setText(self.heroEntity:getName())
if self.page == GConst.HeroConst.PANEL_TYPE.HERO then if self.page == GConst.HeroConst.PANEL_TYPE.HERO then

View File

@ -9,15 +9,11 @@ local LV_CELL = "app/ui/hero/cell/lv_cell"
function HeroInfoComp:init() function HeroInfoComp:init()
local uiMap = self:getUIMap() local uiMap = self:getUIMap()
self.skillBg = uiMap["hero_info.skill_node.skill_bg"]
self.imgSkill = uiMap["hero_info.skill_node.skill_bg.skill_icon"]
self.skillNameTx = uiMap["hero_info.skill_node.skill_bg.skill_name_tx"]
self.btnUp = uiMap["hero_info.up.up_btn"] self.btnUp = uiMap["hero_info.up.up_btn"]
self.txUpdesc = uiMap["hero_info.up.up_btn.text"] self.txUpdesc = uiMap["hero_info.up.up_btn.text"]
self.btnUp5 = uiMap["hero_info.up.up_5_btn"] self.btnUp5 = uiMap["hero_info.up.up_5_btn"]
self.txUpdesc5 = uiMap["hero_info.up.up_5_btn.text"] self.txUpdesc5 = uiMap["hero_info.up.up_5_btn.text"]
self.txElement = uiMap["hero_info.element_bg.element_desc"] self.txElement = uiMap["hero_info.element_bg.element_desc"]
self.txSkill = uiMap["hero_info.skill_desc"]
self.spineObj = uiMap["hero_info.ui_spine_obj"] self.spineObj = uiMap["hero_info.ui_spine_obj"]
self.upgrade = uiMap["hero_info.up"] self.upgrade = uiMap["hero_info.up"]
self.bgElement = uiMap["hero_info.element_bg"] self.bgElement = uiMap["hero_info.element_bg"]
@ -25,23 +21,6 @@ function HeroInfoComp:init()
self.vfx04 = uiMap["hero_info.bg_7.scrollrect.viewport.content.vfx_c1_ui_up_b04"] self.vfx04 = uiMap["hero_info.bg_7.scrollrect.viewport.content.vfx_c1_ui_up_b04"]
self.vfx04:setActive(false) self.vfx04:setActive(false)
self.skill = {}
self.skillIcon = {}
self.skillDescTxs = {}
self.skillNeedStarNodes = {}
self.skillNeedStarDescTx1s = {}
self.skillNeedStarStarImgs = {}
self.skillNeedStarDescTx2s = {}
for i = 1, 4 do
self.skill[i] = uiMap["hero_info.skill_node.skill_up_" .. i]
self.skillIcon[i] = uiMap["hero_info.skill_node.skill_up_" .. i .. ".icon"]
self.skillDescTxs[i] = uiMap["hero_info.skill_node.skill_up_" .. i .. ".desc_tx"]
self.skillNeedStarNodes[i] = uiMap["hero_info.skill_node.skill_up_" .. i .. ".need_star_node"]
self.skillNeedStarDescTx1s[i] = uiMap["hero_info.skill_node.skill_up_" .. i .. ".need_star_node.desc_tx_1"]
self.skillNeedStarStarImgs[i] = uiMap["hero_info.skill_node.skill_up_" .. i .. ".need_star_node.star_img"]
self.skillNeedStarDescTx2s[i] = uiMap["hero_info.skill_node.skill_up_" .. i .. ".need_star_node.desc_tx_2"]
end
self.costCell = uiMap["hero_info.up.reward_cell_1"]:addLuaComponent(GConst.TYPEOF_LUA_CLASS.REWARD_CELL) self.costCell = uiMap["hero_info.up.reward_cell_1"]:addLuaComponent(GConst.TYPEOF_LUA_CLASS.REWARD_CELL)
self.spineObj:setVisible(false) self.spineObj:setVisible(false)
self.txUpdesc:setText(I18N:getGlobalText(I18N.GlobalConst.HERO_DESC_15, 1)) self.txUpdesc:setText(I18N:getGlobalText(I18N.GlobalConst.HERO_DESC_15, 1))
@ -60,12 +39,6 @@ function HeroInfoComp:init()
self.gotoBtn:addClickListener(function() self.gotoBtn:addClickListener(function()
self.parentUI:changePage(GConst.HeroConst.PANEL_TYPE.STAR) self.parentUI:changePage(GConst.HeroConst.PANEL_TYPE.STAR)
end) end)
self.skillBg:addClickListener(function()
local cfg = ConfigManager:getConfig("skill")[self.heroEntity:getBaseSkill()]
if cfg.buff_id and #cfg.buff_id > 0 then
ModuleManager.TipsManager:showSkillTips(self.skillBg, cfg.buff_id)
end
end)
self:bind(DataManager.BagData.ItemData, "dirty", function() self:bind(DataManager.BagData.ItemData, "dirty", function()
self:refresh() self:refresh()
end) end)
@ -101,86 +74,9 @@ end
function HeroInfoComp:refresh(lvUp) function HeroInfoComp:refresh(lvUp)
self.lvUp = lvUp self.lvUp = lvUp
self:refreshLvInfo() self:refreshLvInfo()
self:refreshSkillInfo()
self:refreshUpInfo() self:refreshUpInfo()
end end
function HeroInfoComp:refreshSkillInfo()
local skillId = self.heroEntity:getBaseSkill()
self.skillNameTx:setText(ModuleManager.HeroManager:getSkillName(skillId))
self.txSkill:setText(ModuleManager.HeroManager:getSkillDesc(skillId))
self.imgSkill:setSprite(GConst.ATLAS_PATH.ICON_SKILL, ModuleManager.HeroManager:getSkillIcon(skillId))
local skillList = self.heroEntity:getRogueSkillList()
local lv = self.heroEntity:getLv()
local star = self.heroEntity:getStar()
for i = 1, 4 do
local skillInfo = skillList[i]
if skillInfo then
local skillUnlcokStar = skillInfo[1]
local skillId = skillInfo[2]
local skillBg = self.skill[i]
local skillIcon = self.skillIcon[i]
local nextLvUpStar = self.heroEntity:getNextRougeLvUp(i)
skillBg:addClickListener(function()
local cfg = ConfigManager:getConfig("skill_rogue")[skillId]
-- ModuleManager.TipsManager:showSkillTips(skillIcon, cfg.buff_id, skillId)
ModuleManager.HeroManager:showHeroSkillInfoUI(self.heroEntity, i, cfg.buff_id)
end)
skillIcon:setSprite(GConst.ATLAS_PATH.ICON_SKILL_ROGUE, ModuleManager.HeroManager:getSkillRogueIcon(skillId))
skillBg:setTouchEnable(true)
if skillUnlcokStar > star then
self.skillNeedStarNodes[i]:setActive(true)
local nextStar = (skillUnlcokStar - 1)%5 + 1
self.skillNeedStarDescTx1s[i]:setText(nextStar)
local meshProComp = self.skillNeedStarDescTx1s[i]:getComponent(GConst.TYPEOF_UNITY_CLASS.UI_TEXT_MESH_PRO)
local contentWidth = meshProComp.preferredWidth
self.skillNeedStarDescTx1s[i]:setSizeDeltaX(contentWidth)
local starType = math.ceil(skillUnlcokStar / 5)
self.skillNeedStarStarImgs[i]:setSprite(GFunc.getStarImg(starType))
self.skillNeedStarDescTx2s[i]:setText(I18N:getGlobalText(I18N.GlobalConst.STR_UNLOCK))
local meshProComp = self.skillNeedStarDescTx2s[i]:getComponent(GConst.TYPEOF_UNITY_CLASS.UI_TEXT_MESH_PRO)
local contentWidth = meshProComp.preferredWidth
self.skillNeedStarDescTx2s[i]:setSizeDeltaX(contentWidth)
self.skillNeedStarNodes[i]:getComponent(GConst.TYPEOF_UNITY_CLASS.BF_HORIZONTAL_OR_VERTICAL_LAYOUT):RefreshLayout()
skillBg:setSprite(GConst.ATLAS_PATH.ICON_ITEM, "frame_1")
else
if nextLvUpStar then
self.skillNeedStarNodes[i]:setActive(true)
local nextStar = (nextLvUpStar - 1)%5 + 1
self.skillNeedStarDescTx1s[i]:setText(nextStar)
local meshProComp = self.skillNeedStarDescTx1s[i]:getComponent(GConst.TYPEOF_UNITY_CLASS.UI_TEXT_MESH_PRO)
local contentWidth = meshProComp.preferredWidth
self.skillNeedStarDescTx1s[i]:setSizeDeltaX(contentWidth)
local starType = math.ceil(nextLvUpStar / 5)
self.skillNeedStarStarImgs[i]:setSprite(GFunc.getStarImg(starType))
self.skillNeedStarDescTx2s[i]:setText(I18N:getGlobalText(I18N.GlobalConst.HERO_DESC_17))
local meshProComp = self.skillNeedStarDescTx2s[i]:getComponent(GConst.TYPEOF_UNITY_CLASS.UI_TEXT_MESH_PRO)
local contentWidth = meshProComp.preferredWidth
self.skillNeedStarDescTx2s[i]:setSizeDeltaX(contentWidth)
self.skillNeedStarNodes[i]:getComponent(GConst.TYPEOF_UNITY_CLASS.BF_HORIZONTAL_OR_VERTICAL_LAYOUT):RefreshLayout()
else
self.skillNeedStarNodes[i]:setActive(false)
end
skillBg:setSprite(GConst.ATLAS_PATH.ICON_SKILL_ROGUE, ModuleManager.HeroManager:getSkillRogueBg(skillId, true))
end
end
end
-- local needPop, isUnlock, skillIdx = self.heroEntity:checkSkillUnlock()
-- if needPop then
-- self.baseObject:performWithDelayGlobal(function()
-- local skillInfo = skillList[skillIdx]
-- if skillInfo then
-- local skillId = skillInfo[2]
-- local cfg = ConfigManager:getConfig("skill_rogue")[skillId]
-- ModuleManager.HeroManager:showHeroSkillInfoUI(self.heroEntity, skillIdx, cfg.buff_id, isUnlock, needPop)
-- end
-- end, 0.5)
-- end
end
function HeroInfoComp:refreshLvInfo() function HeroInfoComp:refreshLvInfo()
local list = self.heroEntity:getLvAttrPointList() local list = self.heroEntity:getLvAttrPointList()
self.scrollRectComp:refillCells(#list) self.scrollRectComp:refillCells(#list)