feat: 实现DoT灼烧技能与debuff图标系统

本次提交完成了以下核心改动:
1.  调整fb-1~fb-6技能预制件的攻击偏移坐标,优化技能弹道位置
2.  新增DoT伤害机制,支持周期伤害/治疗的独立结算
3.  为Buff系统添加施法者属性快照,让DoT暴击、控制判定更准确
4.  新增顶栏debuff图标显示功能,支持灼烧等负面状态可视化
5.  为破晓先知等英雄替换为新的灼烧火球技能6104
6.  修复fb-2预制件的配置字段顺序与多余属性问题
This commit is contained in:
panFD
2026-08-15 14:36:38 +08:00
parent 8e5c0d3852
commit e8c6a7ca6a
17 changed files with 4118 additions and 970 deletions

View File

@@ -21,6 +21,8 @@ export interface BuffApplyOverrides {
duration?: number;
/** 覆写计时 buff 的修饰数值modifiers.value / tick.damage_or_heal由药水卡 buff_value 自定义档位 */
value?: number;
/** 施法者完整属性快照DoT tick 判定暴击/冰冻/击晕用),结构同 DamageEvent.Attrs */
source_attrs?: any;
}
class BuffManagerImpl {
@@ -55,7 +57,7 @@ class BuffManagerImpl {
buffComp.buffs.set(buffId, layers);
}
const newLayer = new ActiveBuff(buffId, duration, sourceUuid, sourceAp, overrides?.value);
const newLayer = new ActiveBuff(buffId, duration, sourceUuid, sourceAp, overrides?.value, overrides?.source_attrs);
if (cfg.max_stack === 0 || layers.length < cfg.max_stack) {
layers.push(newLayer);