summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--events.txt66
-rw-r--r--rules.js380
2 files changed, 324 insertions, 122 deletions
diff --git a/events.txt b/events.txt
index 66ba7a7..90a64b6 100644
--- a/events.txt
+++ b/events.txt
@@ -24,14 +24,14 @@ CARD 4 - A Vindication of the Rights of Woman
CARD 5 - Union Victory
# Playable if *The Civil War* is in effect. Roll :d6. On a roll of 3-6, receive two :badge and move *The Civil War* to the discard pile.
requires_persistent find_card("The Civil War")
- roll_d6_success
+ roll_success 1 D6
receive_badges 2
discard_persistent find_card("The Civil War")
CARD 6 - Fifteenth Amendment
# Playable if *The Civil War* is not in effect. Roll :d6. On a roll of 3-6, add 2 :congressional_marker in Congress and add 8 :purple_or_yellow_cube anywhere, no more than 2 per state.
requires_not_persistent find_card("The Civil War")
- roll_d6_success
+ roll_success 1 D6
add_congress 2
add_cubes_limit 8 PURPLE_OR_YELLOW anywhere() 2
@@ -64,7 +64,7 @@ CARD 11 - Anna Dickinson
CARD 12 - Frederick Douglass
# Roll :d8. Add that number :purple_or_yellow_cube in the Northeast region, no more than 1 per state.
- roll_d8
+ roll 1 D8
add_cubes_limit (game.vm.die) PURPLE_OR_YELLOW region_us_states(NORTHEAST) 1
CARD 13 - Frances Harper
@@ -77,12 +77,12 @@ CARD 14 - The Union Signal
CARD 15 - Sojourner Truth
# Roll :d8. Add that number :purple_or_yellow_cube in the Midwest region, no more than 1 per state.
- roll_d8
+ roll 1 D8
add_cubes_limit (game.vm.die) PURPLE_OR_YELLOW region_us_states(MIDWEST) 1
CARD 16 - Pioneer Women
# Roll :d8. Add that number :purple_or_yellow_cube in the Plains region, no more than 1 per state.
- roll_d8
+ roll 1 D8
add_cubes_limit (game.vm.die) PURPLE_OR_YELLOW region_us_states(PLAINS) 1
CARD 17 - Women to the Polls
@@ -102,7 +102,7 @@ CARD 19 - National American Woman Suffrage Association
CARD 20 - Jeannette Rankin
# Roll :d6. On a roll of 3-6, add 1 :congressional_marker in Congress and 4 :purple_or_yellow_cube in Montana and 2 :purple_or_yellow_cube in each other state in the Plains region.
- roll_d6_success
+ roll_success 1 D6
add_congress 1
add_cubes 4 PURPLE_OR_YELLOW us_states("Montana")
add_cubes_in_each_of 2 PURPLE_OR_YELLOW region_us_states_except(PLAINS, us_states("Montana"))
@@ -124,12 +124,12 @@ CARD 23 - Equality League of Self-Supporting Women
CARD 24 - Emmeline Pankhurst
# Roll :d6 :d6. Add that number :purple_or_yellow_cube anywhere, no more than 2 per state.
- roll_2d6
+ roll 2 D6
add_cubes_limit (game.vm.die) PURPLE_OR_YELLOW anywhere() 1
CARD 25 - “Debate Us, You Cowards!”
# Roll :d6 :d6. Remove that number :red_cube anywhere, no more than 2 per state.
- roll_2d6
+ roll 2 D6
remove_cubes_limit (game.vm.die) RED anywhere() 2
CARD 26 - Carrie Chapman Catt
@@ -139,7 +139,7 @@ CARD 26 - Carrie Chapman Catt
CARD 27 - Alice Paul & Lucy Burns
# Roll :d6 :d6. Remove that number :red_cube anywhere, no more than 2 per state.
- roll_2d6
+ roll 2 D6
remove_cubes_limit (game.vm.die) RED anywhere() 2
CARD 28 - Inez Milholland
@@ -158,7 +158,7 @@ CARD 30 - Zitkala-Ša
CARD 31 - Helen Keller
# Roll :d6 :d6. Add that number :purple_or_yellow_cube anywhere, no more than 2 per state.
- roll_2d6
+ roll 2 D6
add_cubes_limit (game.vm.die) PURPLE_OR_YELLOW anywhere() 2
CARD 32 - Maria de Lopez
@@ -193,7 +193,7 @@ CARD 37 - The Young Woman Citizen
CARD 38 - 1918 Midterm Elections
# Roll :d6. On a roll of 3-6, add 3 :congressional_marker in Congress.
- roll_d6_success
+ roll_success 1 D6
add_congress 3
CARD 39 - Woodrow Wilson
@@ -237,17 +237,17 @@ CARD 46 - Eighteenth Amendment
CARD 47 - Mary McLeod Bethune
# Roll :d8 :d8. Remove that number :red_cube anywhere, no more than 2 per state.
- roll_2d8
+ roll 2 D8
remove_cubes_limit (game.vm.die) RED anywhere() 2
CARD 48 - Make a Home Run for Suffrage
# Roll :d8 :d8. Remove that number :red_cube anywhere, no more than 2 per state.
- roll_2d8
+ roll 2 D8
remove_cubes_limit (game.vm.die) RED anywhere() 2
CARD 49 - Mary Church Terrell
# Roll :d8 :d8. Add that number :purple_or_yellow_cube anywhere, no more than 2 per state.
- roll_2d8
+ roll 2 D8
add_cubes_limit (game.vm.die) PURPLE_OR_YELLOW anywhere() 2
CARD 50 - Tea Parties for Suffrage
@@ -257,7 +257,7 @@ CARD 50 - Tea Parties for Suffrage
CARD 51 - Dr. Mabel Ping-Hua Lee
# Roll :d8 :d8. Add that number :purple_or_yellow_cube anywhere, no more than 2 per state.
- roll_2d8
+ roll 2 D8
add_cubes_limit (game.vm.die) PURPLE_OR_YELLOW anywhere() 2
CARD 52 - Miss Febb Wins the Last Vote
@@ -282,7 +282,7 @@ CARD 54 - The Civil War
CARD 55 - 15th Divides Suffragists
# Playable if *Fifteenth Amendment* is in effect. Remove all :purple_cube in up to 4 states. The Suffragist player loses 2 :badge.
requires_persistent find_card("Fifteenth Amendment")
- remove_all_up_to PURPLE 4
+ remove_all_cubes_up_to PURPLE 4
opponent_loses_badges 2
CARD 56 - Senator Joseph Brown
@@ -292,25 +292,25 @@ CARD 56 - Senator Joseph Brown
CARD 57 - Minor v. Happersett
# Roll :d6. On a roll of 3-6, remove 1 :congressional_marker and add 2 :red_cube in Missouri.
- roll_d6_success
+ roll_success 1 D6
remove_congress 1
add_cubes 2 RED us_states("Missouri")
CARD 58 - Senate Rejects Suffrage Amendment
# Roll :d6. On a roll of 3-6, receive 1 :badge and remove 1 :congressional_marker from Congress.
- roll_d6_success
+ roll_success 1 D6
receive_badges 1
remove_congress 1
CARD 59 - South Dakota Rejects Suffrage
# Roll :d6. On a roll of 3-6, remove 1 :congressional_marker and add 2 :red_cube in South Dakota.
- roll_d6_success
+ roll_success 1 D6
remove_congress 1
add_cubes 2 RED us_states("South Dakota")
CARD 60 - Gerrymandering
# Remove all :yellow_cube in up to 2 states.
- remove_all_up_to YELLOW 2
+ remove_all_cubes_up_to YELLOW 2
CARD 61 - Border States
# Add 1 :red_cube in each of Delaware, Maryland, West Virginia, Kentucky and Missouri.
@@ -331,7 +331,7 @@ CARD 64 - Senator George Vest
CARD 65 - Catharine Beecher
# Roll :d4. Add that number :red_cube anywhere, no more than 1 per state.
- roll_d4
+ roll 1 D4
add_cubes_limit (game.vm.die) RED anywhere() 1
CARD 66 - Progress, Not Politics
@@ -376,8 +376,8 @@ CARD 74 - Backlash to the Movement
CARD 75 - Xenophobia
# Remove all from any 1 :purple_cube state. Remove all :yellow_cube from any 1 state.
- remove_all_up_to PURPLE 1
- remove_all_up_to YELLOW 1
+ remove_all_cubes_up_to PURPLE 1
+ remove_all_cubes_up_to YELLOW 1
CARD 76 - “O Save Us Senators, From Ourselves”
# Add 1 :red_cube in one state of each region.
@@ -385,12 +385,12 @@ CARD 76 - “O Save Us Senators, From Ourselves”
CARD 77 - Emma Goldman
# Roll :d6. Add that number :red_cube anywhere, no more than 1 per state.
- roll_d6
+ roll 1 D6
add_cubes_limit (game.vm.die) RED anywhere() 1
CARD 78 - The Great 1906 San Francisco Earthquake
# Remove all :yellow_cube and :purple_cube from California. The Suffragist player loses 1 :badge.
- remove_all PURPLE_OR_YELLOW us_states("California")
+ remove_all_cubes PURPLE_OR_YELLOW us_states("California")
opponent_loses_badges 1
CARD 79 - A Threat to the Ideal of Womanhood
@@ -427,7 +427,7 @@ CARD 84 - Transcontinental Railroad
CARD 85 - White Supremacy and the Suffrage Movement
# Playable if *Southern Strategy* is in effect. Remove all :yellow_cube in up to 4 states. The Suffragist player loses 2 :badge.
requires_persistent find_card("Southern Strategy")
- remove_all_up_to YELLOW 4
+ remove_all_cubes_up_to YELLOW 4
opponent_loses_badges 2
CARD 86 - Senator John Weeks
@@ -468,29 +468,29 @@ CARD 92 - Big Liquor’s Big Money
CARD 93 - Red Scare
# Remove all :purple_cube in up to 2 states.
- remove_all_up_to PURPLE 2
+ remove_all_cubes_up_to PURPLE 2
CARD 94 - Southern Women’s Rejection League
# Playable if *Southern Strategy* is in effect. Roll :d8. Add that number :red_cube in the South region, no more than 2 per state.
requires_persistent find_card("Southern Strategy")
- roll_d8
+ roll 1 D8
add_cubes_limit (game.vm.die) RED region_us_states(SOUTH) 2
CARD 95 - United Daughters of the Confederacy
# Playable if *Southern Strategy* is in effect. Roll :d8. Add that number :red_cube in the South region, no more than 2 per state.
requires_persistent find_card("Southern Strategy")
- roll_d8
+ roll 1 D8
add_cubes_limit (game.vm.die) RED region_us_states(SOUTH) 2
CARD 96 - Cheers to “No on Suffrage”
# Playable if *Eighteenth Amendment* is not in effect. Roll :d8. Add that number :red_cube anywhere, no more than 2 per state.
requires_persistent find_card("Eighteenth Amendment")
- roll_d8
+ roll 1 D8
add_cubes_limit (game.vm.die) RED anywhere() 2
CARD 97 - The Unnecessary Privilege
# Roll :d6. Add that number :red_cube anywhere, no more than 1 per state.
- roll_d6
+ roll 1 D6
add_cubes_limit (game.vm.die) RED anywhere() 1
CARD 98 - Voter Suppression
@@ -551,10 +551,10 @@ CARD 109 - Bellwether State
# Select one state and remove any :red_cube and add 4 :purple_or_yellow_cube or remove any :purple_or_yellow_cube and add 4 :red_cube.
select_us_state
if (game.active === SUF)
- remove_any RED (game.vm.selected_us_state)
+ remove_all_cubes RED (game.vm.selected_us_state)
add_cubes 4 PURPLE_OR_YELLOW (game.vm.selected_us_state)
else
- remove_any PURPLE_OR_YELLOW (game.vm.selected_us_state)
+ remove_all_cubes PURPLE_OR_YELLOW (game.vm.selected_us_state)
add_cubes 4 RED (game.vm.selected_us_state)
endif
diff --git a/rules.js b/rules.js
index 4a8a4bc..55448bf 100644
--- a/rules.js
+++ b/rules.js
@@ -46,6 +46,10 @@ const REST_OF_TURN = 1
const REST_OF_GAME = 2
const BALLOT_BOX = 3
+const D4 = 4
+const D6 = 6
+const D8 = 8
+
const { CARDS } = require("./cards.js")
const { US_STATES } = require("./data.js")
@@ -68,7 +72,7 @@ function is_states_card(c) {
}
function find_card(name) {
- return CARDS.findIndex((x) => x.name === name)
+ return CARDS.findIndex((x) => x && x.name === name)
}
function draw_card(deck) {
@@ -110,6 +114,10 @@ function is_player_claimed_card(c) {
// #region US_STATES & REGIONS FUNCTIONS
+function anywhere() {
+ return Array.from(Array(us_states_count), (e,i)=>i+1)
+}
+
function find_us_state(name) {
return US_STATES.findIndex((x) => x && x.name === name)
}
@@ -126,6 +134,11 @@ function region_us_states(region) {
return indexes
}
+function region_us_states_except(region, excluded) {
+ const to_remove = new Set(excluded)
+ return region_us_states(region).filter( x => !to_remove.has(x) )
+}
+
// #endregion
// #region PUBLIC FUNCTIONS
@@ -660,7 +673,7 @@ function end_cleanup_phase() {
// #endregion
-// #region EVENTS
+// #region EVENTS GENERIC
function goto_play_event(c) {
// update_presence_and_control()
@@ -811,97 +824,286 @@ function vm_case() {
}
}
-function vm_ops() {
- goto_operations(vm_operand(1), vm_operand_spaces(2))
+// #endregion
+
+// #region EVENTS VfW DSL
+
+function vm_add_campaigner() {
+ game.vm.count = vm_operand(1)
+ game.vm.campaigner = vm_operand(2)
+ game.vm.region = vm_operand(3)
+ goto_vm_add_campaigner()
}
-function vm_operand_spaces(x) {
- let s = vm_operand(x)
- if (typeof s === "number")
- return [ s ]
- return s
+function vm_receive_badges() {
+ game.vm.count = vm_operand(1)
+ goto_vm_receive_badges()
}
-function vm_remove_up_to() {
- game.vm.upto = 1
+function vm_spend_badges() {
+ // TODO assert
game.vm.count = vm_operand(1)
- game.vm.spaces = vm_operand_spaces(2)
- goto_vm_remove()
+ goto_vm_spend_badges()
}
-function vm_remove() {
+function vm_opponent_loses_badges() {
+ // TODO assert
game.vm.count = vm_operand(1)
- game.vm.spaces = vm_operand_spaces(2)
- goto_vm_remove()
+ goto_vm_opponent_loses_badges()
}
-function vm_remove_own() {
- game.vm.spaces = vm_operand_spaces(1)
- game.state = "vm_remove_own"
+function vm_add_cubes() {
+ game.vm.count = vm_operand(1)
+ game.vm.cubes = vm_operand(2)
+ game.vm.us_states = vm_operand(3)
+ goto_vm_add_cubes()
}
-function vm_replace_up_to() {
- game.vm.upto = 1
+function vm_add_cubes_limit() {
game.vm.count = vm_operand(1)
- game.vm.spaces = vm_operand_spaces(2)
- game.state = "vm_replace"
- goto_vm_replace()
+ game.vm.cubes = vm_operand(2)
+ game.vm.us_states = vm_operand(3)
+ game.vm.limit = vm_operand(4)
+ goto_vm_add_cubes()
}
-function vm_replace_different() {
+function vm_add_cubes_in_each_of() {
game.vm.count = vm_operand(1)
- game.vm.spaces = vm_operand_spaces(2).slice() // make a copy for safe mutation
- game.state = "vm_replace_different"
+ game.vm.cubes = vm_operand(2)
+ game.vm.us_states = vm_operand(3)
+ game.vm.in_each_of = true
+ goto_vm_add_cubes()
}
-function vm_replace() {
+function vm_add_cubes_in_one_state_of_each_region() {
game.vm.count = vm_operand(1)
- game.vm.spaces = vm_operand_spaces(2)
- goto_vm_replace()
+ game.vm.cubes = vm_operand(2)
+ game.vm.in_one_state_of_each_region = true
+ goto_vm_add_cubes()
}
-function vm_place_removed_up_to() {
- game.vm.removed = 1
- game.vm.upto = 1
+function vm_add_cubes_per_state_in_any_one_region() {
game.vm.count = vm_operand(1)
- game.vm.spaces = vm_operand_spaces(2)
- goto_vm_place()
+ game.vm.cubes = vm_operand(2)
+ game.vm.per_state_in_any_one_region = true
+ goto_vm_add_cubes()
}
-function vm_place_up_to() {
- game.vm.upto = 1
+function vm_remove_cubes_limit() {
game.vm.count = vm_operand(1)
- game.vm.spaces = vm_operand_spaces(2)
- goto_vm_place()
+ game.vm.cubes = vm_operand(2)
+ game.vm.us_states = vm_operand(3)
+ game.vm.limit = vm_operand(4)
+ goto_vm_remove_cubes()
+}
+
+function vm_remove_all_cubes() {
+ game.vm.cubes = vm_operand(1)
+ game.vm.us_states = vm_operand(2)
+ game.vm.all = true
+ goto_vm_remove_cubes()
}
-function vm_place() {
+function vm_remove_all_cubes_up_to() {
+ game.vm.cubes = vm_operand(1)
+ game.vm.limit = vm_operand(2)
+ game.vm.all = true
+ goto_vm_remove_cubes()
+}
+
+function vm_replace() {
+ game.vm.what = vm_operand(1)
+ game.vm.count = vm_operand(2)
+ game.vm.replacement = vm_operand(3)
+ goto_vm_replace()
+}
+
+function vm_add_congress() {
game.vm.count = vm_operand(1)
- game.vm.spaces = vm_operand_spaces(2)
- goto_vm_place()
+ goto_vm_add_congress()
}
-function vm_may_place_disc() {
- game.vm.upto = 1
- game.vm.count = 1
- game.vm.spaces = vm_operand_spaces(1)
- game.state = "vm_place_disc"
- goto_vm_place_disc()
+function vm_remove_congress() {
+ game.vm.count = vm_operand(1)
+ goto_vm_remove_congress()
}
-function vm_place_disc() {
- game.vm.count = 1
- game.vm.spaces = vm_operand_spaces(1)
- goto_vm_place_disc()
+function vm_roll() {
+ game.vm.count = vm_operand(1)
+ game.vm.d = vm_operand(2)
+ goto_vm_roll_dice()
}
-function vm_move_up_to() {
+function vm_roll_success() {
game.vm.count = vm_operand(1)
- game.vm.a = vm_operand_spaces(2)
- game.vm.b = vm_operand_spaces(3)
- goto_vm_move()
+ game.vm.d = vm_operand(2)
+ game.vm.on_success = true
+ goto_vm_roll_dice()
+}
+
+function vm_move_each_campaigner_free() {
+ game.vm.campaigner = vm_operand(1)
+ goto_vm_move_each_campaigner_free()
+}
+
+function vm_select_strategy_card() {
+ goto_vm_select_strategy_card()
+}
+
+function vm_select_us_state() {
+ goto_vm_select_us_state()
}
+function vm_persistent() {
+ let type = vm_operand(1)
+ // TODO
+ log(`TODO Persistent Card type ${type}`)
+ vm_next()
+}
+
+function vm_requires_persistent() {
+ let card = vm_operand(1)
+ // TODO
+ log(`TODO ASSERT Persistent Card ${card}`)
+ vm_next()
+}
+
+function vm_requires_not_persistent() {
+ let card = vm_operand(1)
+ // TODO
+ log(`TODO ASSERT NOT Persistent Card ${card}`)
+ vm_next()
+}
+
+function vm_discard_persistent() {
+ let card = vm_operand(1)
+ // TODO
+ log(`TODO Discard Persistent Card ${card}`)
+ vm_next()
+}
+
+function vm_campaigning_action() {
+ // TODO
+ // ASSERT
+ log("TODO Campaigning Action")
+ vm_next()
+}
+
+function vm_todo() {
+ // TODO
+ log("TODO")
+ vm_next()
+}
+
+function vm_draw_2_play_1_event() {
+ log("TODO draw_2_play_1_event")
+ vm_next()
+}
+
+function vm_draw_6_place_any_on_top_of_draw() {
+ log("TODO draw_6_place_any_on_top_of_draw")
+ vm_next()
+}
+
+function vm_support_discard_2_random_draw_2() {
+ log("TODO support_discard_2_random_draw_2")
+ vm_next()
+}
+
+
+// XXX Placeholders from RFOP
+
+// function vm_ops() {
+// goto_operations(vm_operand(1), vm_operand_spaces(2))
+// }
+
+// function vm_operand_spaces(x) {
+// let s = vm_operand(x)
+// if (typeof s === "number")
+// return [ s ]
+// return s
+// }
+
+// function vm_remove_up_to() {
+// game.vm.upto = 1
+// game.vm.count = vm_operand(1)
+// game.vm.spaces = vm_operand_spaces(2)
+// goto_vm_remove()
+// }
+
+// function vm_remove() {
+// game.vm.count = vm_operand(1)
+// game.vm.spaces = vm_operand_spaces(2)
+// goto_vm_remove()
+// }
+
+// function vm_remove_own() {
+// game.vm.spaces = vm_operand_spaces(1)
+// game.state = "vm_remove_own"
+// }
+
+// function vm_replace_up_to() {
+// game.vm.upto = 1
+// game.vm.count = vm_operand(1)
+// game.vm.spaces = vm_operand_spaces(2)
+// game.state = "vm_replace"
+// goto_vm_replace()
+// }
+
+// function vm_replace_different() {
+// game.vm.count = vm_operand(1)
+// game.vm.spaces = vm_operand_spaces(2).slice() // make a copy for safe mutation
+// game.state = "vm_replace_different"
+// }
+
+// function vm_replace() {
+// game.vm.count = vm_operand(1)
+// game.vm.spaces = vm_operand_spaces(2)
+// goto_vm_replace()
+// }
+
+// function vm_place_removed_up_to() {
+// game.vm.removed = 1
+// game.vm.upto = 1
+// game.vm.count = vm_operand(1)
+// game.vm.spaces = vm_operand_spaces(2)
+// goto_vm_place()
+// }
+
+// function vm_place_up_to() {
+// game.vm.upto = 1
+// game.vm.count = vm_operand(1)
+// game.vm.spaces = vm_operand_spaces(2)
+// goto_vm_place()
+// }
+
+// function vm_place() {
+// game.vm.count = vm_operand(1)
+// game.vm.spaces = vm_operand_spaces(2)
+// goto_vm_place()
+// }
+
+// function vm_may_place_disc() {
+// game.vm.upto = 1
+// game.vm.count = 1
+// game.vm.spaces = vm_operand_spaces(1)
+// game.state = "vm_place_disc"
+// goto_vm_place_disc()
+// }
+
+// function vm_place_disc() {
+// game.vm.count = 1
+// game.vm.spaces = vm_operand_spaces(1)
+// goto_vm_place_disc()
+// }
+
+// function vm_move_up_to() {
+// game.vm.count = vm_operand(1)
+// game.vm.a = vm_operand_spaces(2)
+// game.vm.b = vm_operand_spaces(3)
+// goto_vm_move()
+// }
+
// #endregion
// #region EVENT STATES
@@ -1395,7 +1597,7 @@ CODE[4] = [ // A Vindication of the Rights of Woman
CODE[5] = [ // Union Victory
[ vm_requires_persistent, find_card("The Civil War") ],
- [ vm_roll_d6_success ],
+ [ vm_roll_success, 1, D6 ],
[ vm_receive_badges, 2 ],
[ vm_discard_persistent, find_card("The Civil War") ],
[ vm_return ],
@@ -1403,7 +1605,7 @@ CODE[5] = [ // Union Victory
CODE[6] = [ // Fifteenth Amendment
[ vm_requires_not_persistent, find_card("The Civil War") ],
- [ vm_roll_d6_success ],
+ [ vm_roll_success, 1, D6 ],
[ vm_add_congress, 2 ],
[ vm_add_cubes_limit, 8, PURPLE_OR_YELLOW, anywhere(), 2 ],
[ vm_return ],
@@ -1441,7 +1643,7 @@ CODE[11] = [ // Anna Dickinson
]
CODE[12] = [ // Frederick Douglass
- [ vm_roll_d8 ],
+ [ vm_roll, 1, D8 ],
[ vm_add_cubes_limit, ()=>(game.vm.die), PURPLE_OR_YELLOW, region_us_states(NORTHEAST), 1 ],
[ vm_return ],
]
@@ -1457,13 +1659,13 @@ CODE[14] = [ // The Union Signal
]
CODE[15] = [ // Sojourner Truth
- [ vm_roll_d8 ],
+ [ vm_roll, 1, D8 ],
[ vm_add_cubes_limit, ()=>(game.vm.die), PURPLE_OR_YELLOW, region_us_states(MIDWEST), 1 ],
[ vm_return ],
]
CODE[16] = [ // Pioneer Women
- [ vm_roll_d8 ],
+ [ vm_roll, 1, D8 ],
[ vm_add_cubes_limit, ()=>(game.vm.die), PURPLE_OR_YELLOW, region_us_states(PLAINS), 1 ],
[ vm_return ],
]
@@ -1487,7 +1689,7 @@ CODE[19] = [ // National American Woman Suffrage Association
]
CODE[20] = [ // Jeannette Rankin
- [ vm_roll_d6_success ],
+ [ vm_roll_success, 1, D6 ],
[ vm_add_congress, 1 ],
[ vm_add_cubes, 4, PURPLE_OR_YELLOW, us_states("Montana") ],
[ vm_add_cubes_in_each_of, 2, PURPLE_OR_YELLOW, region_us_states_except(PLAINS, us_states("Montana")) ],
@@ -1513,13 +1715,13 @@ CODE[23] = [ // Equality League of Self-Supporting Women
]
CODE[24] = [ // Emmeline Pankhurst
- [ vm_roll_2d6 ],
+ [ vm_roll, 2, D6 ],
[ vm_add_cubes_limit, ()=>(game.vm.die), PURPLE_OR_YELLOW, anywhere(), 1 ],
[ vm_return ],
]
CODE[25] = [ // “Debate Us, You Cowards!”
- [ vm_roll_2d6 ],
+ [ vm_roll, 2, D6 ],
[ vm_remove_cubes_limit, ()=>(game.vm.die), RED, anywhere(), 2 ],
[ vm_return ],
]
@@ -1531,7 +1733,7 @@ CODE[26] = [ // Carrie Chapman Catt
]
CODE[27] = [ // Alice Paul & Lucy Burns
- [ vm_roll_2d6 ],
+ [ vm_roll, 2, D6 ],
[ vm_remove_cubes_limit, ()=>(game.vm.die), RED, anywhere(), 2 ],
[ vm_return ],
]
@@ -1554,7 +1756,7 @@ CODE[30] = [ // Zitkala-Ša
]
CODE[31] = [ // Helen Keller
- [ vm_roll_2d6 ],
+ [ vm_roll, 2, D6 ],
[ vm_add_cubes_limit, ()=>(game.vm.die), PURPLE_OR_YELLOW, anywhere(), 2 ],
[ vm_return ],
]
@@ -1596,7 +1798,7 @@ CODE[37] = [ // The Young Woman Citizen
]
CODE[38] = [ // 1918 Midterm Elections
- [ vm_roll_d6_success ],
+ [ vm_roll_success, 1, D6 ],
[ vm_add_congress, 3 ],
[ vm_return ],
]
@@ -1649,19 +1851,19 @@ CODE[46] = [ // Eighteenth Amendment
]
CODE[47] = [ // Mary McLeod Bethune
- [ vm_roll_2d8 ],
+ [ vm_roll, 2, D8 ],
[ vm_remove_cubes_limit, ()=>(game.vm.die), RED, anywhere(), 2 ],
[ vm_return ],
]
CODE[48] = [ // Make a Home Run for Suffrage
- [ vm_roll_2d8 ],
+ [ vm_roll, 2, D8 ],
[ vm_remove_cubes_limit, ()=>(game.vm.die), RED, anywhere(), 2 ],
[ vm_return ],
]
CODE[49] = [ // Mary Church Terrell
- [ vm_roll_2d8 ],
+ [ vm_roll, 2, D8 ],
[ vm_add_cubes_limit, ()=>(game.vm.die), PURPLE_OR_YELLOW, anywhere(), 2 ],
[ vm_return ],
]
@@ -1673,7 +1875,7 @@ CODE[50] = [ // Tea Parties for Suffrage
]
CODE[51] = [ // Dr. Mabel Ping-Hua Lee
- [ vm_roll_2d8 ],
+ [ vm_roll, 2, D8 ],
[ vm_add_cubes_limit, ()=>(game.vm.die), PURPLE_OR_YELLOW, anywhere(), 2 ],
[ vm_return ],
]
@@ -1700,7 +1902,7 @@ CODE[54] = [ // The Civil War
CODE[55] = [ // 15th Divides Suffragists
[ vm_requires_persistent, find_card("Fifteenth Amendment") ],
- [ vm_remove_all_up_to, PURPLE, 4 ],
+ [ vm_remove_all_cubes_up_to, PURPLE, 4 ],
[ vm_opponent_loses_badges, 2 ],
[ vm_return ],
]
@@ -1712,28 +1914,28 @@ CODE[56] = [ // Senator Joseph Brown
]
CODE[57] = [ // Minor v. Happersett
- [ vm_roll_d6_success ],
+ [ vm_roll_success, 1, D6 ],
[ vm_remove_congress, 1 ],
[ vm_add_cubes, 2, RED, us_states("Missouri") ],
[ vm_return ],
]
CODE[58] = [ // Senate Rejects Suffrage Amendment
- [ vm_roll_d6_success ],
+ [ vm_roll_success, 1, D6 ],
[ vm_receive_badges, 1 ],
[ vm_remove_congress, 1 ],
[ vm_return ],
]
CODE[59] = [ // South Dakota Rejects Suffrage
- [ vm_roll_d6_success ],
+ [ vm_roll_success, 1, D6 ],
[ vm_remove_congress, 1 ],
[ vm_add_cubes, 2, RED, us_states("South Dakota") ],
[ vm_return ],
]
CODE[60] = [ // Gerrymandering
- [ vm_remove_all_up_to, YELLOW, 2 ],
+ [ vm_remove_all_cubes_up_to, YELLOW, 2 ],
[ vm_return ],
]
@@ -1759,7 +1961,7 @@ CODE[64] = [ // Senator George Vest
]
CODE[65] = [ // Catharine Beecher
- [ vm_roll_d4 ],
+ [ vm_roll, 1, D4 ],
[ vm_add_cubes_limit, ()=>(game.vm.die), RED, anywhere(), 1 ],
[ vm_return ],
]
@@ -1814,8 +2016,8 @@ CODE[74] = [ // Backlash to the Movement
]
CODE[75] = [ // Xenophobia
- [ vm_remove_all_up_to, PURPLE, 1 ],
- [ vm_remove_all_up_to, YELLOW, 1 ],
+ [ vm_remove_all_cubes_up_to, PURPLE, 1 ],
+ [ vm_remove_all_cubes_up_to, YELLOW, 1 ],
[ vm_return ],
]
@@ -1825,13 +2027,13 @@ CODE[76] = [ // “O Save Us Senators, From Ourselves”
]
CODE[77] = [ // Emma Goldman
- [ vm_roll_d6 ],
+ [ vm_roll, 1, D6 ],
[ vm_add_cubes_limit, ()=>(game.vm.die), RED, anywhere(), 1 ],
[ vm_return ],
]
CODE[78] = [ // The Great 1906 San Francisco Earthquake
- [ vm_remove_all, PURPLE_OR_YELLOW, us_states("California") ],
+ [ vm_remove_all_cubes, PURPLE_OR_YELLOW, us_states("California") ],
[ vm_opponent_loses_badges, 1 ],
[ vm_return ],
]
@@ -1875,7 +2077,7 @@ CODE[84] = [ // Transcontinental Railroad
CODE[85] = [ // White Supremacy and the Suffrage Movement
[ vm_requires_persistent, find_card("Southern Strategy") ],
- [ vm_remove_all_up_to, YELLOW, 4 ],
+ [ vm_remove_all_cubes_up_to, YELLOW, 4 ],
[ vm_opponent_loses_badges, 2 ],
[ vm_return ],
]
@@ -1924,33 +2126,33 @@ CODE[92] = [ // Big Liquor’s Big Money
]
CODE[93] = [ // Red Scare
- [ vm_remove_all_up_to, PURPLE, 2 ],
+ [ vm_remove_all_cubes_up_to, PURPLE, 2 ],
[ vm_return ],
]
CODE[94] = [ // Southern Women’s Rejection League
[ vm_requires_persistent, find_card("Southern Strategy") ],
- [ vm_roll_d8 ],
+ [ vm_roll, 1, D8 ],
[ vm_add_cubes_limit, ()=>(game.vm.die), RED, region_us_states(SOUTH), 2 ],
[ vm_return ],
]
CODE[95] = [ // United Daughters of the Confederacy
[ vm_requires_persistent, find_card("Southern Strategy") ],
- [ vm_roll_d8 ],
+ [ vm_roll, 1, D8 ],
[ vm_add_cubes_limit, ()=>(game.vm.die), RED, region_us_states(SOUTH), 2 ],
[ vm_return ],
]
CODE[96] = [ // Cheers to “No on Suffrage”
[ vm_requires_persistent, find_card("Eighteenth Amendment") ],
- [ vm_roll_d8 ],
+ [ vm_roll, 1, D8 ],
[ vm_add_cubes_limit, ()=>(game.vm.die), RED, anywhere(), 2 ],
[ vm_return ],
]
CODE[97] = [ // The Unnecessary Privilege
- [ vm_roll_d6 ],
+ [ vm_roll, 1, D6 ],
[ vm_add_cubes_limit, ()=>(game.vm.die), RED, anywhere(), 1 ],
[ vm_return ],
]
@@ -2021,10 +2223,10 @@ CODE[108] = [ // Change In Plans
CODE[109] = [ // Bellwether State
[ vm_select_us_state ],
[ vm_if, ()=>(game.active === SUF) ],
- [ vm_remove_any, RED, ()=>(game.vm.selected_us_state) ],
+ [ vm_remove_all_cubes, RED, ()=>(game.vm.selected_us_state) ],
[ vm_add_cubes, 4, PURPLE_OR_YELLOW, ()=>(game.vm.selected_us_state) ],
[ vm_else ],
- [ vm_remove_any, PURPLE_OR_YELLOW, ()=>(game.vm.selected_us_state) ],
+ [ vm_remove_all_cubes, PURPLE_OR_YELLOW, ()=>(game.vm.selected_us_state) ],
[ vm_add_cubes, 4, RED, ()=>(game.vm.selected_us_state) ],
[ vm_endif ],
[ vm_return ],