diff options
author | Joël Simoneau <simoneaujoel@gmail.com> | 2025-04-01 19:45:25 -0400 |
---|---|---|
committer | Joël Simoneau <simoneaujoel@gmail.com> | 2025-04-01 19:45:25 -0400 |
commit | b45568adaf73967a8ac0f4c5cc6983f1cbbdb50a (patch) | |
tree | 465f7b669497ce32c95195ecb9fbc1ab2d82883d | |
parent | 03ebc48b354f2509c2a37dd5ed6a9ed10db6e2e8 (diff) | |
download | vijayanagara-b45568adaf73967a8ac0f4c5cc6983f1cbbdb50a.tar.gz |
Better Amass logging
-rw-r--r-- | play.js | 1 | ||||
-rw-r--r-- | rules.js | 41 |
2 files changed, 34 insertions, 8 deletions
@@ -1263,6 +1263,7 @@ function on_update() { // Other buttons action_button("roll", "Roll") + action_button("end_cavalry", "End Cavalry") action_button("resume", "Resume") action_button("skip", "Skip") @@ -707,8 +707,13 @@ states.main_phase = { states.cavalry = { inactive: "Gain Cavalry tokens", prompt() { - view.prompt = `Gain Cavalry: Take ${game.cav.n} Calvary token${game.cav.n > 1 ? "s" : ""}.` - gen_take_cavalry(game.current) + if (game.cav.n > 0) { + view.prompt = `Gain Cavalry: Take ${game.cav.n} Calvary token${game.cav.n > 1 ? "s" : ""}.` + gen_take_cavalry(game.current) + } else { + view.prompt = "Gain Cavalry: Done." + view.actions.end_cavalry = 1 + } }, token(c) { push_undo() @@ -717,7 +722,8 @@ states.cavalry = { set_cavalry_faction(c, game.current) if (game.cav.n === 0) end_cavalry() - } + }, + end_cavalry: end_cavalry } states.compromising_gifts = { @@ -2581,19 +2587,38 @@ states.amass = { function amass() { let n_available = Math.min(count_faction_pieces(AVAILABLE, MI), 3) - // Add three to mountain pass - log_space(S_MOUNTAIN_PASSES, "Amass") - push_summary() + let s = null for (let i = 0; i < n_available; ++i) { + s = amass_space(s) let p = find_piece(AVAILABLE, MI, TROOPS) log_summary_place(p) - place_piece(p, S_MOUNTAIN_PASSES) + place_piece(p, s) } - pop_summary() + if (game.summary) + pop_summary() amass_trinkle_down(S_MOUNTAIN_PASSES, S_PUNJAB) amass_trinkle_down(S_PUNJAB, S_DELHI) +} + +function amass_space(s) { + let s2 = null + if (count_faction_pieces(S_MOUNTAIN_PASSES, MI) < 4) + s2 = S_MOUNTAIN_PASSES + else if (count_faction_pieces(S_PUNJAB, MI) < 4) + s2 = S_PUNJAB + else + s2 = S_DELHI + if (s === s2) + return s + else { + if (game.summary) + pop_summary() + log_space(s2, "Amass") + push_summary() + return s2 + } } function amass_trinkle_down(s_source, s_dest) { |