refactor(hero): 重构额外属性加成系统,统一为bonus字段

1.  将原ap_bonus/hp_bonus/def_bonus三个字段合并为通用的bonus数组结构
2.  新增多属性同时配置能力,支持hp/ap/def百分比加成与crt/frz/stun/para固定百分点加成
3.  更新所有前端编辑器、服务端渲染与游戏运行时逻辑适配新配置格式
4.  添加数据兼容迁移逻辑,自动处理旧版英雄配置数据
This commit is contained in:
panFD
2026-09-07 23:05:30 +08:00
parent a1c8f46c50
commit ed738d2e30
10 changed files with 180 additions and 94 deletions

View File

@@ -1,5 +1,5 @@
import { ecs } from "../../../../extensions/oops-plugin-framework/assets/libs/ecs/ECS";
import { HeroDisVal, HeroInfo, HSkillInfo, HType, SkillTriggerType, TriggerGrouped, LvFieldEntry, LvBonusEntry, FieldEntry, HRole } from "../common/config/heroSet";
import { HeroDisVal, HeroInfo, HSkillInfo, HType, SkillTriggerType, TriggerGrouped, LvFieldEntry, LvBonusAttrsEntry, FieldEntry, HRole } from "../common/config/heroSet";
import { mLogger } from "../common/Logger";
import { FacSet, FightSet } from "../common/config/GameSet";
import { FieldSkillSet, FieldSkillType, SkillOverrides } from "../common/config/SkillSet";
@@ -53,10 +53,8 @@ export class HeroAttrsComp extends ecs.Comp {
[SkillTriggerType.Atked]?: TriggerGrouped;
/** 驻场光环(按 lv 解锁,存活期间全局生效) */
[SkillTriggerType.Field]?: LvFieldEntry[];
/** 额外攻击/生命/防御加成(按 lv 累加) */
ap_bonus?: LvBonusEntry[];
hp_bonus?: LvBonusEntry[];
def_bonus?: LvBonusEntry[];
/** 额外属性加成(按 lv 累加:hp/ap/def 百分比、 crt/frz/stun/para 固定百分点) */
bonus?: LvBonusAttrsEntry[];
// ==================== 运行时解析缓存(按当前等级 resolve 后的有效列表) ====================
/** 当前等级下生效的攻击触发条目(供 SkillTriggerHelper 消费) */
@@ -704,9 +702,7 @@ export class HeroAttrsComp extends ecs.Comp {
this.atking = undefined;
this.atked = undefined;
this.field = undefined;
this.ap_bonus = undefined;
this.hp_bonus = undefined;
this.def_bonus = undefined;
this.bonus = undefined;
this.runtime_atking = undefined;
this.runtime_atked = undefined;
this.runtime_call = undefined;