summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--cards.js2
-rw-r--r--events.txt92
-rw-r--r--play.js2
-rw-r--r--rules.js271
-rw-r--r--tools/gencards.py10
-rw-r--r--tools/gencode.js4
6 files changed, 146 insertions, 235 deletions
diff --git a/cards.js b/cards.js
index 0a05cd4..7160abf 100644
--- a/cards.js
+++ b/cards.js
@@ -1,2 +1,2 @@
-const CARDS = [null, {"id": 1, "type": "support", "title": "Seneca Falls Convention", "era": "Start", "text": "Add 1 :purple_campaigner and 1 :yellow_campaigner in the Northeast region. Receive 2 :badge and add 2 :purple_or_yellow_cube in New York."}, {"id": 2, "type": "support", "title": "Property Rights for Women", "era": "Early", "text": "For the remainder of the turn, roll :d6 instead of :d4 when taking a Campaigning action.", "persistent": "rest_of_turn"}, {"id": 3, "type": "support", "title": "Frances Willard", "era": "Early", "text": "Add 1 :congressional_marker in Congress and receive 2 :badge."}, {"id": 4, "type": "support", "title": "A Vindication of the Rights of Woman", "era": "Early", "text": "Draw 2 cards from your Draw Deck. Discard 1 card and play the other card for its event immediately."}, {"id": 5, "type": "support", "title": "Union Victory", "era": "Early", "text": "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."}, {"id": 6, "type": "support", "title": "Fifteenth Amendment", "era": "Early", "text": "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.", "persistent": "rest_of_game"}, {"id": 7, "type": "support", "title": "Reconstruction", "era": "Early", "text": "Playable if *The Civil War* is not in effect and the *Fifteenth Amendment* is in effect. Add 1 :purple_or_yellow_cube in each of Virginia, North Carolina, South Carolina, Georgia, Florida, Alabama, Mississippi, Tennessee, Arkansas, Louisiana and Texas."}, {"id": 8, "type": "support", "title": "Petition to Congress", "era": "Early", "text": "Add 1 :congressional_marker in Congress and add 1 :purple_or_yellow_cube in one state of each region."}, {"id": 9, "type": "support", "title": "Lucy Stone", "era": "Early", "text": "Receive 1 :badge and add 1 :purple_or_yellow_cube in one state of each region."}, {"id": 10, "type": "support", "title": "Susan B. Anthony Indicted", "era": "Early", "text": "Receive 1 :badge and add 1 :purple_or_yellow_cube in one state of each region."}, {"id": 11, "type": "support", "title": "Anna Dickinson", "era": "Early", "text": "Receive 1 :badge and add 1 :purple_or_yellow_cube in one state of each region."}, {"id": 12, "type": "support", "title": "Frederick Douglass", "era": "Early", "text": "Roll :d8. Add that number :purple_or_yellow_cube in the Northeast region, no more than 1 per state."}, {"id": 13, "type": "support", "title": "Frances Harper", "era": "Early", "text": "Roll :d8. Add that number :purple_or_yellow_cube in the Atlantic & Appalachia region, no more than 1 per state."}, {"id": 14, "type": "support", "title": "The Union Signal", "era": "Early", "text": "Receive 1 :badge and add 1 :purple_or_yellow_cube in one state of each region."}, {"id": 15, "type": "support", "title": "Sojourner Truth", "era": "Early", "text": "Roll :d8. Add that number :purple_or_yellow_cube in the Midwest region, no more than 1 per state."}, {"id": 16, "type": "support", "title": "Pioneer Women", "era": "Early", "text": "Roll :d8. Add that number :purple_or_yellow_cube in the Plains region, no more than 1 per state."}, {"id": 17, "type": "support", "title": "Women to the Polls", "era": "Early", "text": "Add 2 :purple_or_yellow_cube in each of New Jersey, Pennsylvania and Delaware."}, {"id": 18, "type": "support", "title": "National Woman\u2019s Rights Convention", "era": "Early", "text": "Playable if *The Civil War* is not in effect. Add 1 :congressional_marker in Congress and 1 :purple_or_yellow_cube in one state of each region."}, {"id": 19, "type": "support", "title": "National American Woman Suffrage Association", "era": "Middle", "text": "Add 1 :purple_campaigner in the Atlantic & Appalachia region. Receive 3 :badge."}, {"id": 20, "type": "support", "title": "Jeannette Rankin", "era": "Middle", "text": "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."}, {"id": 21, "type": "support", "title": "Ida B. Wells-Barnett", "era": "Middle", "text": "Receive 2 :badge. Add 2 :purple_or_yellow_cube in Illinois and 1 :purple_or_yellow_cube in each other state in the Midwest region."}, {"id": 22, "type": "support", "title": "The Club Movement", "era": "Middle", "text": "Receive 4 :badge."}, {"id": 23, "type": "support", "title": "Equality League of Self-Supporting Women", "era": "Middle", "text": "Receive 2 :badge. Add 1 :purple_or_yellow_cube in one state of each region."}, {"id": 24, "type": "support", "title": "Emmeline Pankhurst", "era": "Middle", "text": "Roll :d6 :d6. Add that number :purple_or_yellow_cube anywhere, no more than 2 per state."}, {"id": 25, "type": "support", "title": "\u201cDebate Us, You Cowards!\u201d", "era": "Middle", "text": "Roll :d6 :d6. Remove that number :red_cube anywhere, no more than 2 per state."}, {"id": 26, "type": "support", "title": "Carrie Chapman Catt", "era": "Middle", "text": "Receive 2 :badge. Add 1 :purple_or_yellow_cube in one state of each region."}, {"id": 27, "type": "support", "title": "Alice Paul & Lucy Burns", "era": "Middle", "text": "Roll :d6 :d6. Remove that number :red_cube anywhere, no more than 2 per state."}, {"id": 28, "type": "support", "title": "Inez Milholland", "era": "Middle", "text": "Add 1 :congressional_marker in Congress. Receive 2 :badge and add 1 :purple_or_yellow_cube in one state of each region."}, {"id": 29, "type": "support", "title": "Farmers for Suffrage", "era": "Middle", "text": "Add 2 :purple_or_yellow_cube in each of Wisconsin, Minnesota, Iowa, North Dakota and South Dakota."}, {"id": 30, "type": "support", "title": "Zitkala-\u0160a", "era": "Middle", "text": "Add 2 :purple_or_yellow_cube in each of North Dakota, South Dakota, Nebraska, Montana and Wyoming."}, {"id": 31, "type": "support", "title": "Helen Keller", "era": "Middle", "text": "Roll :d6 :d6. Add that number :purple_or_yellow_cube anywhere, no more than 2 per state."}, {"id": 32, "type": "support", "title": "Maria de Lopez", "era": "Middle", "text": "Recieve 2 :badge. Add 2 :purple_or_yellow_cube in each of California, Nevada and Arizona."}, {"id": 33, "type": "support", "title": "Marie Louise Bottineau Baldwin", "era": "Middle", "text": "For the remainder of the turn, roll :d6 instead of :d4 when taking a Campaigning action.", "persistent": "rest_of_turn"}, {"id": 34, "type": "support", "title": "The West\u2019s Awakening", "era": "Middle", "text": "Add 2 :purple_or_yellow_cube in each state in the West region."}, {"id": 35, "type": "support", "title": "Southern Strategy", "era": "Middle", "text": "Receive 2 :badge. Add 2 :purple_or_yellow_cube in each state in the South region. Select and place in front of you 1 available Strategy card.", "persistent": "rest_of_game"}, {"id": 36, "type": "support", "title": "Women\u2019s Trade Union League", "era": "Late", "text": "Add 1 :yellow_campaigner in the Atlantic & Appalachia region. Add 1 :congressional_marker in Congress and receive 2 :badge."}, {"id": 37, "type": "support", "title": "The Young Woman Citizen", "era": "Late", "text": "Draw 2 cards from your Draw Deck. Discard 1 card and play the other card for its event immediately."}, {"id": 38, "type": "support", "title": "1918 Midterm Elections", "era": "Late", "text": "Roll :d6. On a roll of 3-6, add 3 :congressional_marker in Congress."}, {"id": 39, "type": "support", "title": "Woodrow Wilson", "era": "Late", "text": "Spend 4 :badge to select and place in front of you 1 available Strategy card."}, {"id": 40, "type": "support", "title": "Maud Wood Park", "era": "Late", "text": "Add 2 :congressional_marker in Congress."}, {"id": 41, "type": "support", "title": "Voter Registration", "era": "Late", "text": "The Suffragist player rolls :d8 instead of :d6 during Final Voting.", "persistent": "ballot_box"}, {"id": 42, "type": "support", "title": "Processions for Suffrage", "era": "Late", "text": "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"}, {"id": 43, "type": "support", "title": "Prison Tour Special", "era": "Late", "text": "For the remainder of the turn, roll :d6 instead of :d4 when taking a Campaigning action.", "persistent": "rest_of_turn"}, {"id": 44, "type": "support", "title": "Victory Map", "era": "Late", "text": "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."}, {"id": 45, "type": "support", "title": "Women and World War I", "era": "Late", "text": "Playable if *War in Europe* is in effect. Add 10 :purple_or_yellow_cube anywhere, no more than 2 per state."}, {"id": 46, "type": "support", "title": "Eighteenth Amendment", "era": "Late", "text": "Roll :d6. On a roll of 3-6, add 1 congressional_marker in Congress and receive 2 :badge.", "persistent": "rest_of_game"}, {"id": 47, "type": "support", "title": "Mary McLeod Bethune", "era": "Late", "text": "Roll :d8 :d8. Remove that number :red_cube anywhere, no more than 2 per state."}, {"id": 48, "type": "support", "title": "Make a Home Run for Suffrage", "era": "Late", "text": "Roll :d8 :d8. Remove that number :red_cube anywhere, no more than 2 per state."}, {"id": 49, "type": "support", "title": "Mary Church Terrell", "era": "Late", "text": "Roll :d8 :d8. Add that number :purple_or_yellow_cube anywhere, no more than 2 per state."}, {"id": 50, "type": "support", "title": "Tea Parties for Suffrage", "era": "Late", "text": "Add 1 :congressional_marker in Congress and receive 4 :badge"}, {"id": 51, "type": "support", "title": "Dr. Mabel Ping-Hua Lee", "era": "Late", "text": "Roll :d8 :d8. Add that number :purple_or_yellow_cube anywhere, no more than 2 per state."}, {"id": 52, "type": "support", "title": "Miss Febb Wins the Last Vote", "era": "Late", "text": "The Suffragist player wins all ties during Final Voting.", "persistent": "ballot_box"}, {"id": 53, "type": "opposition", "title": "The Patriarchy", "era": "Start", "text": "Add 1 :red_campaigner in the South region. Receive 4 :badge. Add 1 :red_cube in each state in the Northeast region, the Atlantic & Appalachia region, the South region and the Midwest region."}, {"id": 54, "type": "opposition", "title": "The Civil War", "era": "Early", "text": "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.", "persistent": "rest_of_turn"}, {"id": 55, "type": "opposition", "title": "15th Divides Suffragists", "era": "Early", "text": "Playable if *Fifteenth Amendment* is in effect. Remove all :purple_cube in up to 4 states. The Suffragist player loses 2 :badge."}, {"id": 56, "type": "opposition", "title": "Senator Joseph Brown", "era": "Early", "text": "Remove 1 :congressional_marker from Congress and add 2 :red_cube in Georgia."}, {"id": 57, "type": "opposition", "title": "Minor v. Happersett", "era": "Early", "text": "Roll :d6. On a roll of 3-6, remove 1 :congressional_marker and add 2 :red_cube in Missouri."}, {"id": 58, "type": "opposition", "title": "Senate Rejects Suffrage Amendment", "era": "Early", "text": "Roll :d6. On a roll of 3-6, receive 1 :badge and remove 1 :congressional_marker from Congress."}, {"id": 59, "type": "opposition", "title": "South Dakota Rejects Suffrage", "era": "Early", "text": "Roll :d6. On a roll of 3-6, remove 1 :congressional_marker and add 2 :red_cube in South Dakota."}, {"id": 60, "type": "opposition", "title": "Gerrymandering", "era": "Early", "text": "Remove all :yellow_cube in up to 2 states."}, {"id": 61, "type": "opposition", "title": "Border States", "era": "Early", "text": "Add 1 :red_cube in each of Delaware, Maryland, West Virginia, Kentucky and Missouri."}, {"id": 62, "type": "opposition", "title": "Horace Greeley", "era": "Early", "text": "Place 2 :red_cube in each of New York and Connecticut."}, {"id": 63, "type": "opposition", "title": "New York Newspapers", "era": "Early", "text": "Place 2 :red_cube in each of New York and New Jersey."}, {"id": 64, "type": "opposition", "title": "Senator George Vest", "era": "Early", "text": "Remove 1 :congressional_marker from Congress and add 2 :red_cube in Missouri."}, {"id": 65, "type": "opposition", "title": "Catharine Beecher", "era": "Early", "text": "Roll :d4. Add that number :red_cube anywhere, no more than 1 per state."}, {"id": 66, "type": "opposition", "title": "Progress, Not Politics", "era": "Early", "text": "Draw 6 cards from your Draw Deck. Place any number of the 6 cards on the top of your Draw Deck and the rest at the bottom of your Draw Deck."}, {"id": 67, "type": "opposition", "title": "Southern \u201cHospitality\u201d", "era": "Early", "text": "Place 1 :red_cube in each of Virginia, North Carolina, South Carolina, Georgia and Tennessee."}, {"id": 68, "type": "opposition", "title": "Beer Brewers", "era": "Early", "text": "Playable if Eighteenth Amendment is not in effect. For the remainder of the turn, roll :d6 instead of :d4 when taking a Campaigning action.", "persistent": "rest_of_turn"}, {"id": 69, "type": "opposition", "title": "Southern Resentment", "era": "Early", "text": "Playable if *Fifteenth Amendment* is in effect. Add 1 :red_cube in each of Texas, Louisiana, Arkansas, Mississippi and Alabama."}, {"id": 70, "type": "opposition", "title": "Old Dixie", "era": "Early", "text": "Add 1 :red_cube in each of Louisiana, Mississippi, Alabama, Georgia and Florida."}, {"id": 71, "type": "opposition", "title": "NAOWS Forms", "era": "Middle", "text": "Add 1 :red_campaigner in the Northeast region. Receive 2 :badge."}, {"id": 72, "type": "opposition", "title": "Woman and the Republic", "era": "Middle", "text": "Draw 2 cards from your Draw Deck. Discard 1 card and play the other card for its event immediately."}, {"id": 73, "type": "opposition", "title": "The Ladies\u2019 Battle", "era": "Middle", "text": "Draw 2 cards from your Draw Deck. Discard 1 card and play the other card for its event immediately."}, {"id": 74, "type": "opposition", "title": "Backlash to the Movement", "era": "Middle", "text": "Remove 6 :purple_or_yellow_cube from anywhere, no more than 2 per state."}, {"id": 75, "type": "opposition", "title": "Xenophobia", "era": "Middle", "text": "Remove all from any 1 :purple_cube state. Remove all :yellow_cube from any 1 state."}, {"id": 76, "type": "opposition", "title": "\u201cO Save Us Senators, From Ourselves\u201d", "era": "Middle", "text": "Add 1 :red_cube in one state of each region."}, {"id": 77, "type": "opposition", "title": "Emma Goldman", "era": "Middle", "text": "Roll :d6. Add that number :red_cube anywhere, no more than 1 per state."}, {"id": 78, "type": "opposition", "title": "The Great 1906 San Francisco Earthquake", "era": "Middle", "text": "Remove all :yellow_cube and :purple_cube from California. The Suffragist player loses 1 :badge."}, {"id": 79, "type": "opposition", "title": "A Threat to the Ideal of Womanhood", "era": "Middle", "text": "For the remainder of the turn, the Suffragist player must spend 1 :badge in order to play a card as an event.", "persistent": "rest_of_turn"}, {"id": 80, "type": "opposition", "title": "\u201cUnwarranted, Unnecessary & Dangerous Interference\u201d", "era": "Middle", "text": "Add 1 :red_cube in one state of each region."}, {"id": 81, "type": "opposition", "title": "Conservative Opposition", "era": "Middle", "text": "For the remainder of the turn, roll :d6 instead of :d4 when taking a Campaigning action.", "persistent": "rest_of_turn"}, {"id": 82, "type": "opposition", "title": "The SSWSC", "era": "Middle", "text": "Playable if *Southern Strategy* is in effect. Receive 2 :badge and add 6 :red_cube in the South region, no more than 2 per state."}, {"id": 83, "type": "opposition", "title": "Western Saloons Push Suffrage Veto", "era": "Middle", "text": "Playable if *Eighteenth Amendment* is not in effect. Place 2 :red_cube in Arizona and 1 :red_cube in each of New Mexico, Nevada and Utah."}, {"id": 84, "type": "opposition", "title": "Transcontinental Railroad", "era": "Middle", "text": "Move each :red_campaigner to any region(s) without paying any :badge and then take a Campaigning action."}, {"id": 85, "type": "opposition", "title": "White Supremacy and the Suffrage Movement", "era": "Middle", "text": "Playable if *Southern Strategy* is in effect. Remove all :yellow_cube in up to 4 states. The Suffragist player loses 2 :badge."}, {"id": 86, "type": "opposition", "title": "Senator John Weeks", "era": "Middle", "text": "Remove 1 :congressional_marker from Congress and add 2 :red_cube in New Hampshire."}, {"id": 87, "type": "opposition", "title": "Senator \u201cCotton Ed\u201d Smith", "era": "Middle", "text": "Remove 1 :congressional_marker from Congress and add 2 :red_cube in South Carolina."}, {"id": 88, "type": "opposition", "title": "War in Europe", "era": "Late", "text": "Remove 1 :congressional_marker from Congress. For the remainder of the turn, the Suffragist player must spend 1 :badge in order to take a Campaigning action.", "persistent": "rest_of_turn"}, {"id": 89, "type": "opposition", "title": "1918 Pandemic", "era": "Late", "text": "Remove 1 :congressional_marker from Congress. For the remainder of the turn, the Suffragist player must spend 1 :badge in order to play a card as an event.", "persistent": "rest_of_turn"}, {"id": 90, "type": "opposition", "title": "The Business of Being a Woman", "era": "Late", "text": "Draw 2 cards from your Draw Deck. Discard 1 card and play the other card for its event immediately."}, {"id": 91, "type": "opposition", "title": "The Eden Sphinx", "era": "Late", "text": "Draw 2 cards from your Draw Deck. Discard 1 card and play the other card for its event immediately."}, {"id": 92, "type": "opposition", "title": "Big Liquor\u2019s Big Money", "era": "Late", "text": "Playable if *Eighteenth Amendment* is not in effect. For the remainder of the turn, roll :d6 instead of :d4 when taking a Campaigning action.", "persistent": "rest_of_turn"}, {"id": 93, "type": "opposition", "title": "Red Scare", "era": "Late", "text": "Remove all :purple_cube in up to 2 states."}, {"id": 94, "type": "opposition", "title": "Southern Women\u2019s Rejection League", "era": "Late", "text": "Playable if *Southern Strategy* is in effect. Roll :d8. Add that number :red_cube in the South region, no more than 2 per state."}, {"id": 95, "type": "opposition", "title": "United Daughters of the Confederacy", "era": "Late", "text": "Playable if *Southern Strategy* is in effect. Roll :d8. Add that number :red_cube in the South region, no more than 2 per state."}, {"id": 96, "type": "opposition", "title": "Cheers to \u201cNo on Suffrage\u201d", "era": "Late", "text": "Playable if *Eighteenth Amendment* is not in effect. Roll :d8. Add that number :red_cube anywhere, no more than 2 per state."}, {"id": 97, "type": "opposition", "title": "The Unnecessary Privilege", "era": "Late", "text": "Roll :d6. Add that number :red_cube anywhere, no more than 1 per state."}, {"id": 98, "type": "opposition", "title": "Voter Suppression", "era": "Late", "text": "The Opposition player rolls :d8 instead of :d6 during Final Voting.", "persistent": "ballot_box"}, {"id": 99, "type": "opposition", "title": "Anti-Suffrage Riots", "era": "Late", "text": "The Suffragist player must discard 2 cards from their hand at random and then draw 2 cards from the Suffragist Draw Deck."}, {"id": 100, "type": "opposition", "title": "American Constitutional League", "era": "Late", "text": "Spend 4 :badge to select, and place in front of you, 1 available Strategy card."}, {"id": 101, "type": "opposition", "title": "The Woman Patriot", "era": "Late", "text": "Receive 3 :badge."}, {"id": 102, "type": "opposition", "title": "Governor Clement\u2019s Veto", "era": "Late", "text": "Replace 1 :green_check in a state with 1 :red_x."}, {"id": 103, "type": "opposition", "title": "Senator Henry Cabot Lodge", "era": "Late", "text": "Remove 1 :congressional_marker from Congress and add 2 :red_cube in Massachusetts"}, {"id": 104, "type": "opposition", "title": "Senator William Borah", "era": "Late", "text": "Remove 1 :congressional_marker from Congress and add 2 :red_cube in Utah"}, {"id": 105, "type": "strategy", "title": "Efficient Organizing", "text": "Receive 5 :badge."}, {"id": 106, "type": "strategy", "title": "Reconsideration", "text": "Replace 1 :red_x with 2 :purple_or_yellow_cube or 1 :green_check with 2 :red_cube."}, {"id": 107, "type": "strategy", "title": "Opposition Research", "text": "Your opponent must lose half (rounded up) of their :badge."}, {"id": 108, "type": "strategy", "title": "Change In Plans", "text": "Look at your opponent\u2019s hand. Your opponent must discard 1 card of your choice that does not have a :yellow_campaigner / :purple_campaigner / :red_campaigner on it. Your opponent then draws 1 replacement card from their Draw Deck."}, {"id": 109, "type": "strategy", "title": "Bellwether State", "text": "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."}, {"id": 110, "type": "strategy", "title": "Superior Lobbying", "text": "Roll 4 :d8. For each 6, 7 or 8 rolled, add 1 :congressional_marker to Congress or remove 1 :congressional_marker from Congress."}, {"id": 111, "type": "strategy", "title": "The Winning Plan", "text": "Draw 6 cards from your Draw Deck. Play 1 card for its event immediately. Place any number of the remaining 5 cards on the top of your Draw Deck and the rest at the bottom of your Draw Deck."}, {"id": 112, "type": "strategy", "title": "Regional Focus", "text": "Add 1 :purple_or_yellow_cube or 1 :red_cube per state in any one region."}, {"id": 113, "type": "strategy", "title": "Eye on the Future", "text": "Playable if it is Turn 5 or Turn 6. Look through your Draw Deck and select 1 card and play for its event immediately. Then reshuffle your Draw Deck."}, {"id": 114, "type": "strategy", "title": "Transportation", "text": "Move all of your :purple_campaigner and :yellow_campaigner OR :red_campaigner to any region(s) without playing any :badge and then take a Campaigning action."}, {"id": 115, "type": "strategy", "title": "Counter Strat", "text": "Remove one card that is \u201cin effect for the remainder of the turn\u201d and place it in the appropriate discard pile."}, {"id": 116, "type": "strategy", "title": "National Focus", "text": "Add 2 :purple_or_yellow_cube or 2 :red_cube in one state of each region."}, {"id": 117, "type": "states", "title": "California", "text": "Draw 2 cards from your Draw Deck. Discard 1 card and play the other card for its event immediately."}, {"id": 118, "type": "states", "title": "Utah", "text": "Add 6 :purple_or_yellow_cube or 6 :red_cube in the West region, no more than 2 per state."}, {"id": 119, "type": "states", "title": "Montana", "text": "Receive 2 :badge."}, {"id": 120, "type": "states", "title": "Kansas", "text": "Add 6 :purple_or_yellow_cube or 6 :red_cube in the Plains region, no more than 2 per state."}, {"id": 121, "type": "states", "title": "Texas", "text": "Add 6 :purple_or_yellow_cube or 6 :red_cube in the South region, no more than 2 per state."}, {"id": 122, "type": "states", "title": "Georgia", "text": "Receive 2 :badge."}, {"id": 123, "type": "states", "title": "Illinois", "text": "Add 6 :purple_or_yellow_cube or 6 :red_cube in the Midwest region, no more than 2 per state."}, {"id": 124, "type": "states", "title": "Ohio", "text": "Draw 2 cards from your Draw Deck. Discard 1 card and play the other card for its event immediately."}, {"id": 125, "type": "states", "title": "Pennsylvania", "text": "Add 6 :purple_or_yellow_cube or 6 :red_cube in the Atlantic & Appalachia region, no more than 2 per state."}, {"id": 126, "type": "states", "title": "Virginia", "text": "Draw 2 cards from your Draw Deck. Discard 1 card and play the other card for its event immediately."}, {"id": 127, "type": "states", "title": "New York", "text": "Add 6 :purple_or_yellow_cube or 6 :red_cube in the Northeast region, no more than 2 per state."}, {"id": 128, "type": "states", "title": "New Jersey", "text": "Receive 2 :badge."}]
+const CARDS = [null, {"id": 1, "type": "support", "name": "Seneca Falls Convention", "era": "Start", "text": "Add 1 :purple_campaigner and 1 :yellow_campaigner in the Northeast region. Receive 2 :badge and add 2 :purple_or_yellow_cube in New York."}, {"id": 2, "type": "support", "name": "Property Rights for Women", "era": "Early", "text": "For the remainder of the turn, roll :d6 instead of :d4 when taking a Campaigning action.", "persistent": "rest_of_turn"}, {"id": 3, "type": "support", "name": "Frances Willard", "era": "Early", "text": "Add 1 :congressional_marker in Congress and receive 2 :badge."}, {"id": 4, "type": "support", "name": "A Vindication of the Rights of Woman", "era": "Early", "text": "Draw 2 cards from your Draw Deck. Discard 1 card and play the other card for its event immediately."}, {"id": 5, "type": "support", "name": "Union Victory", "era": "Early", "text": "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."}, {"id": 6, "type": "support", "name": "Fifteenth Amendment", "era": "Early", "text": "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.", "persistent": "rest_of_game"}, {"id": 7, "type": "support", "name": "Reconstruction", "era": "Early", "text": "Playable if *The Civil War* is not in effect and the *Fifteenth Amendment* is in effect. Add 1 :purple_or_yellow_cube in each of Virginia, North Carolina, South Carolina, Georgia, Florida, Alabama, Mississippi, Tennessee, Arkansas, Louisiana and Texas."}, {"id": 8, "type": "support", "name": "Petition to Congress", "era": "Early", "text": "Add 1 :congressional_marker in Congress and add 1 :purple_or_yellow_cube in one state of each region."}, {"id": 9, "type": "support", "name": "Lucy Stone", "era": "Early", "text": "Receive 1 :badge and add 1 :purple_or_yellow_cube in one state of each region."}, {"id": 10, "type": "support", "name": "Susan B. Anthony Indicted", "era": "Early", "text": "Receive 1 :badge and add 1 :purple_or_yellow_cube in one state of each region."}, {"id": 11, "type": "support", "name": "Anna Dickinson", "era": "Early", "text": "Receive 1 :badge and add 1 :purple_or_yellow_cube in one state of each region."}, {"id": 12, "type": "support", "name": "Frederick Douglass", "era": "Early", "text": "Roll :d8. Add that number :purple_or_yellow_cube in the Northeast region, no more than 1 per state."}, {"id": 13, "type": "support", "name": "Frances Harper", "era": "Early", "text": "Roll :d8. Add that number :purple_or_yellow_cube in the Atlantic & Appalachia region, no more than 1 per state."}, {"id": 14, "type": "support", "name": "The Union Signal", "era": "Early", "text": "Receive 1 :badge and add 1 :purple_or_yellow_cube in one state of each region."}, {"id": 15, "type": "support", "name": "Sojourner Truth", "era": "Early", "text": "Roll :d8. Add that number :purple_or_yellow_cube in the Midwest region, no more than 1 per state."}, {"id": 16, "type": "support", "name": "Pioneer Women", "era": "Early", "text": "Roll :d8. Add that number :purple_or_yellow_cube in the Plains region, no more than 1 per state."}, {"id": 17, "type": "support", "name": "Women to the Polls", "era": "Early", "text": "Add 2 :purple_or_yellow_cube in each of New Jersey, Pennsylvania and Delaware."}, {"id": 18, "type": "support", "name": "National Woman\u2019s Rights Convention", "era": "Early", "text": "Playable if *The Civil War* is not in effect. Add 1 :congressional_marker in Congress and 1 :purple_or_yellow_cube in one state of each region."}, {"id": 19, "type": "support", "name": "National American Woman Suffrage Association", "era": "Middle", "text": "Add 1 :purple_campaigner in the Atlantic & Appalachia region. Receive 3 :badge."}, {"id": 20, "type": "support", "name": "Jeannette Rankin", "era": "Middle", "text": "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."}, {"id": 21, "type": "support", "name": "Ida B. Wells-Barnett", "era": "Middle", "text": "Receive 2 :badge. Add 2 :purple_or_yellow_cube in Illinois and 1 :purple_or_yellow_cube in each other state in the Midwest region."}, {"id": 22, "type": "support", "name": "The Club Movement", "era": "Middle", "text": "Receive 4 :badge."}, {"id": 23, "type": "support", "name": "Equality League of Self-Supporting Women", "era": "Middle", "text": "Receive 2 :badge. Add 1 :purple_or_yellow_cube in one state of each region."}, {"id": 24, "type": "support", "name": "Emmeline Pankhurst", "era": "Middle", "text": "Roll :d6 :d6. Add that number :purple_or_yellow_cube anywhere, no more than 2 per state."}, {"id": 25, "type": "support", "name": "\u201cDebate Us, You Cowards!\u201d", "era": "Middle", "text": "Roll :d6 :d6. Remove that number :red_cube anywhere, no more than 2 per state."}, {"id": 26, "type": "support", "name": "Carrie Chapman Catt", "era": "Middle", "text": "Receive 2 :badge. Add 1 :purple_or_yellow_cube in one state of each region."}, {"id": 27, "type": "support", "name": "Alice Paul & Lucy Burns", "era": "Middle", "text": "Roll :d6 :d6. Remove that number :red_cube anywhere, no more than 2 per state."}, {"id": 28, "type": "support", "name": "Inez Milholland", "era": "Middle", "text": "Add 1 :congressional_marker in Congress. Receive 2 :badge and add 1 :purple_or_yellow_cube in one state of each region."}, {"id": 29, "type": "support", "name": "Farmers for Suffrage", "era": "Middle", "text": "Add 2 :purple_or_yellow_cube in each of Wisconsin, Minnesota, Iowa, North Dakota and South Dakota."}, {"id": 30, "type": "support", "name": "Zitkala-\u0160a", "era": "Middle", "text": "Add 2 :purple_or_yellow_cube in each of North Dakota, South Dakota, Nebraska, Montana and Wyoming."}, {"id": 31, "type": "support", "name": "Helen Keller", "era": "Middle", "text": "Roll :d6 :d6. Add that number :purple_or_yellow_cube anywhere, no more than 2 per state."}, {"id": 32, "type": "support", "name": "Maria de Lopez", "era": "Middle", "text": "Recieve 2 :badge. Add 2 :purple_or_yellow_cube in each of California, Nevada and Arizona."}, {"id": 33, "type": "support", "name": "Marie Louise Bottineau Baldwin", "era": "Middle", "text": "For the remainder of the turn, roll :d6 instead of :d4 when taking a Campaigning action.", "persistent": "rest_of_turn"}, {"id": 34, "type": "support", "name": "The West\u2019s Awakening", "era": "Middle", "text": "Add 2 :purple_or_yellow_cube in each state in the West region."}, {"id": 35, "type": "support", "name": "Southern Strategy", "era": "Middle", "text": "Receive 2 :badge. Add 2 :purple_or_yellow_cube in each state in the South region. Select and place in front of you 1 available Strategy card.", "persistent": "rest_of_game"}, {"id": 36, "type": "support", "name": "Women\u2019s Trade Union League", "era": "Late", "text": "Add 1 :yellow_campaigner in the Atlantic & Appalachia region. Add 1 :congressional_marker in Congress and receive 2 :badge."}, {"id": 37, "type": "support", "name": "The Young Woman Citizen", "era": "Late", "text": "Draw 2 cards from your Draw Deck. Discard 1 card and play the other card for its event immediately."}, {"id": 38, "type": "support", "name": "1918 Midterm Elections", "era": "Late", "text": "Roll :d6. On a roll of 3-6, add 3 :congressional_marker in Congress."}, {"id": 39, "type": "support", "name": "Woodrow Wilson", "era": "Late", "text": "Spend 4 :badge to select and place in front of you 1 available Strategy card."}, {"id": 40, "type": "support", "name": "Maud Wood Park", "era": "Late", "text": "Add 2 :congressional_marker in Congress."}, {"id": 41, "type": "support", "name": "Voter Registration", "era": "Late", "text": "The Suffragist player rolls :d8 instead of :d6 during Final Voting.", "persistent": "ballot_box"}, {"id": 42, "type": "support", "name": "Processions for Suffrage", "era": "Late", "text": "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"}, {"id": 43, "type": "support", "name": "Prison Tour Special", "era": "Late", "text": "For the remainder of the turn, roll :d6 instead of :d4 when taking a Campaigning action.", "persistent": "rest_of_turn"}, {"id": 44, "type": "support", "name": "Victory Map", "era": "Late", "text": "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."}, {"id": 45, "type": "support", "name": "Women and World War I", "era": "Late", "text": "Playable if *War in Europe* is in effect. Add 10 :purple_or_yellow_cube anywhere, no more than 2 per state."}, {"id": 46, "type": "support", "name": "Eighteenth Amendment", "era": "Late", "text": "Roll :d6. On a roll of 3-6, add 1 congressional_marker in Congress and receive 2 :badge.", "persistent": "rest_of_game"}, {"id": 47, "type": "support", "name": "Mary McLeod Bethune", "era": "Late", "text": "Roll :d8 :d8. Remove that number :red_cube anywhere, no more than 2 per state."}, {"id": 48, "type": "support", "name": "Make a Home Run for Suffrage", "era": "Late", "text": "Roll :d8 :d8. Remove that number :red_cube anywhere, no more than 2 per state."}, {"id": 49, "type": "support", "name": "Mary Church Terrell", "era": "Late", "text": "Roll :d8 :d8. Add that number :purple_or_yellow_cube anywhere, no more than 2 per state."}, {"id": 50, "type": "support", "name": "Tea Parties for Suffrage", "era": "Late", "text": "Add 1 :congressional_marker in Congress and receive 4 :badge"}, {"id": 51, "type": "support", "name": "Dr. Mabel Ping-Hua Lee", "era": "Late", "text": "Roll :d8 :d8. Add that number :purple_or_yellow_cube anywhere, no more than 2 per state."}, {"id": 52, "type": "support", "name": "Miss Febb Wins the Last Vote", "era": "Late", "text": "The Suffragist player wins all ties during Final Voting.", "persistent": "ballot_box"}, {"id": 53, "type": "opposition", "name": "The Patriarchy", "era": "Start", "text": "Add 1 :red_campaigner in the South region. Receive 4 :badge. Add 1 :red_cube in each state in the Northeast region, the Atlantic & Appalachia region, the South region and the Midwest region."}, {"id": 54, "type": "opposition", "name": "The Civil War", "era": "Early", "text": "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.", "persistent": "rest_of_turn"}, {"id": 55, "type": "opposition", "name": "15th Divides Suffragists", "era": "Early", "text": "Playable if *Fifteenth Amendment* is in effect. Remove all :purple_cube in up to 4 states. The Suffragist player loses 2 :badge."}, {"id": 56, "type": "opposition", "name": "Senator Joseph Brown", "era": "Early", "text": "Remove 1 :congressional_marker from Congress and add 2 :red_cube in Georgia."}, {"id": 57, "type": "opposition", "name": "Minor v. Happersett", "era": "Early", "text": "Roll :d6. On a roll of 3-6, remove 1 :congressional_marker and add 2 :red_cube in Missouri."}, {"id": 58, "type": "opposition", "name": "Senate Rejects Suffrage Amendment", "era": "Early", "text": "Roll :d6. On a roll of 3-6, receive 1 :badge and remove 1 :congressional_marker from Congress."}, {"id": 59, "type": "opposition", "name": "South Dakota Rejects Suffrage", "era": "Early", "text": "Roll :d6. On a roll of 3-6, remove 1 :congressional_marker and add 2 :red_cube in South Dakota."}, {"id": 60, "type": "opposition", "name": "Gerrymandering", "era": "Early", "text": "Remove all :yellow_cube in up to 2 states."}, {"id": 61, "type": "opposition", "name": "Border States", "era": "Early", "text": "Add 1 :red_cube in each of Delaware, Maryland, West Virginia, Kentucky and Missouri."}, {"id": 62, "type": "opposition", "name": "Horace Greeley", "era": "Early", "text": "Place 2 :red_cube in each of New York and Connecticut."}, {"id": 63, "type": "opposition", "name": "New York Newspapers", "era": "Early", "text": "Place 2 :red_cube in each of New York and New Jersey."}, {"id": 64, "type": "opposition", "name": "Senator George Vest", "era": "Early", "text": "Remove 1 :congressional_marker from Congress and add 2 :red_cube in Missouri."}, {"id": 65, "type": "opposition", "name": "Catharine Beecher", "era": "Early", "text": "Roll :d4. Add that number :red_cube anywhere, no more than 1 per state."}, {"id": 66, "type": "opposition", "name": "Progress, Not Politics", "era": "Early", "text": "Draw 6 cards from your Draw Deck. Place any number of the 6 cards on the top of your Draw Deck and the rest at the bottom of your Draw Deck."}, {"id": 67, "type": "opposition", "name": "Southern \u201cHospitality\u201d", "era": "Early", "text": "Place 1 :red_cube in each of Virginia, North Carolina, South Carolina, Georgia and Tennessee."}, {"id": 68, "type": "opposition", "name": "Beer Brewers", "era": "Early", "text": "Playable if Eighteenth Amendment is not in effect. For the remainder of the turn, roll :d6 instead of :d4 when taking a Campaigning action.", "persistent": "rest_of_turn"}, {"id": 69, "type": "opposition", "name": "Southern Resentment", "era": "Early", "text": "Playable if *Fifteenth Amendment* is in effect. Add 1 :red_cube in each of Texas, Louisiana, Arkansas, Mississippi and Alabama."}, {"id": 70, "type": "opposition", "name": "Old Dixie", "era": "Early", "text": "Add 1 :red_cube in each of Louisiana, Mississippi, Alabama, Georgia and Florida."}, {"id": 71, "type": "opposition", "name": "NAOWS Forms", "era": "Middle", "text": "Add 1 :red_campaigner in the Northeast region. Receive 2 :badge."}, {"id": 72, "type": "opposition", "name": "Woman and the Republic", "era": "Middle", "text": "Draw 2 cards from your Draw Deck. Discard 1 card and play the other card for its event immediately."}, {"id": 73, "type": "opposition", "name": "The Ladies\u2019 Battle", "era": "Middle", "text": "Draw 2 cards from your Draw Deck. Discard 1 card and play the other card for its event immediately."}, {"id": 74, "type": "opposition", "name": "Backlash to the Movement", "era": "Middle", "text": "Remove 6 :purple_or_yellow_cube from anywhere, no more than 2 per state."}, {"id": 75, "type": "opposition", "name": "Xenophobia", "era": "Middle", "text": "Remove all from any 1 :purple_cube state. Remove all :yellow_cube from any 1 state."}, {"id": 76, "type": "opposition", "name": "\u201cO Save Us Senators, From Ourselves\u201d", "era": "Middle", "text": "Add 1 :red_cube in one state of each region."}, {"id": 77, "type": "opposition", "name": "Emma Goldman", "era": "Middle", "text": "Roll :d6. Add that number :red_cube anywhere, no more than 1 per state."}, {"id": 78, "type": "opposition", "name": "The Great 1906 San Francisco Earthquake", "era": "Middle", "text": "Remove all :yellow_cube and :purple_cube from California. The Suffragist player loses 1 :badge."}, {"id": 79, "type": "opposition", "name": "A Threat to the Ideal of Womanhood", "era": "Middle", "text": "For the remainder of the turn, the Suffragist player must spend 1 :badge in order to play a card as an event.", "persistent": "rest_of_turn"}, {"id": 80, "type": "opposition", "name": "\u201cUnwarranted, Unnecessary & Dangerous Interference\u201d", "era": "Middle", "text": "Add 1 :red_cube in one state of each region."}, {"id": 81, "type": "opposition", "name": "Conservative Opposition", "era": "Middle", "text": "For the remainder of the turn, roll :d6 instead of :d4 when taking a Campaigning action.", "persistent": "rest_of_turn"}, {"id": 82, "type": "opposition", "name": "The SSWSC", "era": "Middle", "text": "Playable if *Southern Strategy* is in effect. Receive 2 :badge and add 6 :red_cube in the South region, no more than 2 per state."}, {"id": 83, "type": "opposition", "name": "Western Saloons Push Suffrage Veto", "era": "Middle", "text": "Playable if *Eighteenth Amendment* is not in effect. Place 2 :red_cube in Arizona and 1 :red_cube in each of New Mexico, Nevada and Utah."}, {"id": 84, "type": "opposition", "name": "Transcontinental Railroad", "era": "Middle", "text": "Move each :red_campaigner to any region(s) without paying any :badge and then take a Campaigning action."}, {"id": 85, "type": "opposition", "name": "White Supremacy and the Suffrage Movement", "era": "Middle", "text": "Playable if *Southern Strategy* is in effect. Remove all :yellow_cube in up to 4 states. The Suffragist player loses 2 :badge."}, {"id": 86, "type": "opposition", "name": "Senator John Weeks", "era": "Middle", "text": "Remove 1 :congressional_marker from Congress and add 2 :red_cube in New Hampshire."}, {"id": 87, "type": "opposition", "name": "Senator \u201cCotton Ed\u201d Smith", "era": "Middle", "text": "Remove 1 :congressional_marker from Congress and add 2 :red_cube in South Carolina."}, {"id": 88, "type": "opposition", "name": "War in Europe", "era": "Late", "text": "Remove 1 :congressional_marker from Congress. For the remainder of the turn, the Suffragist player must spend 1 :badge in order to take a Campaigning action.", "persistent": "rest_of_turn"}, {"id": 89, "type": "opposition", "name": "1918 Pandemic", "era": "Late", "text": "Remove 1 :congressional_marker from Congress. For the remainder of the turn, the Suffragist player must spend 1 :badge in order to play a card as an event.", "persistent": "rest_of_turn"}, {"id": 90, "type": "opposition", "name": "The Business of Being a Woman", "era": "Late", "text": "Draw 2 cards from your Draw Deck. Discard 1 card and play the other card for its event immediately."}, {"id": 91, "type": "opposition", "name": "The Eden Sphinx", "era": "Late", "text": "Draw 2 cards from your Draw Deck. Discard 1 card and play the other card for its event immediately."}, {"id": 92, "type": "opposition", "name": "Big Liquor\u2019s Big Money", "era": "Late", "text": "Playable if *Eighteenth Amendment* is not in effect. For the remainder of the turn, roll :d6 instead of :d4 when taking a Campaigning action.", "persistent": "rest_of_turn"}, {"id": 93, "type": "opposition", "name": "Red Scare", "era": "Late", "text": "Remove all :purple_cube in up to 2 states."}, {"id": 94, "type": "opposition", "name": "Southern Women\u2019s Rejection League", "era": "Late", "text": "Playable if *Southern Strategy* is in effect. Roll :d8. Add that number :red_cube in the South region, no more than 2 per state."}, {"id": 95, "type": "opposition", "name": "United Daughters of the Confederacy", "era": "Late", "text": "Playable if *Southern Strategy* is in effect. Roll :d8. Add that number :red_cube in the South region, no more than 2 per state."}, {"id": 96, "type": "opposition", "name": "Cheers to \u201cNo on Suffrage\u201d", "era": "Late", "text": "Playable if *Eighteenth Amendment* is not in effect. Roll :d8. Add that number :red_cube anywhere, no more than 2 per state."}, {"id": 97, "type": "opposition", "name": "The Unnecessary Privilege", "era": "Late", "text": "Roll :d6. Add that number :red_cube anywhere, no more than 1 per state."}, {"id": 98, "type": "opposition", "name": "Voter Suppression", "era": "Late", "text": "The Opposition player rolls :d8 instead of :d6 during Final Voting.", "persistent": "ballot_box"}, {"id": 99, "type": "opposition", "name": "Anti-Suffrage Riots", "era": "Late", "text": "The Suffragist player must discard 2 cards from their hand at random and then draw 2 cards from the Suffragist Draw Deck."}, {"id": 100, "type": "opposition", "name": "American Constitutional League", "era": "Late", "text": "Spend 4 :badge to select, and place in front of you, 1 available Strategy card."}, {"id": 101, "type": "opposition", "name": "The Woman Patriot", "era": "Late", "text": "Receive 3 :badge."}, {"id": 102, "type": "opposition", "name": "Governor Clement\u2019s Veto", "era": "Late", "text": "Replace 1 :green_check in a state with 1 :red_x."}, {"id": 103, "type": "opposition", "name": "Senator Henry Cabot Lodge", "era": "Late", "text": "Remove 1 :congressional_marker from Congress and add 2 :red_cube in Massachusetts"}, {"id": 104, "type": "opposition", "name": "Senator William Borah", "era": "Late", "text": "Remove 1 :congressional_marker from Congress and add 2 :red_cube in Utah"}, {"id": 105, "type": "strategy", "name": "Efficient Organizing", "text": "Receive 5 :badge."}, {"id": 106, "type": "strategy", "name": "Reconsideration", "text": "Replace 1 :red_x with 2 :purple_or_yellow_cube or 1 :green_check with 2 :red_cube."}, {"id": 107, "type": "strategy", "name": "Opposition Research", "text": "Your opponent must lose half (rounded up) of their :badge."}, {"id": 108, "type": "strategy", "name": "Change In Plans", "text": "Look at your opponent\u2019s hand. Your opponent must discard 1 card of your choice that does not have a :yellow_campaigner / :purple_campaigner / :red_campaigner on it. Your opponent then draws 1 replacement card from their Draw Deck."}, {"id": 109, "type": "strategy", "name": "Bellwether State", "text": "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."}, {"id": 110, "type": "strategy", "name": "Superior Lobbying", "text": "Roll 4 :d8. For each 6, 7 or 8 rolled, add 1 :congressional_marker to Congress or remove 1 :congressional_marker from Congress."}, {"id": 111, "type": "strategy", "name": "The Winning Plan", "text": "Draw 6 cards from your Draw Deck. Play 1 card for its event immediately. Place any number of the remaining 5 cards on the top of your Draw Deck and the rest at the bottom of your Draw Deck."}, {"id": 112, "type": "strategy", "name": "Regional Focus", "text": "Add 1 :purple_or_yellow_cube or 1 :red_cube per state in any one region."}, {"id": 113, "type": "strategy", "name": "Eye on the Future", "text": "Playable if it is Turn 5 or Turn 6. Look through your Draw Deck and select 1 card and play for its event immediately. Then reshuffle your Draw Deck."}, {"id": 114, "type": "strategy", "name": "Transportation", "text": "Move all of your :purple_campaigner and :yellow_campaigner OR :red_campaigner to any region(s) without playing any :badge and then take a Campaigning action."}, {"id": 115, "type": "strategy", "name": "Counter Strat", "text": "Remove one card that is \u201cin effect for the remainder of the turn\u201d and place it in the appropriate discard pile."}, {"id": 116, "type": "strategy", "name": "National Focus", "text": "Add 2 :purple_or_yellow_cube or 2 :red_cube in one state of each region."}, {"id": 117, "type": "states", "name": "California", "text": "Draw 2 cards from your Draw Deck. Discard 1 card and play the other card for its event immediately."}, {"id": 118, "type": "states", "name": "Utah", "text": "Add 6 :purple_or_yellow_cube or 6 :red_cube in the West region, no more than 2 per state."}, {"id": 119, "type": "states", "name": "Montana", "text": "Receive 2 :badge."}, {"id": 120, "type": "states", "name": "Kansas", "text": "Add 6 :purple_or_yellow_cube or 6 :red_cube in the Plains region, no more than 2 per state."}, {"id": 121, "type": "states", "name": "Texas", "text": "Add 6 :purple_or_yellow_cube or 6 :red_cube in the South region, no more than 2 per state."}, {"id": 122, "type": "states", "name": "Georgia", "text": "Receive 2 :badge."}, {"id": 123, "type": "states", "name": "Illinois", "text": "Add 6 :purple_or_yellow_cube or 6 :red_cube in the Midwest region, no more than 2 per state."}, {"id": 124, "type": "states", "name": "Ohio", "text": "Draw 2 cards from your Draw Deck. Discard 1 card and play the other card for its event immediately."}, {"id": 125, "type": "states", "name": "Pennsylvania", "text": "Add 6 :purple_or_yellow_cube or 6 :red_cube in the Atlantic & Appalachia region, no more than 2 per state."}, {"id": 126, "type": "states", "name": "Virginia", "text": "Draw 2 cards from your Draw Deck. Discard 1 card and play the other card for its event immediately."}, {"id": 127, "type": "states", "name": "New York", "text": "Add 6 :purple_or_yellow_cube or 6 :red_cube in the Northeast region, no more than 2 per state."}, {"id": 128, "type": "states", "name": "New Jersey", "text": "Receive 2 :badge."}]
if (typeof module !== 'undefined') module.exports = {CARDS}
diff --git a/events.txt b/events.txt
index b907480..70c9082 100644
--- a/events.txt
+++ b/events.txt
@@ -5,7 +5,7 @@ CARD 1 - Seneca Falls Convention
add_campaigner 1 PURPLE NORTHEAST
add_campaigner 1 YELLOW NORTHEAST
receive_badges 2
- add_cubes 2 PURPLE_OR_YELLOW "New York"
+ add_cubes 2 PURPLE_OR_YELLOW us_states("New York")
CARD 2 - Property Rights for Women
# For the remainder of the turn, roll :d6 instead of :d4 when taking a Campaigning action.
@@ -23,14 +23,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 "The Civil War"
+ requires_persistent find_card("The Civil War")
roll_d6_success
receive_badges 2
- discard_persistent "The Civil War"
+ 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 "The Civil War"
+ requires_not_persistent find_card("The Civil War")
roll_d6_success
add_congress 2
add_cubes_limit 8 PURPLE_OR_YELLOW anywhere() 2
@@ -38,9 +38,9 @@ CARD 6 - Fifteenth Amendment
CARD 7 - Reconstruction
# Playable if *The Civil War* is not in effect and the *Fifteenth Amendment* is in effect.
# Add 1 :purple_or_yellow_cube in each of Virginia, North Carolina, South Carolina, Georgia, Florida, Alabama, Mississippi, Tennessee, Arkansas, Louisiana and Texas.
- requires_not_persistent "The Civil War"
- requires_persistent "Fifteenth Amendment"
- add_cubes_in_each_of 1 PURPLE_OR_YELLOW ["Virginia", "North Carolina", "South Carolina", "Georgia", "Florida", "Alabama", "Mississippi", "Tennessee", "Arkansas", "Louisiana", "Texas"]
+ requires_not_persistent find_card("The Civil War")
+ requires_persistent find_card("Fifteenth Amendment")
+ add_cubes_in_each_of 1 PURPLE_OR_YELLOW us_states("Virginia","North Carolina","South Carolina","Georgia","Florida","Alabama","Mississippi","Tennessee","Arkansas","Louisiana","Texas")
CARD 8 - Petition to Congress
# Add 1 :congressional_marker in Congress and add 1 :purple_or_yellow_cube in one state of each region.
@@ -87,7 +87,7 @@ CARD 16 - Pioneer Women
CARD 17 - Women to the Polls
# Add 2 :purple_or_yellow_cube in each of New Jersey, Pennsylvania and Delaware.
- add_cubes_in_each_of 2 PURPLE_OR_YELLOW ["New Jersey", "Pennsylvania", "Delaware"]
+ add_cubes_in_each_of 2 PURPLE_OR_YELLOW us_states("New Jersey","Pennsylvania","Delaware")
CARD 18 - National Woman’s Rights Convention
# Playable if *The Civil War* is not in effect. Add 1 :congressional_marker in Congress and 1 :purple_or_yellow_cube in one state of each region.
@@ -104,14 +104,14 @@ 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
add_congress 1
- add_cubes 4 PURPLE_OR_YELLOW "Montana"
- add_cubes_in_each_of 2 PURPLE_OR_YELLOW region_us_states_except(PLAINS, "Montana")
+ 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"))
CARD 21 - Ida B. Wells-Barnett
# Receive 2 :badge. Add 2 :purple_or_yellow_cube in Illinois and 1 :purple_or_yellow_cube in each other state in the Midwest region.
receive_badges 2
- add_cubes 2 PURPLE_OR_YELLOW "Illinois"
- add_cubes_in_each_of 1 PURPLE_OR_YELLOW region_us_states_except(MIDWEST, "Illinois")
+ add_cubes 2 PURPLE_OR_YELLOW us_states("Illinois")
+ add_cubes_in_each_of 1 PURPLE_OR_YELLOW region_us_states_except(MIDWEST,us_states("Illinois"))
CARD 22 - The Club Movement
# Receive 4 :badge.
@@ -150,11 +150,11 @@ CARD 28 - Inez Milholland
CARD 29 - Farmers for Suffrage
# Add 2 :purple_or_yellow_cube in each of Wisconsin, Minnesota, Iowa, North Dakota and South Dakota.
- add_cubes_in_each_of 2 PURPLE_OR_YELLOW ["Wisconsin", "Minnesota", "Iowa", "North Dakota", "South Dakota"]
+ add_cubes_in_each_of 2 PURPLE_OR_YELLOW us_states("Wisconsin","Minnesota","Iowa","North Dakota","South Dakota")
CARD 30 - Zitkala-Ša
# Add 2 :purple_or_yellow_cube in each of North Dakota, South Dakota, Nebraska, Montana and Wyoming.
- add_cubes_in_each_of 2 PURPLE_OR_YELLOW ["North Dakota", "South Dakota", "Nebraska", "Montana", "Wyoming"]
+ add_cubes_in_each_of 2 PURPLE_OR_YELLOW us_states("North Dakota","South Dakota","Nebraska","Montana","Wyoming")
CARD 31 - Helen Keller
# Roll :d6 :d6. Add that number :purple_or_yellow_cube anywhere, no more than 2 per state.
@@ -164,7 +164,7 @@ CARD 31 - Helen Keller
CARD 32 - Maria de Lopez
# Recieve 2 :badge. Add 2 :purple_or_yellow_cube in each of California, Nevada and Arizona.
receive_badges 2
- add_cubes_in_each_of 2 PURPLE_OR_YELLOW ["California", "Nevada", "Arizona"]
+ add_cubes_in_each_of 2 PURPLE_OR_YELLOW us_states("California","Nevada","Arizona")
CARD 33 - Marie Louise Bottineau Baldwin
# For the remainder of the turn, roll :d6 instead of :d4 when taking a Campaigning action.
@@ -222,12 +222,12 @@ CARD 43 - Prison Tour Special
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.
- add_cubes_in_each_of 1 PURPLE_OR_YELLOW region_us_states(WEST, PLAINS)
- add_cubes_in_each_of 1 PURPLE_OR_YELLOW ["Texas", "Arkansas", "Illinois", "Michigan", "New York", "Vermont"]
+ add_cubes_in_each_of 1 PURPLE_OR_YELLOW region_us_states(WEST,PLAINS)
+ add_cubes_in_each_of 1 PURPLE_OR_YELLOW us_states("Texas","Arkansas","Illinois","Michigan","New York","Vermont")
CARD 45 - Women and World War I
# Playable if *War in Europe* is in effect. Add 10 :purple_or_yellow_cube anywhere, no more than 2 per state.
- requires_persistent "War in Europe"
+ requires_persistent find_card("War in Europe")
add_cubes_limit 10 PURPLE_OR_YELLOW anywhere() 2
CARD 46 - Eighteenth Amendment
@@ -271,7 +271,7 @@ CARD 53 - The Patriarchy
# Add 1 :red_campaigner in the South region. Receive 4 :badge. Add 1 :red_cube in each state in the Northeast region, the Atlantic & Appalachia region, the South region and the Midwest region.
add_campaigner 1 RED SOUTH
receive_badges 4
- add_cubes_in_each_of 1 RED region_us_states(NORTHEAST, ATLANTIC_APPALACHIA, SOUTH, MIDWEST)
+ add_cubes_in_each_of 1 RED region_us_states(NORTHEAST,ATLANTIC_APPALACHIA,SOUTH,MIDWEST)
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.
@@ -281,20 +281,20 @@ 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 "Fifteenth Amendment"
+ requires_persistent find_card("Fifteenth Amendment")
remove_all_up_to PURPLE 4
opponent_loses_badges 2
CARD 56 - Senator Joseph Brown
# Remove 1 :congressional_marker from Congress and add 2 :red_cube in Georgia.
remove_congress 1
- add_cubes 2 RED "Georgia"
+ add_cubes 2 RED us_states("Georgia")
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
remove_congress 1
- add_cubes 2 RED "Missouri"
+ 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.
@@ -306,7 +306,7 @@ 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
remove_congress 1
- add_cubes 2 RED "South Dakota"
+ add_cubes 2 RED us_states("South Dakota")
CARD 60 - Gerrymandering
# Remove all :yellow_cube in up to 2 states.
@@ -314,20 +314,20 @@ CARD 60 - Gerrymandering
CARD 61 - Border States
# Add 1 :red_cube in each of Delaware, Maryland, West Virginia, Kentucky and Missouri.
- add_cubes_in_each_of 1 RED ["Delaware", "Maryland", "West Virginia", "Kentucky", "Missouri"]
+ add_cubes_in_each_of 1 RED us_states("Delaware","Maryland","West Virginia","Kentucky","Missouri")
CARD 62 - Horace Greeley
# Place 2 :red_cube in each of New York and Connecticut.
- add_cubes_in_each_of 2 RED ["New York", "Connecticut"]
+ add_cubes_in_each_of 2 RED us_states("New York","Connecticut")
CARD 63 - New York Newspapers
# Place 2 :red_cube in each of New York and New Jersey.
- add_cubes_in_each_of 2 RED ["New York", "New Jersey"]
+ add_cubes_in_each_of 2 RED us_states("New York","New Jersey")
CARD 64 - Senator George Vest
# Remove 1 :congressional_marker from Congress and add 2 :red_cube in Missouri.
remove_congress 1
- add_cubes 2 "Missouri"
+ add_cubes 2 us_states("Missouri")
CARD 65 - Catharine Beecher
# Roll :d4. Add that number :red_cube anywhere, no more than 1 per state.
@@ -340,22 +340,22 @@ CARD 66 - Progress, Not Politics
CARD 67 - Southern “Hospitality”
# Place 1 :red_cube in each of Virginia, North Carolina, South Carolina, Georgia and Tennessee.
- add_cubes_in_each_of 1 RED ["Virginia", "North Carolina", "South Carolina", "Georgia", "Tennessee"]
+ add_cubes_in_each_of 1 RED us_states("Virginia","North Carolina","South Carolina","Georgia","Tennessee")
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 "Eighteenth Amendment"
+ requires_not_persistent find_card("Eighteenth Amendment")
persistent REST_OF_TURN
todo
CARD 69 - Southern Resentment
# Playable if *Fifteenth Amendment* is in effect. Add 1 :red_cube in each of Texas, Louisiana, Arkansas, Mississippi and Alabama.
- requires_persistent "Fifteenth Amendment"
- add_cubes_in_each_of 1 RED ["Texas", "Louisiana", "Arkansas", "Mississippi", "Alabama"]
+ requires_persistent find_card("Fifteenth Amendment")
+ add_cubes_in_each_of 1 RED us_states("Texas","Louisiana","Arkansas","Mississippi","Alabama")
CARD 70 - Old Dixie
# Add 1 :red_cube in each of Louisiana, Mississippi, Alabama, Georgia and Florida.
- add_cubes_in_each_of 1 RED ["Louisiana", "Mississippi", "Alabama", "Georgia", "Florida"]
+ add_cubes_in_each_of 1 RED us_states("Louisiana","Mississippi","Alabama","Georgia","Florida")
CARD 71 - NAOWS Forms
# Add 1 :red_campaigner in the Northeast region. Receive 2 :badge.
@@ -390,7 +390,7 @@ CARD 77 - Emma Goldman
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 "California"
+ remove_all PURPLE_OR_YELLOW us_states("California")
opponent_loses_badges 1
CARD 79 - A Threat to the Ideal of Womanhood
@@ -409,15 +409,15 @@ CARD 81 - Conservative Opposition
CARD 82 - The SSWSC
# Playable if *Southern Strategy* is in effect. Receive 2 :badge and add 6 :red_cube in the South region, no more than 2 per state.
- requires_persistent "Southern Strategy"
+ requires_persistent find_card("Southern Strategy")
receive_badges 2
add_cubes_limit 6 RED region_us_states(SOUTH) 2
CARD 83 - Western Saloons Push Suffrage Veto
# Playable if *Eighteenth Amendment* is not in effect. Place 2 :red_cube in Arizona and 1 :red_cube in each of New Mexico, Nevada and Utah.
- requires_not_persistent "Eighteenth Amendment"
- add_cubes 2 RED "Arizona"
- add_cubes_in_each_of 1 RED ["New Mexico", "Nevada", "Utah"]
+ requires_not_persistent find_card("Eighteenth Amendment")
+ add_cubes 2 RED us_states("Arizona")
+ add_cubes_in_each_of 1 RED us_states("New Mexico","Nevada","Utah")
CARD 84 - Transcontinental Railroad
# Move each :red_campaigner to any region(s) without paying any :badge and then take a Campaigning action.
@@ -426,19 +426,19 @@ 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 "Southern Strategy"
+ requires_persistent find_card("Southern Strategy")
remove_all_up_to YELLOW 4
opponent_loses_badges 2
CARD 86 - Senator John Weeks
# Remove 1 :congressional_marker from Congress and add 2 :red_cube in New Hampshire.
remove_congress 1
- add_cubes 2 RED "New Hampshire"
+ add_cubes 2 RED us_states("New Hampshire")
CARD 87 - Senator “Cotton Ed” Smith
# Remove 1 :congressional_marker from Congress and add 2 :red_cube in South Carolina.
remove_congress 1
- add_cubes 2 RED "South Carolina"
+ add_cubes 2 RED us_states("South Carolina")
CARD 88 - War in Europe
# Remove 1 :congressional_marker from Congress. For the remainder of the turn, the Suffragist player must spend 1 :badge in order to take a Campaigning action.
@@ -462,7 +462,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 "Eighteenth Amendment"
+ requires_not_persistent find_card("Eighteenth Amendment")
persistent REST_OF_TURN
todo
@@ -472,19 +472,19 @@ CARD 93 - Red Scare
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 "Southern Strategy"
+ requires_persistent find_card("Southern Strategy")
roll_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 "Southern Strategy"
+ requires_persistent find_card("Southern Strategy")
roll_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 "Eighteenth Amendment"
+ requires_persistent find_card("Eighteenth Amendment")
roll_d8
add_cubes_limit (game.vm.die) RED anywhere() 2
@@ -518,12 +518,12 @@ CARD 102 - Governor Clement’s Veto
CARD 103 - Senator Henry Cabot Lodge
# Remove 1 :congressional_marker from Congress and add 2 :red_cube in Massachusetts
remove_congress 1
- add_cubes 2 RED "Massachusetts"
+ add_cubes 2 RED us_states("Massachusetts")
CARD 104 - Senator William Borah
# Remove 1 :congressional_marker from Congress and add 2 :red_cube in Utah
remove_congress 1
- add_cubes 2 RED "Utah"
+ add_cubes 2 RED us_states("Utah")
# Strategy Cards
diff --git a/play.js b/play.js
index abd6431..777ca06 100644
--- a/play.js
+++ b/play.js
@@ -235,7 +235,7 @@ function on_click_card(evt) {
if (is_action('card', card)) {
send_action('card', card)
} else {
- show_popup_menu(evt, "popup", card, CARDS[card].title)
+ show_popup_menu(evt, "popup", card, CARDS[card].name)
}
}
diff --git a/rules.js b/rules.js
index a4cfb6b..52dc2f5 100644
--- a/rules.js
+++ b/rules.js
@@ -35,6 +35,17 @@ const REGION_NAMES = [
"Northeast"
]
+const PURPLE = 1
+const YELLOW = 2
+const PURPLE_OR_YELLOW = 3
+const RED = 4
+const GREEN_CHECK = 5
+const RED_X = 6
+
+const REST_OF_TURN = 1
+const REST_OF_GAME = 2
+const BALLOT_BOX = 3
+
const { CARDS } = require("./cards.js")
const { US_STATES } = require("./data.js")
@@ -56,6 +67,10 @@ function is_states_card(c) {
return c >= first_states_card && c <= last_states_card
}
+function find_card(name) {
+ return CARDS.findIndex((x) => x.name === name)
+}
+
function draw_card(deck) {
if (deck.length === 0)
throw Error("can't draw from empty deck")
@@ -91,6 +106,28 @@ function is_player_claimed_card(c) {
return player_claimed().includes(c)
}
+// #endregion
+
+// #region US_STATES & REGIONS FUNCTIONS
+
+function find_us_state(name) {
+ return US_STATES.findIndex((x) => x.name === name)
+}
+
+function us_states(...args) {
+ return args.map(find_us_state)
+}
+
+function region_us_states(region) {
+ const indexes = []
+ US_STATES.forEach((element, index) => {
+ if (element.region === region) indexes.push(index)
+ })
+ return indexes
+}
+
+// #endregion
+
// #region PUBLIC FUNCTIONS
exports.scenarios = [ "Standard" ]
@@ -637,10 +674,6 @@ function end_event() {
end_play_card(c)
}
-function end_crisis_breach_objective() {
- goto_objective_card_play()
-}
-
function goto_vm(proc) {
game.state = "vm"
game.vm = {
@@ -656,7 +689,7 @@ function event_prompt(str) {
str = CODE[game.vm.fp][game.vm.prompt][1]
if (typeof str === "function")
str = str()
- view.prompt = CARDS[game.vm.fp].title + ": " + str
+ view.prompt = CARDS[game.vm.fp].name + ": " + str
}
function vm_inst(a) {
@@ -782,48 +815,6 @@ function vm_ops() {
goto_operations(vm_operand(1), vm_operand_spaces(2))
}
-function vm_increase_revolutionary_momentum() {
- if (game.red_momentum < 3)
- game.state = "vm_increase_revolutionary_momentum"
- else
- vm_next()
-}
-
-function vm_increase_prussian_collaboration() {
- if (game.blue_momentum < 3)
- game.state = "vm_increase_prussian_collaboration"
- else
- vm_next()
-}
-
-function vm_may_increase_revolutionary_momentum() {
- if (game.red_momentum < 3)
- game.state = "vm_may_increase_revolutionary_momentum"
- else
- vm_next()
-}
-
-function vm_may_increase_prussian_collaboration() {
- if (game.blue_momentum < 3)
- game.state = "vm_may_increase_prussian_collaboration"
- else
- vm_next()
-}
-
-function vm_decrease_revolutionary_momentum() {
- if (game.red_momentum > 0)
- game.state = "vm_decrease_revolutionary_momentum"
- else
- vm_next()
-}
-
-function vm_decrease_prussian_collaboration() {
- if (game.blue_momentum > 0)
- game.state = "vm_decrease_prussian_collaboration"
- else
- vm_next()
-}
-
function vm_operand_spaces(x) {
let s = vm_operand(x)
if (typeof s === "number")
@@ -969,88 +960,6 @@ states.vm_switch = {
},
}
-states.vm_increase_revolutionary_momentum = {
- inactive: "increase Revolutionary Momentum",
- prompt() {
- event_prompt("Increase Revolutionary Momentum.")
- view.actions.red_momentum = 1
- },
- red_momentum() {
- push_undo()
- increase_revolutionary_momentum()
- },
-}
-
-states.vm_may_increase_revolutionary_momentum = {
- inactive: "increase Revolutionary Momentum",
- prompt() {
- event_prompt("Increase Revolutionary Momentum.")
- view.actions.red_momentum = 1
- view.actions.pass = 1
- },
- red_momentum() {
- push_undo()
- increase_revolutionary_momentum()
- },
- pass() {
- push_undo()
- vm_next()
- },
-}
-
-states.vm_increase_prussian_collaboration = {
- inactive: "increase Prussian Collaboration",
- prompt() {
- event_prompt("Increase Prussian Collaboration.")
- view.actions.blue_momentum = 1
- },
- blue_momentum() {
- push_undo()
- increase_prussian_collaboration()
- },
-}
-
-states.vm_may_increase_prussian_collaboration = {
- inactive: "increase Prussian Collaboration",
- prompt() {
- event_prompt("Increase Prussian Collaboration.")
- view.actions.blue_momentum = 1
- view.actions.pass = 1
- },
- blue_momentum() {
- push_undo()
- increase_prussian_collaboration()
- },
- pass() {
- push_undo()
- vm_next()
- },
-}
-
-states.vm_decrease_revolutionary_momentum = {
- inactive: "decrease Revolutionary Momentum",
- prompt() {
- event_prompt("Decrease Revolutionary Momentum.")
- view.actions.red_momentum = 1
- },
- red_momentum() {
- push_undo()
- decrease_revolutionary_momentum()
- },
-}
-
-states.vm_decrease_prussian_collaboration = {
- inactive: "decrease Prussian Collaboration",
- prompt() {
- event_prompt("Decrease Prussian Collaboration.")
- view.actions.blue_momentum = 1
- },
- blue_momentum() {
- push_undo()
- decrease_prussian_collaboration()
- },
-}
-
function can_vm_place() {
for (let s of game.vm.spaces)
if (can_place_cube(s, game.vm.removed))
@@ -1078,7 +987,7 @@ states.vm_place = {
space(s) {
push_undo()
place_cube(s, game.vm.removed)
- if (game.active === COMMUNE)
+ if (game.active === SUF)
log("Placed RC in S" + s + ".")
else
log("Placed BC in S" + s + ".")
@@ -1115,7 +1024,7 @@ states.vm_move_disc = {
event_prompt("Remove a disc to place it elsewhere.")
if (game.vm.upto)
view.actions.skip = 1
- if (game.active === COMMUNE)
+ if (game.active === SUF)
for (let p = first_commune_disc; p <= last_commune_disc; ++p)
gen_action_piece(p)
else
@@ -1125,7 +1034,7 @@ states.vm_move_disc = {
piece(p) {
push_undo()
let s = game.pieces[p]
- if (game.active === COMMUNE)
+ if (game.active === SUF)
log("Moved RD from S" + s + ".")
else
log("Moved BD from S" + s + ".")
@@ -1150,7 +1059,7 @@ states.vm_place_disc = {
},
space(s) {
push_undo()
- if (game.active === COMMUNE)
+ if (game.active === SUF)
log("Placed RD in S" + s + ".")
else
log("Placed BD in S" + s + ".")
@@ -1228,7 +1137,7 @@ states.vm_remove = {
piece(p) {
push_undo()
let s = game.pieces[p]
- if (game.active === COMMUNE)
+ if (game.active === SUF)
log("Removed BC from S" + s + ".")
else
log("Removed RC from S" + s + ".")
@@ -1252,7 +1161,7 @@ states.vm_remove_own = {
piece(p) {
push_undo()
let s = game.pieces[p]
- if (game.active === COMMUNE)
+ if (game.active === SUF)
log("Removed RC from S" + s + ".")
else
log("Removed BC from S" + s + ".")
@@ -1463,7 +1372,7 @@ CODE[1] = [ // Seneca Falls Convention
[ vm_add_campaigner, 1, PURPLE, NORTHEAST ],
[ vm_add_campaigner, 1, YELLOW, NORTHEAST ],
[ vm_receive_badges, 2 ],
- [ vm_add_cubes, 2, PURPLE_OR_YELLOW, "New, York" ],
+ [ vm_add_cubes, 2, PURPLE_OR_YELLOW, us_states("New York") ],
[ vm_return ],
]
@@ -1485,15 +1394,15 @@ CODE[4] = [ // A Vindication of the Rights of Woman
]
CODE[5] = [ // Union Victory
- [ vm_requires_persistent, "The, Civil, War" ],
+ [ vm_requires_persistent, find_card("The Civil War") ],
[ vm_roll_d6_success ],
[ vm_receive_badges, 2 ],
- [ vm_discard_persistent, "The, Civil, War" ],
+ [ vm_discard_persistent, find_card("The Civil War") ],
[ vm_return ],
]
CODE[6] = [ // Fifteenth Amendment
- [ vm_requires_not_persistent, "The, Civil, War" ],
+ [ vm_requires_not_persistent, find_card("The Civil War") ],
[ vm_roll_d6_success ],
[ vm_add_congress, 2 ],
[ vm_add_cubes_limit, 8, PURPLE_OR_YELLOW, anywhere(), 2 ],
@@ -1501,9 +1410,9 @@ CODE[6] = [ // Fifteenth Amendment
]
CODE[7] = [ // Reconstruction
- [ vm_requires_not_persistent, "The, Civil, War" ],
- [ vm_requires_persistent, "Fifteenth, Amendment" ],
- [ vm_add_cubes_in_each_of, 1, PURPLE_OR_YELLOW, ["Virginia",, "North, Carolina",, "South, Carolina",, "Georgia",, "Florida",, "Alabama",, "Mississippi",, "Tennessee",, "Arkansas",, "Louisiana",, "Texas"] ],
+ [ vm_requires_not_persistent, find_card("The Civil War") ],
+ [ vm_requires_persistent, find_card("Fifteenth Amendment") ],
+ [ vm_add_cubes_in_each_of, 1, PURPLE_OR_YELLOW, us_states("Virginia","North Carolina","South Carolina","Georgia","Florida","Alabama","Mississippi","Tennessee","Arkansas","Louisiana","Texas") ],
[ vm_return ],
]
@@ -1560,7 +1469,7 @@ CODE[16] = [ // Pioneer Women
]
CODE[17] = [ // Women to the Polls
- [ vm_add_cubes_in_each_of, 2, PURPLE_OR_YELLOW, ["New, Jersey",, "Pennsylvania",, "Delaware"] ],
+ [ vm_add_cubes_in_each_of, 2, PURPLE_OR_YELLOW, us_states("New Jersey","Pennsylvania","Delaware") ],
[ vm_return ],
]
@@ -1580,15 +1489,15 @@ CODE[19] = [ // National American Woman Suffrage Association
CODE[20] = [ // Jeannette Rankin
[ vm_roll_d6_success ],
[ vm_add_congress, 1 ],
- [ vm_add_cubes, 4, PURPLE_OR_YELLOW, "Montana" ],
- [ vm_add_cubes_in_each_of, 2, PURPLE_OR_YELLOW, region_us_states_except(PLAINS,, "Montana") ],
+ [ 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")) ],
[ vm_return ],
]
CODE[21] = [ // Ida B. Wells-Barnett
[ vm_receive_badges, 2 ],
- [ vm_add_cubes, 2, PURPLE_OR_YELLOW, "Illinois" ],
- [ vm_add_cubes_in_each_of, 1, PURPLE_OR_YELLOW, region_us_states_except(MIDWEST,, "Illinois") ],
+ [ vm_add_cubes, 2, PURPLE_OR_YELLOW, us_states("Illinois") ],
+ [ vm_add_cubes_in_each_of, 1, PURPLE_OR_YELLOW, region_us_states_except(MIDWEST,us_states("Illinois")) ],
[ vm_return ],
]
@@ -1635,12 +1544,12 @@ CODE[28] = [ // Inez Milholland
]
CODE[29] = [ // Farmers for Suffrage
- [ vm_add_cubes_in_each_of, 2, PURPLE_OR_YELLOW, ["Wisconsin",, "Minnesota",, "Iowa",, "North, Dakota",, "South, Dakota"] ],
+ [ vm_add_cubes_in_each_of, 2, PURPLE_OR_YELLOW, us_states("Wisconsin","Minnesota","Iowa","North Dakota","South Dakota") ],
[ vm_return ],
]
CODE[30] = [ // Zitkala-Ša
- [ vm_add_cubes_in_each_of, 2, PURPLE_OR_YELLOW, ["North, Dakota",, "South, Dakota",, "Nebraska",, "Montana",, "Wyoming"] ],
+ [ vm_add_cubes_in_each_of, 2, PURPLE_OR_YELLOW, us_states("North Dakota","South Dakota","Nebraska","Montana","Wyoming") ],
[ vm_return ],
]
@@ -1652,7 +1561,7 @@ CODE[31] = [ // Helen Keller
CODE[32] = [ // Maria de Lopez
[ vm_receive_badges, 2 ],
- [ vm_add_cubes_in_each_of, 2, PURPLE_OR_YELLOW, ["California",, "Nevada",, "Arizona"] ],
+ [ vm_add_cubes_in_each_of, 2, PURPLE_OR_YELLOW, us_states("California","Nevada","Arizona") ],
[ vm_return ],
]
@@ -1722,13 +1631,13 @@ CODE[43] = [ // Prison Tour Special
]
CODE[44] = [ // Victory Map
- [ vm_add_cubes_in_each_of, 1, PURPLE_OR_YELLOW, region_us_states(WEST,, PLAINS) ],
- [ vm_add_cubes_in_each_of, 1, PURPLE_OR_YELLOW, ["Texas",, "Arkansas",, "Illinois",, "Michigan",, "New, York",, "Vermont"] ],
+ [ vm_add_cubes_in_each_of, 1, PURPLE_OR_YELLOW, region_us_states(WEST,PLAINS) ],
+ [ vm_add_cubes_in_each_of, 1, PURPLE_OR_YELLOW, us_states("Texas","Arkansas","Illinois","Michigan","New York","Vermont") ],
[ vm_return ],
]
CODE[45] = [ // Women and World War I
- [ vm_requires_persistent, "War, in, Europe" ],
+ [ vm_requires_persistent, find_card("War in Europe") ],
[ vm_add_cubes_limit, 10, PURPLE_OR_YELLOW, anywhere(), 2 ],
[ vm_return ],
]
@@ -1778,7 +1687,7 @@ CODE[52] = [ // Miss Febb Wins the Last Vote
CODE[53] = [ // The Patriarchy
[ vm_add_campaigner, 1, RED, SOUTH ],
[ vm_receive_badges, 4 ],
- [ vm_add_cubes_in_each_of, 1, RED, region_us_states(NORTHEAST,, ATLANTIC_APPALACHIA,, SOUTH,, MIDWEST) ],
+ [ vm_add_cubes_in_each_of, 1, RED, region_us_states(NORTHEAST,ATLANTIC_APPALACHIA,SOUTH,MIDWEST) ],
[ vm_return ],
]
@@ -1790,7 +1699,7 @@ CODE[54] = [ // The Civil War
]
CODE[55] = [ // 15th Divides Suffragists
- [ vm_requires_persistent, "Fifteenth, Amendment" ],
+ [ vm_requires_persistent, find_card("Fifteenth Amendment") ],
[ vm_remove_all_up_to, PURPLE, 4 ],
[ vm_opponent_loses_badges, 2 ],
[ vm_return ],
@@ -1798,14 +1707,14 @@ CODE[55] = [ // 15th Divides Suffragists
CODE[56] = [ // Senator Joseph Brown
[ vm_remove_congress, 1 ],
- [ vm_add_cubes, 2, RED, "Georgia" ],
+ [ vm_add_cubes, 2, RED, us_states("Georgia") ],
[ vm_return ],
]
CODE[57] = [ // Minor v. Happersett
[ vm_roll_d6_success ],
[ vm_remove_congress, 1 ],
- [ vm_add_cubes, 2, RED, "Missouri" ],
+ [ vm_add_cubes, 2, RED, us_states("Missouri") ],
[ vm_return ],
]
@@ -1819,7 +1728,7 @@ CODE[58] = [ // Senate Rejects Suffrage Amendment
CODE[59] = [ // South Dakota Rejects Suffrage
[ vm_roll_d6_success ],
[ vm_remove_congress, 1 ],
- [ vm_add_cubes, 2, RED, "South, Dakota" ],
+ [ vm_add_cubes, 2, RED, us_states("South Dakota") ],
[ vm_return ],
]
@@ -1829,23 +1738,23 @@ CODE[60] = [ // Gerrymandering
]
CODE[61] = [ // Border States
- [ vm_add_cubes_in_each_of, 1, RED, ["Delaware",, "Maryland",, "West, Virginia",, "Kentucky",, "Missouri"] ],
+ [ vm_add_cubes_in_each_of, 1, RED, us_states("Delaware","Maryland","West Virginia","Kentucky","Missouri") ],
[ vm_return ],
]
CODE[62] = [ // Horace Greeley
- [ vm_add_cubes_in_each_of, 2, RED, ["New, York",, "Connecticut"] ],
+ [ vm_add_cubes_in_each_of, 2, RED, us_states("New York","Connecticut") ],
[ vm_return ],
]
CODE[63] = [ // New York Newspapers
- [ vm_add_cubes_in_each_of, 2, RED, ["New, York",, "New, Jersey"] ],
+ [ vm_add_cubes_in_each_of, 2, RED, us_states("New York","New Jersey") ],
[ vm_return ],
]
CODE[64] = [ // Senator George Vest
[ vm_remove_congress, 1 ],
- [ vm_add_cubes, 2, "Missouri" ],
+ [ vm_add_cubes, 2, us_states("Missouri") ],
[ vm_return ],
]
@@ -1861,25 +1770,25 @@ CODE[66] = [ // Progress, Not Politics
]
CODE[67] = [ // Southern “Hospitality”
- [ vm_add_cubes_in_each_of, 1, RED, ["Virginia",, "North, Carolina",, "South, Carolina",, "Georgia",, "Tennessee"] ],
+ [ vm_add_cubes_in_each_of, 1, RED, us_states("Virginia","North Carolina","South Carolina","Georgia","Tennessee") ],
[ vm_return ],
]
CODE[68] = [ // Beer Brewers
- [ vm_requires_not_persistent, "Eighteenth, Amendment" ],
+ [ vm_requires_not_persistent, find_card("Eighteenth Amendment") ],
[ vm_persistent, REST_OF_TURN ],
[ vm_todo ],
[ vm_return ],
]
CODE[69] = [ // Southern Resentment
- [ vm_requires_persistent, "Fifteenth, Amendment" ],
- [ vm_add_cubes_in_each_of, 1, RED, ["Texas",, "Louisiana",, "Arkansas",, "Mississippi",, "Alabama"] ],
+ [ vm_requires_persistent, find_card("Fifteenth Amendment") ],
+ [ vm_add_cubes_in_each_of, 1, RED, us_states("Texas","Louisiana","Arkansas","Mississippi","Alabama") ],
[ vm_return ],
]
CODE[70] = [ // Old Dixie
- [ vm_add_cubes_in_each_of, 1, RED, ["Louisiana",, "Mississippi",, "Alabama",, "Georgia",, "Florida"] ],
+ [ vm_add_cubes_in_each_of, 1, RED, us_states("Louisiana","Mississippi","Alabama","Georgia","Florida") ],
[ vm_return ],
]
@@ -1922,7 +1831,7 @@ CODE[77] = [ // Emma Goldman
]
CODE[78] = [ // The Great 1906 San Francisco Earthquake
- [ vm_remove_all, PURPLE_OR_YELLOW, "California" ],
+ [ vm_remove_all, PURPLE_OR_YELLOW, us_states("California") ],
[ vm_opponent_loses_badges, 1 ],
[ vm_return ],
]
@@ -1945,16 +1854,16 @@ CODE[81] = [ // Conservative Opposition
]
CODE[82] = [ // The SSWSC
- [ vm_requires_persistent, "Southern, Strategy" ],
+ [ vm_requires_persistent, find_card("Southern Strategy") ],
[ vm_receive_badges, 2 ],
[ vm_add_cubes_limit, 6, RED, region_us_states(SOUTH), 2 ],
[ vm_return ],
]
CODE[83] = [ // Western Saloons Push Suffrage Veto
- [ vm_requires_not_persistent, "Eighteenth, Amendment" ],
- [ vm_add_cubes, 2, RED, "Arizona" ],
- [ vm_add_cubes_in_each_of, 1, RED, ["New, Mexico",, "Nevada",, "Utah"] ],
+ [ vm_requires_not_persistent, find_card("Eighteenth Amendment") ],
+ [ vm_add_cubes, 2, RED, us_states("Arizona") ],
+ [ vm_add_cubes_in_each_of, 1, RED, us_states("New Mexico","Nevada","Utah") ],
[ vm_return ],
]
@@ -1965,7 +1874,7 @@ CODE[84] = [ // Transcontinental Railroad
]
CODE[85] = [ // White Supremacy and the Suffrage Movement
- [ vm_requires_persistent, "Southern, Strategy" ],
+ [ vm_requires_persistent, find_card("Southern Strategy") ],
[ vm_remove_all_up_to, YELLOW, 4 ],
[ vm_opponent_loses_badges, 2 ],
[ vm_return ],
@@ -1973,13 +1882,13 @@ CODE[85] = [ // White Supremacy and the Suffrage Movement
CODE[86] = [ // Senator John Weeks
[ vm_remove_congress, 1 ],
- [ vm_add_cubes, 2, RED, "New, Hampshire" ],
+ [ vm_add_cubes, 2, RED, us_states("New Hampshire") ],
[ vm_return ],
]
CODE[87] = [ // Senator “Cotton Ed” Smith
[ vm_remove_congress, 1 ],
- [ vm_add_cubes, 2, RED, "South, Carolina" ],
+ [ vm_add_cubes, 2, RED, us_states("South Carolina") ],
[ vm_return ],
]
@@ -2008,7 +1917,7 @@ CODE[91] = [ // The Eden Sphinx
]
CODE[92] = [ // Big Liquor’s Big Money
- [ vm_requires_not_persistent, "Eighteenth, Amendment" ],
+ [ vm_requires_not_persistent, find_card("Eighteenth Amendment") ],
[ vm_persistent, REST_OF_TURN ],
[ vm_todo ],
[ vm_return ],
@@ -2020,21 +1929,21 @@ CODE[93] = [ // Red Scare
]
CODE[94] = [ // Southern Women’s Rejection League
- [ vm_requires_persistent, "Southern, Strategy" ],
+ [ vm_requires_persistent, find_card("Southern Strategy") ],
[ vm_roll_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, "Southern, Strategy" ],
+ [ vm_requires_persistent, find_card("Southern Strategy") ],
[ vm_roll_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, "Eighteenth, Amendment" ],
+ [ vm_requires_persistent, find_card("Eighteenth Amendment") ],
[ vm_roll_d8 ],
[ vm_add_cubes_limit, ()=>(game.vm.die), RED, anywhere(), 2 ],
[ vm_return ],
@@ -2075,13 +1984,13 @@ CODE[102] = [ // Governor Clement’s Veto
CODE[103] = [ // Senator Henry Cabot Lodge
[ vm_remove_congress, 1 ],
- [ vm_add_cubes, 2, RED, "Massachusetts" ],
+ [ vm_add_cubes, 2, RED, us_states("Massachusetts") ],
[ vm_return ],
]
CODE[104] = [ // Senator William Borah
[ vm_remove_congress, 1 ],
- [ vm_add_cubes, 2, RED, "Utah" ],
+ [ vm_add_cubes, 2, RED, us_states("Utah") ],
[ vm_return ],
]
diff --git a/tools/gencards.py b/tools/gencards.py
index 87fd401..2cb04d0 100644
--- a/tools/gencards.py
+++ b/tools/gencards.py
@@ -9,7 +9,7 @@ cards = [None]
card = {
'id': 1,
'type': "",
- 'title': "",
+ 'name': "",
'era': "",
'text': [],
'attrs': {}
@@ -19,7 +19,7 @@ kv_pattern = r'<!--\s*(?P<key>[^:]+):\s*(?P<value>[^->]+)\s*-->'
file_format = "tools/{}_cards.md"
def flush():
- if card['title']:
+ if card['name']:
output = card.copy()
# Combine text into a single string
output['text'] = " ".join(output['text'])
@@ -35,10 +35,10 @@ def flush():
cards.append(output)
- # print("CARD {} - {}\n# {}\n".format(output['id'], output['title'], output['text']))
+ # print("CARD {} - {}\n# {}\n".format(output['id'], output['name'], output['text']))
# Reset card attributes for the next entry
- card['title'] = ""
+ card['name'] = ""
card['text'] = []
card['attrs'] = {}
card['id'] += 1
@@ -57,7 +57,7 @@ def read_cards(_card_type):
card['era'] = line[2:].strip()
elif line.startswith("## "):
flush()
- card['title'] = line[3:].strip()
+ card['name'] = line[3:].strip()
elif match := re.match(kv_pattern, line):
key = match.group('key').strip()
value = match.group('value').strip()
diff --git a/tools/gencode.js b/tools/gencode.js
index e2522e7..39c87bd 100644
--- a/tools/gencode.js
+++ b/tools/gencode.js
@@ -30,7 +30,9 @@ for (let line of fs.readFileSync("events.txt", "utf-8").split("\n")) {
continue
if (line === "EOF")
break
- line = line.split(" ")
+ // line = line.split(" ")
+ // split by spaces unless those spaces are within double quotes.
+ line = line.match(/(?:[^\s"]+|"[^"]*")+/g)
switch (line[0]) {
case "CARD":
if (first++) {