summaryrefslogtreecommitdiff
path: root/rules.js
diff options
context:
space:
mode:
authorJoël Simoneau <simoneaujoel@gmail.com>2025-04-01 19:45:25 -0400
committerJoël Simoneau <simoneaujoel@gmail.com>2025-04-01 19:45:25 -0400
commitb45568adaf73967a8ac0f4c5cc6983f1cbbdb50a (patch)
tree465f7b669497ce32c95195ecb9fbc1ab2d82883d /rules.js
parent03ebc48b354f2509c2a37dd5ed6a9ed10db6e2e8 (diff)
downloadvijayanagara-b45568adaf73967a8ac0f4c5cc6983f1cbbdb50a.tar.gz
Better Amass logging
Diffstat (limited to 'rules.js')
-rw-r--r--rules.js41
1 files changed, 33 insertions, 8 deletions
diff --git a/rules.js b/rules.js
index b51d206..79fbc50 100644
--- a/rules.js
+++ b/rules.js
@@ -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) {