summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--rules.js49
1 files 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."