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 [turn, setTurn] = useState({});
|
||||||
const [edit, setEdit] = useState(name);
|
const [edit, setEdit] = useState(name);
|
||||||
const [active, setActive] = useState(0);
|
const [active, setActive] = useState(0);
|
||||||
|
const [players, setPlayers] = useState({});
|
||||||
|
const [alive, setAlive] = useState(0);
|
||||||
|
|
||||||
const fields = useMemo(() => [
|
const fields = useMemo(() => [
|
||||||
'state', 'turn', 'private', 'active', 'color'
|
'state', 'turn', 'private', 'active', 'color', 'players'
|
||||||
], []);
|
], []);
|
||||||
|
|
||||||
const onWsMessage = (event) => {
|
const onWsMessage = (event) => {
|
||||||
@ -47,6 +49,10 @@ const Actions = ({
|
|||||||
if ('active' in data.update && data.update.active !== active) {
|
if ('active' in data.update && data.update.active !== active) {
|
||||||
setActive(data.update.active);
|
setActive(data.update.active);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if ('players' in data.update && !equal(data.update.players, players)) {
|
||||||
|
setPlayers(data.update.players);
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
@ -82,6 +88,16 @@ const Actions = ({
|
|||||||
setBuildActive(!buildActive);
|
setBuildActive(!buildActive);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
useEffect(() => {
|
||||||
|
let count = 0;
|
||||||
|
for (let key in players) {
|
||||||
|
if (players[key].live) {
|
||||||
|
count++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
setAlive(count);
|
||||||
|
}, [players, setAlive]);
|
||||||
|
|
||||||
const setName = (update) => {
|
const setName = (update) => {
|
||||||
if (update !== name) {
|
if (update !== name) {
|
||||||
sendMessage({ type: 'player-name', name: update });
|
sendMessage({ type: 'player-name', name: update });
|
||||||
@ -207,7 +223,7 @@ const Actions = ({
|
|||||||
<Paper className="Actions">
|
<Paper className="Actions">
|
||||||
{ edit === "" && <PlayerName name={name} setName={setName}/> }
|
{ edit === "" && <PlayerName name={name} setName={setName}/> }
|
||||||
<div className="Buttons">
|
<div className="Buttons">
|
||||||
{ name && active === 1 && <Button onClick={resetGame}>Reset game</Button>}
|
{ name && alive === 1 && <Button onClick={resetGame}>Reset game</Button>}
|
||||||
{ name && inLobby && <>
|
{ name && inLobby && <>
|
||||||
<Button disabled={(color && active >= 2) ? false : true }
|
<Button disabled={(color && active >= 2) ? false : true }
|
||||||
onClick={startClick}>Start game</Button>
|
onClick={startClick}>Start game</Button>
|
||||||
|
Loading…
x
Reference in New Issue
Block a user