From b0116a67818668f55cd2a3b3a323b2c91b5bc332 Mon Sep 17 00:00:00 2001 From: Benjamin Auder <benjamin.auder@somewhere> Date: Sun, 28 Mar 2021 11:27:22 +0200 Subject: [PATCH] More balanced Shinobi according to Couch Tomato + Fables tests --- TODO | 3 + client/public/images/pieces/Shinobi/wd.svg | 207 ++++++++++++++++ client/public/images/pieces/Shinobi/ws.svg | 234 ------------------- client/src/translations/rules/Shinobi/en.pug | 10 +- client/src/translations/rules/Shinobi/es.pug | 10 +- client/src/translations/rules/Shinobi/fr.pug | 10 +- client/src/variants/Shinobi.js | 44 ++-- 7 files changed, 250 insertions(+), 268 deletions(-) create mode 100644 client/public/images/pieces/Shinobi/wd.svg delete mode 100644 client/public/images/pieces/Shinobi/ws.svg diff --git a/TODO b/TODO index 1ab50465..b13d9b59 100644 --- a/TODO +++ b/TODO @@ -9,3 +9,6 @@ Or, with other board shapes (see greenchess.net for example) Would be nice to display some better variants names (Pacosako -> Paco-Åako etc), but the "formatted" name with uppercase + all lower cases would still be required. (For example in variants list, or tournament variant field). + +Chessplode +Tablut diff --git a/client/public/images/pieces/Shinobi/wd.svg b/client/public/images/pieces/Shinobi/wd.svg new file mode 100644 index 00000000..0e1f9ce9 --- /dev/null +++ b/client/public/images/pieces/Shinobi/wd.svg @@ -0,0 +1,207 @@ +<?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" + width="177.17" + height="177.17" + shape-rendering="geometricPrecision" + image-rendering="optimizeQuality" + fill-rule="evenodd" + clip-rule="evenodd" + viewBox="0 0 50 50" + version="1.1" + id="svg1519" + sodipodi:docname="wD.svg" + inkscape:version="1.0.1 (3bc2e813f5, 2020-09-07)"> + <metadata + id="metadata1523"> + <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> + <sodipodi:namedview + pagecolor="#ffffff" + bordercolor="#666666" + borderopacity="1" + objecttolerance="10" + gridtolerance="10" + guidetolerance="10" + inkscape:pageopacity="0" + inkscape:pageshadow="2" + inkscape:window-width="1676" + inkscape:window-height="1767" + id="namedview1521" + showgrid="false" + inkscape:zoom="0.50288117" + inkscape:cx="-80.186482" + inkscape:cy="802.81337" + inkscape:window-x="8380" + inkscape:window-y="1097" + inkscape:window-maximized="0" + inkscape:current-layer="svg1519" + inkscape:document-rotation="0" /> + <defs + id="defs1513"> + <linearGradient + id="0" + x1="21.405" + x2="77.64" + gradientUnits="userSpaceOnUse"> + <stop + stop-color="#fff" + id="stop1508" /> + <stop + offset="1" + stop-color="#fff" + stop-opacity="0" + id="stop1510" /> + </linearGradient> + </defs> + <g + id="g4479" + style="opacity:0.99;stroke:#000000;stroke-width:1.00157;stroke-miterlimit:4;stroke-dasharray:none" + transform="matrix(1.4649611,0,0,1.4649611,-79.809876,-85.425679)"> + <g + id="g4408" + style="stroke:#000000;stroke-width:1.00157;stroke-miterlimit:4;stroke-dasharray:none"> + <g + style="opacity:1;stroke:#000000;stroke-width:1.67347;stroke-miterlimit:4;stroke-dasharray:none" + transform="matrix(0.5985,0,0,0.5985,-0.89497712,-1.5691449)" + id="g2585"> + <g + transform="matrix(1.1490749,0,0,1.1490749,4.8774524,-52.324711)" + id="g5991-8-6" + style="stroke:#000000;stroke-width:1.45637;stroke-miterlimit:4;stroke-dasharray:none"> + <g + id="g5959-6-1" + style="stroke:#000000;stroke-width:1.45637;stroke-miterlimit:4;stroke-dasharray:none"> + <path + sodipodi:nodetypes="ccccc" + inkscape:connector-curvature="0" + id="path5925-18-5" + d="m 76.814514,188.49725 c -0.382792,-1.61452 0.982033,-3.33321 3.033308,-3.87609 -1.474925,-0.98619 -1.96609,-1.96962 -1.96609,-1.96962 0.66148,-0.0209 2.351743,-0.41657 2.953798,-1.42262 -0.278994,-0.0915 -1.725339,-0.57385 -1.940887,-1.46547" + style="display:inline;fill:none;stroke:#000000;stroke-width:1.09228;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + transform="matrix(1.3333333,0,0,-1.3333333,0,396.85067)" /> + <g + id="g5957-11-8" + style="stroke:#000000;stroke-width:1.45637;stroke-miterlimit:4;stroke-dasharray:none"> + <g + id="g5949-4-4" + style="stroke:#000000;stroke-width:1.45637;stroke-miterlimit:4;stroke-dasharray:none"> + <path + sodipodi:nodetypes="cc" + inkscape:connector-curvature="0" + id="path5927-1-6" + d="m 106.85537,157.38289 c 7.55631,-2.27747 12.29422,1.14184 14.61505,5.6409" + style="fill:none;stroke:#000000;stroke-width:1.45637;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> + <path + sodipodi:nodetypes="cc" + inkscape:connector-curvature="0" + id="path5929-1-8" + d="m 109.36814,159.69053 c 8.1436,0.28405 5.92715,9.6573 3.89734,14.71761" + style="fill:none;stroke:#000000;stroke-width:1.45637;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> + <path + sodipodi:nodetypes="cc" + inkscape:connector-curvature="0" + id="path5931-3-9" + d="m 113.77829,156.87008 c 3.37122,1.83329 6.18854,4.36711 4.97425,11.99972" + style="fill:none;stroke:#000000;stroke-width:1.45637;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> + <g + style="stroke:#000000;stroke-width:1.45637;stroke-miterlimit:4;stroke-dasharray:none" + id="g5947-9-3" /> + </g> + <path + style="fill:none;stroke:#000000;stroke-width:1.45637;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + d="m 93.112096,152.2548 c 2.016656,-2.72178 3.802894,-5.72006 7.128044,-6.87164" + id="path5951-3-7" + inkscape:connector-curvature="0" + sodipodi:nodetypes="cc" /> + <path + style="fill:none;stroke:#000000;stroke-width:1.45637;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + d="m 96.650476,155.22909 c 2.546951,-0.30884 5.093904,-0.47217 7.640854,-0.10256" + id="path5953-9-6" + inkscape:connector-curvature="0" + sodipodi:nodetypes="cc" /> + <path + style="fill:none;stroke:#000000;stroke-width:1.45637;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + d="m 96.137669,153.12657 c 1.402563,-1.75471 4.191461,-2.26173 6.922921,-2.82044" + id="path5955-1-3" + inkscape:connector-curvature="0" + sodipodi:nodetypes="cc" /> + </g> + </g> + <path + sodipodi:nodetypes="ccccccccccccccccccccccccccccccccccccccccsccc" + inkscape:connector-curvature="0" + id="path5965-8-5" + d="m 99.938985,158.29805 c -5.049569,1.29768 -6.422852,9.83907 -10.660754,13.34408 -0.735784,-0.3683 -0.827866,-1.19226 -0.797743,-2.90089 l -2.828362,-1.52297 3.141086,-0.97405 -1.473076,-1.20161 3.326708,-0.70193 -1.078522,-2.19895 2.773805,0.0153 0.1996,-2.77114 1.377919,-0.72522 V 156.485 l -0.725219,-1.08783 -1.160357,0.14505 0.07252,1.0153 -1.446453,0.58816 -0.120426,2.16833 c -0.905393,-0.44815 -0.794251,0.62859 -1.877598,0.22422 l -0.07784,1.16103 -2.103139,-0.0725 -0.466397,3.5456 c -0.474479,-0.38678 -1.050909,0.26037 -2.294759,-0.12642 -0.385357,2.27236 -0.384308,3.29323 -0.38856,5.56559 l -3.408538,-4.78647 c 0.270013,-0.65709 1.00717,-0.59849 1.522962,-2.10313 -0.04517,-1.04998 -0.08546,-2.09753 -0.507653,-3.33602 2.560131,-1.26401 4.783339,-3.53879 6.962125,-5.94682 l 0.07252,-5.00402 c 0.912496,-2.4981 1.545022,-3.85079 2.330563,-5.13578 0.05745,1.85848 0.453866,2.31327 0.927478,3.36262 1.622506,-1.8574 2.693961,-5.69799 6.465887,-8.6382 -1.436602,2.57898 -3.634626,4.75711 -2.030611,7.30756 5.712439,-7.08218 9.984249,-10.62666 17.036729,-8.13713 -6.95992,0.57064 -12.10611,4.59635 -10.90437,8.94829 4.37307,-4.88595 9.73578,-3.75434 11.45621,-2.9151 -5.42728,0.56055 -7.6467,2.64073 -6.49866,5.71537 6.14453,-1.76511 10.84868,-1.49675 13.70668,1.37792 -3.44196,-0.37601 -8.44829,-1.44309 -8.58036,0.57138 15.77569,6.08756 12.77743,18.13932 -2.33407,26.83997 l -18.589263,0.0318 c 5.93239,-6.92697 8.052804,-5.76983 12.991043,-8.09481 5.40946,-2.54682 8.74343,-12.41169 0.80866,-12.52149 -0.67413,1.41992 -1.05907,3.56566 -0.68601,6.29969 -1.65605,-4.87067 -4.461577,-6.29292 -8.049948,-5.36664" + style="fill:#fae4ed;fill-opacity:1;stroke:#1f1a17;stroke-width:1.909;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> + <g + style="stroke:#000000;stroke-width:1.45637;stroke-miterlimit:4;stroke-dasharray:none" + id="g5985-8-9"> + <path + transform="matrix(1.3333333,0,0,-1.3333333,0,396.85067)" + style="display:inline;fill:none;stroke:#000000;stroke-width:1.09228;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:0.992157" + d="m 76.814514,188.49725 c -0.382792,-1.61452 0.982033,-3.33321 3.033308,-3.87609 -1.474925,-0.98619 -1.96609,-1.96962 -1.96609,-1.96962 0.66148,-0.0209 2.351743,-0.41657 2.953798,-1.42262 -0.278994,-0.0915 -1.725339,-0.57385 -1.940887,-1.46547" + id="path5967-73-9" + inkscape:connector-curvature="0" + sodipodi:nodetypes="ccccc" /> + <g + style="stroke:#000000;stroke-width:1.45637;stroke-miterlimit:4;stroke-dasharray:none" + id="g5983-9-3"> + <g + style="stroke:#000000;stroke-width:1.45637;stroke-miterlimit:4;stroke-dasharray:none" + id="g5977-0-6"> + <path + style="fill:none;stroke:#000000;stroke-width:1.45637;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:0.992157" + d="m 106.85537,157.38289 c 7.55631,-2.27747 12.29422,1.14184 14.61505,5.6409" + id="path5969-4-8" + inkscape:connector-curvature="0" + sodipodi:nodetypes="cc" /> + <path + style="fill:none;stroke:#000000;stroke-width:1.45637;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:0.992157" + d="m 109.36814,159.69053 c 8.1436,0.28405 5.92715,9.6573 3.89734,14.71761" + id="path5971-9-3" + inkscape:connector-curvature="0" + sodipodi:nodetypes="cc" /> + <g + id="g5975-81-9" + style="stroke:#000000;stroke-width:1.45637;stroke-miterlimit:4;stroke-dasharray:none"> + <path + sodipodi:nodetypes="cc" + inkscape:connector-curvature="0" + id="path5973-7-4" + d="m 109.62454,160.92127 c 8.39582,10.39706 -4.39843,7.25768 -8.83774,17.36196" + style="fill:none;stroke:#000000;stroke-width:1.45637;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:0.992157" /> + </g> + </g> + </g> + </g> + <path + inkscape:connector-curvature="0" + id="path5987-5-8" + d="m 92.892698,148.0356 -2.988834,2.60941 -0.278513,4.40375 c 1.122405,-0.62704 3.056771,-2.18229 3.486745,-2.79396 0.147642,-0.91332 -0.04814,-3.62478 -0.219398,-4.2192 z" + style="fill:#000000;fill-opacity:0.992157;stroke:none;stroke-width:1.45625;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:0.992157" + sodipodi:nodetypes="ccccc" /> + </g> + <path + sodipodi:nodetypes="cc" + inkscape:connector-curvature="0" + id="path9570-8-0" + d="m 121.08075,143.70635 c 1.13217,1.46215 1.96546,2.68318 3.75317,2.67036" + style="display:inline;fill:none;stroke:#000000;stroke-width:1.67347;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:0.992157" /> + </g> + </g> + </g> +</svg> diff --git a/client/public/images/pieces/Shinobi/ws.svg b/client/public/images/pieces/Shinobi/ws.svg deleted file mode 100644 index 93ed344d..00000000 --- a/client/public/images/pieces/Shinobi/ws.svg +++ /dev/null @@ -1,234 +0,0 @@ -<?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" - width="177.17" - height="177.17" - shape-rendering="geometricPrecision" - image-rendering="optimizeQuality" - fill-rule="evenodd" - clip-rule="evenodd" - viewBox="0 0 50 50" - version="1.1" - id="svg3333" - sodipodi:docname="wS.svg" - inkscape:version="1.0.1 (3bc2e813f5, 2020-09-07)"> - <metadata - id="metadata3337"> - <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 /> - </cc:Work> - </rdf:RDF> - </metadata> - <sodipodi:namedview - pagecolor="#ffffff" - bordercolor="#666666" - borderopacity="1" - objecttolerance="10" - gridtolerance="10" - guidetolerance="10" - inkscape:pageopacity="0" - inkscape:pageshadow="2" - inkscape:window-width="1676" - inkscape:window-height="1767" - id="namedview3335" - showgrid="false" - inkscape:zoom="2.0115246" - inkscape:cx="-49.321113" - inkscape:cy="286.53498" - inkscape:window-x="8380" - inkscape:window-y="1097" - inkscape:window-maximized="0" - inkscape:current-layer="svg3333" - inkscape:document-rotation="0" /> - <defs - id="defs3327"> - <linearGradient - id="0" - x1="21.13" - y1="37.592" - x2="77.64" - y2="37.469" - gradientUnits="userSpaceOnUse"> - <stop - stop-color="#fff" - id="stop3322" /> - <stop - offset="1" - stop-color="#fff" - stop-opacity="0" - id="stop3324" /> - </linearGradient> - <inkscape:path-effect - effect="mirror_symmetry" - start_point="275.14301,98.12006" - end_point="275.14301,350.07326" - center_point="275.14301,224.09666" - id="path-effect4547-0-2" - is_visible="true" - mode="free" - discard_orig_path="false" - fuse_paths="true" - oposite_fuse="false" - lpeversion="0" - split_items="false" /> - <inkscape:path-effect - effect="mirror_symmetry" - start_point="274.67636,240.21573" - end_point="274.67636,418.88419" - center_point="274.67636,329.54996" - id="path-effect4551-7-2" - is_visible="true" - mode="free" - discard_orig_path="false" - fuse_paths="false" - oposite_fuse="false" - lpeversion="0" - split_items="false" /> - <inkscape:path-effect - effect="mirror_symmetry" - start_point="273.50283,331.92091" - end_point="273.50283,477.30227" - center_point="273.50283,404.61159" - id="path-effect4557-0-7" - is_visible="true" - mode="free" - discard_orig_path="false" - fuse_paths="false" - oposite_fuse="false" - lpeversion="0" - split_items="false" /> - <inkscape:path-effect - effect="mirror_symmetry" - start_point="315.71788,90.192596" - end_point="315.71788,96.192596" - center_point="315.71788,93.192596" - id="path-effect4669-0" - is_visible="true" - mode="free" - discard_orig_path="false" - fuse_paths="false" - oposite_fuse="false" - lpeversion="0" - split_items="false" /> - <inkscape:path-effect - oposite_fuse="false" - fuse_paths="false" - discard_orig_path="false" - mode="free" - is_visible="true" - id="path-effect4802-2" - center_point="316.91112,93.060013" - end_point="316.91112,96.060013" - start_point="316.91112,90.060013" - effect="mirror_symmetry" - lpeversion="0" - split_items="false" /> - </defs> - <g - style="opacity:1;stroke-width:0.998358;stroke-miterlimit:4;stroke-dasharray:none" - transform="matrix(-1.4222799,0,0,1.4045664,312.67189,-40.107398)" - id="g8011"> - <g - id="g7992-4" - style="stroke-width:0.998358;stroke-miterlimit:4;stroke-dasharray:none"> - <g - transform="matrix(0.70055036,0,0,0.70055036,30.938451,-14.965608)" - id="g4792-8-6" - style="display:inline;stroke-width:1.4251;stroke-miterlimit:4;stroke-dasharray:none"> - <path - style="fill:#fae4ed;fill-opacity:1;stroke:#1f1a17;stroke-width:1.4251;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" - d="m 240.19817,99.644866 -1.42679,4.708964 -0.91096,-0.3636 -0.99702,3.08605 c 4.98874,2.09723 11.13084,1.98068 15.24942,0 l -0.99702,-3.08605 -0.85392,0.3636 -1.31325,-4.708964" - id="path4767-7-3" - inkscape:connector-curvature="0" - sodipodi:nodetypes="cccccccc" /> - <g - transform="translate(-71.190918,-1.25)" - id="g4722-9-55" - style="stroke-width:1.4251;stroke-miterlimit:4;stroke-dasharray:none"> - <g - id="g4712-6-6" - transform="translate(31.466251,-52.325905)" - style="stroke:#000000;stroke-width:1.4251;stroke-miterlimit:4;stroke-dasharray:none"> - <path - sodipodi:nodetypes="ccccc" - inkscape:connector-curvature="0" - id="path4708-6-6" - d="m 273.60415,150.86398 c 7.0269,6.45529 14.16897,5.79244 21.32768,0 l -4.02309,-11.78114 c -5.55216,2.37564 -8.76694,2.0991 -13.5,0.43745 z" - style="fill:#1f1a17;fill-opacity:1;stroke:#1f1a17;stroke-width:1.4251;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> - <path - sodipodi:nodetypes="cccccc" - inkscape:original-d="m 128.12147,339.22317 -29.4431,64.09739 c -3.406729,-2.03298 6.60864,9.49088 -6.592588,1.00836 -14.054409,23.33805 -19.002142,29.83307 -33.968561,54.71538 21.968053,17.08583 45.092959,28.25212 66.540599,35.50326 13.29286,-25.8462 37.33683,-75.99061 56.23651,-117.53591" - inkscape:path-effect="#path-effect4557-0-7" - inkscape:connector-curvature="0" - id="path4706-0-4" - d="m 128.12147,339.22317 -29.4431,64.09739 c -3.406729,-2.03298 6.60864,9.49088 -6.592588,1.00836 -14.054409,23.33805 -19.002142,29.83307 -33.968561,54.71538 21.968053,17.08583 45.092959,28.25212 66.540599,35.50326 13.29286,-25.8462 37.33683,-75.99061 56.23651,-117.53591 m 237.98986,-37.78848 29.4431,64.09739 c 3.40673,-2.03298 -6.60864,9.49088 6.59259,1.00836 14.05441,23.33805 19.00214,29.83307 33.96856,54.71538 -21.96805,17.08583 -45.09296,28.25212 -66.5406,35.50326 -13.29286,-25.8462 -37.33683,-75.99061 -56.23651,-117.53591" - style="fill:#fae4ed;fill-opacity:1;stroke:#1f1a17;stroke-width:19.1343;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" - transform="matrix(0.06852995,0,0,0.08094496,265.43337,113.5891)" /> - <path - inkscape:original-d="m 148.02602,275.09111 c -28.03086,-24.44704 -42.208,-21.88308 -80.017252,-17.21986 l -35.659979,52.99649 c 47.787583,6.44001 110.760271,8.05847 123.583381,91.95566 27.65294,-32.78615 23.1623,-43.05822 34.86109,-81.47379" - inkscape:path-effect="#path-effect4551-7-2" - sodipodi:nodetypes="ccccc" - inkscape:connector-curvature="0" - id="path4704-4-1" - d="m 148.02602,275.09111 c -28.03086,-24.44704 -42.208,-21.88308 -80.017252,-17.21986 l -35.659979,52.99649 c 47.787583,6.44001 110.760271,8.05847 123.583381,91.95566 27.65294,-32.78615 23.1623,-43.05822 34.86109,-81.47379 m 210.53344,-46.2585 c 28.03086,-24.44704 42.208,-21.88308 80.01725,-17.21986 l 35.65998,52.99649 c -47.78758,6.44001 -110.76027,8.05847 -123.58338,91.95566 -27.65294,-32.78615 -23.1623,-43.05822 -34.86109,-81.47379" - style="fill:#fae4ed;fill-opacity:1;stroke:#1f1a17;stroke-width:19.1343;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" - transform="matrix(0.06852995,0,0,0.08094496,265.45547,113.567)" /> - <path - transform="matrix(0.06852995,0,0,0.08094496,265.4105,113.5891)" - inkscape:original-d="m 89.878164,104.45867 c 71.228006,71.22916 31.757136,135.82089 52.509626,165.37853 28.87071,49.94709 71.08258,59.60515 129.34256,59.36887 78.85687,-0.3198 172.12578,-122.30069 182.82859,-223.37245 -55.01799,87.29707 -93.67242,160.95929 -167.89643,181.7447 -10.56829,-0.19825 -25.58122,0.0296 -36.09748,-2.90333 -115.61675,-16.44623 -83.3766,-149.2152 -45.53806,-137.91415 -5.21985,-13.69739 -26.63935,-31.94802 -52.25128,-16.77733 -20.17236,0.0804 -51.29271,-30.539477 -62.897526,-25.52484 z" - inkscape:path-effect="#path-effect4547-0-2" - sodipodi:nodetypes="ccscccccc" - inkscape:connector-curvature="0" - id="path4702-1-36" - d="m 89.878164,104.45867 c 71.228006,71.22916 31.757136,135.82089 52.509626,165.37853 28.87071,49.94709 71.08258,59.60515 129.34256,59.36887 1.13467,-0.005 2.27232,-0.0344 3.41266,-0.089 1.14034,0.0546 2.27799,0.0843 3.41266,0.089 58.25998,0.23628 100.47185,-9.42178 129.34256,-59.36887 20.75249,-29.55764 -18.71838,-94.14937 52.50963,-165.37853 -11.60482,-5.014637 -42.72517,25.60524 -62.89753,25.52484 -25.61193,-15.17069 -47.03143,3.07994 -52.25128,16.77733 37.83854,-11.30105 70.07869,121.46792 -45.53806,137.91415 -7.06656,1.97083 -16.16354,2.51444 -24.57798,2.71917 -8.41444,-0.20473 -17.51142,-0.74834 -24.57798,-2.71917 -115.61675,-16.44623 -83.3766,-149.2152 -45.53806,-137.91415 -5.21985,-13.69739 -26.63935,-31.94802 -52.25128,-16.77733 -20.17236,0.0804 -51.29271,-30.539477 -62.897526,-25.52484 z" - style="fill:#fae4ed;fill-opacity:1;stroke:#1f1a17;stroke-width:19.1343;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> - </g> - <path - transform="translate(-1.25,3.7384348)" - inkscape:original-d="m 304.03366,89.759167 c 0.17995,0.09055 0.40659,0.383558 0.60988,0.575337 l 3.62394,2.343928" - inkscape:path-effect="#path-effect4802-2" - sodipodi:nodetypes="ccc" - inkscape:connector-curvature="0" - id="path4800-6-5" - d="m 304.03366,89.759167 c 0.17995,0.09055 0.40659,0.383558 0.60988,0.575337 l 3.62394,2.343928 m 21.5211,-2.919265 c -0.17995,0.09055 -0.40659,0.383558 -0.60988,0.575337 l -3.62394,2.343928" - style="fill:none;stroke:#1f1a17;stroke-width:1.4251;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> - </g> - <path - sodipodi:nodetypes="ccc" - inkscape:connector-curvature="0" - id="path4728-2-4" - d="m 239.02396,80.488643 c 3.43837,-2.880918 8.29988,-2.419643 11.03729,0.134758 -2.36495,3.350653 -9.49455,2.30614 -11.03729,-0.134758 z" - style="fill:#1f1a17;stroke:#1f1a17;stroke-width:1.4251;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;fill-opacity:1" /> - <ellipse - style="opacity:1;fill:#fae4ed;fill-opacity:1;stroke:#1f1a17;stroke-width:1.4251;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;paint-order:normal" - id="path4730-7-2" - cx="244.54137" - cy="79.184608" - rx="3.7668824" - ry="3.8183067" /> - <path - sodipodi:nodetypes="cssc" - inkscape:connector-curvature="0" - id="path4774-6-3" - d="m 238.51647,104.40646 c 0.15538,0.0361 0.19708,0.0445 0.26002,0.066 3.27921,1.12025 8.76778,0.8749 11.58445,-0.009 0.079,-0.0248 0.12485,-0.026 0.27075,-0.0614" - style="fill:none;stroke:#1f1a17;stroke-width:1.4251;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> - </g> - </g> - </g> - <path - style="fill:#fae4ed;fill-opacity:1;stroke:#1f1a17;stroke-width:1.41107;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" - d="m 18.554538,26.640221 c 5.110293,2.590707 7.77851,2.614363 12.87243,0.210449 l -0.699282,-3.354199 c -4.365601,1.071961 -6.926096,0.915591 -11.455375,0 z" - id="path14802" - sodipodi:nodetypes="ccccc" /> -</svg> diff --git a/client/src/translations/rules/Shinobi/en.pug b/client/src/translations/rules/Shinobi/en.pug index eac9a6f2..0b55d722 100644 --- a/client/src/translations/rules/Shinobi/en.pug +++ b/client/src/translations/rules/Shinobi/en.pug @@ -27,10 +27,10 @@ p h3 New pieces p. - There are five new units unique to the Clan: Ninja, Samurai, Lances, + There are five new units unique to the Clan: Ninja, Dragon, Lance, (Wooden) Horses, and Monks. Captains are a new piece available to both sides, but only the Clan starts with one on the board. - Ninja, Samurai, and Captains do not promote (see below). + Ninja, Dragon, and Captains do not promote (see below). p. The Clan's king is called a Kage (K) and has a different symbol, but the @@ -39,8 +39,8 @@ p. ul li Captain (C) – Moves like a King. Pawns promote to a Captain. li Ninja (J) = Knight + Bishop. - li Samurai (S) = Knight + Rook. li Monk (M) – One-step bishop. + li Dragon (D) = Rook + Monk. li. Horse (H) – Moves only forward two squares, and then one square to the side. @@ -54,8 +54,8 @@ p. h3 Promotion p. - Pawns promote into Captains when reaching the 6th rank. - All minor Clan pieces also promote upon reaching the 6th rank (or beyond): + Pawns promote into Captains when reaching the 7th rank. + All minor Clan pieces also promote upon reaching the two last ranks: ul li Monk into Bishop. li Horse into Knight. diff --git a/client/src/translations/rules/Shinobi/es.pug b/client/src/translations/rules/Shinobi/es.pug index e3d66696..e15dcd1a 100644 --- a/client/src/translations/rules/Shinobi/es.pug +++ b/client/src/translations/rules/Shinobi/es.pug @@ -28,10 +28,10 @@ p h3 Piezas nuevas p. - Cinco nuevas unidades son exclusivas del Clan: Ninja, Samurai, Lances, + Cinco nuevas unidades son exclusivas del Clan: Ninja, Dragón, Lanza, Jamelgos y Monjes. Los Capitanes son una nueva pieza disponible en ambos lados, pero solo el Clan comienza con uno en el tablero. - Los Ninja, Samuráis y Capitanes no son promovidos (ver más abajo). + Los Ninja, Dragón y Capitanes no son promovidos (ver más abajo). p. El rey del Clan se llama Kage (K) y tiene un sÃmbolo diferente, pero el @@ -40,8 +40,8 @@ p. ul li Capitán (C) – Muévese como un rey. Los peones ascienden a Capitán. li Ninja (J) = Caballo + Alfil. - li Samurái (S) = Caballo + Torre. li Monje (M) – Alfil limitado a una casilla. + li Dragón (D) = Torre + Monje. li Jamelgo (H) – Avanza dos espacios, luego una casilla al costado. li. Lanza (L) – Se mueve hacia adelante, @@ -55,9 +55,9 @@ p. h3 Promoción p. - Los peones son promovidos a Capitanes cuando alcanzan la sexta fila. + Los peones son promovidos a Capitanes cuando alcanzan la séptima fila. Todas las piezas menores del Clan también se promocionan una vez en - la sexta fila (o más): + las dos ultimas filas: ul li Monje → Alfil. li Jamelgo → Caballo. diff --git a/client/src/translations/rules/Shinobi/fr.pug b/client/src/translations/rules/Shinobi/fr.pug index d1ba9506..ae6a9db4 100644 --- a/client/src/translations/rules/Shinobi/fr.pug +++ b/client/src/translations/rules/Shinobi/fr.pug @@ -28,10 +28,10 @@ p h3 Nouvelles pièces p. - Cinq nouvelles unités sont uniques au Clan : les Ninja, Samurai, Lances, + Cinq nouvelles unités sont uniques au Clan : les Ninja, Dragon, Lance, Chevaux (de Bois), et Moines. Les Capitaines sont une nouvelle pièce disponible des deux côtés, mais seul le Clan démarre avec un sur l'échiquier. - Les Ninja, Samourai et Capitaines ne sont pas promus (voir ci-dessous). + Les Ninja, Dragon et Capitaines ne sont pas promus (voir ci-dessous). p. Le roi du Clan est appelé Kage (K), et a un symbole différent, mais le @@ -43,8 +43,8 @@ ul Capitaine (C) – Se déplace comme un Roi. Les pions se promeuvent en Capitaine. li Ninja (J) = Cavalier + Fou. - li Samurai (S) = Cavalier + Tour. li Moine (M) – Fou limité à une case. + li Dragon (D) = Tour + Moine. li. Cheval (H) – Se déplace vers l'avant de deux cases, puis d'une case sur le coté. @@ -60,9 +60,9 @@ p. h3 Promotion p. - Les pions sont promus en Capitaines quand ils atteignent la 6eme rangée. + Les pions sont promus en Capitaines quand ils atteignent la 7eme rangée. Toutes les pièces mineures du Clan se promeuvent également une fois sur - la 6eme rangée (ou plus loin) : + les deux dernières rangées : ul li Moine → Fou. li Cheval → Cavalier. diff --git a/client/src/variants/Shinobi.js b/client/src/variants/Shinobi.js index faa4cd7e..dbce82c8 100644 --- a/client/src/variants/Shinobi.js +++ b/client/src/variants/Shinobi.js @@ -12,8 +12,8 @@ export class ShinobiRules extends ChessRules { static get NINJA() { return 'j'; } - static get SAMURAI() { - return 's'; + static get DRAGON() { + return 'd'; } static get MONK() { return 'm'; @@ -33,7 +33,7 @@ export class ShinobiRules extends ChessRules { static get PIECES() { return ( ChessRules.PIECES - .concat([V.CAPTAIN, V.NINJA, V.SAMURAI, V.MONK, V.HORSE, V.LANCE]) + .concat([V.CAPTAIN, V.NINJA, V.DRAGON, V.MONK, V.HORSE, V.LANCE]) ); } @@ -60,7 +60,7 @@ export class ShinobiRules extends ChessRules { if (!ChessRules.IsGoodFen(fen)) return false; const fenParsed = V.ParseFen(fen); // 5) Check reserve - if (!fenParsed.reserve || !fenParsed.reserve.match(/^[0-9]{5,5}$/)) + if (!fenParsed.reserve || !fenParsed.reserve.match(/^[0-2]{6,6}$/)) return false; return true; } @@ -73,12 +73,12 @@ export class ShinobiRules extends ChessRules { ); } - // In hand initially: ninja, samurai + 2 x monk, horse, lance. + // In hand initially: ninja, dragon, 2 x (monk, horse), lance, pawn. static GenRandInitFen(randomness) { const baseFen = ChessRules.GenRandInitFen(Math.min(randomness, 1)); return ( baseFen.substr(0, 35) + "3CK3 " + - "w 0 " + baseFen.substr(48, 2) + " - 11222" + "w 0 " + baseFen.substr(48, 2) + " - 112211" ); } @@ -102,10 +102,11 @@ export class ShinobiRules extends ChessRules { this.reserve = { w: { [V.NINJA]: reserve[0], - [V.SAMURAI]: reserve[1], + [V.DRAGON]: reserve[1], [V.MONK]: reserve[2], [V.HORSE]: reserve[3], - [V.LANCE]: reserve[4] + [V.LANCE]: reserve[4], + [V.PAWN]: reserve[5] } }; } @@ -121,7 +122,7 @@ export class ShinobiRules extends ChessRules { } static get RESERVE_PIECES() { - return [V.NINJA, V.SAMURAI, V.MONK, V.HORSE, V.LANCE]; + return [V.NINJA, V.DRAGON, V.MONK, V.HORSE, V.LANCE, V.PAWN]; } getReserveMoves([x, y]) { @@ -176,7 +177,7 @@ export class ShinobiRules extends ChessRules { case V.KING: return this.getPotentialKingMoves(sq); case V.CAPTAIN: return this.getPotentialCaptainMoves(sq); case V.NINJA: return this.getPotentialNinjaMoves(sq); - case V.SAMURAI: return this.getPotentialSamuraiMoves(sq); + case V.DRAGON: return this.getPotentialDragonMoves(sq); } let moves = []; switch (piece) { @@ -194,7 +195,7 @@ export class ShinobiRules extends ChessRules { moves = this.getPotentialLanceMoves(sq); break; } - const promotionZone = (this.turn == 'w' ? [0, 1, 2] : [5, 6, 7]); + const promotionZone = (this.turn == 'w' ? [0, 1] : [7, 6]); const promotedForm = V.MapUnpromoted[piece]; moves.forEach(m => { if (promotionZone.includes(m.end.x)) m.appear[0].p = promotedForm; @@ -224,10 +225,10 @@ export class ShinobiRules extends ChessRules { ); } - getPotentialSamuraiMoves(sq) { + getPotentialDragonMoves(sq) { return ( super.getSlideNJumpMoves(sq, V.steps[V.ROOK]) - .concat(super.getSlideNJumpMoves(sq, V.steps[V.KNIGHT], "oneStep")) + .concat(super.getSlideNJumpMoves(sq, V.steps[V.BISHOP], "oneStep")) ); } @@ -252,7 +253,7 @@ export class ShinobiRules extends ChessRules { super.isAttackedByPawn(sq, 'w') || this.isAttackedByCaptain(sq, 'w') || this.isAttackedByNinja(sq, 'w') || - this.isAttackedBySamurai(sq, 'w') || + this.isAttackedByDragon(sq, 'w') || this.isAttackedByMonk(sq, 'w') || this.isAttackedByHorse(sq, 'w') || this.isAttackedByLance(sq, 'w') || @@ -277,11 +278,11 @@ export class ShinobiRules extends ChessRules { ); } - isAttackedBySamurai(sq, color) { + isAttackedByDragon(sq, color) { return ( - super.isAttackedBySlideNJump(sq, color, V.SAMURAI, V.steps[V.ROOK]) || + super.isAttackedBySlideNJump(sq, color, V.DRAGON, V.steps[V.ROOK]) || super.isAttackedBySlideNJump( - sq, color, V.SAMURAI, V.steps[V.KNIGHT], "oneStep") + sq, color, V.DRAGON, V.steps[V.BISHOP], "oneStep") ); } @@ -385,7 +386,7 @@ export class ShinobiRules extends ChessRules { { c: 4, j: 7, - s: 8, + d: 7, m: 2, h: 2, l: 2 @@ -406,7 +407,12 @@ export class ShinobiRules extends ChessRules { } getNotation(move) { - if (move.vanish.length > 0) return super.getNotation(move); + if (move.vanish.length > 0) { + let notation = super.getNotation(move); + if (move.vanish[0].p != V.PAWN && move.appear[0].p != move.vanish[0].p) + notation += "=" + move.appear[0].p.toUpperCase(); + return notation; + } // Drop: const piece = move.appear[0].p != V.PAWN ? move.appear[0].p.toUpperCase() : ""; -- 2.44.0