diff options
author | Tor Andersson <tor@ccxvii.net> | 2021-07-04 12:38:48 +0200 |
---|---|---|
committer | Tor Andersson <tor@ccxvii.net> | 2022-11-16 19:19:39 +0100 |
commit | f65b5cf7fb909ade4ed64d652833c7fa78cdb9e6 (patch) | |
tree | f2bf52b05cfdcfe520d8a3f35f356178a7c8d84f | |
parent | 75577e34215efd451c76d5a4bf636fd0b1e46aa5 (diff) | |
download | crusader-rex-f65b5cf7fb909ade4ed64d652833c7fa78cdb9e6.tar.gz |
crusader: Draw placement, Muster pathing, VP counting bugs.
-rw-r--r-- | rules.js | 17 |
1 files changed, 11 insertions, 6 deletions
@@ -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) { |