From 0eaed15c92906fe4faa53f248bebba12f9c737e2 Mon Sep 17 00:00:00 2001 From: Tor Andersson Date: Thu, 4 Jul 2024 00:00:09 +0200 Subject: remove stacked general when placing rochambeau --- rules.js | 40 ++++++++++++++++++++++++---------------- 1 file changed, 24 insertions(+), 16 deletions(-) diff --git a/rules.js b/rules.js index 241b327..28435af 100644 --- a/rules.js +++ b/rules.js @@ -1,7 +1,7 @@ "use strict" // TODO: capture washington -// TODO: remove general after placing rochambeau +// TODO: draw after battle - delay until end of campaign /* washington's capture - winning general with no CU on enemy PC (no undo anyway) @@ -1502,10 +1502,6 @@ function goto_ops_reinforcements(c) { } } -// TODO: british reinforcements: pick general -// TODO: british reinforcements: pick number of CU -// TODO: british reinforcements: pick destination - states.ops_british_reinforcements_who = { prompt() { view.prompt = "Reinforcements: choose an available general." @@ -1640,13 +1636,6 @@ function gen_american_reinforcements_where(general) { /* PLAY OPS CARD TO MOVE A GENERAL */ -// TODO: new procedure: -// 1) pick general -// 2) take CU -// 3) drop CU / take CU / move to space -// 4) confirm move if intercept/battle -// 5) goto battle/intercept/3 - function goto_ops_general(c) { play_card(c, "to activate a general") if (game.active === P_BRITAIN) { @@ -3552,12 +3541,31 @@ states.place_rochambeau = { } } }, - space(space) { - // TODO: remove_general! + space(to) { push_undo() logp("placed Rochambeau .") - move_general(ROCHAMBEAU, space) - move_french_cu(FRENCH_REINFORCEMENTS, space, 5) + move_general(ROCHAMBEAU, to) + move_french_cu(FRENCH_REINFORCEMENTS, to, 5) + if (count_friendly_generals(to) > 1) + game.state = "remove_general_rochambeau" + else + game.state = "end_place_rochambeau" + }, +} + +states.remove_general_rochambeau = { + prompt() { + let where = location_of_general(ROCHAMBEAU) + view.prompt = "Remove a general to the reinforcements box." + view.move = { who: ROCHAMBEAU, from: where, to: where, carry_american: 0, carry_french: 5 } + gen_remove_general(where) + }, + general(g) { + push_undo() + if (game.active === P_BRITAIN) + move_general(g, BRITISH_REINFORCEMENTS) + else + move_general(g, AMERICAN_REINFORCEMENTS) game.state = "end_place_rochambeau" }, } -- cgit v1.2.3