Files
pixelheros/assets/script/game/skill/DOTSystem.ts
2025-01-31 21:50:59 +08:00

27 lines
697 B
TypeScript

@ecs.registerSystem()
export class DOTSystem extends ecs.System {
filter(): ecs.IMatcher {
return ecs.allOf(DOTComp);
}
update(entities: ecs.Entity[]) {
const delta = oops.timer.delta;
entities.forEach(hero => {
const dot = hero.get(DOTComp);
dot.duration -= delta;
// 每秒伤害
if (dot.accumulator >= 1) {
hero.get(HeroModelComp).hp -= dot.damagePerSec;
dot.accumulator -= 1;
}
dot.accumulator += delta;
// 效果结束
if (dot.duration <= 0) {
hero.remove(DOTComp);
}
});
}
}