const schema = require("@colyseus/schema"), Enemy = require("./Enemy.js"), Schema = schema.Schema, ArraySchema = schema.ArraySchema, MAX_ENEMIES = 10, ENEMY_SPAWN_DELAY = 1000; var lastEnemySpawn; class StarGazerState extends Schema { constructor() { console.log("Initalizing game state"); super(); this.stateType = "idle"; this.width = 1920; this.height = 1080; this.enemies = new ArraySchema(); } update(deltaTime) { this.spawnEnemy(); } spawnEnemy() { let now = Date.now(); if (lastEnemySpawn === undefined) { this.addEnemy(); lastEnemySpawn = now; return; } if ((now - lastEnemySpawn) > ENEMY_SPAWN_DELAY) { this.addEnemy(); lastEnemySpawn = now; } } addEnemy() { if (this.enemies.length < MAX_ENEMIES) { this.enemies.push(new Enemy()); } } } schema.defineTypes(StarGazerState, { stateType: "string", width: "number", height: "number", enemies: [Enemy], }); module.exports = StarGazerState;