summaryrefslogtreecommitdiff
path: root/rules.js
diff options
context:
space:
mode:
authorTor Andersson <tor@ccxvii.net>2024-08-26 11:28:32 +0200
committerTor Andersson <tor@ccxvii.net>2024-08-26 11:47:04 +0200
commit1d2a4d99ad0fa80ff86841c9c5a173a81287d65f (patch)
treef05b47707a8352fd56a645401841c9afce32eee1 /rules.js
parent1a4469fa24d684f407429f9ab1a61510728441c6 (diff)
downloadwashingtons-war-1d2a4d99ad0fa80ff86841c9c5a173a81287d65f.tar.gz
Disallow PASS during event execution when actions are possible.
Diffstat (limited to 'rules.js')
-rw-r--r--rules.js30
1 files changed, 18 insertions, 12 deletions
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 ]