Add Reset Game check against live player count
Signed-off-by: James Ketrenos <james_eikona@ketrenos.com>
This commit is contained in:
parent
28c0c52780
commit
98d6a97068
@ -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>
|
||||
|
Loading…
x
Reference in New Issue
Block a user