diff --git a/output/heron/001.svg b/output/heron/001.svg
index b372e41..99fb445 100644
--- a/output/heron/001.svg
+++ b/output/heron/001.svg
@@ -22,35 +22,41 @@
8
+Piochez une carte.
+
+
5
-
-
-Piochez une carte.
-
-
+
+
+
+
+
+
+
+
6
-
+
-
-
+
+
-
-
+
+
-
-6
+
+6
-
+
Garde
-
+
diff --git a/output/heron/002.svg b/output/heron/002.svg
index 6721eea..da0228b 100644
--- a/output/heron/002.svg
+++ b/output/heron/002.svg
@@ -22,31 +22,32 @@
3
-
-5
++ x pour chaque Champion que vous avez en jeu
-2
+5
-
-
-
+
+
+
+
+
6
-
+
-
-
+
+
-
+
diff --git a/output/heron/003.svg b/output/heron/003.svg
index 214f883..8bfb94a 100644
--- a/output/heron/003.svg
+++ b/output/heron/003.svg
@@ -22,25 +22,28 @@
5
+Piochez une carte.
+
+
3
-
+
2
-
+
4
-
-Piochez une carte.
-
-
-
+
+
+
+
+
-
+
diff --git a/output/heron/004.svg b/output/heron/004.svg
index 17cea70..7f7f8e4 100644
--- a/output/heron/004.svg
+++ b/output/heron/004.svg
@@ -22,27 +22,30 @@
4
+
+
+
3
-
+
4
-
+
-
-
-
+
+
+
-
+
-
-5
+
+5
-
-
+
+
diff --git a/output/heron/005.svg b/output/heron/005.svg
index 638f992..0812361 100644
--- a/output/heron/005.svg
+++ b/output/heron/005.svg
@@ -22,26 +22,32 @@
7
+Piochez une carte.
+
+
6
-
+
6
-
-Piochez une carte.
-
-
-
+
+
+
+
+
+prepare
+
+
-prepare
+
-
-
+
+
diff --git a/output/heron/006.svg b/output/heron/006.svg
index 8ad1824..204adff 100644
--- a/output/heron/006.svg
+++ b/output/heron/006.svg
@@ -22,35 +22,41 @@
5
+
+
+
2
-
+
3
-
-
-
-
-
-
+
+
+
+
+
+
+Piochez une carte.
+
+
-Piochez une carte.
+
-
-
+
+
-
-5
+
+5
-
+
Garde
-
+
diff --git a/output/heron/007.svg b/output/heron/007.svg
index 51507eb..b9f9c78 100644
--- a/output/heron/007.svg
+++ b/output/heron/007.svg
@@ -22,33 +22,34 @@
6
+Piochez une carte.
+
+
2
-
-
-Piochez une carte.
-
-
-
-2
+
+
+
++ x pour chaque Champion que vous avez en jeu
+
+
-
-
+
-
-
+
+
-
-6
+
+6
-
-
+
+
diff --git a/output/heron/008.svg b/output/heron/008.svg
index b2a819a..949e0fe 100644
--- a/output/heron/008.svg
+++ b/output/heron/008.svg
@@ -22,18 +22,16 @@
3
-
-2
++ x pour chaque autre Garde que vous avez en jeu
-1
+2
-
-
-
+
+
diff --git a/output/heron/009.svg b/output/heron/009.svg
index bc13dcc..a448241 100644
--- a/output/heron/009.svg
+++ b/output/heron/009.svg
@@ -22,18 +22,16 @@
4
-
-3
++ x None
-1
+3
-
-
-
+
+
diff --git a/output/heron/010.svg b/output/heron/010.svg
index dd0505a..d9d5fe9 100644
--- a/output/heron/010.svg
+++ b/output/heron/010.svg
@@ -22,26 +22,32 @@
4
+
+
+
5
-
+
5
-
-
-
-
-
+
+
+
+
+
+prepare
+
+
-prepare
+
-
-
+
+
diff --git a/output/heron/011.svg b/output/heron/011.svg
index 8b435e0..e89ceb0 100644
--- a/output/heron/011.svg
+++ b/output/heron/011.svg
@@ -22,36 +22,37 @@
2
++ x pour chaque Champion que vous avez en jeu
+
+
2
-
+
3
-
-
-1
-
-
-
-
-
+
+
+
+
+
+
1
-
+
-
-
+
+
-
+
diff --git a/output/heron/012.svg b/output/heron/012.svg
index 3c3d756..8990622 100644
--- a/output/heron/012.svg
+++ b/output/heron/012.svg
@@ -22,18 +22,16 @@
2
++ x pour chaque Champion que vous avez en jeu
+
+
1
-
-
-1
-
-
-
-
+
+
diff --git a/output/heron/013.svg b/output/heron/013.svg
index aa6978b..8806b83 100644
--- a/output/heron/013.svg
+++ b/output/heron/013.svg
@@ -22,26 +22,32 @@
1
+
+
+
2
-
-
-
-
+
+
+
+
+
+
+
6
-
+
-
-
+
+
-
-
+
+
diff --git a/output/heron/014.svg b/output/heron/014.svg
index b28a7da..02c2cc9 100644
--- a/output/heron/014.svg
+++ b/output/heron/014.svg
@@ -22,32 +22,41 @@
6
-Piochez deux cartes.
+Piochez deux cartes.
-
-5
+
-
-
-
+
5
-
-
+
+
+
+
+
+
+
+5
+
+
+
+
+
+
-
-
-
+
+
+
diff --git a/output/heron/015.svg b/output/heron/015.svg
index 197d092..5a92766 100644
--- a/output/heron/015.svg
+++ b/output/heron/015.svg
@@ -22,24 +22,27 @@
6
+
+
+
4
-
+
-
-
+
+
-
+
-
-6
+
+6
-
+
Garde
-
+
diff --git a/output/heron/016.svg b/output/heron/016.svg
index b9b4d79..8d16890 100644
--- a/output/heron/016.svg
+++ b/output/heron/016.svg
@@ -22,21 +22,27 @@
3
+
+
+
3
-
-
-
-
+
+
+
+
+stack_next_action_bought
+
+
-stack_next_action_bought
+
-
-
+
+
diff --git a/output/heron/017.svg b/output/heron/017.svg
index bf3e9e7..9512897 100644
--- a/output/heron/017.svg
+++ b/output/heron/017.svg
@@ -22,21 +22,27 @@
3
+Piochez une carte.
+
+
1
-
-Piochez une carte.
-
-
+
+
+
+
+Assomez le champion ciblé.
+
+
-Assomez le champion ciblé.
+
-
-
+
+
diff --git a/output/heron/018.svg b/output/heron/018.svg
index bf4adf0..66acf22 100644
--- a/output/heron/018.svg
+++ b/output/heron/018.svg
@@ -22,21 +22,27 @@
5
+Piochez une carte.
+
+
2
-
-Piochez une carte.
-
-
+
+
+
+
+Mettez dans votre main la prochaine cartedont vous faites l'acquisition.
+
+
-Mettez dans votre main la prochaine carte dont vous faites l'acquisition.
+
-
-
+
+
diff --git a/output/heron/019.svg b/output/heron/019.svg
index e18fc58..57c44a0 100644
--- a/output/heron/019.svg
+++ b/output/heron/019.svg
@@ -22,26 +22,32 @@
8
+Assomez le champion ciblé. Piochez une carte.
+
+
8
-
-Assomez le champion ciblé. Piochez une carte.
-
-
+
+
+
+
+
+
+
5
-
+
-
-
+
+
-
-
+
+
diff --git a/output/heron/020.svg b/output/heron/020.svg
index 7cd9029..49f4610 100644
--- a/output/heron/020.svg
+++ b/output/heron/020.svg
@@ -22,21 +22,27 @@
4
+
+
+
7
-
-
-
-
+
+
+
+
+Assomez le champion ciblé.
+
+
-Assomez le champion ciblé.
+
-
-
+
+
diff --git a/output/heron/021.svg b/output/heron/021.svg
index 5416c33..d6b5189 100644
--- a/output/heron/021.svg
+++ b/output/heron/021.svg
@@ -22,26 +22,32 @@
2
+
+
+
5
-
-
-
-
+
+
+
+
+
+
+
2
-
+
-
-
+
+
-
-
+
+
diff --git a/output/heron/022.svg b/output/heron/022.svg
index f74908d..71c9d5c 100644
--- a/output/heron/022.svg
+++ b/output/heron/022.svg
@@ -22,35 +22,41 @@
5
+
+
+
3
-
-
-
-
-
+
+
+
+
+
+
+
+
4
-
+
-
-
+
+
-
-
+
+
-
-3
+
+3
-
+
Garde
-
+
diff --git a/output/heron/023.svg b/output/heron/023.svg
index 3c67e6e..938ea6b 100644
--- a/output/heron/023.svg
+++ b/output/heron/023.svg
@@ -22,30 +22,36 @@
5
+
+
+
3
-
-
-
-
-
+
+
+
+
+
+Piochez une carte.
+
+
-Piochez une carte.
+
-
-
+
+
-
-5
+
+5
-
+
Garde
-
+
diff --git a/output/heron/024.svg b/output/heron/024.svg
index 8222cac..35f99db 100644
--- a/output/heron/024.svg
+++ b/output/heron/024.svg
@@ -22,26 +22,32 @@
1
+
+
+
2
-
-
-
-
+
+
+
+
+
+
+
4
-
+
-
-
+
+
-
-
+
+
diff --git a/output/heron/025.svg b/output/heron/025.svg
index 79e3903..1ae193b 100644
--- a/output/heron/025.svg
+++ b/output/heron/025.svg
@@ -22,22 +22,25 @@
7
+Assomez le champion ciblé.
+
+
4
-
+
-Assomez le champion ciblé.
-
+
+
-
+
-
-7
+
+7
-
-
+
+
diff --git a/output/heron/026.svg b/output/heron/026.svg
index d5bc32b..2259bc2 100644
--- a/output/heron/026.svg
+++ b/output/heron/026.svg
@@ -22,28 +22,34 @@
4
+
+
+
2
-
-
-
-
-
+
+
+
+
+
+Mettez la prochaine carte dont vous faites l'acquisitionau dessus de votre pioche.
+
+
-Mettez la prochaine carte dont vous faites l'acquisitionau dessus de votre pioche.
+
-
-
+
+
-
-5
+
+5
-
-
+
+
diff --git a/output/heron/027.svg b/output/heron/027.svg
index af0fa73..57501b5 100644
--- a/output/heron/027.svg
+++ b/output/heron/027.svg
@@ -22,15 +22,18 @@
6
+restack_discarded_card
+
+
6
-
-restack_discarded_card
-
+
+
+
-
+
diff --git a/output/heron/028.svg b/output/heron/028.svg
index 7e56365..b5f10c1 100644
--- a/output/heron/028.svg
+++ b/output/heron/028.svg
@@ -22,27 +22,30 @@
3
+
+
+
1
-
+
2
-
+
-
-
-
+
+
+
-
+
-
-4
+
+4
-
-
+
+
diff --git a/output/heron/029.svg b/output/heron/029.svg
index 53b1023..a4db20d 100644
--- a/output/heron/029.svg
+++ b/output/heron/029.svg
@@ -22,38 +22,44 @@
3
+
+
+
1
-
+
1
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
4
-
+
-
-
+
+
-
-
+
+
-
-4
+
+4
-
-
+
+
diff --git a/output/heron/030.svg b/output/heron/030.svg
index dd39292..e91c0fd 100644
--- a/output/heron/030.svg
+++ b/output/heron/030.svg
@@ -22,21 +22,27 @@
4
+
+
+
7
-
-
-
-
+
+
+
+
+Piochez une carte.
+
+
-Piochez une carte.
+
-
-
+
+
diff --git a/output/heron/031.svg b/output/heron/031.svg
index 4b2128f..9d832a8 100644
--- a/output/heron/031.svg
+++ b/output/heron/031.svg
@@ -22,26 +22,32 @@
5
+Vous pouvez sacrifier une carte de votre mainou de votre défausse.
+
+
3
-
-Vous pouvez sacrifier une carte de votre main ou de votre défausse.
-
-
+
+
+
+
+
+
+
6
-
+
-
-
+
+
-
-
+
+
diff --git a/output/heron/032.svg b/output/heron/032.svg
index a923a82..3ca157b 100644
--- a/output/heron/032.svg
+++ b/output/heron/032.svg
@@ -22,24 +22,27 @@
2
+
+
+
2
-
+
-
-
+
+
-
+
-
-3
+
+3
-
+
Garde
-
+
diff --git a/output/heron/033.svg b/output/heron/033.svg
index 436929a..2c33b83 100644
--- a/output/heron/033.svg
+++ b/output/heron/033.svg
@@ -22,26 +22,32 @@
1
+Vous pouvez sacrifier une carte de votre mainou de votre défausse.
+
+
2
-
-Vous pouvez sacrifier une carte de votre main ou de votre défausse.
-
-
+
+
+
+
+
+
+
2
-
+
-
-
+
+
-
-
+
+
diff --git a/output/heron/034.svg b/output/heron/034.svg
index 56bc27b..88afa49 100644
--- a/output/heron/034.svg
+++ b/output/heron/034.svg
@@ -22,28 +22,34 @@
4
+
+
+
3
-
-
-
-
-
+
+
+
+
+
+Piochez une carte.
+
+
-Piochez une carte.
+
-
-
+
+
-
-4
+
+4
-
-
+
+
diff --git a/output/heron/035.svg b/output/heron/035.svg
index b8349ee..9c88aa3 100644
--- a/output/heron/035.svg
+++ b/output/heron/035.svg
@@ -22,26 +22,32 @@
2
+
+
+
3
-
-
-
-
+
+
+
+
+
+
+
3
-
+
-
-
+
+
-
-
+
+
diff --git a/output/heron/036.svg b/output/heron/036.svg
index 9acffae..8547655 100644
--- a/output/heron/036.svg
+++ b/output/heron/036.svg
@@ -22,22 +22,25 @@
7
+Vous pouvez sacrifier une carte de votre mainou de votre défausse.
+
+
3
-
+
-Vous pouvez sacrifier une carte de votre main ou de votre défausse.
-
+
+
-
+
-
-6
+
+6
-
-
+
+
diff --git a/output/heron/037.svg b/output/heron/037.svg
index 19f90d4..dd32c1b 100644
--- a/output/heron/037.svg
+++ b/output/heron/037.svg
@@ -22,21 +22,27 @@
6
+Vous pouvez sacrifier une carte de votre mainou de votre défausse.
+
+
8
-
-Vous pouvez sacrifier une carte de votre main ou de votre défausse.
-
-
+
+
+
+
+Piochez une carte.
+
+
-Piochez une carte.
+
-
-
+
+
diff --git a/output/heron/038.svg b/output/heron/038.svg
index 59dcf86..7c55c9c 100644
--- a/output/heron/038.svg
+++ b/output/heron/038.svg
@@ -22,24 +22,27 @@
6
+Vous pouvez sacrifier une carte de votre mainou de votre défausse.
+
+
2
-
+
-Vous pouvez sacrifier une carte de votre main ou de votre défausse.
-
+
+
-
+
-
-5
+
+5
-
+
Garde
-
+
diff --git a/output/heron/039.svg b/output/heron/039.svg
index 2b4a909..701620f 100644
--- a/output/heron/039.svg
+++ b/output/heron/039.svg
@@ -22,26 +22,32 @@
3
+Vous pouvez sacrifier une carte de votre mainou de votre défausse.
+
+
4
-
-Vous pouvez sacrifier une carte de votre main ou de votre défausse.
-
-
+
+
+
+
+
+
+
3
-
+
-
-
+
+
-
-
+
+
diff --git a/output/heron/040.svg b/output/heron/040.svg
index 5e1f5a4..d8c8f9e 100644
--- a/output/heron/040.svg
+++ b/output/heron/040.svg
@@ -22,30 +22,36 @@
8
+Vous pouvez sacrifier une carte de votre mainou de votre défausse.
+
+
4
-
-
-Vous pouvez sacrifier une carte de votre main ou de votre défausse.
-
-
+
+
+
+
+
+Piochez une carte.
+
+
-Piochez une carte.
+
-
-
+
+
-
-6
+
+6
-
+
Garde
-
+
diff --git a/output/heron/041.svg b/output/heron/041.svg
index 9c53860..aef68d2 100644
--- a/output/heron/041.svg
+++ b/output/heron/041.svg
@@ -22,23 +22,29 @@
5
-
-Mettez un champion de votre défausse au dessus de votre pioche.
+Mettez un champion de votre défausseau dessus de votre pioche.
+
+
+
+
+Piochez une carte.
+
+
-Piochez une carte.
+
-
-
+
+
-
-3
+
+3
-
-
+
+
diff --git a/output/heron/042.svg b/output/heron/042.svg
index 5557a12..f44fb57 100644
--- a/output/heron/042.svg
+++ b/output/heron/042.svg
@@ -22,28 +22,34 @@
4
+
+
+
2
-
-
-
-
-
+
+
+
+
+
+L'adversaire ciblé se défausse d'une carte.
+
+
-L'adversaire ciblé se défausse d'une carte
+
-
-
+
+
-
-6
+
+6
-
-
+
+
diff --git a/output/heron/043.svg b/output/heron/043.svg
index def8204..e23fe28 100644
--- a/output/heron/043.svg
+++ b/output/heron/043.svg
@@ -22,28 +22,34 @@
6
+
+
+
5
-
-
-
-
-
+
+
+
+
+
+Piochez une carte.
+
+
-Piochez une carte.
+
-
-
+
+
-
-6
+
+6
-
-
+
+
diff --git a/output/heron/044.svg b/output/heron/044.svg
index 8d3a2bf..d2b6a4d 100644
--- a/output/heron/044.svg
+++ b/output/heron/044.svg
@@ -22,35 +22,41 @@
5
+
+
+
3
-
-
-
-
-
+
+
+
+
+
+
+
+
4
-
+
-
-
+
+
-
-
+
+
-
-5
+
+5
-
+
Garde
-
+
diff --git a/output/heron/045.svg b/output/heron/045.svg
index 34c08ec..9cc8394 100644
--- a/output/heron/045.svg
+++ b/output/heron/045.svg
@@ -22,26 +22,32 @@
3
+L'adversaire ciblé se défausse d'une carte.
+
+
6
-
-L'adversaire ciblé se défausse d'une carte
-
-
+
+
+
+
+
+
+
3
-
+
-
-
+
+
-
-
+
+
diff --git a/output/heron/046.svg b/output/heron/046.svg
index 4b8cd63..259738c 100644
--- a/output/heron/046.svg
+++ b/output/heron/046.svg
@@ -22,26 +22,32 @@
2
+Vous pouvez piocher une carte.Si vous faites ainsi, défaussez vous d'une carte.
+
+
2
-
-Vous pouvez piocher une carte.Si vous faites ainsi, défaussez vous d'une carte.
-
-
+
+
+
+
+
+
+
4
-
+
-
-
+
+
-
-
+
+
diff --git a/output/heron/047.svg b/output/heron/047.svg
index 4e7b5db..c4c0f0f 100644
--- a/output/heron/047.svg
+++ b/output/heron/047.svg
@@ -22,30 +22,36 @@
8
+Vous pouvez piocher une carte.Si vous faites ainsi, défaussez vous d'une carte.
+
+
6
-
-
-Vous pouvez piocher une carte.Si vous faites ainsi, défaussez vous d'une carte.
-
-
+
+
+
+
+
+Vous pouvez piocher une carte.Si vous faites ainsi, défaussez vous d'une carte.
+
+
-Vous pouvez piocher une carte.Si vous faites ainsi, défaussez vous d'une carte.
+
-
-
+
+
-
-7
+
+7
-
+
Garde
-
+
diff --git a/output/heron/048.svg b/output/heron/048.svg
index 9a1c20a..2cb419b 100644
--- a/output/heron/048.svg
+++ b/output/heron/048.svg
@@ -22,27 +22,36 @@
4
+
+
+
4
-
-
-
-
-
-L'adversaire ciblé se défausse d'une carte
+
+
+L'adversaire ciblé se défausse d'une carte.
+
+
+
+
+
+
+L'adversaire ciblé se défausse d'une carte.
+
+
-L'adversaire ciblé se défausse d'une carte
+
-
-
-
+
+
+
diff --git a/output/heron/049.svg b/output/heron/049.svg
index cb86c24..4c2e020 100644
--- a/output/heron/049.svg
+++ b/output/heron/049.svg
@@ -22,30 +22,36 @@
3
+
+
+
2
-
-
-
-
-
+
+
+
+
+
+Piochez une carte.
+
+
-Piochez une carte.
+
-
-
+
+
-
-3
+
+3
-
+
Garde
-
+
diff --git a/output/heron/050.svg b/output/heron/050.svg
index 8d005dd..2a21c95 100644
--- a/output/heron/050.svg
+++ b/output/heron/050.svg
@@ -22,15 +22,18 @@
6
+Vous pouvez piocher une carte.Si vous faites ainsi, défaussez vous d'une carte.
+
+
6
-
-Vous pouvez piocher une carte.Si vous faites ainsi, défaussez vous d'une carte.
-
+
+
+
-
+
diff --git a/output/heron/051.svg b/output/heron/051.svg
index 9e91f36..add17b5 100644
--- a/output/heron/051.svg
+++ b/output/heron/051.svg
@@ -22,24 +22,27 @@
7
+L'adversaire ciblé se défausse d'une carte.
+
+
4
-
+
-L'adversaire ciblé se défausse d'une carte
-
+
+
-
+
-
-7
+
+7
-
+
Garde
-
+
diff --git a/output/heron/052.svg b/output/heron/052.svg
index 11c48fe..13725ff 100644
--- a/output/heron/052.svg
+++ b/output/heron/052.svg
@@ -22,26 +22,32 @@
1
+L'adversaire ciblé se défausse d'une carte.
+
+
3
-
-L'adversaire ciblé se défausse d'une carte
-
-
+
+
+
+
+
+
+
2
-
+
-
-
+
+
-
-
+
+
diff --git a/output/heron/053.svg b/output/heron/053.svg
index 08dae03..dc43288 100644
--- a/output/heron/053.svg
+++ b/output/heron/053.svg
@@ -22,21 +22,27 @@
5
+L'adversaire ciblé se défausse d'une carte.
+
+
8
-
-L'adversaire ciblé se défausse d'une carte
-
-
+
+
+
+
+L'adversaire ciblé se défausse d'une carte.
+
+
-L'adversaire ciblé se défausse d'une carte
+
-
-
+
+
diff --git a/output/heron/054.svg b/output/heron/054.svg
index 68141b2..1bd5e5c 100644
--- a/output/heron/054.svg
+++ b/output/heron/054.svg
@@ -22,18 +22,16 @@
2
-
-2
++ x pour chaque autre x que vous avez en jeu
-1
+2
-
-
-
+
+
diff --git a/output/heron/055.svg b/output/heron/055.svg
index d016f90..9409bf2 100644
--- a/output/heron/055.svg
+++ b/output/heron/055.svg
@@ -22,26 +22,32 @@
2
+
+
+
2
-
-
-
-
+
+
+
+
+
+
+
3
-
+
-
-
+
+
-
-
+
+
diff --git a/output/heron/056.svg b/output/heron/056.svg
index cf609d2..6e89751 100644
--- a/output/heron/056.svg
+++ b/output/heron/056.svg
@@ -18,15 +18,18 @@
+
+
+
1
-
-
-
+
+
+
-
+
diff --git a/output/heron/057.svg b/output/heron/057.svg
index b443f18..4118dd8 100644
--- a/output/heron/057.svg
+++ b/output/heron/057.svg
@@ -18,15 +18,18 @@
+
+
+
2
-
-
-
+
+
+
-
+
diff --git a/output/heron/058.svg b/output/heron/058.svg
index 43f8984..7f7d792 100644
--- a/output/heron/058.svg
+++ b/output/heron/058.svg
@@ -18,15 +18,18 @@
+
+
+
1
-
-
-
+
+
+
-
+
diff --git a/output/heron/059.svg b/output/heron/059.svg
index ec908c4..6695c79 100644
--- a/output/heron/059.svg
+++ b/output/heron/059.svg
@@ -18,15 +18,18 @@
+
+
+
2
-
-
-
+
+
+
-
+
diff --git a/output/heron/060.svg b/output/heron/060.svg
index 6f03291..a71ed2b 100644
--- a/output/heron/060.svg
+++ b/output/heron/060.svg
@@ -22,21 +22,27 @@
7
+Mettez dans votre main la prochaine cartedont vous faites l'acquisition.
+
+
3
-
-Mettez dans votre main la prochaine carte dont vous faites l'acquisition.
-
-
+
+
+
+
+Piochez une carte.
+
+
-Piochez une carte.
+
-
-
+
+
diff --git a/output/heron/061.svg b/output/heron/061.svg
index c8f95ac..e6823a9 100644
--- a/output/heron/061.svg
+++ b/output/heron/061.svg
@@ -22,16 +22,22 @@
3
-L'adversaire ciblé se défausse d'une carte restack_discarded_card
+L'adversaire ciblé se défausse d'une carte. restack_discarded_card
+
+
+
+Piochez une carte.
+
+
-Piochez une carte.
+
-
-
+
+
diff --git a/output/heron/062.svg b/output/heron/062.svg
index 222dc3b..8b5e7e4 100644
--- a/output/heron/062.svg
+++ b/output/heron/062.svg
@@ -22,26 +22,32 @@
8
+Piochez deux cartes.
+
+
5
-
+
5
-
-Piochez deux cartes.
-
-
-
+
+
+
+
+
+prepare_all_champions
+
+
-prepare_all_champions
+
-
-
+
+
diff --git a/output/heron/063.svg b/output/heron/063.svg
index 23b250d..97e1239 100644
--- a/output/heron/063.svg
+++ b/output/heron/063.svg
@@ -22,21 +22,27 @@
3
+cheaper_champions_passive
+
+
3
-
-cheaper_champions_passive
-
-
+
+
+
+
+control_opposing_champion_passive
+
+
-control_opposing_champion_passive
+
-
-
+
+
diff --git a/output/heron/064.svg b/output/heron/064.svg
index 3f993e6..a21146e 100644
--- a/output/heron/064.svg
+++ b/output/heron/064.svg
@@ -22,18 +22,16 @@
2
++ x None
+
+
2
-
-
-1
-
-
-
-
+
+
diff --git a/output/heron/065.svg b/output/heron/065.svg
index 967133e..2091f9d 100644
--- a/output/heron/065.svg
+++ b/output/heron/065.svg
@@ -22,22 +22,25 @@
4
+damage_all_champions
+
+
2
-
+
-damage_all_champions
-
+
+
-
+
-
-5
+
+5
-
-
+
+
diff --git a/output/heron/066.svg b/output/heron/066.svg
index b314701..388ad28 100644
--- a/output/heron/066.svg
+++ b/output/heron/066.svg
@@ -22,24 +22,27 @@
5
+restack_discarded_action
+
+
3
-
+
-restack_discarded_action
-
+
+
-
+
-
-4
+
+4
-
+
Garde
-
+
diff --git a/output/heron/067.svg b/output/heron/067.svg
index fafe9d7..656c437 100644
--- a/output/heron/067.svg
+++ b/output/heron/067.svg
@@ -22,13 +22,11 @@
3
-
-2
++ x pour chaque Champion x que vous avez en jeu
-
-
+
diff --git a/output/heron/068.svg b/output/heron/068.svg
index 909a62c..94551d8 100644
--- a/output/heron/068.svg
+++ b/output/heron/068.svg
@@ -22,21 +22,27 @@
3
-buy_for_free
+buy_for_free
+
+
+
+
+
+
6
-
+
-
-
+
+
-
-
+
+
diff --git a/output/heron/069.svg b/output/heron/069.svg
index 414e1dc..cad0596 100644
--- a/output/heron/069.svg
+++ b/output/heron/069.svg
@@ -22,21 +22,27 @@
7
+damage_all_champions Piochez une carte.
+
+
7
-
-damage_all_champions Piochez une carte.
-
-
+
+
+
+
+Vous pouvez sacrifier une carte de votre mainou de votre défausse.
+
+
-Vous pouvez sacrifier une carte de votre main ou de votre défausse.
+
-
-
+
+
diff --git a/output/heron/070.svg b/output/heron/070.svg
index 5aac267..ceef7df 100644
--- a/output/heron/070.svg
+++ b/output/heron/070.svg
@@ -22,15 +22,18 @@
7
+discard_x_and_draw_x
+
+
7
-
-discard_x_and_draw_x
-
+
+
+
-
+
diff --git a/output/heron/071.svg b/output/heron/071.svg
index 46b9df7..a221d58 100644
--- a/output/heron/071.svg
+++ b/output/heron/071.svg
@@ -22,15 +22,18 @@
2
+Assomez le champion ciblé.
+
+
4
-
-Assomez le champion ciblé.
-
+
+
+
-
+
diff --git a/output/heron/072.svg b/output/heron/072.svg
index eff76c2..b24368b 100644
--- a/output/heron/072.svg
+++ b/output/heron/072.svg
@@ -22,30 +22,36 @@
6
+Piochez une carte.
+
+
2
-
-
-Piochez une carte.
-
-
+
+
+
+
+
+prepare_another_champion
+
+
-prepare_another_champion
+
-
-
+
+
-
-5
+
+5
-
+
Garde
-
+
diff --git a/output/heron/073.svg b/output/heron/073.svg
index 68d44c5..ef89512 100644
--- a/output/heron/073.svg
+++ b/output/heron/073.svg
@@ -22,19 +22,22 @@
2
+Vous pouvez sacrifier une carte de votre mainou de votre défausse.
+
+
-Vous pouvez sacrifier une carte de votre main ou de votre défausse.
+
-
+
-
-5
+
+5
-
+
Garde
-
+
diff --git a/output/heron/074.svg b/output/heron/074.svg
index 6f53f52..76d0b0b 100644
--- a/output/heron/074.svg
+++ b/output/heron/074.svg
@@ -22,28 +22,34 @@
5
+
+
+
4
-
-
-
-
-
+
+
+
+
+
+Assomez le champion ciblé.
+
+
-Assomez le champion ciblé.
+
-
-
+
+
-
-5
+
+5
-
-
+
+
diff --git a/output/heron/075.svg b/output/heron/075.svg
index 3a92d1e..2a15319 100644
--- a/output/heron/075.svg
+++ b/output/heron/075.svg
@@ -22,33 +22,39 @@
3
+
+
+
2
-
-
-
-
-
+
+
+
+
+
+
+
+
2
-
+
-
-
+
+
-
-
+
+
-
-4
+
+4
-
-
+
+
diff --git a/output/heron/076.svg b/output/heron/076.svg
index 353966b..77eb2a7 100644
--- a/output/heron/076.svg
+++ b/output/heron/076.svg
@@ -18,31 +18,34 @@
+
+
+
1
-
+
1
-
+
1
-
-
-
-
-
+
+
+
+
+
-
+
-
-2
+
+2
-
-
+
+
diff --git a/output/heron/077.svg b/output/heron/077.svg
index 3cfdf4c..dfe7162 100644
--- a/output/heron/077.svg
+++ b/output/heron/077.svg
@@ -18,15 +18,18 @@
+
+
+
2
-
-
-
+
+
+
-
+
diff --git a/output/heron/078.svg b/output/heron/078.svg
index bcfce9d..989c29f 100644
--- a/output/heron/078.svg
+++ b/output/heron/078.svg
@@ -18,15 +18,18 @@
+cheaper_action
+
+
1
-
-cheaper_action
-
+
+
+
-
+
diff --git a/output/heron/079.svg b/output/heron/079.svg
index 27ad8f0..b2cd859 100644
--- a/output/heron/079.svg
+++ b/output/heron/079.svg
@@ -18,20 +18,26 @@
+
+
+
1
-
-
-
-
-Piochez une carte.
+
+
+
+
+Piochez une carte.
+
+
+
-
-
+
+
diff --git a/output/heron/080.svg b/output/heron/080.svg
index 83aaa52..7780ab4 100644
--- a/output/heron/080.svg
+++ b/output/heron/080.svg
@@ -18,17 +18,15 @@
-
-1
++ x pour chaque autre Couteau que vous avez en jeu
-2
+1
-
-
-
+
+
diff --git a/output/heron/081.svg b/output/heron/081.svg
index 623f966..52cbfaa 100644
--- a/output/heron/081.svg
+++ b/output/heron/081.svg
@@ -18,20 +18,26 @@
+
+
+
1
-
-
-
-
-Piochez une carte.
+
+
+
+
+Piochez une carte.
+
+
+
-
-
+
+
diff --git a/output/heron/082.svg b/output/heron/082.svg
index a3ed36d..c966b5a 100644
--- a/output/heron/082.svg
+++ b/output/heron/082.svg
@@ -18,15 +18,18 @@
+cheaper_champion
+
+
1
-
-cheaper_champion
-
+
+
+
-
+
diff --git a/output/heron/083.svg b/output/heron/083.svg
index 8165550..e6ac08e 100644
--- a/output/heron/083.svg
+++ b/output/heron/083.svg
@@ -18,15 +18,18 @@
+
+
+
2
-
-
-
+
+
+
-
+
diff --git a/output/heron/084.svg b/output/heron/084.svg
index b921588..a705da0 100644
--- a/output/heron/084.svg
+++ b/output/heron/084.svg
@@ -18,15 +18,18 @@
+
+
+
3
-
-
-
+
+
+
-
+
diff --git a/output/heron/086.svg b/output/heron/086.svg
index ca8b96b..6904c68 100644
--- a/output/heron/086.svg
+++ b/output/heron/086.svg
@@ -18,20 +18,26 @@
+
+
+
2
-
-
-
-
-Piochez une carte.
+
+
+
+
+Piochez une carte.
+
+
+
-
-
+
+
diff --git a/output/heron/087.svg b/output/heron/087.svg
index 93ca23d..8c30a61 100644
--- a/output/heron/087.svg
+++ b/output/heron/087.svg
@@ -18,23 +18,26 @@
+
+
+
1
-
-
-
+
+
+
-
+
-
-1
+
+1
-
+
Garde
-
+
diff --git a/output/heron/088.svg b/output/heron/088.svg
index 85bc030..c4ff050 100644
--- a/output/heron/088.svg
+++ b/output/heron/088.svg
@@ -18,23 +18,26 @@
+
+
+
1
-
-
-
+
+
+
-
+
-
-1
+
+1
-
+
Garde
-
+
diff --git a/output/heron/089.svg b/output/heron/089.svg
index a7bdcc3..ea9c273 100644
--- a/output/heron/089.svg
+++ b/output/heron/089.svg
@@ -18,15 +18,18 @@
+
+
+
2
-
-
-
+
+
+
-
+
diff --git a/output/heron/090.svg b/output/heron/090.svg
index bcdebde..170f24b 100644
--- a/output/heron/090.svg
+++ b/output/heron/090.svg
@@ -18,20 +18,23 @@
+
+
+
2
-
+
5
-
-
-
-
+
+
+
+
-
+
diff --git a/output/heron/091.svg b/output/heron/091.svg
index 2fba0c4..b82db9a 100644
--- a/output/heron/091.svg
+++ b/output/heron/091.svg
@@ -18,15 +18,18 @@
+Vous pouvez sacrifier une carte de votre mainou de votre défausse.
+
+
1
-
-Vous pouvez sacrifier une carte de votre main ou de votre défausse.
-
+
+
+
-
+
diff --git a/output/heron/092.svg b/output/heron/092.svg
index ef64f06..da1c0e5 100644
--- a/output/heron/092.svg
+++ b/output/heron/092.svg
@@ -18,21 +18,27 @@
+
+
+
2
-
-
-
-
+
+
+
+
+keep_in_hand
+
+
-keep_in_hand
+
-
-
+
+
diff --git a/output/heron/093.svg b/output/heron/093.svg
index 188cc9d..05d4b6c 100644
--- a/output/heron/093.svg
+++ b/output/heron/093.svg
@@ -18,15 +18,18 @@
+
+
+
3
-
-
-
+
+
+
-
+
diff --git a/output/heron/094.svg b/output/heron/094.svg
index 261b22c..5f48ec7 100644
--- a/output/heron/094.svg
+++ b/output/heron/094.svg
@@ -18,15 +18,18 @@
+buy_gem_for_free
+
+
2
-
-buy_gem_for_free
-
+
+
+
-
+
diff --git a/output/heron/095.svg b/output/heron/095.svg
index d77eefe..89fe326 100644
--- a/output/heron/095.svg
+++ b/output/heron/095.svg
@@ -18,10 +18,13 @@
-cheaper_skills_passive Piochez une carte.
+cheaper_skills_passive Piochez une carte.
+
+
+
-
+
diff --git a/output/heron/096.svg b/output/heron/096.svg
index 3146621..88ecca0 100644
--- a/output/heron/096.svg
+++ b/output/heron/096.svg
@@ -18,20 +18,23 @@
+
+
+
1
-
+
2
-
-
-
-
+
+
+
+
-
+
diff --git a/output/heron/097.svg b/output/heron/097.svg
index 7eb6aaa..ab434ed 100644
--- a/output/heron/097.svg
+++ b/output/heron/097.svg
@@ -18,15 +18,18 @@
+
+
+
2
-
-
-
+
+
+
-
+
diff --git a/output/heron/098.svg b/output/heron/098.svg
index ea86f40..e4c0a07 100644
--- a/output/heron/098.svg
+++ b/output/heron/098.svg
@@ -18,15 +18,18 @@
+
+
+
5
-
-
-
+
+
+
-
+
diff --git a/output/heron/099.svg b/output/heron/099.svg
index b6d5e1d..afbdd9f 100644
--- a/output/heron/099.svg
+++ b/output/heron/099.svg
@@ -18,10 +18,13 @@
-buy_for_free
+buy_for_free
+
+
+
-
+
diff --git a/output/heron/100.svg b/output/heron/100.svg
index 60992b9..984b8f8 100644
--- a/output/heron/100.svg
+++ b/output/heron/100.svg
@@ -18,15 +18,18 @@
+
+
+
3
-
-
-
+
+
+
-
+
diff --git a/output/heron/101.svg b/output/heron/101.svg
index 4520e2b..abe4e7d 100644
--- a/output/heron/101.svg
+++ b/output/heron/101.svg
@@ -18,10 +18,13 @@
-cheaper_card_if_higher_price Piochez une carte.
+cheaper_card_if_higher_price Piochez une carte.
+
+
+
-
+
diff --git a/output/heron/102.svg b/output/heron/102.svg
index 78a3e8a..32c9597 100644
--- a/output/heron/102.svg
+++ b/output/heron/102.svg
@@ -18,15 +18,18 @@
+pick_faction
+
+
1
-
-pick_faction
-
+
+
+
-
+
diff --git a/src/card_types.py b/src/card_types.py
index 584973c..4f74f7f 100644
--- a/src/card_types.py
+++ b/src/card_types.py
@@ -7,6 +7,7 @@ class Translation(TypedDict):
card_type: dict[str, str]
effects: dict[str, str]
numbers: dict[str, str]
+ per: dict[str, str]
@dataclass
@@ -34,6 +35,7 @@ class Effect(TypedDict):
effect: str
amount: int
effect_type: str | EffectType | None
+ per: str | None
@dataclass
diff --git a/src/data/translation_fr.json b/src/data/translation_fr.json
index 8b34d0f..98853e8 100644
--- a/src/data/translation_fr.json
+++ b/src/data/translation_fr.json
@@ -12,11 +12,19 @@
"draw_n":"Piochez %a cartes.",
"stun":"Assomez le champion ciblé.",
"stack_next_card_bought":"Mettez la prochaine carte dont vous faites l'acquisition\nau dessus de votre pioche.",
- "sacrifice":"Vous pouvez sacrifier une carte de votre main ou de votre défausse.",
- "restack_discarded_champion":"Mettez un champion de votre défausse au dessus de votre pioche.",
- "make_discard":"L'adversaire ciblé se défausse d'une carte",
+ "sacrifice":"Vous pouvez sacrifier une carte de votre main\nou de votre défausse.",
+ "restack_discarded_champion":"Mettez un champion de votre défausse\nau dessus de votre pioche.",
+ "make_discard":"L'adversaire ciblé se défausse d'une carte.",
"draw_and_discard":"Vous pouvez piocher une carte.\nSi vous faites ainsi, défaussez vous d'une carte.",
- "play_next_card_bought":"Mettez dans votre main la prochaine carte dont vous faites l'acquisition."
+ "play_next_card_bought":"Mettez dans votre main la prochaine carte\ndont vous faites l'acquisition."
+ },
+ "per":{
+ "champion":"pour chaque Champion que vous avez en jeu",
+ "cother_hampion":"pour chaque autre Champion que vous avez en jeu",
+ "other_guard":"pour chaque autre Garde que vous avez en jeu",
+ "other_card_of_same_faction":"pour chaque autre x que vous avez en jeu",
+ "champion_of_same_faction":"pour chaque Champion x que vous avez en jeu",
+ "other_knife_played":"pour chaque autre Couteau que vous avez en jeu"
}
}
\ No newline at end of file
diff --git a/src/draw_functions.old.py b/src/draw_functions.old.py
deleted file mode 100644
index 9c5e369..0000000
--- a/src/draw_functions.old.py
+++ /dev/null
@@ -1,112 +0,0 @@
-from typing import List
-from math import sin, cos, pi
-import drawsvg as dw
-import json
-
-stats_radius = 22
-
-circle_icon = dw.Circle(cx=0, cy=0, r=stats_radius)
-with open('src/data/translation_fr.json', encoding="utf-8") as f:
- translation_fr: dict = json.load(f)
-
-def is_base_effect(array: dict):
- return not 'effect_type' in array.keys() or array['effect_type'] == 'champion_action'
-
-def create_icon(amount: int, fill: str):
- group = dw.Group()
- group.append(dw.Use(circle_icon, fill=fill,x=0,y=0))
- group.append(dw.Text(amount, x=0, y=stats_radius+9, text_anchor="middle", fill="white", font_size=24, font_weight="bold", font_family='Helvetica'))
- return group
-
-def create_damage_icon(amount: int):
- return create_icon(amount, "red")
-
-def create_heal_icon(amount: int):
- return create_icon(amount, "green")
-
-def create_gold_icon(amount: int):
- return create_icon(amount, "yellow")
-
-
-def draw_effects_resources_for_row(dwg: Drawing, effects: List, y: int, x_width: int):
- effects_generator = {
- "gold": create_gold_icon,
- "heal": create_heal_icon,
- "damage": create_damage_icon
- }
- effect_icons = list(filter(lambda e: e.get("effect") in effects_generator, effects))
- effect_icons_groups = [effects_generator[e.get("effect")](dwg, e.get("amount")) for e in effect_icons]
-
- nb_effects = len(effect_icons_groups)
- for [i, e] in enumerate(effect_icons_groups):
- x_effect_pos = x_width/2 + (nb_effects*stats_radius/2) + i*stats_radius
- e.x = x_effect_pos
- e.y = y
- dwg.add(e)
-
-def draw_effects(dwg: Drawing, card_effects: List[dict], x_width:int, border_width_x: int, row_1_base_y: int,row_2_base_y:int, row_1_to_2_separator_shorten_by: int, row_1_to_2_separator_y: int, effect_text_size: int):
- # TODO: figure out nb of effects and adjust row_1_x_offset accordingly
-
-
-
- base_effects = list(filter(is_base_effect, card_effects))
- other_effects = list(filter(lambda x: not is_base_effect(x), card_effects))
- # card_effects = card_data['row_1']
- # row_1_nb_effects = len(card_data['row_1'].keys())
-
-
- # Draw row 1 stats
- draw_effects_resources_for_row(dwg, base_effects, row_1_base_y, x_width)
- # Draw row 1 text
- for effect in base_effects:
-
- effect_text_1 = translation_fr["effects"].get(effect.get("effect"))
- if effect_text_1 is not None:
- dwg.add(dwg.text(effect_text_1, insert=(x_width/2, row_1_base_y + 57), text_anchor='middle', fill='black', font_size=str(effect_text_size) + 'px', font_family='Helvetica'))
-
- if other_effects:
- # Draw row 1 to row 2 separator
- dwg.add(dwg.line(start=(0 + row_1_to_2_separator_shorten_by, row_1_to_2_separator_y), end=(x_width - row_1_to_2_separator_shorten_by, row_1_to_2_separator_y), stroke='black', stroke_width=1))
-
- for effect in other_effects:
- # TODO handle case where there is both faction combo and trash can
-
- if effect.get('effect_type') == 'faction_combo':
- row_2_icon_x = border_width_x + 35
- row_2_icon_y = row_2_base_y - 5
- dwg.add(dwg.circle(center=(row_2_icon_x + 1, row_2_icon_y + 1), r=15, fill='black'))
- dwg.add(dwg.circle(center=(row_2_icon_x, row_2_icon_y), r=15, fill='url(#grad2)'))
- # Draw row 2 stats
- draw_effects_resources_for_row(dwg, [effect], row_2_base_y - 25, x_width)
-
- # Draw row 2 effect text
- effect_text_2 = ""
- if effect.get('effect') == 'prepare':
- effect_text_2 = "Mobilisez un champion."
- dwg.add(dwg.text(effect_text_2, insert=(x_width/2, row_2_base_y), text_anchor='middle', fill='black', font_size=str(effect_text_size) + 'px', font_family='Helvetica'))
-
-def create_pentagon(center, radius):
- points = []
- for i in range(5):
- x = center[0] + radius * cos(2 * pi * i / 5 + (pi / 2))
- y = center[1] + radius * sin(2 * pi * i / 5 + (pi / 2))
- points.append((x, y))
- return points
-
-def draw_champion_shield(dwg: Drawing, card_data: dict, x_width: int, y_height: int, border_width_x: int):
- if not card_data['guard']:
- pentagon_points = create_pentagon(center=(x_width - border_width_x - 15, y_height - 30), radius=28)
- dwg.add(dwg.polygon(points=pentagon_points, fill='darkgrey', stroke='#eee', stroke_width=1))
- # dwg.add(dwg.circle(center=(x_width - border_width_x - 15, y_height - 30), r=27, fill='darkgrey'))
- # dwg.add(dwg.circle(center=(x_width - border_width_x - 15, y_height - 30), r=25, fill='lightgrey'))
- dwg.add(dwg.text(str(card_data['defense']), insert=(x_width - border_width_x - 15, y_height - 20), text_anchor='middle', fill='black', font_size='28px', font_weight="bold", font_family='Helvetica'))
- else:
- pentagon_points = create_pentagon(center=(x_width - border_width_x - 15, y_height - 30), radius=28)
- dwg.add(dwg.polygon(points=pentagon_points, fill='black', stroke='lightgrey', stroke_width=1))
- # dwg.add(dwg.circle(center=(x_width - border_width_x - 15, y_height - 30), r=27, fill='lightgrey'))
- # dwg.add(dwg.circle(center=(x_width - border_width_x - 15, y_height - 30), r=25, fill='#111'))
- # Draw guard rectangle with text inside, above the shield
- dwg.add(dwg.rect(insert=(x_width - border_width_x - 40, y_height - 72), size=(49, 17), fill='lightgrey'))
- dwg.add(dwg.rect(insert=(x_width - border_width_x - 39, y_height - 71), size=(47, 15), fill='#111'))
- dwg.add(dwg.text('Garde', insert=(x_width - border_width_x - 15, y_height - 59), text_anchor='middle', fill='white', font_size='12px', font_weight="bold", font_family='Helvetica'))
- dwg.add(dwg.text(str(card_data['defense']), insert=(x_width - border_width_x - 15, y_height - 20), text_anchor='middle', fill='white', font_size='28px', font_weight="bold", font_family='Helvetica'))
diff --git a/src/draw_functions.py b/src/draw_functions.py
index 5e1df93..1891667 100644
--- a/src/draw_functions.py
+++ b/src/draw_functions.py
@@ -148,6 +148,51 @@ resourceIcons = {
}
+def create_effect_text(effects: list[Effect], height: int, width: int):
+ group = dw.Group()
+
+ effect_text = ""
+
+ for e in effects:
+ if effect_text != "":
+ effect_text += " "
+ per = e.get('per')
+ if per is not None:
+ translation = f"+ x {translation_fr.get("per").get(per)}"
+ elif e.get("amount", 1) > 1:
+ translation = (
+ translation_fr.get("effects")
+ .get(e.get("effect") + "_n", e.get("effect"))
+ .replace(
+ "%a",
+ str(translation_fr.get("numbers").get(str(e.get("amount", "")))),
+ )
+ )
+ else:
+ translation = translation_fr.get("effects").get(
+ e.get("effect"), e.get("effect")
+ )
+ if(len(effect_text)>20):
+ effect_text+="\n"
+ effect_text += translation
+
+ font_size = min(effect_text_size, max((effect_text_size*2)-len(effect_text)*.5,11))
+ group.append(
+ dw.Text(
+ effect_text,
+ x=width / 2,
+ y=(-font_size/2)*effect_text.count("\n"),
+ text_anchor="middle",
+ fill="black",
+ # Attempt to estimate font width
+ font_size=font_size,
+ font_family="Helvetica",
+ )
+ )
+
+ return group
+
+
def create_effect_row(effects: list[Effect], type: str, height: int, width: int):
group = dw.Group()
if type == "faction_combo":
@@ -182,11 +227,9 @@ def create_effect_row(effects: list[Effect], type: str, height: int, width: int)
)
)
effect_with_icons = list(
- filter(lambda x: x.get("effect") in resourceIcons, effects)
- )
- effect_with_text = list(
- filter(lambda x: x.get("effect") not in resourceIcons, effects)
+ filter(lambda x: x.get("effect") in resourceIcons and not x.get("per"), effects)
)
+ effect_with_text = list(filter(lambda x: x not in effect_with_icons, effects))
text_y_pos = height - effect_text_size / 1.5
if len(effect_with_icons) == 0:
@@ -197,38 +240,8 @@ def create_effect_row(effects: list[Effect], type: str, height: int, width: int)
if len(effect_with_text) == 0:
icon_y_pos = height / 2
- effect_text = ""
-
- for e in effect_with_text:
- if effect_text != "":
- effect_text += " "
-
- if e.get("amount", 1) > 1:
-
- translation = (
- translation_fr.get("effects")
- .get(e.get("effect") + "_n", e.get("effect"))
- .replace(
- "%a",
- str(translation_fr.get("numbers").get(str(e.get("amount", "")))),
- )
- )
- else:
- translation = translation_fr.get("effects").get(
- e.get("effect"), e.get("effect")
- )
- effect_text += translation
-
group.append(
- dw.Text(
- effect_text,
- x=width / 2,
- y=text_y_pos,
- text_anchor="middle",
- fill="black",
- font_size=effect_text_size,
- font_family="Helvetica",
- )
+ dw.Use(create_effect_text(effect_with_text, height, width), 0, text_y_pos)
)
icon_radius = min(height / 3, stats_radius)
diff --git a/src/pack1_faction_imperial.json b/src/pack1_faction_imperial.json
deleted file mode 100644
index ef9ac88..0000000
--- a/src/pack1_faction_imperial.json
+++ /dev/null
@@ -1,366 +0,0 @@
-{
- "cards": [
- {
- "id": 1,
- "role": "market",
- "card_type": "champion",
- "faction": "yellow",
- "name": "Arkus, Imperial Dragon",
- "cost": 8,
- "defense": 6,
- "guard": true,
- "init_amount": 1,
- "effects": [
- {
- "effect": "draw",
- "amount": 1,
- "effect_type": "champion_action"
- },
- {
- "effect": "damage",
- "amount": 5,
- "effect_type": "champion_action"
- },
- {
- "effect": "heal",
- "amount": 6,
- "effect_type": "faction_combo"
- }
- ]
- },
- {
- "id": 2,
- "role": "market",
- "card_type": "action",
- "faction": "yellow",
- "name": "Close Ranks",
- "cost": 3,
- "init_amount": 1,
- "effects": [
- {
- "effect": "damage",
- "amount": 5
- },
- {
- "effect": "damage",
- "amount": 2,
- "times": "per_champion"
- },
- {
- "effect": "heal",
- "amount": 6,
- "effect_type": "faction_combo"
- }
- ]
- },
- {
- "id": 3,
- "role": "market",
- "card_type": "action",
- "faction": "yellow",
- "name": "Command",
- "cost": 5,
- "init_amount": 1,
- "effects": [
- {
- "effect": "draw",
- "amount": 1
- },
- {
- "effect": "damage",
- "amount": 3
- },
- {
- "effect": "gold",
- "amount": 2
- },
- {
- "effect": "heal",
- "amount": 4
- }
- ]
- },
- {
- "id": 4,
- "role": "market",
- "card_type": "champion",
- "faction": "yellow",
- "name": "Darian , War Mage",
- "cost": 4,
- "defense": 5,
- "guard": false,
- "init_amount": 1,
- "effects": [
- {
- "effect": "damage",
- "amount": 3,
- "effect_type": "champion_action",
- "mutex": 1
- },
- {
- "effect": "heal",
- "amount": 4,
- "effect_type": "champion_action",
- "mutex": 1
- }
- ]
- },
- {
- "id": 5,
- "role": "market",
- "card_type": "action",
- "faction": "yellow",
- "name": "Domination",
- "cost": 7,
- "init_amount": 1,
- "effects": [
- {
- "effect": "heal",
- "amount": 6
- },
- {
- "effect": "damage",
- "amount": 6
- },
- {
- "effect": "draw",
- "amount": 1
- },
- {
- "effect": "prepare",
- "amount": 1,
- "effect_type": "faction_combo"
- }
- ]
- },
- {
- "id": 6,
- "role": "market",
- "card_type": "champion",
- "faction": "yellow",
- "name": "Cristov, the Just",
- "cost": 5,
- "defense": 5,
- "guard": true,
- "init_amount": 1,
- "effects": [
- {
- "effect": "damage",
- "amount": 2,
- "effect_type": "champion_action"
- },
- {
- "effect": "heal",
- "amount": 3,
- "effect_type": "champion_action"
- },
- {
- "effect": "draw",
- "amount": 1,
- "effect_type": "faction_combo"
- }
- ]
- },
- {
- "id": 7,
- "role": "market",
- "card_type": "champion",
- "faction": "yellow",
- "name": "Kraka, High Priest",
- "cost": 6,
- "defense": 6,
- "guard": false,
- "init_amount": 1,
- "effects": [
- {
- "effect": "heal",
- "amount": 2,
- "effect_type": "champion_action"
- },
- {
- "effect": "draw",
- "amount": 1,
- "effect_type": "champion_action"
- },
- {
- "effect": "heal",
- "amount": 2,
- "effect_type": "faction_combo",
- "times": "per_champion"
- }
- ]
- },
- {
- "id": 8,
- "role": "market",
- "card_type": "champion",
- "faction": "yellow",
- "name": "Man-at-Arms",
- "cost": 3,
- "defense": 4,
- "guard": true,
- "init_amount": 2,
- "effects": [
- {
- "effect": "damage",
- "amount": 2,
- "effect_type": "champion_action"
- },
- {
- "effect": "damage",
- "amount": 1,
- "times": "per_other_guard",
- "effect_type": "champion_action"
- }
- ]
- },
- {
- "id": 9,
- "role": "market",
- "card_type": "champion",
- "faction": "yellow",
- "name": "Master Weyan",
- "cost": 4,
- "defense": 4,
- "guard": true,
- "init_amount": 1,
- "effects": [
- {
- "effect": "damage",
- "amount": 3,
- "effect_type": "champion_action"
- },
- {
- "effect": "damage",
- "amount": 1,
- "times": "per_other_champion",
- "effect_type": "champion_action"
- }
- ]
- },
- {
- "id": 10,
- "role": "market",
- "card_type": "action",
- "faction": "yellow",
- "name": "Rally the Troops",
- "cost": 4,
- "init_amount": 1,
- "effects": [
- {
- "effect": "heal",
- "amount": 5
- },
- {
- "effect": "damage",
- "amount": 5
- },
- {
- "effect": "prepare",
- "amount": 1,
- "effect_type": "faction_combo"
- }
- ]
- },
- {
- "id": 11,
- "role": "market",
- "card_type": "action",
- "faction": "yellow",
- "name": "Recruit",
- "cost": 2,
- "init_amount": 3,
- "effects": [
- {
- "effect": "gold",
- "amount": 2
- },
- {
- "effect": "heal",
- "amount": 3
- },
- {
- "effect": "heal",
- "amount": 1,
- "times": "per_champion"
- },
- {
- "effect": "gold",
- "amount": 1,
- "effect_type": "faction_combo"
- }
- ]
- },
- {
- "id": 12,
- "role": "market",
- "card_type": "champion",
- "faction": "yellow",
- "name": "Tits Priest",
- "cost": 2,
- "defense": 3,
- "guard": false,
- "init_amount": 2,
- "effects": [
- {
- "effect": "gold",
- "amount": 1,
- "effect_type": "champion_action",
- "mutex": 1
- },
- {
- "effect": "heal",
- "amount": 1,
- "effect_type": "champion_action",
- "mutex": 1,
- "times": "per_champion"
- }
- ]
- },
- {
- "id": 13,
- "role": "market",
- "card_type": "action",
- "faction": "yellow",
- "name": "Taxation",
- "cost": 1,
- "init_amount": 3,
- "effects": [
- {
- "effect": "gold",
- "amount": 2
- },
- {
- "effect": "heal",
- "amount": 6,
- "effect_type": "faction_combo"
- }
- ]
- },
- {
- "id": 14,
- "role": "market",
- "card_type": "action",
- "faction": "yellow",
- "name": "Word of Power",
- "cost": 6,
- "init_amount": 1,
- "effects": [
- {
- "effect": "draw",
- "amount": 2
- },
- {
- "effect": "heal",
- "amount": 5,
- "effect_type": "faction_combo"
- },
- {
- "effect": "damage",
- "amount": 5,
- "effect_type": "suicide"
- }
- ]
- }
- ]
-}
\ No newline at end of file