feat(skill): add round end skill trigger system
新增回合结束(FEnd)类型的技能触发机制,包括: 1. 新增SkillTriggerType.FEnd枚举与相关配置映射 2. 为英雄、怪物属性组件添加回合结束技能的运行时解析与存储 3. 实现关卡节间流转时触发全队英雄回合结束技能的逻辑 4. 完善战力计算、技能图标检索等配套支持逻辑
This commit is contained in:
@@ -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 恢复最大生命值比例
|
||||
*/
|
||||
|
||||
Reference in New Issue
Block a user