diff --git a/client/src/HouseRules.js b/client/src/HouseRules.js index 566b60b..a56dfbd 100644 --- a/client/src/HouseRules.js +++ b/client/src/HouseRules.js @@ -12,36 +12,26 @@ import { GlobalContext } from "./GlobalContext.js"; /* Volcano based on https://www.ultraboardgames.com/catan/the-volcano.php */ const Volcano = ({ ws, rules, field, disabled }) => { const init = (Math.random() > 0.5) - ? Math.floor(7 + Math.random() * 6) - : Math.floor(1 + Math.random() * 6); + ? Math.floor(8 + Math.random() * 5) /* Do not include 7 */ + : Math.floor(2 + Math.random() * 5); /* Do not include 7 */ const [number, setNumber] = useState(rules[field].number || init); const [gold, setGold] = useState(rules[field].gold || false); console.log(`house-rules - ${field} - `, rules[field]); if (!(field in rules)) { - rules[field] = { - number: init, - gold: gold - } + rules[field] = {}; }; const update = (value) => { let number = (rules[field].number || init) + value; - if (number < 1 || number > 12) { + if (number < 2 || number > 12) { return; } /* Number to trigger Volcano cannot be 7 */ if (number === 7) { number = value > 0 ? 8 : 6; } - if (number !== rules[field].number) { - setNumber(number); - rules[field].number = number; - ws.send(JSON.stringify({ - type: 'rules', - rules: rules - })); - } + setNumber(number); }; useEffect(() => { @@ -54,6 +44,16 @@ const Volcano = ({ ws, rules, field, disabled }) => { } }, [ rules, ws, gold, field ]); + useEffect(() => { + if (rules[field].number !== number) { + rules[field].number = number; + ws.send(JSON.stringify({ + type: 'rules', + rules: rules + })); + } + }, [rules, ws, number, field]); + return