UNPKG

gamelet-cli

Version:

Download project from code.gamelet.com, edit/test in vscode and sync back to server.

89 lines 5.93 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.Gameroom = exports.GameroomState = void 0; const GameroomBase_1 = require("./GameroomBase"); var GameroomState; (function (GameroomState) { GameroomState[GameroomState["OPEN"] = 0] = "OPEN"; GameroomState[GameroomState["LOCKED"] = 1] = "LOCKED"; GameroomState[GameroomState["OVER"] = 2] = "OVER"; })(GameroomState = exports.GameroomState || (exports.GameroomState = {})); class Gameroom extends GameroomBase_1.GameroomBase { constructor(server, client, code, creator, gamezone, name, password, maxPlayers, state, stateJson, allowGuest) { super('gameroom', code, server, client, stateJson); this.creator = creator; this.gamezone = gamezone; this.name = name; this.password = password; this.maxPlayers = maxPlayers; this.state = state; this.allowGuest = allowGuest; this.brainer = creator; } get monitorChannel() { return `(room) ${this.code}`; } dispose() { this.gamezone.removeGameroom(this); super.dispose(); } addPlayer(player) { if (this.playersCount >= this.maxPlayers) { throw new Error('The number of players has reached the limit of the gameroom size.'); } if (super.addPlayer(player)) { player.setGameroom(this); return true; } return false; } removePlayer(player) { if (player.getGameroom() == this) { player.setGameroom(null); } if (super.removePlayer(player)) { if (!this.playersCount) { this.dispose(); } return true; } return false; } toVo() { const json = { code: this.code, creator: this.creator.toVo(), name: this.name, zoneCode: this.gamezone.code, maxPlayers: this.maxPlayers, allowGuest: this.allowGuest, createTime: this.createTime, }; this.password && (json.pwd = 1); return json; } toStatusVo() { return { state: this.state, stateJson: this.stateJson, players: this.playersCount, ping: this.getPing(), }; } toAndStatusVo() { return { room: this.toVo(), status: this.toStatusVo() }; } toFullVo() { return { room: this.toVo(), status: this.toStatusVo(), brainer: this.getBrainer().code, playerStates: this.playerStates }; } } exports.Gameroom = Gameroom; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiR2FtZXJvb20uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvc2VydmVyL2VudGl0aWVzL0dhbWVyb29tLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUVBLGlEQUE4QztBQUc5QyxJQUFZLGFBSVg7QUFKRCxXQUFZLGFBQWE7SUFDckIsaURBQUksQ0FBQTtJQUNKLHFEQUFNLENBQUE7SUFDTixpREFBSSxDQUFBO0FBQ1IsQ0FBQyxFQUpXLGFBQWEsR0FBYixxQkFBYSxLQUFiLHFCQUFhLFFBSXhCO0FBRUQsTUFBYSxRQUFTLFNBQVEsMkJBQVk7SUFFdEMsWUFDSSxNQUEwQixFQUMxQixNQUFjLEVBQ2QsSUFBWSxFQUNMLE9BQWUsRUFDZixRQUFrQixFQUNsQixJQUFZLEVBQ1osUUFBZ0IsRUFDaEIsVUFBa0IsRUFDbEIsS0FBb0IsRUFDM0IsU0FBaUMsRUFDMUIsVUFBbUI7UUFFMUIsS0FBSyxDQUFDLFVBQVUsRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxTQUFTLENBQUMsQ0FBQztRQVQ1QyxZQUFPLEdBQVAsT0FBTyxDQUFRO1FBQ2YsYUFBUSxHQUFSLFFBQVEsQ0FBVTtRQUNsQixTQUFJLEdBQUosSUFBSSxDQUFRO1FBQ1osYUFBUSxHQUFSLFFBQVEsQ0FBUTtRQUNoQixlQUFVLEdBQVYsVUFBVSxDQUFRO1FBQ2xCLFVBQUssR0FBTCxLQUFLLENBQWU7UUFFcEIsZUFBVSxHQUFWLFVBQVUsQ0FBUztRQUcxQixJQUFJLENBQUMsT0FBTyxHQUFHLE9BQU8sQ0FBQztJQUMzQixDQUFDO0lBRUQsSUFBSSxjQUFjO1FBQ2QsT0FBTyxVQUFVLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQTtJQUNoQyxDQUFDO0lBRUQsT0FBTztRQUNILElBQUksQ0FBQyxRQUFRLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ25DLEtBQUssQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUNwQixDQUFDO0lBRUQsU0FBUyxDQUFDLE1BQWM7UUFDcEIsSUFBSSxJQUFJLENBQUMsWUFBWSxJQUFJLElBQUksQ0FBQyxVQUFVLEVBQUU7WUFDdEMsTUFBTSxJQUFJLEtBQUssQ0FBQyxtRUFBbUUsQ0FBQyxDQUFBO1NBQ3ZGO1FBQ0QsSUFBSSxLQUFLLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxFQUFFO1lBQ3pCLE1BQU0sQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDekIsT0FBTyxJQUFJLENBQUM7U0FDZjtRQUNELE9BQU8sS0FBSyxDQUFDO0lBQ2pCLENBQUM7SUFFRCxZQUFZLENBQUMsTUFBYztRQUN2QixJQUFJLE1BQU0sQ0FBQyxXQUFXLEVBQUUsSUFBSSxJQUFJLEVBQUU7WUFDOUIsTUFBTSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQztTQUM1QjtRQUNELElBQUksS0FBSyxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsRUFBRTtZQUM1QixJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRTtnQkFDcEIsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO2FBQ2xCO1lBQ0QsT0FBTyxJQUFJLENBQUM7U0FDZjtRQUNELE9BQU8sS0FBSyxDQUFDO0lBQ2pCLENBQUM7SUFFRCxJQUFJO1FBQ0EsTUFBTSxJQUFJLEdBQVE7WUFDZCxJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUk7WUFDZixPQUFPLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUU7WUFDNUIsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJO1lBQ2YsUUFBUSxFQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSTtZQUM1QixVQUFVLEVBQUUsSUFBSSxDQUFDLFVBQVU7WUFDM0IsVUFBVSxFQUFFLElBQUksQ0FBQyxVQUFVO1lBQzNCLFVBQVUsRUFBRSxJQUFJLENBQUMsVUFBVTtTQUM5QixDQUFBO1FBQ0QsSUFBSSxDQUFDLFFBQVEsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFDaEMsT0FBTyxJQUFJLENBQUM7SUFDaEIsQ0FBQztJQUVELFVBQVU7UUFDTixPQUFPO1lBQ0gsS0FBSyxFQUFFLElBQUksQ0FBQyxLQUFLO1lBQ2pCLFNBQVMsRUFBRSxJQUFJLENBQUMsU0FBUztZQUN6QixPQUFPLEVBQUUsSUFBSSxDQUFDLFlBQVk7WUFDMUIsSUFBSSxFQUFFLElBQUksQ0FBQyxPQUFPLEVBQUU7U0FDdkIsQ0FBQTtJQUNMLENBQUM7SUFFRCxhQUFhO1FBQ1QsT0FBTztZQUNILElBQUksRUFBRSxJQUFJLENBQUMsSUFBSSxFQUFFO1lBQ2pCLE1BQU0sRUFBRSxJQUFJLENBQUMsVUFBVSxFQUFFO1NBQzVCLENBQUE7SUFDTCxDQUFDO0lBRUQsUUFBUTtRQUNKLE9BQU87WUFDSCxJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUksRUFBRTtZQUNqQixNQUFNLEVBQUUsSUFBSSxDQUFDLFVBQVUsRUFBRTtZQUN6QixPQUFPLEVBQUUsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDLElBQUk7WUFDL0IsWUFBWSxFQUFFLElBQUksQ0FBQyxZQUFZO1NBQ2xDLENBQUE7SUFDTCxDQUFDO0NBQ0o7QUExRkQsNEJBMEZDIn0=