local HeroManager = class("HeroManager", BaseModule) function HeroManager:showHeroDetailUI(heroId) UIManager:showUI("app/ui/hero/hero_detail_ui", {heroId = heroId}) end function HeroManager:upgradeHero(heroId, heroEntity) local heroEntity = heroEntity or DataManager.HeroData:getHeroById(heroId) if not heroEntity then return end if not heroEntity:canLvUp(true) then return end self:sendMessage(ProtoMsgType.FromMsgEnum.HeroUpgradeReq, {id = heroId}, {}, self.upgradeHeroFinish, BIReport.ITEM_GET_TYPE.UPGRADE_HERO) end function HeroManager:upgradeHeroFinish(result) if result.err_code == GConst.ERROR_STR.SUCCESS then DataManager.HeroData:setHeroLv(result.hero.id, result.hero.level) DataManager.HeroData:setDirty() end end ------------------------------------------ 英雄相关的工具方法 ------------------------------ function HeroManager:getHeroIcon(heroId) local cfg = ConfigManager:getConfig("hero")[heroId] return cfg and tostring(cfg.icon) end function HeroManager:getHeroSmallFrame(heroId) local cfg = ConfigManager:getConfig("hero")[heroId] return cfg and GConst.HERO_SMALL_FRAME_QLT[cfg.qlt] end function HeroManager:getMatchTypeIcon(matchType) return GConst.HeroConst.MATCH_ICON_NAME[matchType] end function HeroManager:getMatchTypeName(matchType, needColor) local name = I18N:getGlobalText("ELEMENT_NAME_" .. matchType) if needColor then local color = GConst.BattleConst.ELEMENT_COLOR[matchType] if color then name = string.format("%s", color, name) end end return name end function HeroManager:getSkillDesc(skillId) local cfg = I18N:getConfig("skill")[skillId] return cfg and cfg.desc end function HeroManager:getSkillIcon(skillId) local cfg = ConfigManager:getConfig("skill")[skillId] return cfg and tostring(cfg.battle_icon) end function HeroManager:getSkillRogueDesc(skillId, value) local cfg = ConfigManager:getConfig("skill_rogue")[skillId] if not cfg then return GConst.EMPTY_STRING end local str if cfg.attr then str = GFunc.getPerStr(cfg.attr.type, value) end return I18N:getText("skill_rogue", skillId, "desc", str) end function HeroManager:showValueRogue(skillId) if (skillId >= 1 and skillId <= 18) or (skillId >= 21 and skillId <= 23) then return true end return false end function HeroManager:getSkillRogueIcon(skillId) local cfg = ConfigManager:getConfig("skill_rogue")[skillId] return cfg and tostring(cfg.icon) end function HeroManager:getSkillRogueBattleBg(skillId) local cfg = ConfigManager:getConfig("skill_rogue")[skillId] return cfg and "battle_board_" .. cfg.qlt end function HeroManager:getSkillRogueBg(skillId, onlyQlt) local cfg = ConfigManager:getConfig("skill_rogue")[skillId] if cfg.skill_position and not onlyQlt then -- 解锁技能类型 return "frame_skill_0" end return cfg and "frame_" .. cfg.qlt end function HeroManager:getSkillRoguePosition(skillId) local cfg = ConfigManager:getConfig("skill_rogue")[skillId] return cfg and cfg.skill_position end function HeroManager:getActiveRogueLvs() if not self.activeRogueLvs then self.activeRogueLvs = {} local lvMap = {} for lv, info in ipairs(ConfigManager:getConfig("hero_level")) do if not lvMap[info.unlock_skill] then table.insert(self.activeRogueLvs, lv) lvMap[info.unlock_skill] = true end end end return self.activeRogueLvs end return HeroManager