refactor(hero cast): add buff effect animation resolution logic

新增根据buff属性解析对应增益特效动画名的方法,并在施加永久和计时buff时播放对应特效
This commit is contained in:
pan
2026-09-07 17:22:54 +08:00
parent d37bbbcd72
commit 73b1d054d0

View File

@@ -517,6 +517,13 @@ export class SCastSystem extends ecs.ComblockSystem implements ecs.ISystemUpdate
} }
} }
/** 解析 buff 增益特效动画名:攻击提升→up_ap,攻速提升→up_cd,其余→up_blue */
private resolveBuffEndAnm(attr?: Attrs): string {
if (attr === Attrs.ap) return "up_ap";
if (attr === Attrs.speed) return "up_cd";
return "up_blue";
}
private applyActualFriendlyEffect(target: HeroViewComp, kind: SkillKind, sAp: number, _cAttrsComp: HeroAttrsComp, config: SkillConfig, _skillLv: number = 1) { private applyActualFriendlyEffect(target: HeroViewComp, kind: SkillKind, sAp: number, _cAttrsComp: HeroAttrsComp, config: SkillConfig, _skillLv: number = 1) {
if (!target.ent) return; if (!target.ent) return;
const model = target.ent.get(HeroAttrsComp); const model = target.ent.get(HeroAttrsComp);
@@ -570,6 +577,8 @@ export class SCastSystem extends ecs.ComblockSystem implements ecs.ISystemUpdate
_cAttrsComp.ap, _cAttrsComp.ap,
Object.keys(buffOverrides).length > 0 ? buffOverrides : undefined Object.keys(buffOverrides).length > 0 ? buffOverrides : undefined
); );
// 播放计时 buff 增益特效:按修饰属性区分(攻击提升/攻速提升/其他)
target.playEnd(this.resolveBuffEndAnm(BuffList[config.timed_buff_id]?.modifiers?.[0]?.attr));
return; return;
} }
@@ -577,6 +586,9 @@ export class SCastSystem extends ecs.ComblockSystem implements ecs.ISystemUpdate
// buff 强化(buff_power,百分点):辅助专精天赋写入,按施法者放大永久 buff 数值 // buff 强化(buff_power,百分点):辅助专精天赋写入,按施法者放大永久 buff 数值
const totalBuffValue = config.ap * (1 + _cAttrsComp.buff_power / 100); const totalBuffValue = config.ap * (1 + _cAttrsComp.buff_power / 100);
// 播放永久 buff 增益特效:按 buff 属性区分(攻击提升/攻速提升/其他)
target.playEnd(this.resolveBuffEndAnm(config.buff_type));
switch (config.buff_type) { switch (config.buff_type) {
case Attrs.ap: { case Attrs.ap: {
// 攻击力按基础 ap 的百分比提升 // 攻击力按基础 ap 的百分比提升