feat(技能): 新增触发技能机制并调整死亡特效颜色
- 在 GameEvent 枚举中添加 TriggerSkill 事件用于技能触发 - 为 Hero 和 Monster 实体添加召唤入场时的 call 技能触发 - 在 HeroAtkSystem 中实现死亡时的 dead 技能触发 - 扩展 SCastSystem 支持强制触发技能(忽略CD和动画前摇) - 将死亡技能特效颜色从灰色调整为白色以提升视觉效果
This commit is contained in:
@@ -7,6 +7,7 @@ import { HeroInfo } from "../common/config/heroSet";
|
||||
import { HeroAttrsComp } from "./HeroAttrsComp";
|
||||
import { HeroViewComp } from "./HeroViewComp";
|
||||
import { MoveComp } from "./MoveComp";
|
||||
import { GameEvent } from "../common/config/GameEvent";
|
||||
/** 怪物实体:负责怪物对象池复用、属性初始化、入场动画与回收 */
|
||||
@ecs.register(`Monster`)
|
||||
export class Monster extends ecs.Entity {
|
||||
@@ -193,6 +194,15 @@ export class Monster extends ecs.Entity {
|
||||
move.baseY = dropToY;
|
||||
move.moving = false;
|
||||
|
||||
// 触发 call 技能
|
||||
if (hero.call) {
|
||||
oops.message.dispatchEvent(GameEvent.TriggerSkill, {
|
||||
s_uuid: hero.call,
|
||||
heroAttrs: model,
|
||||
heroView: view
|
||||
});
|
||||
}
|
||||
|
||||
// 依据下落距离自适应入场时长,确保观感一致
|
||||
const dropDistance = Math.abs(pos.y - dropToY);
|
||||
const dropDuration = Math.max(0.18, Math.min(0.38, dropDistance / 1200));
|
||||
|
||||
Reference in New Issue
Block a user