From 684a69dac7dac44c948f5cf86899b749c87068ca Mon Sep 17 00:00:00 2001 From: Tor Andersson Date: Thu, 23 May 2024 23:57:04 +0200 Subject: place rochambeau # Conflicts: # rules.js --- rules.js | 49 ++++++++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 46 insertions(+), 3 deletions(-) diff --git a/rules.js b/rules.js index e470b8c..39f5e6f 100644 --- a/rules.js +++ b/rules.js @@ -3300,12 +3300,55 @@ states.place_french_navy_trigger = { place_navy(zone) { logp("placed French Navy.") game.french_navy = zone - game.active = game.save - delete game.save - 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() { + 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(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 + delete game.save + end_strategy_card() +} + states.place_french_navy = { prompt() { view.prompt = "Place the French Navy in a blockade zone." -- cgit v1.2.3