}
reset() {
+
+ /* Before closing out the current round, we accumulate that score
+ * for each player into their runnning total. */
+ for (let score of this.state.scores.scores) {
+ const player = this.players.find(p => p.name === score.player);
+ if (player.score)
+ player.score += score.score;
+ else
+ player.score = score.score;
+
+ /* And broadcast that new score out. */
+ this.broadcast_event('player-update', player.info_json());
+ }
+
+ /* Now that we're done with the active prompt, we remove it from
+ * the list of prompts and also remove any prompts that received
+ * no votes. This keeps the list of prompts clean.
+ */
+ const active_id = this.state.active_prompt.id;
+ this.state.prompts =
+ this.state.prompts.filter(
+ p => p.id !== active_id && p.votes.length > 0
+ );
+
this.state.active_prompt = null;
this.state.players_answered = 0;
this.state.scores = null;
return b.players.length - a.players.length;
});
+ /* Put this round's scores into the game state object so it will
+ * be sent to any new clients that join. */
this.state.scores = {
scores: scores,
words: word_submitters_arr
};
+ /* And broadcast the scores to all connected clients. */
this.broadcast_event_object('scores', this.state.scores);
}
}