]> git.cworth.org Git - lmno.games/blobdiff - tictactoe/tictactoe.jsx
Rename "opponent" in both the interface and the code
[lmno.games] / tictactoe / tictactoe.jsx
index ca0bce3fd4985bf8636893cbfeae92ea4235508b..dbfc5ef93e9ba41d21f026a14653e179828fbd4a 100644 (file)
@@ -47,7 +47,7 @@ events.addEventListener("player-info", event => {
 events.addEventListener("player-enter", event => {
   const info = JSON.parse(event.data);
 
-  window.game.set_opponent_info(info);
+  window.game.set_other_player_info(info);
 });
 
 events.addEventListener("player-update", event => {
@@ -56,7 +56,7 @@ events.addEventListener("player-update", event => {
   if (info.id === window.game.state.player_info.id)
     window.game.set_player_info(info);
   else
-    window.game.set_opponent_info(info);
+    window.game.set_other_player_info(info);
 });
 
 events.addEventListener("move", event => {
@@ -137,11 +137,11 @@ function PlayerInfo(props) {
       {props.player.team ? ` (${props.player.team})` : ""}
       {props.first_move ? "" : " "}
       {choices}
-      {props.opponents.map(opponent => (
-        <span key={opponent.id}>
+      {props.other_players.map(other => (
+        <span key={other.id}>
           {", "}
-          {opponent.name}
-          {opponent.team ? ` (${opponent.team})` : ""}
+          {other.name}
+          {other.team ? ` (${other.team})` : ""}
         </span>
       ))}
     </div>
@@ -227,7 +227,7 @@ class Game extends React.Component {
     this.state = {
       game_info: {},
       player_info: {},
-      opponent_info: [],
+      other_players: [],
       history: [
         {
           squares: Array(9).fill(null)
@@ -250,16 +250,16 @@ class Game extends React.Component {
     });
   }
 
-  set_opponent_info(info) {
-    const new_opponents = [...this.state.opponent_info];
-    const idx = new_opponents.findIndex(o => o.id === info.id);
+  set_other_player_info(info) {
+    const other_players_copy = [...this.state.other_players];
+    const idx = other_players_copy.findIndex(o => o.id === info.id);
     if (idx >= 0) {
-      new_opponents[idx] = info;
+      other_players_copy[idx] = info;
     } else {
-      new_opponents.push(info);
+      other_players_copy.push(info);
     }
     this.setState({
-      opponent_info: new_opponents
+      other_players: other_players_copy
     });
   }
 
@@ -342,7 +342,17 @@ class Game extends React.Component {
     }
     else if (first_move)
     {
-      status = "Either player can make the first move.";
+      if (state.other_players.length == 0) {
+        status = "You can move or wait for another player to join.";
+      } else {
+        let qualifier;
+        if (state.other_players.length == 1) {
+          qualifier = "Either";
+        } else {
+          qualifier = "Any";
+        }
+        status = `${qualifier} player can make the first move.`;
+      }
       board_active = true;
     }
     else if (my_team === "")
@@ -357,7 +367,12 @@ class Game extends React.Component {
     }
     else
     {
-      status = "Waiting for your opponent to move.";
+      status = "Waiting for another player to ";
+      if (state.other_players.length == 0) {
+        status += "join.";
+      } else {
+        status += "move.";
+      }
       board_active = false;
     }
 
@@ -372,7 +387,7 @@ class Game extends React.Component {
         game={this}
         first_move={first_move}
         player={state.player_info}
-        opponents={state.opponent_info}
+        other_players={state.other_players}
       />,
       <div key="game" className="game">
         <div>{status}</div>