]> git.cworth.org Git - empires-server/blobdiff - empathy.js
Empathy: Delay the updating of total scores until a new round
[empires-server] / empathy.js
index 60e1ecfd825b53de2db2132c0dd9987c15076229..b12c3e75553f596b7cc2108cc9e1c21f0bd97444 100644 (file)
@@ -15,6 +15,20 @@ class Empathy extends Game {
   }
 
   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.
@@ -139,11 +153,14 @@ class Empathy extends Game {
       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);
   }
 }