1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
|
# Note - must AND/OR take at least one of the choices?
# Versailles Cards
CARD 1 - Jules Ducatel
asm clear_undo()
if (game.round < 4)
asm log("Commune Objective:")
asm logi("C" + game.red_objective)
goto "reveal_commune_objective"
else
asm log("Commune hand:")
asm { for (let c of game.red_hand) logi("C" + c) }
goto "reveal_commune_hand"
endif
ops 1 MILITARY
CARD 2 - The Murder of Vincenzini
increase_revolutionary_momentum
prompt "Remove up to 3 from Political."
remove_up_to 3 POLITICAL
CARD 3 - Brassardiers
prompt "Replace 1 in Military where present."
replace 1 (where_present(MILITARY))
CARD 4 - Jules Ferry
prompt "Place up to 2 in Republicans or replace 1 in National Assembly."
switch ["place","replace"]
case "place"
prompt "Place up to 2 in Republicans."
place_up_to 2 REPUBLICANS
case "replace"
prompt "Replace 1 in National Assembly."
replace 1 NATIONAL_ASSEMBLY
endswitch
CARD 5 - Le Figaro
prompt "Place up to 2 in Press or replace 1 in Public Opinion."
switch ["place","replace"]
case "place"
prompt "Place up to 2 in Press."
place_up_to 2 PRESS
case "replace"
prompt "Replace 1 in Public Opinion."
replace 1 PUBLIC_OPINION
endswitch
CARD 6 - Général Louis Valentin
asm game.vm.count = 2
asm game.vm.spaces = where_present(PARIS)
if (can_vm_remove())
goto "general_louis_valentin"
endif
CARD 7 - Général Espivent
prompt "Remove up to 2 from Social Movements."
remove_up_to 2 SOCIAL_MOVEMENTS
CARD 8 - Les Amis de l'Ordre
# must place 2 in paris spaces
prompt "Place 2 in Paris."
place 2 PARIS
CARD 9 - Socialist Newspaper Ban
increase_revolutionary_momentum
prompt "Remove up to 2 from Press."
remove_up_to 2 PRESS
# forbid Le Reveil from being played
asm game.snb=1
CARD 10 - Fortification of Mont-Valérien
prompt "Place up to 1 in Mont-Valérien."
place_up_to 1 MONT_VALERIEN
# reassess control after placing the cube
asm update_presence_and_control()
if (is_control(MONT_VALERIEN))
prompt "You may place a Fortification in Mont-Valérien."
may_place_disc MONT_VALERIEN
endif
CARD 11 - Adolphe Thiers
increase_prussian_collaboration
prompt "Place up to 2 in Royalists."
place_up_to 2 ROYALISTS
CARD 12 - Otto von Bismarck
# must remove own cube from National Assembly
prompt "Remove 1 from National Assembly."
remove_own NATIONAL_ASSEMBLY
may_increase_prussian_collaboration
ops 2 MILITARY
CARD 13 - Général Ernest de Cissey
ops 4 FORT_D_ISSY
CARD 14 - Colonel de Lochner
# see https://boardgamegeek.com/thread/2820690/article/39550904#39550904
if (is_versailles_control(MONT_VALERIEN))
ops 3 BUTTE_MONTMARTRE
else
ops 3 MONT_VALERIEN
endif
CARD 15 - Jules Favre
increase_prussian_collaboration
prompt "Place up to 1 in Republicans"
place_up_to 1 REPUBLICANS
CARD 16 - Hostage Decree
prompt "Remove all from Catholic Church."
remove 20 CATHOLIC_CHURCH
CARD 17 - Maréchal Macmahon
ops 4 PARIS
# Commune Cards
CARD 18 - Paule Minck
prompt "Replace 1 in Military where present."
replace 1 (where_present(MILITARY))
CARD 19 - Walery Wroblewski
prompt "Place one Barricade in Paris where present."
place_disc (where_present(PARIS))
CARD 20 - Banque de France
# must decrease momentum
decrease_revolutionary_momentum
prompt "Place up to 1 in Paris."
place_up_to 1 PARIS
prompt "You may place a Barricade in Paris."
may_place_disc PARIS
CARD 21 - Le Réveil
# must not have played Socialist Newspaper Ban
may_increase_revolutionary_momentum
prompt "Place up to 1 in Press."
place_up_to 1 PRESS
CARD 22 - Execution of Generals
increase_prussian_collaboration
prompt "Replace up to 2 in Paris where present."
replace_up_to 2 (where_present(PARIS))
CARD 23 - Les Cantinières
prompt "Place up to 2 in Military where present (use removed cubes)."
place_removed_up_to 2 (where_present(MILITARY))
CARD 24 - Eugène Protot
ops 3 INSTITUTIONAL
CARD 25 - Paul Cluseret
ops 2 PARIS
CARD 26 - Gaston Crémieux
increase_revolutionary_momentum
prompt "Place up to 2 in Social Movements."
place_up_to 2 SOCIAL_MOVEMENTS
CARD 27 - Louise Michel
increase_revolutionary_momentum
prompt "Use 1 OP in Public Opinion or Paris."
switch ["public_opinion","paris"]
case "public_opinion"
ops 1 PUBLIC_OPINION
case "paris"
ops 1 PARIS
endswitch
CARD 28 - Jaroslav Dombrowski
prompt "Place up to 1 in Paris."
place_up_to 1 PARIS
prompt "You may place a Barricade in Paris."
may_place_disc PARIS
CARD 29 - Raoul Rigault
increase_revolutionary_momentum
prompt "Move up to 2 from Catholic Church to Paris."
move_up_to 2 CATHOLIC_CHURCH PARIS
CARD 30 - Karl Marx
asm init_karl_marx()
goto "karl_marx_discard"
CARD 31 - Blanquists
increase_revolutionary_momentum
ops 2 MILITARY
CARD 32 - Général Lullier
ops 4 CHATEAU_DE_VINCENNES
CARD 33 - Jules Vallès
increase_revolutionary_momentum
ops 2 PUBLIC_OPINION
CARD 34 - Charles Delescluze
ops 3 MILITARY
ops 1 POLITICAL
# Neutral Cards
CARD 35 - Conciliation
prompt "Move up to 2 from Public Opinion or Paris."
switch ["public_opinion","paris"]
case "public_opinion"
prompt "Move up to 2 from Public Opinion to Paris."
move_up_to 2 PUBLIC_OPINION PARIS
case "paris"
prompt "Move up to 2 from Paris to Public Opinion."
move_up_to 2 PARIS PUBLIC_OPINION
endswitch
CARD 36 - Georges Clemenceau
prompt "Move up to 3 from Paris to Institutional."
move_up_to 3 PARIS INSTITUTIONAL
CARD 37 - Archbishop Georges Darboy
prompt "Move up to 4 from any spaces to Catholic Church."
move_up_to 4 ANY CATHOLIC_CHURCH
CARD 38 - Victor Hugo
# must have initiative
# must decrease both player momentums
decrease_revolutionary_momentum
decrease_prussian_collaboration
ops 4 PUBLIC_OPINION
CARD 39 - Léon Gambetta
# must have initiative
prompt "Replace up to 1 in Institutional."
replace_up_to 1 INSTITUTIONAL
if (game.active === COMMUNE)
may_decrease_prussian_collaboration
else
may_decrease_revolutionary_momentum
endif
CARD 40 - Elihu Washburne
# must have initiative
if (game.active === COMMUNE)
increase_revolutionary_momentum
else
increase_prussian_collaboration
endif
ops 2 INSTITUTIONAL
CARD 41 - Freemason Parade
# must have initiative
goto "freemason_parade"
prompt "Remove a cube from both factions."
remove_own (game.vm.freemason_parade)
remove 1 (game.vm.freemason_parade)
prompt "Place up to 2 or replace 1 in Institutional."
switch ["place","replace"]
case "place"
prompt "Place up to 2 in Institutional."
place_up_to 2 INSTITUTIONAL
case "replace"
prompt "Replace 1 in Institutional."
replace 1 INSTITUTIONAL
endswitch
# Objective Cards
CARD 42 - Paris Cannons
if (can_advance_momentum())
prompt "Use 3 OP in Paris or increase your Player Momentum."
switch ["momentum","ops"]
case "momentum"
if (game.active === COMMUNE)
increase_revolutionary_momentum
else
increase_prussian_collaboration
endif
case "ops"
ops 3 PARIS
endswitch
else
ops 3 PARIS
endif
CARD 43 - Aux Barricades!
ops 2 PARIS
if (game.active === COMMUNE)
prompt "You may place a Barricade in Butte-aux-Cailles."
may_place_disc BUTTE_AUX_CAILLES
endif
CARD 44 - Commune's Stronghold
prompt "Use 2 OP in Military or remove 1 from any space."
switch ["ops","remove"]
case "ops"
ops 2 MILITARY
case "remove"
prompt "Remove 1 from any space."
remove 1 ANY
endswitch
CARD 45 - Fighting in Issy Village
ops 2 FORTS
if (game.active === VERSAILLES)
prompt "You may place a Fortification in Fort d'Issy."
may_place_disc FORT_D_ISSY
endif
CARD 46 - Battle of Mont-Valérien
ops 3 FORTS
if (game.active === COMMUNE)
may_decrease_prussian_collaboration
else
may_increase_prussian_collaboration
endif
CARD 47 - Raid on Château de Vincennes
prompt "Use 2 OP in Military or remove 1 from any space."
switch ["ops","remove"]
case "ops"
ops 2 MILITARY
case "remove"
remove 1 ANY
endswitch
CARD 48 - Revolution in the Press
prompt "Use 3 OP in Public Opinion or replace 1 in any space."
switch ["ops","replace"]
case "ops"
ops 3 PUBLIC_OPINION
case "replace"
replace 1 ANY
endswitch
CARD 49 - Pius IX
prompt "Replace in 2 different Political or remove 1 from any space."
switch ["replace","remove"]
case "replace"
asm game.vm.count = 2
asm game.vm.spaces = POLITICAL.slice()
if (can_vm_replace())
goto "pius_ix"
endif
endif
case "remove"
remove 1 ANY
endswitch
CARD 50 - Socialist International
ops 2 PUBLIC_OPINION
if (game.active === COMMUNE)
may_increase_revolutionary_momentum
else
may_decrease_revolutionary_momentum
endif
CARD 51 - Royalists Dissension
prompt "Use 2 OP in Institutional or remove 1 from any space."
switch ["ops","remove"]
case "ops"
ops 2 INSTITUTIONAL
case "remove"
remove 1 ANY
endswitch
CARD 52 - Rise of Republicanism
prompt "Use 3 OP in Institutional or replace 1 in Military."
switch ["ops","replace"]
case "ops"
ops 3 INSTITUTIONAL
case "replace"
replace 1 MILITARY
endswitch
CARD 53 - Legitimacy
ops 3 POLITICAL
if (game.active === COMMUNE)
may_increase_revolutionary_momentum
else
may_increase_prussian_collaboration
endif
# C3i Censorship Cards
CARD 54 - Louis Rossel
prompt "Move up to all cubes in Forts or Paris."
switch ["forts","paris"]
case "forts"
move_within FORTS
case "paris"
move_within PARIS
endswitch
# forbid General Lullier from being played
asm game.louis_rossel=1
CARD 55 - Gustave Flourens
increase_revolutionary_momentum
prompt "Move up to 1 from Public Opinion to Military."
move_up_to 1 PUBLIC_OPINION MILITARY
CARD 56 - Jean-Baptiste Clément
prompt "Place up to 2 in Public Opinion (use removed cubes)."
place_removed_up_to 2 PUBLIC_OPINION
CARD 57 - Elizabeth Dimitrieff
asm clear_undo()
asm game.red_hand.push(draw_strategy_card())
asm game.red_hand.push(draw_strategy_card())
asm game.vm.count = 2
goto "elizabeth_dimitrieff_discard"
CARD 58 - Paris Bombarded
asm init_paris_bombarded()
goto "paris_bombarded"
CARD 59 - Général Gallifet
prompt "Remove up to 3 in Paris where present."
remove_up_to 3 (where_present(PARIS))
asm add_political_vp(VERSAILLES, -1)
CARD 60 - Sapper Tactics
prompt "Remove one Barricade where present."
remove_disc (where_present(ANY))
CARD 61 - Georges Vaysset
asm log("Commune hand:")
if (game.red_hand.length > 0)
asm clear_undo()
asm { for (let c of game.red_hand) logi("C" + c) }
goto "georges_vaysset"
else
asm { logi("Empty") }
endif
CARD 62 - Colonne Vendôme
# must have initiative
if (game.active === COMMUNE)
decrease_prussian_collaboration
else
decrease_revolutionary_momentum
endif
prompt "Replace up to 1 in Institutional."
replace_up_to 1 INSTITUTIONAL
CARD 63 - Versailles' Left
# must have initiative
prompt "Replace up to 1 in Republicans."
replace_up_to 1 REPUBLICANS
asm update_presence_and_control()
asm game.versailles_left = game.active
if (has_commune_cube(RED_BONUS_CUBES[2]))
if (game.active === COMMUNE && is_commune_control(REPUBLICANS))
goto "versailles_left"
endif
if (game.active === VERSAILLES && is_versailles_control(REPUBLICANS))
goto "versailles_left"
endif
endif
|