X-Git-Url: https://git.cworth.org/git?a=blobdiff_plain;f=empathy.js;h=8ecf9e10fc9bb26e2a2068a65dfb87a420138b15;hb=d4bf8b14e7407a96f9b035ad48cb31a2393a36ec;hp=7a75b71ecdd12a071945cdb89c0a8530cf38ce94;hpb=0787b1e92bfb59e3f2c4e8953ca5d898ff04bee3;p=empires-server diff --git a/empathy.js b/empathy.js index 7a75b71..8ecf9e1 100644 --- a/empathy.js +++ b/empathy.js @@ -5,7 +5,8 @@ class Empathy extends Game { constructor(id) { super(id); this.state = { - prompts: [] + prompts: [], + active_prompt: null }; this.next_prompt_id = 1; } @@ -35,6 +36,19 @@ class Empathy extends Game { return true; } + + /* Returns true on success, false for prompt not found. */ + start(prompt_id) { + const prompt = this.state.prompts.find(p => p.id === prompt_id); + if (! prompt) + return false; + + this.state.active_prompt = prompt; + + this.broadcast_event_object('start', prompt); + + return true; + } } Empathy.router = express.Router(); @@ -72,6 +86,16 @@ router.post('/vote/:prompt_id([0-9]+)', (request, response) => { response.sendStatus(404); }); +router.post('/start/:prompt_id([[0-9]+)', (request, response) => { + const game = request.game; + const prompt_id = parseInt(request.params.prompt_id, 10); + + if (game.start(prompt_id)) + response.sendStatus(200); + else + response.sendStatus(404); +}); + Empathy.meta = { name: "Empathy", identifier: "empathy",