]> git.cworth.org Git - empires-html/blobdiff - empires-client.js
Implement support for the "game-state" and "character-reveal" events
[empires-html] / empires-client.js
index 3d528e08ba1e4efbee827b04a3c166c2ec90cd25..617e821dbbc05e670258934fa784062c3441e5c2 100644 (file)
@@ -69,6 +69,36 @@ events.addEventListener("player-leave", function(event) {
   players.removeChild(player);
 });
 
+events.addEventListener("game-state", function(event) {
+  const data = JSON.parse(event.data);
+  const old_state = data.old_state;
+  const new_state = data.new_state;
+
+  const hide_selector = ".show-state-" +old_state+ ",.hide-state-" +new_state;
+  const show_selector = ".hide-state-" +old_state+ ",.show-state-" +new_state;
+
+  /* Hide all elements based on the state transition. */
+  var elts = document.querySelectorAll(hide_selector);
+  for (const elt of elts) {
+    elt.style.display = "none";
+  }
+
+  /* And show all elements based on the same state transition. */
+  elts = document.querySelectorAll(show_selector);
+  for (const elt of elts) {
+    elt.style.display = "block";
+  }
+});
+
+events.addEventListener("character-reveal", function(event) {
+  const data = JSON.parse(event.data);
+  const character_name = data.character;
+
+  const character = document.getElementById("character-reveal");
+
+  character.innerText = character_name;
+});
+
 events.addEventListener("capture", function(event_string) {
   const players = document.getElementById("players");
   const event = JSON.parse(event_string.data);