From 332c77e30adea7b73f4e37ea7a953317ba244262 Mon Sep 17 00:00:00 2001 From: Mischa Untaga <99098079+MischaU8@users.noreply.github.com> Date: Mon, 6 Nov 2023 20:08:04 +0100 Subject: vm placeholders --- events.txt | 66 +++++------ rules.js | 380 ++++++++++++++++++++++++++++++++++++++++++++++--------------- 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 ], -- cgit v1.2.3