]> git.cworth.org Git - empires-server/blobdiff - lmno.js
Move the keepalive functionality from Empires up to Game
[empires-server] / lmno.js
diff --git a/lmno.js b/lmno.js
index a22f9588537b2cae1e75adbbeb94a88e68420e0a..b6c5b78e04e6b83a6700c19d623a6e55d625f1c8 100644 (file)
--- a/lmno.js
+++ b/lmno.js
@@ -78,8 +78,8 @@ nunjucks.configure("templates", {
  *                          add_move method.
  */
 const engines = {
-  empires: require("./empires"),
-  tictactoe: require("./tictactoe")
+  empires: require("./empires").Game,
+  tictactoe: require("./tictactoe").Game
 };
 
 class LMNO {
@@ -98,7 +98,7 @@ class LMNO {
 
     const engine = engines[engine_name];
 
-    const game = new engine.Game(id);
+    const game = new engine(id);
 
     this.games[id] = game;
 
@@ -277,7 +277,7 @@ app.get('/admin/', auth_admin, (request, response) => {
 /* Mount sub apps. only _after_ we have done all the middleware we need. */
 for (let key in engines) {
   const engine = engines[key];
-  const router = engine.Game.router;
+  const router = engine.router;
 
   /* Add routes that are common to all games. */
   router.get('/', (request, response) => {
@@ -297,18 +297,18 @@ for (let key in engines) {
 
   /* Further, add some routes conditionally depending on whether the
    * engine provides specific, necessary methods for the routes. */
-  if (engine.Game.prototype.add_move) {
+  if (engine.prototype.add_move) {
     router.post('/move', (request, response) => {
       const game = request.game;
       const move = request.body.move;
 
-      const legal = game.add_move(move);
+      const result = game.add_move(move);
 
-      /* Inform this client whether the move was legal. */
-      response.send(JSON.stringify(legal));
+      /* Feed move response back to the client. */
+      response.json(result);
 
       /* And only if legal, inform all clients. */
-      if (! legal)
+      if (! result.legal)
         return;
 
       game.broadcast_move(move);
@@ -316,7 +316,7 @@ for (let key in engines) {
   }
 
   /* And mount the whole router at the path for the game. */
-  app.use(`/${engine.Game.meta.identifier}/[a-zA-Z0-9]{4}/`, router);
+  app.use(`/${engine.meta.identifier}/[a-zA-Z0-9]{4}/`, router);
 }
 
 app.listen(4000, function () {