From 46f972483a7d80eccbfb347774712e38dbc09bca Mon Sep 17 00:00:00 2001 From: puxuan <413323644@qq.com> Date: Wed, 27 Aug 2025 16:09:18 +0800 Subject: [PATCH] fix bug --- .../localization_global_const.lua | 1 + lua/app/config/strings/cn/global.lua | 1 + lua/app/ui/hero/hero_info_comp.lua | 141 +++++++++--------- lua/app/ui/hero/star_info_comp.lua | 20 ++- lua/app/userdata/bag/item_entity.lua | 6 +- lua/app/userdata/hero/hero_data.lua | 4 - 6 files changed, 90 insertions(+), 83 deletions(-) diff --git a/lua/app/config/localization/localization_global_const.lua b/lua/app/config/localization/localization_global_const.lua index 8fbcd2ab..92b44e3e 100644 --- a/lua/app/config/localization/localization_global_const.lua +++ b/lua/app/config/localization/localization_global_const.lua @@ -677,6 +677,7 @@ local LocalizationGlobalConst = SUMMON_DESC_5 = "SUMMON_DESC_5", SUMMON_DESC_6 = "SUMMON_DESC_6", SUMMON_DESC_7 = "SUMMON_DESC_7", + HERO_DESC_21 = "HERO_DESC_21", } return LocalizationGlobalConst \ No newline at end of file diff --git a/lua/app/config/strings/cn/global.lua b/lua/app/config/strings/cn/global.lua index 877c70eb..fd12bfe6 100644 --- a/lua/app/config/strings/cn/global.lua +++ b/lua/app/config/strings/cn/global.lua @@ -677,6 +677,7 @@ local localization_global = ["SUMMON_DESC_5"] = "[普通召唤]没有保底次数", ["SUMMON_DESC_6"] = "普通召唤", ["SUMMON_DESC_7"] = "高级召唤", + ["HERO_DESC_21"] = "等级达到{0}可升星", } return localization_global \ No newline at end of file diff --git a/lua/app/ui/hero/hero_info_comp.lua b/lua/app/ui/hero/hero_info_comp.lua index fdab4216..25bafe34 100644 --- a/lua/app/ui/hero/hero_info_comp.lua +++ b/lua/app/ui/hero/hero_info_comp.lua @@ -162,11 +162,21 @@ function HeroInfoComp:refresh(checkLevel) -- self.imgFragment:setVisible(not canLvUp) local lv = self.heroEntity:getLv() - local str local hpStr local atkStr - if self.heroEntity:isActived() then - str = I18N:getGlobalText(I18N.GlobalConst.HERO_DESC_4) + if not self.heroEntity:isActived() then + hpStr = self.heroEntity:getCfgHp(self.heroEntity:getBeginLv()) // DEFAULT_FACTOR + atkStr = self.heroEntity:getCfgAtk(self.heroEntity:getBeginLv()) // DEFAULT_FACTOR + self.btnUp:setActive(false) + self.btnUp5:setActive(false) + self.gotoBtn:setActive(false) + self.needStarNode:setActive(false) + for i,v in ipairs(self.costCells) do + v:setActive(false) + end + self.upgrade:setVisible(false) + else + self.upgrade:setVisible(not self.onlyLook) local curHp = self.heroEntity:getHp() // DEFAULT_FACTOR local curAtk = self.heroEntity:getAtk() // DEFAULT_FACTOR local addHp = (self.heroEntity:getCfgHp(lv + 1) - self.heroEntity:getCfgHp()) // DEFAULT_FACTOR @@ -181,76 +191,71 @@ function HeroInfoComp:refresh(checkLevel) else atkStr = curAtk .. "+" .. addAtk .. "" end - else - str = I18N:getGlobalText(I18N.GlobalConst.HERO_DESC_5) - hpStr = self.heroEntity:getCfgHp(self.heroEntity:getBeginLv()) // DEFAULT_FACTOR - atkStr = self.heroEntity:getCfgAtk(self.heroEntity:getBeginLv()) // DEFAULT_FACTOR - end - -- local costId = self.heroEntity:getLvUpCostId() - -- self.imgUpIcon:setSprite(GFunc.getIconRes(costId)) - -- self.txUpdesc:setText(str) - -- self.txUpNum:setText(materials[2]) - self.txHp:setText(hpStr) - self.txAtk:setText(atkStr) - if self.heroEntity:isMaxLv() then - self.btnUp:setActive(false) - self.btnUp5:setActive(false) - self.gotoBtn:setActive(false) - self.needStarNode:setActive(false) - elseif lv >= nextLv then - self.btnUp:setActive(false) - self.btnUp5:setActive(false) - self.gotoBtn:setActive(true) - self.needStarNode:setActive(true) - local star = self.heroEntity:getStar() - local currStar = star%5 + 1 - self.needStarNodeDescTx1:setText(I18N:getGlobalText(I18N.GlobalConst.HERO_DESC_19, currStar)) - local meshProComp = self.needStarNodeDescTx1:getComponent(GConst.TYPEOF_UNITY_CLASS.UI_TEXT_MESH_PRO) - local contentWidth = meshProComp.preferredWidth - self.needStarNodeDescTx1:setSizeDeltaX(contentWidth) - self.needStarNode:getComponent(GConst.TYPEOF_UNITY_CLASS.BF_HORIZONTAL_OR_VERTICAL_LAYOUT):RefreshLayout() - local starType = math.ceil(currStar / 5) - self.needStarNodeStarImg:setSprite(GFunc.getStarImg(starType)) + if self.heroEntity:isMaxLv() then + self.btnUp:setActive(false) + self.btnUp5:setActive(false) + self.gotoBtn:setActive(false) + self.needStarNode:setActive(false) + for i,v in ipairs(self.costCells) do + v:setActive(false) + end + elseif lv >= nextLv then + self.btnUp:setActive(false) + self.btnUp5:setActive(false) + self.gotoBtn:setActive(true) + self.needStarNode:setActive(true) + local star = self.heroEntity:getStar() + local currStar = star%5 + 1 + self.needStarNodeDescTx1:setText(I18N:getGlobalText(I18N.GlobalConst.HERO_DESC_19, currStar)) + local meshProComp = self.needStarNodeDescTx1:getComponent(GConst.TYPEOF_UNITY_CLASS.UI_TEXT_MESH_PRO) + local contentWidth = meshProComp.preferredWidth + self.needStarNodeDescTx1:setSizeDeltaX(contentWidth) + self.needStarNode:getComponent(GConst.TYPEOF_UNITY_CLASS.BF_HORIZONTAL_OR_VERTICAL_LAYOUT):RefreshLayout() + local starType = math.ceil(currStar / 5) + self.needStarNodeStarImg:setSprite(GFunc.getStarImg(starType)) - for i,v in ipairs(self.costCells) do - v:setActive(false) - end - else - self.btnUp:setActive(true) - self.btnUp5:setActive(true) - self.gotoBtn:setActive(false) - self.needStarNode:setActive(false) + for i,v in ipairs(self.costCells) do + v:setActive(false) + end + else + self.btnUp:setActive(true) + self.btnUp5:setActive(true) + self.gotoBtn:setActive(false) + self.needStarNode:setActive(false) - local costs = {} - costs[1] = {id = self.heroEntity:getFragmentId(), num = materials[1], type = 1} - costs[2] = {id = self.heroEntity:getLvUpCostId(), num = materials[2], type = 1} - local hadNums = {DataManager.BagData.ItemData:getItemNumById(costs[1].id), DataManager.BagData.ItemData:getItemNumById(costs[2].id)} - for i,v in ipairs(self.costCells) do - v:setActive(true) - v:refreshByConfig(costs[i]) - if hadNums[i] >= costs[i].num then - v:setNumTx(hadNums[i] .. "/" .. costs[i].num) + local costs = {} + costs[1] = {id = self.heroEntity:getFragmentId(), num = materials[1], type = 1} + costs[2] = {id = self.heroEntity:getLvUpCostId(), num = materials[2], type = 1} + local hadNums = {DataManager.BagData.ItemData:getItemNumById(costs[1].id), DataManager.BagData.ItemData:getItemNumById(costs[2].id)} + for i,v in ipairs(self.costCells) do + v:setActive(true) + v:refreshByConfig(costs[i]) + if hadNums[i] >= costs[i].num then + v:setNumTx(hadNums[i] .. "/" .. costs[i].num) + else + v:setNumTx("" .. hadNums[i] .. "" .. "/" .. costs[i].num) + end + end + + if canLvUp then + self.btnUp:setTouchEnable(true) + self.btnUp5:setTouchEnable(true) + self.btnUp:addRedPoint(70, 30, 1) + self.btnUp5:addRedPoint(70, 30, 1) + self.btnUp:setSprite(GConst.ATLAS_PATH.COMMON, BTN_ICON[1]) + self.btnUp5:setSprite(GConst.ATLAS_PATH.COMMON, BTN_ICON[2]) else - v:setNumTx("" .. hadNums[i] .. "" .. "/" .. costs[i].num) + self.btnUp:setTouchEnable(false) + self.btnUp5:setTouchEnable(false) + self.btnUp:removeRedPoint() + self.btnUp5:removeRedPoint() + self.btnUp:setSprite(GConst.ATLAS_PATH.COMMON, BTN_ICON[3]) + self.btnUp5:setSprite(GConst.ATLAS_PATH.COMMON, BTN_ICON[3]) end end - - if canLvUp then - self.btnUp:setTouchEnable(true) - self.btnUp5:setTouchEnable(true) - self.btnUp:addRedPoint(70, 30, 1) - self.btnUp5:addRedPoint(70, 30, 1) - self.btnUp:setSprite(GConst.ATLAS_PATH.COMMON, BTN_ICON[1]) - self.btnUp5:setSprite(GConst.ATLAS_PATH.COMMON, BTN_ICON[2]) - else - self.btnUp:setTouchEnable(false) - self.btnUp5:setTouchEnable(false) - self.btnUp:removeRedPoint() - self.btnUp5:removeRedPoint() - self.btnUp:setSprite(GConst.ATLAS_PATH.COMMON, BTN_ICON[3]) - self.btnUp5:setSprite(GConst.ATLAS_PATH.COMMON, BTN_ICON[3]) - end end + self.txHp:setText(hpStr) + self.txAtk:setText(atkStr) -- self.needStarNode = uiMap["hero_info.up.need_star_node"] -- self.needStarNodeDescTx1 = uiMap["hero_info.up.need_star_node.desc_tx_1"] -- self.needStarNodeStarImg = uiMap["hero_info.up.need_star_node.star_img"] @@ -261,8 +266,6 @@ function HeroInfoComp:refresh(checkLevel) self.spineObj:playAnim("idle", false, true) end - self.upgrade:setVisible(not self.onlyLook) - local needPop, isUnlock, skillIdx = self.heroEntity:checkSkillUnlock() if needPop then local skillInfo = skillList[skillIdx] diff --git a/lua/app/ui/hero/star_info_comp.lua b/lua/app/ui/hero/star_info_comp.lua index f111d00e..c4a2bf5d 100644 --- a/lua/app/ui/hero/star_info_comp.lua +++ b/lua/app/ui/hero/star_info_comp.lua @@ -10,6 +10,8 @@ function StarInfoComp:init() self.lvBtn = uiMap["star_info.upgrade.lv_btn"] self.lvBtnTx = uiMap["star_info.upgrade.lv_btn.text"] self.descTx = uiMap["star_info.upgrade.desc_tx"] + self.upgrade = uiMap["star_info.upgrade"] + self.bg = uiMap["star_info.bg"] self.costCells = {} for i = 1, 2 do self.costCells[i] = uiMap["star_info.upgrade.reward_cell_" .. i]:addLuaComponent(GConst.TYPEOF_LUA_CLASS.REWARD_CELL) @@ -31,6 +33,7 @@ function StarInfoComp:init() self.parentUI:changePage(GConst.HeroConst.PANEL_TYPE.HERO) end) + self.scrollrect = uiMap["star_info.scrollrect"] self.scrollRectComp = uiMap["star_info.scrollrect"]:addLuaComponent(GConst.TYPEOF_LUA_CLASS.SCROLL_RECT_BASE) self.scrollRectComp:addInitCallback(function() return STAR_CELL @@ -89,13 +92,11 @@ end function StarInfoComp:refreshStarBtn() if not self.heroEntity:isActived() or self.heroEntity:getIsStarMax() then - self.upBtn:setActive(false) - self.lvBtn:setActive(false) - self.descTx:setActive(false) - for i,v in ipairs(self.costCells) do - v:setActive(false) - end + self.upgrade:setActive(false) + self.scrollrect:setSizeDeltaY(378) + self.bg:setSizeDeltaY(378) elseif not self.heroEntity:getIsCurLvMax() then + self.upgrade:setActive(true) self.upBtn:setActive(false) self.lvBtn:setActive(true) self.descTx:setActive(true) @@ -103,8 +104,11 @@ function StarInfoComp:refreshStarBtn() v:setActive(false) end local nextLv = self.heroEntity:getNextLv() - self.descTx:setText("等级达到" .. nextLv .. "可升星") + self.descTx:setText(I18N:getGlobalText(I18N.GlobalConst.HERO_DESC_21, nextLv)) + self.scrollrect:setSizeDeltaY(268) + self.bg:setSizeDeltaY(268) else + self.upgrade:setActive(true) self.upBtn:setActive(true) self.lvBtn:setActive(false) self.descTx:setActive(false) @@ -116,6 +120,8 @@ function StarInfoComp:refreshStarBtn() v:setActive(true) v:refreshByConfig(costs[i]) end + self.scrollrect:setSizeDeltaY(268) + self.bg:setSizeDeltaY(268) end end diff --git a/lua/app/userdata/bag/item_entity.lua b/lua/app/userdata/bag/item_entity.lua index f377990d..c8c2e928 100644 --- a/lua/app/userdata/bag/item_entity.lua +++ b/lua/app/userdata/bag/item_entity.lua @@ -45,11 +45,11 @@ end function ItemEntity:checkForceLockAndAddNum() local type = self:getItemType() if type == GConst.ItemConst.ITEM_TYPE.HERO_FRAGMENT then - local isOwn = DataManager.HeroData:getHeroIsUnlock(self:getId()) + local heroEntity = DataManager.HeroData:getHeroById(self:getId()) -- local qlt = DataManager.HeroData:getHeroQlt(self:getId()) -- local fragmentId = DataManager.ForceData:getForceItemIdByQlt(self:getId()) - if not isOwn then - DataManager.HeroData:onHeroUnlock(self:getId()) + if heroEntity:getLv() <= 0 then + heroEntity:setLv(1 ,true) -- BIReport:postForceUnlock(self:getId()) end -- 不转换万能碎片 diff --git a/lua/app/userdata/hero/hero_data.lua b/lua/app/userdata/hero/hero_data.lua index 22abf9e7..6b7b0dd6 100644 --- a/lua/app/userdata/hero/hero_data.lua +++ b/lua/app/userdata/hero/hero_data.lua @@ -74,10 +74,6 @@ function HeroData:getHeroById(id) return self.heroes[id] end -function HeroData:onHeroUnlock(id) - self:addHero({id = id, level = 1, skin = 0, star = 0}) -end - function HeroData:getAllHeroes() return self.heroes end