StarGazerState.js 1.13 KB
Newer Older
Alexander Bazo committed
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55
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;