]> git.cworth.org Git - empires-server/blobdiff - empires.js
LMNO: Simplify storage of the games array by not storing ID next to game
[empires-server] / empires.js
index f95bba9f48da600bb68ae46aec66e436ff4fed6b..cb7571d67ef3ff81934593cf76c8b5c407c65ce6 100644 (file)
@@ -1,8 +1,6 @@
 const express = require("express");
 const Game = require("./game.js");
 
-const engine_name = "empires";
-
 const router = express.Router();
 
 const GameState = {
@@ -34,8 +32,8 @@ function shuffle(a) {
 }
 
 class Empires extends Game {
-  constructor() {
-    super(engine_name);
+  constructor(id) {
+    super(id);
     this._spectators = [];
     this.next_spectator_id = 1;
     this._players = [];
@@ -85,6 +83,8 @@ class Empires extends Game {
       want. */
     const player_data = JSON.stringify((({id, name}) => ({id, name}))(new_player));
     this.broadcast_event("player-join", player_data);
+
+    return new_player;
   }
 
   remove_player(id) {
@@ -247,13 +247,6 @@ class Empires extends Game {
 
 }
 
-router.get('/', (request, response) => {
-  if (! request.session.nickname)
-    response.render('choose-nickname.html', { game_name: "Empires" });
-  else
-    response.render('empires-game.html');
-});
-
 router.post('/spectator', (request, response) => {
   const game = request.game;
   var name = request.session.nickname;
@@ -280,8 +273,8 @@ router.post('/register', (request, response) => {
   if (request.body.name)
     name = request.body.name;
 
-  game.add_player(name, request.body.character);
-  response.send();
+  const player = game.add_player(name, request.body.character);
+  response.send(JSON.stringify(player.id));
 });
 
 router.post('/deregister/:id', (request, response) => {
@@ -352,5 +345,11 @@ router.get('/events', (request, response) => {
 });
 
 exports.router = router;
-exports.name = engine_name;
 exports.Game = Empires;
+
+Empires.meta = {
+  name: "Empires",
+  identifier: "empires"
+};
+
+exports.meta = Empires.meta;