Files
pixelheros/assets/script/game/core/GameEvents.ts
walkpan bffbb9077e dd
2025-02-01 00:14:25 +08:00

18 lines
517 B
TypeScript

export class CombatEvent {
static readonly type = 'CombatEvent';
constructor(
public readonly attacker: ecs.Entity,
public readonly target: ecs.Entity,
public readonly damage: number
) {}
}
// 事件监听示例
oops.message.on(CombatEvent.type, (event: CombatEvent) => {
const targetModel = event.target.get(HeroModel);
targetModel.hp = Math.max(targetModel.hp - event.damage, 0);
if (targetModel.hp <= 0) {
event.target.add(Status).setDead();
}
});