X-Git-Url: https://git.cworth.org/git?a=blobdiff_plain;f=game.js;h=f1f764fa1968425d597e4e2ab47e4b8d916650a8;hb=fbf331eedc7d4579ec861c140e26a11b04278c1c;hp=fb2d75afa87214f1eaa4fe426772ca59f39e24f3;hpb=7b21a4eb7ed2d6d479842b01c35ba6931c3acdc7;p=empires-server diff --git a/game.js b/game.js index fb2d75a..f1f764f 100644 --- a/game.js +++ b/game.js @@ -1,6 +1,7 @@ /* Base class providing common code for game engine implementations. */ class Game { - constructor() { + constructor(id) { + this.id = id; this.clients = []; this.next_client_id = 1; } @@ -68,6 +69,17 @@ class Game { request.on('close', () => { this.remove_client(id); }); + + /* Finally, if this game class has a "state" property, stream that + * current state to the client. */ + if (this.state) { + const state_json = JSON.stringify(this.state); + response.write(`event: game-state\ndata: ${state_json}\n\n`); + } + } + + broadcast_move(move) { + this.broadcast_event("move", move); } }