@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); } }); } }