refactor: 重构技能触发逻辑,将proc_skill从命中触发改为施法后触发

1.  调整proc_skill触发时机为施法出手时判定,一次施法仅判定一次,与命中/弹道数无关
2.  移除HeroAtkSystem中旧的proc_skill触发逻辑,新增SCastSystem的tryProcSkill方法
3.  更新技能配置注释、编辑器文案与文档说明,同步调整服务端技能描述显示
4.  全局设置Element Plus组件为small尺寸,优化编辑器UI布局
5.  清理冗余的proc_skill快照传递逻辑,移除unused的reviveOptions计算属性
This commit is contained in:
pan
2026-09-08 17:22:41 +08:00
parent fe0b121cb5
commit 799b93817d
14 changed files with 83 additions and 66 deletions

View File

@@ -1,6 +1,5 @@
import { ecs } from "../../../../extensions/oops-plugin-framework/assets/libs/ecs/ECS";
import { BoxSet } from "../common/config/GameSet";
import { SkillOverrides } from "../common/config/SkillSet";
import { TimedDebuffSnapshot } from "../hero/DamageQueueComp";
/** 业务层对象 */
@@ -18,9 +17,6 @@ export class SDataCom extends ecs.Comp {
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 };
/** 命中后对敌 debuff(由 Skill.load 从合并后配置快照;DamageEvent 透传给 HeroAtkSystem 结算) */
timed_debuff?: TimedDebuffSnapshot;
reset() {
@@ -34,7 +30,6 @@ export class SDataCom extends ecs.Comp {
this.max_hit_count=0
this.ext_dmg=0
this.dmg_ratio=1
this.proc_skill=undefined
this.timed_debuff=undefined
}
}

View File

@@ -243,8 +243,7 @@ export class Skill extends ecs.Entity {
sDataCom.ext_dmg = ext_dmg
sDataCom.hit_count = 0
sDataCom.max_hit_count = Math.max(1, sHit)
// 快照合并后(基础配置+heroSet overrides/lv_entries)的 proc_skill,命中时由 HeroAtkSystem 判定触发
sDataCom.proc_skill = config.proc_skill;
// proc_skill 已改为施法后触发(SCastSystem 判定),此处不再快照到伤害链
// 快照合并后的对敌 debuff 配置,命中时由 HeroAtkSystem 结算(heroSet overrides/lv_entries 注入的 debuff 依赖此透传)
sDataCom.timed_debuff = config.timed_debuff_id
? { id: config.timed_debuff_id, value: config.debuff_value, duration: config.debuff_duration, chance: config.debuff_chance }

View File

@@ -219,7 +219,6 @@ export class SkillView extends CCComp {
this.sData.ext_dmg,
finalRatio,
0,
this.sData.proc_skill,
this.sData.timed_debuff,
);
}