2022-06-22 01:51:09 +00:00
|
|
|
import {Player} from "./player.mjs"
|
|
|
|
import * as log from "./log.mjs"
|
|
|
|
import {roomManager} from "./roomManager.mjs"
|
|
|
|
import { World} from "./world/world.mjs"
|
|
|
|
|
|
|
|
export class Game {
|
2022-06-23 05:44:57 +00:00
|
|
|
constructor(id, options) {
|
|
|
|
this.id = id;
|
2022-06-22 01:51:09 +00:00
|
|
|
this.players = [];
|
2022-06-23 05:44:57 +00:00
|
|
|
this.world = new World(options)
|
2022-06-22 01:51:09 +00:00
|
|
|
}
|
|
|
|
|
2022-06-23 20:18:23 +00:00
|
|
|
addPlayer(id, name, color) {
|
2022-06-22 01:51:09 +00:00
|
|
|
if (this.getAllNames().includes(name)) return false
|
|
|
|
const player = new Player(id, name, color);
|
|
|
|
this.players.push(player);
|
|
|
|
return player
|
|
|
|
}
|
|
|
|
|
|
|
|
removePlayerByID(id) {
|
|
|
|
this.players = this.players.filter(obj => obj.id != id);
|
|
|
|
log.log("removed player - " + id)
|
|
|
|
if (this.players.length < 1) {
|
2022-06-23 05:44:57 +00:00
|
|
|
roomManager.removeGameByID(this.id);
|
2022-06-22 01:51:09 +00:00
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
getAllIDs() {
|
|
|
|
let ids = []
|
|
|
|
for (let i = 0; i < this.players.length; i++) {
|
|
|
|
ids.push(this.players[i].id)
|
|
|
|
}
|
|
|
|
return ids
|
|
|
|
}
|
|
|
|
getAllNames() {
|
|
|
|
let names = []
|
|
|
|
for (let i = 0; i < this.players.length; i++) {
|
|
|
|
names.push(this.players[i].name)
|
|
|
|
}
|
|
|
|
return names
|
|
|
|
}
|
|
|
|
}
|