From 2970207e6dd15635563425e09fdf37b0815110e3 Mon Sep 17 00:00:00 2001 From: Joël Simoneau Date: Wed, 2 Apr 2025 16:07:33 -0400 Subject: Fuzzy rally --- rules.js | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/rules.js b/rules.js index 89904f6..5c4e1b1 100644 --- a/rules.js +++ b/rules.js @@ -1824,6 +1824,8 @@ states.migrate_space = { } }, skip() { + if (game.summary) + game.summary = null vm_next() } } @@ -1897,8 +1899,8 @@ function goto_rally() { function goto_rally_space() { push_summary() - if (rally_count() === 1) { - let p = find_piece(AVAILABLE, game.current, ELITE) + let p = find_piece(AVAILABLE, game.current, ELITE) + if (rally_count() === 1 && p > -1) { log_summary_place(p) place_piece(p, game.cmd.where) end_rally_space() @@ -1942,9 +1944,14 @@ states.rally = { states.rally_space = { inactive: "Rally", prompt() { - view.prompt = `Rally: Place up to ${format_unit_count(game.current, ELITE, rally_count())}.` - view.where = game.cmd.where - gen_place_piece(game.current, ELITE) + if (find_piece(AVAILABLE, game.current, ELITE) === -1) { + view.prompt = `Rally: No more available ${PIECE_FACTION_TYPE_NAME[game.current][ELITE]}.` + view.actions.next = 1 + } else { + view.prompt = `Rally: Place up to ${format_unit_count(game.current, ELITE, rally_count())}.` + view.where = game.cmd.where + gen_place_piece(game.current, ELITE) + } if (game.cmd.count > 0) view.actions.next = 1 -- cgit v1.2.3