Files
esengine/demo/src/game/SpawnerSystem.ts

34 lines
943 B
TypeScript
Raw Normal View History

2020-06-08 18:26:05 +08:00
class SpawnerSystem extends EntityProcessingSystem {
constructor(matcher: Matcher){
super(matcher);
}
public processEntity(entity: Entity){
let spawner = entity.getComponent<SpawnComponent>(SpawnComponent);
if (!spawner)
return;
2020-06-08 18:26:05 +08:00
if (spawner.numAlive <= 0)
spawner.enabled = true;
if (!spawner.enabled)
return;
console.log("cooldown", spawner.cooldown);
if (spawner.cooldown == -1){
spawner.cooldown = Math.random() * 60;
2020-06-08 18:26:05 +08:00
spawner.cooldown /= 4;
}
spawner.cooldown -= Time.deltaTime;
2020-06-08 18:26:05 +08:00
if (spawner.cooldown <= 0){
spawner.cooldown = Math.random() * 60;
2020-06-08 18:26:05 +08:00
// CreateEnemy
spawner.numSpawned ++;
spawner.numAlive ++;
if (spawner.numAlive > 0)
spawner.enabled = false;
}
}
}