feat(英雄技能): 添加技能前摇与后摇动画支持

- 在 SCastSystem 中调用 playReady 播放技能前摇动画
- 在 HeroAtkSystem 中调用 playEnd 播放技能后摇动画
- 将 playSkillEffect 重构为 playSkillAnm 以播放角色攻击动画
- 修复 HeroViewComp 中 playReady 方法名拼写错误
This commit is contained in:
panw
2026-03-18 15:17:25 +08:00
parent cc1ca2f18b
commit b17ec3695e
3 changed files with 13 additions and 8 deletions

View File

@@ -158,7 +158,10 @@ export class HeroAtkSystem extends ecs.ComblockSystem implements ecs.ISystemUpd
// ✅ 触发视图层表现(伤害数字、受击动画、后退)
if (targetView) targetView.do_atked(damage, isCrit, damageEvent.s_uuid, isBack);
if (targetView) {
targetView.do_atked(damage, isCrit, damageEvent.s_uuid, isBack);
targetView.playEnd(skillConf.endAnm);
}
// 检查死亡

View File

@@ -301,7 +301,7 @@ export class HeroViewComp extends CCComp {
node.parent = this.node;
}
public palayReady(anm: string = ""){
public playReady(anm: string = ""){
if(anm==="") return;
var path = "game/skill/ready/" + anm;
var prefab: Prefab = oops.res.get(path, Prefab)!;
@@ -516,11 +516,10 @@ export class HeroViewComp extends CCComp {
// 伤害计算和战斗逻辑已迁移到 HeroBattleSystem
playSkillEffect(skill_id:number) {
let skill = SkillSet[skill_id]
mLogger.log(this.debugMode, 'HeroViewComp', '[heroview] skill_id'+skill_id,skill)
if (!skill) return;
switch(skill.act){
playSkillAnm(act:string="") {
mLogger.log(this.debugMode, 'HeroViewComp', '[heroview] act'+act,)
if (act==="") return;
switch(act){
case "max":
this.as.max()
break

View File

@@ -70,7 +70,10 @@ export class SCastSystem extends ecs.ComblockSystem implements ecs.ISystemUpdate
const s_uuid = castPlan.skillId;
const config = SkillSet[s_uuid];
if (!config) return;
heroView.playSkillEffect(s_uuid);
//播放前摇技能动画
heroView.playReady(config.readyAnm);
//播放角色攻击动画
heroView.playSkillAnm(config.act);
const isMainSkill = s_uuid === heroAttrs.skill_id;
// 优先使用技能配置的前摇时间,否则使用全局默认值