summaryrefslogtreecommitdiff
path: root/rules.js
diff options
context:
space:
mode:
authorTor Andersson <tor@ccxvii.net>2021-07-04 12:38:48 +0200
committerTor Andersson <tor@ccxvii.net>2022-11-16 19:19:39 +0100
commitf65b5cf7fb909ade4ed64d652833c7fa78cdb9e6 (patch)
treef2bf52b05cfdcfe520d8a3f35f356178a7c8d84f /rules.js
parent75577e34215efd451c76d5a4bf636fd0b1e46aa5 (diff)
downloadcrusader-rex-f65b5cf7fb909ade4ed64d652833c7fa78cdb9e6.tar.gz
crusader: Draw placement, Muster pathing, VP counting bugs.
Diffstat (limited to 'rules.js')
-rw-r--r--rules.js17
1 files changed, 11 insertions, 6 deletions
diff --git a/rules.js b/rules.js
index 2569b97..bef50b8 100644
--- a/rules.js
+++ b/rules.js
@@ -304,6 +304,8 @@ function is_home_seat(where, who) {
who = BLOCKS[who].name;
break;
}
+ if (who == "Raymond (Tiberias)" || who == "Raymond (Tripoli)")
+ who = "Raymond";
if (SHIELDS[where].includes(who))
return true;
return false;
@@ -863,7 +865,8 @@ function can_block_muster_with_3_moves(n0, muster) {
if (n2 == muster)
return true;
if (TOWNS[n2].exits.includes(muster))
- return can_block_use_road_to_muster(n2, muster);
+ if (can_block_use_road_to_muster(n2, muster))
+ return true;
}
}
}
@@ -879,7 +882,8 @@ function can_block_muster_with_2_moves(n0, muster, avoid) {
if (n1 == muster)
return true;
if (TOWNS[n1].exits.includes(muster))
- return can_block_use_road_to_muster(n1, muster);
+ if (can_block_use_road_to_muster(n1, muster))
+ return true;
}
}
return false;
@@ -1309,8 +1313,6 @@ function end_player_turn() {
game.moves = 0;
game.main_road = null;
- count_victory_points();
-
if (game.active == game.p2) {
goto_combat_phase();
} else {
@@ -3143,9 +3145,12 @@ states.draw_phase = {
case 'nomads':
view.prompt = "Draw Phase: Place " + BLOCKS[game.who].name + " at full strength in "
+ list_seats(game.who).join(", ") + " or at strength 1 in any friendly town.";
- for (let town in TOWNS)
+ for (let town in TOWNS) {
+ if (town == ENGLAND || town == FRANCE || town == GERMANIA)
+ continue;
if (is_friendly_field(town)) // TODO: FAQ claims besieger controls town for draw purposes
gen_action(view, 'town', town);
+ }
break;
}
},
@@ -3183,6 +3188,7 @@ function end_draw_phase() {
}
function end_game_turn() {
+ count_victory_points();
if (is_winter()) {
goto_winter_1();
} else {
@@ -3559,7 +3565,6 @@ exports.setup = function (scenario, players) {
exports.action = function (state, current, action, arg) {
game = state;
- // TODO: check action and argument against action list
if (is_active_player(current)) {
let S = states[game.state];
if (action in S) {