Fix Cannibal variant. TODO: better kings images
authorBenjamin Auder <benjamin.auder@somewhere>
Wed, 18 Mar 2020 13:30:03 +0000 (14:30 +0100)
committerBenjamin Auder <benjamin.auder@somewhere>
Wed, 18 Mar 2020 13:30:03 +0000 (14:30 +0100)
18 files changed:
client/public/images/pieces/Cannibal/bc.svg [new file with mode: 0644]
client/public/images/pieces/Cannibal/bl.svg [new file with mode: 0644]
client/public/images/pieces/Cannibal/bo.svg [new file with mode: 0644]
client/public/images/pieces/Cannibal/bs.svg [new file with mode: 0644]
client/public/images/pieces/Cannibal/bt.svg [new file with mode: 0644]
client/public/images/pieces/Cannibal/bu.svg [new file with mode: 0644]
client/public/images/pieces/Cannibal/wc.svg [new file with mode: 0644]
client/public/images/pieces/Cannibal/wl.svg [new file with mode: 0644]
client/public/images/pieces/Cannibal/wo.svg [new file with mode: 0644]
client/public/images/pieces/Cannibal/ws.svg [new file with mode: 0644]
client/public/images/pieces/Cannibal/wt.svg [new file with mode: 0644]
client/public/images/pieces/Cannibal/wu.svg [new file with mode: 0644]
client/src/base_rules.js
client/src/translations/rules/Cannibal/en.pug
client/src/translations/rules/Cannibal/es.pug
client/src/translations/rules/Cannibal/fr.pug
client/src/variants/Cannibal.js
client/src/variants/Eightpieces.js

diff --git a/client/public/images/pieces/Cannibal/bc.svg b/client/public/images/pieces/Cannibal/bc.svg
new file mode 100644 (file)
index 0000000..03c4273
--- /dev/null
@@ -0,0 +1,94 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   height="100%"
+   width="100%"
+   version="1.1"
+   viewBox="0 0 2048 2048"
+   id="svg16"
+   sodipodi:docname="bc.svg"
+   inkscape:version="0.92.4 5da689c313, 2019-01-14">
+  <metadata
+     id="metadata22">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title></dc:title>
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <defs
+     id="defs20" />
+  <sodipodi:namedview
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1"
+     objecttolerance="10"
+     gridtolerance="10"
+     guidetolerance="10"
+     inkscape:pageopacity="0"
+     inkscape:pageshadow="2"
+     inkscape:window-width="1920"
+     inkscape:window-height="1060"
+     id="namedview18"
+     showgrid="false"
+     inkscape:zoom="0.11523438"
+     inkscape:cx="1041.3559"
+     inkscape:cy="1024"
+     inkscape:window-x="0"
+     inkscape:window-y="20"
+     inkscape:window-maximized="0"
+     inkscape:current-layer="svg16" />
+  <path
+     style="color:black;"
+     d="m1290 582l-42 102q-102 22-224 22-121 0-222-22l-42-101q124 31 264 31 138 0 266-32zm-84 206l-29 70v27q-76 11-153 11-75 0-152-11l-1-27-27-70q85 15 180 15 96 0 182-15zm-35-378q-40 30-80 95h-32q0-49 23-95h89zm-206 0q23 49 23 95h-32q-39-64-81-95h90zm59-18q-14-57-34-79t-53-46q-36-25-85-42t-109-9l-281 39q-17 2-30 0t-26-2q-21 0-53-9t-51-28l-97 159q18 20 32 28t33 17q58 27 124 33 28 2 55 1t56 2q54-9 108-16t110-16q60 0 81 12 11 6 35 22t48 47q-53 6-108 20t-97 31l104 258q-78 45-109 72t-49 64q-26 46-33 89t-7 77q1 60 28 132t104 130q63 48 123 99t119 119q-74 38-74 121 0 56 39 96t97 40q56 0 96-40t40-96q0-82-74-121 58-68 117-119t125-99q75-57 102-129t29-133q0-34-7-77t-32-89q-20-36-50-63t-108-73l104-258q-44-16-99-30t-106-21q23-31 47-47t36-22q21-12 81-12 54 8 108 15t110 17q27-3 54-2t57-1q64-6 124-33 18-9 32-17t33-28l-98-159q-18 18-50 27t-53 10q-13 0-26 2t-31 0l-280-39q-60-9-111 8t-85 45q-33 27-52 46t-33 77zm-37 744v-85q0-37 37-37t37 37v86h90q35 0 35 36t-35 36h-90v90q0 37-37 37t-37-37v-90h-88q-35 0-35-36t35-36l88-1z"
+     fill-rule="nonzero"
+     transform="translate(0,2048) scale(1,-1)"
+     display="block"
+     fill="#000"
+     id="path2" />
+  <g
+     fill-rule="nonzero"
+     fill="#fff"
+     id="g14">
+    <path
+       style="color:black;"
+       d="m1290 1466-42-102q-102-22-224-22-121 0-222 22l-42 101q124-31 264-31 138 0 266 32z"
+       display="block"
+       id="path4" />
+    <path
+       style="color:black;"
+       d="m1206 1260-29-70v-27q-76-11-153-11-75 0-152 11l-1 27-27 70q85-15 180-15 96 0 182 15z"
+       display="block"
+       id="path6" />
+    <path
+       style="color:black;"
+       d="m1171 1638q-40-30-80-95h-32q0 49 23 95h89z"
+       display="block"
+       id="path8" />
+    <path
+       style="color:black;"
+       d="m965 1638q23-49 23-95h-32q-39 64-81 95h90z"
+       display="block"
+       id="path10" />
+    <path
+       style="color:black;"
+       d="m987 912v85q0 37 37 37t37-37v-86h90q35 0 35-36t-35-36h-90v-90q0-37-37-37t-37 37v90h-88q-35 0-35 36t35 36l88 1z"
+       display="block"
+       id="path12" />
+  </g>
+  <path
+     style="fill:#aa0000;fill-opacity:1;stroke-width:8.67796612"
+     d="m 588.3661,1806.9043 c -140.23544,-21.1298 -204.39621,-20.6655 -259.5019,1.8779 -16.2447,6.6456 -30.23101,11.0554 -31.0807,9.7995 -35.96451,-53.1571 -82.34661,-142.2128 -78.83437,-151.3656 6.51642,-16.9815 87.66619,-52.8844 143.43971,-63.4616 68.1344,-12.9214 120.91212,-10.9979 260.68913,9.5008 146.49435,21.4839 174.87198,17.5972 232.65788,-31.8654 38.04886,-32.5684 40.24466,-47.1255 7.10842,-47.1255 -26.20215,0 -155.33701,-33.9649 -164.97106,-43.3905 -4.37824,-4.2835 13.23685,-59.6688 41.22034,-129.6047 26.87617,-67.1687 48.86577,-123.7619 48.86577,-125.7628 0,-2.0009 -27.08103,-21.6414 -60.18007,-43.6456 C 635.14989,1130.281 595.93066,1056.1639 595.64535,942.15247 595.32739,815.09576 632.71111,746.38082 755.6375,648.07111 849.62661,572.90383 961.51864,468.15819 961.51864,455.3393 c 0,-4.21397 -9.84073,-15.40249 -21.8683,-24.86338 -49.81664,-39.18578 -62.4405,-112.72331 -28.03,-163.28281 43.95297,-64.5803 107.49346,-84.57707 169.01566,-53.19078 87.8805,44.83331 98.4051,161.46802 20.2732,224.67101 l -21.1518,17.11027 64.5416,64.37856 c 35.4979,35.40821 96.0034,88.27038 134.4567,117.4715 112.8465,85.69483 141.6889,125.13229 165.2212,225.91436 22.6,96.78918 3.2669,194.32507 -53.1897,268.34357 -11.8057,15.4781 -46.6364,44.4207 -77.4014,64.3168 l -55.9364,36.1749 14.2774,35.9575 c 7.8525,19.7767 30.7334,76.9609 50.8464,127.0761 25.9358,64.6237 33.5999,92.8072 26.3577,96.9256 -15.6736,8.9131 -149.3244,41.9219 -169.7394,41.9219 -53.942,0 30.5251,76.2259 100.6463,90.8265 15.3486,3.1958 84.7086,-2.6302 156.2034,-13.1206 88.8154,-13.032 148.9911,-17.3471 194.5258,-13.9493 70.3813,5.2517 148.5137,30.01 184.812,58.5622 l 22.2161,17.4752 -44.0299,71.1199 c -24.2163,39.116 -45.2702,72.4127 -46.7864,73.9926 -1.5162,1.5799 -11.1141,-1.6001 -21.3286,-7.0668 -47.8594,-25.6136 -115.1656,-26.7104 -274.5188,-4.4737 -181.0592,25.2657 -213.7654,26.316 -264.2958,8.4879 -54.7038,-19.3006 -126.5456,-78.0493 -144.1004,-117.8381 -8.2131,-18.6155 -17.302,-33.8463 -20.1975,-33.8463 -2.8956,0 -10.149,13.5073 -16.1187,30.0163 -14.5729,40.3007 -79.19646,95.5786 -137.03754,117.2197 -59.22578,22.1592 -107.56401,21.3389 -280.81536,-4.7656 z m 385.81112,-176.6024 c 2.7527,-4.454 8.33663,-25.9319 12.40873,-47.7288 7.39285,-39.5721 7.36694,-39.6307 -17.50971,-39.6307 -13.70244,0 -24.91353,3.3552 -24.91353,7.4562 0,4.1009 -15.95222,25.5789 -35.44938,47.7288 L 873.26396,1638.4 h 47.95417 c 26.37481,0 50.2064,-3.6441 52.95909,-8.0981 z m 176.66458,-15.7663 c -12.2073,-13.1254 -29.0073,-34.6034 -37.3334,-47.7288 -19.7924,-31.201 -56.5321,-33.4526 -56.5321,-3.4644 0,11.2199 4.2871,32.6978 9.5269,47.7288 9.1533,26.2571 11.4289,27.3288 58.0303,27.3288 h 48.5035 z m 122.6248,-201.1221 c -13.5873,-34.208 -26.4857,-53.248 -38.2273,-56.4293 -54.2484,-14.6978 -216.4602,-22.3342 -302.08568,-14.2212 -133.48885,12.6482 -131.64355,11.8389 -156.3763,68.585 -11.78301,27.0345 -20.02908,50.6967 -18.32458,52.5827 1.70449,1.886 33.44754,-2.0191 70.54012,-8.678 86.69607,-15.5636 333.83234,-13.9043 405.88174,2.7252 28.6373,6.6096 53.6497,10.9029 55.5832,9.5405 1.9335,-1.3623 -5.7125,-25.7096 -16.9912,-54.1049 z m -246.8632,-161.183 c 62.0474,0 129.487,2.9872 149.8656,6.6383 l 37.0521,6.6384 -14.2646,-32.6723 c -7.8455,-17.9697 -16.1376,-41.1963 -18.4268,-51.6146 -2.2893,-10.4184 -10.3968,-21.3348 -18.0167,-24.2588 -18.5728,-7.1271 -263.30563,-6.8273 -281.99736,0.3453 -8.11504,3.1141 -14.75462,12.5774 -14.75462,21.0296 0,8.4523 -5.85763,29.387 -13.01695,46.5217 -7.15932,17.1347 -13.01695,33.278 -13.01695,35.8742 0,2.5961 16.59661,1.7453 36.88135,-1.8907 20.28475,-3.6361 87.64746,-6.6111 149.69493,-6.6111 z m 22.2654,-221.5935 c 13.7152,-7.3401 16.7854,-18.4512 16.7854,-60.74572 v -51.76247 h 43.9604 c 57.51,0 77.5312,-11.20475 77.5312,-43.38983 0,-32.18507 -20.0212,-43.38983 -77.5312,-43.38983 h -43.9604 v -50.3322 c 0,-56.28724 -9.4759,-71.15932 -45.3402,-71.15932 -29.08705,0 -41.43942,24.43161 -41.43942,81.9626 v 37.4429 l -52.75739,3.81612 c -53.12381,3.84263 -68.3295,13.42013 -68.60125,43.20937 -0.25068,27.47928 24.87622,41.84019 73.20667,41.84019 h 46.06594 l 3.81613,52.75739 c 4.69394,64.8931 25.16892,82.8147 68.26412,59.7508 z"
+     id="path24"
+     inkscape:connector-curvature="0" />
+</svg>
diff --git a/client/public/images/pieces/Cannibal/bl.svg b/client/public/images/pieces/Cannibal/bl.svg
new file mode 100644 (file)
index 0000000..965d8de
--- /dev/null
@@ -0,0 +1,119 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   height="100%"
+   width="100%"
+   version="1.1"
+   viewBox="0 0 2048 2048"
+   id="svg18"
+   sodipodi:docname="bl.svg"
+   inkscape:version="0.92.4 5da689c313, 2019-01-14">
+  <metadata
+     id="metadata24">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title></dc:title>
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <defs
+     id="defs22" />
+  <sodipodi:namedview
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1"
+     objecttolerance="10"
+     gridtolerance="10"
+     guidetolerance="10"
+     inkscape:pageopacity="0"
+     inkscape:pageshadow="2"
+     inkscape:window-width="1920"
+     inkscape:window-height="1060"
+     id="namedview20"
+     showgrid="false"
+     inkscape:zoom="0.11523438"
+     inkscape:cx="1041.3559"
+     inkscape:cy="1024"
+     inkscape:window-x="0"
+     inkscape:window-y="20"
+     inkscape:window-maximized="0"
+     inkscape:current-layer="svg18" />
+  <g
+     fill-rule="nonzero"
+     fill="#fff"
+     id="g8">
+    <path
+       style="color:black;"
+       d="m1060 1261q172 3 282 17t198 33q55-54 122-103t94-84q48-65 48-162 0-89-43-149-77-113-235-113-92 0-192 40-91 36-132 78-85 82-124 216-15 46-16 117t-2 110z"
+       display="block"
+       id="path2" />
+    <path
+       style="color:black;"
+       d="m988 1260q0-40-2-110t-15-118q-41-134-124-216-43-42-132-78-102-40-193-40-158 0-234 113-43 60-43 150 0 98 48 161 25 36 96 89t120 98q87-19 196-33t283-16z"
+       display="block"
+       id="path4" />
+    <path
+       style="color:black;"
+       d="m1024 1009q7-28 12-39 10-39 23-66 6-17 17-39t25-52q8-17 17-41t18-49q8-20 8-43 0-49-35-83t-85-35q-119 0-119 119 0 23 8 43 22 65 34 90 13 29 24 51t19 40q13 33 22 66 2 6 12 38z"
+       display="block"
+       id="path6" />
+  </g>
+  <g
+     fill-rule="nonzero"
+     id="g16">
+    <path
+       style="color:black;"
+       d="m1133 865q0 29 6 82t21 84q37 81 106 150 20 20 86 54 65 32 139 32 56 0 111-19t84-60q25-34 25-110 0-60-49-112-32-33-69-66t-71-79q-58 20-161 31t-228 13zm-73-78q172-3 282-17t198-33q55 54 122 103t94 84q48 65 48 162 0 89-43 149-77 113-235 113-92 0-192-40-91-36-132-78-85-82-124-216-15-46-16-117t-2-110zm458-173q-184 51-490 51-308 0-496-52l15-101q189 49 481 49 291 0 474-48l16 101zm26-299l-30 118q-195 45-490 45-292 0-488-45l-32-119q190 58 521 58 159 0 295-16t224-41zm-1081 207l-33 187q-1 0-3 4-5 7-28 18t-55 40q-44 37-68 60t-45 50q-61 84-68 203-10 115 93 229 104 114 281 107 66-4 155-32 29-12 59-23t61-24q16-8 28-16-5 21-5 42 0 78 55 133t134 56q78 0 133-55t55-133q0-16-4-42 14 9 27 15 46 20 121 47 86 29 155 33 177 8 280-107 101-114 94-229-8-119-69-203-20-27-45-50t-67-60q-33-28-56-39t-27-19q-1-2-2-3t-1-2l-32-188 66-247q-50-45-224-74t-402-29q-232 0-408 30t-221 77l66 244zm525 266q0 40-2 110t-15 118q-41 134-124 216-43 42-132 78-102 40-193 40-158 0-234-113-43-60-43-150 0-98 48-161 25-36 96-89t120-98q87 19 196 33t283 16zm36 251q7 28 12 39 10 39 23 66 6 17 17 39t25 52q8 17 17 41t18 49q8 20 8 43 0 49-35 83t-85 35q-119 0-119-119 0-23 8-43 22-65 34-90 13-29 24-51t19-40q13-33 22-66 2-6 12-38zm35 520h-71v131h-83q-34 0-34 33v1q0 33 34 33h83v85q0 35 36 35 35 0 35-35v-85h86q33 0 33-33v-1q0-33-33-33l-85-1-1-130zm-147-694q-125-2-228-13t-161-31q-30 37-69 74t-70 71q-50 51-50 112 0 75 25 110 27 40 83 59t113 20q72 0 138-32 65-34 86-54 68-69 106-150 13-30 19-83t8-83zm112 345q-2 10-5 17-6 20-10 29-3 7-8 17t-10 23q-3 7-7 18t-8 22q-3 9-3 19 0 53 51 53 53 0 53-52 0-13-4-19-14-38-15-41-15-30-19-39-7-16-9-29-3-6-4-10t-2-8z"
+       transform="translate(0,2048) scale(1,-1)"
+       display="block"
+       fill="#000"
+       id="path10" />
+    <path
+       style="color:black;"
+       d="m1518 1434q-184-51-490-51-308 0-496 52l15 101q189-49 481-49 291 0 474 48l16-101z"
+       display="block"
+       fill="#fff"
+       id="path12" />
+    <path
+       style="color:black;"
+       d="m1544 1733-30-118q-195-45-490-45-292 0-488 45l-32 119q190-58 521-58 159 0 295 16t224 41z"
+       display="block"
+       fill="#fff"
+       id="path14" />
+  </g>
+  <path
+     style="fill:#aa0000;fill-opacity:1;stroke-width:8.67796612"
+     d="m 439.32682,1131.2116 c -98.82271,-105.3974 -111.7667,-134.02476 -95.73625,-211.73358 7.73972,-37.51884 17.18343,-55.62427 40.09616,-76.87211 67.97136,-63.0324 207.47751,-72.60657 311.53302,-21.38021 121.28402,59.70793 191.91453,166.13911 208.99297,314.9258 l 4.60567,40.1244 -97.31089,5.9429 c -92.49989,5.6491 -247.34705,24.8888 -275.24004,34.1985 -8.35119,2.7874 -42.95058,-27.6237 -96.94064,-85.2057 z"
+     id="path26"
+     inkscape:connector-curvature="0" />
+  <path
+     style="fill:#aa0000;fill-opacity:1;stroke-width:8.67796612"
+     d="m 1005.1044,774.15188 c -10.55563,-23.42963 -21.23712,-56.85097 -23.73661,-74.26963 -3.84815,-26.81744 -1.24252,-33.83383 17.00471,-45.78988 16.4602,-10.78511 26.8921,-12.08824 44.1731,-5.518 34.2561,13.02416 36.1042,40.76668 7.2254,108.46198 l -25.4744,59.71487 z"
+     id="path28"
+     inkscape:connector-curvature="0" />
+  <path
+     style="fill:#aa0000;fill-opacity:1;stroke-width:8.67796612"
+     d="m 1460.5017,1207.9452 c -28.6373,-6.3435 -113.6885,-16.2631 -189.0027,-22.0435 l -136.9349,-10.5097 5.7244,-52.6994 c 14.2209,-130.91879 92.9106,-244.32988 209.2242,-301.54301 54.6546,-26.88388 64.581,-28.84612 145.5674,-28.77556 72.7791,0.0634 92.7333,3.1768 122.7029,19.1449 53.6661,28.5939 79.094,63.73513 85.9762,118.81872 9.1819,73.48905 -5.0423,102.20955 -99.2517,200.40135 -45.793,47.7288 -85.2126,87.2207 -87.599,87.7597 -2.3865,0.5391 -27.7695,-4.21 -56.4068,-10.5535 z"
+     id="path30"
+     inkscape:connector-curvature="0" />
+  <path
+     style="fill:#aa0000;fill-opacity:1;stroke-width:8.67796612"
+     d="m 785.92018,1863.2971 c -201.24404,-16.6257 -379.79137,-63.1895 -379.79137,-99.0467 0,-6.9033 13.8276,-63.5869 30.72799,-125.9637 l 30.72797,-113.4124 -17.76195,-97.271 c -9.76907,-53.4991 -21.72672,-98.6003 -26.57257,-100.2249 -20.82867,-6.9831 -112.32734,-81.8827 -154.49038,-126.4639 -54.61477,-57.7471 -83.98352,-118.2082 -96.85629,-199.397 -12.45395,-78.54728 -0.40692,-136.18907 42.26009,-202.20323 112.11625,-173.46565 287.8935,-210.56482 532.27438,-112.34072 l 91.49115,36.77308 4.41236,-54.96859 c 3.31286,-41.27141 10.45025,-63.68128 28.64329,-89.93385 62.04763,-89.53476 185.73005,-108.4543 267.63655,-40.94002 43.9988,36.2675 65.8803,82.91028 65.8803,140.431 v 47.27066 l 70.4895,-29.7287 c 196.4792,-82.86444 340.4643,-84.76224 456.771,-6.0205 78.4784,53.13115 148.9638,171.8734 149.4148,251.70945 0.762,134.87732 -74.3963,258.28002 -217.7037,357.44772 -43.889,30.3709 -47.418,35.5365 -57.3235,83.9086 -25.0377,122.2687 -24.0831,148.4142 9.9696,273.0685 36.8902,135.0416 39.6815,127.1799 -55.6045,156.6107 -166.211,51.3374 -501.3376,73.2706 -774.59472,50.6955 z M 649.11186,1706.8698 c 195.25251,-35.9892 601.19994,-30.9348 799.35874,9.9526 44.8001,9.244 85.9001,16.8585 91.3333,16.9212 13.3744,0.1545 -12.0864,-104.8009 -28.6791,-118.2217 -6.7055,-5.4236 -55.9845,-17.1364 -109.5091,-26.0286 -139.1908,-23.1239 -606.26613,-23.5441 -750.44941,-0.6751 -53.75822,8.5266 -102.76239,17.4294 -108.89818,19.7839 -9.04089,3.4693 -40.68167,97.7781 -40.68167,121.2561 0,3.3929 12.69153,3.3875 28.20339,-0.01 15.51186,-3.3996 69.20678,-13.7388 119.32203,-22.9762 z m 44.12555,-194.4725 c 204.53804,-29.7929 538.21829,-25.2765 730.84309,9.892 42.0159,7.671 77.9526,12.3872 79.8594,10.4803 1.9069,-1.9069 6.9393,-25.6087 11.183,-52.6708 l 7.7159,-49.2038 -57.2024,-12.8975 c -122.8995,-27.7101 -215.9846,-35.1662 -439.033,-35.1662 -223.92949,0 -316.05364,7.4341 -440.82011,35.5727 l -58.98959,13.3039 5.48176,40.4309 c 9.44606,69.6694 9.81098,70.2025 41.97347,61.322 15.73305,-4.3441 69.27787,-13.8227 118.98848,-21.0635 z m 891.91639,-236.8458 c 26.899,-22.97 73.0853,-60.1206 102.6362,-82.5568 89.4999,-67.9515 116.4813,-122.1203 116.7182,-234.32671 0.177,-83.88867 -25.8732,-144.05703 -84.8445,-195.96564 -95.7999,-84.32645 -264.6372,-86.24052 -433.7158,-4.91695 -137.3485,66.06195 -217.6108,209.20757 -226.6018,404.1382 l -4.6404,100.6084 116.1183,6.0859 c 136.4965,7.154 289.4128,27.3349 362.262,47.8091 1.7384,0.4885 25.1689,-17.9054 52.0678,-40.8755 z m -927.36397,11.69 c 45.34237,-7.1901 138.08814,-15.6866 206.1017,-18.8812 l 123.66101,-5.8083 v -87.9477 c 0,-130.6831 -28.09478,-218.54319 -102.53655,-320.65979 C 820.48276,765.4201 664.92476,697.09289 527.62034,696.96224 c -126.31097,-0.12018 -203.8673,40.92543 -256.24146,135.61222 -23.62437,42.71032 -25.67384,53.22802 -25.12588,128.94418 0.89364,123.48236 23.35594,161.71286 155.76012,265.10156 38.99403,30.4488 76.24398,61.8026 82.77767,69.6752 12.94977,15.6036 19.74715,15.2478 172.99904,-9.0539 z M 1096.4427,831.34915 c 65.1512,-143.28338 63.2234,-208.98378 -7.3955,-252.04287 -34.0369,-20.75359 -100.55873,-22.39132 -137.3211,-3.38075 -28.51738,14.74691 -50.95322,57.71487 -50.95322,97.58297 0,31.47804 23.808,100.95947 68.93487,201.17999 19.3604,42.99677 35.20075,81.82146 35.20075,86.2771 0,4.45563 4.4566,19.09436 9.9036,32.53049 l 9.9036,24.42932 15.1476,-47.72879 c 8.3312,-26.25085 33.7919,-88.7322 56.5794,-138.84746 z"
+     id="path32"
+     inkscape:connector-curvature="0" />
+  <path
+     style="fill:#aa0000;fill-opacity:1;stroke-width:8.67796612"
+     d="M 994.4412,421.31525 991.89153,358.4 935.48475,354.06102 c -48.90829,-3.76218 -56.75086,-6.74717 -58.99505,-22.45428 -3.75804,-26.30261 14.26853,-36.90089 67.93608,-39.94136 l 47.46575,-2.68911 2.5634,-53.46 c 2.75393,-57.43339 14.48147,-71.43611 45.79407,-54.67813 13.6245,7.2916 16.7273,18.47695 16.7273,60.30055 v 51.34838 l 54.2373,2.58359 c 53.9042,2.56771 54.2372,2.74345 54.2372,28.61748 0,25.87402 -0.333,26.04976 -54.2372,28.61747 l -54.2373,2.58359 v 64.67065 64.67066 h -29.9927 -29.99274 z"
+     id="path34"
+     inkscape:connector-curvature="0" />
+</svg>
diff --git a/client/public/images/pieces/Cannibal/bo.svg b/client/public/images/pieces/Cannibal/bo.svg
new file mode 100644 (file)
index 0000000..a3e425a
--- /dev/null
@@ -0,0 +1,99 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   height="100%"
+   width="100%"
+   version="1.1"
+   viewBox="0 0 2048 2048"
+   id="svg18"
+   sodipodi:docname="bo.svg"
+   inkscape:version="0.92.4 5da689c313, 2019-01-14">
+  <metadata
+     id="metadata24">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title></dc:title>
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <defs
+     id="defs22" />
+  <sodipodi:namedview
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1"
+     objecttolerance="10"
+     gridtolerance="10"
+     guidetolerance="10"
+     inkscape:pageopacity="0"
+     inkscape:pageshadow="2"
+     inkscape:window-width="1920"
+     inkscape:window-height="1060"
+     id="namedview20"
+     showgrid="false"
+     inkscape:zoom="0.11523438"
+     inkscape:cx="1041.3559"
+     inkscape:cy="1024"
+     inkscape:window-x="0"
+     inkscape:window-y="20"
+     inkscape:window-maximized="0"
+     inkscape:current-layer="svg18" />
+  <path
+     style="color:black;"
+     d="m490 683q4 9 13 27 17 42 17 50-2 28-29 28-20 0-47-57-4-8-12-14-27-28 8-47 32-19 50 13zm590 371q70 92 69 205-4 33-38 33-46 0-36-34 3-55-11-91-23-57-51-85-15-30 18-44 32-15 49 16zm-261 488q-5 36 2 78-60-12-113-56-32-17-15-47 17-31 47-10 21 11 38 20t41 15zm937-1268q-1 0 2 54t3 118q1 125 0 258t-36 267q-34 128-75 218t-89 157q-72 108-196 183t-259 98q4-23 3-47t0-46q97-33 183-82t126-106q48-66 89-156t75-219q34-133 35-266t1-259q0-63-3-117t0-55h141zm-677 1423q157-10 291-81t228-182q66-78 124-188t94-233q40-143 50-300t11-292v-218t-155 0-404 0h-671q-9 0-9 49t7 79q4 24 19 68t50 107q16 32 76 93t138 143q45 46 70 116t22 127q-37-30-81-49-212-76-307-220-7-9-45-81-20-38-34-52-19-19-55-21-56-3-87 54-42-12-75-10-56 21-81 45-51 51-66 102t-16 110q0 84 104 222 122 159 130 242 0 36 7 81 6 31 25 60 13 20 17 27t17 23q9 12 15 18t15 18q11 13 28 30-53 146-43 301 199-71 334-223 33 113 130 183 80-56 127-148zm-675-836q29 20 6 48-24 23-53 4-61-40-65-105 1-33 39-31 36 3 35 37 8 32 38 47zm252 498q22 11 22 11 30 12 19 44-12 30-46 20-118-43-163-158-7-33 24-45 31-10 42 22 8 17 12 22 11-9 29-12 61-10 71 54 3 22-10 42z"
+     fill-rule="nonzero"
+     transform="translate(0,2048) scale(1,-1)"
+     display="block"
+     fill="#000"
+     id="path2" />
+  <g
+     fill-rule="nonzero"
+     fill="#fff"
+     id="g16">
+    <path
+       style="color:black;"
+       d="m490 1365q4-9 13-27 17-42 17-50-2-28-29-28-20 0-47 57-4 8-12 14-27 28 8 47 32 19 50-13z"
+       display="block"
+       id="path4" />
+    <path
+       style="color:black;"
+       d="m1080 994q70-92 69-205-4-33-38-33-46 0-36 34 3 55-11 91-23 57-51 85-15 30 18 44 32 15 49-16z"
+       display="block"
+       id="path6" />
+    <path
+       style="color:black;"
+       d="m819 506q-5-36 2-78-60 12-113 56-32 17-15 47 17 31 47 10 21-11 38-20t41-15z"
+       display="block"
+       id="path8" />
+    <path
+       style="color:black;"
+       d="m1756 1774q-1 0 2-54t3-118q1-125 0-258t-36-267q-34-128-75-218t-89-157q-72-108-196-183t-259-98q4 23 3 47t0 46q97 33 183 82t126 106q48 66 89 156t75 219q34 133 35 266t1 259q0 63-3 117t0 55h141z"
+       display="block"
+       id="path10" />
+    <path
+       style="color:black;"
+       d="m404 1187q29-20 6-48-24-23-53-4-61 40-65 105 1 33 39 31 36-3 35-37 8-32 38-47z"
+       display="block"
+       id="path12" />
+    <path
+       style="color:black;"
+       d="m656 689q22-11 22-11 30-12 19-44-12-30-46-20-118 43-163 158-7 33 24 45 31 10 42-22 8-17 12-22 11 9 29 12 61 10 71-54 3-22-10-42z"
+       display="block"
+       id="path14" />
+  </g>
+  <path
+     style="fill:#aa0000;fill-opacity:1;stroke-width:8.67796612"
+     d="m 646.21921,1832.2079 c -10.00828,-10.0082 -6.30707,-75.2883 7.31789,-129.0694 27.57329,-108.8385 73.24924,-181.1348 197.493,-312.5933 128.44638,-135.9053 160.6095,-189.813 169.0975,-283.4197 l 4.725,-52.1083 -33.83647,22.2525 c -18.61006,12.2389 -63.1246,34.6632 -98.92121,49.8319 -77.93743,33.0257 -143.03789,73.5851 -195.02734,121.5072 -36.95402,34.0631 -55.25152,59.8891 -117.30029,165.5634 -43.42063,73.9489 -89.96943,87.6211 -142.19631,41.7652 -26.00964,-22.8367 -34.35014,-25.5487 -63.99469,-20.8083 -67.1276,10.7341 -154.55105,-60.6648 -180.25316,-147.2132 -33.0723,-111.3665 -11.69934,-184.2653 99.51191,-339.41421 86.82291,-121.12518 111.75745,-175.12012 121.88812,-263.94475 8.87757,-77.83762 21.35225,-103.80076 88.01133,-183.17507 l 32.96696,-39.25542 -17.81128,-56.20221 C 507.24622,372.33801 498.11422,313.52758 495.19655,259.7764 l -4.88234,-89.94563 20.82256,6.45933 c 69.74805,21.63642 181.04741,92.41254 256.8937,163.36069 l 54.17301,50.67454 20.73439,-46.33555 c 24.62032,-55.01949 87.52909,-128.77622 109.83614,-128.77622 16.95035,0 88.96959,74.96611 108.73049,113.17959 10.4458,20.19979 20.4378,24.51428 78.4435,33.87162 281.7725,45.45478 487.1035,222.21278 620.3091,533.98952 78.1472,182.90861 102.0903,333.07871 109.6803,687.90841 l 5.4296,253.8305 h -611.6812 c -336.42473,0 -614.28467,-2.6034 -617.46659,-5.7853 z M 1762.8767,1692.6373 c 13.654,-206.1902 2.6158,-460.2011 -25.2131,-580.1967 C 1703.1619,963.67214 1649.8798,831.23499 1582.828,727.58348 1506.5698,609.70041 1422.9542,537.98321 1289.9234,476.35885 1224.8518,446.21546 1110.396,410.5622 1102.8677,418.0905 c -1.6178,1.61781 -0.2907,25.49356 2.9486,53.05722 4.6832,39.84656 9.4128,51.03695 23.0817,54.61142 34.386,8.99216 175.7428,81.92122 215.8462,111.35983 97.5639,71.61851 192.5346,263.62226 246.305,497.95903 11.9645,52.1423 15.7265,122.4629 18.9182,353.6271 l 3.984,288.5424 h 71.6612 71.6612 z M 507.37237,1334.9712 c 20.55826,-51.706 15.68732,-78.4017 -14.30534,-78.4017 -16.11508,0 -78.26025,81.3404 -78.26025,102.4331 0,14.353 27.61574,27.8896 52.04043,25.5092 17.46106,-1.7019 25.32851,-11.3195 40.52516,-49.5406 z M 360.47983,1263.078 c 4.69917,-5.9661 10.98909,-21.1073 13.97759,-33.647 2.98851,-12.5399 15.24222,-29.2265 27.23049,-37.0815 37.59148,-24.6308 23.39389,-65.9495 -22.66105,-65.9495 -48.06383,0 -106.80373,90.7585 -85.04876,131.408 9.9471,18.5863 53.30676,22.0223 66.50173,5.27 z m 719.12927,-262.6575 c 49.0435,-49.04358 91.0188,-201.77738 64.301,-233.97025 -12.9227,-15.57092 -57.148,-17.61614 -66.1449,-3.05888 -3.4481,5.57915 -7.1601,30.25614 -8.2488,54.83776 -1.8989,42.86996 -35.3883,126.25508 -55.7649,138.84855 -15.31299,9.46392 -9.6222,37.62295 10.4438,51.67772 25.5672,17.9079 29.8089,17.2699 55.4138,-8.3349 z M 554.32803,802.96295 c 7.59653,-16.67257 14.31795,-19.19914 43.63712,-16.40311 47.48399,4.52833 68.50265,-15.24546 68.50265,-64.44545 0,-29.49959 3.56342,-38.25207 17.35593,-42.62964 21.36617,-6.78136 23.78917,-48.94253 3.76768,-65.5589 -11.14905,-9.25288 -19.32737,-9.24006 -45.55933,0.0712 -94.58155,33.57321 -185.04038,152.37994 -149.04466,195.75213 16.50526,19.88762 50.92201,16.07993 61.34061,-6.78641 z m 220.42209,-272.8114 47.92107,-23.5027 v -42.16684 c 0,-39.72789 -1.12936,-41.81846 -19.52543,-36.1437 -51.63915,15.92948 -119.32203,61.18842 -119.32203,79.78958 0,19.88352 17.17128,45.52635 30.48595,45.52635 6.88566,0 34.08385,-10.57621 60.44044,-23.50269 z"
+     id="path26"
+     inkscape:connector-curvature="0" />
+</svg>
diff --git a/client/public/images/pieces/Cannibal/bs.svg b/client/public/images/pieces/Cannibal/bs.svg
new file mode 100644 (file)
index 0000000..fab7c21
--- /dev/null
@@ -0,0 +1,62 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   viewBox="0 0 2048 2048"
+   version="1.1"
+   id="svg4"
+   sodipodi:docname="bs.svg"
+   inkscape:version="0.92.4 5da689c313, 2019-01-14">
+  <metadata
+     id="metadata10">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title></dc:title>
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <defs
+     id="defs8" />
+  <sodipodi:namedview
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1"
+     objecttolerance="10"
+     gridtolerance="10"
+     guidetolerance="10"
+     inkscape:pageopacity="0"
+     inkscape:pageshadow="2"
+     inkscape:window-width="1920"
+     inkscape:window-height="1060"
+     id="namedview6"
+     showgrid="false"
+     inkscape:zoom="0.11523438"
+     inkscape:cx="1041.3559"
+     inkscape:cy="1024"
+     inkscape:window-x="0"
+     inkscape:window-y="20"
+     inkscape:window-maximized="0"
+     inkscape:current-layer="svg4" />
+  <path
+     style="color:black;"
+     d="m1024 205h-540q-40 100-40 209 0 185 105 332t270 210q-71 33-115 99t-45 151q0 105 70 182t172 89q-81 61-81 161 0 84 59 144t145 60q84 0 144-60t60-144q0-100-81-161 102-12 172-89t70-182q0-84-45-150t-116-100q165-63 270-210t105-332q0-108-39-209h-540z"
+     fill-rule="nonzero"
+     transform="translate(0,2048) scale(1,-1)"
+     display="block"
+     fill="#000"
+     id="path2" />
+  <path
+     style="fill:#aa0000;fill-opacity:1;stroke-width:8.67796612"
+     d="m 469.31646,1788.1605 c -11.61476,-37.5927 -15.29959,-77.897 -14.88199,-162.7774 0.50066,-101.7611 2.9474,-119.1722 24.97416,-177.716 13.43051,-35.6963 39.62644,-88.9815 58.21317,-118.4115 48.85236,-77.3523 148.25891,-168.3848 222.66932,-203.9117 33.7718,-16.1243 61.62304,-31.3576 61.89166,-33.8519 0.26858,-2.4942 -13.43621,-12.0339 -30.45518,-21.1992 -41.35934,-22.2735 -79.80482,-67.4541 -105.89865,-124.45051 -18.71228,-40.87297 -20.95348,-55.85031 -17.58997,-117.54853 4.37581,-80.2672 16.78508,-109.89694 70.55808,-168.47227 36.96271,-40.26374 107.49168,-79.8968 142.4504,-80.04858 25.73651,-0.11175 24.84417,-4.12898 -9.94513,-44.77247 -70.84573,-82.76729 -61.74879,-196.19826 21.75579,-271.27605 52.32789,-47.04727 106.0704,-61.96735 172.15668,-47.79438 149.9893,32.16696 208.6663,224.02326 101.0632,330.44722 -25.9659,25.68142 -25.5135,26.31205 29.5457,41.18098 116.7417,31.52649 204.1497,164.44684 187.5896,285.2654 -10.5135,76.70514 -69.3478,167.43729 -128.3611,197.95429 -13.4842,6.9729 -24.5166,15.7046 -24.5166,19.4038 0,3.6993 18.5491,15.7065 41.2203,26.6826 150.1855,72.7117 269.4605,218.1014 310.1069,378.003 17.6521,69.4431 16.2055,218.7233 -2.7785,286.7191 l -14.537,52.0678 -539.8969,2.2351 -539.89692,2.2351 z"
+     id="path12"
+     inkscape:connector-curvature="0" />
+</svg>
diff --git a/client/public/images/pieces/Cannibal/bt.svg b/client/public/images/pieces/Cannibal/bt.svg
new file mode 100644 (file)
index 0000000..311d5fd
--- /dev/null
@@ -0,0 +1,109 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   height="100%"
+   width="100%"
+   version="1.1"
+   viewBox="0 0 2048 2048"
+   id="svg12"
+   sodipodi:docname="bt.svg"
+   inkscape:version="0.92.4 5da689c313, 2019-01-14">
+  <metadata
+     id="metadata18">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title></dc:title>
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <defs
+     id="defs16" />
+  <sodipodi:namedview
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1"
+     objecttolerance="10"
+     gridtolerance="10"
+     guidetolerance="10"
+     inkscape:pageopacity="0"
+     inkscape:pageshadow="2"
+     inkscape:window-width="1920"
+     inkscape:window-height="1060"
+     id="namedview14"
+     showgrid="false"
+     inkscape:zoom="0.11523438"
+     inkscape:cx="1041.3559"
+     inkscape:cy="1024"
+     inkscape:window-x="0"
+     inkscape:window-y="20"
+     inkscape:window-maximized="0"
+     inkscape:current-layer="svg12" />
+  <path
+     style="color:black;"
+     d="m1588 793q-83 30-233 49t-333 20q-178 0-326-18t-233-49l50-91q84 25 218 36t293 11q159 0 294-11t219-37l51 90zm226 668q-57 0-97 39t-40 97q0 56 40 96t97 41q56 0 96-40t40-97q0-57-40-96t-96-40zm-1578 0q-57 0-96 39t-40 97q0 56 39 96t97 41q57 0 97-40t40-97q0-57-40-96t-97-40zm1208 110q-57 0-96 39t-40 97q0 56 39 96t97 40q57 0 97-40t40-96q0-57-40-96t-97-40zm-840 0q-57 0-97 39t-40 97q0 56 40 96t97 40q56 0 96-40t40-96q0-57-40-96t-96-40zm1036-1288q-49-43-220-72t-394-29q-227 0-399 30t-217 75l63 240-28 157-88 153-85 622 49 19 274-462 6 550 68 12 209-553 112 595h69l112-593 207 551 69-12 6-550 275 463 47-22-83-619-89-153-28-159 65-243zm-96 32l-30 118q-195 45-490 45-292 0-488-45l-32-119q190 58 521 58 159 0 295-16t224-41zm-26 299q-184 51-490 51-308 0-496-52l15-101q189 49 481 49 291 0 474-48l16 101zm-494 1007q-57 0-96 40t-40 97q0 56 39 96t97 40q56 0 96-40t41-96q0-57-40-97t-97-40z"
+     fill-rule="nonzero"
+     transform="translate(0,2048) scale(1,-1)"
+     display="block"
+     fill="#000"
+     id="path2" />
+  <g
+     fill-rule="nonzero"
+     fill="#fff"
+     id="g10">
+    <path
+       style="color:black;"
+       d="m1588 1255q-83-30-233-49t-333-20q-178 0-326 18t-233 49l50 91q84-25 218-36t293-11 294 11 219 37l51-90z"
+       display="block"
+       id="path4" />
+    <path
+       style="color:black;"
+       d="m1544 1733-30-118q-195-45-490-45-292 0-488 45l-32 119q190-58 521-58 159 0 295 16t224 41z"
+       display="block"
+       id="path6" />
+    <path
+       style="color:black;"
+       d="m1518 1434q-184-51-490-51-308 0-496 52l15 101q189-49 481-49 291 0 474 48l16-101z"
+       display="block"
+       id="path8" />
+  </g>
+  <path
+     style="fill:#aa0000;fill-opacity:1;stroke-width:8.67796612"
+     d="m 822.67119,1855.297 c -180.52333,-14.9818 -350.15015,-51.8342 -389.59443,-84.6417 l -18.15803,-15.1028 31.01025,-115.8962 31.01024,-115.8963 -13.80948,-81.0148 c -11.60124,-68.0599 -20.88223,-93.2389 -58.03956,-157.4597 l -44.23006,-76.4448 -42.23213,-307.69057 c -43.50945,-316.99676 -43.61493,-321.25423 -7.9568,-321.16288 7.15932,0.0182 28.26779,26.31787 46.90771,58.44338 18.63992,32.12553 79.16874,134.5592 134.50847,227.63039 l 100.61771,169.22038 5.41801,-125.83055 c 2.97989,-69.20678 5.9087,-192.70509 6.50847,-274.44068 L 605.72203,486.4 l 27.66102,-5.5322 c 15.21356,-3.04272 30.25849,-2.55458 33.43318,1.08474 3.17469,3.63932 49.71187,123.76949 103.41596,266.95593 53.7041,143.18645 100.86815,263.77643 104.809,267.97783 3.94087,4.2013 9.93712,-7.514 13.325,-26.03394 3.3879,-18.51999 28.21517,-150.82524 55.17173,-294.01168 l 49.01192,-260.33899 31.15676,-2.63035 c 26.4724,-2.23489 31.8408,0.37454 35.7061,17.35593 2.5022,10.99246 27.0071,141.04392 54.4553,289.00324 27.4483,147.95932 52.5036,272.01819 55.6783,275.68649 3.1748,3.6682 51.8549,-116.41318 108.178,-266.84751 63.0581,-168.42281 106.7926,-273.51695 113.8232,-273.51695 6.2797,0 21.4345,3.80843 33.6774,8.46318 l 22.2598,8.46318 v 269.23174 c 0,148.07745 2.9289,269.13726 6.5085,269.02176 3.5797,-0.1155 67.0373,-102.99897 141.017,-228.6299 127.7343,-216.91613 135.4918,-227.98 154.0339,-219.6852 10.739,4.80408 19.5254,12.9122 19.5254,18.01806 0,5.10585 -18.0755,144.0858 -40.1677,308.84434 l -40.1678,299.561 -43.652,73.7627 c -36.239,61.2361 -46.243,87.763 -58.9084,156.2034 l -15.2562,82.4407 29.6524,109.6894 c 16.3087,60.3293 29.6522,115.8765 29.6522,123.4382 0,29.9564 -117.0414,66.1083 -286.0604,88.3589 -122.6973,16.1525 -397.80461,22.7863 -520.99041,12.563 z M 649.11186,1706.8698 c 195.25251,-35.9892 601.19994,-30.9348 799.35874,9.9526 44.8001,9.244 85.9001,16.8585 91.3333,16.9212 13.3744,0.1545 -12.0864,-104.8009 -28.6791,-118.2217 -6.7055,-5.4236 -55.9845,-17.1364 -109.5091,-26.0286 -139.1908,-23.1239 -606.26613,-23.5441 -750.44941,-0.6751 -53.75822,8.5266 -102.76239,17.4294 -108.89818,19.7839 -9.04089,3.4693 -40.68167,97.7781 -40.68167,121.2561 0,3.3929 12.69153,3.3875 28.20339,-0.01 15.51186,-3.3996 69.20678,-13.7388 119.32203,-22.9762 z m 47.72882,-194.5141 c 197.08117,-29.8042 534.85912,-25.1903 727.23982,9.9336 42.0159,7.671 77.9526,12.3872 79.8594,10.4803 1.9069,-1.9069 6.9393,-25.6087 11.183,-52.6708 l 7.7159,-49.2038 -57.2024,-12.8975 c -122.8995,-27.7101 -215.9846,-35.1662 -439.033,-35.1662 -223.92949,0 -316.05364,7.4341 -440.82011,35.5727 l -58.98959,13.3039 5.48176,40.4309 c 9.50433,70.0991 9.28518,69.8049 45.51823,61.0961 17.74703,-4.2657 71.31817,-13.6613 119.04699,-20.8792 z m 870.30072,-211.6338 28.2052,-51.3053 -76.1004,-17.4843 c -277.0485,-63.6525 -699.23196,-65.8529 -978.79072,-5.1013 -86.4101,18.778 -86.24551,18.5751 -58.35057,71.9386 21.90243,41.8997 25.91682,45.2546 49.85441,41.6645 14.31865,-2.1475 70.94237,-10.7646 125.83051,-19.1491 77.63183,-11.8589 157.61778,-15.3633 360.13557,-15.7787 258.1251,-0.5294 378.3091,7.8883 470.0626,32.9238 23.0656,6.2936 43.9649,11.9276 46.4429,12.52 2.4779,0.5927 17.1977,-22.0104 32.7105,-50.2282 z"
+     id="path20"
+     inkscape:connector-curvature="0" />
+  <path
+     style="fill:#aa0000;fill-opacity:1;stroke-width:8.67796612"
+     d="m 545.17481,456.51841 c -98.2783,-50.63299 -95.72312,-184.28376 4.45029,-232.77688 53.74389,-26.01697 101.1103,-17.62428 144.30314,25.56856 57.31547,57.31547 52.86179,142.17807 -10.10451,192.53604 -43.50368,34.79254 -90.03749,39.71689 -138.64892,14.67228 z"
+     id="path22"
+     inkscape:connector-curvature="0" />
+  <path
+     style="fill:#aa0000;fill-opacity:1;stroke-width:8.67796612"
+     d="m 161.78419,558.79732 c -39.19303,-27.20368 -64.140205,-85.54505 -55.73591,-130.3438 6.65537,-35.47617 39.95853,-78.24942 75.05615,-96.39911 105.38182,-54.49505 226.34374,65.15877 173.59618,171.71891 -25.03664,50.57877 -54.84905,70.06224 -113.05885,73.88795 -40.47781,2.66031 -53.16476,-0.33662 -79.85757,-18.86395 z"
+     id="path24"
+     inkscape:connector-curvature="0" />
+  <path
+     style="fill:#aa0000;fill-opacity:1;stroke-width:8.67796612"
+     d="m 974.10537,411.75119 c -35.5659,-16.127 -71.4059,-60.29067 -78.16468,-96.31807 -7.95608,-42.40956 2.74678,-79.88455 32.48988,-113.76007 51.56311,-58.72714 134.43053,-56.96409 191.46093,4.07344 31.5899,33.8095 37.1663,51.75721 32.6004,104.9247 -6.8165,79.37485 -104.3602,134.64649 -178.38653,101.08 z"
+     id="path26"
+     inkscape:connector-curvature="0" />
+  <path
+     style="fill:#aa0000;fill-opacity:1;stroke-width:8.67796612"
+     d="m 1386.6068,456.02712 c -98.4624,-49.90758 -97.2074,-181.27547 2.2046,-230.76986 51.7422,-25.76096 98.9418,-19.8734 141.7087,17.67638 73.6587,64.67324 55.9853,175.00971 -34.6245,216.16261 -46.123,20.94802 -62.8312,20.47881 -109.2888,-3.06913 z"
+     id="path28"
+     inkscape:connector-curvature="0" />
+  <path
+     style="fill:#aa0000;fill-opacity:1;stroke-width:8.67796612"
+     d="m 1744.6258,562.37908 c -81.8609,-49.9112 -83.457,-160.69556 -3.1874,-221.24303 32.4941,-24.5103 102.7223,-27.05411 137.8545,-4.99337 46.2129,29.01875 64.3204,66.10175 60.5998,124.10457 -3.4319,53.50156 -22.4243,83.05357 -68.9262,107.24846 -33.8091,17.59089 -93.0311,15.19248 -126.3407,-5.11663 z"
+     id="path30"
+     inkscape:connector-curvature="0" />
+</svg>
diff --git a/client/public/images/pieces/Cannibal/bu.svg b/client/public/images/pieces/Cannibal/bu.svg
new file mode 100644 (file)
index 0000000..bce3eed
--- /dev/null
@@ -0,0 +1,94 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   height="100%"
+   width="100%"
+   version="1.1"
+   viewBox="0 0 2048 2048"
+   id="svg16"
+   sodipodi:docname="bu.svg"
+   inkscape:version="0.92.4 5da689c313, 2019-01-14">
+  <metadata
+     id="metadata22">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title></dc:title>
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <defs
+     id="defs20" />
+  <sodipodi:namedview
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1"
+     objecttolerance="10"
+     gridtolerance="10"
+     guidetolerance="10"
+     inkscape:pageopacity="0"
+     inkscape:pageshadow="2"
+     inkscape:window-width="1920"
+     inkscape:window-height="1060"
+     id="namedview18"
+     showgrid="false"
+     inkscape:zoom="0.23046875"
+     inkscape:cx="1041.3559"
+     inkscape:cy="1024"
+     inkscape:window-x="0"
+     inkscape:window-y="20"
+     inkscape:window-maximized="0"
+     inkscape:current-layer="svg16" />
+  <path
+     style="color:black;"
+     d="m1161 1706h170v137h274v-375l-222-171v-478l170-170v-205h153v-239h-1365v239h153v205l171 170v478l-222 171v375h273v-137h171v137h274v-137zm-597-1246v-102h920v102h-920zm460 1092h-512v-46l73-55h879l71 55v46h-511zm0-169h-350l60-47v-57h580v57l60 47h-350zm0-546h-290v-46l-60-58h700l-60 58v46h-290zm0-172h-414l-46-43v-58h920v58l-46 43h-414z"
+     fill-rule="nonzero"
+     transform="translate(0,2048) scale(1,-1)"
+     display="block"
+     fill="#000"
+     id="path2" />
+  <g
+     fill-rule="nonzero"
+     fill="#fff"
+     id="g14">
+    <path
+       style="color:black;"
+       d="m564 1588v102h920v-102h-920z"
+       display="block"
+       id="path4" />
+    <path
+       style="color:black;"
+       d="m1024 496h-512v46l73 55h879l71-55v-46h-511z"
+       display="block"
+       id="path6" />
+    <path
+       style="color:black;"
+       d="m1024 665h-350l60 47v57h580v-57l60-47h-350z"
+       display="block"
+       id="path8" />
+    <path
+       style="color:black;"
+       d="m1024 1211h-290v46l-60 58h700l-60-58v-46h-290z"
+       display="block"
+       id="path10" />
+    <path
+       style="color:black;"
+       d="m1024 1383h-414l-46 43v58h920v-58l-46-43h-414z"
+       display="block"
+       id="path12" />
+  </g>
+  <path
+     style="fill:#aa0000;fill-opacity:1;stroke-width:4.33898306"
+     d="m 341.91186,1721.7085 v -117.1526 h 78.1017 78.10169 v -103.0926 -103.0925 l 84.64611,-84.5626 84.6461,-84.5626 L 666.28678,988.74598 665.1661,748.24639 555.60678,663.86727 446.04746,579.48815 V 393.44577 207.40339 h 134.50847 134.50848 v 67.25424 67.25423 h 86.77966 86.77966 v -67.25423 -67.25424 h 134.50847 134.5085 v 67.25424 67.25423 h 86.7796 86.7797 v -67.25423 -67.25424 h 136.678 136.6779 l -0.1349,185.49152 -0.135,185.49153 -112.6786,86.49485 -112.6786,86.49481 v 238.68741 238.68739 l 86.7797,87.1566 86.7796,87.1566 v 100.7459 100.7459 h 75.9322 75.9322 v 117.1526 117.1525 H 1023.1322 341.91186 Z M 1487.4034,1639.2678 V 1587.2 H 1025.3017 563.2 v 52.0678 52.0678 h 462.1017 462.1017 z m -0.1011,-183.322 -0.1011,-31.4577 -25.5942,-22.7796 -25.5941,-22.7797 H 1023.2109 610.409 l -23.60468,22.3243 -23.60432,22.3243 v 31.913 31.913 h 462.1017 462.1017 z m -112.7125,-141.414 c 0,-2.0081 -12.6915,-15.8382 -28.2034,-30.7335 -27.9077,-26.7984 -28.2033,-27.3286 -28.2033,-50.586 v -23.5038 H 1025.3017 732.42034 v 22.6776 c 0,22.3396 -0.46733,23.1481 -31.34903,54.2373 l -31.34904,31.5597 h 352.43383 c 193.8385,0 352.4337,-1.6431 352.4337,-3.6513 z m -57.3077,-573.88696 1.2687,-28.6569 29.1042,-23.4109 29.1043,-23.41094 -176.8135,-1.13343 c -97.2475,-0.62338 -256.14765,-0.62338 -353.11151,0 l -176.29792,1.13343 30.77174,23.86441 30.77175,23.86441 0.17022,29.31868 0.17026,29.31868 291.79656,-1.11529 291.7967,-1.1153 z m 184.223,-169.16694 33.6271,-26.267 v -25.71732 -25.71731 h -512 -512 v 25.58082 25.58082 l 35.50525,26.48697 35.50526,26.48698 442.86759,-0.0835 442.8677,-0.0835 z"
+     id="path24"
+     inkscape:connector-curvature="0" />
+</svg>
diff --git a/client/public/images/pieces/Cannibal/wc.svg b/client/public/images/pieces/Cannibal/wc.svg
new file mode 100644 (file)
index 0000000..b51dea5
--- /dev/null
@@ -0,0 +1,126 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   height="100%"
+   width="100%"
+   version="1.1"
+   viewBox="0 0 2048 2048"
+   id="svg18"
+   sodipodi:docname="wc.svg"
+   inkscape:version="0.92.4 5da689c313, 2019-01-14">
+  <metadata
+     id="metadata24">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title></dc:title>
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <defs
+     id="defs22" />
+  <sodipodi:namedview
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1"
+     objecttolerance="10"
+     gridtolerance="10"
+     guidetolerance="10"
+     inkscape:pageopacity="0"
+     inkscape:pageshadow="2"
+     inkscape:window-width="1920"
+     inkscape:window-height="1060"
+     id="namedview20"
+     showgrid="false"
+     inkscape:zoom="0.16296602"
+     inkscape:cx="1041.3559"
+     inkscape:cy="1024"
+     inkscape:window-x="0"
+     inkscape:window-y="20"
+     inkscape:window-maximized="0"
+     inkscape:current-layer="svg18" />
+  <path
+     style="color:black;"
+     d="m1024 1166q97 0 186 15 98-35 142-109 38-64 38-141 0-46-23-101t-75-101q-59-49-129-107t-139-137q-70 78-140 136t-128 108q-53 45-75 100t-23 102q0 77 37 141 43 74 143 109 88-15 186-15z"
+     fill-rule="nonzero"
+     display="block"
+     fill="#fff"
+     id="path2" />
+  <path
+     style="color:black;"
+     d="m988 1138l-83 1q-34 0-34 34t34 34h83v86q0 35 36 35 35 0 35-35v-86h86q33 0 33-34t-33-34h-86v-82q0-36-35-36-36 0-36 36v81zm36-578q68 0 132 11t125 28q-117 31-257 31-142 0-257-31 58-16 123-27t134-12zm0 1089q68 0 68 68t-68 68-68-68 68-68zm0-949q117 0 225-23l-48 123q-88 14-177 14-91 0-178-14l-48-123q107 23 226 23zm0 182q97 0 186-15 98 35 142 109 38 64 38 141 0 46-23 101t-75 101q-59 49-129 107t-139 137q-70-78-140-136t-128-108q-53-45-75-100t-23-102q0-77 37-141 43-74 143-109 88 15 186 15zm-36-377h-32q-56-90-107-113-24-12-53-22t-67-10q-7 0-107 16-48 7-76 15t-44 10q-57 7-133-6-46-8-86-29l48-78q12 12 31 15t36 8q42 7 80 2 13-3 51-7t101-15q75-11 102-11 105 0 161 40 34 26 64 72t31 113zm36-113q-14-57-34-79t-53-46q-36-25-85-42t-109-9l-281 39q-17 2-30 0t-26-2q-21 0-53-9t-51-28l-97 159q18 20 32 28t33 17q58 27 124 33 28 2 55 1t56 2q54-9 108-16t110-16q60 0 81 12 11 6 35 22t48 47q-53 6-108 20t-97 31l104 258q-78 45-109 72t-49 64q-26 46-33 89t-7 77q1 60 28 132t104 130q63 48 123 99t119 119q-74 38-74 121 0 56 39 96t97 40q56 0 96-40t40-96q0-82-74-121 58-68 117-119t125-99q75-57 102-129t29-133q0-34-7-77t-32-89q-20-36-50-63t-108-73l104-258q-44-16-99-30t-106-21q23-31 47-47t36-22q21-12 81-12 54 8 108 15t110 17q27-3 54-2t57-1q64-6 124-33 18-9 32-17t33-28l-98-159q-18 18-50 27t-53 10q-13 0-26 2t-31 0l-280-39q-60-9-111 8t-85 45q-33 27-52 46t-33 77zm35 113q0-66 30-112t66-73q55-40 161-40 26 0 102 11 62 10 100 14t51 8q38 5 80-2 16-4 35-7t33-16l48 78q-41 21-87 29-76 13-133 6-17-2-44-10t-75-15q-101-16-107-16-39 0-68 10t-52 22q-53 24-108 113h-32z"
+     fill-rule="nonzero"
+     transform="translate(0,2048) scale(1,-1)"
+     display="block"
+     fill="#000"
+     id="path4" />
+  <g
+     fill-rule="nonzero"
+     fill="#fff"
+     id="g16">
+    <path
+       style="color:black;"
+       d="m1024 1488q68 0 132-11t125-28q-117-31-257-31-142 0-257 31 58 16 123 27t134 12z"
+       display="block"
+       id="path6" />
+    <path
+       style="color:black;"
+       d="m1024 399q68 0 68-68t-68-68-68 68 68 68z"
+       display="block"
+       id="path8" />
+    <path
+       style="color:black;"
+       d="m1024 1348q117 0 225 23l-48-123q-88-14-177-14-91 0-178 14l-48 123q107-23 226-23z"
+       display="block"
+       id="path10" />
+    <path
+       style="color:black;"
+       d="m988 1543h-32q-56 90-107 113-24 12-53 22t-67 10q-7 0-107-16-48-7-76-15t-44-10q-57-7-133 6-46 8-86 29l48 78q12-12 31-15t36-8q42-7 80-2 13 3 51 7t101 15q75 11 102 11 105 0 161-40 34-26 64-72t31-113z"
+       display="block"
+       id="path12" />
+    <path
+       style="color:black;"
+       d="m1059 1543q0 66 30 112t66 73q55 40 161 40 26 0 102-11 62-10 100-14t51-8q38-5 80 2 16 4 35 7t33 16l48-78q-41-21-87-29-76-13-133-6-17 2-44 10t-75 15q-101 16-107 16-39 0-68-10t-52-22q-53-24-108-113h-32z"
+       display="block"
+       id="path14" />
+  </g>
+  <path
+     style="fill:#ffcc00;fill-opacity:1;stroke-width:8.67796612"
+     d="m 800.97627,1159.9976 c -87.05319,-45.5347 -134.28336,-121.7479 -134.4237,-216.91333 -0.0957,-64.874 16.01692,-118.77001 48.07071,-160.79468 11.9796,-15.70607 75.36062,-75.0641 140.8467,-131.90673 65.48609,-56.84264 130.14234,-115.11812 143.68056,-129.50107 l 24.61496,-26.15082 53.5363,53.32604 c 29.4449,29.32932 95.1582,87.77276 146.0294,129.8743 50.8712,42.10154 102.3803,91.48882 114.4646,109.7495 88.4137,133.60205 46.2579,305.60949 -91.1339,371.85219 -34.534,16.6504 -43.4781,17.4252 -102.906,8.9146 -59.5244,-8.5245 -247.60906,-4.9704 -290.71183,5.4933 -9.54576,2.3173 -32.97627,-3.9571 -52.0678,-13.9433 z m 255.69463,-145.8407 c 4.9409,-9.2319 8.9833,-36.3812 8.9833,-60.33163 v -43.54624 l 54.2373,-2.58359 54.2373,-2.58358 V 874.73898 844.3661 l -54.2373,-2.58358 -54.2373,-2.58358 v -45.65611 c 0,-56.70368 -13.6186,-77.51264 -48.1567,-73.58221 -25.2414,2.87247 -25.64251,3.74795 -28.17196,61.49023 l -2.56599,58.57627 h -55.42549 c -47.804,0 -56.18298,2.3866 -60.93406,17.35593 -3.0297,9.54576 -3.0297,25.1661 0,34.71187 4.51121,14.21358 13.13006,17.35593 47.60385,17.35593 65.68527,0 69.54869,3.38582 69.54869,60.95104 0,32.21321 3.91652,51.99651 10.84746,54.79321 24.0776,9.7155 49.7684,4.8489 58.2709,-11.0382 z"
+     id="path26"
+     inkscape:connector-curvature="0" />
+  <path
+     style="fill:#ffcc00;fill-opacity:1;stroke-width:8.67796612"
+     d="M 980.80548,383.94182 C 965.9735,373.5531 961.51864,361.83719 961.51864,333.219 c 0,-45.35868 19.33129,-65.93764 61.93996,-65.93764 40.385,0 58.8912,15.24021 65.1207,53.62822 4.3157,26.59489 1.4726,35.57656 -17.1596,54.20882 -25.6026,25.60251 -61.6477,29.11236 -90.61422,8.82342 z"
+     id="path28"
+     inkscape:connector-curvature="0" />
+  <path
+     style="fill:#ffcc00;fill-opacity:1;stroke-width:6.13624859"
+     d="m 824.27286,1308.2731 22.31222,-58.1295 27.739,-4.767 c 41.69951,-7.1662 295.03742,-5.0229 313.07462,2.6486 11.7646,5.0037 20.0466,19.0271 35.5293,60.1597 11.1038,29.4994 18.9677,54.8562 17.4753,56.3485 -1.4923,1.4923 -18.8612,-0.51 -38.5974,-4.4497 -62.8066,-12.5372 -254.18711,-14.5583 -326.90268,-3.4524 -35.18755,5.3743 -65.99454,9.7714 -68.45997,9.7714 -2.46544,0 5.55788,-26.1583 17.82961,-58.1296 z"
+     id="path30"
+     inkscape:connector-curvature="0" />
+  <path
+     style="fill:#ffcc00;fill-opacity:1;stroke-width:6.13624859"
+     d="m 917.40371,1478.8636 c -8.43734,-1.3511 -44.3344,-8.386 -79.77123,-15.6331 l -64.43062,-13.1767 30.68125,-7.8691 c 92.74715,-23.7878 307.47489,-26.448 416.02979,-5.154 29.695,5.825 53.073,11.5089 51.9509,12.631 -1.1221,1.1221 -36.8103,9.0803 -79.3071,17.6849 -64.1926,12.9976 -92.711,15.5034 -168.5396,14.8092 -50.20003,-0.4597 -98.17605,-1.9411 -106.61339,-3.2922 z"
+     id="path32"
+     inkscape:connector-curvature="0" />
+  <path
+     style="fill:#ffcc00;fill-opacity:1;stroke-width:6.13624859"
+     d="m 1226.5694,1756.5958 c -85.9282,-20.8535 -148.5732,-92.8152 -164.7316,-189.231 -3.5744,-21.3281 -2.7675,-23.0109 11.0339,-23.0109 10.0951,0 20.3623,7.4104 31.8819,23.0109 49.5841,67.1496 92.5625,97.6408 163.0995,115.7115 35.0317,8.9747 42.4333,8.7516 121.0967,-3.6493 46.0814,-7.2646 99.3702,-17.1567 118.4195,-21.9826 63.8895,-16.1854 178.1437,-8.0013 236.3262,16.9284 l 19.3751,8.3017 -22.0782,35.5659 c -18.3708,29.5934 -24.2005,34.8766 -34.7158,31.4615 -6.9506,-2.2574 -32.7732,-7.8997 -57.3835,-12.5385 -41.9984,-7.9162 -52.7373,-7.3136 -174.8831,9.813 -139.1255,19.5074 -197.3666,21.7715 -247.4406,9.6194 z"
+     id="path34"
+     inkscape:connector-curvature="0" />
+  <path
+     style="fill:#ffcc00;fill-opacity:1;stroke-width:6.13624859"
+     d="m 656.61314,1759.3398 c -16.87468,-2.8531 -72.10092,-10.8073 -122.72497,-17.6761 -83.4441,-11.3218 -96.56781,-11.6966 -140.46584,-4.0122 -26.63215,4.6621 -51.21774,11.2721 -54.63464,14.689 -4.19258,4.1926 -11.67949,-2.4079 -23.02639,-20.3001 -34.29128,-54.0718 -34.79139,-50.0288 8.03284,-64.9395 58.74999,-20.4559 158.16962,-23.6557 228.80111,-7.3639 30.21035,6.9682 84.43739,16.9551 120.50454,22.1929 73.86422,10.727 104.55953,7.5072 159.32433,-16.7124 41.13417,-18.1914 68.31378,-41.5723 100.32021,-86.2991 17.92779,-25.0528 28.4976,-34.3355 39.20627,-34.4322 13.99857,-0.1263 14.49707,1.2543 11.02825,30.5429 -5.39032,45.5132 -24.09109,81.9322 -63.03786,122.7638 -46.40503,48.6508 -80.91833,61.9238 -168.216,64.6916 -35.43683,1.1235 -78.23717,-0.2916 -95.11185,-3.1447 z"
+     id="path36"
+     inkscape:connector-curvature="0" />
+</svg>
diff --git a/client/public/images/pieces/Cannibal/wl.svg b/client/public/images/pieces/Cannibal/wl.svg
new file mode 100644 (file)
index 0000000..322c54c
--- /dev/null
@@ -0,0 +1,124 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   height="100%"
+   width="100%"
+   version="1.1"
+   viewBox="0 0 2048 2048"
+   id="svg18"
+   sodipodi:docname="wl.svg"
+   inkscape:version="0.92.4 5da689c313, 2019-01-14">
+  <metadata
+     id="metadata24">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title></dc:title>
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <defs
+     id="defs22" />
+  <sodipodi:namedview
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1"
+     objecttolerance="10"
+     gridtolerance="10"
+     guidetolerance="10"
+     inkscape:pageopacity="0"
+     inkscape:pageshadow="2"
+     inkscape:window-width="1920"
+     inkscape:window-height="1060"
+     id="namedview20"
+     showgrid="false"
+     inkscape:zoom="0.11523438"
+     inkscape:cx="1041.3559"
+     inkscape:cy="1024"
+     inkscape:window-x="0"
+     inkscape:window-y="20"
+     inkscape:window-maximized="0"
+     inkscape:current-layer="svg18" />
+  <path
+     style="color:black;"
+     d="m524 583q190 48 504 48 308 0 497-46l25 147q-201 53-526 53-327 0-525-54l25-148zm-61-61l-33 187q-1 0-3 4-5 7-28 18t-55 40q-44 37-68 60t-45 50q-61 84-68 203-10 115 93 229 104 114 281 107 66-4 155-32 29-12 59-23t61-24q16-8 28-16-5 21-5 42 0 78 55 133t134 56q78 0 133-55t55-133q0-16-4-42 14 9 27 15 46 20 121 47 86 29 155 33 177 8 280-107 101-114 94-229-8-119-69-203-20-27-45-50t-67-60q-33-28-56-39t-27-19q-1-2-2-3t-1-2l-32-188 66-247q-50-45-224-74t-402-29q-232 0-408 30t-221 77l66 244zm1081-117l-30 115q-198 44-490 44-291 0-489-44l-32-116q191 56 522 56 329 0 519-55zm26-94q-193 78-542 78-362 0-548-80 176-70 545-70 176 0 321 19t224 53zm-581 542q-1 39-3 77t-15 86q-41 134-124 216-43 42-132 78-102 40-193 40-158 0-234-113-43-60-43-150 0-98 48-161 29-37 74-74t84-67q175 63 538 68zm35 186q7 28 12 39 10 39 23 66 6 17 17 39t25 52q8 17 17 41t18 49q8 20 8 43 0 49-35 83t-85 35q-119 0-119-119 0-23 8-43 22-65 34-90 13-29 24-51t19-40q13-33 22-66 2-6 12-38zm34-186q172-2 315-20t224-47q38 30 83 66t75 75q48 61 48 161 0 90-43 150-77 112-234 112-94 0-193-39-87-35-132-78-84-84-124-216-14-47-16-85t-3-79zm1 706h-71v131h-83q-34 0-34 33v1q0 33 34 33h83v85q0 35 36 35 35 0 35-35v-85h86q33 0 33-33v-1q0-33-33-33l-85-1-1-130z"
+     fill-rule="nonzero"
+     transform="translate(0,2048) scale(1,-1)"
+     display="block"
+     fill="#000"
+     id="path2" />
+  <g
+     fill-rule="nonzero"
+     fill="#fff"
+     id="g16">
+    <path
+       style="color:black;"
+       d="m524 1465q190-48 504-48 308 0 497 46l25-147q-201-53-526-53-327 0-525 54l25 148z"
+       display="block"
+       id="path4" />
+    <path
+       style="color:black;"
+       d="m1544 1643-30-115q-198-44-490-44-291 0-489 44l-32 116q191-56 522-56 329 0 519 55z"
+       display="block"
+       id="path6" />
+    <path
+       style="color:black;"
+       d="m1570 1737q-193-78-542-78-362 0-548 80 176 70 545 70 176 0 321-19t224-53z"
+       display="block"
+       id="path8" />
+    <path
+       style="color:black;"
+       d="m989 1195q-1-39-3-77t-15-86q-41-134-124-216-43-42-132-78-102-40-193-40-158 0-234 113-43 60-43 150 0 98 48 161 29 37 74 74t84 67q175-63 538-68z"
+       display="block"
+       id="path10" />
+    <path
+       style="color:black;"
+       d="m1024 1009q7-28 12-39 10-39 23-66 6-17 17-39t25-52q8-17 17-41t18-49q8-20 8-43 0-49-35-83t-85-35q-119 0-119 119 0 23 8 43 22 65 34 90 13 29 24 51t19 40q13 33 22 66 2 6 12 38z"
+       display="block"
+       id="path12" />
+    <path
+       style="color:black;"
+       d="m1058 1195q172 2 315 20t224 47q38-30 83-66t75-75q48-61 48-161 0-90-43-150-77-112-234-112-94 0-193 39-87 35-132 78-84 84-124 216-14 47-16 85t-3 79z"
+       display="block"
+       id="path14" />
+  </g>
+  <path
+     style="fill:#ffcc00;fill-opacity:1;stroke-width:8.67796612"
+     d="m 383.03567,1205.1689 c -105.99809,-88.475 -133.59261,-139.9162 -132.45004,-246.9108 0.7615,-71.31086 10.26284,-101.85753 48.49408,-155.90774 90.63834,-128.14186 326.68084,-133.11317 511.16521,-10.7657 87.7216,58.17575 161.45674,201.26075 173.65637,336.98484 l 6.04518,67.2542 h -77.79149 c -137.59645,0 -267.76383,16.5969 -449.61939,57.3285 -11.93079,2.6722 -36.78099,-12.3265 -79.49992,-47.9833 z"
+     id="path26"
+     inkscape:connector-curvature="0" />
+  <path
+     style="fill:#ffcc00;fill-opacity:1;stroke-width:8.67796612"
+     d="M 1017.5383,974.53559 C 1010.378,954.66005 981.33843,884.06646 939.00306,783.62034 890.14568,667.6999 904.42735,591.05673 978.60737,571.08212 c 70.74513,-19.04968 138.40633,14.31467 157.36683,77.59893 11.1621,37.25596 0.097,80.3255 -46.9281,182.6681 -14.2552,31.02373 -34.7692,79.83729 -45.5868,108.47458 -15.8795,42.03783 -20.8727,48.72447 -25.921,34.71186 z"
+     id="path30"
+     inkscape:connector-curvature="0" />
+  <path
+     style="fill:#ffcc00;fill-opacity:1;stroke-width:8.67796612"
+     d="m 1538.6034,1242.9695 c -76.6525,-21.2841 -213.4658,-38.7073 -347.7261,-44.2829 l -130.777,-5.431 3.2917,-48.6142 c 10.7318,-158.49703 89.9776,-307.13586 197.2702,-370.01347 79.5751,-46.63413 158.2416,-67.63186 256.2463,-68.39747 77.611,-0.6063 97.689,2.26217 135.4404,19.34988 118.4057,53.59482 173.8493,188.22493 134.2228,325.92466 -13.6125,47.3028 -77.8269,123.0538 -147.9466,174.5264 -46.6117,34.2161 -41.1362,33.2888 -100.0217,16.9381 z"
+     id="path32"
+     inkscape:connector-curvature="0" />
+  <path
+     style="fill:#ffcc00;fill-opacity:1;stroke-width:8.67796612"
+     d="m 524.39888,1448.9453 c -2.16755,-7.9626 -6.36809,-30.0978 -9.33452,-49.1894 -2.96643,-19.0915 -7.41004,-44.9375 -9.87468,-57.4355 -4.12206,-20.9027 -1.25316,-23.5365 35.80059,-32.8667 199.30282,-50.1851 651.82343,-57.0832 898.58693,-13.6979 117.1382,20.5949 109.9898,12.4696 93.6286,106.4224 l -9.7367,55.9118 -31.4837,-5.4653 c -171.5669,-29.7826 -224.2581,-33.7233 -456.704,-34.1566 -236.2115,-0.4403 -391.69667,11.5282 -479.0979,36.8787 -22.982,6.6659 -28.53173,5.5481 -31.78462,-6.4015 z"
+     id="path34"
+     inkscape:connector-curvature="0" />
+  <path
+     style="fill:#ffcc00;fill-opacity:1;stroke-width:8.67796612"
+     d="m 510.26441,1633.0456 c 0,-3.5881 6.259,-28.8309 13.9089,-56.0949 l 13.9089,-49.5709 96.73516,-16.0831 c 141.35286,-23.5012 662.33203,-21.9898 790.25223,2.2925 l 86.0594,16.3362 15.4783,55.1374 15.4782,55.1374 -19.097,-5.1829 c -237.4101,-64.4318 -778.14573,-64.3834 -997.53765,0.089 -8.35254,2.4546 -15.18644,1.5271 -15.18644,-2.0611 z"
+     id="path36"
+     inkscape:connector-curvature="0" />
+  <path
+     style="fill:#ffcc00;fill-opacity:1;stroke-width:8.67796612"
+     d="M 748.90847,1793.7305 C 663.75136,1784.847 551.37641,1762.6453 515.36585,1747.59 l -26.79636,-11.2031 60.74576,-18.2931 c 138.43078,-41.6872 210.32612,-49.0743 477.28815,-49.0405 207.317,0.026 266.9521,2.8519 338.4407,16.0356 89.5021,16.5058 199.7674,47.1482 193.2202,53.6954 -10.7394,10.7394 -154.7451,40.5988 -249.5738,51.7488 -117.677,13.8365 -440.13961,15.6784 -559.78203,3.1974 z"
+     id="path38"
+     inkscape:connector-curvature="0" />
+</svg>
diff --git a/client/public/images/pieces/Cannibal/wo.svg b/client/public/images/pieces/Cannibal/wo.svg
new file mode 100644 (file)
index 0000000..0e3bd47
--- /dev/null
@@ -0,0 +1,71 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   height="100%"
+   width="100%"
+   version="1.1"
+   viewBox="0 0 2048 2048"
+   id="svg6"
+   sodipodi:docname="wo.svg"
+   inkscape:version="0.92.4 5da689c313, 2019-01-14">
+  <metadata
+     id="metadata12">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title></dc:title>
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <defs
+     id="defs10" />
+  <sodipodi:namedview
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1"
+     objecttolerance="10"
+     gridtolerance="10"
+     guidetolerance="10"
+     inkscape:pageopacity="0"
+     inkscape:pageshadow="2"
+     inkscape:window-width="1920"
+     inkscape:window-height="1060"
+     id="namedview8"
+     showgrid="false"
+     inkscape:zoom="0.11523438"
+     inkscape:cx="1041.3559"
+     inkscape:cy="1024"
+     inkscape:window-x="0"
+     inkscape:window-y="20"
+     inkscape:window-maximized="0"
+     inkscape:current-layer="svg6" />
+  <path
+     style="color:black;"
+     d="m1756 1774q-1 0 2-54t3-118q1-125 0-258t-36-267q-34-128-75-218t-89-157q-72-108-196-183t-259-98q9 49 8 96-2 36-34 36-37 0-33-36 3-132-94-226-76 80-82 186-2 35-36 31-32-1-32-37 0 0 2-8-41 13-86 37-29 20-47-10t16-47q43-22 65-33-86-88-196-142 12 139 76 263 17 26-8 46-28 22-47-7-7-10-20-36-21 21-28 31-7 9-24 40t-26 51q-9 25-8 40t3 35q-9 59-40 111t-81 127q-47 72-72 108t-38 92q-9 34 0 82t39 76q46 47 89 43 14 0 37-11t37-42q26-57 43-57 25 0 27 28 0 6-16 50-9 20-24 42-19 26-17 22 16 57 53 20 11-11 25-41t44-81q35-59 75-96t71-60q18-13 44-30t70-35q35-14 77-34t76-53q46-45 71-111 13-37 10-91-9-34 34-34 32 0 36 33 0 113-64 206 21 64 11 140-9 61-42 130t-136 155q-207 172-196 354 0 0 170 0t321 0h547z"
+     fill-rule="nonzero"
+     display="block"
+     fill="#fff"
+     id="path2" />
+  <path
+     style="color:black;"
+     d="m697 1359q13-20 10-42-10-64-71-54-18 3-29 12-4-5-12-22-11-32-42-22-31 12-24 45 45 115 163 158 34 10 45-20 12-32-18-44-6-3-11-5t-11-6zm-297-477q-29-18-35-48 1-33-31-36-35-4-36 30 4 66 59 105 26 21 48-4 22-27-5-47zm679 815q157-10 291-81t228-182q66-78 124-188t94-233q40-143 50-300t11-292v-218t-155 0-404 0h-671q-9 0-9 49t7 79q4 24 19 68t50 107q16 32 76 93t138 143q45 46 70 116t22 127q-37-30-81-49-212-76-307-220-7-9-45-81-20-38-34-52-19-19-55-21-56-3-87 54-42-12-75-10-56 21-81 45-51 51-66 102t-16 110q0 84 104 222 122 159 130 242 0 36 7 81 6 31 25 60 13 20 17 27t17 23q9 12 15 18t15 18q11 13 28 30-53 146-43 301 199-71 334-223 33 113 130 183 80-56 127-148zm677-1423q-1 0 2 54t3 118q1 125 0 258t-36 267q-34 128-75 218t-89 157q-72 108-196 183t-259 98q9-49 8-96-2-36-34-36-37 0-33 36 3 132-94 226-76-80-82-186-2-35-36-31-32 1-32 37 0 0 2 8-41-13-86-37-29-20-47 10t16 47q43 22 65 33-86 88-196 142 12-139 76-263 17-26-8-46-28-22-47 7-7 10-20 36-21-21-28-31-7-9-24-40t-26-51q-9-25-8-40t3-35q-9-59-40-111t-81-127q-47-72-72-108t-38-92q-9-34 0-82t39-76q46-47 89-43 14 0 37 11t37 42q26 57 43 57 25 0 27-28 0-6-16-50-9-20-24-42-19-26-17-22 16-57 53-20 11 11 25 41t44 81q35 59 75 96t71 60q18 13 44 30t70 35q35 14 77 34t76 53q46 45 71 111 13 37 10 91-9 34 34 34 32 0 36-33 0-113-64-206 21-64 11-140-9-61-42-130t-136-155q-207-172-196-354 0 0 170 0t321 0h547z"
+     fill-rule="nonzero"
+     transform="translate(0,2048) scale(1,-1)"
+     display="block"
+     fill="#000"
+     id="path4" />
+  <path
+     style="fill:#ffcc00;fill-opacity:1;stroke-width:8.67796612"
+     d="m 722.74458,1727.3607 c 16.40726,-109.4115 63.67577,-182.6701 199.96743,-309.9175 83.23649,-77.713 104.10369,-102.5993 129.91119,-154.9325 38.7086,-78.4943 53.3173,-152.8139 42.3597,-215.499 -7.3451,-42.0189 -5.7974,-51.49462 16.2498,-99.49011 29.0323,-63.20179 43.8935,-142.67319 32.3551,-173.02155 -6.0672,-15.95776 -14.4923,-21.25258 -33.8168,-21.25258 -32.2052,0 -37.9061,9.2458 -39.6909,64.37136 -0.7855,24.25677 -9.4727,62.15409 -19.3051,84.21629 -32.5474,73.0306 -72.41612,106.88849 -197.95463,168.10979 -150.88953,73.5842 -228.01818,143.0876 -298.61096,269.089 -47.61765,84.9931 -63.27682,101.2682 -80.68573,83.8592 -6.93497,-6.9349 -1.83237,-24.7258 18.68537,-65.149 31.8715,-62.792 32.79204,-95.3592 2.8157,-99.6156 -14.60744,-2.0742 -23.42111,4.3334 -34.71186,25.2359 -8.32328,15.4087 -25.37742,39.895 -37.8981,54.4138 -56.20367,65.1735 -161.78391,2.1435 -176.57684,-105.4139 -8.3618,-60.7976 10.55309,-105.8294 105.67285,-251.58186 102.82608,-157.56091 123.8202,-201.21193 124.04174,-257.90786 0.18267,-46.74605 30.82423,-124.20952 62.51052,-158.02983 l 17.97199,-19.18236 16.79537,21.35185 c 18.20256,23.14081 40.68698,27.44124 57.18992,10.9383 15.47223,-15.47223 13.27433,-27.96929 -19.34645,-110.00203 -27.52833,-69.22653 -54.37982,-180.16774 -45.706,-188.84156 5.77615,-5.77615 128.94222,79.11386 155.9892,107.51277 l 24.11642,25.32186 -35.49115,16.00428 c -44.41077,20.02646 -55.43387,38.54413 -37.87079,63.61895 16.49659,23.55217 27.89964,23.4312 78.03159,-0.82779 l 40.34981,-19.52543 13.0086,19.52543 c 8.43604,12.66218 21.72941,19.52542 37.81868,19.52542 20.06687,0 25.767,-4.56242 29.81528,-23.86441 17.49782,-83.42855 25.29925,-106.27688 48.89022,-143.18644 14.49044,-22.67122 29.64551,-41.22037 33.67793,-41.22037 13.11696,0 52.47762,58.6544 69.59962,103.71595 9.1944,24.19761 16.717,62.69816 16.717,85.5568 0,47.54783 10.6948,62.38827 44.9601,62.38827 29.3042,0 37.8281,-24.23251 30.4467,-86.5564 -5.6719,-47.89102 -10.5631,-47.04037 89.4746,-15.56102 145.9368,45.92263 280.8633,145.66447 363.2466,268.52305 69.6749,103.90646 133.4153,263.42643 166.6274,417.01043 20.2898,93.8263 32.0005,386.0828 21.5662,538.2111 l -6.3985,93.2881 H 1233.0542 716.56493 Z m -364.96444,-484.428 c 7.50025,-7.5002 13.63681,-20.4873 13.63681,-28.8602 0,-8.3729 9.94031,-24.5618 22.08958,-35.9755 24.88653,-23.3797 25.9875,-57.3133 2.33977,-72.1159 -31.07515,-19.4519 -86.83428,35.2232 -99.25463,97.3249 -9.16803,45.8402 29.76275,71.0525 61.18847,39.6267 z M 594.24473,803.14576 c 12.64983,-15.61639 23.03712,-18.99915 51.88393,-16.89673 29.40919,2.14342 38.62092,-1.01662 49.8983,-17.11734 7.60686,-10.86031 13.83067,-32.89524 13.83067,-48.9665 0,-19.4332 6.25147,-34.28259 18.66417,-44.33377 22.50576,-18.22407 16.93304,-57.22656 -9.36938,-65.57463 -55.67266,-17.66981 -191.53208,102.04858 -191.53208,168.77677 0,44.25275 38.9045,58.33278 66.62439,24.1122 z"
+     id="path14"
+     inkscape:connector-curvature="0" />
+</svg>
diff --git a/client/public/images/pieces/Cannibal/ws.svg b/client/public/images/pieces/Cannibal/ws.svg
new file mode 100644 (file)
index 0000000..dfcd791
--- /dev/null
@@ -0,0 +1,71 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   height="100%"
+   width="100%"
+   version="1.1"
+   viewBox="0 0 2048 2048"
+   id="svg6"
+   sodipodi:docname="ws.svg"
+   inkscape:version="0.92.4 5da689c313, 2019-01-14">
+  <metadata
+     id="metadata12">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title></dc:title>
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <defs
+     id="defs10" />
+  <sodipodi:namedview
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1"
+     objecttolerance="10"
+     gridtolerance="10"
+     guidetolerance="10"
+     inkscape:pageopacity="0"
+     inkscape:pageshadow="2"
+     inkscape:window-width="1920"
+     inkscape:window-height="1060"
+     id="namedview8"
+     showgrid="false"
+     inkscape:zoom="0.11523438"
+     inkscape:cx="1041.3559"
+     inkscape:cy="1024"
+     inkscape:window-x="0"
+     inkscape:window-y="20"
+     inkscape:window-maximized="0"
+     inkscape:current-layer="svg6" />
+  <path
+     style="color:black;"
+     d="m1024 273h491q21 72 21 141 0 156-86 283t-223 187q-66 5-66 72 0 53 67 78 93 65 93 172 0 77-52 135t-126 67q-60 5-60 68 0 28 22 52 54 42 54 110 0 56-40 96t-95 40q-57 0-96-40t-40-96q0-67 54-110 22-22 22-52 0-63-59-68-75-9-126-67t-52-135q0-107 93-172 67-26 67-78 0-67-67-72-136-60-222-187t-86-283q0-74 21-141h491zm0-68h-540q-40 100-40 209 0 185 105 332t270 210q-71 33-115 99t-45 151q0 105 70 182t172 89q-81 61-81 161 0 84 59 144t145 60q84 0 144-60t60-144q0-100-81-161 102-12 172-89t70-182q0-84-45-150t-116-100q165-63 270-210t105-332q0-108-39-209h-540z"
+     fill-rule="nonzero"
+     transform="translate(0,2048) scale(1,-1)"
+     display="block"
+     fill="#000"
+     id="path2" />
+  <path
+     style="color:black;"
+     d="m1024 1775h491q21-72 21-141 0-156-86-283t-223-187q-66-5-66-72 0-53 67-78 93-65 93-172 0-77-52-135t-126-67q-60-5-60-68 0-28 22-52 54-42 54-110 0-56-40-96t-95-40q-57 0-96 40t-40 96q0 67 54 110 22 22 22 52 0 63-59 68-75 9-126 67t-52 135q0 107 93 172 67 26 67 78 0 67-67 72-136 60-222 187t-86 283q0 74 21 141h491z"
+     fill-rule="nonzero"
+     display="block"
+     fill="#fff"
+     id="path4" />
+  <path
+     style="fill:#ffcc00;fill-opacity:1;stroke-width:8.67796612"
+     d="m 530.51551,1757.722 c -11.56221,-18.4249 -13.98618,-183.0494 -3.44305,-233.8354 30.86336,-148.6681 167.86144,-314.2043 293.39179,-354.5085 42.10797,-13.5197 60.67979,-30.2303 67.35021,-60.6005 6.64553,-30.2569 -14.5735,-74.3868 -39.58439,-82.325 -50.41474,-16.001 -106.70711,-91.74529 -117.26813,-157.79033 -15.6993,-98.17803 66.46814,-209.49645 165.60947,-224.36361 72.1681,-10.82228 90.96067,-71.74246 40.02622,-129.75359 -50.0224,-56.97236 -58.11106,-112.21326 -25.04542,-171.04563 65.44593,-116.44533 240.88169,-69.48178 240.88169,64.4832 0,47.27635 -8.0535,66.94767 -44.6625,109.0922 -46.9025,53.99453 -27.483,114.40491 40.9006,127.23374 103.2185,19.36391 168.9829,99.55401 168.4527,205.40332 -0.349,69.65536 -29.6897,112.33403 -129.5206,188.399 -20.2268,15.4115 -26.4922,27.0447 -26.4922,49.1885 0,47.2555 7.0561,54.8616 84.6094,91.2043 181.5573,85.0807 300.613,287.9589 285.1599,485.9302 -2.7942,35.7966 -7.5365,73.8712 -10.5387,84.6102 l -5.4582,19.5254 h -488.7809 c -381.60888,0 -490.27335,-2.3785 -495.58789,-10.8475 z"
+     id="path14"
+     inkscape:connector-curvature="0" />
+</svg>
diff --git a/client/public/images/pieces/Cannibal/wt.svg b/client/public/images/pieces/Cannibal/wt.svg
new file mode 100644 (file)
index 0000000..e2a5a23
--- /dev/null
@@ -0,0 +1,204 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   height="100%"
+   width="100%"
+   version="1.1"
+   viewBox="0 0 2048 2048"
+   id="svg34"
+   sodipodi:docname="wt.svg"
+   inkscape:version="0.92.4 5da689c313, 2019-01-14">
+  <metadata
+     id="metadata40">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title></dc:title>
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <defs
+     id="defs38" />
+  <sodipodi:namedview
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1"
+     objecttolerance="10"
+     gridtolerance="10"
+     guidetolerance="10"
+     inkscape:pageopacity="0"
+     inkscape:pageshadow="2"
+     inkscape:window-width="1920"
+     inkscape:window-height="1060"
+     id="namedview36"
+     showgrid="false"
+     inkscape:zoom="0.23046875"
+     inkscape:cx="1041.3559"
+     inkscape:cy="1024"
+     inkscape:window-x="0"
+     inkscape:window-y="20"
+     inkscape:window-maximized="0"
+     inkscape:current-layer="svg34" />
+  <path
+     style="color:black;"
+     d="m1024 1621q-57 0-96 40t-40 97q0 56 39 96t97 40q56 0 96-40t41-96q0-57-40-97t-97-40zm0 70q67 0 67 67 0 66-67 66-66 0-66-66 0-67 66-67zm509-1007q-193 49-505 49-320 0-511-50l15-96q195 46 496 46 299 0 488-45l17 96zm25 60 65 115q-48-19-98-19-134 0-214 109-60-50-134-50-96 0-153 75-64-70-153-70-72 0-132 49-84-107-217-107-51 0-101 19l70-120q194 56 533 56 345 0 534-57zm-448 239-85 489-85-483q3 2 14 10 23 45 70 45 51 0 66-45 6-6 20-16zm277-19v463l-165-454q19 7 32 18 20 25 54 25 40 0 64-35 3-4 7-8t8-9zm-562 14-164 449v-457q3 4 9 10 20 42 66 42 38 0 62-32 27-12 27-12zm-254-56-215 371 55-338q57-40 111-40 21 0 49 7zm903-5q23-7 51-7 61 0 114 38l55 346-220-377zm60-506-30 113q-196 43-480 43-281 0-479-43l-31-114q186 56 511 56 317 0 509-55zm106-128q-49-43-220-72t-394-29q-227 0-399 30t-217 75l63 240-28 157-88 153-85 622 49 19 274-462 6 550 68 12 209-553 112 595h69l112-593 207 551 69-12 6-550 275 463 47-22-83-619-89-153-28-159 65-243zm-81 36q-183 76-531 76-355 0-537-78 175-69 534-69 172 0 314 19t220 52zm-955 1252q-57 0-97 39t-40 97q0 56 40 96t97 40q56 0 96-40t40-96q0-57-40-96t-96-40zm0 70q66 0 66 66t-66 66q-67 0-67-66t67-66zm840 0q67 0 67 66t-67 66q-66 0-66-66t66-66zm0-70q-57 0-96 39t-40 97q0 56 39 96t97 40q57 0 97-40t40-96q0-57-40-96t-97-40zm-1208-110q-57 0-96 39t-40 97q0 56 39 96t97 41q57 0 97-40t40-97-40-96-97-40zm0 70q67 0 67 66 0 67-67 67-66 0-66-67 0-66 66-66zm1578 0q66 0 66 66 0 67-66 67-67 0-67-67 0-66 67-66zm0-70q-57 0-97 39t-40 97q0 56 40 96t97 41q56 0 96-40t40-97-40-96-96-40z"
+     fill-rule="nonzero"
+     transform="translate(0,2048) scale(1,-1)"
+     display="block"
+     fill="#000"
+     id="path2" />
+  <g
+     fill-rule="nonzero"
+     fill="#fff"
+     id="g32">
+    <path
+       style="color:black;"
+       d="m1024 357q67 0 67-67 0-66-67-66-66 0-66 66 0 67 66 67z"
+       display="block"
+       id="path4" />
+    <path
+       style="color:black;"
+       d="m1533 1364q-193-49-505-49-320 0-511 50l15 96q195-46 496-46 299 0 488 45l17-96z"
+       display="block"
+       id="path6" />
+    <path
+       style="color:black;"
+       d="m1558 1304 65-115q-48 19-98 19-134 0-214-109-60 50-134 50-96 0-153-75-64 70-153 70-72 0-132-49-84 107-217 107-51 0-101-19l70 120q194-56 533-56 345 0 534 57z"
+       display="block"
+       id="path8" />
+    <path
+       style="color:black;"
+       d="m1110 1065-85-489-85 483q3-2 14-10 23-45 70-45 51 0 66 45 6 6 20 16z"
+       display="block"
+       id="path10" />
+    <path
+       style="color:black;"
+       d="m1387 1084v-463l-165 454q19-7 32-18 20-25 54-25 40 0 64 35 3 4 7 8t8 9z"
+       display="block"
+       id="path12" />
+    <path
+       style="color:black;"
+       d="m825 1070-164-449v457q3-4 9-10 20-42 66-42 38 0 62 32 27 12 27 12z"
+       display="block"
+       id="path14" />
+    <path
+       style="color:black;"
+       d="m571 1126-215-371 55 338q57 40 111 40 21 0 49-7z"
+       display="block"
+       id="path16" />
+    <path
+       style="color:black;"
+       d="m1474 1131q23 7 51 7 61 0 114-38l55-346-220 377z"
+       display="block"
+       id="path18" />
+    <path
+       style="color:black;"
+       d="m1534 1637-30-113q-196-43-480-43-281 0-479 43l-31 114q186-56 511-56 317 0 509 55z"
+       display="block"
+       id="path20" />
+    <path
+       style="color:black;"
+       d="m1559 1729q-183-76-531-76-355 0-537 78 175 69 534 69 172 0 314-19t220-52z"
+       display="block"
+       id="path22" />
+    <path
+       style="color:black;"
+       d="m604 407q66 0 66-66t-66-66q-67 0-67 66t67 66z"
+       display="block"
+       id="path24" />
+    <path
+       style="color:black;"
+       d="m1444 407q67 0 67-66t-67-66q-66 0-66 66t66 66z"
+       display="block"
+       id="path26" />
+    <path
+       style="color:black;"
+       d="m236 517q67 0 67-66 0-67-67-67-66 0-66 67 0 66 66 66z"
+       display="block"
+       id="path28" />
+    <path
+       style="color:black;"
+       d="m1814 517q66 0 66-66 0-67-66-67-67 0-67 67 0 66 67 66z"
+       display="block"
+       id="path30" />
+  </g>
+  <path
+     style="fill:#ffcc00;fill-opacity:1;stroke-width:4.33898306"
+     d="m 209.08584,512.48735 c -5.04076,-0.99113 -14.80347,-7.68734 -21.69492,-14.88046 -11.68421,-12.19569 -12.5299,-15.42603 -12.5299,-47.86128 0,-33.66656 0.44642,-35.18176 13.90981,-47.2113 23.94702,-21.39666 71.99101,-22.58681 93.85391,-2.32496 30.04512,27.84488 22.43336,94.51793 -12.45492,109.09518 -13.91991,5.81611 -40.61671,7.20716 -61.08398,3.18282 z"
+     id="path42"
+     inkscape:connector-curvature="0" />
+  <path
+     style="fill:#ffcc00;fill-opacity:1;stroke-width:4.33898306"
+     d="m 577.66146,402.44442 c -30.71593,-9.35977 -47.42412,-50.30499 -35.53808,-87.08986 7.98586,-24.71461 23.57903,-35.35751 55.14881,-37.64106 47.45137,-3.43232 70.08026,17.51893 70.04718,64.85411 -0.0174,24.77895 -10.22666,47.29994 -25.03497,55.22511 -12.49714,6.68826 -49.25621,9.33426 -64.62294,4.6517 z"
+     id="path44"
+     inkscape:connector-curvature="0" />
+  <path
+     style="fill:#ffcc00;fill-opacity:1;stroke-width:4.33898306"
+     d="m 992.84854,350.31749 c -18.28856,-7.68984 -25.52854,-17.20772 -30.7136,-40.37698 -6.19241,-27.6706 0.14512,-55.44183 16.00671,-70.14186 21.66878,-20.08194 70.46615,-18.83064 94.24605,2.41674 13.1817,11.77786 13.6598,13.42923 13.6598,47.18931 0,33.61718 -0.546,35.53034 -13.9712,48.95554 -12.3469,12.34689 -17.1392,14.11707 -41.2204,15.22599 -14.987,0.69014 -32.09033,-0.78079 -38.00736,-3.26874 z"
+     id="path46"
+     inkscape:connector-curvature="0" />
+  <path
+     style="fill:#ffcc00;fill-opacity:1;stroke-width:4.33898306"
+     d="m 1415.9763,400.72211 c -21.3755,-7.89802 -31.5611,-20.86452 -35.2317,-44.85059 -7.5667,-49.44536 16.4897,-79.05498 64.2143,-79.03766 38.8651,0.0141 64.1186,25.26754 64.1327,64.13262 0.01,25.73118 -9.8041,46.79338 -25.6106,54.96725 -19.5773,10.12381 -47.6713,12.11663 -67.5047,4.78838 z"
+     id="path48"
+     inkscape:connector-curvature="0" />
+  <path
+     style="fill:#ffcc00;fill-opacity:1;stroke-width:4.33898306"
+     d="m 1779.5275,509.14004 c -18.0881,-7.86794 -27.1831,-22.49559 -30.1198,-48.44208 -2.9839,-26.36363 5.3492,-52.19862 20.45,-63.40086 16.5539,-12.28014 58.1601,-14.7834 77.6813,-4.67374 41.8722,21.68487 40.4667,98.80445 -2.1252,116.60045 -18.6839,7.80664 -47.8317,7.76958 -65.8863,-0.0838 z"
+     id="path50"
+     inkscape:connector-curvature="0" />
+  <path
+     style="fill:#ffcc00;fill-opacity:1;stroke-width:4.33898306"
+     d="m 1098.4594,1054.3539 c -2.5809,-1.6601 -7.9887,-9.4504 -12.0172,-17.3119 -13.8954,-27.1165 -51.5691,-40.77071 -84.9209,-30.7783 -12.608,3.7775 -23.9727,12.0888 -37.18963,27.1977 -10.46831,11.9668 -19.7286,20.8841 -20.57845,19.8161 -1.14345,-1.4371 69.77088,-410.58807 79.99878,-461.56477 0.8523,-4.24823 19.8557,97.99754 42.2298,227.21282 22.374,129.21529 39.8904,235.72655 38.9252,236.69175 -0.9652,0.9652 -3.8666,0.3966 -6.4476,-1.2634 z"
+     id="path52"
+     inkscape:connector-curvature="0" />
+  <path
+     style="fill:#ffcc00;fill-opacity:1;stroke-width:4.33898306"
+     d="m 663.40964,853.91186 c 0.0963,-153.9586 1.45991,-215.8929 4.58555,-208.27118 19.61035,47.81868 153.68522,420.88132 151.26041,420.88132 -1.71119,0 -9.74577,-4.8499 -17.85462,-10.7776 -42.61589,-31.1529 -57.4587,-36.0492 -85.9908,-28.3663 -15.8716,4.2738 -29.67944,15.4489 -45.68498,36.9744 -5.73959,7.7191 -6.43746,-15.5345 -6.31556,-210.44064 z"
+     id="path54"
+     inkscape:connector-curvature="0" />
+  <path
+     style="fill:#ffcc00;fill-opacity:1;stroke-width:4.33898306"
+     d="m 483.43968,1127.0563 c -19.84874,-4.9847 -67.92911,-29.8593 -70.42812,-36.4363 -2.58632,-6.8069 -53.49038,-320.84852 -52.21425,-322.12466 0.60259,-0.60259 47.54132,79.04851 104.3083,177.00244 56.76697,97.95392 102.25022,179.06052 101.07389,180.23682 -4.39952,4.3995 -66.53206,5.3921 -82.73982,1.3217 z"
+     id="path56"
+     inkscape:connector-curvature="0" />
+  <path
+     style="fill:#ffcc00;fill-opacity:1;stroke-width:4.33898306"
+     d="m 1371.9082,1064.0668 c -24.7771,-32.4844 -72.951,-42.6391 -101.897,-21.479 -26.6104,19.4526 -40.347,27.9803 -42.1566,26.1708 -1.8138,-1.8138 149.0322,-419.91061 155.7885,-431.79589 2.0778,-3.65522 3.7576,91.92866 3.8317,218.0339 0.073,123.49831 -0.7449,224.54239 -1.8167,224.54239 -1.0718,0 -7.2592,-6.9625 -13.7499,-15.4722 z"
+     id="path58"
+     inkscape:connector-curvature="0" />
+  <path
+     style="fill:#ffcc00;fill-opacity:1;stroke-width:4.33898306"
+     d="m 1485.0589,1132.259 c -8.0184,-2.5557 1.3301,-20.207 99.1598,-187.22849 59.407,-101.42373 107.0002,-179.52543 105.7626,-173.55932 -1.2375,5.9661 -13.5287,82.49682 -27.3137,170.06826 l -25.0636,159.22075 -21.2977,11.5917 c -11.7138,6.3755 -31.353,14.269 -43.6427,17.5413 -22.8848,6.0933 -71.7681,7.4134 -87.6047,2.3658 z"
+     id="path60"
+     inkscape:connector-curvature="0" />
+  <path
+     style="fill:#ffcc00;fill-opacity:1;stroke-width:4.33898306"
+     d="m 459.45728,1246.3799 c -17.48574,-29.9459 -30.98236,-55.2571 -29.99249,-56.247 0.98988,-0.9898 12.44796,1.0892 25.46241,4.6201 13.30228,3.609 42.66025,6.4671 67.05246,6.5279 80.7446,0.2009 140.14372,-24.3503 195.6475,-80.8665 l 22.08817,-22.491 23.47115,14.818 c 49.7452,31.4055 111.25515,40.0009 165.76636,23.1641 27.72237,-8.5625 71.95266,-34.659 87.08746,-51.3829 7.549,-8.3415 7.9881,-8.1565 25.3566,10.6862 10.5738,11.4712 30.4518,25.4895 49.4783,34.8929 27.9062,13.792 36.8124,15.9802 72.6754,17.8561 48.8255,2.5538 88.418,-7.4178 123.6857,-31.1513 l 22.0339,-14.8277 31.5751,31.4652 c 36.9581,36.8295 78.8482,59.6044 129.2022,70.245 37.2549,7.8726 89.1743,5.9961 123.4585,-4.4621 11.8208,-3.6059 22.2148,-5.8338 23.0976,-4.9509 1.216,1.2159 -51.6055,97.4908 -58.1616,106.0081 -0.6886,0.8946 -22.3235,-3.4756 -48.0775,-9.7115 -250.2901,-60.6036 -741.3591,-59.833 -981.73581,1.5407 -18.77083,4.7926 -34.86012,8.7138 -35.75397,8.7138 -0.89386,0 -15.9317,-24.5012 -33.41744,-54.4472 z"
+     id="path62"
+     inkscape:connector-curvature="0" />
+  <path
+     style="fill:#ffcc00;fill-opacity:1;stroke-width:4.33898306"
+     d="m 531.08587,1445.0983 c -3.57034,-17.5263 -11.20493,-67.5018 -11.24292,-73.5955 -0.0811,-13.0011 135.92246,-35.992 277.66213,-46.9377 93.79147,-7.243 340.07572,-8.3141 436.06782,-1.8965 122.8302,8.2118 291.281,33.8087 295.3839,44.885 0.9916,2.6767 -1.6922,23.4159 -5.9639,46.0871 -6.7322,35.7296 -8.8974,41.1584 -16.2544,40.7552 -4.6682,-0.2558 -38.7521,-5.6218 -75.7419,-11.9244 -231.8009,-39.4958 -605.74635,-37.7049 -831.86715,3.984 -31.54727,5.8163 -59.21586,10.575 -61.48575,10.575 -2.26989,0 -5.22091,-5.3695 -6.55783,-11.9322 z"
+     id="path64"
+     inkscape:connector-curvature="0" />
+  <path
+     style="fill:#ffcc00;fill-opacity:1;stroke-width:4.33898306"
+     d="m 529.3171,1586.1153 c 7.21792,-26.8475 14.77604,-51.935 16.79583,-55.7499 6.53363,-12.3408 153.59869,-33.5508 296.87743,-42.8163 88.54143,-5.7258 274.30484,-5.7328 366.71814,-0.014 80.3066,4.9697 195.0415,18.2706 253.7061,29.4114 l 38.9265,7.3924 11.9297,43.27 c 18.7141,67.8774 18.9017,69.1805 9.417,65.4108 -16.0543,-6.381 -130.7321,-28.2661 -181.6403,-34.6643 -93.1187,-11.7031 -175.3734,-15.8084 -316.7458,-15.8084 -208.74325,0 -354.80697,13.4881 -472.76608,43.6569 -18.76248,4.7987 -34.61499,8.7248 -35.2278,8.7248 -0.61281,0 4.79136,-21.9661 12.00928,-48.8135 z"
+     id="path66"
+     inkscape:connector-curvature="0" />
+  <path
+     style="fill:#ffcc00;fill-opacity:1;stroke-width:4.33898306"
+     d="m 878.273,1795.4808 c -105.9941,-5.2713 -206.41387,-17.2105 -276.02215,-32.817 -46.31474,-10.384 -104.01105,-28.9686 -101.67388,-32.7502 3.58805,-5.8056 91.9873,-32.7754 138.55523,-42.2719 112.15777,-22.8722 214.58287,-31.1389 385.7297,-31.1321 174.6265,0.01 277.2556,8.1383 388.4645,30.7783 55.6286,11.3249 141.2747,38.3953 136.4713,43.1348 -11.3722,11.2207 -132.7348,39.035 -216.4282,49.6017 -124.5297,15.7224 -317.7774,22.2857 -455.0965,15.4564 z"
+     id="path68"
+     inkscape:connector-curvature="0" />
+</svg>
diff --git a/client/public/images/pieces/Cannibal/wu.svg b/client/public/images/pieces/Cannibal/wu.svg
new file mode 100644 (file)
index 0000000..b2bfd22
--- /dev/null
@@ -0,0 +1,128 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   height="100%"
+   width="100%"
+   version="1.1"
+   viewBox="0 0 2048 2048"
+   id="svg18"
+   sodipodi:docname="wu.svg"
+   inkscape:version="0.92.4 5da689c313, 2019-01-14">
+  <metadata
+     id="metadata24">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title></dc:title>
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <defs
+     id="defs22" />
+  <sodipodi:namedview
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1"
+     objecttolerance="10"
+     gridtolerance="10"
+     guidetolerance="10"
+     inkscape:pageopacity="0"
+     inkscape:pageshadow="2"
+     inkscape:window-width="1920"
+     inkscape:window-height="1060"
+     id="namedview20"
+     showgrid="false"
+     inkscape:zoom="0.23046875"
+     inkscape:cx="1041.3559"
+     inkscape:cy="1024"
+     inkscape:window-x="0"
+     inkscape:window-y="20"
+     inkscape:window-maximized="0"
+     inkscape:current-layer="svg18" />
+  <path
+     style="color:black;"
+     d="m1161 1706h170v137h274v-375l-222-171v-478l170-170v-205h153v-239h-1365v239h153v205l171 170v478l-222 171v375h273v-137h171v137h274v-137zm478-1330h-1230v-103h1230v103zm-155 204h-920v-136h920v136zm-170 717h-580v-478h580v478zm222 239v239h-137v-137h-308v137h-135v-137h-307v137h-137v-239h1024zm-77-887l-103 102h-663l-105-102h871zm-110 716l127 103h-904l128-103h649z"
+     fill-rule="nonzero"
+     transform="translate(0,2048) scale(1,-1)"
+     display="block"
+     fill="#000"
+     id="path2" />
+  <g
+     fill-rule="nonzero"
+     fill="#fff"
+     id="g12">
+    <path
+       style="color:black;"
+       d="m1639 1672h-1230v103h1230v-103z"
+       display="block"
+       id="path4" />
+    <path
+       style="color:black;"
+       d="m1484 1468h-920v136h920v-136z"
+       display="block"
+       id="path6" />
+    <path
+       style="color:black;"
+       d="m1314 751h-580v478h580v-478z"
+       display="block"
+       id="path8" />
+    <path
+       style="color:black;"
+       d="m1536 512v-239h-137v137h-308v-137h-135v137h-307v-137h-137v239h1024z"
+       display="block"
+       id="path10" />
+  </g>
+  <path
+     style="color:black;"
+     d="m1459 1399-103-102h-663l-105 102h871z"
+     fill-rule="nonzero"
+     display="block"
+     fill="#fff"
+     id="path14" />
+  <path
+     style="color:black;"
+     d="m1349 683 127-103h-904l128 103h649z"
+     fill-rule="nonzero"
+     display="block"
+     fill="#fff"
+     id="path16" />
+  <path
+     style="fill:#ffcc00;fill-opacity:1;stroke-width:4.33898306"
+     d="M 515.47119,391.81017 V 272.48814 h 64.97456 64.97457 l 1.19492,68.33898 1.19493,68.33898 155.11864,1.13955 155.11865,1.13956 v -69.47854 -69.47853 h 65.08474 65.0847 v 69.42372 69.42373 h 156.2034 156.2034 v -69.42373 -69.42372 h 67.2543 67.2542 V 391.81017 511.1322 H 1025.3017 515.47119 Z"
+     id="path26"
+     inkscape:connector-curvature="0" />
+  <path
+     style="fill:#ffcc00;fill-opacity:1;stroke-width:4.33898306"
+     d="m 637.90297,631.53898 -60.68466,-48.81356 222.95695,-1.12379 c 122.62632,-0.61809 323.83034,-0.61809 447.12004,0 l 224.1632,1.12379 -60.3665,48.74728 -60.3666,48.74727 -326.0689,0.0663 -326.06887,0.0663 z"
+     id="path28"
+     inkscape:connector-curvature="0" />
+  <path
+     style="fill:#ffcc00;fill-opacity:1;stroke-width:4.33898306"
+     d="M 736.75932,990.58983 V 754.11525 h 288.54238 288.5424 V 990.58983 1227.0644 H 1025.3017 736.75932 Z"
+     id="path30"
+     inkscape:connector-curvature="0" />
+  <path
+     style="fill:#ffcc00;fill-opacity:1;stroke-width:4.33898306"
+     d="m 643.47119,1346.6036 52.06779,-49.6746 329.83352,-0.2205 329.8334,-0.2204 49.7568,49.8983 49.7568,49.8983 H 1023.0614 591.40339 Z"
+     id="path32"
+     inkscape:connector-curvature="0" />
+  <path
+     style="fill:#ffcc00;fill-opacity:1;stroke-width:4.33898306"
+     d="M 566.09266,1601.6633 C 564.50169,1600.0723 563.2,1569.8079 563.2,1534.409 v -64.3615 h 459.9322 459.9322 v 67.2542 67.2542 h -457.0395 c -251.37179,0 -458.34128,-1.3017 -459.93224,-2.8926 z"
+     id="path34"
+     inkscape:connector-curvature="0" />
+  <path
+     style="fill:#ffcc00;fill-opacity:1;stroke-width:4.33898306"
+     d="m 411.33559,1723.878 v -49.8983 h 613.96611 613.9661 v 49.8983 49.8983 H 1025.3017 411.33559 Z"
+     id="path36"
+     inkscape:connector-curvature="0" />
+</svg>
index 4606475..cd4bb77 100644 (file)
@@ -605,21 +605,23 @@ export const ChessRules = class ChessRules {
   // Build a regular move from its initial and destination squares.
   // tr: transformation
   getBasicMove([sx, sy], [ex, ey], tr) {
+    const initColor = this.getColor(sx, sy);
+    const initPiece = this.getPiece(sx, sy);
     let mv = new Move({
       appear: [
         new PiPo({
           x: ex,
           y: ey,
-          c: tr ? tr.c : this.getColor(sx, sy),
-          p: tr ? tr.p : this.getPiece(sx, sy)
+          c: tr ? tr.c : initColor,
+          p: tr ? tr.p : initPiece
         })
       ],
       vanish: [
         new PiPo({
           x: sx,
           y: sy,
-          c: this.getColor(sx, sy),
-          p: this.getPiece(sx, sy)
+          c: initColor,
+          p: initPiece
         })
       ]
     });
@@ -679,33 +681,31 @@ export const ChessRules = class ChessRules {
     return !!enpassantMove ? [enpassantMove] : [];
   }
 
+  // Consider all potential promotions:
+  addPawnMoves([x1, y1], [x2, y2], moves, promotions) {
+    let finalPieces = [V.PAWN];
+    const color = this.turn;
+    const lastRank = (color == "w" ? 0 : V.size.x - 1);
+    if (x2 == lastRank) {
+      // promotions arg: special override for Hiddenqueen variant
+      if (!!promotions) finalPieces = promotions;
+      else if (!!V.PawnSpecs.promotions)
+        finalPieces = V.PawnSpecs.promotions;
+    }
+    let tr = null;
+    for (let piece of finalPieces) {
+      tr = (piece != V.PAWN ? { c: color, p: piece } : null);
+      moves.push(this.getBasicMove([x1, y1], [x2, y2], tr));
+    }
+  }
+
   // What are the pawn moves from square x,y ?
   getPotentialPawnMoves([x, y], promotions) {
     const color = this.turn;
     const [sizeX, sizeY] = [V.size.x, V.size.y];
     const pawnShiftX = V.PawnSpecs.directions[color];
-    const firstRank = color == "w" ? sizeX - 1 : 0;
-    const startRank = color == "w" ? sizeX - 2 : 1;
-    const lastRank = color == "w" ? 0 : sizeX - 1;
-
-    // Consider all potential promotions:
-    const addMoves = ([x1, y1], [x2, y2], moves) => {
-      let finalPieces = [V.PAWN];
-      if (x2 == lastRank) {
-        // promotions arg: special override for Hiddenqueen variant
-        if (!!promotions) finalPieces = promotions;
-        else if (!!V.PawnSpecs.promotions)
-          finalPieces = V.PawnSpecs.promotions;
-      }
-      for (let piece of finalPieces) {
-        moves.push(
-          this.getBasicMove([x1, y1], [x2, y2], {
-            c: color,
-            p: piece
-          })
-        );
-      }
-    }
+    const firstRank = (color == "w" ? sizeX - 1 : 0);
+    const startRank = (color == "w" ? sizeX - 2 : 1);
 
     // Pawn movements in shiftX direction:
     const getPawnMoves = (shiftX) => {
@@ -714,7 +714,7 @@ export const ChessRules = class ChessRules {
       if (x + shiftX >= 0 && x + shiftX < sizeX) {
         if (this.board[x + shiftX][y] == V.EMPTY) {
           // One square forward
-          addMoves([x, y], [x + shiftX, y], moves);
+          this.addPawnMoves([x, y], [x + shiftX, y], moves, promotions);
           // Next condition because pawns on 1st rank can generally jump
           if (
             V.PawnSpecs.twoSquares &&
@@ -736,7 +736,10 @@ export const ChessRules = class ChessRules {
                 this.board[x + shiftX][y + shiftY] != V.EMPTY &&
                 this.canTake([x, y], [x + shiftX, y + shiftY])
               ) {
-                addMoves([x, y], [x + shiftX, y + shiftY], moves);
+                this.addPawnMoves(
+                  [x, y], [x + shiftX, y + shiftY],
+                  moves, promotions
+                );
               }
               if (
                 V.PawnSpecs.captureBackward &&
@@ -744,7 +747,10 @@ export const ChessRules = class ChessRules {
                 this.board[x - shiftX][y + shiftY] != V.EMPTY &&
                 this.canTake([x, y], [x - shiftX, y + shiftY])
               ) {
-                addMoves([x, y], [x + shiftX, y + shiftY], moves);
+                this.addPawnMoves(
+                  [x, y], [x + shiftX, y + shiftY],
+                  moves, promotions
+                );
               }
             }
           }
@@ -1038,7 +1044,7 @@ export const ChessRules = class ChessRules {
 
   // Is color under check after his move ?
   underCheck(color) {
-    return this.isAttacked(this.kingPos[color], [V.GetOppCol(color)]);
+    return this.isAttacked(this.kingPos[color], V.GetOppCol(color));
   }
 
   /////////////////
@@ -1060,7 +1066,7 @@ export const ChessRules = class ChessRules {
   play(move) {
     // DEBUG:
 //    if (!this.states) this.states = [];
-//    const stateFen = this.getBaseFen() + this.getTurnFen();// + this.getFlagsFen();
+//    const stateFen = this.getFen() + JSON.stringify(this.kingPos);
 //    this.states.push(stateFen);
 
     this.prePlay(move);
@@ -1072,6 +1078,27 @@ export const ChessRules = class ChessRules {
     this.postPlay(move);
   }
 
+  updateCastleFlags(move) {
+    const c = V.GetOppCol(this.turn);
+    const firstRank = (c == "w" ? V.size.x - 1 : 0);
+    // Update castling flags if rooks are moved
+    const oppCol = V.GetOppCol(c);
+    const oppFirstRank = V.size.x - 1 - firstRank;
+    if (
+      move.start.x == firstRank && //our rook moves?
+      this.castleFlags[c].includes(move.start.y)
+    ) {
+      const flagIdx = (move.start.y == this.castleFlags[c][0] ? 0 : 1);
+      this.castleFlags[c][flagIdx] = V.size.y;
+    } else if (
+      move.end.x == oppFirstRank && //we took opponent rook?
+      this.castleFlags[oppCol].includes(move.end.y)
+    ) {
+      const flagIdx = (move.end.y == this.castleFlags[oppCol][0] ? 0 : 1);
+      this.castleFlags[oppCol][flagIdx] = V.size.y;
+    }
+  }
+
   // After move is played, update variables + flags
   postPlay(move) {
     const c = V.GetOppCol(this.turn);
@@ -1082,7 +1109,6 @@ export const ChessRules = class ChessRules {
     else
       // Crazyhouse-like variants
       piece = move.appear[0].p;
-    const firstRank = c == "w" ? V.size.x - 1 : 0;
 
     // Update king position + flags
     if (piece == V.KING && move.appear.length > 0) {
@@ -1091,24 +1117,7 @@ export const ChessRules = class ChessRules {
       if (V.HasCastle) this.castleFlags[c] = [V.size.y, V.size.y];
       return;
     }
-    if (V.HasCastle) {
-      // Update castling flags if rooks are moved
-      const oppCol = V.GetOppCol(c);
-      const oppFirstRank = V.size.x - 1 - firstRank;
-      if (
-        move.start.x == firstRank && //our rook moves?
-        this.castleFlags[c].includes(move.start.y)
-      ) {
-        const flagIdx = (move.start.y == this.castleFlags[c][0] ? 0 : 1);
-        this.castleFlags[c][flagIdx] = V.size.y;
-      } else if (
-        move.end.x == oppFirstRank && //we took opponent rook?
-        this.castleFlags[oppCol].includes(move.end.y)
-      ) {
-        const flagIdx = (move.end.y == this.castleFlags[oppCol][0] ? 0 : 1);
-        this.castleFlags[oppCol][flagIdx] = V.size.y;
-      }
-    }
+    if (V.HasCastle) this.updateCastleFlags(move);
   }
 
   preUndo() {}
@@ -1123,7 +1132,7 @@ export const ChessRules = class ChessRules {
     this.postUndo(move);
 
     // DEBUG:
-//    const stateFen = this.getBaseFen() + this.getTurnFen();// + this.getFlagsFen();
+//    const stateFen = this.getFen() + JSON.stringify(this.kingPos);
 //    if (stateFen != this.states[this.states.length-1]) debugger;
 //    this.states.pop();
   }
index 5335038..b3da21c 100644 (file)
@@ -12,7 +12,7 @@ p.
 
 figure.diagram-container
   .diagram
-    | fen:rnbqkbnr/1ppppppp/8/8/4P3/8/PPPP1PPP/RNBQKBNR a6:
+    | fen:rnbqkbnr/1ppppppp/p7/8/4P3/8/PPPP1PPP/RNBQKBNR a6:
   figcaption After 1.e4 a6, 2.Bxa6 turns the bishop into a pawn.
 
 p If the king captures, it transforms as well but stays royal.
index 60b75a5..9fd771d 100644 (file)
@@ -12,7 +12,7 @@ p.
 
 figure.diagram-container
   .diagram
-    | fen:rnbqkbnr/pppp1pp1/7p/4P3/8/8/PPP1PPPP/RNBQKBNR:
+    | fen:rnbqkbnr/1ppppppp/p7/8/4P3/8/PPPP1PPP/RNBQKBNR a6:
   figcaption Después de 1.e4 a6, 2.Bxa6 transforma el alfil en un peón.
 
 p Si el rey captura, también se transforma pero permanece real.
index 344a7f8..03b6497 100644 (file)
@@ -12,7 +12,7 @@ p.
 
 figure.diagram-container
   .diagram
-    | fen:rnbqkbnr/1ppppppp/8/8/4P3/8/PPPP1PPP/RNBQKBNR a6:
+    | fen:rnbqkbnr/1ppppppp/p7/8/4P3/8/PPPP1PPP/RNBQKBNR a6:
   figcaption Après 1.e4 a6, 2.Bxa6 transforme le fou en un pion.
 
 p Si le roi capture, il se transforme aussi mais reste royal.
index fc0ef0b..1508f67 100644 (file)
@@ -1,6 +1,60 @@
-import { ChessRules } from "@/base_rules";
+import { ChessRules, Move, PiPo } from "@/base_rules";
 
 export class CannibalRules extends ChessRules {
+  static get KING_CODE() {
+    return {
+      'p': 's',
+      'r': 'u',
+      'n': 'o',
+      'b': 'c',
+      'q': 't'
+    };
+  }
+
+  static get KING_DECODE() {
+    return {
+      's': 'p',
+      'u': 'r',
+      'o': 'n',
+      'c': 'b',
+      't': 'q'
+    };
+  }
+
+  // Kings may be disguised:
+  getPiece(x, y) {
+    const piece = this.board[x][y].charAt(1);
+    if (Object.keys(V.KING_DECODE).includes(piece))
+      return V.KING_DECODE[piece];
+    return piece;
+  }
+
+  getPpath(b) {
+    return (Object.keys(V.KING_DECODE).includes(b[1]) ? "Cannibal/" : "") + b;
+  }
+
+  // Kings may be disguised:
+  setOtherVariables(fen) {
+    super.setOtherVariables(fen);
+    const rows = V.ParseFen(fen).position.split("/");
+    if (this.kingPos["w"][0] < 0 || this.kingPos["b"][0] < 0) {
+      for (let i = 0; i < rows.length; i++) {
+        let k = 0; //column index on board
+        for (let j = 0; j < rows[i].length; j++) {
+          const piece = rows[i].charAt(j);
+          if (Object.keys(V.KING_DECODE).includes(piece.toLowerCase())) {
+            const color = (piece.charCodeAt(0) <= 90 ? 'w' : 'b');
+            this.kingPos[color] = [i, k];
+          } else {
+            const num = parseInt(rows[i].charAt(j));
+            if (!isNaN(num)) k += num - 1;
+          }
+          k++;
+        }
+      }
+    }
+  }
+
   // Trim all non-capturing moves
   static KeepCaptures(moves) {
     return moves.filter(m => m.vanish.length == 2 && m.appear.length == 1);
@@ -26,20 +80,80 @@ export class CannibalRules extends ChessRules {
     return false;
   }
 
-  getPotentialMovesFrom([x, y]) {
-    let moves = super.getPotentialMovesFrom([x, y]);
-    // Transform capturers, except for the king
-    moves.forEach(m => {
-      if (
-        m.appear[0].p != V.KING &&
-        m.vanish.length == 2 &&
-        m.appear.length == 1 &&
-        m.vanish[0].p != m.vanish[1].p
-      ) {
-        m.appear[0].p = m.vanish[1].p;
-      }
+  // Because of the disguised kings, getPiece() could be wrong:
+  // use board[x][y][1] instead (always valid).
+  getBasicMove([sx, sy], [ex, ey], tr) {
+    const initColor = this.getColor(sx, sy);
+    const initPiece = this.board[sx][sy].charAt(1);
+    let mv = new Move({
+      appear: [
+        new PiPo({
+          x: ex,
+          y: ey,
+          c: tr ? tr.c : initColor,
+          p: tr ? tr.p : initPiece
+        })
+      ],
+      vanish: [
+        new PiPo({
+          x: sx,
+          y: sy,
+          c: initColor,
+          p: initPiece
+        })
+      ]
     });
-    return moves;
+
+    // The opponent piece disappears if we take it
+    if (this.board[ex][ey] != V.EMPTY) {
+      mv.vanish.push(
+        new PiPo({
+          x: ex,
+          y: ey,
+          c: this.getColor(ex, ey),
+          p: this.board[ex][ey].charAt(1)
+        })
+      );
+
+      // If the captured piece has a different nature: take it as well
+      if (mv.vanish[0].p != mv.vanish[1].p) {
+        if (
+          mv.vanish[0].p == V.KING ||
+          Object.keys(V.KING_DECODE).includes(mv.vanish[0].p)
+        ) {
+          mv.appear[0].p = V.KING_CODE[mv.vanish[1].p];
+        } else mv.appear[0].p = mv.vanish[1].p;
+      }
+    }
+    else if (!!tr && mv.vanish[0].p != V.PAWN)
+      // Special case of a non-capturing king-as-pawn promotion
+      mv.appear[0].p = V.KING_CODE[tr.p];
+
+    return mv;
+  }
+
+  getPotentialMovesFrom([x, y]) {
+    const piece = this.board[x][y].charAt(1);
+    if (Object.keys(V.KING_DECODE).includes(piece))
+      return super.getPotentialMovesFrom([x, y], V.KING_DECODE[piece]);
+    return super.getPotentialMovesFrom([x, y], piece);
+  }
+
+  addPawnMoves([x1, y1], [x2, y2], moves) {
+    let finalPieces = [V.PAWN];
+    const color = this.turn;
+    const lastRank = (color == "w" ? 0 : V.size.x - 1);
+    if (x2 == lastRank) {
+      if (this.board[x2][y2] != V.EMPTY)
+        // Cannibal rules: no choice if capture
+        finalPieces = [this.getPiece(x2, y2)];
+      else finalPieces = V.PawnSpecs.promotions;
+    }
+    let tr = null;
+    for (let piece of finalPieces) {
+      tr = (piece != V.PAWN ? { c: color, p: piece } : null);
+      moves.push(this.getBasicMove([x1, y1], [x2, y2], tr));
+    }
   }
 
   getPossibleMovesFrom(sq) {
@@ -56,6 +170,38 @@ export class CannibalRules extends ChessRules {
     return moves;
   }
 
+  postPlay(move) {
+    const c = V.GetOppCol(this.turn);
+    const piece = move.appear[0].p;
+    // Update king position + flags
+    if (piece == V.KING || Object.keys(V.KING_DECODE).includes(piece)) {
+      this.kingPos[c][0] = move.appear[0].x;
+      this.kingPos[c][1] = move.appear[0].y;
+      this.castleFlags[c] = [V.size.y, V.size.y];
+      return;
+    }
+    super.updateCastleFlags(move);
+  }
+
+  postUndo(move) {
+    // (Potentially) Reset king position
+    const c = this.getColor(move.start.x, move.start.y);
+    const piece = move.appear[0].p;
+    if (piece == V.KING || Object.keys(V.KING_DECODE).includes(piece))
+      this.kingPos[c] = [move.start.x, move.start.y];
+  }
+
+  static get VALUES() {
+    return {
+      p: 1,
+      r: 5,
+      n: 3,
+      b: 3,
+      q: 9,
+      k: 5
+    };
+  }
+
   static get SEARCH_DEPTH() {
     return 4;
   }
index fe36ab2..bea261a 100644 (file)
@@ -247,21 +247,23 @@ export class EightpiecesRules extends ChessRules {
   // Because of the lancers, getPiece() could be wrong:
   // use board[x][y][1] instead (always valid).
   getBasicMove([sx, sy], [ex, ey], tr) {
+    const initColor = this.getColor(sx, sy);
+    const initPiece = this.board[sx][sy].charAt(1);
     let mv = new Move({
       appear: [
         new PiPo({
           x: ex,
           y: ey,
-          c: tr ? tr.c : this.getColor(sx, sy),
-          p: tr ? tr.p : this.board[sx][sy].charAt(1)
+          c: tr ? tr.c : initColor,
+          p: tr ? tr.p : initPiece
         })
       ],
       vanish: [
         new PiPo({
           x: sx,
           y: sy,
-          c: this.getColor(sx, sy),
-          p: this.board[sx][sy].charAt(1)
+          c: initColor,
+          p: initPiece
         })
       ]
     });