feat(hero/skill): add skill level override resolution logic

1. 新增resolveSkillOverrides工具函数实现技能等级分档覆盖逻辑
2. 为所有英雄/怪物技能模块添加运行时overrides分档处理
3. 扩展技能描述系统以展示分档后的技能等级
4. 新增技能分档配置类型定义与注释
This commit is contained in:
panFD
2026-08-16 20:51:58 +08:00
parent 4388a1ed3a
commit aec84d169f
7 changed files with 77 additions and 10 deletions

View File

@@ -52,7 +52,7 @@ import { MissSkillsComp } from "./MissSkillsComp";
import { oops } from "db://oops-framework/core/Oops";
import { HeroAttrsComp } from "../hero/HeroAttrsComp";
import { smc } from "../common/SingletonModuleComp";
import { HeroInfo, HType, resolveTriggerByLv, resolveFieldByLv, resolveReviveByLv, calcGrowBonus } from "../common/config/heroSet";
import { HeroInfo, HType, resolveTriggerByLv, resolveFieldByLv, resolveReviveByLv, resolveSkillOverrides, calcGrowBonus } from "../common/config/heroSet";
import { HeroViewComp } from "../hero/HeroViewComp";
import { FacSet, FightSet } from "../common/config/GameSet";
import { MissionEconomy } from "./MissionEconomy";
@@ -2273,7 +2273,8 @@ export class MissionCardComp extends CCComp {
for (const key in hero.skills) {
const skill = hero.skills[key];
if (!skill) continue;
model.skills[skill.uuid] = { ...skill, lv: Math.min(FightSet.HERO_SKILL_MAX_LV, Math.max(0, skill.lv + nextLv - 2)), ccd: 0 };
// 升级后按 nextLv 重新 resolve 分档 overrides与 Hero.load 对齐)
model.skills[skill.uuid] = { ...skill, lv: Math.min(FightSet.HERO_SKILL_MAX_LV, Math.max(0, skill.lv + nextLv - 2)), ccd: 0, overrides: resolveSkillOverrides(skill, nextLv) };
}
model.updateSkillDistanceCache();
model.dirty_hp = true;