From d1576a9002e4a72f315c2bfa38ee8145465fbc41 Mon Sep 17 00:00:00 2001 From: Tor Andersson Date: Thu, 23 May 2024 23:51:56 +0200 Subject: place rochambeau --- rules.js | 49 ++++++++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 46 insertions(+), 3 deletions(-) diff --git a/rules.js b/rules.js index 02dc94b..edc2a87 100644 --- a/rules.js +++ b/rules.js @@ -3349,12 +3349,55 @@ states.place_french_navy_trigger = { place_navy: function (zone) { logp("placed French Navy.") game.french_navy = zone - game.active = game.save_active - delete game.save_active - end_strategy_card() + goto_place_rochambeau() + }, +} + +function can_place_rochambeau() { + for (let space in SPACES) + if (is_port(space)) + if (!has_british_cu(space) && !has_british_pc(space)) + return true + return false +} + +function goto_place_rochambeau() { + if (can_place_rochambeau()) { + game.state = "place_rochambeau" + } else { + move_general(ROCHAMBEAU, AMERICAN_REINFORCEMENTS) + move_cu(FRENCH, FRENCH_REINFORCEMENTS, AMERICAN_REINFORCEMENTS, 5) + end_place_rochambeau() + } +} + +states.place_rochambeau = { + prompt: function (current) { + view.prompt = "Place Rochambeau in a port." + let can_place = false + for (let space in SPACES) { + if (is_port(space)) { + if (!has_british_cu(space) && !has_british_pc(space)) { + gen_action("place_reinforcements", space) + can_place = true + } + } + } + }, + place_reinforcements: function (space) { + logp("placed Rochambeau .") + move_general(ROCHAMBEAU, space) + move_cu(FRENCH, FRENCH_REINFORCEMENTS, space, 5) + end_place_rochambeau() }, } +function end_place_rochambeau() { + game.active = game.save_active + delete game.save_active + end_strategy_card() +} + states.place_french_navy = { prompt: function (current) { view.prompt = "Place the French Navy in a blockade zone." -- cgit v1.2.3