X-Git-Url: https://git.cworth.org/git?p=lmno.games;a=blobdiff_plain;f=empathy%2Fempathy.jsx;h=54d6c2660975aac30c9376ba05cff1c4feef3048;hp=39461898cf5efd9d7478a2acd68a333c791be74c;hb=3c2c043c4a6e389a597736c9fd366b716ac7237c;hpb=ff43730d806faf03b488ee59c49d576686696d6c diff --git a/empathy/empathy.jsx b/empathy/empathy.jsx index 3946189..54d6c26 100644 --- a/empathy/empathy.jsx +++ b/empathy/empathy.jsx @@ -55,11 +55,11 @@ events.addEventListener("player-update", event => { events.addEventListener("game-state", event => { const state = JSON.parse(event.data); - for (let prompt of state.prompts) { - window.game.add_or_update_prompt(prompt); - } + window.game.set_prompts(state.prompts); window.game.set_active_prompt(state.active_prompt); + + window.game.set_scores(state.scores); }); events.addEventListener("prompt", event => { @@ -74,6 +74,18 @@ events.addEventListener("start", event => { window.game.set_active_prompt(prompt); }); +events.addEventListener("answered", event => { + const players_answered = JSON.parse(event.data); + + window.game.set_players_answered(players_answered); +}); + +events.addEventListener("scores", event => { + const scores = JSON.parse(event.data); + + window.game.set_scores(scores); +}); + /********************************************************* * Game and supporting classes * *********************************************************/ @@ -336,7 +348,8 @@ class ActivePrompt extends React.PureComponent { if (this.state.submitted) return (
-

Answers submitted

+

{this.props.players_answered}/ + {this.props.players_total} players have responded

Please wait for the rest of the players to submit their answers.

@@ -390,7 +403,9 @@ class Game extends React.PureComponent { game_info: {}, player_info: {}, other_players: [], - prompts: [] + prompts: [], + active_prompt: null, + players_answered: 0 }; } @@ -419,6 +434,12 @@ class Game extends React.PureComponent { }); } + set_prompts(prompts) { + this.setState({ + prompts: prompts + }); + } + add_or_update_prompt(prompt) { const prompts_copy = [...this.state.prompts]; const idx = prompts_copy.findIndex(p => p.id === prompt.id); @@ -438,12 +459,65 @@ class Game extends React.PureComponent { }); } + set_players_answered(players_answered) { + this.setState({ + players_answered: players_answered + }); + } + + set_scores(scores) { + this.setState({ + scores: scores + }); + } + render() { const state = this.state; + const players_total = 1 + state.other_players.length; + + if (state.scores) { + return ( +
+

Scores

+ +

Words submitted

+ + +
+ ); + } if (state.active_prompt) { return ; }