summaryrefslogtreecommitdiff |
diff options
Diffstat (limited to 'src')
25 files changed, 1755 insertions, 124 deletions
diff --git a/src/asset/www/svg/damage_type/abort.svg b/src/asset/www/svg/damage_type/abort.svg new file mode 100644 index 0000000..a60628d --- /dev/null +++ b/src/asset/www/svg/damage_type/abort.svg @@ -0,0 +1,75 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- Created with Inkscape (http://www.inkscape.org/) --> + +<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="32mm" + height="32mm" + viewBox="0 0 32 32" + version="1.1" + id="svg8" + inkscape:version="0.92.4 5da689c313, 2019-01-14" + sodipodi:docname="abort.svg"> + <defs + id="defs2" /> + <sodipodi:namedview + id="base" + pagecolor="#ffffff" + bordercolor="#666666" + borderopacity="1.0" + inkscape:pageopacity="0.0" + inkscape:pageshadow="2" + inkscape:zoom="5.6568542" + inkscape:cx="79.366109" + inkscape:cy="53.777319" + inkscape:document-units="mm" + inkscape:current-layer="g829" + showgrid="false" + inkscape:window-width="1908" + inkscape:window-height="1078" + inkscape:window-x="11" + inkscape:window-y="1" + inkscape:window-maximized="0" + inkscape:pagecheckerboard="true" + inkscape:snap-global="false" /> + <metadata + id="metadata5"> + <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> + <g + inkscape:groupmode="layer" + id="layer2" + inkscape:label="Layer 2" + style="display:inline" /> + <g + inkscape:label="Layer 1" + inkscape:groupmode="layer" + id="layer1" + transform="translate(0,-265)" + style="display:inline"> + <g + id="g829" + transform="rotate(45,13.546346,299.58838)" + style="stroke:#483e37;stroke-opacity:1;fill:#e9ddaf;fill-opacity:1;stroke-width:0.5;stroke-miterlimit:4;stroke-dasharray:none;paint-order:stroke fill markers"> + <path + style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:normal;font-family:sans-serif;font-variant-ligatures:normal;font-variant-position:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-alternates:normal;font-feature-settings:normal;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:normal;word-spacing:normal;text-transform:none;writing-mode:lr-tb;direction:ltr;text-orientation:mixed;dominant-baseline:auto;baseline-shift:baseline;text-anchor:start;white-space:normal;shape-padding:0;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e9ddaf;fill-opacity:1;fill-rule:evenodd;stroke:#483e37;stroke-width:0.5;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:stroke fill markers;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" + d="m -13.362707,287.89595 a 1.7735781,1.7735781 0 0 0 1.56128,0.54261 L 0.06025368,286.81895 -1.5602163,298.6815 a 1.7735781,1.7735781 0 0 0 -0.016,0.35381 1.7735781,1.7735781 0 0 0 3.53038,0.12702 l 1.75266,-12.84062 12.8410493,-1.75309 a 1.7737541,1.7737541 0 1 0 -0.4804,-3.51483 l -11.8625393,1.62047 1.61917,-11.86125 a 1.7735781,1.7735781 0 1 0 -3.51181,-0.47997 l -1.75393002,12.83932 -12.83975068,1.75439 a 1.7735781,1.7735781 0 0 0 -1.55653,1.84943 1.7735781,1.7735781 0 0 0 0.47521,1.11977 z" + id="path1060" + inkscape:connector-curvature="0" /> + </g> + </g> +</svg> diff --git a/src/asset/www/svg/damage_type/attack.svg b/src/asset/www/svg/damage_type/attack.svg new file mode 100644 index 0000000..003407c --- /dev/null +++ b/src/asset/www/svg/damage_type/attack.svg @@ -0,0 +1,75 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- Created with Inkscape (http://www.inkscape.org/) --> + +<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="32mm" + height="32mm" + viewBox="0 0 32 32" + version="1.1" + id="svg8" + inkscape:version="0.92.4 5da689c313, 2019-01-14" + sodipodi:docname="attack.svg"> + <defs + id="defs2" /> + <sodipodi:namedview + id="base" + pagecolor="#ffffff" + bordercolor="#666666" + borderopacity="1.0" + inkscape:pageopacity="0.0" + inkscape:pageshadow="2" + inkscape:zoom="5.6568542" + inkscape:cx="79.366109" + inkscape:cy="53.777319" + inkscape:document-units="mm" + inkscape:current-layer="g829" + showgrid="false" + inkscape:window-width="1908" + inkscape:window-height="1078" + inkscape:window-x="11" + inkscape:window-y="1" + inkscape:window-maximized="0" + inkscape:pagecheckerboard="true" + inkscape:snap-global="false" /> + <metadata + id="metadata5"> + <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> + <g + inkscape:groupmode="layer" + id="layer2" + inkscape:label="Layer 2" + style="display:inline" /> + <g + inkscape:label="Layer 1" + inkscape:groupmode="layer" + id="layer1" + transform="translate(0,-265)" + style="display:inline"> + <g + id="g829" + transform="rotate(45,13.546346,299.58838)" + style="stroke:#483e37;stroke-opacity:1;fill:#e9ddaf;fill-opacity:1;stroke-width:0.5;stroke-miterlimit:4;stroke-dasharray:none;paint-order:stroke fill markers"> + <path + style="fill:#e9ddaf;fill-opacity:1;stroke:#483e37;stroke-width:0.5;stroke-linecap:square;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;paint-order:stroke fill markers" + d="m 2.1373716,266.22556 c -1.0082739,7.39401 -3.5267984,13.35008 -3.02506678,22.18206 -0.40722122,1.79401 -2.74550642,1.62171 -5.04113742,1.97141 1.9799477,0.74807 3.1089118,2.91493 6.04965312,2.06169 -0.4823705,1.72399 -0.5931491,4.19118 0,8.06621 -0.7484427,1.21223 2.01655088,1.00803 2.01655088,1.00803 0,0 2.7649931,0.2042 2.0165511,-1.00803 0.5931489,-3.87503 0.4823703,-6.34222 -2e-7,-8.06621 2.9407413,0.85324 4.0697056,-1.31362 6.0496537,-2.06169 -2.2956317,-0.3497 -4.6339165,-0.1774 -5.041138,-1.97141 0.5017318,-8.83198 -2.0167928,-14.78805 -3.0250664,-22.18206 z" + id="path823" + inkscape:connector-curvature="0" /> + </g> + </g> +</svg> diff --git a/src/asset/www/svg/damage_type/endturn.svg b/src/asset/www/svg/damage_type/endturn.svg new file mode 100644 index 0000000..738f271 --- /dev/null +++ b/src/asset/www/svg/damage_type/endturn.svg @@ -0,0 +1,75 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- Created with Inkscape (http://www.inkscape.org/) --> + +<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="32mm" + height="32mm" + viewBox="0 0 32 32" + version="1.1" + id="svg8" + inkscape:version="0.92.4 5da689c313, 2019-01-14" + sodipodi:docname="endturn.svg"> + <defs + id="defs2" /> + <sodipodi:namedview + id="base" + pagecolor="#ffffff" + bordercolor="#666666" + borderopacity="1.0" + inkscape:pageopacity="0.0" + inkscape:pageshadow="2" + inkscape:zoom="5.6568542" + inkscape:cx="79.366109" + inkscape:cy="53.777319" + inkscape:document-units="mm" + inkscape:current-layer="g829" + showgrid="false" + inkscape:window-width="1908" + inkscape:window-height="1078" + inkscape:window-x="11" + inkscape:window-y="1" + inkscape:window-maximized="0" + inkscape:pagecheckerboard="true" + inkscape:snap-global="false" /> + <metadata + id="metadata5"> + <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> + <g + inkscape:groupmode="layer" + id="layer2" + inkscape:label="Layer 2" + style="display:inline" /> + <g + inkscape:label="Layer 1" + inkscape:groupmode="layer" + id="layer1" + transform="translate(0,-265)" + style="display:inline"> + <g + id="g829" + transform="rotate(45,13.546346,299.58838)" + style="stroke:#483e37;stroke-opacity:1;fill:#e9ddaf;fill-opacity:1;stroke-width:0.5;stroke-miterlimit:4;stroke-dasharray:none;paint-order:stroke fill markers"> + <path + style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:normal;font-family:sans-serif;font-variant-ligatures:normal;font-variant-position:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-alternates:normal;font-feature-settings:normal;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:normal;word-spacing:normal;text-transform:none;writing-mode:lr-tb;direction:ltr;text-orientation:mixed;dominant-baseline:auto;baseline-shift:baseline;text-anchor:start;white-space:normal;shape-padding:0;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e9ddaf;fill-opacity:1;fill-rule:evenodd;stroke:#483e37;stroke-width:0.5;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:stroke fill markers;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" + d="m 5.0019037,270.4961 a 2.0002,2.0002 0 0 0 -2.0878907,1.9082 l -1.0957031,18.45703 -5.7773437,0.99024 a 2.0002,2.0002 0 1 0 0.6738281,3.94141 l 7.34375,-1.25586 a 2.0002,2.0002 0 0 0 1.6582031,-1.85352 l 1.1914063,-20.04102 a 2.0002,2.0002 0 0 0 -1.90625,-2.14648 z" + id="path1107" + inkscape:connector-curvature="0" /> + </g> + </g> +</svg> diff --git a/src/asset/www/svg/damage_type/move.svg b/src/asset/www/svg/damage_type/move.svg new file mode 100644 index 0000000..2db3eb4 --- /dev/null +++ b/src/asset/www/svg/damage_type/move.svg @@ -0,0 +1,106 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- Created with Inkscape (http://www.inkscape.org/) --> + +<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:xlink="http://www.w3.org/1999/xlink" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + width="32mm" + height="32mm" + viewBox="0 0 32 32" + version="1.1" + id="svg8" + inkscape:version="0.92.4 5da689c313, 2019-01-14" + sodipodi:docname="move.svg"> + <defs + id="defs2" /> + <sodipodi:namedview + id="base" + pagecolor="#ffffff" + bordercolor="#666666" + borderopacity="1.0" + inkscape:pageopacity="0.0" + inkscape:pageshadow="2" + inkscape:zoom="3.959798" + inkscape:cx="52.570979" + inkscape:cy="25.817924" + inkscape:document-units="mm" + inkscape:current-layer="layer1" + showgrid="false" + inkscape:window-width="953" + inkscape:window-height="1078" + inkscape:window-x="11" + inkscape:window-y="1" + inkscape:window-maximized="0" + inkscape:pagecheckerboard="true" /> + <metadata + id="metadata5"> + <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> + <g + inkscape:label="Layer 1" + inkscape:groupmode="layer" + id="layer1" + transform="translate(0,-265)" + style="display:inline"> + <g + id="g947" + transform="matrix(1.4243746,1.4284288,-1.4284288,1.4243746,413.49171,-143.56743)" + style="fill:#e9ddaf;fill-opacity:1;stroke:#483e37;stroke-opacity:1;stroke-width:0.24786358;stroke-miterlimit:4;stroke-dasharray:none;stroke-linejoin:round;stroke-linecap:square;paint-order:stroke fill markers"> + <ellipse + transform="rotate(-15.269049)" + ry="2.3185458" + rx="1.656104" + cy="278.6438" + cx="-71.76931" + id="path815" + style="opacity:1;fill:#e9ddaf;fill-opacity:1;stroke:#483e37;stroke-width:0.24786358;stroke-linecap:square;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;paint-order:stroke fill markers" /> + <use + transform="rotate(7.6119885,30.142915,310.98335)" + height="100%" + width="100%" + id="use817" + xlink:href="#path815" + y="0" + x="0" + style="fill:#e9ddaf;stroke:#483e37;stroke-width:0.24786358;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;fill-opacity:1;stroke-linejoin:round;stroke-linecap:square;paint-order:stroke fill markers" /> + <use + transform="rotate(15.442031,10.627428,301.73172)" + height="100%" + width="100%" + id="use819" + xlink:href="#use817" + y="0" + x="0" + style="fill:#e9ddaf;stroke:#483e37;stroke-width:0.24786358;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;fill-opacity:1;stroke-linejoin:round;stroke-linecap:square;paint-order:stroke fill markers" /> + <use + transform="rotate(12.50903,-1.4011846,303.06723)" + height="100%" + width="100%" + id="use821" + xlink:href="#use819" + y="0" + x="0" + style="fill:#e9ddaf;stroke:#483e37;stroke-width:0.24786358;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;fill-opacity:1;stroke-linejoin:round;stroke-linecap:square;paint-order:stroke fill markers" /> + <path + sodipodi:nodetypes="zzszzz" + inkscape:connector-curvature="0" + id="path823" + d="m 6.0960684,290.24753 c -1.7586733,1.55556 -0.00849,5.24544 1.9137203,4.19544 1.9221629,-1.04998 2.0472473,-1.13722 3.6066263,4e-5 1.335557,0.974 3.77909,-2.55093 2.428952,-3.90107 -1.350138,-1.35014 -0.987055,-3.26954 -3.895296,-3.33636 -2.9082424,-0.0667 -2.2953294,1.48638 -4.0540026,3.04195 z" + style="fill:#e9ddaf;stroke:#483e37;stroke-width:0.24786358;stroke-linecap:square;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;fill-opacity:1;paint-order:stroke fill markers" /> + </g> + </g> +</svg> diff --git a/src/asset/www/svg/damage_type/skill.svg b/src/asset/www/svg/damage_type/skill.svg new file mode 100644 index 0000000..15aa91d --- /dev/null +++ b/src/asset/www/svg/damage_type/skill.svg @@ -0,0 +1,154 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- Created with Inkscape (http://www.inkscape.org/) --> + +<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="32mm" + height="32mm" + viewBox="0 0 32 32" + version="1.1" + id="svg8" + inkscape:version="0.92.4 5da689c313, 2019-01-14" + sodipodi:docname="skill.svg" + inkscape:export-filename="/home/nsensfel/bitmap.png" + inkscape:export-xdpi="100" + inkscape:export-ydpi="100"> + <defs + id="defs2"> + <marker + inkscape:stockid="Arrow2Mend" + orient="auto" + refY="0.0" + refX="0.0" + id="marker1123" + style="overflow:visible;" + inkscape:isstock="true"> + <path + id="path1121" + style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round;stroke:#000000;stroke-opacity:1;fill:#000000;fill-opacity:1" + d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.9730900,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z " + transform="scale(0.6) rotate(180) translate(0,0)" /> + </marker> + <marker + inkscape:stockid="Arrow2Send" + orient="auto" + refY="0.0" + refX="0.0" + id="Arrow2Send" + style="overflow:visible;" + inkscape:isstock="true"> + <path + id="path882" + style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round;stroke:#000000;stroke-opacity:1;fill:#000000;fill-opacity:1" + d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.9730900,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z " + transform="scale(0.3) rotate(180) translate(-2.3,0)" /> + </marker> + <marker + inkscape:stockid="Arrow1Send" + orient="auto" + refY="0.0" + refX="0.0" + id="Arrow1Send" + style="overflow:visible;" + inkscape:isstock="true"> + <path + id="path864" + d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z " + style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1;fill:#000000;fill-opacity:1" + transform="scale(0.2) rotate(180) translate(6,0)" /> + </marker> + <marker + inkscape:stockid="Arrow2Mend" + orient="auto" + refY="0.0" + refX="0.0" + id="Arrow2Mend" + style="overflow:visible;" + inkscape:isstock="true"> + <path + id="path876" + style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round;stroke:#000000;stroke-opacity:1;fill:#000000;fill-opacity:1" + d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.9730900,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z " + transform="scale(0.6) rotate(180) translate(0,0)" /> + </marker> + <marker + inkscape:stockid="Arrow2Lend" + orient="auto" + refY="0.0" + refX="0.0" + id="Arrow2Lend" + style="overflow:visible;" + inkscape:isstock="true"> + <path + id="path870" + style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round;stroke:#000000;stroke-opacity:1;fill:#000000;fill-opacity:1" + d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.9730900,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z " + transform="scale(1.1) rotate(180) translate(1,0)" /> + </marker> + <marker + inkscape:stockid="Arrow1Lend" + orient="auto" + refY="0.0" + refX="0.0" + id="Arrow1Lend" + style="overflow:visible;" + inkscape:isstock="true"> + <path + id="path852" + d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z " + style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1;fill:#000000;fill-opacity:1" + transform="scale(0.8) rotate(180) translate(12.5,0)" /> + </marker> + </defs> + <sodipodi:namedview + id="base" + pagecolor="#ffffff" + bordercolor="#666666" + borderopacity="1.0" + inkscape:pageopacity="0.0" + inkscape:pageshadow="2" + inkscape:zoom="5.6" + inkscape:cx="61.300185" + inkscape:cy="70.063765" + inkscape:document-units="mm" + inkscape:current-layer="layer1" + showgrid="false" + inkscape:window-width="1908" + inkscape:window-height="1078" + inkscape:window-x="11" + inkscape:window-y="1" + inkscape:window-maximized="0" + inkscape:pagecheckerboard="true" + inkscape:snap-global="false" /> + <metadata + id="metadata5"> + <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> + <g + inkscape:label="Layer 1" + inkscape:groupmode="layer" + id="layer1" + transform="translate(0,-265)" + style="display:inline"> + <path + style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:normal;font-family:sans-serif;font-variant-ligatures:normal;font-variant-position:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-alternates:normal;font-feature-settings:normal;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:normal;word-spacing:normal;text-transform:none;writing-mode:lr-tb;direction:ltr;text-orientation:mixed;dominant-baseline:auto;baseline-shift:baseline;text-anchor:start;white-space:normal;shape-padding:0;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e9ddaf;fill-opacity:1;fill-rule:evenodd;stroke:#483e37;stroke-width:0.5;stroke-linecap:square;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:stroke fill markers;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" + d="m 17.801705,268.85076 c -6.919987,0.11498 -12.8799161,5.82544 -12.7128907,12.88476 0.1477264,6.24366 5.3256287,11.61749 11.7128907,11.41016 5.56699,-0.1807 10.353656,-4.82899 10.103516,-10.54492 -0.213992,-4.88989 -4.333245,-9.09168 -9.378907,-8.79493 -4.21219,0.24774 -7.8299711,3.84174 -7.480468,8.21875 0.282166,3.53373 3.357368,6.57329 7.068359,6.16016 2.854421,-0.31777 5.323025,-2.88621 4.824219,-5.93555 -0.177925,-1.0877 -0.761933,-2.06646 -1.613281,-2.74218 -0.851349,-0.67573 -2.033508,-1.03481 -3.230469,-0.71485 -0.756588,0.20225 -1.402912,0.67097 -1.841797,1.3418 -0.438885,0.67083 -0.613326,1.68462 -0.123047,2.54102 0.353345,0.6172 0.760413,0.80546 1.341797,0.93164 0.290692,0.0631 0.679984,0.0928 1.091797,-0.14844 0.411813,-0.24122 0.652572,-0.7631 0.671875,-1.17383 0.0432,-0.70716 -0.642322,-1.23378 -1.314453,-1.00977 0.01165,-0.0188 -0.0083,-0.0233 0.0059,-0.0449 0.142025,-0.21708 0.466135,-0.44577 0.683594,-0.5039 0.545379,-0.14579 1.027411,-0.006 1.472656,0.34765 0.445245,0.3534 0.790304,0.93448 0.882812,1.5 0.294938,1.80303 -1.270834,3.42229 -3.074218,3.62305 -2.49713,0.27799 -4.653999,-1.85588 -4.851563,-4.33008 -0.254188,-3.18334 2.457924,-5.87945 5.603516,-6.06445 3.865598,-0.22735 7.096603,3.0671 7.263672,6.88476 0.198925,4.54562 -3.679647,8.31324 -8.169922,8.45899 -5.224248,0.16957 -9.528226,-4.29374 -9.6503909,-9.45703 -0.1396832,-5.902 4.9113779,-10.74289 10.7480059,-10.83987 1.392143,0.0373 1.356935,-2.08158 -0.0332,-1.99804 z" + id="path1225" + inkscape:connector-curvature="0" + sodipodi:nodetypes="cssscsssccscccccccccsscsscccc" /> + </g> +</svg> diff --git a/src/asset/www/svg/damage_type/skip.svg b/src/asset/www/svg/damage_type/skip.svg new file mode 100644 index 0000000..489ff31 --- /dev/null +++ b/src/asset/www/svg/damage_type/skip.svg @@ -0,0 +1,162 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- Created with Inkscape (http://www.inkscape.org/) --> + +<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="32mm" + height="32mm" + viewBox="0 0 32 32" + version="1.1" + id="svg8" + inkscape:version="0.92.4 5da689c313, 2019-01-14" + sodipodi:docname="skip.svg"> + <defs + id="defs2"> + <marker + inkscape:stockid="Arrow2Mend" + orient="auto" + refY="0.0" + refX="0.0" + id="marker1123" + style="overflow:visible;" + inkscape:isstock="true"> + <path + id="path1121" + style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round;stroke:#000000;stroke-opacity:1;fill:#000000;fill-opacity:1" + d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.9730900,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z " + transform="scale(0.6) rotate(180) translate(0,0)" /> + </marker> + <marker + inkscape:stockid="Arrow2Send" + orient="auto" + refY="0.0" + refX="0.0" + id="Arrow2Send" + style="overflow:visible;" + inkscape:isstock="true"> + <path + id="path882" + style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round;stroke:#000000;stroke-opacity:1;fill:#000000;fill-opacity:1" + d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.9730900,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z " + transform="scale(0.3) rotate(180) translate(-2.3,0)" /> + </marker> + <marker + inkscape:stockid="Arrow1Send" + orient="auto" + refY="0.0" + refX="0.0" + id="Arrow1Send" + style="overflow:visible;" + inkscape:isstock="true"> + <path + id="path864" + d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z " + style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1;fill:#000000;fill-opacity:1" + transform="scale(0.2) rotate(180) translate(6,0)" /> + </marker> + <marker + inkscape:stockid="Arrow2Mend" + orient="auto" + refY="0.0" + refX="0.0" + id="Arrow2Mend" + style="overflow:visible;" + inkscape:isstock="true"> + <path + id="path876" + style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round;stroke:#000000;stroke-opacity:1;fill:#000000;fill-opacity:1" + d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.9730900,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z " + transform="scale(0.6) rotate(180) translate(0,0)" /> + </marker> + <marker + inkscape:stockid="Arrow2Lend" + orient="auto" + refY="0.0" + refX="0.0" + id="Arrow2Lend" + style="overflow:visible;" + inkscape:isstock="true"> + <path + id="path870" + style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round;stroke:#000000;stroke-opacity:1;fill:#000000;fill-opacity:1" + d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.9730900,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z " + transform="scale(1.1) rotate(180) translate(1,0)" /> + </marker> + <marker + inkscape:stockid="Arrow1Lend" + orient="auto" + refY="0.0" + refX="0.0" + id="Arrow1Lend" + style="overflow:visible;" + inkscape:isstock="true"> + <path + id="path852" + d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z " + style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1;fill:#000000;fill-opacity:1" + transform="scale(0.8) rotate(180) translate(12.5,0)" /> + </marker> + </defs> + <sodipodi:namedview + id="base" + pagecolor="#ffffff" + bordercolor="#666666" + borderopacity="1.0" + inkscape:pageopacity="0.0" + inkscape:pageshadow="2" + inkscape:zoom="3.959798" + inkscape:cx="52.570979" + inkscape:cy="25.817924" + inkscape:document-units="mm" + inkscape:current-layer="layer1" + showgrid="false" + inkscape:window-width="1908" + inkscape:window-height="1078" + inkscape:window-x="11" + inkscape:window-y="1" + inkscape:window-maximized="0" + inkscape:pagecheckerboard="true" + inkscape:snap-global="false" /> + <metadata + id="metadata5"> + <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> + <g + inkscape:label="Layer 1" + inkscape:groupmode="layer" + id="layer1" + transform="translate(0,-265)" + style="display:inline"> + <g + id="g1156" + transform="translate(0.16833649,-4.5568563)"> + <ellipse + ry="3.3222518" + rx="8.6503906" + cy="290.05096" + cx="16" + id="path845" + style="opacity:1;vector-effect:none;fill:#e9ddaf;fill-opacity:1;stroke:#483e37;stroke-width:0.5;stroke-linecap:square;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:stroke fill markers" /> + <path + sodipodi:nodetypes="ccccccccccccccccccc" + style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:normal;font-family:sans-serif;font-variant-ligatures:normal;font-variant-position:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-alternates:normal;font-feature-settings:normal;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:normal;word-spacing:normal;text-transform:none;writing-mode:lr-tb;direction:ltr;text-orientation:mixed;dominant-baseline:auto;baseline-shift:baseline;text-anchor:start;white-space:normal;shape-padding:0;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e9ddaf;fill-opacity:1;fill-rule:evenodd;stroke:#483e37;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:stroke fill markers;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" + d="m 16.26552,277.74332 c -0.339326,0.006 1.29e-4,-6.6e-4 -1.015535,0.0351 -5.3967113,0.28741 -11.9029875,5.13871 -14.65609291,9.22597 l 0.58942831,0.39725 c 2.58202,-3.83326 9.2539916,-8.56812 14.5068646,-8.84788 4.515927,-0.60177 10.750157,2.19322 13.394037,6.62816 -0.395511,0.13828 -0.825746,0.18254 -1.257503,0.11194 l 2.570333,2.37591 c 0.0063,0.0127 0.0097,0.0222 0.01621,0.035 l 0.01398,-0.007 0.658591,0.6089 -0.107338,-0.89136 0.0014,-5.8e-4 c -7.99e-4,-8.2e-4 -0.0016,-0.003 -0.0022,-0.006 l -0.422705,-3.50976 c -0.210602,0.40845 -0.51705,0.74296 -0.879949,0.98604 -0.02483,-0.0269 -0.04189,-0.0503 -0.06823,-0.0779 -2.235266,-4.11288 -8.251317,-7.14683 -13.341206,-7.06497 z" + id="path847" + inkscape:connector-curvature="0" /> + </g> + </g> +</svg> diff --git a/src/asset/www/svg/damage_type/snow.svg b/src/asset/www/svg/damage_type/snow.svg new file mode 100644 index 0000000..00cb5fd --- /dev/null +++ b/src/asset/www/svg/damage_type/snow.svg @@ -0,0 +1,204 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- Created with Inkscape (http://www.inkscape.org/) --> + +<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:xlink="http://www.w3.org/1999/xlink" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + width="32mm" + height="32mm" + viewBox="0 0 32 32" + version="1.1" + id="svg8" + inkscape:version="0.92.4 5da689c313, 2019-01-14" + sodipodi:docname="snow.svg"> + <defs + id="defs2" /> + <sodipodi:namedview + id="base" + pagecolor="#ffffff" + bordercolor="#666666" + borderopacity="1.0" + inkscape:pageopacity="0.0" + inkscape:pageshadow="2" + inkscape:zoom="1.9799" + inkscape:cx="-2.79719" + inkscape:cy="-27.270931" + inkscape:document-units="mm" + inkscape:current-layer="layer1" + showgrid="false" + inkscape:window-width="1918" + inkscape:window-height="1059" + inkscape:window-x="1" + inkscape:window-y="20" + inkscape:window-maximized="0" + inkscape:snap-global="false" + inkscape:pagecheckerboard="true" /> + <metadata + id="metadata5"> + <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> + <g + inkscape:label="Layer 1" + inkscape:groupmode="layer" + id="layer1" + transform="translate(0,-265)"> + <g + id="g2845" + transform="matrix(0.94365958,0,0,1.2287968,-1.0221484,-67.39265)"> + <g + transform="matrix(1.5089401,0,0,1.3066241,-7.3386872,-78.018841)" + id="g2735"> + <g + id="g2395" + style="fill:#ececec"> + <ellipse + style="opacity:1;vector-effect:none;fill:#f2f2f2;fill-opacity:1;stroke:none;stroke-width:0.5;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:markers stroke fill" + id="path2712" + cx="15.802302" + cy="280.0618" + rx="5.846518" + ry="5.9801526" /> + <path + style="fill:#ffffff;fill-rule:evenodd;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + d="m 10.490324,280.4293 c 1.192094,-4.3654 4.718661,-2.71724 5.679474,-5.87993 -1.554348,-0.467 -6.115914,1.224 -5.679474,5.87993 z" + id="path2714" + inkscape:connector-curvature="0" + sodipodi:nodetypes="ccc" /> + </g> + <path + style="fill:#e6e6e6;fill-rule:evenodd;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + d="m 12.609714,284.74301 c 4.198875,2.44997 9.863597,-0.84636 8.485803,-6.54811 -0.685723,9.08788 -7.184992,6.5694 -8.485803,6.54811 z" + id="path2714-6" + inkscape:connector-curvature="0" + sodipodi:nodetypes="ccc" /> + </g> + <path + sodipodi:nodetypes="ccccccc" + inkscape:connector-curvature="0" + id="path2799" + d="m 11.819955,279.51007 c -0.06306,-0.61681 -0.06317,-1.12912 0.534539,-1.41988 l -2.7336493,-3.34871 -0.7531274,-1.70268 0.1971788,1.02164 -1.3876166,-1.69983 z" + style="fill:#6c5353;fill-rule:evenodd;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> + <g + transform="matrix(0.98350745,0,0,0.85164049,1.2716509,42.055716)" + id="g2735-0"> + <g + id="g2395-6" + style="fill:#ececec"> + <ellipse + style="opacity:1;vector-effect:none;fill:#f2f2f2;fill-opacity:1;stroke:none;stroke-width:0.5;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:markers stroke fill" + id="path2712-2" + cx="15.802302" + cy="280.0618" + rx="5.846518" + ry="5.9801526" /> + <path + style="fill:#ffffff;fill-rule:evenodd;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + d="m 10.428677,281.28361 c 1.192094,-4.3654 2.499371,-4.14109 5.741121,-6.73424 -1.554348,-0.467 -6.177561,0.65446 -5.741121,6.73424 z" + id="path2714-61" + inkscape:connector-curvature="0" + sodipodi:nodetypes="ccc" /> + </g> + <path + style="fill:#e6e6e6;fill-rule:evenodd;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + d="m 14.397476,285.09897 c 2.842642,2.23639 8.445717,-2.69736 6.266512,-7.33122 0.300629,4.46038 -2.376529,7.4949 -6.266512,7.33122 z" + id="path2714-6-8" + inkscape:connector-curvature="0" + sodipodi:nodetypes="ccc" /> + </g> + <g + transform="matrix(0.64120079,0,0,0.5552297,6.7557454,119.13807)" + id="g2735-0-7"> + <g + id="g2395-6-9" + style="fill:#ececec"> + <ellipse + style="opacity:1;vector-effect:none;fill:#f2f2f2;fill-opacity:1;stroke:none;stroke-width:0.5;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:markers stroke fill" + id="path2712-2-2" + cx="15.802302" + cy="280.0618" + rx="5.846518" + ry="5.9801526" /> + <path + style="fill:#ffffff;fill-rule:evenodd;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + d="m 10.428677,281.28361 c 2.02967,-6.19246 3.523074,-5.96815 7.6024,-6.19687 -2.484987,-1.75669 -8.2249679,-0.20533 -7.6024,6.19687 z" + id="path2714-61-0" + inkscape:connector-curvature="0" + sodipodi:nodetypes="ccc" /> + </g> + <path + style="fill:#e6e6e6;fill-rule:evenodd;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + d="m 16.444883,284.02423 c 1.725875,1.59155 6.39831,-1.62262 4.219105,-6.25648 0.300629,4.46038 -1.538953,6.31269 -4.219105,6.25648 z" + id="path2714-6-8-2" + inkscape:connector-curvature="0" + sodipodi:nodetypes="ccc" /> + </g> + <ellipse + ry="0.60135615" + rx="0.56794745" + cy="278.65686" + cx="15.825232" + id="path2791" + style="opacity:1;vector-effect:none;fill:#808080;fill-opacity:1;stroke:none;stroke-width:0.5;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:markers stroke fill" /> + <use + height="100%" + width="100%" + transform="translate(-0.7363817,2.2636835)" + id="use2793" + xlink:href="#path2791" + y="0" + x="0" /> + <use + height="100%" + width="100%" + transform="translate(-0.28348201,2.2818631)" + id="use2795" + xlink:href="#use2793" + y="0" + x="0" /> + <use + height="100%" + width="100%" + transform="translate(-0.42522301,2.6497658)" + id="use2797" + xlink:href="#use2795" + y="0" + x="0" /> + <path + sodipodi:nodetypes="cccccccccc" + inkscape:connector-curvature="0" + id="path2799-3" + d="m 20.8515,280.97262 c 0.392671,-0.64155 0.46655,-0.72602 0.08101,-1.27014 l 2.995338,-0.72815 1.832255,-0.9846 -1.235133,0.92544 3.874634,-0.92554 -5.272149,2.08354 0.856053,0.95913 -1.417372,-0.77805 z" + style="fill:#6c5353;fill-rule:evenodd;stroke:none;stroke-width:0.32966301px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> + <ellipse + transform="rotate(11.426916)" + cx="69.382751" + cy="265.62054" + rx="0.69689327" + ry="0.93208516" + id="path2818" + style="opacity:1;vector-effect:none;fill:#333333;fill-opacity:1;stroke:none;stroke-width:0.5;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:markers stroke fill" /> + <use + height="100%" + width="100%" + transform="translate(2.5978896,0.18493484)" + id="use2820" + xlink:href="#path2818" + y="0" + x="0" /> + </g> + </g> +</svg> diff --git a/src/asset/www/svg/damage_type/swapwp.svg b/src/asset/www/svg/damage_type/swapwp.svg new file mode 100644 index 0000000..8dad702 --- /dev/null +++ b/src/asset/www/svg/damage_type/swapwp.svg @@ -0,0 +1,123 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- Created with Inkscape (http://www.inkscape.org/) --> + +<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="32mm" + height="32mm" + viewBox="0 0 32 32" + version="1.1" + id="svg8" + inkscape:version="0.92.4 5da689c313, 2019-01-14" + sodipodi:docname="swapwp.svg"> + <defs + id="defs2"> + <marker + inkscape:stockid="Arrow1Mend" + orient="auto" + refY="0.0" + refX="0.0" + id="Arrow1Mend" + style="overflow:visible;" + inkscape:isstock="true"> + <path + id="path858" + d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z " + style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1;fill:#000000;fill-opacity:1" + transform="scale(0.4) rotate(180) translate(10,0)" /> + </marker> + <marker + inkscape:stockid="Arrow2Mend" + orient="auto" + refY="0.0" + refX="0.0" + id="Arrow2Mend" + style="overflow:visible;" + inkscape:isstock="true"> + <path + id="path876" + style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round;stroke:#000000;stroke-opacity:1;fill:#000000;fill-opacity:1" + d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.9730900,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z " + transform="scale(0.6) rotate(180) translate(0,0)" /> + </marker> + </defs> + <sodipodi:namedview + id="base" + pagecolor="#ffffff" + bordercolor="#666666" + borderopacity="1.0" + inkscape:pageopacity="0.0" + inkscape:pageshadow="2" + inkscape:zoom="5.6568542" + inkscape:cx="44.5411" + inkscape:cy="53.777319" + inkscape:document-units="mm" + inkscape:current-layer="g829" + showgrid="false" + inkscape:window-width="1908" + inkscape:window-height="1078" + inkscape:window-x="11" + inkscape:window-y="1" + inkscape:window-maximized="0" + inkscape:pagecheckerboard="true" + inkscape:snap-global="false" /> + <metadata + id="metadata5"> + <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> + <g + inkscape:groupmode="layer" + id="layer2" + inkscape:label="Layer 2" + style="display:inline" /> + <g + inkscape:label="Layer 1" + inkscape:groupmode="layer" + id="layer1" + transform="translate(0,-265)" + style="display:inline"> + <g + id="g829" + transform="rotate(45,13.546346,299.58838)" + style="stroke:#483e37;stroke-opacity:1;fill:#e9ddaf;fill-opacity:1;stroke-width:0.5;stroke-miterlimit:4;stroke-dasharray:none;paint-order:stroke fill markers"> + <g + id="g2286" + transform="translate(-0.00326371,-0.17138667)"> + <path + inkscape:connector-curvature="0" + id="path823" + d="m -11.466274,283.34273 c 2.7078673,3.56298 4.1655548,7.15662 8.1235046,10.68906 0.5880662,0.93343 -0.4765467,1.85191 -1.3017122,2.97366 1.15681,-0.52238 2.554403,-0.0823 3.4396019,-1.6911 0.52650766,0.93561 1.52574616,2.0288 3.4204736,3.42048 0.196669,0.83142 1.2825695,-0.42766 1.2825695,-0.42766 0,0 1.2590848,-1.08591 0.4276633,-1.28257 -1.3916788,-1.89473 -2.4848683,-2.89397 -3.42047359,-3.42048 1.60883789,-0.8852 1.16871709,-2.28279 1.69109689,-3.4396 -1.1217547,0.82517 -2.04023684,1.88978 -2.97366664,1.30171 -3.53243206,-3.95795 -7.12607506,-5.41563 -10.68905736,-8.1235 z" + style="fill:#e9ddaf;fill-opacity:1;stroke:#483e37;stroke-width:0.5;stroke-linecap:square;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;paint-order:stroke fill markers" /> + <path + inkscape:connector-curvature="0" + id="path823-3" + d="m 15.57289,286.24423 c -3.56298,-2.70787 -7.1566208,-4.16556 -10.6890608,-8.12351 -0.93343,-0.58806 -1.85191,0.47655 -2.97366,1.30171 0.52238,-1.15681 0.0823,-2.5544 1.6911,-3.4396 -0.93561,-0.5265 -2.0288,-1.52574 -3.42047994,-3.42047 -0.8314201,-0.19667 0.42766,-1.28257 0.42766,-1.28257 0,0 1.08590994,-1.25909 1.28256994,-0.42766 1.89473,1.39168 2.89397,2.48486 3.42048,3.42047 0.8852,-1.60884 2.28279,-1.16872 3.4396,-1.6911 -0.82517,1.12176 -1.88978,2.04024 -1.30171,2.97367 3.9579508,3.53243 5.4156308,7.12607 8.1235008,10.68906 z" + style="display:inline;fill:#e9ddaf;fill-opacity:1;stroke:#483e37;stroke-width:0.5;stroke-linecap:square;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;paint-order:stroke fill markers" /> + <path + inkscape:connector-curvature="0" + id="path1902" + d="m -4.1855598,274.95159 c 0.3639264,0.30289 0.6246242,0.69257 0.7688174,1.11815 -1.2263949,0.45705 -2.3695102,1.02822 -3.3149774,1.79853 -1.5821735,1.28906 -2.5906716,3.15456 -2.4533463,5.81802 l 0.5996338,-0.0311 c -0.1290289,-2.50253 0.7688826,-4.12988 2.2322748,-5.32216 0.851985,-0.69414 1.9074371,-1.2283 3.0580958,-1.66516 0.028162,0.36178 -0.022826,0.73187 -0.1633372,1.08343 l 2.71388214,-1.88294 c 0.012725,-0.003 0.025272,-0.007 0.038002,-0.0102 l -0.00329,-0.0135 0.69500518,-0.48234 -0.84372608,-0.0829 -3.654e-4,-0.001 c -7.446e-4,2e-4 -0.00145,5.4e-4 -0.00219,7.4e-4 z" + style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:normal;font-family:sans-serif;font-variant-ligatures:normal;font-variant-position:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-alternates:normal;font-feature-settings:normal;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:normal;word-spacing:normal;text-transform:none;writing-mode:lr-tb;direction:ltr;text-orientation:mixed;dominant-baseline:auto;baseline-shift:baseline;text-anchor:start;white-space:normal;shape-padding:0;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e9ddaf;fill-opacity:1;fill-rule:evenodd;stroke:#483e37;stroke-width:0.49999997;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:stroke fill markers;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" /> + <path + id="path1902-6" + d="m 8.4087245,294.86821 c -0.3639293,-0.30289 -0.6246303,-0.69257 -0.7688198,-1.11815 1.2263901,-0.45705 2.3695103,-1.02822 3.3149793,-1.79853 1.582169,-1.28906 2.590668,-3.15456 2.453338,-5.81802 l -0.599629,0.0311 c 0.12903,2.50253 -0.76888,4.12988 -2.232279,5.32216 -0.8519793,0.69414 -1.9074292,1.2283 -3.0580894,1.66516 -0.0282,-0.36178 0.0228,-0.73187 0.1633401,-1.08343 l -2.7138902,1.88294 c -0.0127,0.003 -0.0253,0.007 -0.038,0.0102 l 0.003,0.0135 -0.6949986,0.48234 0.843719,0.083 3.6e-4,10e-4 c 7.5e-4,-1.8e-4 0.001,-5.4e-4 0.002,-7.3e-4 z" + style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:normal;font-family:sans-serif;font-variant-ligatures:normal;font-variant-position:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-alternates:normal;font-feature-settings:normal;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:normal;word-spacing:normal;text-transform:none;writing-mode:lr-tb;direction:ltr;text-orientation:mixed;dominant-baseline:auto;baseline-shift:baseline;text-anchor:start;white-space:normal;shape-padding:0;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e9ddaf;fill-opacity:1;fill-rule:evenodd;stroke:#483e37;stroke-width:0.49999997;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:stroke fill markers;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" + inkscape:connector-curvature="0" /> + </g> + </g> + </g> +</svg> diff --git a/src/asset/www/svg/damage_type/warning.svg b/src/asset/www/svg/damage_type/warning.svg new file mode 100644 index 0000000..21d9a0b --- /dev/null +++ b/src/asset/www/svg/damage_type/warning.svg @@ -0,0 +1,111 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- Created with Inkscape (http://www.inkscape.org/) --> + +<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="16mm" + height="16mm" + viewBox="0 0 16 16" + version="1.1" + id="svg8" + inkscape:version="0.92.2 2405546, 2018-03-11" + sodipodi:docname="warning.svg"> + <defs + id="defs2" /> + <sodipodi:namedview + id="base" + pagecolor="#ffffff" + bordercolor="#666666" + borderopacity="1.0" + inkscape:pageopacity="0.0" + inkscape:pageshadow="2" + inkscape:zoom="8.00001" + inkscape:cx="14.351411" + inkscape:cy="12.958916" + inkscape:document-units="mm" + inkscape:current-layer="layer1" + showgrid="false" + inkscape:snap-global="false" + inkscape:snap-bbox="true" + inkscape:bbox-nodes="false" + inkscape:window-width="1918" + inkscape:window-height="1059" + inkscape:window-x="1" + inkscape:window-y="20" + inkscape:window-maximized="0" + inkscape:pagecheckerboard="true" /> + <metadata + id="metadata5"> + <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> + <g + inkscape:label="Layer 1" + inkscape:groupmode="layer" + id="layer1" + transform="translate(0,-281)"> + <g + id="g4664" + transform="matrix(1.6696653,0,0,1.6696653,24.324249,-201.75405)"> + <path + transform="rotate(0.52710602,-9.7321153,295.0994)" + inkscape:transform-center-y="-1.1757876" + inkscape:transform-center-x="0.044922833" + d="m -5.5893155,297.23151 c -0.3660441,0.65475 -7.9499495,0.75964 -8.3339615,0.11526 -0.384012,-0.64438 3.317101,-7.26468 4.0671571,-7.27505 0.7500565,-0.0104 4.6328486,6.50503 4.2668044,7.15979 z" + inkscape:randomized="0" + inkscape:rounded="0.09" + inkscape:flatsided="true" + sodipodi:arg2="1.5569663" + sodipodi:arg1="0.50976873" + sodipodi:r2="2.4060376" + sodipodi:r1="4.8120751" + sodipodi:cy="294.88333" + sodipodi:cx="-9.7895708" + sodipodi:sides="3" + id="path4598" + style="opacity:1;vector-effect:none;fill:#e9ddaf;fill-opacity:1;stroke:#483e37;stroke-width:0.5;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:markers stroke fill" + sodipodi:type="star" /> + <g + transform="translate(-0.02302298)" + id="g4656"> + <g + aria-label="!" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:7.76111126px;line-height:125%;font-family:Arial;-inkscape-font-specification:Arial;letter-spacing:0px;word-spacing:0px;fill:#483e37;fill-opacity:1;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + id="text4609" + transform="matrix(1.4304927,0,0,1,4.2936198,1.0748705)"> + <path + d="m -10.034195,294.30502 c -0.01163,-0.16423 -0.208428,-1.88619 -0.208428,-1.88619 v -1.23162 c 0,-0.34124 0.8450819,-0.37017 0.8450819,0 v 1.23162 c 0,0 -0.1878496,1.73688 -0.1970595,1.88619 -0.00921,0.14931 -0.4279694,0.16423 -0.4395944,0 z" + style="font-size:7.76111126px;fill:#483e37;fill-opacity:1;stroke-width:0.26458332px" + id="path4611" + inkscape:connector-curvature="0" + sodipodi:nodetypes="zczzczz" /> + </g> + <g + aria-label="!" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:7.76111126px;line-height:125%;font-family:Arial;-inkscape-font-specification:Arial;letter-spacing:0px;word-spacing:0px;fill:#483e37;fill-opacity:1;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + id="text4609-0" + transform="matrix(1.1127557,0,0,0.77788279,1.1734158,66.226774)"> + <path + d="m -10.212306,296.74277 c -0.184003,-0.184 -0.184003,-0.59287 0,-0.77687 0.184003,-0.184 0.6004449,-0.184 0.784448,0 0.1840031,0.184 0.1840031,0.59287 0,0.77687 -0.1840031,0.184 -0.600445,0.184 -0.784448,0 z" + style="font-size:7.76111126px;fill:#483e37;fill-opacity:1;stroke-width:0.26458332px" + id="path4611-6" + inkscape:connector-curvature="0" + sodipodi:nodetypes="zzzzz" /> + </g> + </g> + </g> + </g> +</svg> diff --git a/src/battle/src/ElmModule/Update.elm b/src/battle/src/ElmModule/Update.elm index cc9b9b8..5e9d4ca 100644 --- a/src/battle/src/ElmModule/Update.elm +++ b/src/battle/src/ElmModule/Update.elm @@ -22,7 +22,10 @@ import Update.Character.DisplayNavigator import Update.CharacterTurn.AbortTurn import Update.CharacterTurn.Attack import Update.CharacterTurn.EndTurn +import Update.CharacterTurn.Move import Update.CharacterTurn.RequestDirection +import Update.CharacterTurn.Skill +import Update.CharacterTurn.Skip import Update.CharacterTurn.SwitchWeapon import Update.CharacterTurn.UndoAction @@ -55,6 +58,15 @@ update event model = Struct.Event.AttackRequest -> (Update.CharacterTurn.Attack.apply_to model) + Struct.Event.SkillRequest -> + (Update.CharacterTurn.Skill.apply_to model) + + Struct.Event.SkipRequest -> + (Update.CharacterTurn.Skip.apply_to model) + + Struct.Event.MoveRequest -> + (Update.CharacterTurn.Move.apply_to model) + Struct.Event.AnimationEnded -> (Update.Puppeteer.apply_to model) diff --git a/src/battle/src/Struct/CharacterTurn.elm b/src/battle/src/Struct/CharacterTurn.elm index 514803d..1a64cce 100644 --- a/src/battle/src/Struct/CharacterTurn.elm +++ b/src/battle/src/Struct/CharacterTurn.elm @@ -43,6 +43,7 @@ module Struct.CharacterTurn exposing clear_path, -- Other + is_aiming_at_something, encode, new ) @@ -71,6 +72,7 @@ import Struct.Navigator -------------------------------------------------------------------------------- type Action = None + | Skipping | Attacking | SwitchingWeapons | UsingSkill @@ -113,6 +115,7 @@ encode_action : Type -> (Json.Encode.Value) encode_action ct = case ct.action of None -> (Json.Encode.null) + Skipping -> (Json.Encode.null) Attacking -> case (List.head (Set.toList ct.targets)) of @@ -267,6 +270,11 @@ override_path path ct = {ct | path = path} clear_path : Type -> Type clear_path ct = {ct | path = []} +---- Other --------------------------------------------------------------------- +is_aiming_at_something : Type -> Bool +is_aiming_at_something ct = + (not ((Set.isEmpty ct.targets) && (Set.isEmpty ct.locations))) + ---- Encode/Decode ------------------------------------------------------------- encode : Type -> (Json.Encode.Value) encode ct = diff --git a/src/battle/src/Struct/Event.elm b/src/battle/src/Struct/Event.elm index 950b00d..7b91ae9 100644 --- a/src/battle/src/Struct/Event.elm +++ b/src/battle/src/Struct/Event.elm @@ -20,6 +20,9 @@ type Type = AbortTurnRequest | AnimationEnded | AttackRequest + | SkillRequest + | SkipRequest + | MoveRequest | CharacterOrTileSelected BattleMap.Struct.Location.Ref | CharacterSelected Int | CharacterCardSelected Int diff --git a/src/battle/src/Struct/Navigator.elm b/src/battle/src/Struct/Navigator.elm index 537351a..be2f460 100644 --- a/src/battle/src/Struct/Navigator.elm +++ b/src/battle/src/Struct/Navigator.elm @@ -173,7 +173,7 @@ unlock_path navigator = navigator.attack_dist (navigator.cost_and_danger_fun) ), - locked_path = True + locked_path = False } lock_path_with_new_attack_ranges : Int -> Int -> Type -> Type diff --git a/src/battle/src/Update/CharacterTurn/Move.elm b/src/battle/src/Update/CharacterTurn/Move.elm new file mode 100644 index 0000000..a8b6a27 --- /dev/null +++ b/src/battle/src/Update/CharacterTurn/Move.elm @@ -0,0 +1,34 @@ +module Update.CharacterTurn.Move exposing (apply_to) + +-- Battle Characters ----------------------------------------------------------- + +-- Local module ---------------------------------------------------------------- +import Struct.CharacterTurn +import Struct.Error +import Struct.Event +import Struct.Model +import Struct.Navigator + +-------------------------------------------------------------------------------- +-- LOCAL ----------------------------------------------------------------------- +-------------------------------------------------------------------------------- + +-------------------------------------------------------------------------------- +-- EXPORTED -------------------------------------------------------------------- +-------------------------------------------------------------------------------- +apply_to : Struct.Model.Type -> (Struct.Model.Type, (Cmd Struct.Event.Type)) +apply_to model = + case (Struct.CharacterTurn.maybe_get_navigator model.char_turn) of + (Just nav) -> + ( + {model | + char_turn = + (Struct.CharacterTurn.set_navigator + (Struct.Navigator.lock_path nav) + (Struct.CharacterTurn.store_path model.char_turn) + ) + }, + Cmd.none + ) + + _ -> (model, Cmd.none) diff --git a/src/battle/src/Update/CharacterTurn/ResetPath.elm b/src/battle/src/Update/CharacterTurn/ResetPath.elm new file mode 100644 index 0000000..f6fb97c --- /dev/null +++ b/src/battle/src/Update/CharacterTurn/ResetPath.elm @@ -0,0 +1,73 @@ +module Update.CharacterTurn.ResetPath exposing (apply_to) + +-- Battle Map ------------------------------------------------------------------ +import BattleMap.Struct.Direction +import BattleMap.Struct.Location +import BattleMap.Struct.Map + +-- Battle Characters ----------------------------------------------------------- +import BattleCharacters.Struct.Character + +-- Local Module ---------------------------------------------------------------- +import Struct.Battle +import Struct.Character +import Struct.CharacterTurn +import Struct.Error +import Struct.Event +import Struct.Model +import Struct.Navigator + +-------------------------------------------------------------------------------- +-- LOCAL ----------------------------------------------------------------------- +-------------------------------------------------------------------------------- + +-------------------------------------------------------------------------------- +-- EXPORTED -------------------------------------------------------------------- +-------------------------------------------------------------------------------- +apply_to : Struct.Model.Type -> (Struct.Model.Type, (Cmd Struct.Event.Type)) +apply_to model = + case + ( + (Struct.CharacterTurn.maybe_get_active_character model.char_turn), + (Struct.CharacterTurn.maybe_get_navigator model.char_turn) + ) + of + ((Just char), (Just nav)) -> + let + new_location = (Struct.Navigator.get_starting_location nav) + in + ( + {model | + char_turn = + (Struct.CharacterTurn.set_navigator + (Struct.Navigator.clear_path + (Struct.Navigator.unlock_path nav) + ) + (Struct.CharacterTurn.set_active_character + (Struct.Character.set_location + new_location + (BattleMap.Struct.Map.get_omnimods_at + new_location + model.map_data_set + (Struct.Battle.get_map model.battle) + ) + char + ) + (Struct.CharacterTurn.clear_path model.char_turn) + ) + ) + }, + Cmd.none + ) + + _ -> + ( + (Struct.Model.invalidate + (Struct.Error.new + Struct.Error.IllegalAction + "This can only be done while controlling a character." + ) + model + ), + Cmd.none + ) diff --git a/src/battle/src/Update/CharacterTurn/Skill.elm b/src/battle/src/Update/CharacterTurn/Skill.elm new file mode 100644 index 0000000..ee3baf2 --- /dev/null +++ b/src/battle/src/Update/CharacterTurn/Skill.elm @@ -0,0 +1,37 @@ +module Update.CharacterTurn.Skill exposing (apply_to) + +-- Battle Characters ----------------------------------------------------------- + +-- Local module ---------------------------------------------------------------- +import Struct.CharacterTurn +import Struct.Error +import Struct.Event +import Struct.Model +import Struct.Navigator + +-------------------------------------------------------------------------------- +-- LOCAL ----------------------------------------------------------------------- +-------------------------------------------------------------------------------- + +-------------------------------------------------------------------------------- +-- EXPORTED -------------------------------------------------------------------- +-------------------------------------------------------------------------------- +apply_to : Struct.Model.Type -> (Struct.Model.Type, (Cmd Struct.Event.Type)) +apply_to model = + case (Struct.CharacterTurn.maybe_get_navigator model.char_turn) of + (Just nav) -> + ( + {model | + char_turn = + (Struct.CharacterTurn.set_action + Struct.CharacterTurn.UsingSkill + (Struct.CharacterTurn.set_navigator + (Struct.Navigator.lock_path nav) + (Struct.CharacterTurn.store_path model.char_turn) + ) + ) + }, + Cmd.none + ) + + _ -> (model, Cmd.none) diff --git a/src/battle/src/Update/CharacterTurn/Skip.elm b/src/battle/src/Update/CharacterTurn/Skip.elm new file mode 100644 index 0000000..b61db05 --- /dev/null +++ b/src/battle/src/Update/CharacterTurn/Skip.elm @@ -0,0 +1,42 @@ +module Update.CharacterTurn.Skip exposing (apply_to) + +-- Shared ---------------------------------------------------------------------- +import Shared.Update.Sequence + +-- Local module ---------------------------------------------------------------- +import Struct.CharacterTurn +import Struct.Error +import Struct.Event +import Struct.Model +import Struct.Navigator + +import Update.CharacterTurn.ResetPath + +-------------------------------------------------------------------------------- +-- LOCAL ----------------------------------------------------------------------- +-------------------------------------------------------------------------------- +set_action : Struct.Model.Type -> (Struct.Model.Type, (Cmd Struct.Event.Type)) +set_action model = + ( + {model | + char_turn = + (Struct.CharacterTurn.set_action + Struct.CharacterTurn.Skipping + model.char_turn + ) + }, + Cmd.none + ) + +-------------------------------------------------------------------------------- +-- EXPORTED -------------------------------------------------------------------- +-------------------------------------------------------------------------------- +apply_to : Struct.Model.Type -> (Struct.Model.Type, (Cmd Struct.Event.Type)) +apply_to model = + (Shared.Update.Sequence.sequence + [ + (Update.CharacterTurn.ResetPath.apply_to), + (set_action) + ] + model + ) diff --git a/src/battle/src/Update/CharacterTurn/UndoAction.elm b/src/battle/src/Update/CharacterTurn/UndoAction.elm index 6a9d7f8..0187752 100644 --- a/src/battle/src/Update/CharacterTurn/UndoAction.elm +++ b/src/battle/src/Update/CharacterTurn/UndoAction.elm @@ -21,8 +21,9 @@ import Struct.Event import Struct.Model import Struct.Navigator -import Util.Navigator +import Update.CharacterTurn.ResetPath +import Util.Navigator -------------------------------------------------------------------------------- -- LOCAL ----------------------------------------------------------------------- -------------------------------------------------------------------------------- @@ -57,27 +58,46 @@ handle_undo_attacking char_turn = ) ) +handle_undo_skipping : Struct.CharacterTurn.Type -> Struct.CharacterTurn.Type +handle_undo_skipping char_turn = + case (Struct.CharacterTurn.maybe_get_navigator char_turn) of + Nothing -> char_turn + (Just nav) -> + (Struct.CharacterTurn.clear_action + (Struct.CharacterTurn.set_navigator + (Struct.Navigator.unlock_path nav) + char_turn + ) + ) + -------------------------------------------------------------------------------- -- EXPORTED -------------------------------------------------------------------- -------------------------------------------------------------------------------- apply_to : Struct.Model.Type -> (Struct.Model.Type, (Cmd Struct.Event.Type)) apply_to model = - ( - {model | - char_turn = - ( - case (Struct.CharacterTurn.get_action model.char_turn) of - Struct.CharacterTurn.Attacking -> - (handle_undo_attacking model.char_turn) + let action = (Struct.CharacterTurn.get_action model.char_turn) in + if (action == Struct.CharacterTurn.None) + then (Update.CharacterTurn.ResetPath.apply_to model) + else + ( + {model | + char_turn = + ( + case action of + Struct.CharacterTurn.Attacking -> + (handle_undo_attacking model.char_turn) - Struct.CharacterTurn.UsingSkill -> - (handle_undo_attacking model.char_turn) + Struct.CharacterTurn.UsingSkill -> + (handle_undo_attacking model.char_turn) - Struct.CharacterTurn.SwitchingWeapons -> - (handle_undo_switching_weapons model.char_turn) + Struct.CharacterTurn.SwitchingWeapons -> + (handle_undo_switching_weapons model.char_turn) - _ -> model.char_turn - ) - }, - Cmd.none - ) + Struct.CharacterTurn.Skipping -> + (handle_undo_skipping model.char_turn) + + Struct.CharacterTurn.None -> model.char_turn + ) + }, + Cmd.none + ) diff --git a/src/battle/src/Util/Navigator.elm b/src/battle/src/Util/Navigator.elm new file mode 100644 index 0000000..c5a8136 --- /dev/null +++ b/src/battle/src/Util/Navigator.elm @@ -0,0 +1,87 @@ +module Util.Navigator exposing + ( + get_character_navigator, + get_character_attack_navigator + ) + +-- Elm ------------------------------------------------------------------------- +import Array +import List + +-- Battle ---------------------------------------------------------------------- +import Battle.Struct.Attributes + +-- Battle Characters ----------------------------------------------------------- +import BattleCharacters.Struct.Character +import BattleCharacters.Struct.Weapon + +-- Battle Map ------------------------------------------------------------------ +import BattleMap.Struct.Map + +-- Local Module ---------------------------------------------------------------- +import Struct.Battle +import Struct.Character +import Struct.Navigator + +-------------------------------------------------------------------------------- +-- LOCAL ----------------------------------------------------------------------- +-------------------------------------------------------------------------------- + +-------------------------------------------------------------------------------- +-- EXPORTED -------------------------------------------------------------------- +-------------------------------------------------------------------------------- +get_character_navigator : ( + Struct.Battle.Type -> + Struct.Character.Type -> + Struct.Navigator.Type + ) +get_character_navigator battle char = + let + base_char = (Struct.Character.get_base_character char) + weapon = (BattleCharacters.Struct.Character.get_active_weapon base_char) + in + (Struct.Navigator.new + (Struct.Character.get_location char) + (Battle.Struct.Attributes.get_movement_points + (BattleCharacters.Struct.Character.get_attributes base_char) + ) + (BattleCharacters.Struct.Weapon.get_defense_range weapon) + (BattleCharacters.Struct.Weapon.get_attack_range weapon) + (BattleMap.Struct.Map.get_tile_data_function + (Struct.Battle.get_map battle) + (List.map + (Struct.Character.get_location) + (Array.toList + (Struct.Battle.get_characters battle) + ) + ) + (Struct.Character.get_location char) + ) + ) + +get_character_attack_navigator : ( + Struct.Battle.Type -> + Struct.Character.Type -> + Struct.Navigator.Type + ) +get_character_attack_navigator battle char = + let + base_char = (Struct.Character.get_base_character char) + weapon = (BattleCharacters.Struct.Character.get_active_weapon base_char) + in + (Struct.Navigator.new + (Struct.Character.get_location char) + 0 + (BattleCharacters.Struct.Weapon.get_defense_range weapon) + (BattleCharacters.Struct.Weapon.get_attack_range weapon) + (BattleMap.Struct.Map.get_tile_data_function + (Struct.Battle.get_map battle) + (List.map + (Struct.Character.get_location) + (Array.toList + (Struct.Battle.get_characters battle) + ) + ) + (Struct.Character.get_location char) + ) + ) diff --git a/src/battle/src/View/Controlled.elm b/src/battle/src/View/Controlled.elm index 0293770..8f78fd9 100644 --- a/src/battle/src/View/Controlled.elm +++ b/src/battle/src/View/Controlled.elm @@ -19,102 +19,214 @@ import View.Controlled.ManualControls -------------------------------------------------------------------------------- -- LOCAL ----------------------------------------------------------------------- -------------------------------------------------------------------------------- -has_a_path : Struct.CharacterTurn.Type -> Bool -has_a_path char_turn = - case (Struct.CharacterTurn.maybe_get_navigator char_turn) of - (Just nav) -> ((Struct.Navigator.get_path nav) /= []) - Nothing -> False - +action_to_class : ( + Struct.CharacterTurn.Action -> + (Html.Attribute Struct.Event.Type) + ) +action_to_class action = + (Html.Attributes.class + ( + case action of + Struct.CharacterTurn.None -> "no-action" + Struct.CharacterTurn.Skipping -> "skipping" + Struct.CharacterTurn.Attacking -> "attacking" + Struct.CharacterTurn.SwitchingWeapons -> "switching-weapons" + Struct.CharacterTurn.UsingSkill -> "using-skill" + ) + ) -skill_button : Struct.CharacterTurn.Type -> (Html.Html Struct.Event.Type) -skill_button char_turn = +action_or_undo_button : ( + Struct.CharacterTurn.Action -> + Struct.CharacterTurn.Action -> + Struct.Event.Type -> + (Html.Html Struct.Event.Type) + ) +action_or_undo_button current_action relevant_action event = (Html.button - [ (Html.Events.onClick Struct.Event.AttackRequest) ] + ( + if (current_action == Struct.CharacterTurn.None) + then + [ + (Html.Attributes.class "action-button"), + (action_to_class relevant_action), + (Html.Attributes.class "action"), + (Html.Events.onClick event) + ] + else if (current_action == relevant_action) + then + [ + (Html.Attributes.class "action-button"), + (action_to_class relevant_action), + (Html.Events.onClick Struct.Event.UndoActionRequest), + (Html.Attributes.class "undo") + ] + else + [ + (Html.Attributes.class "action-button"), + (action_to_class relevant_action), + (Html.Attributes.class "disabled") + ] + ) [ - (Html.text - ( - if (has_a_path char_turn) - then ("Go & Select Skill Target(s)") - else ("Select Skill Target(s)") - ) - ) ] ) +inventory_button : Struct.CharacterTurn.Type -> (Html.Html Struct.Event.Type) +inventory_button char_turn = + (action_or_undo_button + (Struct.CharacterTurn.get_action char_turn) + Struct.CharacterTurn.SwitchingWeapons + Struct.Event.WeaponSwitchRequest + ) + + attack_button : Struct.CharacterTurn.Type -> (Html.Html Struct.Event.Type) attack_button char_turn = - (Html.button - [ (Html.Events.onClick Struct.Event.AttackRequest) ] - [ - (Html.text - ( - if (has_a_path char_turn) - then ("Go & Select Attack Target") - else ("Select Attack Target") - ) - ) - ] + (action_or_undo_button + (Struct.CharacterTurn.get_action char_turn) + Struct.CharacterTurn.Attacking + Struct.Event.AttackRequest ) -abort_button : (Html.Html Struct.Event.Type) -abort_button = - (Html.button - [ (Html.Events.onClick Struct.Event.AbortTurnRequest) ] - [ (Html.text "Abort") ] +skip_button : Struct.CharacterTurn.Type -> (Html.Html Struct.Event.Type) +skip_button char_turn = + (action_or_undo_button + (Struct.CharacterTurn.get_action char_turn) + Struct.CharacterTurn.Skipping + Struct.Event.SkipRequest ) -undo_button : (Html.Html Struct.Event.Type) -undo_button = - (Html.button - [ (Html.Events.onClick Struct.Event.UndoActionRequest) ] - [ (Html.text "Undo") ] +skill_button : Struct.CharacterTurn.Type -> (Html.Html Struct.Event.Type) +skill_button char_turn = + (action_or_undo_button + (Struct.CharacterTurn.get_action char_turn) + Struct.CharacterTurn.UsingSkill + Struct.Event.SkillRequest ) -end_turn_button : (Html.Html Struct.Event.Type) -end_turn_button = +abort_button : (Html.Html Struct.Event.Type) +abort_button = (Html.button [ - (Html.Events.onClick Struct.Event.TurnEnded), - (Html.Attributes.class "end-turn-button") + (Html.Attributes.class "action-button"), + (Html.Events.onClick Struct.Event.AbortTurnRequest), + (Html.Attributes.class "abort-button") + ] + [ ] - [ (Html.text ("Confirm Turn")) ] ) -inventory_button : Bool -> (Html.Html Struct.Event.Type) -inventory_button go_prefix = + +path_button : Struct.CharacterTurn.Type -> (Html.Html Struct.Event.Type) +path_button char_turn = (Html.button - [ (Html.Events.onClick Struct.Event.WeaponSwitchRequest) ] - [ - (Html.text + ( + if + ( + ( + (Struct.CharacterTurn.get_action char_turn) + == Struct.CharacterTurn.None + ) + && ( - if (go_prefix) - then ("Go & Switch Weapon") - else ("Switch Weapon") + case (Struct.CharacterTurn.maybe_get_navigator char_turn) of + Nothing -> False + (Just nav) -> ((Struct.Navigator.get_path nav) /= []) ) ) + then + if ((Struct.CharacterTurn.get_path char_turn) == []) + then + [ + (Html.Attributes.class "action-button"), + (Html.Attributes.class "path-button"), + (Html.Events.onClick Struct.Event.MoveRequest) + ] + else + [ + (Html.Attributes.class "action-button"), + (Html.Attributes.class "path-button"), + (Html.Events.onClick Struct.Event.UndoActionRequest), + (Html.Attributes.class "undo") + ] + else + [ + (Html.Attributes.class "action-button"), + (Html.Attributes.class "path-button"), + (Html.Attributes.class "disabled"), + (Html.Attributes.class + ( + if ((Struct.CharacterTurn.get_path char_turn) == []) + then "" + else "undo" + ) + ) + ] + ) + [ ] ) +end_turn_button : Struct.CharacterTurn.Type -> (Html.Html Struct.Event.Type) +end_turn_button char_turn = + let + registered_path = (Struct.CharacterTurn.get_path char_turn) + action = (Struct.CharacterTurn.get_action char_turn) + temporary_path = + case (Struct.CharacterTurn.maybe_get_navigator char_turn) of + Nothing -> [] + (Just nav) -> (Struct.Navigator.get_path nav) + in + (Html.button + [ + ( + if + ( + (temporary_path /= registered_path) + || + ( + (Struct.CharacterTurn.is_aiming_at_something char_turn) + && (action /= Struct.CharacterTurn.Attacking) + && (action /= Struct.CharacterTurn.UsingSkill) + ) + || + ( + (registered_path == []) + && (action == Struct.CharacterTurn.None) + ) + ) + then (Html.Attributes.class "disabled") + else (Html.Events.onClick Struct.Event.TurnEnded) + ), + (Html.Attributes.class "action-button"), + (Html.Attributes.class "end-turn-button"), + (Html.Attributes.class + ( + if (registered_path == []) + then "no-path-was-queued" + else "path-was-queued" + ) + ), + (action_to_class (Struct.CharacterTurn.get_action char_turn)) + ] + [ + ] + ) + get_available_actions : ( Struct.CharacterTurn.Type -> (List (Html.Html Struct.Event.Type)) ) get_available_actions char_turn = - if ((Struct.CharacterTurn.get_action char_turn) == Struct.CharacterTurn.None) - then - [ - (attack_button char_turn), - (skill_button char_turn), - (inventory_button (has_a_path char_turn)), - (end_turn_button), - (abort_button) - ] - else - [ - (end_turn_button), - (undo_button), - (abort_button) - ] + [ + (abort_button), + (skip_button char_turn), + (path_button char_turn), + (attack_button char_turn), + (skill_button char_turn), + (inventory_button char_turn), + (end_turn_button char_turn) + ] -------------------------------------------------------------------------------- -- EXPORTED -------------------------------------------------------------------- @@ -133,19 +245,26 @@ get_html char_turn player_ix = player_ix char ), - ( - if - ( - (Struct.CharacterTurn.get_action char_turn) - == - Struct.CharacterTurn.None - ) - then (View.Controlled.ManualControls.get_html) - else (Shared.Util.Html.nothing) - ), (Html.div - [(Html.Attributes.class "controlled-actions")] - (get_available_actions char_turn) + [ + (Html.Attributes.class "controlled-controls") + ] + [ + (Html.div + [(Html.Attributes.class "controlled-actions")] + (get_available_actions char_turn) + ), + ( + if + ( + (Struct.CharacterTurn.get_action char_turn) + == + Struct.CharacterTurn.None + ) + then (View.Controlled.ManualControls.get_html) + else (Shared.Util.Html.nothing) + ) + ] ) ] ) diff --git a/src/battle/src/View/Controlled/ManualControls.elm b/src/battle/src/View/Controlled/ManualControls.elm index 8c8c802..cb53c59 100644 --- a/src/battle/src/View/Controlled/ManualControls.elm +++ b/src/battle/src/View/Controlled/ManualControls.elm @@ -31,18 +31,6 @@ direction_button dir label = [] ) -go_button : (Html.Html Struct.Event.Type) -go_button = - (Html.button - [ - (Html.Attributes.class "manual-controls-go"), - (Html.Events.onClick Struct.Event.AttackRequest) - ] - [ - (Html.text "Go") - ] - ) - -------------------------------------------------------------------------------- -- EXPORTED -------------------------------------------------------------------- -------------------------------------------------------------------------------- @@ -56,7 +44,6 @@ get_html = (direction_button BattleMap.Struct.Direction.Left "left"), (direction_button BattleMap.Struct.Direction.Down "down"), (direction_button BattleMap.Struct.Direction.Up "up"), - (direction_button BattleMap.Struct.Direction.Right "right"), - (go_button) + (direction_button BattleMap.Struct.Direction.Right "right") ] ) diff --git a/src/css/src/battle/controlled-panel.scss b/src/css/src/battle/controlled-panel.scss index 2a52fe6..6001d39 100644 --- a/src/css/src/battle/controlled-panel.scss +++ b/src/css/src/battle/controlled-panel.scss @@ -19,16 +19,22 @@ display: flex; flex-flow: column; - justify-content: space-between; + justify-content: space-evenly; } -.controlled-actions +.controlled-controls { display: flex; - flex-flow: row wrap; + flex-flow: row; +} - align-items: center; - justify-content: center; +.controlled-actions +{ + width: 50%; + display: grid; + grid-template-columns: 33% 33% 33%; + grid-gap: 2px; + justify-content: space-evenly; } .end-turn-button @@ -39,3 +45,4 @@ } @import 'controlled-panel/manual-control'; +@import 'controlled-panel/buttons'; diff --git a/src/css/src/battle/controlled-panel/buttons.scss b/src/css/src/battle/controlled-panel/buttons.scss new file mode 100644 index 0000000..fb55a61 --- /dev/null +++ b/src/css/src/battle/controlled-panel/buttons.scss @@ -0,0 +1,115 @@ +.action-button +{ + width: 42px; + height: 42px; + background-size: 97%; + background-position: center; +} + +.action-button.disabled +{ + opacity: 0.1; + pointer-events:none; +} + +.action-button + .action-button +{ + margin: 0; +} + +.action-button.abort-button +{ + background-image: url(/asset/svg/damage_type/abort.svg); +} + +.action-button.skipping +{ + --bg-first-act: url(/asset/svg/damage_type/skip.svg); + --bg-second-act: var(--bg-first-act); + background-image: var(--bg-first-act); +} + +.action-button.path-button +{ + --bg-first-act: url(/asset/svg/damage_type/move.svg); + background-image: var(--bg-first-act); +} + +.action-button.attacking +{ + --bg-second-act: url(/asset/svg/damage_type/attack.svg); + background-image: var(--bg-second-act); +} + +.action-button.using-skill +{ + --bg-second-act: url(/asset/svg/damage_type/skill.svg); + background-image: var(--bg-second-act); +} + +.action-button.switching-weapons +{ + --bg-second-act: url(/asset/svg/damage_type/swapwp.svg); + background-image: var(--bg-second-act); +} + +.action-button.end-turn-button +{ + grid-column: span 3; + width: calc(100% - 2px); + --bg-end-turn: url(/asset/svg/damage_type/endturn.svg); +} + +.action-button.end-turn-button.disabled +{ + animation: none; +} + +.action-button.end-turn-button.no-path-was-queued +{ + background-image: var(--bg-second-act), var(--bg-end-turn); + background-size: 42px, 42px; + background-repeat: no-repeat, no-repeat; + background-position: left center, right center; +} + +.action-button.end-turn-button.path-was-queued +{ + background-size: 42px, 42px, 42px; + background-repeat: no-repeat, no-repeat, no-repeat; + background-position: left center, center, right center; + background-image: + url(/asset/svg/damage_type/move.svg), + var(--bg-second-act), + var(--bg-end-turn); +} + +.action-button.end-turn-button.no-path-was-queued, +.action-button.end-turn-button.path-was-queued.no-action +{ + background-size: 42px, 42px; + background-repeat: no-repeat, no-repeat; + background-position: left center, right center; + background-image: + var(--bg-first-act), + var(--bg-end-turn); +} + +.action-button.undo +{ + border-bottom-width: 1px; + filter: brightness(0.8); + +} +.action-button.end-turn-button.no-path-was-queued +{ + background-image: var(--bg-second-act), var(--bg-end-turn); +} + +.action-button.end-turn-button.path-was-queued.no-action +{ + background-image: + url(/asset/svg/damage_type/move.svg), + var(--bg-end-turn); +} + diff --git a/src/css/src/battle/controlled-panel/manual-control.scss b/src/css/src/battle/controlled-panel/manual-control.scss index 7ab41b6..f4f5d99 100644 --- a/src/css/src/battle/controlled-panel/manual-control.scss +++ b/src/css/src/battle/controlled-panel/manual-control.scss @@ -5,7 +5,7 @@ display: grid; grid-template: '. top .' - 'left go right' + 'left . right' '. bottom .'; margin: auto; } @@ -25,15 +25,6 @@ opacity: 1; } -.manual-controls-go -{ - margin: auto; - width: 28px; - height: 28px; - border-radius: 100em; - grid-area: go; -} - .manual-controls-up { transform: rotate(-90deg); diff --git a/src/shared/elm/Shared/Util/Set.elm b/src/shared/elm/Shared/Util/Set.elm new file mode 100644 index 0000000..d9368cd --- /dev/null +++ b/src/shared/elm/Shared/Util/Set.elm @@ -0,0 +1,11 @@ +module Shared.Util.Set exposing (..) + +import Set + +import List + +toggle : comparable -> (Set.Set comparable) -> (Set.Set comparable) +toggle e set = + if (Set.member e set) + then (Set.remove e set) + else (Set.insert e set) |