From c798b7fa59579eea4c5823925e43b15658a30095 Mon Sep 17 00:00:00 2001 From: Tor Andersson Date: Sun, 13 Feb 2022 00:37:29 +0100 Subject: Add "Iron Bridge" optional rule. --- rules.js | 21 +++++++++++++++++---- 1 file changed, 17 insertions(+), 4 deletions(-) (limited to 'rules.js') diff --git a/rules.js b/rules.js index 890120d..ae5b47b 100644 --- a/rules.js +++ b/rules.js @@ -659,13 +659,24 @@ function is_pinned(who, from) { function can_block_use_road(from, to) { if (game.active === game.guide) { switch (road_type(from, to)) { - case 'major': return road_limit(from, to) < 8; - case 'minor': return road_limit(from, to) < 4; + case 'iron-bridge': + // https://boardgamegeek.com/thread/744750/20-rules-iron-bridge-question + case 'major': + return road_limit(from, to) < 8; + case 'minor': + return road_limit(from, to) < 4; } } else { switch (road_type(from, to)) { - case 'major': return road_limit(from, to) < 4; - case 'minor': return road_limit(from, to) < 2; + case 'iron-bridge': + if (game.iron_bridge) + return road_limit(from, to) < 3; + else + return road_limit(from, to) < 4; + case 'major': + return road_limit(from, to) < 4; + case 'minor': + return road_limit(from, to) < 2; } } return false; @@ -3752,6 +3763,8 @@ exports.setup = function (seed, scenario, options) { where: null, undo: [], } + if (options && options.iron_bridge) + game.iron_bridge = 1; setup_game(); return game; } -- cgit v1.2.3