X-Git-Url: https://git.cworth.org/git?p=empires-server;a=blobdiff_plain;f=empires.js;h=839f5f8be8dc56460b4c6165d4378d99de56f095;hp=8d57543817e659a515922134915c8bd65d877677;hb=HEAD;hpb=10bc834cbdd0fe4556fca4a79aafa4e88174312d diff --git a/empires.js b/empires.js index 8d57543..839f5f8 100644 --- a/empires.js +++ b/empires.js @@ -1,8 +1,6 @@ const express = require("express"); const Game = require("./game.js"); -const router = express.Router(); - const GamePhase = { JOIN: 1, REVEAL: 2, @@ -40,9 +38,6 @@ class Empires extends Game { this.next_player_id = 1; this.characters_to_reveal = null; this.phase = GamePhase.JOIN; - - /* Send a comment to every connected client every 15 seconds. */ - setInterval(() => {this.broadcast_string(":");}, 15000); } add_spectator(name, session_id) { @@ -70,7 +65,7 @@ class Empires extends Game { this.broadcast_event("spectator-leave", `{"id": ${id}}`); } - add_player(name, character) { + register_player(name, character) { const new_player = {id: this.next_player_id, name: name, character: character, @@ -181,7 +176,14 @@ class Empires extends Game { })); } - get players() { + /* The base class recently acquired Game.players which works like + * Empires.spectators, (and meanwhile the Empires._players + * functionality could perhaps be reworked into + * Game.players[].team). Until we do that rework, lets use + * .registered_players as the getter for the Empires-specific + * ._players property to avoid mixing it up with the distinct + * Game.players property. */ + get registered_players() { return this._players.map(player => ({id: player.id, name: player.name })); } @@ -227,7 +229,7 @@ class Empires extends Game { } if (this._players.length > 0) { - const players_json = JSON.stringify(this.players); + const players_json = JSON.stringify(this.registered_players); const players_data = `event: players\ndata: ${players_json}\n\n`; response.write(players_data); } @@ -247,6 +249,9 @@ class Empires extends Game { } +Empires.router = express.Router(); +const router = Empires.router; + router.post('/spectator', (request, response) => { const game = request.game; var name = request.session.nickname; @@ -273,7 +278,7 @@ router.post('/register', (request, response) => { if (request.body.name) name = request.body.name; - const player = game.add_player(name, request.body.character); + const player = game.register_player(name, request.body.character); response.send(JSON.stringify(player.id)); }); @@ -336,18 +341,12 @@ router.get('/spectators', (request, response) => { router.get('/players', (request, response) => { const game = request.game; - response.send(game.players); -}); - -router.get('/events', (request, response) => { - const game = request.game; - game.handle_events(request, response); + response.send(game.registered_players); }); -exports.router = router; -exports.Game = Empires; - Empires.meta = { name: "Empires", identifier: "empires" }; + +exports.Game = Empires;