summaryrefslogtreecommitdiff
path: root/rules.js
diff options
context:
space:
mode:
authorTor Andersson <tor@ccxvii.net>2022-02-13 00:37:29 +0100
committerTor Andersson <tor@ccxvii.net>2022-11-16 19:19:39 +0100
commitc798b7fa59579eea4c5823925e43b15658a30095 (patch)
treea161617d8a95874e0fc3259d4d483a31eef0a243 /rules.js
parent5e29594090b0d5a0f41cbad2c50ddaefbd8c288a (diff)
downloadcrusader-rex-c798b7fa59579eea4c5823925e43b15658a30095.tar.gz
Add "Iron Bridge" optional rule.
Diffstat (limited to 'rules.js')
-rw-r--r--rules.js21
1 files changed, 17 insertions, 4 deletions
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;
}