refactor(hero system): 重构英雄升级与卡片展示逻辑

1.  重构英雄升级方法,移除外部传入所需碎片参数,改为从配置表自动读取
2.  简化CardLiteComp.setHeroByUuid,移除卡池等级参数,直接读取英雄静态配置
3.  新增ChipComp.setHeroIconByUuid,重构英雄图标渲染逻辑
4.  新增英雄详情面板的升级功能与碎片展示
5.  新增英雄成长变化的事件监听与面板刷新逻辑
This commit is contained in:
panFD
2026-08-23 16:27:58 +08:00
parent 6eb51c8535
commit fb2c67ccab
6 changed files with 4752 additions and 1064 deletions

View File

@@ -8,7 +8,7 @@ import { GameEvent } from "./config/GameEvent";
import { GameScoreStats } from "./config/HeroAttrs";
import { mLogger } from "./Logger";
import { gameDataSync } from "./GameDataSync";
import { FightSet } from "./config/GameSet";
import { FightSet, HERO_UPGRADE_NEED_FRAGMENTS } from "./config/GameSet";
/**
* 用远程数据覆盖本地数据(统一方法)
@@ -351,13 +351,15 @@ export class SingletonModuleComp extends ecs.Comp {
}
/**
* 消耗碎片提升英雄局外等级
* 消耗碎片提升英雄局外等级(内部查表决定所需碎片数)
* @param uuid 英雄模板 uuid
* @param needFragments 本次升级所需碎片数量(由外部配置表计算
* @returns 是否升级成功
* @returns 是否升级成功(已到满级或碎片不足时返回 false
*/
upgradeHero(uuid: number, needFragments: number): boolean {
upgradeHero(uuid: number): boolean {
const growth = this.getHeroGrowth(uuid);
const needFragments = HERO_UPGRADE_NEED_FRAGMENTS[growth.lv + 1];
// 配置表中查不到下一级 = 已到满级
if (needFragments === undefined) return false;
if (growth.fragments < needFragments) return false;
growth.fragments -= needFragments;
growth.lv += 1;