diff options
author | Tor Andersson <tor@ccxvii.net> | 2024-05-05 23:01:42 +0200 |
---|---|---|
committer | Tor Andersson <tor@ccxvii.net> | 2024-05-17 22:56:49 +0200 |
commit | 79b5296c4877eea55cf881a5d17030ed56413cac (patch) | |
tree | 031a9c192bf7ad0f985e725c1f84d369891cbf3f | |
parent | eb96f22240794346d68c64224d3234414af52056 (diff) | |
download | red-flag-over-paris-79b5296c4877eea55cf881a5d17030ed56413cac.tar.gz |
only allow bonus actions that are possible
-rw-r--r-- | rules.js | 29 |
1 files changed, 26 insertions, 3 deletions
@@ -757,6 +757,20 @@ function can_replace_cube_in_any(list) { return false } +function can_de_escalate(list) { + for (let s of list) + if (has_friendly_cube(s)) + return true + return false +} + +function can_spread_influence(list) { + for (let s of list) + if (has_friendly_cube(s)) + return true + return false +} + function can_place_cube(s, removed = 0) { return find_available_cube(removed) >= 0 && count_friendly_cubes(s) < 4 } @@ -1966,8 +1980,17 @@ states.bonus_action = { view.prompt = "Pivotal Space Bonus Action in " + DIMENSION_NAME[game.where] + "." view.where = game.where view.actions.pass = 1 - view.actions.de_escalate = 1 - view.actions.spread_influence = 1 + + if (can_de_escalate(dimension)) + view.actions.de_escalate = 1 + else + view.actions.de_escalate = 0 + + if (can_spread_influence(dimension)) + view.actions.spread_influence = 1 + else + view.actions.spread_influence = 0 + if (can_replace_cube_in_any(dimension)) view.actions.turncoat = 1 else @@ -3197,7 +3220,7 @@ states.vm_move = { if (!game.vm.b.includes(s)) for_each_friendly_cube(s, gen_action_piece) } else { - game.selected_cube = game.who + view.selected_cube = game.who for (let s of game.vm.b) if (count_friendly_cubes(s) < 4) gen_action_space(s) |