Implemented Roll Doubles, and Twelve === 2 house rules.
Signed-off-by: James Ketrenos <james_eikona@ketrenos.com>
This commit is contained in:
parent
0c19b38c4d
commit
d0fd1dd7cd
@ -120,6 +120,7 @@ const HouseRules = ({ houseRulesActive, setHouseRulesActive }) => {
|
||||
}, [ws, rules]);
|
||||
|
||||
useEffect(() => {
|
||||
/* https://icebreaker.com/games/catan-1/feature/catan-house-rules */
|
||||
setRuleElements([ {
|
||||
title: `More victory points`,
|
||||
key: `victory-points`,
|
||||
@ -179,10 +180,16 @@ const HouseRules = ({ houseRulesActive, setHouseRulesActive }) => {
|
||||
title: `Roll double, roll again`,
|
||||
key: `roll-double-roll-again`,
|
||||
description: `Roll again if you roll two of the same number.`,
|
||||
element: <NotImplemented {...{
|
||||
ws, rules,
|
||||
field: `roll-double-roll-again`
|
||||
}} />,
|
||||
element: < div>If you roll doubles, players get those resources and
|
||||
then you must roll again.</div >,
|
||||
implemented: true,
|
||||
}, {
|
||||
title: `Twelve and Two are synonyms`,
|
||||
key: `twelve-and-two-are-synonyms`,
|
||||
description: `If twelve is rolled, two scores as well. And vice-versa.`,
|
||||
element: < div>If you roll a twelve or two, resources are triggered
|
||||
for both.</div >,
|
||||
implemented: true,
|
||||
}, {
|
||||
title: `Robin Hood robber`,
|
||||
key: `robin-hood-robber`,
|
||||
@ -248,7 +255,7 @@ const HouseRules = ({ houseRulesActive, setHouseRulesActive }) => {
|
||||
{ defaultChecked && item.element }
|
||||
</div>
|
||||
}));
|
||||
}, [rules, setRules, setRuleElements, state, ws ]);
|
||||
}, [rules, setRules, setRuleElements, state, ws, setRule ]);
|
||||
|
||||
if (!houseRulesActive) {
|
||||
return <></>;
|
||||
|
@ -30,7 +30,7 @@ const ViewCard = ({cardActive, setCardActive}) => {
|
||||
}
|
||||
if ('rules' in data.update
|
||||
&& !equal(data.update.rules, rules)) {
|
||||
setRules(rules);
|
||||
setRules(data.update.rules);
|
||||
}
|
||||
break;
|
||||
default:
|
||||
|
@ -363,6 +363,28 @@ const processRoll = (game, session, dice) => {
|
||||
game.turn.roll = dice[0] + dice[1];
|
||||
if (game.turn.roll !== 7) {
|
||||
distributeResources(game, game.turn.roll);
|
||||
|
||||
if ('twelve-and-two-are-synonyms' in game.rules) {
|
||||
if (dice[0] + dice[1] === 12) {
|
||||
addChatMessage(game, session, `House rule 'Twelve and Two are
|
||||
Synonyms' activated. Twelve was rolled, so two is triggered too!`);
|
||||
distributeResources(game, 2);
|
||||
}
|
||||
if (dice[0] + dice[1] === 2) {
|
||||
addChatMessage(game, session, `House rule 'Twelve and Two are
|
||||
Synonyms' activated. Two was rolled, so twelve is triggered too!`);
|
||||
distributeResources(game, 12);
|
||||
}
|
||||
}
|
||||
|
||||
if ('roll-double-roll-again' in game.rules) {
|
||||
if (dice[0] === dice[1]) {
|
||||
addChatMessage(game, session, `House rule `Roll Double, Roll
|
||||
Again` activated.`);
|
||||
game.turn.roll = 0;
|
||||
}
|
||||
}
|
||||
|
||||
for (let id in game.sessions) {
|
||||
if (game.sessions[id].player) {
|
||||
sendUpdateToPlayer(game, game.sessions[id], {
|
||||
@ -370,6 +392,7 @@ const processRoll = (game, session, dice) => {
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
sendUpdateToPlayers(game, {
|
||||
turn: game.turn,
|
||||
players: getFilteredPlayers(game),
|
||||
@ -2602,6 +2625,16 @@ const setRules = (game, session, rules) => {
|
||||
}
|
||||
game.rules[rule] = rules[rule];
|
||||
break;
|
||||
case 'roll-double-roll-again':
|
||||
addChatMessage(game, null,
|
||||
`${getName(session)} has ${rules[rule].enabled ? 'en' : 'dis'}abled the Roll Double, Roll Again house rule.`);
|
||||
game.rules[rule] = rules[rule];
|
||||
break;
|
||||
case 'twelve-and-two-are-synonyms':
|
||||
addChatMessage(game, null,
|
||||
`${getName(session)} has ${rules[rule].enabled ? 'en' : 'dis'}abled the Twelve and Two are Synonyms house 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.`);
|
||||
|
Loading…
x
Reference in New Issue
Block a user