diff --git a/client/src/Actions.js b/client/src/Actions.js index 4e54d5b..19b96ec 100644 --- a/client/src/Actions.js +++ b/client/src/Actions.js @@ -19,9 +19,11 @@ const Actions = ({ const [turn, setTurn] = useState({}); const [edit, setEdit] = useState(name); const [active, setActive] = useState(0); + const [players, setPlayers] = useState({}); + const [alive, setAlive] = useState(0); const fields = useMemo(() => [ - 'state', 'turn', 'private', 'active', 'color' + 'state', 'turn', 'private', 'active', 'color', 'players' ], []); const onWsMessage = (event) => { @@ -47,6 +49,10 @@ const Actions = ({ if ('active' in data.update && data.update.active !== active) { setActive(data.update.active); } + + if ('players' in data.update && !equal(data.update.players, players)) { + setPlayers(data.update.players); + } break; default: break; @@ -82,6 +88,16 @@ const Actions = ({ setBuildActive(!buildActive); }; + useEffect(() => { + let count = 0; + for (let key in players) { + if (players[key].live) { + count++; + } + } + setAlive(count); + }, [players, setAlive]); + const setName = (update) => { if (update !== name) { sendMessage({ type: 'player-name', name: update }); @@ -207,7 +223,7 @@ const Actions = ({ { edit === "" && }
- { name && active === 1 && } + { name && alive === 1 && } { name && inLobby && <>