feat(hero): 新增驻场光环系统与配置

1. 为英雄属性组件添加Field触发类型字段,支持存储驻场光环UUID列表
2. 扩展英雄进化配置,支持覆盖驻场光环配置
3. 优化FieldSkillHelper,优先使用进化后的驻场光环配置
4. 新增占卜师战前强攻限时Buff与援护弓手、占卜师、治愈牧师的6级进化驻场光环配置
5. 补充对应英雄的技能描述与进化逻辑注释
This commit is contained in:
pan
2026-07-24 10:19:12 +08:00
parent 42d0959b05
commit db300bd302
5 changed files with 66 additions and 6 deletions

View File

@@ -19,12 +19,14 @@ export class FieldSkillHelper {
let total = 0;
// 1. 统计英雄带来的驻场技能加成
// 读 model.field运行时优先使用 evolve 覆盖后的驻场配置,未升级时回退到 heroInfo 基础配置
ecs.query(ecs.allOf(HeroAttrsComp)).forEach((entity: ecs.Entity) => {
const model = entity.get(HeroAttrsComp);
if (!model || model.is_dead || model.fac !== FacSet.HERO) return;
const heroConfig = HeroInfo[model.hero_uuid];
if (heroConfig && heroConfig.field) {
for (const skillUuid of heroConfig.field) {
const fields = model.field ?? heroConfig?.field;
if (fields) {
for (const skillUuid of fields) {
const skillConfig = FieldSkillSet[skillUuid];
if (skillConfig && skillConfig.type === type) {
total += skillConfig.value;

View File

@@ -133,6 +133,7 @@ export class Hero extends ecs.Entity {
model.fend = hero.fend;
model.atking = hero.atking;
model.atked = hero.atked;
model.field = hero.field;
model.revive = hero.revive;
// 基础属性按等级倍率初始化
@@ -186,6 +187,8 @@ export class Hero extends ecs.Entity {
if (evo.dead) model.dead = evo.dead;
if (evo.fstart) model.fstart = evo.fstart;
if (evo.fend) model.fend = evo.fend;
// 覆盖驻场光环(存活期间全局生效)
if (evo.field) model.field = evo.field;
if (evo.revive) model.revive = evo.revive;
// 额外属性加成
if (evo.ap_bonus) model.ap += evo.ap_bonus;

View File

@@ -44,6 +44,8 @@ export class HeroAttrsComp extends ecs.Comp {
[SkillTriggerType.FEnd]?: { s_uuid: number; t_num: number; overrides?: SkillOverrides }[];
[SkillTriggerType.Atking]?: { s_uuid: number; t_num: number; overrides?: SkillOverrides }[];
[SkillTriggerType.Atked]?: { s_uuid: number; t_num: number; overrides?: SkillOverrides }[];
/** 驻场光环FieldSkillSet uuid 列表,随 evolve 覆盖,存活期间全局生效) */
[SkillTriggerType.Field]?: number[];
[SkillTriggerType.Revive]?: { s_uuid: number, r_num: number, upr: number };
// ==================== 特殊属性 ====================