feat(skill): add round end skill trigger system
新增回合结束(FEnd)类型的技能触发机制,包括: 1. 新增SkillTriggerType.FEnd枚举与相关配置映射 2. 为英雄、怪物属性组件添加回合结束技能的运行时解析与存储 3. 实现关卡节间流转时触发全队英雄回合结束技能的逻辑 4. 完善战力计算、技能图标检索等配套支持逻辑
This commit is contained in:
@@ -177,6 +177,7 @@ export class Hero extends ecs.Entity {
|
||||
model.runtime_call = resolveTriggerByLv(model.call, hero_lv);
|
||||
model.runtime_dead = resolveTriggerByLv(model.dead, hero_lv);
|
||||
model.runtime_fstart = resolveTriggerByLv(model.fstart, hero_lv);
|
||||
model.runtime_fend = resolveTriggerByLv(model.fend, hero_lv);
|
||||
model.runtime_atking = resolveTriggerByLv(model.atking, hero_lv);
|
||||
model.runtime_atked = resolveTriggerByLv(model.atked, hero_lv);
|
||||
model.runtime_field = resolveFieldByLv(model.field, hero_lv);
|
||||
|
||||
@@ -53,6 +53,7 @@ export class HeroAttrsComp extends ecs.Comp {
|
||||
[SkillTriggerType.Call]?: TriggerGrouped;
|
||||
[SkillTriggerType.Dead]?: TriggerGrouped;
|
||||
[SkillTriggerType.FStart]?: TriggerGrouped;
|
||||
[SkillTriggerType.FEnd]?: TriggerGrouped;
|
||||
[SkillTriggerType.Atking]?: TriggerGrouped;
|
||||
[SkillTriggerType.Atked]?: TriggerGrouped;
|
||||
/** 驻场光环(按 lv 解锁,存活期间全局生效) */
|
||||
@@ -71,6 +72,8 @@ export class HeroAttrsComp extends ecs.Comp {
|
||||
runtime_dead?: { s_uuid: number; t_num: number; overrides?: SkillOverrides }[];
|
||||
/** 当前等级下生效的战前触发条目 */
|
||||
runtime_fstart?: { s_uuid: number; t_num: number; overrides?: SkillOverrides }[];
|
||||
/** 当前等级下生效的回合结束触发条目 */
|
||||
runtime_fend?: { s_uuid: number; t_num: number; overrides?: SkillOverrides }[];
|
||||
/** 当前等级下生效的驻场光环词条列表 */
|
||||
runtime_field?: FieldEntry[];
|
||||
|
||||
@@ -725,6 +728,7 @@ export class HeroAttrsComp extends ecs.Comp {
|
||||
this.call = undefined;
|
||||
this.dead = undefined;
|
||||
this.fstart = undefined;
|
||||
this.fend = undefined;
|
||||
this.atking = undefined;
|
||||
this.atked = undefined;
|
||||
this.field = undefined;
|
||||
@@ -734,6 +738,7 @@ export class HeroAttrsComp extends ecs.Comp {
|
||||
this.runtime_call = undefined;
|
||||
this.runtime_dead = undefined;
|
||||
this.runtime_fstart = undefined;
|
||||
this.runtime_fend = undefined;
|
||||
this.runtime_field = undefined;
|
||||
this.critical = 0;
|
||||
this.critical_res = 0;
|
||||
|
||||
@@ -241,6 +241,7 @@ export class Monster extends ecs.Entity {
|
||||
model.runtime_call = resolveTriggerByLv(model.call, mon_lv);
|
||||
model.runtime_dead = resolveTriggerByLv(model.dead, mon_lv);
|
||||
model.runtime_fstart = resolveTriggerByLv(model.fstart, mon_lv);
|
||||
model.runtime_fend = resolveTriggerByLv(model.fend, mon_lv);
|
||||
model.runtime_atking = resolveTriggerByLv(model.atking, mon_lv);
|
||||
model.runtime_atked = resolveTriggerByLv(model.atked, mon_lv);
|
||||
// 复活已纳入 dead 触发组,无需单独解析 revive
|
||||
|
||||
@@ -44,6 +44,9 @@ export class SkillTriggerHelper {
|
||||
case SkillTriggerType.FStart:
|
||||
this.handleArrayTrigger(model.runtime_fstart, model, view, type);
|
||||
break;
|
||||
case SkillTriggerType.FEnd:
|
||||
this.handleArrayTrigger(model.runtime_fend, model, view, type);
|
||||
break;
|
||||
case SkillTriggerType.Atking:
|
||||
this.handleAtking(model, view);
|
||||
break;
|
||||
|
||||
Reference in New Issue
Block a user