Implemented Tiles Start Down
Signed-off-by: James Ketrenos <james_eikona@ketrenos.com>
This commit is contained in:
parent
502bccdc68
commit
394b86e38f
BIN
client/public/assets/gfx/tiles-jungle.png
Executable file
BIN
client/public/assets/gfx/tiles-jungle.png
Executable file
Binary file not shown.
After Width: | Height: | Size: 156 KiB |
@ -47,11 +47,13 @@ const Board = () => {
|
|||||||
const [ turn, setTurn ] = useState({});
|
const [ turn, setTurn ] = useState({});
|
||||||
const [ state, setState ] = useState("");
|
const [ state, setState ] = useState("");
|
||||||
const [ color, setColor ] = useState("");
|
const [ color, setColor ] = useState("");
|
||||||
|
const [ rules, setRules ] = useState({});
|
||||||
const [ longestRoadLength, setLongestRoadLength ] = useState(0);
|
const [ longestRoadLength, setLongestRoadLength ] = useState(0);
|
||||||
const fields = useMemo(() => [
|
const fields = useMemo(() => [
|
||||||
'signature', 'robber', 'robberName',
|
'signature', 'robber', 'robberName',
|
||||||
'pips', 'pipOrder', 'borders', 'borderOrder', 'tiles', 'tileOrder',
|
'pips', 'pipOrder', 'borders', 'borderOrder', 'tiles', 'tileOrder',
|
||||||
'placements', 'turn', 'state', 'color', 'longestRoadLength'
|
'placements', 'turn', 'state', 'color', 'longestRoadLength',
|
||||||
|
'rules'
|
||||||
], []);
|
], []);
|
||||||
|
|
||||||
console.log(`board - ws`, ws);
|
console.log(`board - ws`, ws);
|
||||||
@ -68,7 +70,8 @@ const Board = () => {
|
|||||||
setRobber(data.update.robber);
|
setRobber(data.update.robber);
|
||||||
}
|
}
|
||||||
|
|
||||||
if ('robberName' in data.update && data.update.robberName !== robberName) {
|
if ('robberName' in data.update
|
||||||
|
&& data.update.robberName !== robberName) {
|
||||||
setRobberName(data.update.robberName);
|
setRobberName(data.update.robberName);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -76,6 +79,11 @@ const Board = () => {
|
|||||||
setState(data.update.state);
|
setState(data.update.state);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if ('rules' in data.update
|
||||||
|
&& !equal(data.update.rules, rules)) {
|
||||||
|
setRules(data.update.rules);
|
||||||
|
}
|
||||||
|
|
||||||
if ('color' in data.update && data.update.color !== color) {
|
if ('color' in data.update && data.update.color !== color) {
|
||||||
setColor(data.update.color);
|
setColor(data.update.color);
|
||||||
}
|
}
|
||||||
@ -485,8 +493,15 @@ const Board = () => {
|
|||||||
const tile = Object.assign({},
|
const tile = Object.assign({},
|
||||||
tiles[order],
|
tiles[order],
|
||||||
{ index: index++, left: x, top: y});
|
{ index: index++, left: x, top: y});
|
||||||
|
if ('tiles-start-facing-down' in rules
|
||||||
|
&& rules[`tiles-start-facing-down`].enabled
|
||||||
|
&& state !== 'normal'
|
||||||
|
&& state !== 'winner') {
|
||||||
|
tile.type = 'jungle';
|
||||||
|
tile.card = 0;
|
||||||
|
}
|
||||||
let div = <Tile
|
let div = <Tile
|
||||||
key={`${tile.type}-${tile.card}`}
|
key={`tile-${order}`}
|
||||||
tile={tile}
|
tile={tile}
|
||||||
/>;
|
/>;
|
||||||
if (++rowCount === rows[row]) {
|
if (++rowCount === rows[row]) {
|
||||||
@ -550,7 +565,7 @@ const Board = () => {
|
|||||||
}, [
|
}, [
|
||||||
signature, generated,
|
signature, generated,
|
||||||
pips, pipOrder, borders, borderOrder, tiles, tileOrder,
|
pips, pipOrder, borders, borderOrder, tiles, tileOrder,
|
||||||
ws
|
ws, state, rules
|
||||||
]);
|
]);
|
||||||
|
|
||||||
/* Re-render turn info after every render */
|
/* Re-render turn info after every render */
|
||||||
|
@ -9,32 +9,32 @@ import "./HouseRules.css";
|
|||||||
|
|
||||||
import { GlobalContext } from "./GlobalContext.js";
|
import { GlobalContext } from "./GlobalContext.js";
|
||||||
|
|
||||||
const VictoryPoints = ({ ws, houseRules, field }) => {
|
const VictoryPoints = ({ ws, rules, field }) => {
|
||||||
const minVP = 10;
|
const minVP = 10;
|
||||||
const [points, setPoints] = useState(houseRules[field].points || minVP);
|
const [points, setPoints] = useState(rules[field].points || minVP);
|
||||||
console.log(`house-rules - ${field} - `, houseRules[field]);
|
console.log(`house-rules - ${field} - `, rules[field]);
|
||||||
|
|
||||||
if (!(field in houseRules)) {
|
if (!(field in rules)) {
|
||||||
houseRules[field] = {
|
rules[field] = {
|
||||||
points: minVP
|
points: minVP
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
if (houseRules[field].points && houseRules[field].points !== points) {
|
if (rules[field].points && rules[field].points !== points) {
|
||||||
setPoints(houseRules[field].points);
|
setPoints(rules[field].points);
|
||||||
}
|
}
|
||||||
|
|
||||||
const update = (value) => {
|
const update = (value) => {
|
||||||
let points = (houseRules[field].points || minVP) + value;
|
let points = (rules[field].points || minVP) + value;
|
||||||
if (points < minVP) {
|
if (points < minVP) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (points !== houseRules[field].points) {
|
if (points !== rules[field].points) {
|
||||||
setPoints(points);
|
setPoints(points);
|
||||||
houseRules[field].points = points;
|
rules[field].points = points;
|
||||||
ws.send(JSON.stringify({
|
ws.send(JSON.stringify({
|
||||||
type: 'rules',
|
type: 'rules',
|
||||||
houseRules
|
rules: rules
|
||||||
}));
|
}));
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
@ -52,9 +52,8 @@ const NotImplemented = () => {
|
|||||||
|
|
||||||
const HouseRules = ({ houseRulesActive, setHouseRulesActive }) => {
|
const HouseRules = ({ houseRulesActive, setHouseRulesActive }) => {
|
||||||
const { ws } = useContext(GlobalContext);
|
const { ws } = useContext(GlobalContext);
|
||||||
const [houseRules, setHouseRules] = useState(undefined);
|
const [rules, setRules] = useState(undefined);
|
||||||
const [state, setState] = useState(undefined);
|
const [state, setState] = useState(undefined);
|
||||||
const [rules, setRules] = useState([]);
|
|
||||||
const [ruleElements, setRuleElements] = useState([]);
|
const [ruleElements, setRuleElements] = useState([]);
|
||||||
const fields = useMemo(() => [
|
const fields = useMemo(() => [
|
||||||
'state', 'rules'
|
'state', 'rules'
|
||||||
@ -67,10 +66,11 @@ const HouseRules = ({ houseRulesActive, setHouseRulesActive }) => {
|
|||||||
if ('state' in data.update && data.update.state !== state) {
|
if ('state' in data.update && data.update.state !== state) {
|
||||||
setState(data.update.state);
|
setState(data.update.state);
|
||||||
}
|
}
|
||||||
if ('rules' in data.update && !equal(data.update.rules, houseRules)) {
|
if ('rules' in data.update
|
||||||
|
&& !equal(data.update.rules, rules)) {
|
||||||
console.log(`house-rules - setting house rules to `,
|
console.log(`house-rules - setting house rules to `,
|
||||||
data.update.rules);
|
data.update.rules);
|
||||||
setHouseRules(data.update.rules);
|
setRules(data.update.rules);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
@ -104,45 +104,43 @@ const HouseRules = ({ houseRulesActive, setHouseRulesActive }) => {
|
|||||||
}*/
|
}*/
|
||||||
}, [setHouseRulesActive]);//ws, HouseRulesDismissed, setHouseRulesDismissed]);
|
}, [setHouseRulesActive]);//ws, HouseRulesDismissed, setHouseRulesDismissed]);
|
||||||
|
|
||||||
console.log(`house-rules - render - `, { houseRules });
|
console.log(`house-rules - render - `, { rules });
|
||||||
|
|
||||||
const setRule = useCallback((event, key) => {
|
const setRule = useCallback((event, key) => {
|
||||||
const rules = houseRules ? Object.assign({}, houseRules) : {};
|
|
||||||
if (!(key in rules)) {
|
if (!(key in rules)) {
|
||||||
rules[key] = { enabled: false };
|
rules[key] = { enabled: false };
|
||||||
}
|
}
|
||||||
rules[key].enabled = !rules[key].enabled;
|
rules[key].enabled = !rules[key].enabled;
|
||||||
console.log(`house-rules - set ${key} - ${rules[key].enabled}`);
|
console.log(`house-rules - set ${key} - ${rules[key].enabled}`);
|
||||||
setHouseRules(rules);
|
setRules(Object.assign({}, rules));
|
||||||
ws.send(JSON.stringify({
|
ws.send(JSON.stringify({
|
||||||
type: 'rules',
|
type: 'rules',
|
||||||
houseRules: rules
|
rules
|
||||||
}));
|
}));
|
||||||
}, [ws, houseRules]);
|
}, [ws, rules]);
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
const _rules = [ {
|
setRuleElements([ {
|
||||||
title: `More victory points`,
|
title: `More victory points`,
|
||||||
key: `victory-points`,
|
key: `victory-points`,
|
||||||
description: `Customize how many Victory Points are required to win. ` +
|
description: `Customize how many Victory Points are required to win.`,
|
||||||
`The minimum number of Victory Points is 10.`,
|
element: <VictoryPoints {...{ ws, rules,
|
||||||
element: <VictoryPoints {...{ ws, houseRules,
|
|
||||||
field: `victory-points` }}/>,
|
field: `victory-points` }}/>,
|
||||||
implemented: true
|
implemented: true
|
||||||
}, {
|
}, {
|
||||||
title: `Tiles start facing down`,
|
title: `Tiles start facing down`,
|
||||||
key: `tiles-start-facing-down`,
|
key: `tiles-start-facing-down`,
|
||||||
description: `Flip resource tiles upside - down while placing starting settlements.`,
|
description: `Resource tiles start upside-down while placing starting settlements.`,
|
||||||
element: <NotImplemented {...{
|
element: <div>Once all players have placed their initial settlements
|
||||||
ws, houseRules,
|
and roads, the tiles are flipped and you discover what the
|
||||||
field: `tiles-start-facing-down`
|
resources are.</div>,
|
||||||
}} />,
|
implemented: true
|
||||||
}, {
|
}, {
|
||||||
title: `Bribery`,
|
title: `Bribery`,
|
||||||
key: `bribery`,
|
key: `bribery`,
|
||||||
description: `Dissuade enemies from robbing you by offering resources voluntarily.`,
|
description: `Dissuade enemies from robbing you by offering resources voluntarily.`,
|
||||||
element: <NotImplemented {...{
|
element: <NotImplemented {...{
|
||||||
ws, houseRules,
|
ws, rules,
|
||||||
field: `bribery`
|
field: `bribery`
|
||||||
}} />,
|
}} />,
|
||||||
}, {
|
}, {
|
||||||
@ -150,7 +148,7 @@ const HouseRules = ({ houseRulesActive, setHouseRulesActive }) => {
|
|||||||
key: `king-of-the-hill`,
|
key: `king-of-the-hill`,
|
||||||
description: `Keep your lead for one full turn after you reach max victory points.`,
|
description: `Keep your lead for one full turn after you reach max victory points.`,
|
||||||
element: <NotImplemented {...{
|
element: <NotImplemented {...{
|
||||||
ws, houseRules,
|
ws, rules,
|
||||||
field: `king-of-the-hill`
|
field: `king-of-the-hill`
|
||||||
}} />,
|
}} />,
|
||||||
}, {
|
}, {
|
||||||
@ -158,7 +156,7 @@ const HouseRules = ({ houseRulesActive, setHouseRulesActive }) => {
|
|||||||
key: `everyone-gets-one-reroll`,
|
key: `everyone-gets-one-reroll`,
|
||||||
description: `Each player gets one chance re - roll at any point.`,
|
description: `Each player gets one chance re - roll at any point.`,
|
||||||
element: <NotImplemented {...{
|
element: <NotImplemented {...{
|
||||||
ws, houseRules,
|
ws, rules,
|
||||||
field: `everyone-gets-one-reroll`
|
field: `everyone-gets-one-reroll`
|
||||||
}} />,
|
}} />,
|
||||||
}, {
|
}, {
|
||||||
@ -166,7 +164,7 @@ const HouseRules = ({ houseRulesActive, setHouseRulesActive }) => {
|
|||||||
key: `the-bridge`,
|
key: `the-bridge`,
|
||||||
description: `Build a super-bridge across one resource tile.`,
|
description: `Build a super-bridge across one resource tile.`,
|
||||||
element: <NotImplemented {...{
|
element: <NotImplemented {...{
|
||||||
ws, houseRules,
|
ws, rules,
|
||||||
field: `the-bridge`
|
field: `the-bridge`
|
||||||
}} />,
|
}} />,
|
||||||
}, {
|
}, {
|
||||||
@ -174,7 +172,7 @@ const HouseRules = ({ houseRulesActive, setHouseRulesActive }) => {
|
|||||||
key: `discard-desert`,
|
key: `discard-desert`,
|
||||||
description: `Scrap the desert in favour of an additional resource tile.`,
|
description: `Scrap the desert in favour of an additional resource tile.`,
|
||||||
element: <NotImplemented {...{
|
element: <NotImplemented {...{
|
||||||
ws, houseRules,
|
ws, rules,
|
||||||
field: `discard-desert`
|
field: `discard-desert`
|
||||||
}} />,
|
}} />,
|
||||||
}, {
|
}, {
|
||||||
@ -182,7 +180,7 @@ const HouseRules = ({ houseRulesActive, setHouseRulesActive }) => {
|
|||||||
key: `roll-double-roll-again`,
|
key: `roll-double-roll-again`,
|
||||||
description: `Roll again if you roll two of the same number.`,
|
description: `Roll again if you roll two of the same number.`,
|
||||||
element: <NotImplemented {...{
|
element: <NotImplemented {...{
|
||||||
ws, houseRules,
|
ws, rules,
|
||||||
field: `roll-double-roll-again`
|
field: `roll-double-roll-again`
|
||||||
}} />,
|
}} />,
|
||||||
}, {
|
}, {
|
||||||
@ -196,7 +194,7 @@ const HouseRules = ({ houseRulesActive, setHouseRulesActive }) => {
|
|||||||
key: `crime-and-punishment`,
|
key: `crime-and-punishment`,
|
||||||
description: `Change how the robber works to make Catan more or less competitive.`,
|
description: `Change how the robber works to make Catan more or less competitive.`,
|
||||||
element: <NotImplemented {...{
|
element: <NotImplemented {...{
|
||||||
ws, houseRules,
|
ws, rules,
|
||||||
field: `crime-and-punishment`
|
field: `crime-and-punishment`
|
||||||
}} />,
|
}} />,
|
||||||
}, {
|
}, {
|
||||||
@ -204,7 +202,7 @@ const HouseRules = ({ houseRulesActive, setHouseRulesActive }) => {
|
|||||||
key: `credit`,
|
key: `credit`,
|
||||||
description: `Trade with resources you don't have.`,
|
description: `Trade with resources you don't have.`,
|
||||||
element: <NotImplemented {...{
|
element: <NotImplemented {...{
|
||||||
ws, houseRules,
|
ws, rules,
|
||||||
field: `credit`
|
field: `credit`
|
||||||
}} />,
|
}} />,
|
||||||
} ]
|
} ]
|
||||||
@ -220,24 +218,20 @@ const HouseRules = ({ houseRulesActive, setHouseRulesActive }) => {
|
|||||||
return +1;
|
return +1;
|
||||||
}
|
}
|
||||||
return A.title.localeCompare();
|
return A.title.localeCompare();
|
||||||
});
|
})
|
||||||
|
|
||||||
setRules(_rules);
|
|
||||||
|
|
||||||
setRuleElements(_rules
|
|
||||||
.map(item => {
|
.map(item => {
|
||||||
const disabled = (state !== 'lobby' || !item.implemented),
|
const disabled = (state !== 'lobby' || !item.implemented),
|
||||||
defaultChecked = houseRules
|
defaultChecked = rules
|
||||||
&& (item.key in houseRules)
|
&& (item.key in rules)
|
||||||
? houseRules[item.key].enabled
|
? rules[item.key].enabled
|
||||||
: false;
|
: false;
|
||||||
console.log(`house-rules - ${item.key} - `,
|
console.log(`house-rules - ${item.key} - `,
|
||||||
{ houseRules, defaultChecked, disabled });
|
{ rules, defaultChecked, disabled });
|
||||||
return <div className="HouseRule"
|
return <div className="HouseRule"
|
||||||
data-enabled={
|
data-enabled={
|
||||||
houseRules
|
rules
|
||||||
&& item.key in houseRules
|
&& item.key in rules
|
||||||
&& houseRules[item.key].enabled}
|
&& rules[item.key].enabled}
|
||||||
data-disabled={disabled}
|
data-disabled={disabled}
|
||||||
key={item.key}
|
key={item.key}
|
||||||
data-key={item.key}>
|
data-key={item.key}>
|
||||||
@ -254,7 +248,7 @@ const HouseRules = ({ houseRulesActive, setHouseRulesActive }) => {
|
|||||||
{ defaultChecked && item.element }
|
{ defaultChecked && item.element }
|
||||||
</div>
|
</div>
|
||||||
}));
|
}));
|
||||||
}, [houseRules, setRules, setRule ]);
|
}, [rules, setRules, setRuleElements, state, ws ]);
|
||||||
|
|
||||||
if (!houseRulesActive) {
|
if (!houseRulesActive) {
|
||||||
return <></>;
|
return <></>;
|
||||||
|
@ -292,8 +292,8 @@ const distributeResources = (game, roll) => {
|
|||||||
if (!tile.robber) {
|
if (!tile.robber) {
|
||||||
receives[active.color][resource.type] += count;
|
receives[active.color][resource.type] += count;
|
||||||
} else {
|
} else {
|
||||||
if (`robin-hood-robber` in game.houseRules
|
if (`robin-hood-robber` in game.rules
|
||||||
&& game.houseRules[`robin-hood-robber`].enabled
|
&& game.rules[`robin-hood-robber`].enabled
|
||||||
&& game.players[active.color].points <= 2) {
|
&& game.players[active.color].points <= 2) {
|
||||||
addChatMessage(game, null, `Robber does not steal ${count}
|
addChatMessage(game, null, `Robber does not steal ${count}
|
||||||
${resource.type} from ${game.players[active.color].name} ` +
|
${resource.type} from ${game.players[active.color].name} ` +
|
||||||
@ -2568,43 +2568,51 @@ const placeRoad = (game, session, index) => {
|
|||||||
|
|
||||||
const getVictoryPointRule = (game) => {
|
const getVictoryPointRule = (game) => {
|
||||||
const minVP = 10;
|
const minVP = 10;
|
||||||
if (!('victory-points' in game.houseRules)
|
if (!('victory-points' in game.rules)
|
||||||
|| !game.houseRules['victory-points'].enabled) {
|
|| !game.rules['victory-points'].enabled) {
|
||||||
return minVP;
|
return minVP;
|
||||||
}
|
}
|
||||||
return game.houseRules['victory-pionts'].points;
|
return game.rules['victory-pionts'].points;
|
||||||
}
|
}
|
||||||
|
|
||||||
const setHouseRules = (game, session, houseRules) => {
|
const setRules = (game, session, rules) => {
|
||||||
if (game.state !== 'lobby') {
|
if (game.state !== 'lobby') {
|
||||||
return `You can not modify House Rules once the game has started.`;
|
return `You can not modify House Rules once the game has started.`;
|
||||||
}
|
}
|
||||||
|
|
||||||
for (let rule in houseRules) {
|
for (let rule in rules) {
|
||||||
if (equal(game.houseRules[rule], houseRules[rule])) {
|
if (equal(game.rules[rule], rules[rule])) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
switch (rule) {
|
switch (rule) {
|
||||||
case 'victory-points':
|
case 'victory-points':
|
||||||
if (!('points' in houseRules[rule])) {
|
if (!('points' in rules[rule])) {
|
||||||
return `No points specified for victory-points`;
|
return `No points specified for victory-points`;
|
||||||
}
|
}
|
||||||
if (!houseRules[rule].enabled) {
|
if (!rules[rule].enabled) {
|
||||||
addChatMessage(game, null,
|
addChatMessage(game, null,
|
||||||
`${getName(session)} has disabled the Victory Point ` +
|
`${getName(session)} has disabled the Victory Point ` +
|
||||||
`house rule.`);
|
`house rule.`);
|
||||||
} else {
|
} else {
|
||||||
addChatMessage(game, null,
|
addChatMessage(game, null,
|
||||||
`${getName(session)} set the minimum Victory Points to ` +
|
`${getName(session)} set the minimum Victory Points to ` +
|
||||||
`${houseRules[rule].points}`);
|
`${rules[rule].points}`);
|
||||||
}
|
}
|
||||||
game.houseRules[rule] = houseRules[rule];
|
game.rules[rule] = rules[rule];
|
||||||
|
break;
|
||||||
|
case 'tiles-start-facing-down':
|
||||||
|
addChatMessage(game, null,
|
||||||
|
`${getName(session)} has ${rules[rule].enabled ? 'en' : 'dis'}abled the Tiles Start Facing Down house rule.`);
|
||||||
|
if (rules[rule].enabled) {
|
||||||
|
shuffle(game, session);
|
||||||
|
}
|
||||||
|
game.rules[rule] = rules[rule];
|
||||||
break;
|
break;
|
||||||
case 'robin-hood-robber':
|
case 'robin-hood-robber':
|
||||||
addChatMessage(game, null,
|
addChatMessage(game, null,
|
||||||
`${getName(session)} has ${houseRules[rule].enabled ? 'en' : 'dis'}abled the Robin Hood Robber house rule.`);
|
`${getName(session)} has ${rules[rule].enabled ? 'en' : 'dis'}abled the Robin Hood Robber house rule.`);
|
||||||
game.houseRules[rule] = houseRules[rule];
|
game.rules[rule] = rules[rule];
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
return `Rule ${rule} not recognized.`;
|
return `Rule ${rule} not recognized.`;
|
||||||
@ -2612,7 +2620,7 @@ const setHouseRules = (game, session, houseRules) => {
|
|||||||
}
|
}
|
||||||
|
|
||||||
sendUpdateToPlayers(game, {
|
sendUpdateToPlayers(game, {
|
||||||
rules: game.houseRules,
|
rules: game.rules,
|
||||||
chat: game.chat
|
chat: game.chat
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
@ -3725,7 +3733,7 @@ router.ws("/ws/:id", async (ws, req) => {
|
|||||||
update[field] = game[field];
|
update[field] = game[field];
|
||||||
break;
|
break;
|
||||||
case 'rules':
|
case 'rules':
|
||||||
update[field] = game.houseRules ? game.houseRules : {};
|
update[field] = game.rules ? game.rules : {};
|
||||||
break;
|
break;
|
||||||
case 'name':
|
case 'name':
|
||||||
update.name = session.name;
|
update.name = session.name;
|
||||||
@ -3949,8 +3957,8 @@ router.ws("/ws/:id", async (ws, req) => {
|
|||||||
break;
|
break;
|
||||||
case 'rules':
|
case 'rules':
|
||||||
console.log(`${short} - <- rules:${getName(session)} - `,
|
console.log(`${short} - <- rules:${getName(session)} - `,
|
||||||
data.houseRules);
|
data.rules);
|
||||||
warning = setHouseRules(game, session, data.houseRules);
|
warning = setRules(game, session, data.rules);
|
||||||
if (warning) {
|
if (warning) {
|
||||||
sendWarning(session, warning);
|
sendWarning(session, warning);
|
||||||
}
|
}
|
||||||
@ -4303,7 +4311,7 @@ const createGame = (id) => {
|
|||||||
sessions: {},
|
sessions: {},
|
||||||
unselected: [],
|
unselected: [],
|
||||||
active: 0,
|
active: 0,
|
||||||
houseRules: {
|
rules: {
|
||||||
'victory-points': {
|
'victory-points': {
|
||||||
points: 10
|
points: 10
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user