diff options
-rw-r--r-- | rules.js | 18 |
1 files changed, 18 insertions, 0 deletions
@@ -1494,6 +1494,16 @@ function movement_allowance(who) { return m; } +function potential_movement_allowance(who) { + let m = piece_movement(who); + for_each_unit_in_force(who, p => { + let pm = piece_movement(p); + if (pm > m) + m = pm; + }); + return m; +} + function moving_piece() { return game.move.moving; } @@ -2673,6 +2683,10 @@ function max_land_movement_cost() { return game.events.foul_weather ? 2 : movement_allowance(moving_piece()); } +function max_potential_land_movement_cost() { + return game.events.foul_weather ? 2 : potential_movement_allowance(moving_piece()); +} + function max_movement_cost(type) { switch (type) { case 'boat-or-land': @@ -2806,6 +2820,8 @@ function can_infiltrate_search(type, used, carry, from, to) { type = 'land'; } } + if (used > max_movement_cost('land')) + type = 'boat'; } // See if we must stop. @@ -2910,6 +2926,8 @@ function apply_move(to) { game.move.type = 'land'; } } + if (game.move.used > max_potential_land_movement_cost('land')) + game.move.type = 'boat'; } if (game.move.type === 'land' || game.move.type === 'boat-or-land') { |