使用ecs系统进行重构

This commit is contained in:
walkpan
2025-01-31 21:50:59 +08:00
parent 6ea3e9504d
commit c5c01c6cf4
18 changed files with 491 additions and 44 deletions

View File

@@ -0,0 +1,27 @@
@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);
}
});
}
}