From 64510556d15d0d1c54d0ead84ade0d7fd2152598 Mon Sep 17 00:00:00 2001 From: Mischa Untaga <99098079+MischaU8@users.noreply.github.com> Date: Thu, 30 Nov 2023 15:00:28 +0100 Subject: persistent event logging --- events.txt | 41 +++++++++++++++++------------------------ rules.js | 55 +++++++++++++++++++++++++++---------------------------- 2 files changed, 44 insertions(+), 52 deletions(-) diff --git a/events.txt b/events.txt index b1a13b7..709f97d 100644 --- a/events.txt +++ b/events.txt @@ -9,7 +9,7 @@ CARD 1 - Seneca Falls Convention CARD 2 - Property Rights for Women # For the remainder of the turn, roll :d6 instead of :d4 when taking a Campaigning action. - persistent REST_OF_TURN + persistent REST_OF_TURN "For the remainder of the turn, roll D6 instead of B4 when taking a Campaigning action." CARD 3 - Frances Willard # Add 1 :congressional_marker in Congress and receive 2 :button. @@ -36,7 +36,7 @@ CARD 6 - Fifteenth Amendment if (game.vm.roll >= 3) add_congress 2 add_cubes_limit 8 PURPLE_OR_YELLOW anywhere() 2 - persistent REST_OF_GAME + persistent REST_OF_GAME "" endif CARD 7 - Reconstruction @@ -175,7 +175,7 @@ CARD 32 - Maria de Lopez CARD 33 - Marie Louise Bottineau Baldwin # For the remainder of the turn, roll :d6 instead of :d4 when taking a Campaigning action. - persistent REST_OF_TURN + persistent REST_OF_TURN "For the remainder of the turn, roll D6 instead of B4 when taking a Campaigning action." CARD 34 - The West’s Awakening # Add 2 :purple_or_yellow_cube in each state in the West region. @@ -186,7 +186,7 @@ CARD 35 - Southern Strategy receive_buttons 2 add_cubes_in_each_of 2 PURPLE_OR_YELLOW region_us_states(SOUTH) select_strategy_card - persistent REST_OF_GAME + persistent REST_OF_GAME "" CARD 36 - Women’s Trade Union League # Add 1 :yellow_campaigner in the Atlantic & Appalachia region. Add 1 :congressional_marker in Congress and receive 2 :button. @@ -216,15 +216,15 @@ CARD 40 - Maud Wood Park CARD 41 - Voter Registration # The Suffragist player rolls :d8 instead of :d6 during Final Voting. - persistent BALLOT_BOX + persistent BALLOT_BOX "The Suffragist player rolls W8 instead of D6 during Final Voting." CARD 42 - Processions for Suffrage # For the remainder of the turn, roll :d8 instead of :d6 when taking a Lobbying action. For each 6, 7 or 8 rolled, add 1 :congressional_marker in Congress. - persistent REST_OF_TURN + persistent REST_OF_TURN "For the remainder of the turn, roll W8 instead of D6 when taking a Lobbying action. For each 6, 7 or 8 rolled, add 1 CM in Congress." CARD 43 - Prison Tour Special # For the remainder of the turn, roll :d6 instead of :d4 when taking a Campaigning action. - persistent REST_OF_TURN + persistent REST_OF_TURN "For the remainder of the turn, roll D6 instead of B4 when taking a Campaigning action." CARD 44 - Victory Map # Add 1 :purple_or_yellow_cube in each state in the West and Plains regions. Add 1 :purple_or_yellow_cube in each of Texas, Arkansas, Illinois, Michigan, New York and Vermont. @@ -242,7 +242,7 @@ CARD 46 - Eighteenth Amendment if (game.vm.roll >= 3) add_congress 1 receive_buttons 2 - persistent REST_OF_GAME + persistent REST_OF_GAME "" endif CARD 47 - Mary McLeod Bethune @@ -272,7 +272,7 @@ CARD 51 - Dr. Mabel Ping-Hua Lee CARD 52 - Miss Febb Wins the Last Vote # The Suffragist player wins all ties during Final Voting. - persistent BALLOT_BOX + persistent BALLOT_BOX "The Suffragist player wins all ties during Final Voting." # Opposition Cards @@ -285,8 +285,7 @@ CARD 53 - The Patriarchy CARD 54 - The Civil War # Remove 1 :congressional_marker from Congress. For the remainder of the turn, the Suffragist player may not add :purple_or_yellow_cube to any state in the Atlantic & Appalachia and South regions. remove_congress 1 - prompt "For the remainder of the turn, the Suffragist player may not add :purple_or_yellow_cube to any state in the Atlantic & Appalachia and South regions." - persistent REST_OF_TURN + persistent REST_OF_TURN "For the remainder of the turn, the Suffragist player may not add PYC to any state in the Atlantic & Appalachia and South regions." 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 :button. @@ -360,8 +359,7 @@ CARD 67 - Southern “Hospitality” CARD 68 - Beer Brewers # Playable if *Eighteenth Amendment* is not in effect. For the remainder of the turn, roll :d6 instead of :d4 when taking a Campaigning action. requires_not_persistent REST_OF_GAME find_card("Eighteenth Amendment") - prompt "For the remainder of the turn, roll :d6 instead of :d4 when taking a Campaigning action." - persistent REST_OF_TURN + persistent REST_OF_TURN "For the remainder of the turn, roll D6 instead of B4 when taking a Campaigning action." CARD 69 - Southern Resentment # Playable if *Fifteenth Amendment* is in effect. Add 1 :red_cube in each of Texas, Louisiana, Arkansas, Mississippi and Alabama. @@ -410,8 +408,7 @@ CARD 78 - The Great 1906 San Francisco Earthquake CARD 79 - A Threat to the Ideal of Womanhood # For the remainder of the turn, the Suffragist player must spend 1 :button in order to play a card as an event. - prompt "For the remainder of the turn, the Suffragist player must spend 1 :button in order to play a card as an event." - persistent REST_OF_TURN + persistent REST_OF_TURN "For the remainder of the turn, the Suffragist player must spend 1 BM in order to play a card as an event." CARD 80 - “Unwarranted, Unnecessary & Dangerous Interference” # Add 1 :red_cube in one state of each region. @@ -419,8 +416,7 @@ CARD 80 - “Unwarranted, Unnecessary & Dangerous Interference” CARD 81 - Conservative Opposition # For the remainder of the turn, roll :d6 instead of :d4 when taking a Campaigning action. - prompt "For the remainder of the turn, roll :d6 instead of :d4 when taking a Campaigning action." - persistent REST_OF_TURN + persistent REST_OF_TURN "For the remainder of the turn, roll D6 instead of B4 when taking a Campaigning action." CARD 82 - The SSWSC # Playable if *Southern Strategy* is in effect. Receive 2 :button and add 6 :red_cube in the South region, no more than 2 per state. @@ -458,14 +454,12 @@ CARD 87 - Senator “Cotton Ed” Smith CARD 88 - War in Europe # Remove 1 :congressional_marker from Congress. For the remainder of the turn, the Suffragist player must spend 1 :button in order to take a Campaigning action. remove_congress 1 - prompt "For the remainder of the turn, the Suffragist player must spend 1 :button in order to take a Campaigning action." - persistent REST_OF_TURN + persistent REST_OF_TURN "For the remainder of the turn, the Suffragist player must spend 1 BM in order to take a Campaigning action." CARD 89 - 1918 Pandemic # Remove 1 :congressional_marker from Congress. For the remainder of the turn, the Suffragist player must spend 1 :button in order to play a card as an event. remove_congress 1 - prompt "For the remainder of the turn, the Suffragist player must spend 1 :button in order to play a card as an event." - persistent REST_OF_TURN + persistent REST_OF_TURN "For the remainder of the turn, the Suffragist player must spend 1 BM in order to play a card as an event." CARD 90 - The Business of Being a Woman # Draw 2 cards from your Draw Deck. Discard 1 card and play the other card for its event immediately. @@ -478,8 +472,7 @@ CARD 91 - The Eden Sphinx CARD 92 - Big Liquor’s Big Money # Playable if *Eighteenth Amendment* is not in effect. For the remainder of the turn, roll :d6 instead of :d4 when taking a Campaigning action. requires_not_persistent REST_OF_GAME find_card("Eighteenth Amendment") - prompt "For the remainder of the turn, roll :d6 instead of :d4 when taking a Campaigning action." - persistent REST_OF_TURN + persistent REST_OF_TURN "For the remainder of the turn, roll D6 instead of B4 when taking a Campaigning action." CARD 93 - Red Scare # Remove all :purple_cube in up to 2 states. @@ -510,7 +503,7 @@ CARD 97 - The Unnecessary Privilege CARD 98 - Voter Suppression # The Opposition player rolls :d8 instead of :d6 during Final Voting. - persistent BALLOT_BOX + persistent BALLOT_BOX "The Opposition player rolls W8 instead of D6 during Final Voting." CARD 99 - Anti-Suffrage Riots # The Suffragist player must discard 2 cards from their hand at random and then draw 2 cards from the Suffragist Draw Deck. diff --git a/rules.js b/rules.js index 5c5b3ff..93be76e 100644 --- a/rules.js +++ b/rules.js @@ -1875,6 +1875,11 @@ function vm_prompt() { vm_next() } +function vm_log() { + log(vm_operand(1)) + vm_next() +} + function vm_return() { // game.state = "vm_return" end_event() @@ -2123,19 +2128,20 @@ function vm_select_us_state() { } function vm_persistent() { - vm_assert_argcount(1) + vm_assert_argcount(2) let type = vm_operand(1) + let message = vm_operand(2) switch (type) { case REST_OF_TURN: - log("Card in Effect for the Rest of the Turn.") + log(message || "Card in Effect for the Rest of the Turn.") game.persistent_turn.push(game.vm.fp) break case REST_OF_GAME: - log("Card in Effect for the Rest of the Game.") + log(message || "Card in Effect for the Rest of the Game.") game.persistent_game.push(game.vm.fp) break case BALLOT_BOX: - log("Card in Effect for Final Voting.") + log(message || "Card in Effect for Final Voting.") game.persistent_ballot.push(game.vm.fp) break } @@ -3370,7 +3376,7 @@ CODE[1] = [ // Seneca Falls Convention ] CODE[2] = [ // Property Rights for Women - [ vm_persistent, REST_OF_TURN ], + [ vm_persistent, REST_OF_TURN, "For the remainder of the turn, roll D6 instead of B4 when taking a Campaigning action." ], [ vm_return ], ] @@ -3401,7 +3407,7 @@ CODE[6] = [ // Fifteenth Amendment [ vm_if, ()=>(game.vm.roll >= 3) ], [ vm_add_congress, 2 ], [ vm_add_cubes_limit, 8, PURPLE_OR_YELLOW, anywhere(), 2 ], - [ vm_persistent, REST_OF_GAME ], + [ vm_persistent, REST_OF_GAME, "" ], [ vm_endif ], [ vm_return ], ] @@ -3566,7 +3572,7 @@ CODE[32] = [ // Maria de Lopez ] CODE[33] = [ // Marie Louise Bottineau Baldwin - [ vm_persistent, REST_OF_TURN ], + [ vm_persistent, REST_OF_TURN, "For the remainder of the turn, roll D6 instead of B4 when taking a Campaigning action." ], [ vm_return ], ] @@ -3579,7 +3585,7 @@ CODE[35] = [ // Southern Strategy [ vm_receive_buttons, 2 ], [ vm_add_cubes_in_each_of, 2, PURPLE_OR_YELLOW, region_us_states(SOUTH) ], [ vm_select_strategy_card ], - [ vm_persistent, REST_OF_GAME ], + [ vm_persistent, REST_OF_GAME, "" ], [ vm_return ], ] @@ -3615,17 +3621,17 @@ CODE[40] = [ // Maud Wood Park ] CODE[41] = [ // Voter Registration - [ vm_persistent, BALLOT_BOX ], + [ vm_persistent, BALLOT_BOX, "The Suffragist player rolls W8 instead of D6 during Final Voting." ], [ vm_return ], ] CODE[42] = [ // Processions for Suffrage - [ vm_persistent, REST_OF_TURN ], + [ vm_persistent, REST_OF_TURN, "For the remainder of the turn, roll W8 instead of D6 when taking a Lobbying action. For each 6, 7 or 8 rolled, add 1 CM in Congress." ], [ vm_return ], ] CODE[43] = [ // Prison Tour Special - [ vm_persistent, REST_OF_TURN ], + [ vm_persistent, REST_OF_TURN, "For the remainder of the turn, roll D6 instead of B4 when taking a Campaigning action." ], [ vm_return ], ] @@ -3646,7 +3652,7 @@ CODE[46] = [ // Eighteenth Amendment [ vm_if, ()=>(game.vm.roll >= 3) ], [ vm_add_congress, 1 ], [ vm_receive_buttons, 2 ], - [ vm_persistent, REST_OF_GAME ], + [ vm_persistent, REST_OF_GAME, "" ], [ vm_endif ], [ vm_return ], ] @@ -3682,7 +3688,7 @@ CODE[51] = [ // Dr. Mabel Ping-Hua Lee ] CODE[52] = [ // Miss Febb Wins the Last Vote - [ vm_persistent, BALLOT_BOX ], + [ vm_persistent, BALLOT_BOX, "The Suffragist player wins all ties during Final Voting." ], [ vm_return ], ] @@ -3695,8 +3701,7 @@ CODE[53] = [ // The Patriarchy CODE[54] = [ // The Civil War [ vm_remove_congress, 1 ], - [ vm_prompt, "For the remainder of the turn, the Suffragist player may not add :purple_or_yellow_cube to any state in the Atlantic & Appalachia and South regions." ], - [ vm_persistent, REST_OF_TURN ], + [ vm_persistent, REST_OF_TURN, "For the remainder of the turn, the Suffragist player may not add PYC to any state in the Atlantic & Appalachia and South regions." ], [ vm_return ], ] @@ -3784,8 +3789,7 @@ CODE[67] = [ // Southern “Hospitality” CODE[68] = [ // Beer Brewers [ vm_requires_not_persistent, REST_OF_GAME, find_card("Eighteenth Amendment") ], - [ vm_prompt, "For the remainder of the turn, roll :d6 instead of :d4 when taking a Campaigning action." ], - [ vm_persistent, REST_OF_TURN ], + [ vm_persistent, REST_OF_TURN, "For the remainder of the turn, roll D6 instead of B4 when taking a Campaigning action." ], [ vm_return ], ] @@ -3845,8 +3849,7 @@ CODE[78] = [ // The Great 1906 San Francisco Earthquake ] CODE[79] = [ // A Threat to the Ideal of Womanhood - [ vm_prompt, "For the remainder of the turn, the Suffragist player must spend 1 :button in order to play a card as an event." ], - [ vm_persistent, REST_OF_TURN ], + [ vm_persistent, REST_OF_TURN, "For the remainder of the turn, the Suffragist player must spend 1 BM in order to play a card as an event." ], [ vm_return ], ] @@ -3856,8 +3859,7 @@ CODE[80] = [ // “Unwarranted, Unnecessary & Dangerous Interference” ] CODE[81] = [ // Conservative Opposition - [ vm_prompt, "For the remainder of the turn, roll :d6 instead of :d4 when taking a Campaigning action." ], - [ vm_persistent, REST_OF_TURN ], + [ vm_persistent, REST_OF_TURN, "For the remainder of the turn, roll D6 instead of B4 when taking a Campaigning action." ], [ vm_return ], ] @@ -3902,15 +3904,13 @@ CODE[87] = [ // Senator “Cotton Ed” Smith CODE[88] = [ // War in Europe [ vm_remove_congress, 1 ], - [ vm_prompt, "For the remainder of the turn, the Suffragist player must spend 1 :button in order to take a Campaigning action." ], - [ vm_persistent, REST_OF_TURN ], + [ vm_persistent, REST_OF_TURN, "For the remainder of the turn, the Suffragist player must spend 1 BM in order to take a Campaigning action." ], [ vm_return ], ] CODE[89] = [ // 1918 Pandemic [ vm_remove_congress, 1 ], - [ vm_prompt, "For the remainder of the turn, the Suffragist player must spend 1 :button in order to play a card as an event." ], - [ vm_persistent, REST_OF_TURN ], + [ vm_persistent, REST_OF_TURN, "For the remainder of the turn, the Suffragist player must spend 1 BM in order to play a card as an event." ], [ vm_return ], ] @@ -3926,8 +3926,7 @@ CODE[91] = [ // The Eden Sphinx CODE[92] = [ // Big Liquor’s Big Money [ vm_requires_not_persistent, REST_OF_GAME, find_card("Eighteenth Amendment") ], - [ vm_prompt, "For the remainder of the turn, roll :d6 instead of :d4 when taking a Campaigning action." ], - [ vm_persistent, REST_OF_TURN ], + [ vm_persistent, REST_OF_TURN, "For the remainder of the turn, roll D6 instead of B4 when taking a Campaigning action." ], [ vm_return ], ] @@ -3964,7 +3963,7 @@ CODE[97] = [ // The Unnecessary Privilege ] CODE[98] = [ // Voter Suppression - [ vm_persistent, BALLOT_BOX ], + [ vm_persistent, BALLOT_BOX, "The Opposition player rolls W8 instead of D6 during Final Voting." ], [ vm_return ], ] -- cgit v1.2.3