1
0

Add Reset Game check against live player count

Signed-off-by: James Ketrenos <james_eikona@ketrenos.com>
This commit is contained in:
James Ketrenos 2022-06-29 09:27:15 -07:00
parent 28c0c52780
commit 98d6a97068

View File

@ -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 = ({
<Paper className="Actions">
{ edit === "" && <PlayerName name={name} setName={setName}/> }
<div className="Buttons">
{ name && active === 1 && <Button onClick={resetGame}>Reset game</Button>}
{ name && alive === 1 && <Button onClick={resetGame}>Reset game</Button>}
{ name && inLobby && <>
<Button disabled={(color && active >= 2) ? false : true }
onClick={startClick}>Start game</Button>