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

37 lines
1.1 KiB
TypeScript
Raw Normal View History

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