feat(skill): add round end skill trigger system

新增回合结束(FEnd)类型的技能触发机制,包括:
1. 新增SkillTriggerType.FEnd枚举与相关配置映射
2. 为英雄、怪物属性组件添加回合结束技能的运行时解析与存储
3. 实现关卡节间流转时触发全队英雄回合结束技能的逻辑
4. 完善战力计算、技能图标检索等配套支持逻辑
This commit is contained in:
panFD
2026-09-14 16:59:47 +08:00
parent c97c3f36c5
commit 3bbf4a7eb6
6 changed files with 43 additions and 3 deletions

View File

@@ -565,6 +565,10 @@ export class MissionComp extends CCComp {
// 通关判定:Boss 节(末节)胜利即视为本关通关
smc.vmdata.scores.passed_wave_20 = true;
// 触发回合结束技能(fend):仅节间流转时触发;
// 末节结算/失败时 pause 已置位,跳过避免结算瞬间白播施法表现
this.triggerHeroWaveEndSkills();
}
// 战斗结束阶段,按 FightSet.WAVE_HEAL_RATE 恢复所有英雄血量
@@ -676,6 +680,20 @@ export class MissionComp extends CCComp {
});
}
/**
* 触发英雄的回合结束技能(fend)
* 每回合(节)切入 BattleEnd 时对全队存活英雄各触发 1 次(无光环加成),
* 先于节间回血 healAllHeroes 结算,保证治疗/护盾类 fend 能吃到节末血线
*/
private triggerHeroWaveEndSkills() {
ecs.query(this.heroAttrsMatcher).forEach(entity => {
const attrs = entity.get(HeroAttrsComp);
const view = entity.get(HeroViewComp);
if (!attrs || !view || attrs.is_dead || attrs.fac !== FacSet.HERO) return;
SkillTriggerHelper.trigger(SkillTriggerType.FEnd, attrs, view);
});
}
/**
* 战斗结束阶段治疗所有英雄(节间回血),按 FightSet.WAVE_HEAL_RATE 恢复最大生命值比例
*/