55 lines
1.2 KiB
JavaScript
55 lines
1.2 KiB
JavaScript
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 {
|
|
constructor(name) {
|
|
this.name = name;
|
|
this.players = [];
|
|
this.world = new World([16,16])
|
|
}
|
|
|
|
addPlayer(id, name) {
|
|
if (this.getAllNames().includes(name)) return false
|
|
var color = 1
|
|
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) {
|
|
roomManager.removeGame(this.name);
|
|
}
|
|
}
|
|
|
|
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
|
|
}
|
|
|
|
getSettings() {
|
|
const settings =
|
|
{
|
|
mines: this.world.mines,
|
|
dimensions: this.world.dimensions,
|
|
name: this.name
|
|
}
|
|
return settings
|
|
|
|
}
|
|
}
|