From 1d2a4d99ad0fa80ff86841c9c5a173a81287d65f Mon Sep 17 00:00:00 2001 From: Tor Andersson Date: Mon, 26 Aug 2024 11:28:32 +0200 Subject: Disallow PASS during event execution when actions are possible. --- rules.js | 30 ++++++++++++++++++------------ 1 file changed, 18 insertions(+), 12 deletions(-) (limited to 'rules.js') diff --git a/rules.js b/rules.js index 81ee30d..358c8a0 100644 --- a/rules.js +++ b/rules.js @@ -3293,11 +3293,11 @@ states.remove_british_pc_from = { inactive: "to execute event", prompt() { view.prompt = "Remove British PC markers from " + game.where.map(colony_name).join(", ") + ". " + game.count + " left." - view.actions.pass = 1 for (let colony of game.where) for (let space of COLONIES[colony]) if (has_british_pc(space) && has_no_british_cu(space)) gen_action_space(space) + gen_event_pass() }, space(where) { push_undo() @@ -3322,10 +3322,10 @@ states.remove_american_pc = { inactive: "to execute event", prompt() { view.prompt = "Remove American PC markers. " + game.count + " left." - view.actions.pass = 1 for (let space of all_spaces) if (has_american_pc(space) && has_no_american_unit(space)) gen_action_space(space) + gen_event_pass() }, space(where) { push_undo() @@ -3352,7 +3352,7 @@ states.remove_american_pc_from = { for (let space of COLONIES[colony]) if (has_american_pc(space) && has_no_american_unit(space)) gen_action_space(space) - view.actions.pass = 1 + gen_event_pass() }, space(where) { push_undo() @@ -3387,7 +3387,7 @@ states.remove_american_pc_from_non_port = { } } } - view.actions.pass = 1 + gen_event_pass() }, space(where) { push_undo() @@ -3431,8 +3431,8 @@ states.remove_american_pc_within_two_spaces_of_a_british_general = { inactive: "to execute event", prompt() { view.prompt = "Remove American PC markers within two spaces of a British general. " + game.count + " left." - view.actions.pass = 1 gen_remove_american_pc_within_two_spaces_of_a_british_general() + gen_event_pass() }, space(where) { push_undo() @@ -3460,7 +3460,7 @@ states.place_american_pc = { for (let space of all_spaces) if (has_no_pc(space) && has_no_british_playing_piece(space)) gen_action_space(space) - view.actions.pass = 1 + gen_event_pass() }, space(where) { push_undo() @@ -3483,8 +3483,8 @@ states.place_american_pc_in = { inactive: "to execute event", prompt() { view.prompt = "Place American PC markers in " + game.where.join(", ") + ". " + game.count + " left." - view.actions.pass = 1 gen_place_american_pc_in_colony(game.where) + gen_event_pass() }, space(where) { place_american_pc(where) @@ -3509,8 +3509,8 @@ states.lord_sandwich_coastal_raids = { inactive: "to execute event", prompt() { view.prompt = "Remove two or flip one American PC in a port space." - view.actions.pass = 1 gen_lord_sandwich_coastal_raids(game.where) + gen_event_pass() }, space(s) { if (has_american_pc(s)) { @@ -3549,7 +3549,7 @@ states.remove_american_cu = { for (let space of all_spaces) if (has_american_or_french_cu(space)) gen_action_space(space) - view.actions.pass = 1 + gen_event_pass() }, space(where) { if (count_american_cu(where) > 0) @@ -3575,7 +3575,7 @@ states.remove_british_cu = { for (let space of all_spaces) if (has_british_cu(space)) gen_action_space(space) - view.actions.pass = 1 + gen_event_pass() }, space(where) { remove_british_cu(where, 1) @@ -3598,8 +3598,8 @@ states.pennsylvania_and_new_jersey_line_mutinies = { inactive: "to execute event", prompt() { view.prompt = "Remove two American CUs from the map, one each from two different spaces." - view.actions.pass = 1 gen_pennsylvania_and_new_jersey_line_mutinies(game.where) + gen_event_pass() }, space(where) { if (count_american_cu(where) > 0) @@ -4469,7 +4469,7 @@ states.european_war = { for (let space of all_spaces) if (has_british_cu(space)) gen_action_space(space) - view.actions.pass = 1 + gen_event_pass() }, space(where) { push_undo() @@ -4584,6 +4584,12 @@ function gen_action_card(action, c) { gen_action(action, c) } +function gen_event_pass() { + if (!view.actions.space) + view.actions.pass = 1 + // TODO: else confirm_pass (if enacting events are optional) +} + exports.scenarios = [ "Standard" ] exports.roles = [ P_BRITAIN, P_AMERICA ] -- cgit v1.2.3