Files
pixelheros/assets/script/game/skill/SDataCom.ts
panFD 63423c5378 feat(skill): add proc skill trigger system
实现技能命中后概率触发额外技能的完整流程

1.  新增proc_skill技能配置字段与数据组件
2.  新增公共技能派发工具方法
3.  在HeroAtkSystem中添加触发逻辑
4.  完善伤害事件与技能视图传递proc_skill参数
2026-09-05 13:26:34 +08:00

38 lines
1.3 KiB
TypeScript
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
import { ecs } from "../../../../extensions/oops-plugin-framework/assets/libs/ecs/ECS";
import { BoxSet } from "../common/config/GameSet";
import { SkillOverrides } from "../common/config/SkillSet";
/** 业务层对象 */
//技能数据
@ecs.register('SDataCom')
export class SDataCom extends ecs.Comp {
/** 业务层组件移除时,重置所有数据为默认值 */
Attrs:any=null
casterEid: number = -1; // 施法者实体ID,用于安全校验
group:BoxSet=BoxSet.HERO
fac: number = 0; // 0:hero 1:monster
s_uuid:number=0
skill_lv:number=0
ext_dmg:number=0 //额外伤害
dmg_ratio:number=1 //伤害比例
hit_count:number=0 //击中数量
max_hit_count:number=0 //最大可命中次数
/** 命中后概率触发额外技能(由 Skill.load 从合并后配置快照;DamageEvent 透传给 HeroAtkSystem 判定;
* overrides 字段透传给被触发技能,用于自定义伤害/数值) */
proc_skill?: { s_uuid: number; chance?: number; overrides?: SkillOverrides };
reset() {
this.Attrs=null
this.group=BoxSet.HERO
this.fac=0
this.s_uuid=0
this.skill_lv=0
this.casterEid = -1;
this.hit_count=0
this.max_hit_count=0
this.ext_dmg=0
this.dmg_ratio=1
this.proc_skill=undefined
}
}