feature/charactersheet-sytling #43

Merged
macniel merged 7 commits from feature/charactersheet-sytling into main 2025-09-29 17:49:45 +02:00
381 changed files with 10172 additions and 127 deletions

12
.idea/DSA41.iml 100644
View File

@ -0,0 +1,12 @@
<?xml version="1.0" encoding="UTF-8"?>
<module type="WEB_MODULE" version="4">
<component name="NewModuleRootManager">
<content url="file://$MODULE_DIR$">
<excludeFolder url="file://$MODULE_DIR$/.tmp" />
<excludeFolder url="file://$MODULE_DIR$/temp" />
<excludeFolder url="file://$MODULE_DIR$/tmp" />
</content>
<orderEntry type="inheritedJdk" />
<orderEntry type="sourceFolder" forTests="false" />
</component>
</module>

View File

@ -0,0 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ProjectModuleManager">
<modules>
<module fileurl="file://$PROJECT_DIR$/.idea/DSA41.iml" filepath="$PROJECT_DIR$/.idea/DSA41.iml" />
</modules>
</component>
</project>

View File

@ -38,7 +38,7 @@ function updateManifestFile() {
function buildDB() { function buildDB() {
// Determine which source folders to process // Determine which source folders to process
const PACK_SRC = "src/packs/_source" const PACK_SRC = "src/packs/__source"
const PACK_DEST = "dist/packs/" const PACK_DEST = "dist/packs/"
return new Promise(async (resolve, reject) => { return new Promise(async (resolve, reject) => {

View File

@ -0,0 +1,112 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
version="1.1"
width="901.49994"
height="901.49994"
id="svg2"
sodipodi:docname="Boron_2.svg"
inkscape:version="1.2.2 (b0a8486541, 2022-12-01)"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:dc="http://purl.org/dc/elements/1.1/">
<sodipodi:namedview
id="namedview40721"
pagecolor="#ffffff"
bordercolor="#000000"
borderopacity="0.25"
inkscape:showpageshadow="2"
inkscape:pageopacity="0.0"
inkscape:pagecheckerboard="0"
inkscape:deskcolor="#d1d1d1"
showgrid="false"
inkscape:zoom="0.40277244"
inkscape:cx="-571.04205"
inkscape:cy="207.31309"
inkscape:window-width="2560"
inkscape:window-height="1375"
inkscape:window-x="0"
inkscape:window-y="0"
inkscape:window-maximized="1"
inkscape:current-layer="svg2" />
<defs
id="defs4" />
<metadata
id="metadata7">
<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>
<g
transform="rotate(22.635939,-713.81049,-2820.5556)"
id="g5124"
style="stroke:#000000;stroke-width:3;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
<g
id="g41280">
<rect
width="220"
height="40"
x="510.50003"
y="434.99994"
id="rect2953"
style="fill:#000000;fill-opacity:1;stroke:#ffffff;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
<rect
width="220"
height="40"
x="170.50011"
y="434.99994"
id="rect2953-1"
style="fill:#000000;fill-opacity:1;stroke:#ffffff;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
<rect
width="220"
height="40"
x="-734.99994"
y="-470.50003"
transform="matrix(0,-1,-1,0,0,0)"
id="rect2953-4"
style="fill:#000000;fill-opacity:1;stroke:#ffffff;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
<rect
width="220"
height="40"
x="-283.18066"
y="620.28595"
transform="rotate(-45)"
id="rect2953-9"
style="fill:#000000;fill-opacity:1;stroke:#ffffff;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
<rect
width="220"
height="40"
x="-920.28461"
y="-23.181307"
transform="rotate(-135)"
id="rect2953-9-4"
style="fill:#000000;fill-opacity:1;stroke:#ffffff;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
<path
d="m 164.09378,365.49994 c -8.8221,28.26434 -13.5938,58.32961 -13.5938,89.5 0,165.68542 134.3146,300 300.00002,300 165.68542,0 300,-134.31458 300,-300 0,-31.17039 -4.77164,-61.23566 -13.59375,-89.5 l -38.1875,11.9375 c 7.6477,24.49847 11.78125,50.54473 11.78125,77.5625 0,143.59403 -116.40597,260 -260,260 -143.59403,0 -260.00002,-116.40597 -260.00002,-260 0,-27.01777 4.1336,-53.06403 11.7813,-77.5625 z"
id="path2938"
style="fill:#000000;fill-opacity:1;stroke:#ffffff;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
<path
d="m 670.53125,133.09369 c 0,0 -0.67043,13.60031 -3.3125,29.65625 -2.64207,16.05594 -8.94199,34.57952 -12.3125,38.78125 -13.67668,17.04956 -38.43505,25.28914 -68.5625,33.8125 -30.12745,8.52336 -65.25279,17.1821 -90.65625,45.28125 -16.69459,18.46613 -25.89713,44.55225 -33.21875,67.25 -7.32162,22.69775 -11.5,41.90625 -11.5,41.90625 l 39.09375,8.5 c 0,0 3.80945,-17.48054 10.46875,-38.125 6.6593,-20.64446 17.43077,-44.5537 24.8125,-52.71875 15.30547,-16.92962 41.53873,-25.00248 71.90625,-33.59375 30.36752,-8.59127 65.2405,-17.8181 88.875,-47.28125 13.82909,-17.23957 17.50447,-38.72877 20.5625,-57.3125 3.05803,-18.58373 3.8125,-34.25 3.8125,-34.25 z"
id="path3020"
style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:normal;font-family:'Bitstream Vera Sans';-inkscape-font-specification:'Bitstream Vera Sans';text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;letter-spacing:normal;word-spacing:normal;text-transform:none;writing-mode:lr-tb;direction:ltr;text-anchor:start;display:inline;overflow:visible;visibility:visible;fill:#000000;fill-opacity:1;stroke:#ffffff;stroke-width:3;stroke-miterlimit:4;stroke-dasharray:none;marker:none;enable-background:accumulate" />
<path
d="m 230.46878,133.09369 c 0,0 0.6704,13.60031 3.3125,29.65625 2.642,16.05594 8.942,34.57952 12.3125,38.78125 13.67665,17.04956 38.43502,25.28914 68.56247,33.8125 30.12745,8.52336 65.25279,17.1821 90.65625,45.28125 16.69459,18.46613 25.89713,44.55225 33.21875,67.25 7.32162,22.69775 11.5,41.90625 11.5,41.90625 l -39.09375,8.5 c 0,0 -3.80945,-17.48054 -10.46875,-38.125 -6.6593,-20.64446 -17.43077,-44.5537 -24.8125,-52.71875 -15.30547,-16.92962 -41.53873,-25.00248 -71.90625,-33.59375 -30.36752,-8.59127 -65.24052,-17.8181 -88.87502,-47.28125 -13.8291,-17.23957 -17.5045,-38.72877 -20.5625,-57.3125 -3.058,-18.58373 -3.8125,-34.25 -3.8125,-34.25 z"
id="path3020-8"
style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:normal;font-family:'Bitstream Vera Sans';-inkscape-font-specification:'Bitstream Vera Sans';text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;letter-spacing:normal;word-spacing:normal;text-transform:none;writing-mode:lr-tb;direction:ltr;text-anchor:start;display:inline;overflow:visible;visibility:visible;fill:#000000;fill-opacity:1;stroke:#ffffff;stroke-width:3;stroke-miterlimit:4;stroke-dasharray:none;marker:none;enable-background:accumulate" />
<path
d="m 450.5,374.99994 c -44.18278,0 -80,35.81722 -80,80 0,44.18278 35.81722,80 80,80 44.18278,0 80,-35.81722 80,-80 0,-44.18278 -35.81722,-80 -80,-80 z m 0,40 c 22.09139,0 40,17.90861 40,40 0,22.09139 -17.90861,40 -40,40 -22.09139,0 -40,-17.90861 -40,-40 0,-22.09139 17.90861,-40 40,-40 z"
id="path2948"
style="fill:#000000;fill-opacity:1;stroke:#ffffff;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
</g>
</svg>

After

Width:  |  Height:  |  Size: 6.9 KiB

View File

@ -0,0 +1,42 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
width="24"
height="24"
version="1.1"
id="svg4"
sodipodi:docname="circle.svg"
inkscape:version="1.2.2 (b0a8486541, 2022-12-01)"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<defs
id="defs8" />
<sodipodi:namedview
id="namedview6"
pagecolor="#ffffff"
bordercolor="#000000"
borderopacity="0.25"
inkscape:showpageshadow="2"
inkscape:pageopacity="0.0"
inkscape:pagecheckerboard="0"
inkscape:deskcolor="#d1d1d1"
showgrid="false"
inkscape:zoom="10.27"
inkscape:cx="41.626095"
inkscape:cy="50"
inkscape:window-width="2560"
inkscape:window-height="1375"
inkscape:window-x="0"
inkscape:window-y="0"
inkscape:window-maximized="1"
inkscape:current-layer="svg4" />
<circle
cx="12"
cy="12"
r="11.5"
stroke="#008000"
stroke-width="1"
fill="#ffff00"
id="circle2" />
</svg>

After

Width:  |  Height:  |  Size: 1.1 KiB

85
src/assets/die.svg 100644
View File

@ -0,0 +1,85 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
width="24"
height="24"
viewBox="0 0 6.3499998 6.35"
version="1.1"
id="svg10"
sodipodi:docname="die.svg"
inkscape:version="1.2.2 (b0a8486541, 2022-12-01)"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<defs
id="defs14" />
<sodipodi:namedview
id="namedview12"
pagecolor="#ffffff"
bordercolor="#000000"
borderopacity="0.25"
inkscape:showpageshadow="2"
inkscape:pageopacity="0.0"
inkscape:pagecheckerboard="0"
inkscape:deskcolor="#d1d1d1"
showgrid="false"
inkscape:zoom="7.8486813"
inkscape:cx="48.288366"
inkscape:cy="65.425003"
inkscape:window-width="2560"
inkscape:window-height="1375"
inkscape:window-x="0"
inkscape:window-y="0"
inkscape:window-maximized="1"
inkscape:current-layer="svg10" />
<g
id="g54292"
transform="matrix(0.18024007,0,0,0.18024007,-0.89816307,-0.85756211)"
style="stroke-width:1.05833;stroke-dasharray:none">
<path
style="fill:none;stroke:#000000;stroke-width:1.05833;stroke-linejoin:bevel;stroke-dasharray:none"
d="M 22.60018,5.4074448 15.210951,18.121927 7.821723,13.87057 Z"
id="path54272"
fill="currentColor"
class="die topleft" />
<path
style="fill:none;stroke:#000000;stroke-width:1.05833;stroke-linejoin:bevel;stroke-dasharray:none"
d="M 22.60018,5.4074448 29.989407,18.121927 37.34771,13.890365 Z"
id="path54274"
fill="currentColor"
class="die topright" />
<path
style="fill:none;stroke:#000000;stroke-width:1.05833;stroke-linejoin:bevel;stroke-dasharray:none"
d="m 29.989407,18.121927 7.389229,12.754072 -2e-6,-17.005429 z"
id="path54276"
fill="currentColor"
class="die bottomright" />
<path
style="display:inline;fill:none;stroke:#000000;stroke-width:1.05833;stroke-linejoin:bevel;stroke-dasharray:none"
d="m 15.210951,18.121927 -7.3934235,12.756367 2e-6,-17.005429 z"
id="path54278"
fill="currentColor"
class="die bottomleft" />
<path
style="display:inline;fill:none;stroke:#000000;stroke-width:1.05833;stroke-linejoin:bevel;stroke-dasharray:none"
d="M 7.8175275,30.878293 22.600179,39.378712 37.378634,30.875999 Z"
id="path54280"
fill="currentColor"
class="die bottom" />
<path
style="display:inline;fill:none;stroke:#000000;stroke-width:1.05833;stroke-linejoin:bevel;stroke-dasharray:none"
d="M 7.821723,30.875999 22.600179,5.3678558 37.378634,30.875999 Z"
id="path54282"
fill="currentColor"
class="die center" />
<path
style="fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.896643;stroke-dasharray:none;paint-order:normal"
id="path2181"
fill="currentColor"
class="die borer"
d="m 35.923409,110.09622 -12.498871,7.21622 -12.498871,-7.21622 V 95.663763 l 12.498871,-7.216227 12.498871,7.216227 z"
transform="matrix(1.1823833,0,0,1.1782771,-5.0966027,-98.847851)" />
</g>
</svg>

After

Width:  |  Height:  |  Size: 3.2 KiB

View File

@ -0,0 +1,248 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
width="936"
height="128"
viewBox="0 0 247.65002 33.866666"
version="1.1"
id="svg5"
sodipodi:docname="kampftalent.svg"
xml:space="preserve"
inkscape:version="1.2.2 (b0a8486541, 2022-12-01)"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg"><sodipodi:namedview
id="namedview7"
pagecolor="#ffffff"
bordercolor="#000000"
borderopacity="0.25"
inkscape:showpageshadow="2"
inkscape:pageopacity="0.0"
inkscape:pagecheckerboard="0"
inkscape:deskcolor="#d1d1d1"
inkscape:document-units="px"
showgrid="false"
inkscape:zoom="2.8284271"
inkscape:cx="640.2852"
inkscape:cy="-16.086679"
inkscape:window-width="2560"
inkscape:window-height="1375"
inkscape:window-x="0"
inkscape:window-y="0"
inkscape:window-maximized="1"
inkscape:current-layer="layer1" /><defs
id="defs2"><linearGradient
inkscape:collect="always"
id="linearGradient11174"><stop
style="stop-color:#cc0000;stop-opacity:1;"
offset="0"
id="stop11170" /><stop
style="stop-color:#cc0000;stop-opacity:0;"
offset="1"
id="stop11172" /></linearGradient><rect
x="-146.37109"
y="-165.10944"
width="3.1819806"
height="18.031223"
id="rect8930" /><clipPath
clipPathUnits="userSpaceOnUse"
id="clipPath3563"><use
x="0"
y="0"
xlink:href="#g3559"
id="use3565" /></clipPath><linearGradient
inkscape:collect="always"
xlink:href="#linearGradient11174"
id="linearGradient11176"
x1="7.3891749"
y1="8.5387707"
x2="123.80584"
y2="8.5387707"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(1.9999991,0,0,1.9999991,-6.3180528e-7,2.0198111e-6)" /></defs><g
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1"><rect
style="fill:url(#linearGradient11176);fill-opacity:1;stroke:#333333;stroke-width:1.05833;stroke-dasharray:none;stroke-opacity:1"
id="rect6308"
width="231.77489"
height="32.808315"
x="15.307509"
y="0.67337787" /><g
id="g3196"
transform="matrix(1.9999991,0,0,1.9999991,60.86841,-212.70002)"
inkscape:label="pa"><rect
style="fill:none;fill-opacity:1;stroke:none;stroke-width:0.529167;stroke-dasharray:none"
id="rect3107"
width="16.536451"
height="16.748518"
x="76.57058"
y="106.68675" /><rect
style="fill:#000000;stroke:none;stroke-width:234.2;stroke-dasharray:none"
id="rect1211"
width="0.26458347"
height="13.803041"
x="-76.967453"
y="106.68675"
transform="scale(-1,1)" /><text
xml:space="preserve"
style="font-size:4.23333px;font-family:'Noto Serif';-inkscape-font-specification:'Noto Serif';text-align:center;text-anchor:middle;fill:#555753;stroke:none;stroke-width:0.529167;stroke-dasharray:none"
x="84.790123"
y="122.37695"
id="text2185-9"
inkscape:label="name"><tspan
sodipodi:role="line"
id="tspan2183-1"
style="fill:#555753;stroke:none;stroke-width:0.529167"
x="84.790123"
y="122.37695">PA</tspan></text><text
xml:space="preserve"
style="font-size:4.23333px;font-family:'Noto Serif';-inkscape-font-specification:'Noto Serif';text-align:center;text-anchor:middle;fill:#fce94f;stroke-width:1"
x="131.09895"
y="91.726837"
id="text5831"
inkscape:label="value"
transform="translate(-46.283424,24.845474)"><tspan
sodipodi:role="line"
id="tspan5829"
style="fill:#000000;stroke-width:1"
x="131.09895"
y="91.726837">-</tspan></text></g><g
id="g3252"
transform="matrix(1.9999991,0,0,1.9999991,28.324693,-212.70002)"
inkscape:label="at"><rect
style="fill:none;stroke:none;stroke-width:0.529167;stroke-dasharray:none"
id="rect3242"
width="16.536451"
height="16.748518"
x="76.57058"
y="106.68675"
inkscape:label="rect3242" /><rect
style="fill:#000000;stroke:none;stroke-width:234.2;stroke-dasharray:none"
id="rect3244"
width="0.26458347"
height="13.803041"
x="-76.967453"
y="106.68675"
transform="scale(-1,1)" /><rect
style="fill:#000000;stroke:none;stroke-width:234.2;stroke-dasharray:none"
id="rect3246"
width="0.26458347"
height="13.803041"
x="-93.239319"
y="106.68675"
transform="scale(-1,1)" /><text
xml:space="preserve"
style="font-size:4.23333px;font-family:'Noto Serif';-inkscape-font-specification:'Noto Serif';text-align:center;text-anchor:middle;fill:#555753;stroke:none;stroke-width:0.529167;stroke-dasharray:none"
x="84.790123"
y="122.37695"
id="text3250"
inkscape:label="name"><tspan
sodipodi:role="line"
id="tspan3248"
style="fill:#555753;stroke:none;stroke-width:0.529167"
x="84.790123"
y="122.37695">AT</tspan></text><text
xml:space="preserve"
style="font-size:4.23333px;font-family:'Noto Serif';-inkscape-font-specification:'Noto Serif';text-align:center;text-anchor:middle;fill:#fce94f;stroke-width:1"
x="114.82708"
y="91.726837"
id="text5827"
transform="translate(-30.011558,24.845474)"
inkscape:label="value"><tspan
sodipodi:role="line"
id="tspan5825"
style="fill:#000000;stroke-width:1"
x="114.82708"
y="91.726837">23</tspan></text></g><rect
style="fill:none;fill-opacity:1;stroke:#333333;stroke-width:1.05833;stroke-dasharray:none;stroke-opacity:1"
id="rect788"
width="231.77489"
height="32.808315"
x="15.307509"
y="0.67337787" /><text
xml:space="preserve"
style="font-size:8.46666px;font-family:'Noto Serif';-inkscape-font-specification:'Noto Serif';text-align:start;text-anchor:start;fill:#ffffff;stroke-width:2"
x="49.406403"
y="20.332304"
id="text952"
inkscape:label="talentname"><tspan
sodipodi:role="line"
id="tspan950"
style="text-align:start;text-anchor:start;fill:#ffffff;stroke-width:2"
x="49.406403"
y="20.332304">Bogen</tspan></text><g
id="g3561"
clip-path="url(#clipPath3563)"
transform="matrix(2.0832585,0,0,2.0735313,-46.386506,-169.785)"
style="fill:#a40000;stroke-width:0.962283"><g
inkscape:label="Clip"
id="g3559"
style="fill:none;stroke-width:0.962283"><path
sodipodi:type="star"
style="fill:#a40000;fill-opacity:1;stroke:#000000;stroke-width:1.79328;stroke-dasharray:none;paint-order:normal"
id="path2181"
inkscape:flatsided="true"
sodipodi:sides="6"
sodipodi:cx="23.424538"
sodipodi:cy="102.87999"
sodipodi:r1="14.432453"
sodipodi:r2="12.498872"
sodipodi:arg1="0.52359878"
sodipodi:arg2="1.0471976"
inkscape:rounded="0"
inkscape:randomized="0"
d="m 35.923409,110.09622 -12.498871,7.21622 -12.498871,-7.21622 0,-14.432457 12.498871,-7.216227 12.498871,7.216227 z"
transform="matrix(0.56756439,0,0,0.56824657,16.065304,31.622044)" /></g><path
style="fill:#ef2929;fill-opacity:1;stroke:none;stroke-width:0.530407;stroke-dasharray:none;stroke-opacity:1;paint-order:normal"
d="m 22.596749,93.771327 7.028072,-11.836363 -6.909419,4.004048 z"
id="path8173"
transform="matrix(0.96003407,0,0,0.96003407,0.91547839,3.6348696)"
sodipodi:nodetypes="cccc" /><path
style="fill:none;stroke:#000000;stroke-width:0.509208;stroke-dasharray:none;paint-order:normal"
d="m 22.723038,86.139249 6.891154,3.457526 6.891152,-3.457526"
id="path5077" /><path
sodipodi:type="star"
style="fill:#cc0000;fill-opacity:1;stroke:#000000;stroke-width:1.17592;stroke-dasharray:none"
id="path3523"
inkscape:flatsided="true"
sodipodi:sides="3"
sodipodi:cx="51.838085"
sodipodi:cy="117.27473"
sodipodi:r1="18.414276"
sodipodi:r2="14.741338"
sodipodi:arg1="0.52327832"
sodipodi:arg2="1.5704759"
inkscape:rounded="0"
inkscape:randomized="0"
d="m 67.788266,126.47675 -31.89446,0.0102 15.938378,-27.626518 z"
transform="matrix(0.43118457,0,0,0.43488655,7.0070777,39.302145)" /><path
sodipodi:type="star"
style="fill:none;stroke:#000000;stroke-width:1.79328;stroke-dasharray:none;paint-order:normal"
id="path8372"
inkscape:flatsided="true"
sodipodi:sides="6"
sodipodi:cx="23.424538"
sodipodi:cy="102.87999"
sodipodi:r1="14.432453"
sodipodi:r2="12.498872"
sodipodi:arg1="0.52359878"
sodipodi:arg2="1.0471976"
inkscape:rounded="0"
inkscape:randomized="0"
d="m 35.923409,110.09622 -12.498871,7.21622 -12.498871,-7.21622 0,-14.432457 12.498871,-7.216227 12.498871,7.216227 z"
transform="matrix(0.56756439,0,0,0.56824658,16.065304,31.622045)" /></g><text
xml:space="preserve"
style="font-size:8.46666px;font-family:'Noto Serif';-inkscape-font-specification:'Noto Serif';text-align:center;text-anchor:middle;fill:#fce94f;stroke-width:2"
x="14.456725"
y="19.804697"
id="text8936"
inkscape:label="taw"><tspan
sodipodi:role="line"
id="tspan8934"
style="text-align:center;text-anchor:middle;fill:#000000;stroke-width:2"
x="14.456725"
y="19.804697">16</tspan></text></g></svg>

After

Width:  |  Height:  |  Size: 10 KiB

View File

@ -0,0 +1,263 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
width="936"
height="128"
viewBox="0 0 247.65002 33.866666"
version="1.1"
id="svg5"
sodipodi:docname="liturgie.svg"
xml:space="preserve"
inkscape:version="1.2.2 (b0a8486541, 2022-12-01)"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg"><sodipodi:namedview
id="namedview7"
pagecolor="#ffffff"
bordercolor="#000000"
borderopacity="0.25"
inkscape:showpageshadow="2"
inkscape:pageopacity="0.0"
inkscape:pagecheckerboard="0"
inkscape:deskcolor="#d1d1d1"
inkscape:document-units="px"
showgrid="false"
inkscape:zoom="1.4142136"
inkscape:cx="455.37677"
inkscape:cy="83.792154"
inkscape:window-width="2560"
inkscape:window-height="1375"
inkscape:window-x="0"
inkscape:window-y="0"
inkscape:window-maximized="1"
inkscape:current-layer="layer1" /><defs
id="defs2"><linearGradient
inkscape:collect="always"
id="linearGradient19422"><stop
style="stop-color:#edd400;stop-opacity:1;"
offset="0"
id="stop19418" /><stop
style="stop-color:#edd400;stop-opacity:0;"
offset="1"
id="stop19420" /></linearGradient><clipPath
clipPathUnits="userSpaceOnUse"
id="clipPath3563"><use
x="0"
y="0"
xlink:href="#g3559"
id="use3565" /></clipPath><linearGradient
inkscape:collect="always"
xlink:href="#linearGradient19422"
id="linearGradient19424"
x1="7.3891749"
y1="8.5387707"
x2="123.80584"
y2="8.5387707"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(1.9999991,0,0,1.9999991,-6.3180528e-7,2.0198111e-6)" /></defs><g
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1"><rect
style="fill:url(#linearGradient19424);fill-opacity:1;stroke:#333333;stroke-width:1.05833;stroke-dasharray:none;stroke-opacity:1"
id="rect6308"
width="231.77489"
height="32.808315"
x="15.307509"
y="0.67337787" /><g
id="g3196"
transform="matrix(1.9999991,0,0,1.9999991,60.86841,-212.70002)"
inkscape:label="eigenschaft 3"><rect
style="fill:none;fill-opacity:1;stroke:none;stroke-width:0.529167;stroke-dasharray:none"
id="rect3107"
width="16.536451"
height="16.748518"
x="76.57058"
y="106.68675" /><rect
style="fill:#000000;stroke:none;stroke-width:234.2;stroke-dasharray:none"
id="rect1211"
width="0.26458347"
height="13.803041"
x="-76.967453"
y="106.68675"
transform="scale(-1,1)" /><text
xml:space="preserve"
style="font-size:4.23333px;font-family:'Noto Serif';-inkscape-font-specification:'Noto Serif';text-align:center;text-anchor:middle;fill:#555753;stroke:none;stroke-width:0.529167;stroke-dasharray:none"
x="84.790123"
y="122.37695"
id="text2185-9"
inkscape:label="name"><tspan
sodipodi:role="line"
id="tspan2183-1"
style="fill:#555753;stroke:none;stroke-width:0.529167"
x="84.790123"
y="122.37695">CH</tspan></text><text
xml:space="preserve"
style="font-size:4.23333px;font-family:'Noto Serif';-inkscape-font-specification:'Noto Serif';text-align:center;text-anchor:middle;fill:#fce94f;stroke-width:1"
x="131.09895"
y="91.726837"
id="text5831"
inkscape:label="value"
transform="translate(-46.283424,24.845474)"><tspan
sodipodi:role="line"
id="tspan5829"
style="fill:#000000;stroke-width:1"
x="131.09895"
y="91.726837">14</tspan></text></g><g
id="g3252"
transform="matrix(1.9999991,0,0,1.9999991,28.324693,-212.70002)"
inkscape:label="eigenschaft 2"><rect
style="fill:none;stroke:none;stroke-width:0.529167;stroke-dasharray:none"
id="rect3242"
width="16.536451"
height="16.748518"
x="76.57058"
y="106.68675" /><rect
style="fill:#000000;stroke:none;stroke-width:234.2;stroke-dasharray:none"
id="rect3244"
width="0.26458347"
height="13.803041"
x="-76.967453"
y="106.68675"
transform="scale(-1,1)" /><text
xml:space="preserve"
style="font-size:4.23333px;font-family:'Noto Serif';-inkscape-font-specification:'Noto Serif';text-align:center;text-anchor:middle;fill:#555753;stroke:none;stroke-width:0.529167;stroke-dasharray:none"
x="84.790123"
y="122.37695"
id="text3250"
inkscape:label="name"><tspan
sodipodi:role="line"
id="tspan3248"
style="fill:#555753;stroke:none;stroke-width:0.529167"
x="84.790123"
y="122.37695">IN</tspan></text><text
xml:space="preserve"
style="font-size:4.23333px;font-family:'Noto Serif';-inkscape-font-specification:'Noto Serif';text-align:center;text-anchor:middle;fill:#fce94f;stroke-width:1"
x="114.82708"
y="91.726837"
id="text5827"
transform="translate(-30.011558,24.845474)"
inkscape:label="value"><tspan
sodipodi:role="line"
id="tspan5825"
style="fill:#000000;stroke-width:1"
x="114.82708"
y="91.726837">14</tspan></text></g><g
id="g3264"
transform="matrix(1.9999991,0,0,1.9999991,-4.2190233,-212.70002)"
inkscape:label="eigenschaft 1"><rect
style="fill:none;stroke:none;stroke-width:0.529167;stroke-dasharray:none"
id="rect3254"
width="16.536451"
height="16.748518"
x="76.57058"
y="106.68675" /><rect
style="fill:#000000;stroke:none;stroke-width:234.2;stroke-dasharray:none"
id="rect3256"
width="0.26458347"
height="13.803041"
x="-76.967453"
y="106.68675"
transform="scale(-1,1)" /><text
xml:space="preserve"
style="font-size:4.23333px;font-family:'Noto Serif';-inkscape-font-specification:'Noto Serif';text-align:center;text-anchor:middle;fill:#555753;stroke:none;stroke-width:0.529167;stroke-dasharray:none"
x="84.790123"
y="122.37695"
id="text3262"
inkscape:label="name"><tspan
sodipodi:role="line"
id="tspan3260"
style="fill:#555753;stroke:none;stroke-width:0.529167"
x="84.790123"
y="122.37695">MU</tspan></text><text
xml:space="preserve"
style="font-size:4.23333px;font-family:'Noto Serif';-inkscape-font-specification:'Noto Serif';text-align:center;text-anchor:middle;fill:#fce94f;stroke-width:1"
x="98.555214"
y="91.726837"
id="text5823"
transform="translate(-13.739692,24.845474)"
inkscape:label="value"><tspan
sodipodi:role="line"
id="tspan5821"
style="fill:#000000;stroke-width:1"
x="98.555214"
y="91.726837">13</tspan></text></g><rect
style="fill:none;fill-opacity:1;stroke:#333333;stroke-width:1.05833;stroke-dasharray:none;stroke-opacity:1"
id="rect788"
width="231.77489"
height="32.808315"
x="15.307509"
y="0.67337787" /><text
xml:space="preserve"
style="font-size:8.46666px;font-family:'Noto Serif';-inkscape-font-specification:'Noto Serif';text-align:start;text-anchor:start;fill:#fce94f;stroke-width:2"
x="49.406403"
y="20.332304"
id="text952"
inkscape:label="talentname"><tspan
sodipodi:role="line"
id="tspan950"
style="text-align:start;text-anchor:start;fill:#000000;stroke-width:2"
x="49.406403"
y="20.332304">Ruf zur Ruhe</tspan></text><g
id="g3561"
clip-path="url(#clipPath3563)"
transform="matrix(2.0832585,0,0,2.0735313,-46.386506,-169.785)"
style="fill:#a40000;stroke-width:0.962283"><g
inkscape:label="Clip"
id="g3559"
style="fill:none;stroke-width:0.962283"><path
sodipodi:type="star"
style="fill:#c4a000;fill-opacity:1;stroke:#000000;stroke-width:1.79328;stroke-dasharray:none;paint-order:normal"
id="path2181"
inkscape:flatsided="true"
sodipodi:sides="6"
sodipodi:cx="23.424538"
sodipodi:cy="102.87999"
sodipodi:r1="14.432453"
sodipodi:r2="12.498872"
sodipodi:arg1="0.52359878"
sodipodi:arg2="1.0471976"
inkscape:rounded="0"
inkscape:randomized="0"
d="m 35.923409,110.09622 -12.498871,7.21622 -12.498871,-7.21622 0,-14.432457 12.498871,-7.216227 12.498871,7.216227 z"
transform="matrix(0.56756439,0,0,0.56824657,16.065304,31.622044)" /></g><path
style="fill:#fce94f;fill-opacity:1;stroke:none;stroke-width:0.530407;stroke-dasharray:none;stroke-opacity:1;paint-order:normal"
d="m 22.596749,93.771327 7.028072,-11.836363 -6.909419,4.004048 z"
id="path8173"
transform="matrix(0.96003407,0,0,0.96003407,0.91547839,3.6348696)"
sodipodi:nodetypes="cccc" /><path
style="fill:none;stroke:#000000;stroke-width:0.509208;stroke-dasharray:none;paint-order:normal"
d="m 22.723038,86.139249 6.891154,3.457526 6.891152,-3.457526"
id="path5077" /><path
sodipodi:type="star"
style="fill:#edd400;fill-opacity:1;stroke:#000000;stroke-width:1.17592;stroke-dasharray:none"
id="path3523"
inkscape:flatsided="true"
sodipodi:sides="3"
sodipodi:cx="51.838085"
sodipodi:cy="117.27473"
sodipodi:r1="18.414276"
sodipodi:r2="14.741338"
sodipodi:arg1="0.52327832"
sodipodi:arg2="1.5704759"
inkscape:rounded="0"
inkscape:randomized="0"
d="m 67.788266,126.47675 -31.89446,0.0102 15.938378,-27.626518 z"
transform="matrix(0.43118457,0,0,0.43488655,7.0070777,39.302145)" /><path
sodipodi:type="star"
style="fill:none;stroke:#000000;stroke-width:1.79328;stroke-dasharray:none;paint-order:normal"
id="path8372"
inkscape:flatsided="true"
sodipodi:sides="6"
sodipodi:cx="23.424538"
sodipodi:cy="102.87999"
sodipodi:r1="14.432453"
sodipodi:r2="12.498872"
sodipodi:arg1="0.52359878"
sodipodi:arg2="1.0471976"
inkscape:rounded="0"
inkscape:randomized="0"
d="m 35.923409,110.09622 -12.498871,7.21622 -12.498871,-7.21622 0,-14.432457 12.498871,-7.216227 12.498871,7.216227 z"
transform="matrix(0.56756439,0,0,0.56824658,16.065304,31.622045)" /></g></g></svg>

After

Width:  |  Height:  |  Size: 11 KiB

View File

@ -0,0 +1,162 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
width="936"
height="128"
viewBox="0 0 247.65002 33.866666"
version="1.1"
id="svg5"
sodipodi:docname="nachteil.svg"
xml:space="preserve"
inkscape:version="1.2.2 (b0a8486541, 2022-12-01)"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg"><sodipodi:namedview
id="namedview7"
pagecolor="#ffffff"
bordercolor="#000000"
borderopacity="0.25"
inkscape:showpageshadow="2"
inkscape:pageopacity="0.0"
inkscape:pagecheckerboard="0"
inkscape:deskcolor="#d1d1d1"
inkscape:document-units="px"
showgrid="false"
inkscape:zoom="1"
inkscape:cx="118"
inkscape:cy="8"
inkscape:window-width="2560"
inkscape:window-height="1372"
inkscape:window-x="0"
inkscape:window-y="0"
inkscape:window-maximized="1"
inkscape:current-layer="layer1" /><defs
id="defs2"><linearGradient
inkscape:collect="always"
id="linearGradient12058"><stop
style="stop-color:#2e3436;stop-opacity:1;"
offset="0"
id="stop12054" /><stop
style="stop-color:#2e3436;stop-opacity:0;"
offset="1"
id="stop12056" /></linearGradient><rect
x="-146.37109"
y="-165.10944"
width="3.1819806"
height="18.031223"
id="rect8930" /><clipPath
clipPathUnits="userSpaceOnUse"
id="clipPath3563"><use
x="0"
y="0"
xlink:href="#g3559"
id="use3565" /></clipPath><linearGradient
inkscape:collect="always"
xlink:href="#linearGradient12058"
id="linearGradient12060"
x1="7.3891749"
y1="8.5387707"
x2="123.80584"
y2="8.5387707"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(1.9999991,0,0,1.9999991,-6.3180528e-7,2.0198111e-6)" /></defs><g
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1"><rect
style="fill:url(#linearGradient12060);fill-opacity:1;stroke:#333333;stroke-width:1.05833;stroke-dasharray:none;stroke-opacity:1"
id="rect6308"
width="231.77489"
height="32.808315"
x="15.307509"
y="0.67337787" /><rect
style="fill:none;fill-opacity:1;stroke:#333333;stroke-width:1.05833;stroke-dasharray:none;stroke-opacity:1"
id="rect788"
width="231.77489"
height="32.808315"
x="15.307509"
y="0.67337787" /><text
xml:space="preserve"
style="font-size:8.46666px;font-family:'Noto Serif';-inkscape-font-specification:'Noto Serif';text-align:start;text-anchor:start;fill:#ffffff;stroke-width:2"
x="49.406403"
y="20.332304"
id="text952"
inkscape:label="talentname"><tspan
sodipodi:role="line"
id="tspan950"
style="text-align:start;text-anchor:start;fill:#ffffff;stroke-width:2"
x="49.406403"
y="20.332304">Arroganz</tspan></text><g
id="g3561"
clip-path="url(#clipPath3563)"
transform="matrix(2.0832585,0,0,2.0735313,-46.386506,-169.785)"
style="fill:#a40000;stroke-width:0.962283"><g
inkscape:label="Clip"
id="g3559"
style="fill:none;stroke-width:0.962283"><path
sodipodi:type="star"
style="fill:#2e3436;fill-opacity:1;stroke:#000000;stroke-width:1.79328;stroke-dasharray:none;paint-order:normal"
id="path2181"
inkscape:flatsided="true"
sodipodi:sides="6"
sodipodi:cx="23.424538"
sodipodi:cy="102.87999"
sodipodi:r1="14.432453"
sodipodi:r2="12.498872"
sodipodi:arg1="0.52359878"
sodipodi:arg2="1.0471976"
inkscape:rounded="0"
inkscape:randomized="0"
d="m 35.923409,110.09622 -12.498871,7.21622 -12.498871,-7.21622 0,-14.432457 12.498871,-7.216227 12.498871,7.216227 z"
transform="matrix(0.56756439,0,0,0.56824657,16.065304,31.622044)" /></g><path
style="fill:#888a85;fill-opacity:1;stroke:none;stroke-width:0.530407;stroke-dasharray:none;stroke-opacity:1;paint-order:normal"
d="m 22.596749,93.771327 7.028072,-11.836363 -6.909419,4.004048 z"
id="path8173"
transform="matrix(0.96003407,0,0,0.96003407,0.91547839,3.6348696)"
sodipodi:nodetypes="cccc" /><path
style="fill:none;stroke:#000000;stroke-width:0.509208;stroke-dasharray:none;paint-order:normal"
d="m 22.723038,86.139249 6.891154,3.457526 6.891152,-3.457526"
id="path5077" /><path
sodipodi:type="star"
style="fill:#555753;fill-opacity:1;stroke:#000000;stroke-width:1.17592;stroke-dasharray:none"
id="path3523"
inkscape:flatsided="true"
sodipodi:sides="3"
sodipodi:cx="51.838085"
sodipodi:cy="117.27473"
sodipodi:r1="18.414276"
sodipodi:r2="14.741338"
sodipodi:arg1="0.52327832"
sodipodi:arg2="1.5704759"
inkscape:rounded="0"
inkscape:randomized="0"
d="m 67.788266,126.47675 -31.89446,0.0102 15.938378,-27.626518 z"
transform="matrix(0.43118457,0,0,0.43488655,7.0070777,39.302145)" /><path
sodipodi:type="star"
style="fill:none;stroke:#000000;stroke-width:1.79328;stroke-dasharray:none;paint-order:normal"
id="path8372"
inkscape:flatsided="true"
sodipodi:sides="6"
sodipodi:cx="23.424538"
sodipodi:cy="102.87999"
sodipodi:r1="14.432453"
sodipodi:r2="12.498872"
sodipodi:arg1="0.52359878"
sodipodi:arg2="1.0471976"
inkscape:rounded="0"
inkscape:randomized="0"
d="m 35.923409,110.09622 -12.498871,7.21622 -12.498871,-7.21622 0,-14.432457 12.498871,-7.216227 12.498871,7.216227 z"
transform="matrix(0.56756439,0,0,0.56824658,16.065304,31.622045)" /></g><text
xml:space="preserve"
style="font-size:8.46666px;font-family:'Noto Serif';-inkscape-font-specification:'Noto Serif';text-align:center;text-anchor:middle;fill:#fce94f;stroke-width:2"
x="14.456725"
y="19.804697"
id="text8936"
inkscape:label="taw"><tspan
sodipodi:role="line"
id="tspan8934"
style="text-align:center;text-anchor:middle;fill:#000000;stroke-width:2"
x="14.456725"
y="19.804697">8</tspan></text></g></svg>

After

Width:  |  Height:  |  Size: 6.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 110 KiB

View File

@ -0,0 +1,335 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
width="468"
height="64"
viewBox="0 0 123.82501 16.933333"
version="1.1"
id="svg5"
inkscape:version="1.2.2 (b0a8486541, 2022-12-01)"
sodipodi:docname="rollable.svg"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<sodipodi:namedview
id="namedview7"
pagecolor="#ffffff"
bordercolor="#000000"
borderopacity="0.25"
inkscape:showpageshadow="2"
inkscape:pageopacity="0.0"
inkscape:pagecheckerboard="0"
inkscape:deskcolor="#d1d1d1"
inkscape:document-units="px"
showgrid="false"
inkscape:zoom="2"
inkscape:cx="104.75"
inkscape:cy="36.25"
inkscape:window-width="2560"
inkscape:window-height="1375"
inkscape:window-x="0"
inkscape:window-y="0"
inkscape:window-maximized="1"
inkscape:current-layer="layer1" />
<defs
id="defs2">
<linearGradient
inkscape:collect="always"
id="linearGradient3463">
<stop
style="stop-color:#5389f3;stop-opacity:1;"
offset="0"
id="stop3459" />
<stop
style="stop-color:#000000;stop-opacity:0;"
offset="1"
id="stop3461" />
</linearGradient>
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient3463"
id="linearGradient3465"
x1="29.360237"
y1="90.083244"
x2="139.65504"
y2="90.083244"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(1.0557721,0,0,0.99516084,-23.623299,-81.108547)" />
<clipPath
clipPathUnits="userSpaceOnUse"
id="clipPath3563">
<use
x="0"
y="0"
xlink:href="#g3559"
id="use3565" />
</clipPath>
</defs>
<g
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1">
<g
id="g3196"
transform="translate(30.434219,-106.35006)"
inkscape:label="eigenschaft 3">
<rect
style="fill:none;fill-opacity:1;stroke:none;stroke-width:0.529167;stroke-dasharray:none"
id="rect3107"
width="16.536451"
height="16.748518"
x="76.57058"
y="106.68675" />
<rect
style="fill:#ffffff;stroke:#000000;stroke-width:0.264583;stroke-dasharray:none"
id="rect1211"
width="3.3768569e-07"
height="13.803041"
x="-76.702873"
y="106.68675"
transform="scale(-1,1)" />
<rect
style="fill:#ffffff;stroke:#000000;stroke-width:0.264583;stroke-dasharray:none"
id="rect1976"
width="3.3768569e-07"
height="13.803041"
x="-92.974739"
y="106.68675"
transform="scale(-1,1)" />
<text
xml:space="preserve"
style="font-size:4.23333px;font-family:'Noto Serif';-inkscape-font-specification:'Noto Serif';text-align:center;text-anchor:middle;fill:#555753;stroke:none;stroke-width:0.529167;stroke-dasharray:none"
x="84.790123"
y="122.37695"
id="text2185-9"
inkscape:label="name"><tspan
sodipodi:role="line"
id="tspan2183-1"
style="fill:#555753;stroke:none;stroke-width:0.529167"
x="84.790123"
y="122.37695">KK</tspan></text>
<text
xml:space="preserve"
style="font-size:4.23333px;font-family:'Noto Serif';-inkscape-font-specification:'Noto Serif';text-align:center;text-anchor:middle;fill:#fce94f;stroke-width:1"
x="131.09895"
y="91.726837"
id="text5831"
inkscape:label="value"
transform="translate(-46.283424,24.845474)"><tspan
sodipodi:role="line"
id="tspan5829"
style="fill:#000000;stroke-width:1"
x="131.09895"
y="91.726837">8</tspan></text>
</g>
<g
id="g3252"
transform="translate(14.162353,-106.35006)"
inkscape:label="eigenschaft 2">
<rect
style="fill:none;stroke:none;stroke-width:0.529167;stroke-dasharray:none"
id="rect3242"
width="16.536451"
height="16.748518"
x="76.57058"
y="106.68675" />
<rect
style="fill:#ffffff;stroke:#000000;stroke-width:0.264583;stroke-dasharray:none"
id="rect3244"
width="3.3768569e-07"
height="13.803041"
x="-76.702873"
y="106.68675"
transform="scale(-1,1)" />
<rect
style="fill:#ffffff;stroke:#000000;stroke-width:0.264583;stroke-dasharray:none"
id="rect3246"
width="3.3768569e-07"
height="13.803041"
x="-92.974739"
y="106.68675"
transform="scale(-1,1)" />
<text
xml:space="preserve"
style="font-size:4.23333px;font-family:'Noto Serif';-inkscape-font-specification:'Noto Serif';text-align:center;text-anchor:middle;fill:#555753;stroke:none;stroke-width:0.529167;stroke-dasharray:none"
x="84.790123"
y="122.37695"
id="text3250"
inkscape:label="name"><tspan
sodipodi:role="line"
id="tspan3248"
style="fill:#555753;stroke:none;stroke-width:0.529167"
x="84.790123"
y="122.37695">GE</tspan></text>
<text
xml:space="preserve"
style="font-size:4.23333px;font-family:'Noto Serif';-inkscape-font-specification:'Noto Serif';text-align:center;text-anchor:middle;fill:#fce94f;stroke-width:1"
x="114.82708"
y="91.726837"
id="text5827"
transform="translate(-30.011558,24.845474)"
inkscape:label="value"><tspan
sodipodi:role="line"
id="tspan5825"
style="fill:#000000;stroke-width:1"
x="114.82708"
y="91.726837">13</tspan></text>
</g>
<g
id="g3264"
transform="translate(-2.1095123,-106.35006)"
inkscape:label="eigenschaft 1">
<rect
style="fill:none;stroke:none;stroke-width:0.529167;stroke-dasharray:none"
id="rect3254"
width="16.536451"
height="16.748518"
x="76.57058"
y="106.68675" />
<rect
style="fill:#ffffff;stroke:#000000;stroke-width:0.264583;stroke-dasharray:none"
id="rect3256"
width="3.3768569e-07"
height="13.803041"
x="-76.702873"
y="106.68675"
transform="scale(-1,1)" />
<rect
style="fill:#ffffff;stroke:#000000;stroke-width:0.264583;stroke-dasharray:none"
id="rect3258"
width="3.3768569e-07"
height="13.803041"
x="-92.974739"
y="106.68675"
transform="scale(-1,1)" />
<text
xml:space="preserve"
style="font-size:4.23333px;font-family:'Noto Serif';-inkscape-font-specification:'Noto Serif';text-align:center;text-anchor:middle;fill:#555753;stroke:none;stroke-width:0.529167;stroke-dasharray:none"
x="84.790123"
y="122.37695"
id="text3262"
inkscape:label="name"><tspan
sodipodi:role="line"
id="tspan3260"
style="fill:#555753;stroke:none;stroke-width:0.529167"
x="84.790123"
y="122.37695">MU</tspan></text>
<text
xml:space="preserve"
style="font-size:4.23333px;font-family:'Noto Serif';-inkscape-font-specification:'Noto Serif';text-align:center;text-anchor:middle;fill:#fce94f;stroke-width:1"
x="98.555214"
y="91.726837"
id="text5823"
transform="translate(-13.739692,24.845474)"
inkscape:label="value"><tspan
sodipodi:role="line"
id="tspan5821"
style="fill:#000000;stroke-width:1"
x="98.555214"
y="91.726837">13</tspan></text>
</g>
<rect
style="fill:url(#linearGradient3465);fill-opacity:1;stroke:#333333;stroke-width:0.529167;stroke-dasharray:none;stroke-opacity:1"
id="rect788"
width="115.8875"
height="16.404165"
x="7.6537585"
y="0.33668807" />
<text
xml:space="preserve"
style="font-size:4.23333px;font-family:'Noto Serif';-inkscape-font-specification:'Noto Serif';text-align:center;text-anchor:middle;fill:#fce94f;stroke-width:1"
x="32.818504"
y="10.166156"
id="text952"
inkscape:label="talentname"><tspan
sodipodi:role="line"
id="tspan950"
style="fill:#000000;stroke-width:1"
x="32.818504"
y="10.166156">Klettern</tspan></text>
<g
id="g3561"
clip-path="url(#clipPath3563)"
transform="matrix(1.0416297,0,0,1.0367661,-23.193263,-84.892539)"
style="fill:#a40000;stroke-width:0.962283">
<g
inkscape:label="Clip"
id="g3559"
style="fill:#a40000;stroke-width:0.962283">
<path
sodipodi:type="star"
style="fill:#204a87;stroke:#000000;stroke-width:1.79328;stroke-dasharray:none;paint-order:normal"
id="path2181"
inkscape:flatsided="true"
sodipodi:sides="6"
sodipodi:cx="23.424538"
sodipodi:cy="102.87999"
sodipodi:r1="14.432453"
sodipodi:r2="12.498872"
sodipodi:arg1="0.52359878"
sodipodi:arg2="1.0471976"
inkscape:rounded="0"
inkscape:randomized="0"
d="m 35.923409,110.09622 -12.498871,7.21622 -12.498871,-7.21622 0,-14.432457 12.498871,-7.216227 12.498871,7.216227 z"
transform="matrix(0.56756439,0,0,0.56824657,16.065304,31.622044)" />
</g>
<path
style="fill:#729fcf;fill-opacity:1;stroke:none;stroke-width:0.530407;stroke-dasharray:none;stroke-opacity:1;paint-order:normal"
d="m 22.596749,93.771327 7.028072,-11.836363 -6.909419,4.004048 z"
id="path8173"
transform="matrix(0.96003407,0,0,0.96003407,0.91547839,3.6348696)"
sodipodi:nodetypes="cccc" />
<path
style="fill:none;stroke:#000000;stroke-width:0.509208;stroke-dasharray:none;paint-order:normal"
d="m 22.723038,86.139249 6.891154,3.457526 6.891152,-3.457526"
id="path5077" />
<path
sodipodi:type="star"
style="fill:#3465a4;fill-opacity:1;stroke:#000000;stroke-width:1.17592;stroke-dasharray:none"
id="path3523"
inkscape:flatsided="true"
sodipodi:sides="3"
sodipodi:cx="51.838085"
sodipodi:cy="117.27473"
sodipodi:r1="18.414276"
sodipodi:r2="14.741338"
sodipodi:arg1="0.52327832"
sodipodi:arg2="1.5704759"
inkscape:rounded="0"
inkscape:randomized="0"
d="m 67.788266,126.47675 -31.89446,0.0102 15.938378,-27.626518 z"
transform="matrix(0.43118457,0,0,0.43488655,7.0070777,39.302145)" />
<path
sodipodi:type="star"
style="fill:none;stroke:#000000;stroke-width:1.79328;stroke-dasharray:none;paint-order:normal"
id="path8372"
inkscape:flatsided="true"
sodipodi:sides="6"
sodipodi:cx="23.424538"
sodipodi:cy="102.87999"
sodipodi:r1="14.432453"
sodipodi:r2="12.498872"
sodipodi:arg1="0.52359878"
sodipodi:arg2="1.0471976"
inkscape:rounded="0"
inkscape:randomized="0"
d="m 35.923409,110.09622 -12.498871,7.21622 -12.498871,-7.21622 0,-14.432457 12.498871,-7.216227 12.498871,7.216227 z"
transform="matrix(0.56756439,0,0,0.56824658,16.065304,31.622045)" />
</g>
<text
xml:space="preserve"
style="font-size:4.23333px;font-family:'Noto Serif';-inkscape-font-specification:'Noto Serif';text-align:center;text-anchor:middle;fill:#fce94f;stroke-width:1"
x="7.3722987"
y="10.053905"
id="text952-6"
inkscape:label="taw"><tspan
sodipodi:role="line"
id="tspan950-7"
style="fill:#000000;stroke-width:1"
x="7.3722987"
y="10.053905">13</tspan></text>
</g>
</svg>

After

Width:  |  Height:  |  Size: 12 KiB

View File

@ -0,0 +1,327 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
width="936"
height="128"
viewBox="0 0 247.65002 33.866666"
version="1.1"
id="svg5"
inkscape:version="1.2.2 (b0a8486541, 2022-12-01)"
sodipodi:docname="zauber.svg"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<sodipodi:namedview
id="namedview7"
pagecolor="#ffffff"
bordercolor="#000000"
borderopacity="0.25"
inkscape:showpageshadow="2"
inkscape:pageopacity="0.0"
inkscape:pagecheckerboard="0"
inkscape:deskcolor="#d1d1d1"
inkscape:document-units="px"
showgrid="false"
inkscape:zoom="2"
inkscape:cx="542.5"
inkscape:cy="37.25"
inkscape:window-width="2560"
inkscape:window-height="1375"
inkscape:window-x="0"
inkscape:window-y="0"
inkscape:window-maximized="1"
inkscape:current-layer="layer1" />
<defs
id="defs2">
<linearGradient
inkscape:collect="always"
id="linearGradient3463">
<stop
style="stop-color:#5389f3;stop-opacity:1;"
offset="0"
id="stop3459" />
<stop
style="stop-color:#000000;stop-opacity:0;"
offset="1"
id="stop3461" />
</linearGradient>
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient3463"
id="linearGradient3465"
x1="29.360237"
y1="90.083244"
x2="139.65504"
y2="90.083244"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(1.0557721,0,0,0.99516084,-23.623299,-81.108547)" />
<clipPath
clipPathUnits="userSpaceOnUse"
id="clipPath3563">
<use
x="0"
y="0"
xlink:href="#g3559"
id="use3565" />
</clipPath>
</defs>
<g
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1">
<g
id="g3196"
transform="matrix(1.9999991,0,0,1.9999991,60.86841,-212.70002)"
inkscape:label="eigenschaft 3">
<rect
style="fill:url(#linearGradient3465);fill-opacity:1;stroke:#333333;stroke-width:0.529167;stroke-dasharray:none;stroke-opacity:1"
id="rect17246"
width="115.8875"
height="16.404165"
x="7.6537585"
y="0.33668807"
transform="translate(-30.434219,106.35006)" />
<rect
style="fill:none;fill-opacity:1;stroke:none;stroke-width:0.529167;stroke-dasharray:none"
id="rect3107"
width="16.536451"
height="16.748518"
x="76.57058"
y="106.68675" />
<rect
style="fill:#000000;stroke:none;stroke-width:234.2;stroke-dasharray:none"
id="rect1211"
width="0.26458347"
height="13.803041"
x="-76.967453"
y="106.68675"
transform="scale(-1,1)" />
<text
xml:space="preserve"
style="font-size:4.23333px;font-family:'Noto Serif';-inkscape-font-specification:'Noto Serif';text-align:center;text-anchor:middle;fill:#555753;stroke:none;stroke-width:0.529167;stroke-dasharray:none"
x="84.790123"
y="122.37695"
id="text2185-9"
inkscape:label="name"><tspan
sodipodi:role="line"
id="tspan2183-1"
style="fill:#555753;stroke:none;stroke-width:0.529167"
x="84.790123"
y="122.37695">KO</tspan></text>
<text
xml:space="preserve"
style="font-size:4.23333px;font-family:'Noto Serif';-inkscape-font-specification:'Noto Serif';text-align:center;text-anchor:middle;fill:#fce94f;stroke-width:1"
x="131.09895"
y="91.726837"
id="text5831"
inkscape:label="value"
transform="translate(-46.283424,24.845474)"><tspan
sodipodi:role="line"
id="tspan5829"
style="fill:#000000;stroke-width:1"
x="131.09895"
y="91.726837">8</tspan></text>
</g>
<g
id="g3252"
transform="matrix(1.9999991,0,0,1.9999991,28.324693,-212.70002)"
inkscape:label="eigenschaft 2">
<rect
style="fill:none;stroke:none;stroke-width:0.529167;stroke-dasharray:none"
id="rect3242"
width="16.536451"
height="16.748518"
x="76.57058"
y="106.68675" />
<rect
style="fill:#000000;stroke:none;stroke-width:234.2;stroke-dasharray:none"
id="rect3246"
width="0.26458347"
height="13.803041"
x="-93.239319"
y="106.68675"
transform="scale(-1,1)" />
<text
xml:space="preserve"
style="font-size:4.23333px;font-family:'Noto Serif';-inkscape-font-specification:'Noto Serif';text-align:center;text-anchor:middle;fill:#555753;stroke:none;stroke-width:0.529167;stroke-dasharray:none"
x="84.790123"
y="122.37695"
id="text3250"
inkscape:label="name"><tspan
sodipodi:role="line"
id="tspan3248"
style="fill:#555753;stroke:none;stroke-width:0.529167"
x="84.790123"
y="122.37695">GE</tspan></text>
<text
xml:space="preserve"
style="font-size:4.23333px;font-family:'Noto Serif';-inkscape-font-specification:'Noto Serif';text-align:center;text-anchor:middle;fill:#fce94f;stroke-width:1"
x="114.82708"
y="91.726837"
id="text5827"
transform="translate(-30.011558,24.845474)"
inkscape:label="value"><tspan
sodipodi:role="line"
id="tspan5825"
style="fill:#000000;stroke-width:1"
x="114.82708"
y="91.726837">13</tspan></text>
</g>
<g
id="g3264"
transform="matrix(1.9999991,0,0,1.9999991,-4.2190233,-212.70002)"
inkscape:label="eigenschaft 1">
<rect
style="fill:none;stroke:none;stroke-width:0.529167;stroke-dasharray:none"
id="rect3254"
width="16.536451"
height="16.748518"
x="76.57058"
y="106.68675" />
<rect
style="fill:#000000;stroke:none;stroke-width:234.2;stroke-dasharray:none"
id="rect3256"
width="0.26458347"
height="13.803041"
x="-76.967453"
y="106.68675"
transform="scale(-1,1)" />
<rect
style="fill:#000000;stroke:none;stroke-width:234.2;stroke-dasharray:none"
id="rect3258"
width="0.26458347"
height="13.803041"
x="-93.239319"
y="106.68675"
transform="scale(-1,1)" />
<text
xml:space="preserve"
style="font-size:4.23333px;font-family:'Noto Serif';-inkscape-font-specification:'Noto Serif';text-align:center;text-anchor:middle;fill:#555753;stroke:none;stroke-width:0.529167;stroke-dasharray:none"
x="84.790123"
y="122.37695"
id="text3262"
inkscape:label="name"><tspan
sodipodi:role="line"
id="tspan3260"
style="fill:#555753;stroke:none;stroke-width:0.529167"
x="84.790123"
y="122.37695">IN</tspan></text>
<text
xml:space="preserve"
style="font-size:4.23333px;font-family:'Noto Serif';-inkscape-font-specification:'Noto Serif';text-align:center;text-anchor:middle;fill:#fce94f;stroke-width:1"
x="98.555214"
y="91.726837"
id="text5823"
transform="translate(-13.739692,24.845474)"
inkscape:label="value"><tspan
sodipodi:role="line"
id="tspan5821"
style="fill:#000000;stroke-width:1"
x="98.555214"
y="91.726837">14</tspan></text>
</g>
<rect
style="fill:none;fill-opacity:1;stroke:#333333;stroke-width:1.05833;stroke-dasharray:none;stroke-opacity:1"
id="rect788"
width="231.77489"
height="32.808315"
x="15.307509"
y="0.67337787" />
<text
xml:space="preserve"
style="font-size:8.46666px;font-family:'Noto Serif';-inkscape-font-specification:'Noto Serif';text-align:center;text-anchor:middle;fill:#fce94f;stroke-width:2"
x="65.636978"
y="20.332304"
id="text952"
inkscape:label="talentname"><tspan
sodipodi:role="line"
id="tspan950"
style="fill:#000000;stroke-width:2"
x="65.636978"
y="20.332304">Armatrutz</tspan></text>
<g
id="g3561"
clip-path="url(#clipPath3563)"
transform="matrix(2.0832585,0,0,2.0735313,-46.386506,-169.785)"
style="fill:#a40000;stroke-width:0.962283">
<g
inkscape:label="Clip"
id="g3559"
style="fill:#a40000;stroke-width:0.962283">
<path
sodipodi:type="star"
style="fill:#204a87;stroke:#000000;stroke-width:1.79328;stroke-dasharray:none;paint-order:normal"
id="path2181"
inkscape:flatsided="true"
sodipodi:sides="6"
sodipodi:cx="23.424538"
sodipodi:cy="102.87999"
sodipodi:r1="14.432453"
sodipodi:r2="12.498872"
sodipodi:arg1="0.52359878"
sodipodi:arg2="1.0471976"
inkscape:rounded="0"
inkscape:randomized="0"
d="m 35.923409,110.09622 -12.498871,7.21622 -12.498871,-7.21622 0,-14.432457 12.498871,-7.216227 12.498871,7.216227 z"
transform="matrix(0.56756439,0,0,0.56824657,16.065304,31.622044)" />
</g>
<path
style="fill:#729fcf;fill-opacity:1;stroke:none;stroke-width:0.530407;stroke-dasharray:none;stroke-opacity:1;paint-order:normal"
d="m 22.596749,93.771327 7.028072,-11.836363 -6.909419,4.004048 z"
id="path8173"
transform="matrix(0.96003407,0,0,0.96003407,0.91547839,3.6348696)"
sodipodi:nodetypes="cccc" />
<path
style="fill:none;stroke:#000000;stroke-width:0.509208;stroke-dasharray:none;paint-order:normal"
d="m 22.723038,86.139249 6.891154,3.457526 6.891152,-3.457526"
id="path5077" />
<path
sodipodi:type="star"
style="fill:#3465a4;fill-opacity:1;stroke:#000000;stroke-width:1.17592;stroke-dasharray:none"
id="path3523"
inkscape:flatsided="true"
sodipodi:sides="3"
sodipodi:cx="51.838085"
sodipodi:cy="117.27473"
sodipodi:r1="18.414276"
sodipodi:r2="14.741338"
sodipodi:arg1="0.52327832"
sodipodi:arg2="1.5704759"
inkscape:rounded="0"
inkscape:randomized="0"
d="m 67.788266,126.47675 -31.89446,0.0102 15.938378,-27.626518 z"
transform="matrix(0.43118457,0,0,0.43488655,7.0070777,39.302145)" />
<path
sodipodi:type="star"
style="fill:none;stroke:#000000;stroke-width:1.79328;stroke-dasharray:none;paint-order:normal"
id="path8372"
inkscape:flatsided="true"
sodipodi:sides="6"
sodipodi:cx="23.424538"
sodipodi:cy="102.87999"
sodipodi:r1="14.432453"
sodipodi:r2="12.498872"
sodipodi:arg1="0.52359878"
sodipodi:arg2="1.0471976"
inkscape:rounded="0"
inkscape:randomized="0"
d="m 35.923409,110.09622 -12.498871,7.21622 -12.498871,-7.21622 0,-14.432457 12.498871,-7.216227 12.498871,7.216227 z"
transform="matrix(0.56756439,0,0,0.56824658,16.065304,31.622045)" />
</g>
<text
xml:space="preserve"
style="font-size:8.46666px;font-family:'Noto Serif';-inkscape-font-specification:'Noto Serif';text-align:center;text-anchor:middle;fill:#fce94f;stroke-width:2"
x="14.74459"
y="20.107801"
id="text952-6"
inkscape:label="taw"><tspan
sodipodi:role="line"
id="tspan950-7"
style="fill:#000000;stroke-width:2"
x="14.74459"
y="20.107801">3</tspan></text>
</g>
</svg>

After

Width:  |  Height:  |  Size: 12 KiB

View File

@ -5,6 +5,17 @@ import { SkillDataModel } from "./module/data/skill.mjs";
import { SpellDataModel } from "./module/data/spell.mjs"; import { SpellDataModel } from "./module/data/spell.mjs";
import { Character } from "./module/documents/character.mjs"; import { Character } from "./module/documents/character.mjs";
import { CharacterSheet } from "./module/sheets/characterSheet.mjs"; import { CharacterSheet } from "./module/sheets/characterSheet.mjs";
import {DragDropDSA41} from "./module/extensions/DragDropDSA41.mjs";
async function preloadHandlebarsTemplates() {
return loadTemplates([
// ui partials.
'systems/DSA_4-1/templates/ui/partial-rollable-button.hbs',
'systems/DSA_4-1/templates/ui/partial-attribute-button.hbs',
'systems/DSA_4-1/templates/ui/partial-talent-editable.hbs',
'systems/DSA_4-1/templates/ui/partial-die.hbs'
]);
}
Hooks.once("init", () => { Hooks.once("init", () => {
@ -21,6 +32,8 @@ Hooks.once("init", () => {
spell: SpellDataModel spell: SpellDataModel
} }
CONFIG.ux.DragDrop = DragDropDSA41;
console.log("DSA 4.1 is ready for development!") console.log("DSA 4.1 is ready for development!")
Actors.registerSheet('dsa41.character', CharacterSheet, { Actors.registerSheet('dsa41.character', CharacterSheet, {
@ -40,4 +53,10 @@ Hooks.once("init", () => {
makeDefault: true, makeDefault: true,
label: 'DSA41.SpellLabels.Item', label: 'DSA41.SpellLabels.Item',
}); });
})
return preloadHandlebarsTemplates();
})
Hooks.on('dropActorSheetData', (actor, sheet, data) => {
CharacterSheet.onDroppedData(actor, sheet, data);
} )

View File

@ -139,7 +139,7 @@ export class PlayerCharacterDataModel extends foundry.abstract.TypeDataModel {
super._initialize(options); super._initialize(options);
} }
_onCreate(data, options, userId) { async _onCreate(data, options, userId) {
// prepare base talents // prepare base talents
const talentsByName = [ const talentsByName = [
"Athletik", "Klettern", "Körperbeherrschung", "Schleichen", "Schwimmen", "Selbstbeherrschung", "Sich Verstecken", "Singen", "Sinnenschärfe", "Tanzen", "Zechen", "Athletik", "Klettern", "Körperbeherrschung", "Schleichen", "Schwimmen", "Selbstbeherrschung", "Sich Verstecken", "Singen", "Sinnenschärfe", "Tanzen", "Zechen",
@ -165,20 +165,52 @@ export class PlayerCharacterDataModel extends foundry.abstract.TypeDataModel {
}) })
// push base talents // push base talents
game.actors.getName(data.name).update({system: {talente}}) await game.actors.getName(data.name).update({system: {talente}})
const startEigenschaften = { const startEigenschaften = {
"mu": 10, "mu": {
"kl": 10, start: 10,
"in": 10, aktuell: 10,
"ch": 10, mod: 0
"ff": 10, },
"ge": 10, "kl": {
"ko": 10, start: 10,
"kk": 10, aktuell: 10,
mod: 0
},
"in": {
start: 10,
aktuell: 10,
mod: 0
},
"ch": {
start: 10,
aktuell: 10,
mod: 0
},
"ff": {
start: 10,
aktuell: 10,
mod: 0
},
"ge": {
start: 10,
aktuell: 10,
mod: 0
},
"ko": {
start: 10,
aktuell: 10,
mod: 0
},
"kk": {
start: 10,
aktuell: 10,
mod: 0
}
} }
game.actors.getName(data.name).update({system: {attribute: startEigenschaften}}) await game.actors.getName(data.name).update({system: {attribute: startEigenschaften}})
super._onCreate(data, options, userId); super._onCreate(data, options, userId);

View File

@ -36,4 +36,9 @@ export class Character extends Actor {
} }
static onDroppedData(character, characterSheet, uuid) {
}
} }

View File

@ -0,0 +1,62 @@
import {DragDropDSA41} from "./DragDropDSA41.mjs";
export default function DragDropApplicationMixin(Base) {
return class DragDropApplication extends Base {
/** @override */
_onDragOver(event) {
const data = DragDropDSA41.getPayload(event);
DragDropDSA41.dropEffect = event.dataTransfer.dropEffect = (foundry.utils.getType(data) === "Object")
? this._dropBehavior(event, data) : "copy";
}
/* -------------------------------------------- */
/**
* The behavior for the dropped data. When called during the drop event, ensure this is called before awaiting
* anything or the drop behavior will be lost.
* @param {DragEvent} event The drag event.
* @param {object} [data] The drag payload.
* @returns {DropEffectValue}
*/
_dropBehavior(event, data) {
data ??= DragDropDSA41.getPayload(event);
const allowed = this._allowedDropBehaviors(event, data);
let behavior = DragDropDSA41.dropEffect ?? event.dataTransfer?.dropEffect;
if ( event.type === "dragover" ) {
if ( areKeysPressed(event, "dragMove") ) behavior = "move";
else if ( areKeysPressed(event, "dragCopy") ) behavior = "copy";
else behavior = this._defaultDropBehavior(event, data);
}
if ( (behavior !== "none") && !allowed.has(behavior) ) return allowed.first() ?? "none";
return behavior || "copy";
}
/* -------------------------------------------- */
/**
* Types of allowed drop behaviors based on the origin & target of a drag event.
* @param {DragEvent} event The drag event.
* @param {object} [data] The drag payload.
* @returns {Set<DropEffectValue>}
* @protected
*/
_allowedDropBehaviors(event, data) {
return new Set();
}
/* -------------------------------------------- */
/**
* Determine the default drop behavior for the provided operation.
* @param {DragEvent} event The drag event.
* @param {object} [data] The drag payload.
* @returns {DropEffectValue}
* @protected
*/
_defaultDropBehavior(event, data) {
return "copy";
}
};
}

View File

@ -0,0 +1,54 @@
export class DragDropDSA41 extends foundry.applications.ux.DragDrop {
/**
* Drop effect used for current drag operation.
* @type {DropEffectValue|null}
*/
static dropEffect = null;
/* -------------------------------------------- */
/**
* Stored drag event payload.
* @type {{ data: any, event: DragEvent }|null}
*/
static #payload = null;
/* -------------------------------------------- */
/** @override */
async _handleDragStart(event) {
await this.callback(event, "dragstart");
if ( event.dataTransfer.items.length ) {
console.log(event)
event.stopPropagation();
let data = event.dataTransfer.getData("application/json") || event.dataTransfer.getData("text/plain");
try { data = JSON.parse(data); } catch(err) {}
DragDropDSA41.#payload = data ? { event, data } : null;
} else {
DragDropDSA41.#payload = null;
}
}
/* -------------------------------------------- */
/** @override */
async _handleDragEnd(event) {
await this.callback(event, "dragend");
DragDropDSA41.dropEffect = null;
DragDropDSA41.#payload = null;
}
/* -------------------------------------------- */
/**
* Get the data payload for the current drag event.
* @param {DragEvent} event
* @returns {any}
*/
static getPayload(event) {
if ( !DragDropDSA41.#payload?.data ) return null;
return DragDropDSA41.#payload.data;
}
}

View File

@ -1,3 +1,5 @@
import {DragDropDSA41} from "../extensions/DragDropDSA41.mjs";
export class CharacterSheet extends ActorSheet { export class CharacterSheet extends ActorSheet {
/**@override */ /**@override */
static get defaultOptions() { static get defaultOptions() {
@ -37,71 +39,98 @@ export class CharacterSheet extends ActorSheet {
context.attributes = [ context.attributes = [
{ {
eigenschaft: "mu", eigenschaft: "mu",
name: "Mut", name: "MU",
tooltip: "Mut",
wert: actorData.system.attribute.mu.aktuell ?? 0, wert: actorData.system.attribute.mu.aktuell ?? 0,
}, },
{ {
eigenschaft: "kl", eigenschaft: "kl",
name: "Klugheit", name: "KL",
tooltip: "Klugheit",
wert: actorData.system.attribute.kl.aktuell ?? 0, wert: actorData.system.attribute.kl.aktuell ?? 0,
}, },
{ {
eigenschaft: "in", eigenschaft: "in",
name: "Intuition", name: "IN",
tooltip: "Intuition",
wert: actorData.system.attribute.in.aktuell ?? 0, wert: actorData.system.attribute.in.aktuell ?? 0,
}, },
{ {
eigenschaft: "ch", eigenschaft: "ch",
name: "Charisma", name: "IN",
tooltip: "Charisma",
wert: actorData.system.attribute.ch.aktuell ?? 0, wert: actorData.system.attribute.ch.aktuell ?? 0,
}, },
{ {
eigenschaft: "ff", eigenschaft: "ff",
name: "Fingerfertigkeit", name: "FF",
tooltip: "Fingerfertigkeit",
wert: actorData.system.attribute.ff.aktuell ?? 0, wert: actorData.system.attribute.ff.aktuell ?? 0,
}, },
{ {
eigenschaft: "ge", eigenschaft: "ge",
name: "Geschicklichkeit", name: "GE",
tooltip: "Geschicklichkeit",
wert: actorData.system.attribute.ge.aktuell ?? 0, wert: actorData.system.attribute.ge.aktuell ?? 0,
}, },
{ {
eigenschaft: "ko", eigenschaft: "ko",
name: "Konstitution", name: "KO",
tooltip: "Konstitution",
wert: actorData.system.attribute.ko.aktuell ?? 0, wert: actorData.system.attribute.ko.aktuell ?? 0,
}, },
{ {
eigenschaft: "kk", eigenschaft: "kk",
name: "Körperkraft", name: "KO",
tooltip: "Körperkraft",
wert: actorData.system.attribute.kk.aktuell ?? 0, wert: actorData.system.attribute.kk.aktuell ?? 0,
}, },
]; ];
context.skills = []; context.skills = {};
if ( context.system.talente?.length >= 0) { context.flatSkills = [];
context.system.talente.forEach(talent => {
console.log(talent);
const taw = talent.taw;
const talentObjekt = game.items.get(talent.talent);
const eigenschaften = Object.values(talentObjekt.system.probe);
context.skills.push({
talentName: talentObjekt.name,
taw: taw,
rollEigenschaft1: this.prepareEigenschaftRoll(actorData, eigenschaften[0]),
rollEigenschaft2: this.prepareEigenschaftRoll(actorData, eigenschaften[1]),
rollEigenschaft3: this.prepareEigenschaftRoll(actorData, eigenschaften[2]),
probe: `(${eigenschaften.join("/")})`
});
if ( context.system.talente?.length >= 0) {
context.system.talente.forEach( (talent, index) => {
if (talent.talent) {
const taw = talent.taw;
const talentObjekt = game.items.get(talent.talent);
console.log(talent);
const talentGruppe = talentObjekt.system.gruppe;
const eigenschaften = Object.values(talentObjekt.system.probe);
const werte = [
{name: eigenschaften[0], value: this.prepareEigenschaftRoll(actorData, eigenschaften[0])},
{name: eigenschaften[1], value: this.prepareEigenschaftRoll(actorData, eigenschaften[1])},
{name: eigenschaften[2], value: this.prepareEigenschaftRoll(actorData, eigenschaften[2])}
]
if (context.skills[talentGruppe] == null) {
context.skills[talentGruppe] = [];
}
const obj = {
type: "talent",
gruppe: talentGruppe,
name: talentObjekt.name,
taw: "" + taw,
tawPath: `system.talente.${index}.taw`,
werte,
rollEigenschaft1: werte[0].value,
rollEigenschaft2: werte[1].value,
rollEigenschaft3: werte[2].value,
probe: `(${eigenschaften.join("/")})`
};
context.skills[talentGruppe].push(obj);
context.flatSkills.push(obj);
}
}) })
} }
console.log(context);
return context; return context;
} }
prepareEigenschaftRoll(actorData, name) { prepareEigenschaftRoll(actorData, name) {
return actorData.system.attribute[name.toLowerCase()] return actorData.system.attribute[name.toLowerCase()].aktuell
} }
async _onTalentRoll(event) { async _onTalentRoll(event) {
@ -178,22 +207,108 @@ export class CharacterSheet extends ActorSheet {
} }
} }
_onRoll(event) {
event.preventDefault();
const dataset = event.currentTarget.dataset;
if (dataset.roll) {
let label = dataset.label ? `${dataset.label}` : '';
let roll = new Roll(dataset.roll, this.actor.getRollData());
roll.toMessage({
speaker: ChatMessage.getSpeaker({ actor: this.actor }),
flavor: label,
rollMode: game.settings.get('core', 'rollMode'),
});
return roll;
}
}
activateListeners(html) { activateListeners(html) {
super.activateListeners(html); super.activateListeners(html);
html.on('click', '.attribut.rollable', (evt) => { html.on('click', '.attribute.rollable', (evt) => {
console.log(evt);
this._onAttributeRoll(evt); this._onAttributeRoll(evt);
}); });
html.on('click', '.talent.rollable', (evt) => { html.on('click', '.talent.rollable', (evt) => {
console.log(evt);
this._onTalentRoll(evt); this._onTalentRoll(evt);
}); });
html.on('click', '.sidebar-element.rollable', (evt) => {
this._onRoll(evt);
});
// Everything below here is only needed if the sheet is editable // Everything below here is only needed if the sheet is editable
if (!this.isEditable) return; if (!this.isEditable) return;
} }
static onDroppedData(actor, characterSheet, data) {
const item = game.items.get(foundry.utils.parseUuid(data.uuid).id)
console.log();
let alreadyInSet = false;
let previousTaw = 0;
actor.system.talente.forEach(({taw, talent}) => {
if (talent._id === item._id) {
alreadyInSet = talent;
previousTaw = taw;
}
})
const myContent = `
TaW:
<input id="taw" type="number" value="${previousTaw}" />
`;
new Dialog({
title: `Talent ${item.name} ${alreadyInSet?'ersetzen':'hinzufügen'}`,
content: myContent,
buttons: {
button1: {
label: "hinzufügen",
callback: (html) => myCallback(html),
icon: `<i class="fas fa-check"></i>`
}
}
}).render(true);
async function myCallback(html) {
const taw = html.find("input#taw").val();
let index = actor.system.talente.findIndex( predicate => predicate.talent._id === alreadyInSet._id )
let sorted = [];
if (alreadyInSet) {
actor.system.talente[index].taw = taw;
sorted = actor.system.talente;
} else {
sorted = [{
taw: taw,
talent: {_id: item._id, name: item.name}
}, ...actor.system.talente].sort((a, b) => a.talent.name.localeCompare(b.talent.name));
}
const serialised = sorted.map(({taw, talent}) => {
return {
taw: taw,
talent: talent._id
}
});
await actor.update({
system: {
talente: [
...serialised
]
}
});
await characterSheet.render(true);
ui.notifications.info(`Talent ${item.name} auf TaW ${taw} hinzugefügt`);
}
actor.items.clear()
}
} }

View File

@ -1,4 +1,7 @@
export class SkillSheet extends foundry.appv1.sheets.ItemSheet { import {DragDropDSA41} from "../extensions/DragDropDSA41.mjs";
import DragDropApplicationMixin from "../extensions/DragDropApplicationMixin.mjs";
export class SkillSheet extends DragDropApplicationMixin(foundry.appv1.sheets.ItemSheet) {
/**@override */ /**@override */
static get defaultOptions() { static get defaultOptions() {
return foundry.utils.mergeObject(super.defaultOptions, { return foundry.utils.mergeObject(super.defaultOptions, {
@ -35,13 +38,14 @@ export class SkillSheet extends foundry.appv1.sheets.ItemSheet {
context.system = skillData.system; context.system = skillData.system;
context.flags = skillData.flags; context.flags = skillData.flags;
context.categoryOptions = { context.categoryOptions = {
kampf: "Kampf", Kampf: "Kampf",
körperlich: "Körperlich", Körperlich: "Körperlich",
gesellschaft: "Gesellschaft", Gesellschaft: "Gesellschaft",
natur: "Natur", Natur: "Natur",
wissen: "Wissen", Wissen: "Wissen",
sprachen: "Sprache und Schriften", Sprachen: "Sprache",
handwerk: "Handwerk" Schriften: "Schriften",
Handwerk: "Handwerk"
} }
return context; return context;
@ -52,6 +56,60 @@ export class SkillSheet extends foundry.appv1.sheets.ItemSheet {
// Everything below here is only needed if the sheet is editable // Everything below here is only needed if the sheet is editable
if (!this.isEditable) return; if (!this.isEditable) return;
}
/* -------------------------------------------- */
/* Drag & Drop */
/* -------------------------------------------- */
/** @override */
_allowedDropBehaviors(event, data) {
console.log(data, event);
if ( !data?.uuid ) return new Set(["copy", "link"]);
const allowed = new Set(["copy", "move", "link"]);
const s = foundry.utils.parseUuid(data.uuid);
const t = foundry.utils.parseUuid(this.document.uuid);
const sCompendium = s.collection instanceof foundry.documents.collections.CompendiumCollection;
const tCompendium = t.collection instanceof foundry.documents.collections.CompendiumCollection;
// If either source or target are within a compendium, but not inside the same compendium, move not allowed
if ( (sCompendium || tCompendium) && (s.collection !== t.collection) ) allowed.delete("move");
return allowed;
}
/* -------------------------------------------- */
/** @override */
_defaultDropBehavior(event, data) {
if ( !data?.uuid ) return "copy";
const d = foundry.utils.parseUuid(data.uuid);
const t = foundry.utils.parseUuid(this.document.uuid);
const base = d.embedded?.length ? "document" : "primary";
console.log(d, t, base);
return (d.collection === t.collection) && (d[`${base}Id`] === t[`${base}Id`])
&& (d[`${base}Type`] === t[`${base}Type`]) ? "move" : "copy";
}
/* -------------------------------------------- */
/** @inheritDoc */
async _onDragStart(event) {
await super._onDragStart(event);
if ( !this.document.isOwner || this.document.collection?.locked ) {
event.dataTransfer.effectAllowed = "copyLink";
}
}
_onDragOver(event) {
super._onDragOver(event);
console.log(event);
}
_dropBehavior(event, data) {
console.log(event, data);
return super._dropBehavior(event, data);
} }

Some files were not shown because too many files have changed in this diff Show More