Merge branch 'v1.3' into 'master'
V1.3 See merge request LeRatierBretonnien/foundryvtt-reve-de-dragon!159
BIN
icons/arts/chant_0.webp
Normal file
After Width: | Height: | Size: 17 KiB |
BIN
icons/arts/chant_1.webp
Normal file
After Width: | Height: | Size: 17 KiB |
BIN
icons/arts/chant_2.webp
Normal file
After Width: | Height: | Size: 17 KiB |
BIN
icons/arts/chant_3.webp
Normal file
After Width: | Height: | Size: 17 KiB |
BIN
icons/arts/chant_4.webp
Normal file
After Width: | Height: | Size: 18 KiB |
BIN
icons/arts/chant_5.webp
Normal file
After Width: | Height: | Size: 17 KiB |
BIN
icons/arts/chant_6.webp
Normal file
After Width: | Height: | Size: 18 KiB |
BIN
icons/arts/chant_7.webp
Normal file
After Width: | Height: | Size: 18 KiB |
BIN
icons/arts/chant_8.webp
Normal file
After Width: | Height: | Size: 18 KiB |
BIN
icons/arts/danseS_2.webp
Normal file
After Width: | Height: | Size: 17 KiB |
BIN
icons/arts/danse_0.webp
Normal file
After Width: | Height: | Size: 18 KiB |
BIN
icons/arts/danse_1.webp
Normal file
After Width: | Height: | Size: 18 KiB |
BIN
icons/arts/danse_2.webp
Normal file
After Width: | Height: | Size: 18 KiB |
BIN
icons/arts/danse_3.webp
Normal file
After Width: | Height: | Size: 18 KiB |
BIN
icons/arts/danse_4.webp
Normal file
After Width: | Height: | Size: 19 KiB |
BIN
icons/arts/danse_5.webp
Normal file
After Width: | Height: | Size: 18 KiB |
BIN
icons/arts/danse_6.webp
Normal file
After Width: | Height: | Size: 19 KiB |
BIN
icons/arts/danse_sol_1.webp
Normal file
After Width: | Height: | Size: 17 KiB |
BIN
icons/arts/danse_sol_2.webp
Normal file
After Width: | Height: | Size: 17 KiB |
BIN
icons/arts/danse_sol_4.webp
Normal file
After Width: | Height: | Size: 18 KiB |
BIN
icons/arts/danse_sol_5.webp
Normal file
After Width: | Height: | Size: 17 KiB |
BIN
icons/arts/danse_sol_6.webp
Normal file
After Width: | Height: | Size: 17 KiB |
BIN
icons/arts/danse_sol_8.webp
Normal file
After Width: | Height: | Size: 18 KiB |
BIN
icons/arts/jeux_brasdefer.webp
Normal file
After Width: | Height: | Size: 18 KiB |
BIN
icons/arts/jeux_calculs.webp
Normal file
After Width: | Height: | Size: 20 KiB |
BIN
icons/arts/jeux_doublon.webp
Normal file
After Width: | Height: | Size: 19 KiB |
BIN
icons/arts/jeux_flechettes.webp
Normal file
After Width: | Height: | Size: 18 KiB |
BIN
icons/arts/jeux_petasse.webp
Normal file
After Width: | Height: | Size: 19 KiB |
BIN
icons/arts/jeux_plumette.webp
Normal file
After Width: | Height: | Size: 18 KiB |
BIN
icons/arts/jeux_tisonnier.webp
Normal file
After Width: | Height: | Size: 18 KiB |
BIN
icons/arts/recette_cuisine_1.webp
Normal file
After Width: | Height: | Size: 18 KiB |
BIN
icons/arts/recette_cuisine_2.webp
Normal file
After Width: | Height: | Size: 19 KiB |
BIN
icons/arts/recette_cuisine_3.webp
Normal file
After Width: | Height: | Size: 19 KiB |
BIN
icons/arts/recette_cuisine_4.webp
Normal file
After Width: | Height: | Size: 19 KiB |
BIN
icons/arts/recette_cuisine_6.webp
Normal file
After Width: | Height: | Size: 19 KiB |
Before Width: | Height: | Size: 7.8 KiB After Width: | Height: | Size: 7.8 KiB |
60
icons/creatures/mule.svg
Normal file
After Width: | Height: | Size: 9.7 KiB |
BIN
icons/liquides/liquide_biere.webp
Normal file
After Width: | Height: | Size: 13 KiB |
BIN
icons/liquides/liquide_eau.webp
Normal file
After Width: | Height: | Size: 13 KiB |
BIN
icons/liquides/liquide_lait.webp
Normal file
After Width: | Height: | Size: 12 KiB |
BIN
icons/liquides/liquide_neutre.webp
Normal file
After Width: | Height: | Size: 13 KiB |
BIN
icons/liquides/liquide_sang.webp
Normal file
After Width: | Height: | Size: 13 KiB |
BIN
icons/liquides/liquide_vin.webp
Normal file
After Width: | Height: | Size: 13 KiB |
6
icons/maladies_venins/.directory
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
[Dolphin]
|
||||||
|
SortOrder=1
|
||||||
|
Timestamp=2021,2,3,17,34,46
|
||||||
|
Version=4
|
||||||
|
ViewMode=1
|
||||||
|
VisibleRoles=Details_text,Details_size,Details_modificationtime,Details_creationtime,CustomizedDetails
|
BIN
icons/maladies_venins/champifruit.webp
Normal file
After Width: | Height: | Size: 19 KiB |
BIN
icons/maladies_venins/maladie.webp
Normal file
After Width: | Height: | Size: 19 KiB |
BIN
icons/maladies_venins/urticants.webp
Normal file
After Width: | Height: | Size: 19 KiB |
BIN
icons/maladies_venins/venin.webp
Normal file
After Width: | Height: | Size: 19 KiB |
130
icons/tmr/gift.svg
Normal file
@ -0,0 +1,130 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||||
|
<svg
|
||||||
|
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||||
|
xmlns:cc="http://creativecommons.org/ns#"
|
||||||
|
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||||
|
xmlns:svg="http://www.w3.org/2000/svg"
|
||||||
|
xmlns="http://www.w3.org/2000/svg"
|
||||||
|
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||||
|
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||||
|
version="1.1"
|
||||||
|
id="Capa_1"
|
||||||
|
x="0px"
|
||||||
|
y="0px"
|
||||||
|
width="512"
|
||||||
|
height="512"
|
||||||
|
viewBox="0 0 512 512"
|
||||||
|
xml:space="preserve"
|
||||||
|
sodipodi:docname="gift.svg"
|
||||||
|
inkscape:version="1.0.1 (3bc2e813f5, 2020-09-07)"><metadata
|
||||||
|
id="metadata51"><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><defs
|
||||||
|
id="defs49" /><sodipodi:namedview
|
||||||
|
pagecolor="#ffffff"
|
||||||
|
bordercolor="#666666"
|
||||||
|
borderopacity="1"
|
||||||
|
objecttolerance="10"
|
||||||
|
gridtolerance="10"
|
||||||
|
guidetolerance="10"
|
||||||
|
inkscape:pageopacity="0"
|
||||||
|
inkscape:pageshadow="2"
|
||||||
|
inkscape:window-width="3840"
|
||||||
|
inkscape:window-height="2066"
|
||||||
|
id="namedview47"
|
||||||
|
showgrid="false"
|
||||||
|
inkscape:zoom="2.415894"
|
||||||
|
inkscape:cx="64"
|
||||||
|
inkscape:cy="163.34211"
|
||||||
|
inkscape:window-x="-11"
|
||||||
|
inkscape:window-y="-11"
|
||||||
|
inkscape:window-maximized="1"
|
||||||
|
inkscape:current-layer="g14"
|
||||||
|
inkscape:document-rotation="0" />
|
||||||
|
<g
|
||||||
|
id="g14"
|
||||||
|
transform="matrix(5.7,0,0,5.7,1.6591,1.6521435)">
|
||||||
|
|
||||||
|
<g
|
||||||
|
id="g24-9"
|
||||||
|
transform="matrix(0.1754386,0,0,0.1754386,3.2674006,3.2686582)"
|
||||||
|
style="fill:#ffffff;stroke:none"><path
|
||||||
|
d="m 81.245,212.419 c -9.902,13.127 -19.256,25.526 -8.273,47.079 4.957,9.729 18.132,11.771 28.311,11.771 20.904,0 45.125,-8.057 63.033,-19.182 -2.994,-3.719 -6.111,-8.237 -6.111,-13.949 0,-6.576 4.131,-11.571 7.451,-15.585 1.601,-1.936 3.415,-4.129 3.882,-5.569 0.523,-1.607 0.357,-4.439 0.197,-7.178 -0.299,-5.108 -0.67,-11.466 3.069,-16.605 2.653,-3.644 6.503,-5.517 10.286,-6.759 -3.608,-8.125 -8.398,-16.488 -14.204,-24.48 -14.902,-20.512 -32.983,-33.767 -46.06,-33.767 -2.845,0 -5.39,0.592 -7.78,1.81 -21.868,11.143 -21.404,26.636 -20.912,43.039 0.22,7.359 0.429,14.31 -1.603,20.561 -2.198,6.767 -6.612,12.619 -11.286,18.814 z"
|
||||||
|
id="path2"
|
||||||
|
style="fill:#ffffff;stroke:none" /><path
|
||||||
|
d="m 464.076,203.816 c -7.567,-14.789 -26.952,-17.893 -41.88,-17.893 -9.41,0 -19.295,1.161 -29.221,3.252 1.645,2.602 3.775,5.369 5.992,8.235 10.528,13.614 24.948,32.259 9.778,62.032 -5.735,11.255 -17.472,17.797 -34.132,19.144 4.004,3.046 7.514,6.264 10.369,9.608 7.716,9.035 10.98,18.948 9.44,28.668 -5.153,32.537 -27.667,39.408 -44.107,44.425 -2.622,0.8 -5.172,1.586 -7.547,2.43 17.125,17.508 34.971,27.756 49.438,27.756 4.384,0 8.483,-0.96 12.185,-2.855 32.102,-16.428 31.354,-39.981 30.631,-62.76 -0.318,-10.034 -0.619,-19.512 2.054,-27.791 2.912,-9.018 8.93,-17.024 15.301,-25.501 14.344,-19.083 27.892,-37.108 11.699,-68.75 z"
|
||||||
|
id="path4"
|
||||||
|
style="fill:#ffffff;stroke:none" /><path
|
||||||
|
d="m 270.444,394.702 c 2.878,0.456 5.642,0.687 8.214,0.687 18.176,0 25.863,-11.274 34.001,-23.211 4.148,-6.084 8.066,-11.83 13.384,-15.693 5.755,-4.182 12.766,-6.321 20.188,-8.587 15.727,-4.8 30.581,-9.333 34.364,-33.225 0.893,-5.63 -1.213,-11.479 -6.258,-17.386 -8.141,-9.532 -23.127,-18.049 -39.956,-23.652 -1.862,-0.538 -3.721,-1.116 -5.575,-1.729 -9.632,-2.772 -19.668,-4.561 -29.237,-5.027 0.292,5.036 0.549,11.19 -3.092,16.193 -3.771,5.18 -9.963,6.789 -14.938,8.081 -2.629,0.683 -5.348,1.389 -6.67,2.351 -1.28,0.933 -2.769,3.273 -4.207,5.537 -2.776,4.368 -6.232,9.804 -12.397,11.806 -1.511,0.491 -3.127,0.739 -4.804,0.739 -1.835,0 -3.626,-0.305 -5.359,-0.754 -3.383,17.09 -3.525,36.966 0.635,54.293 2.436,10.148 8.497,27.485 21.707,29.577 z"
|
||||||
|
id="path6"
|
||||||
|
style="fill:#ffffff;stroke:none" /><path
|
||||||
|
d="m 126.439,366.003 c -16.52,-4.826 -39.144,-11.435 -44.37,-44.438 -1.539,-9.719 1.725,-19.632 9.44,-28.667 2.257,-2.643 4.924,-5.206 7.915,-7.669 -19.207,-0.406 -32.657,-7.071 -38.927,-19.376 -14.955,-29.353 -0.779,-48.145 9.572,-61.866 1.457,-1.931 2.882,-3.822 4.177,-5.669 -8.438,-1.537 -16.798,-2.384 -24.81,-2.384 -15.076,0 -34.636,3.13 -42.2,18.042 -16.315,32.161 -1.866,50.776 12.108,68.778 6.156,7.931 11.971,15.422 14.674,23.692 2.944,9.006 2.782,19.021 2.61,29.623 -0.386,23.87 -0.751,46.416 30.949,62.497 3.678,1.866 7.743,2.811 12.085,2.811 15.828,0 35.7,-12.34 54.219,-33.068 -2.312,-0.8 -4.839,-1.546 -7.442,-2.306 z"
|
||||||
|
id="path8"
|
||||||
|
style="fill:#ffffff;stroke:none" /><path
|
||||||
|
d="m 276.172,62.189 c 12.786,0 24.223,5.22 34.962,15.96 9.115,9.115 11.603,22.92 7.36,39.616 9.602,-6.462 19.178,-9.98 27.922,-9.98 5.036,0 9.792,1.123 14.137,3.337 29.352,14.955 28.93,38.491 28.62,55.676 -0.036,2.032 -0.067,4.02 -0.056,5.943 13.727,-6.889 25.322,-15.114 32.853,-23.947 7.611,-8.928 10.762,-17.875 9.364,-26.592 C 425.63,86.594 402.997,80.027 381.11,73.676 371.468,70.879 362.361,68.236 355.314,63.135 347.636,57.578 341.881,49.38 335.789,40.701 324.269,24.291 312.358,7.323 285.965,7.323 c -3.748,0 -7.768,0.339 -11.947,1.009 -20.054,3.212 -28.987,28.625 -32.527,43.488 -1.487,6.242 -2.569,12.945 -3.271,19.898 3.292,-0.724 7.018,-2.048 10.899,-3.439 7.965,-2.855 16.995,-6.09 27.053,-6.09 z"
|
||||||
|
id="path10"
|
||||||
|
style="fill:#ffffff;stroke:none" /><path
|
||||||
|
d="m 80.254,180.726 c 0.028,-2.296 -0.039,-4.745 -0.114,-7.261 -0.516,-17.203 -1.222,-40.762 28.551,-55.932 4.345,-2.214 9.101,-3.336 14.136,-3.336 8.349,0 17.457,3.203 26.621,9.117 -6.331,-19.186 -4.373,-35.058 5.734,-45.165 10.691,-10.692 22.104,-15.89 34.887,-15.89 9.877,0 18.926,3.121 26.909,5.875 1.419,0.49 2.817,0.97 4.191,1.424 -0.685,-4.98 -1.561,-9.809 -2.666,-14.377 -3.594,-14.851 -12.618,-40.235 -32.683,-43.376 -4.124,-0.646 -8.094,-0.973 -11.801,-0.973 -26.95,0 -38.601,17.153 -49.868,33.742 -5.641,8.306 -10.969,16.151 -17.999,21.277 -7.655,5.583 -17.23,8.524 -27.367,11.638 -22.821,7.009 -44.376,13.629 -49.874,48.746 -1.361,8.696 1.798,17.605 9.392,26.48 9.129,10.667 24.272,20.436 41.951,28.011 z"
|
||||||
|
id="path12"
|
||||||
|
style="fill:#ffffff;stroke:none" /><path
|
||||||
|
d="m 328.161,374.443 c -1.295,1.753 -2.6,3.664 -3.935,5.621 -8.438,12.375 -19.993,29.324 -45.568,29.324 -3.304,0 -6.804,-0.289 -10.403,-0.859 -12.671,-2.006 -22.761,-11.63 -29.146,-27.494 -6.21,18.666 -16.992,30 -30.871,32.198 -3.581,0.567 -7.063,0.854 -10.349,0.854 -25.198,0 -36.474,-16.121 -45.533,-29.075 -1.561,-2.232 -3.085,-4.399 -4.611,-6.387 -2.519,4.654 -4.752,9.299 -6.633,13.862 -5.821,14.126 -13.439,39.965 0.946,54.3 11.86,11.818 23.598,17.323 36.938,17.323 11.172,0 21.87,-3.855 32.217,-7.584 9.445,-3.404 18.367,-6.619 27.066,-6.634 9.527,0 18.977,3.24 28.98,6.671 10.371,3.556 21.096,7.234 32.052,7.234 h 0.005 c 13.408,-0.002 25.147,-5.516 36.943,-17.354 14.313,-14.363 6.645,-40.121 0.8,-54.197 -2.432,-5.852 -5.439,-11.836 -8.898,-17.803 z"
|
||||||
|
id="path14"
|
||||||
|
style="fill:#ffffff;stroke:none" /><path
|
||||||
|
d="m 190.069,76.259 c -9.005,0 -16.944,3.746 -24.987,11.789 -9.459,9.458 -4.171,27.047 -0.177,36.69 7.686,18.555 21.693,36.525 36.309,48.605 2.38,-3.296 5.398,-6.483 9.806,-7.914 1.511,-0.491 3.127,-0.739 4.805,-0.739 4.22,0 8.227,1.567 11.763,2.949 2.6,1.016 5.287,2.067 7.057,2.067 1.77,0 4.457,-1.051 7.057,-2.067 3.535,-1.382 7.543,-2.948 11.762,-2.948 1.678,0 3.294,0.249 4.805,0.739 3.715,1.206 6.442,3.662 8.633,6.377 13.957,-12.04 27.143,-29.278 34.512,-47.07 3.994,-9.643 9.282,-27.231 -0.176,-36.69 -8.092,-8.091 -16.055,-11.859 -25.063,-11.859 -7.626,0 -15.102,2.679 -22.331,5.27 -6.931,2.484 -13.477,4.83 -20.049,4.83 -7.115,0 -14.044,-2.39 -21.379,-4.92 -7.286,-2.512 -14.816,-5.109 -22.347,-5.109 z"
|
||||||
|
id="path16"
|
||||||
|
style="fill:#ffffff;stroke:none" /><path
|
||||||
|
d="m 396.271,253.086 c 11.144,-21.87 1.661,-34.13 -8.379,-47.111 -4.504,-5.824 -8.758,-11.324 -10.789,-17.574 -2.199,-6.768 -2.067,-14.096 -1.928,-21.855 0.296,-16.44 0.575,-31.969 -20.978,-42.951 -2.392,-1.218 -4.936,-1.811 -7.781,-1.811 -13.076,0 -31.153,13.253 -46.055,33.763 -7.177,9.878 -12.801,20.322 -16.549,30.183 4.48,1.242 9.45,3.059 12.663,7.474 3.74,5.139 3.368,11.496 3.069,16.604 -0.16,2.739 -0.326,5.571 0.196,7.178 0.467,1.44 2.281,3.633 3.882,5.568 3.319,4.014 7.45,9.008 7.45,15.583 0,3.601 -1.241,6.724 -2.907,9.475 6.998,4.038 14.811,7.587 22.921,10.41 3.011,0.836 5.989,1.759 8.917,2.766 9.424,2.568 18.994,4.068 27.956,4.068 10.181,0.001 23.356,-2.041 28.312,-11.77 z"
|
||||||
|
id="path18"
|
||||||
|
style="fill:#ffffff;stroke:none" /><path
|
||||||
|
d="m 95.897,319.376 c 3.839,24.242 18.717,28.588 34.468,33.189 7.066,2.064 13.742,4.015 19.059,7.877 5.757,4.182 9.957,10.189 14.404,16.547 8.308,11.878 16.155,23.098 34.061,23.098 2.555,0 5.299,-0.229 8.159,-0.683 13.211,-2.092 19.271,-19.429 21.708,-29.577 4.71,-19.62 3.901,-42.504 -0.881,-60.914 -3.359,1.307 -7.109,2.672 -11.051,2.672 -1.678,0 -3.294,-0.249 -4.805,-0.739 -6.165,-2.001 -9.621,-7.438 -12.398,-11.805 -1.439,-2.264 -2.928,-4.605 -4.208,-5.538 -1.322,-0.962 -4.041,-1.668 -6.67,-2.351 -4.976,-1.292 -11.168,-2.9 -14.938,-8.08 -2.434,-3.342 -3.123,-7.199 -3.229,-10.893 -26.569,3.035 -54.982,15.244 -67.422,29.811 -5.043,5.908 -7.149,11.757 -6.257,17.386 z"
|
||||||
|
id="path20"
|
||||||
|
style="fill:#ffffff;stroke:none" /><path
|
||||||
|
d="m 246.796,295.599 c 2.499,0.978 5.084,1.988 6.664,1.988 0.204,0 0.37,-0.019 0.48,-0.055 1.376,-0.447 3.416,-3.657 4.906,-6.001 2.04,-3.21 4.354,-6.849 7.784,-9.346 3.469,-2.525 7.677,-3.618 11.388,-4.583 2.666,-0.692 6.317,-1.641 7.139,-2.768 0.79,-1.086 0.571,-4.821 0.411,-7.548 -0.225,-3.845 -0.48,-8.204 0.856,-12.32 1.292,-3.98 4.011,-7.267 6.41,-10.168 1.889,-2.283 4.238,-5.124 4.238,-6.661 0,-1.536 -2.351,-4.378 -4.238,-6.661 -2.399,-2.9 -5.118,-6.188 -6.41,-10.168 -1.336,-4.115 -1.081,-8.474 -0.856,-12.319 0.16,-2.728 0.379,-6.462 -0.412,-7.549 -0.82,-1.127 -4.471,-2.075 -7.137,-2.768 -3.712,-0.964 -7.918,-2.057 -11.388,-4.583 -3.432,-2.497 -5.745,-6.136 -7.786,-9.347 -1.489,-2.344 -3.529,-5.553 -4.904,-5.999 -0.11,-0.036 -0.276,-0.055 -0.48,-0.055 -1.58,0 -4.165,1.01 -6.665,1.988 -3.63,1.419 -7.745,3.027 -12.153,3.027 -4.408,0 -8.523,-1.609 -12.154,-3.028 -2.5,-0.978 -5.085,-1.988 -6.665,-1.988 -0.204,0 -0.371,0.019 -0.482,0.055 -1.375,0.446 -3.415,3.656 -4.904,5.999 -2.041,3.211 -4.355,6.85 -7.787,9.348 -3.47,2.525 -7.677,3.617 -11.389,4.581 -2.666,0.692 -6.317,1.64 -7.139,2.768 -0.79,1.086 -0.572,4.822 -0.413,7.549 0.225,3.845 0.48,8.203 -0.856,12.319 -1.293,3.98 -4.012,7.267 -6.41,10.167 -1.889,2.284 -4.239,5.126 -4.239,6.662 0,1.537 2.351,4.378 4.239,6.662 2.398,2.9 5.117,6.187 6.41,10.167 1.336,4.115 1.081,8.473 0.856,12.318 -0.159,2.728 -0.377,6.463 0.414,7.55 0.821,1.128 4.472,2.076 7.138,2.768 3.712,0.964 7.918,2.056 11.389,4.581 3.432,2.497 5.745,6.136 7.786,9.347 1.489,2.344 3.53,5.554 4.905,6.001 0.111,0.036 0.277,0.055 0.482,0.055 1.58,0 4.165,-1.011 6.666,-1.988 3.63,-1.419 7.745,-3.028 12.153,-3.028 4.408,0 8.523,1.612 12.153,3.031 z"
|
||||||
|
id="path22"
|
||||||
|
style="fill:#ffffff;stroke:none" /></g></g>
|
||||||
|
<g
|
||||||
|
id="g16">
|
||||||
|
</g>
|
||||||
|
<g
|
||||||
|
id="g18">
|
||||||
|
</g>
|
||||||
|
<g
|
||||||
|
id="g20">
|
||||||
|
</g>
|
||||||
|
<g
|
||||||
|
id="g22">
|
||||||
|
</g>
|
||||||
|
<g
|
||||||
|
id="g24">
|
||||||
|
</g>
|
||||||
|
<g
|
||||||
|
id="g26">
|
||||||
|
</g>
|
||||||
|
<g
|
||||||
|
id="g28">
|
||||||
|
</g>
|
||||||
|
<g
|
||||||
|
id="g30">
|
||||||
|
</g>
|
||||||
|
<g
|
||||||
|
id="g32">
|
||||||
|
</g>
|
||||||
|
<g
|
||||||
|
id="g34">
|
||||||
|
</g>
|
||||||
|
<g
|
||||||
|
id="g36">
|
||||||
|
</g>
|
||||||
|
<g
|
||||||
|
id="g38">
|
||||||
|
</g>
|
||||||
|
<g
|
||||||
|
id="g40">
|
||||||
|
</g>
|
||||||
|
<g
|
||||||
|
id="g42">
|
||||||
|
</g>
|
||||||
|
<g
|
||||||
|
id="g44">
|
||||||
|
</g>
|
||||||
|
</svg>
|
After Width: | Height: | Size: 11 KiB |
197
icons/tmr/pelerin.svg
Normal file
@ -0,0 +1,197 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||||
|
<svg
|
||||||
|
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||||
|
xmlns:cc="http://creativecommons.org/ns#"
|
||||||
|
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||||
|
xmlns:svg="http://www.w3.org/2000/svg"
|
||||||
|
xmlns="http://www.w3.org/2000/svg"
|
||||||
|
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||||
|
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||||
|
width="512"
|
||||||
|
height="512"
|
||||||
|
viewBox="0 0 135.46666 135.46667"
|
||||||
|
version="1.1"
|
||||||
|
id="svg878"
|
||||||
|
inkscape:version="1.0.1 (3bc2e813f5, 2020-09-07)"
|
||||||
|
sodipodi:docname="pelerin.svg">
|
||||||
|
<defs
|
||||||
|
id="defs872">
|
||||||
|
<clipPath
|
||||||
|
clipPathUnits="userSpaceOnUse"
|
||||||
|
id="clipPath1730">
|
||||||
|
<g
|
||||||
|
inkscape:label="Clip"
|
||||||
|
id="use1732"
|
||||||
|
style="fill:#d38d5f;stroke:#502d16">
|
||||||
|
<g
|
||||||
|
id="g1541"
|
||||||
|
transform="matrix(0.28980934,0,0,0.21909426,120.56466,-12.741092)"
|
||||||
|
style="display:inline;fill:#d38d5f;stroke:#502d16;stroke-width:2.16856">
|
||||||
|
<path
|
||||||
|
sodipodi:nodetypes="cccccc"
|
||||||
|
id="path1535"
|
||||||
|
d="m -174.5565,130.97253 h 15.40856 v 508.4827 l -7.70428,24 -7.70428,-24 z"
|
||||||
|
style="fill:#d38d5f;stroke:#502d16;stroke-width:2.16856" />
|
||||||
|
<path
|
||||||
|
transform="matrix(1.001146,0,0,0.893038,2.193524,15.82179)"
|
||||||
|
style="fill:#d38d5f;stroke:#502d16;stroke-width:2.29344"
|
||||||
|
d="m -145.09735,123.91028 c 0,13.11269 -10.64218,17.6523 -23.75487,17.6523 -13.11269,0 -23.75487,-4.53961 -23.75487,-17.6523 0,-13.11269 10.64218,-23.75487 23.75487,-23.75487 13.11269,0 23.75487,10.64218 23.75487,23.75487 z"
|
||||||
|
id="path1537"
|
||||||
|
sodipodi:nodetypes="csssc" />
|
||||||
|
<path
|
||||||
|
style="fill:#d38d5f;stroke:#502d16;stroke-width:2.16856"
|
||||||
|
d="m -146.94948,221.199 c 0,8.50553 -8.91642,12.68366 -19.90273,12.68366 -10.98631,0 -19.90273,-4.17813 -19.90273,-12.68366 0,-8.50553 8.91642,-9.95873 19.90273,-9.95873 10.98631,0 19.90273,1.4532 19.90273,9.95873 z"
|
||||||
|
id="path1539"
|
||||||
|
sodipodi:nodetypes="csssc" />
|
||||||
|
</g>
|
||||||
|
<g
|
||||||
|
style="display:inline;fill:#d38d5f;stroke:#502d16"
|
||||||
|
id="g1559"
|
||||||
|
transform="matrix(0.20847315,-0.03662954,0.03662954,0.20847315,-0.34176516,-0.20270665)">
|
||||||
|
<g
|
||||||
|
inkscape:label="Fond écu"
|
||||||
|
id="g1543"
|
||||||
|
style="fill:#d38d5f;stroke:#502d16" />
|
||||||
|
<g
|
||||||
|
style="opacity:1;fill:#d38d5f;stroke:#502d16"
|
||||||
|
inkscape:label="Meubles"
|
||||||
|
id="g1553">
|
||||||
|
<g
|
||||||
|
id="g1551"
|
||||||
|
transform="matrix(0.714908,0,0,0.756557,137.7704,128.4719)"
|
||||||
|
style="display:inline;fill:#d38d5f;fill-opacity:1;stroke:#502d16;stroke-width:2.71947;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1">
|
||||||
|
<path
|
||||||
|
sodipodi:nodetypes="ccccc"
|
||||||
|
id="path1545"
|
||||||
|
d="m 160.08787,143.23938 39.92645,57.31251 39.53535,-57.31251 h -40.3837 z"
|
||||||
|
style="fill:#d38d5f;fill-opacity:1;fill-rule:evenodd;stroke:#502d16;stroke-width:2.71947;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
|
||||||
|
<path
|
||||||
|
sodipodi:nodetypes="ccccccccccccccccccccc"
|
||||||
|
id="path1547"
|
||||||
|
d="m 193.20453,145.31745 c -24.41443,20.15923 -49.98749,37.33861 -73.2768,58.5917 -6.37089,11.43876 -4.50952,20.09512 9.2768,25.68955 14.75917,-16.92275 18.76874,-17.90421 41.38418,-46.03566 -22.42258,29.55858 -41.45116,42.84434 -41.29043,46.09816 5.38114,19.66042 0.98803,22.70493 25.28125,31.0625 2.90109,-14.41044 25.62687,-63.19056 32.51802,-70.81345 -6.73696,8.18151 -29.75646,56.59527 -32.58052,71.37595 18.94602,17.92 18.75832,19.45149 44.6875,14.03125 l 0.375,-80.91001 0.375,80.91001 c 21.42445,5.42024 29.31401,4.7897 44.65625,-14.03125 -3.59166,-13.24549 -25.62533,-59.96461 -31.64832,-69.57405 4.75359,7.7904 26.43091,52.99484 31.61707,69.01155 18.88754,-8.35757 21.70202,-8.69924 25.28125,-31.0625 -1.0235,-6.998 -18.88266,-18.38043 -42.22262,-45.81545 23.11839,25.66768 42.65103,40.10972 42.31637,45.75295 15.18653,-6.16263 15.88219,-19.26899 8.92398,-28.52504 -25.17844,-18.14393 -47.18822,-37.47898 -72.36824,-56.58981 0,0 -4.64225,-4.09784 -6.93074,-3.0414 z"
|
||||||
|
style="fill:#d38d5f;fill-opacity:1;fill-rule:evenodd;stroke:#502d16;stroke-width:2.71947;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
|
||||||
|
<path
|
||||||
|
sodipodi:nodetypes="cc"
|
||||||
|
id="path1549"
|
||||||
|
d="m 168.24779,168.92114 c 23.13397,11.51861 44.28729,9.17267 64.46537,0"
|
||||||
|
style="fill:#d38d5f;fill-opacity:1;fill-rule:evenodd;stroke:#502d16;stroke-width:2.71947;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
|
||||||
|
</g>
|
||||||
|
</g>
|
||||||
|
<g
|
||||||
|
inkscape:label="Reflet final"
|
||||||
|
id="g1555"
|
||||||
|
style="fill:#d38d5f;stroke:#502d16" />
|
||||||
|
<g
|
||||||
|
inkscape:label="Contour final"
|
||||||
|
id="g1557"
|
||||||
|
style="fill:#d38d5f;stroke:#502d16" />
|
||||||
|
</g>
|
||||||
|
</g>
|
||||||
|
</clipPath>
|
||||||
|
</defs>
|
||||||
|
<sodipodi:namedview
|
||||||
|
id="base"
|
||||||
|
pagecolor="#ffffff"
|
||||||
|
bordercolor="#666666"
|
||||||
|
borderopacity="1.0"
|
||||||
|
inkscape:pageopacity="0.0"
|
||||||
|
inkscape:pageshadow="2"
|
||||||
|
inkscape:zoom="0.35"
|
||||||
|
inkscape:cx="400"
|
||||||
|
inkscape:cy="560"
|
||||||
|
inkscape:document-units="mm"
|
||||||
|
inkscape:current-layer="svg878"
|
||||||
|
inkscape:document-rotation="0"
|
||||||
|
showgrid="false"
|
||||||
|
units="px"
|
||||||
|
inkscape:window-width="2073"
|
||||||
|
inkscape:window-height="997"
|
||||||
|
inkscape:window-x="114"
|
||||||
|
inkscape:window-y="114"
|
||||||
|
inkscape:window-maximized="0" />
|
||||||
|
<metadata
|
||||||
|
id="metadata875">
|
||||||
|
<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
|
||||||
|
id="g1510"
|
||||||
|
style="fill:#784421;stroke:#ffffff;image-rendering:auto"
|
||||||
|
transform="translate(-1.0583648,-3.7366014)">
|
||||||
|
<g
|
||||||
|
inkscape:label="Clip"
|
||||||
|
id="g1726"
|
||||||
|
style="fill:#784421;stroke:#ffffff">
|
||||||
|
<g
|
||||||
|
id="g3257"
|
||||||
|
transform="matrix(0.28980934,0,0,0.21909426,120.56466,-12.741092)"
|
||||||
|
style="display:inline;fill:#784421;stroke:#ffffff;stroke-width:2.16856">
|
||||||
|
<path
|
||||||
|
sodipodi:nodetypes="cccccc"
|
||||||
|
id="rect3250"
|
||||||
|
d="m -174.5565,130.97253 h 15.40856 v 508.4827 l -7.70428,24 -7.70428,-24 z"
|
||||||
|
style="fill:#784421;stroke:#ffffff;stroke-width:2.16856" />
|
||||||
|
<path
|
||||||
|
transform="matrix(1.001146,0,0,0.893038,2.193524,15.82179)"
|
||||||
|
style="fill:#784421;stroke:#ffffff;stroke-width:2.29344"
|
||||||
|
d="m -145.09735,123.91028 c 0,13.11269 -10.64218,17.6523 -23.75487,17.6523 -13.11269,0 -23.75487,-4.53961 -23.75487,-17.6523 0,-13.11269 10.64218,-23.75487 23.75487,-23.75487 13.11269,0 23.75487,10.64218 23.75487,23.75487 z"
|
||||||
|
id="path3252"
|
||||||
|
sodipodi:nodetypes="csssc" />
|
||||||
|
<path
|
||||||
|
style="fill:#784421;stroke:#ffffff;stroke-width:2.16856"
|
||||||
|
d="m -146.94948,221.199 c 0,8.50553 -8.91642,12.68366 -19.90273,12.68366 -10.98631,0 -19.90273,-4.17813 -19.90273,-12.68366 0,-8.50553 8.91642,-9.95873 19.90273,-9.95873 10.98631,0 19.90273,1.4532 19.90273,9.95873 z"
|
||||||
|
id="path3254"
|
||||||
|
sodipodi:nodetypes="csssc" />
|
||||||
|
</g>
|
||||||
|
<g
|
||||||
|
style="display:inline;fill:#784421;stroke:#ffffff"
|
||||||
|
id="g2066"
|
||||||
|
transform="matrix(0.20847315,-0.03662954,0.03662954,0.20847315,-0.34176516,-0.20270665)">
|
||||||
|
<g
|
||||||
|
inkscape:label="Fond écu"
|
||||||
|
id="g2068"
|
||||||
|
style="fill:#784421;stroke:#ffffff" />
|
||||||
|
<g
|
||||||
|
style="opacity:1;fill:#784421;stroke:#ffffff"
|
||||||
|
inkscape:label="Meubles"
|
||||||
|
id="g2070">
|
||||||
|
<g
|
||||||
|
id="g4219"
|
||||||
|
transform="matrix(0.714908,0,0,0.756557,137.7704,128.4719)"
|
||||||
|
style="display:inline;fill:#784421;fill-opacity:1;stroke:#ffffff;stroke-width:2.71947;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1">
|
||||||
|
<path
|
||||||
|
sodipodi:nodetypes="ccccc"
|
||||||
|
id="path4221"
|
||||||
|
d="m 160.08787,143.23938 39.92645,57.31251 39.53535,-57.31251 h -40.3837 z"
|
||||||
|
style="fill:#784421;fill-opacity:1;fill-rule:evenodd;stroke:#ffffff;stroke-width:2.71947;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
|
||||||
|
<path
|
||||||
|
sodipodi:nodetypes="ccccccccccccccccccccc"
|
||||||
|
id="path4223"
|
||||||
|
d="m 193.20453,145.31745 c -24.41443,20.15923 -49.98749,37.33861 -73.2768,58.5917 -6.37089,11.43876 -4.50952,20.09512 9.2768,25.68955 14.75917,-16.92275 18.76874,-17.90421 41.38418,-46.03566 -22.42258,29.55858 -41.45116,42.84434 -41.29043,46.09816 5.38114,19.66042 0.98803,22.70493 25.28125,31.0625 2.90109,-14.41044 25.62687,-63.19056 32.51802,-70.81345 -6.73696,8.18151 -29.75646,56.59527 -32.58052,71.37595 18.94602,17.92 18.75832,19.45149 44.6875,14.03125 l 0.375,-80.91001 0.375,80.91001 c 21.42445,5.42024 29.31401,4.7897 44.65625,-14.03125 -3.59166,-13.24549 -25.62533,-59.96461 -31.64832,-69.57405 4.75359,7.7904 26.43091,52.99484 31.61707,69.01155 18.88754,-8.35757 21.70202,-8.69924 25.28125,-31.0625 -1.0235,-6.998 -18.88266,-18.38043 -42.22262,-45.81545 23.11839,25.66768 42.65103,40.10972 42.31637,45.75295 15.18653,-6.16263 15.88219,-19.26899 8.92398,-28.52504 -25.17844,-18.14393 -47.18822,-37.47898 -72.36824,-56.58981 0,0 -4.64225,-4.09784 -6.93074,-3.0414 z"
|
||||||
|
style="fill:#784421;fill-opacity:1;fill-rule:evenodd;stroke:#ffffff;stroke-width:2.71947;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
|
||||||
|
<path
|
||||||
|
sodipodi:nodetypes="cc"
|
||||||
|
id="path4225"
|
||||||
|
d="m 168.24779,168.92114 c 23.13397,11.51861 44.28729,9.17267 64.46537,0"
|
||||||
|
style="fill:#784421;fill-opacity:1;fill-rule:evenodd;stroke:#ffffff;stroke-width:2.71947;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
|
||||||
|
</g>
|
||||||
|
</g>
|
||||||
|
<g
|
||||||
|
inkscape:label="Reflet final"
|
||||||
|
id="g2076"
|
||||||
|
style="fill:#784421;stroke:#ffffff" />
|
||||||
|
<g
|
||||||
|
inkscape:label="Contour final"
|
||||||
|
id="g2078"
|
||||||
|
style="fill:#784421;stroke:#ffffff" />
|
||||||
|
</g>
|
||||||
|
</g>
|
||||||
|
</g>
|
||||||
|
</svg>
|
After Width: | Height: | Size: 10 KiB |
58
icons/tmr/scroll.svg
Normal file
@ -0,0 +1,58 @@
|
|||||||
|
<?xml version="1.0" encoding="iso-8859-1"?>
|
||||||
|
<!-- Generator: Adobe Illustrator 19.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
|
||||||
|
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
|
||||||
|
viewBox="0 0 511.999 511.999" style="enable-background:new 0 0 511.999 511.999;" xml:space="preserve">
|
||||||
|
<path style="fill:#CCAC68;" d="M145.179,371.239H95.282c-35.205,0-63.745,28.539-63.745,63.745l0,0
|
||||||
|
c0,35.205,28.539,63.745,63.745,63.745H266.31v-93.993L145.179,371.239z"/>
|
||||||
|
<path style="fill:#E6C275;" d="M356.848,140.762L154.642,13.272H90.44l0,0c-60.783,0-99.78,64.617-71.453,118.395l138.469,262.878
|
||||||
|
h-0.022c25.403,47.058-8.675,104.182-62.152,104.182h336.415c53.477,0,87.555-57.123,62.152-104.182L356.848,140.762z"/>
|
||||||
|
<path style="fill:#FFD782;" d="M90.44,13.272c35.205,0,63.745,28.54,63.745,63.745l0,0c0,35.205-28.54,63.745-63.745,63.745h266.408
|
||||||
|
c35.205,0,63.745-28.54,63.745-63.745l0,0c0-35.205-28.54-63.745-63.745-63.745C356.848,13.272,90.44,13.272,90.44,13.272z"/>
|
||||||
|
<path d="M342.963,489.153c0,0-195.544,0-195.559,0c1.764,0,6.043-5.742,7.172-6.989c17.747-19.618,25.167-48.132,18.443-73.982
|
||||||
|
c-2.737-10.522-8.091-19.987-13.121-29.534L27.455,127.206C15.728,104.945,16.489,78.792,29.49,57.25
|
||||||
|
c13.001-21.543,35.785-34.403,60.947-34.403c29.869,0,54.17,24.3,54.17,54.17s-24.3,54.17-54.17,54.17
|
||||||
|
c-5.289,0-9.575,4.286-9.575,9.576c0,5.289,4.286,9.575,9.575,9.575h260.695l31.745,58.803c2.512,4.655,8.318,6.387,12.973,3.877
|
||||||
|
c4.655-2.512,6.389-8.321,3.877-12.973l-27.694-51.301c33.163-7.016,58.129-36.507,58.129-71.729c0-40.429-32.892-73.32-73.32-73.32
|
||||||
|
H240.78c-5.289,0-9.575,4.286-9.575,9.575s4.286,9.575,9.575,9.575h116.063c29.869,0,54.17,24.3,54.17,54.17
|
||||||
|
c0,29.866-24.293,54.164-54.17,54.17H139.796c0.919-0.839,1.818-1.7,2.694-2.584c13.491-13.615,21.266-32.414,21.266-51.587
|
||||||
|
c0-20.045-8.544-39.648-23.128-53.374c-0.28-0.263-0.546-0.537-0.83-0.797h56.304c5.289,0,9.575-4.286,9.575-9.575
|
||||||
|
s-4.286-9.575-9.575-9.575c0,0-105.664,0-105.665,0c-31.931,0-60.842,16.32-77.341,43.658
|
||||||
|
c-16.498,27.337-17.463,60.524-2.581,88.774l118.798,225.535H95.277c-40.428,0-73.32,32.891-73.32,73.32s32.892,73.32,73.32,73.32
|
||||||
|
c0.027,0,0.052-0.001,0.078-0.001h247.609c5.289,0,9.575-4.286,9.575-9.575S348.252,489.153,342.963,489.153z M41.107,434.984
|
||||||
|
c0-29.869,24.3-54.17,54.17-54.17h44.118c3.82,7.251,8.046,14.427,11.417,21.9c3.922,8.533,5.779,17.635,5.584,26.694
|
||||||
|
c-0.706,32.866-28.393,59.744-61.136,59.744C65.399,489.146,41.107,464.848,41.107,434.984z"/>
|
||||||
|
<path d="M502.27,389.999l-78.422-145.272c-2.514-4.655-8.322-6.389-12.973-3.877c-4.655,2.512-6.389,8.321-3.877,12.973
|
||||||
|
l78.423,145.272c10.312,19.103,9.829,41.639-1.293,60.283c-11.123,18.645-30.724,29.776-52.434,29.776h-44.048
|
||||||
|
c-5.289,0-9.575,4.286-9.575,9.575s4.286,9.575,9.575,9.575h44.048c28.52,0,54.269-14.622,68.88-39.114
|
||||||
|
C515.184,444.697,515.818,415.093,502.27,389.999z"/>
|
||||||
|
<g>
|
||||||
|
</g>
|
||||||
|
<g>
|
||||||
|
</g>
|
||||||
|
<g>
|
||||||
|
</g>
|
||||||
|
<g>
|
||||||
|
</g>
|
||||||
|
<g>
|
||||||
|
</g>
|
||||||
|
<g>
|
||||||
|
</g>
|
||||||
|
<g>
|
||||||
|
</g>
|
||||||
|
<g>
|
||||||
|
</g>
|
||||||
|
<g>
|
||||||
|
</g>
|
||||||
|
<g>
|
||||||
|
</g>
|
||||||
|
<g>
|
||||||
|
</g>
|
||||||
|
<g>
|
||||||
|
</g>
|
||||||
|
<g>
|
||||||
|
</g>
|
||||||
|
<g>
|
||||||
|
</g>
|
||||||
|
<g>
|
||||||
|
</g>
|
||||||
|
</svg>
|
After Width: | Height: | Size: 3.0 KiB |
62
icons/tmr/treasure-chest.svg
Normal file
@ -0,0 +1,62 @@
|
|||||||
|
<?xml version="1.0" encoding="iso-8859-1"?>
|
||||||
|
<!-- Generator: Adobe Illustrator 19.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
|
||||||
|
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
|
||||||
|
viewBox="0 0 496 496" style="enable-background:new 0 0 496 496;" xml:space="preserve">
|
||||||
|
<path style="fill:#5B402E;" d="M0,232v167.2C0,460.8,52,456,113.6,456h268c61.6,0,113.6,4.8,113.6-56.8V232H0z"/>
|
||||||
|
<path style="fill:#493322;" d="M112,456h270.4c61.6,0,113.6,4.8,113.6-56.8V232"/>
|
||||||
|
<path style="fill:#5B402E;" d="M496,192v-40c0-61.6-52-112-113.6-112H113.6C52,40,0,90.4,0,152v40H496z"/>
|
||||||
|
<path style="fill:#493322;" d="M0,152v40h496v-40c0-61.6-52-112-113.6-112"/>
|
||||||
|
<rect y="232" style="fill:#F2B111;" width="496" height="64"/>
|
||||||
|
<polyline style="fill:#E88813;" points="0,296 496,296 496,232 "/>
|
||||||
|
<rect y="152" style="fill:#F2B111;" width="496" height="40"/>
|
||||||
|
<g>
|
||||||
|
<polyline style="fill:#E88813;" points="0,192 496,192 496,152 "/>
|
||||||
|
<rect x="104" y="32" style="fill:#E88813;" width="56" height="152"/>
|
||||||
|
<rect x="336" y="32" style="fill:#E88813;" width="56" height="152"/>
|
||||||
|
<rect x="104" y="288" style="fill:#E88813;" width="56" height="176"/>
|
||||||
|
<rect x="336" y="288" style="fill:#E88813;" width="56" height="176"/>
|
||||||
|
</g>
|
||||||
|
<g>
|
||||||
|
<circle style="fill:#493322;" cx="184" cy="264.8" r="8.8"/>
|
||||||
|
<circle style="fill:#493322;" cx="226.4" cy="264.8" r="8.8"/>
|
||||||
|
<circle style="fill:#493322;" cx="269.6" cy="264.8" r="8.8"/>
|
||||||
|
<circle style="fill:#493322;" cx="312" cy="264.8" r="8.8"/>
|
||||||
|
<circle style="fill:#493322;" cx="33.6" cy="264.8" r="8.8"/>
|
||||||
|
<circle style="fill:#493322;" cx="75.2" cy="264.8" r="8.8"/>
|
||||||
|
<circle style="fill:#493322;" cx="420" cy="264.8" r="8.8"/>
|
||||||
|
<circle style="fill:#493322;" cx="462.4" cy="264.8" r="8.8"/>
|
||||||
|
</g>
|
||||||
|
<path style="fill:#F2B111;" d="M276,346.4c0-15.2-12.8-28-28-28s-28,12.8-28,28c0,10.4,5.6,20,13.6,25.6l-8,52h44.8l-8-52
|
||||||
|
C270.4,367.2,276,356.8,276,346.4z"/>
|
||||||
|
<path style="fill:#E88813;" d="M270.4,424l-8-52c8-4.8,13.6-15.2,13.6-25.6c0-15.2-12.8-28-28-28s-28,12.8-28,28"/>
|
||||||
|
<g>
|
||||||
|
</g>
|
||||||
|
<g>
|
||||||
|
</g>
|
||||||
|
<g>
|
||||||
|
</g>
|
||||||
|
<g>
|
||||||
|
</g>
|
||||||
|
<g>
|
||||||
|
</g>
|
||||||
|
<g>
|
||||||
|
</g>
|
||||||
|
<g>
|
||||||
|
</g>
|
||||||
|
<g>
|
||||||
|
</g>
|
||||||
|
<g>
|
||||||
|
</g>
|
||||||
|
<g>
|
||||||
|
</g>
|
||||||
|
<g>
|
||||||
|
</g>
|
||||||
|
<g>
|
||||||
|
</g>
|
||||||
|
<g>
|
||||||
|
</g>
|
||||||
|
<g>
|
||||||
|
</g>
|
||||||
|
<g>
|
||||||
|
</g>
|
||||||
|
</svg>
|
After Width: | Height: | Size: 2.1 KiB |
94
icons/tmr/wave.svg
Normal file
After Width: | Height: | Size: 23 KiB |
BIN
icons/vehicules/barque.webp
Normal file
After Width: | Height: | Size: 15 KiB |
BIN
icons/vehicules/barque_token.webp
Normal file
After Width: | Height: | Size: 50 KiB |
BIN
icons/vehicules/canot.webp
Normal file
After Width: | Height: | Size: 15 KiB |
BIN
icons/vehicules/canot_token.webp
Normal file
After Width: | Height: | Size: 18 KiB |
BIN
icons/vehicules/cariole.webp
Normal file
After Width: | Height: | Size: 14 KiB |
BIN
icons/vehicules/cariole_token.webp
Normal file
After Width: | Height: | Size: 14 KiB |
BIN
icons/vehicules/charette.webp
Normal file
After Width: | Height: | Size: 13 KiB |
BIN
icons/vehicules/charette_token.webp
Normal file
After Width: | Height: | Size: 18 KiB |
BIN
icons/vehicules/chariot.webp
Normal file
After Width: | Height: | Size: 16 KiB |
BIN
icons/vehicules/chariot_token.webp
Normal file
After Width: | Height: | Size: 33 KiB |
BIN
icons/vehicules/drakkar.webp
Normal file
After Width: | Height: | Size: 17 KiB |
BIN
icons/vehicules/drakkar_token.webp
Normal file
After Width: | Height: | Size: 45 KiB |
BIN
icons/vehicules/galere.webp
Normal file
After Width: | Height: | Size: 15 KiB |
BIN
icons/vehicules/galere_token.webp
Normal file
After Width: | Height: | Size: 54 KiB |
BIN
icons/vehicules/nef.webp
Normal file
After Width: | Height: | Size: 15 KiB |
BIN
icons/vehicules/nef_token.webp
Normal file
After Width: | Height: | Size: 65 KiB |
BIN
icons/voyageurs/baladin.webp
Normal file
After Width: | Height: | Size: 15 KiB |
BIN
icons/voyageurs/combattant_de_choc.webp
Normal file
After Width: | Height: | Size: 22 KiB |
BIN
icons/voyageurs/coureur-des-bois.webp
Normal file
After Width: | Height: | Size: 24 KiB |
BIN
icons/voyageurs/coureur-des-mers.webp
Normal file
After Width: | Height: | Size: 20 KiB |
BIN
icons/voyageurs/coureur_de_rues.webp
Normal file
After Width: | Height: | Size: 13 KiB |
BIN
icons/voyageurs/cuisinier_hautrevant.webp
Normal file
After Width: | Height: | Size: 20 KiB |
BIN
icons/voyageurs/dilettante.webp
Normal file
After Width: | Height: | Size: 12 KiB |
BIN
icons/voyageurs/erudit_alchimiste.webp
Normal file
After Width: | Height: | Size: 16 KiB |
BIN
icons/voyageurs/haut_revant_dilettante.webp
Normal file
After Width: | Height: | Size: 20 KiB |
BIN
icons/voyageurs/haut_revant_erudit.webp
Normal file
After Width: | Height: | Size: 17 KiB |
BIN
icons/voyageurs/haut_revant_muscle.webp
Normal file
After Width: | Height: | Size: 28 KiB |
BIN
icons/voyageurs/voyageur_etranger.webp
Normal file
After Width: | Height: | Size: 16 KiB |
@ -5,10 +5,11 @@
|
|||||||
|
|
||||||
import { RdDUtility } from "./rdd-utility.js";
|
import { RdDUtility } from "./rdd-utility.js";
|
||||||
import { HtmlUtility } from "./html-utility.js";
|
import { HtmlUtility } from "./html-utility.js";
|
||||||
import { RdDItem } from "./item.js";
|
|
||||||
import { RdDItemArme } from "./item-arme.js";
|
import { RdDItemArme } from "./item-arme.js";
|
||||||
import { RdDItemCompetence } from "./item-competence.js";
|
import { RdDItemCompetence } from "./item-competence.js";
|
||||||
import { RdDBonus } from "./rdd-bonus.js";
|
import { RdDBonus } from "./rdd-bonus.js";
|
||||||
|
import { Misc } from "./misc.js";
|
||||||
|
import { RdDCombatManager } from "./rdd-combat.js";
|
||||||
|
|
||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
export class RdDActorSheet extends ActorSheet {
|
export class RdDActorSheet extends ActorSheet {
|
||||||
@ -38,14 +39,20 @@ export class RdDActorSheet extends ActorSheet {
|
|||||||
data.data.showCompNiveauBase = this.options.showCompNiveauBase;
|
data.data.showCompNiveauBase = this.options.showCompNiveauBase;
|
||||||
data.data.montrerArchetype = this.options.montrerArchetype;
|
data.data.montrerArchetype = this.options.montrerArchetype;
|
||||||
|
|
||||||
data.itemsByType = RdDItem.buildItemsClassification(data.items);
|
data.itemsByType = Misc.classify(data.items);
|
||||||
|
|
||||||
// Competence per category
|
// Competence per category
|
||||||
|
data.data.comptageArchetype = RdDUtility.getLimitesArchetypes();
|
||||||
data.data.competenceXPTotal = 0;
|
data.data.competenceXPTotal = 0;
|
||||||
data.competenceByCategory = RdDItem.classify(
|
data.competenceByCategory = Misc.classify(
|
||||||
data.itemsByType.competence,
|
data.itemsByType.competence,
|
||||||
item => item.data.categorie,
|
item => item.data.categorie,
|
||||||
item => {
|
item => {
|
||||||
|
let archetypeKey = (item.data.niveau_archetype < 0) ? 0 : item.data.niveau_archetype;
|
||||||
|
if (data.data.comptageArchetype[archetypeKey] == undefined) {
|
||||||
|
data.data.comptageArchetype[archetypeKey] = { "niveau": archetypeKey, "nombreMax": 0, "nombre": 0};
|
||||||
|
}
|
||||||
|
data.data.comptageArchetype[archetypeKey].nombre = (data.data.comptageArchetype[archetypeKey]?.nombre??0) + 1; //Comptage archetype
|
||||||
item.data.xpNext = RdDItemCompetence.getCompetenceNextXp(item.data.niveau);
|
item.data.xpNext = RdDItemCompetence.getCompetenceNextXp(item.data.niveau);
|
||||||
item.data.isLevelUp = item.data.xp >= item.data.xpNext; // Flag de niveau à MAJ
|
item.data.isLevelUp = item.data.xp >= item.data.xpNext; // Flag de niveau à MAJ
|
||||||
//this.actor.checkCompetenceXP(item.name); // Petite vérification experience
|
//this.actor.checkCompetenceXP(item.name); // Petite vérification experience
|
||||||
@ -66,6 +73,7 @@ export class RdDActorSheet extends ActorSheet {
|
|||||||
currentCarac.xpNext = RdDUtility.getCaracNextXp(currentCarac.value);
|
currentCarac.xpNext = RdDUtility.getCaracNextXp(currentCarac.value);
|
||||||
currentCarac.isLevelUp = (currentCarac.xp >= currentCarac.xpNext);
|
currentCarac.isLevelUp = (currentCarac.xp >= currentCarac.xpNext);
|
||||||
}
|
}
|
||||||
|
sum += (data.data.beaute >= 0) ? (data.data.beaute - 10) : 0;
|
||||||
data.data.caracSum = sum;
|
data.data.caracSum = sum;
|
||||||
|
|
||||||
// Force empty arme, at least for Esquive
|
// Force empty arme, at least for Esquive
|
||||||
@ -88,12 +96,12 @@ export class RdDActorSheet extends ActorSheet {
|
|||||||
|
|
||||||
// To avoid armour and so on...
|
// To avoid armour and so on...
|
||||||
data.data.combat = duplicate(RdDUtility.checkNull(data.itemsByType['arme']));
|
data.data.combat = duplicate(RdDUtility.checkNull(data.itemsByType['arme']));
|
||||||
data.data.combat = RdDUtility._finalizeArmeList(data.data.combat, data.itemsByType.competence, data.data.carac);
|
data.data.combat = RdDCombatManager.finalizeArmeList(data.data.combat, data.itemsByType.competence, data.data.carac);
|
||||||
|
|
||||||
data.esquive = { name: "Esquive", niveau: data.competenceByCategory?.melee.find(it => it.name == 'Esquive')?.data.niveau ?? -6};
|
data.esquive = { name: "Esquive", niveau: data.competenceByCategory?.melee.find(it => it.name == 'Esquive')?.data.niveau ?? -6};
|
||||||
let corpsACorps = data.competenceByCategory?.melee.find(it => it.name == 'Corps à corps');
|
let corpsACorps = data.competenceByCategory?.melee.find(it => it.name == 'Corps à corps');
|
||||||
if (corpsACorps) {
|
if (corpsACorps) {
|
||||||
let cc_init = RdDUtility.calculInitiative(corpsACorps.data.niveau, data.data.carac['melee'].value);
|
let cc_init = RdDCombatManager.calculInitiative(corpsACorps.data.niveau, data.data.carac['melee'].value);
|
||||||
data.data.combat.push(RdDItemArme.mainsNues({ niveau: corpsACorps.data.niveau, initiative: cc_init }));
|
data.data.combat.push(RdDItemArme.mainsNues({ niveau: corpsACorps.data.niveau, initiative: cc_init }));
|
||||||
}
|
}
|
||||||
this.armesList = duplicate(data.data.combat);
|
this.armesList = duplicate(data.data.combat);
|
||||||
@ -102,11 +110,14 @@ export class RdDActorSheet extends ActorSheet {
|
|||||||
data.data.compteurs.chance.isChance = true;
|
data.data.compteurs.chance.isChance = true;
|
||||||
data.data.blessures.resume = this.actor.computeResumeBlessure(data.data.blessures);
|
data.data.blessures.resume = this.actor.computeResumeBlessure(data.data.blessures);
|
||||||
|
|
||||||
// Mise à jour de l'encombrement total
|
// Mise à jour de l'encombrement total et du prix de l'équipement
|
||||||
this.actor.computeEncombrementTotalEtMalusArmure();
|
this.actor.computeEncombrementTotalEtMalusArmure();
|
||||||
|
this.actor.computePrixTotalEquipement();
|
||||||
|
|
||||||
// Common data
|
// Common data
|
||||||
data.data.competenceByCategory = data.competenceByCategory;
|
data.data.competenceByCategory = data.competenceByCategory;
|
||||||
data.data.encTotal = this.actor.encTotal;
|
data.data.encTotal = this.actor.encTotal;
|
||||||
|
data.data.prixTotalEquipement = this.actor.prixTotalEquipement;
|
||||||
data.data.surprise = RdDBonus.find(this.actor.getSurprise(false)).descr;
|
data.data.surprise = RdDBonus.find(this.actor.getSurprise(false)).descr;
|
||||||
data.data.isGM = game.user.isGM;
|
data.data.isGM = game.user.isGM;
|
||||||
data.ajustementsConditions = CONFIG.RDD.ajustementsConditions;
|
data.ajustementsConditions = CONFIG.RDD.ajustementsConditions;
|
||||||
@ -120,6 +131,7 @@ export class RdDActorSheet extends ActorSheet {
|
|||||||
|
|
||||||
RdDUtility.filterItemsPerTypeForSheet(data);
|
RdDUtility.filterItemsPerTypeForSheet(data);
|
||||||
data.data.sortReserve = data.data.reve.reserve.list;
|
data.data.sortReserve = data.data.reve.reserve.list;
|
||||||
|
data.data.rencontres = duplicate(data.data.reve.rencontre.list);
|
||||||
data.data.caseSpeciales = data.itemsByType['casetmr'];
|
data.data.caseSpeciales = data.itemsByType['casetmr'];
|
||||||
RdDUtility.buildArbreDeConteneur(this, data);
|
RdDUtility.buildArbreDeConteneur(this, data);
|
||||||
data.data.surEncombrementMessage = (data.data.compteurs.surenc.value < 0) ? "Sur-Encombrement!" : "";
|
data.data.surEncombrementMessage = (data.data.compteurs.surenc.value < 0) ? "Sur-Encombrement!" : "";
|
||||||
@ -177,15 +189,25 @@ export class RdDActorSheet extends ActorSheet {
|
|||||||
|
|
||||||
HtmlUtility._showControlWhen($(".gm-only"), game.user.isGM);
|
HtmlUtility._showControlWhen($(".gm-only"), game.user.isGM);
|
||||||
|
|
||||||
|
html.find('#show-hide-competences').click((event) => {
|
||||||
|
this.options.showCompNiveauBase = !this.options.showCompNiveauBase;
|
||||||
|
this.render(true);
|
||||||
|
});
|
||||||
|
|
||||||
// Everything below here is only needed if the sheet is editable
|
// Everything below here is only needed if the sheet is editable
|
||||||
if (!this.options.editable) return;
|
if (!this.options.editable) return;
|
||||||
|
|
||||||
// Update Inventory Item
|
|
||||||
html.find('.item-edit').click(ev => {
|
html.find('.item-edit').click(ev => {
|
||||||
const li = $(ev.currentTarget).parents(".item");
|
const li = $(ev.currentTarget).parents(".item");
|
||||||
const item = this.actor.getOwnedItem(li.data("item-id"));
|
const item = this.actor.getOwnedItem(li.data("item-id"));
|
||||||
item.sheet.render(true);
|
item.sheet.render(true);
|
||||||
});
|
});
|
||||||
|
// Update Inventory Item
|
||||||
|
html.find('.rencontre-delete').click(ev => {
|
||||||
|
const li = $(ev.currentTarget).parents(".item");
|
||||||
|
const rencontreKey = li.data("item-id");
|
||||||
|
this.actor.deleteTMRRencontre(rencontreKey);
|
||||||
|
});
|
||||||
|
|
||||||
// Delete Inventory Item
|
// Delete Inventory Item
|
||||||
html.find('.item-delete').click(ev => {
|
html.find('.item-delete').click(ev => {
|
||||||
@ -280,6 +302,36 @@ export class RdDActorSheet extends ActorSheet {
|
|||||||
let meditationId = li.data('item-id');
|
let meditationId = li.data('item-id');
|
||||||
this.actor.rollMeditation(meditationId);
|
this.actor.rollMeditation(meditationId);
|
||||||
});
|
});
|
||||||
|
html.find('.chant-label a').click((event) => {
|
||||||
|
const li = $(event.currentTarget).parents(".item");
|
||||||
|
let chantId = li.data('item-id');
|
||||||
|
this.actor.rollChant(chantId);
|
||||||
|
});
|
||||||
|
html.find('.danse-label a').click((event) => {
|
||||||
|
const li = $(event.currentTarget).parents(".item");
|
||||||
|
let danseId = li.data('item-id');
|
||||||
|
this.actor.rollDanse(danseId);
|
||||||
|
});
|
||||||
|
html.find('.musique-label a').click((event) => {
|
||||||
|
const li = $(event.currentTarget).parents(".item");
|
||||||
|
let musiqueId = li.data('item-id');
|
||||||
|
this.actor.rollMusique(musiqueId);
|
||||||
|
});
|
||||||
|
html.find('.oeuvre-label a').click((event) => {
|
||||||
|
const li = $(event.currentTarget).parents(".item");
|
||||||
|
let oeuvreId = li.data('item-id');
|
||||||
|
this.actor.rollOeuvre(oeuvreId);
|
||||||
|
});
|
||||||
|
html.find('.jeu-label a').click((event) => {
|
||||||
|
const li = $(event.currentTarget).parents(".item");
|
||||||
|
let jeuId = li.data('item-id');
|
||||||
|
this.actor.rollJeu(jeuId);
|
||||||
|
});
|
||||||
|
html.find('.recettecuisine-label a').click((event) => {
|
||||||
|
const li = $(event.currentTarget).parents(".item");
|
||||||
|
let recetteId = li.data('item-id');
|
||||||
|
this.actor.rollRecetteCuisine(recetteId);
|
||||||
|
});
|
||||||
html.find('.subacteur-label a').click((event) => {
|
html.find('.subacteur-label a').click((event) => {
|
||||||
const li = $(event.currentTarget).parents(".item");
|
const li = $(event.currentTarget).parents(".item");
|
||||||
let actorId = li.data('actor-id');
|
let actorId = li.data('actor-id');
|
||||||
@ -306,7 +358,7 @@ export class RdDActorSheet extends ActorSheet {
|
|||||||
if (combatant) {
|
if (combatant) {
|
||||||
let armeName = event.currentTarget.attributes['data-arme-name'].value;
|
let armeName = event.currentTarget.attributes['data-arme-name'].value;
|
||||||
let arme = this.armesList.find(a => a.name == armeName);
|
let arme = this.armesList.find(a => a.name == armeName);
|
||||||
RdDUtility.rollInitiativeCompetence(combatant._id, arme);
|
RdDCombatManager.rollInitiativeCompetence(combatant._id, arme);
|
||||||
} else {
|
} else {
|
||||||
ui.notifications.info("Impossible de lancer l'initiative sans être dans un combat.");
|
ui.notifications.info("Impossible de lancer l'initiative sans être dans un combat.");
|
||||||
}
|
}
|
||||||
@ -384,6 +436,11 @@ export class RdDActorSheet extends ActorSheet {
|
|||||||
let compName = event.currentTarget.attributes.compname.value;
|
let compName = event.currentTarget.attributes.compname.value;
|
||||||
this.actor.updateCompetenceXP(compName, parseInt(event.target.value));
|
this.actor.updateCompetenceXP(compName, parseInt(event.target.value));
|
||||||
});
|
});
|
||||||
|
// On competence xp change
|
||||||
|
html.find('.competence-xp-sort').change((event) => {
|
||||||
|
let compName = event.currentTarget.attributes.compname.value;
|
||||||
|
this.actor.updateCompetenceXPSort(compName, parseInt(event.target.value));
|
||||||
|
});
|
||||||
// On competence archetype change
|
// On competence archetype change
|
||||||
html.find('.competence-archetype').change((event) => {
|
html.find('.competence-archetype').change((event) => {
|
||||||
let compName = event.currentTarget.attributes.compname.value;
|
let compName = event.currentTarget.attributes.compname.value;
|
||||||
@ -396,10 +453,6 @@ export class RdDActorSheet extends ActorSheet {
|
|||||||
this.options.editCaracComp = !this.options.editCaracComp;
|
this.options.editCaracComp = !this.options.editCaracComp;
|
||||||
this.render(true);
|
this.render(true);
|
||||||
});
|
});
|
||||||
html.find('#show-hide-competences').click((event) => {
|
|
||||||
this.options.showCompNiveauBase = !this.options.showCompNiveauBase;
|
|
||||||
this.render(true);
|
|
||||||
});
|
|
||||||
html.find('#show-hide-archetype').click((event) => {
|
html.find('#show-hide-archetype').click((event) => {
|
||||||
this.options.montrerArchetype = !this.options.montrerArchetype;
|
this.options.montrerArchetype = !this.options.montrerArchetype;
|
||||||
this.render(true);
|
this.render(true);
|
||||||
@ -433,7 +486,7 @@ export class RdDActorSheet extends ActorSheet {
|
|||||||
this.actor.setEthylisme(parseInt(event.target.value));
|
this.actor.setEthylisme(parseInt(event.target.value));
|
||||||
});
|
});
|
||||||
html.find('#stress-test').click((event) => {
|
html.find('#stress-test').click((event) => {
|
||||||
this.actor.stressTest();
|
this.actor.transformerStress();
|
||||||
this.render(true);
|
this.render(true);
|
||||||
});
|
});
|
||||||
html.find('#moral-malheureux').click((event) => {
|
html.find('#moral-malheureux').click((event) => {
|
||||||
@ -457,6 +510,10 @@ export class RdDActorSheet extends ActorSheet {
|
|||||||
this.actor.jetVie();
|
this.actor.jetVie();
|
||||||
this.render(true);
|
this.render(true);
|
||||||
});
|
});
|
||||||
|
html.find('#jet-endurance').click((event) => {
|
||||||
|
this.actor.jetEndurance();
|
||||||
|
this.render(true);
|
||||||
|
});
|
||||||
|
|
||||||
html.find('.monnaie-plus').click((event) => {
|
html.find('.monnaie-plus').click((event) => {
|
||||||
const li = $(event.currentTarget).parents(".item");
|
const li = $(event.currentTarget).parents(".item");
|
||||||
|
@ -5,7 +5,7 @@
|
|||||||
|
|
||||||
import { RdDUtility } from "./rdd-utility.js";
|
import { RdDUtility } from "./rdd-utility.js";
|
||||||
import { HtmlUtility } from "./html-utility.js";
|
import { HtmlUtility } from "./html-utility.js";
|
||||||
import { RdDItem } from "./item.js";
|
import { Misc } from "./misc.js";
|
||||||
|
|
||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
export class RdDActorVehiculeSheet extends ActorSheet {
|
export class RdDActorVehiculeSheet extends ActorSheet {
|
||||||
@ -36,7 +36,7 @@ export class RdDActorVehiculeSheet extends ActorSheet {
|
|||||||
getData() {
|
getData() {
|
||||||
let data = super.getData();
|
let data = super.getData();
|
||||||
|
|
||||||
data.itemsByType = RdDItem.buildItemsClassification(data.items);
|
data.itemsByType = Misc.classify(data.items);
|
||||||
|
|
||||||
RdDUtility.filterItemsPerTypeForSheet(data);
|
RdDUtility.filterItemsPerTypeForSheet(data);
|
||||||
RdDUtility.buildArbreDeConteneur(this, data);
|
RdDUtility.buildArbreDeConteneur(this, data);
|
||||||
|
1018
module/actor.js
@ -4,12 +4,14 @@
|
|||||||
*/
|
*/
|
||||||
export class ChatUtility {
|
export class ChatUtility {
|
||||||
|
|
||||||
|
/* -------------------------------------------- */
|
||||||
static onSocketMessage(sockmsg) {
|
static onSocketMessage(sockmsg) {
|
||||||
switch (sockmsg.msg) {
|
switch (sockmsg.msg) {
|
||||||
case "msg_delete_chat_message": return ChatUtility.onRemoveMessages(sockmsg.part, sockmsg.gmId);
|
case "msg_delete_chat_message": return ChatUtility.onRemoveMessages(sockmsg.part, sockmsg.gmId);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* -------------------------------------------- */
|
||||||
static onRemoveMessages(part, gmId) {
|
static onRemoveMessages(part, gmId) {
|
||||||
if (game.user._id == gmId) {
|
if (game.user._id == gmId) {
|
||||||
const toDelete = game.messages.filter(it => it.data.content.includes(part));
|
const toDelete = game.messages.filter(it => it.data.content.includes(part));
|
||||||
|
@ -6,13 +6,66 @@ const articlesApostrophes = {
|
|||||||
}
|
}
|
||||||
export class Grammar {
|
export class Grammar {
|
||||||
|
|
||||||
|
/* -------------------------------------------- */
|
||||||
static apostrophe(article, word) {
|
static apostrophe(article, word) {
|
||||||
if (articlesApostrophes[article] && Grammar.startsWithVoyel(word)) {
|
if (articlesApostrophes[article] && Grammar.startsWithVoyel(word)) {
|
||||||
return articlesApostrophes[article] + word
|
return articlesApostrophes[article] + word
|
||||||
}
|
}
|
||||||
return article + ' ' + word;
|
return article + ' ' + word;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* -------------------------------------------- */
|
||||||
static startsWithVoyel(word) {
|
static startsWithVoyel(word) {
|
||||||
return word.match(/^[aeiouy]/i)
|
return word.match(/^[aeiouy]/i)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* -------------------------------------------- */
|
||||||
|
static toLowerCaseNoAccent(words) {
|
||||||
|
return words?.toLowerCase().normalize("NFD").replace(/[\u0300-\u036f]/g, "") ?? words;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* -------------------------------------------- */
|
||||||
|
static articleDetermine(genre) {
|
||||||
|
switch (toLowerCaseNoAccent(genre)) {
|
||||||
|
case 'f': case 'feminin': return 'la';
|
||||||
|
case 'p': case 'mp': case 'fp': case 'pluriel': return 'les';
|
||||||
|
default:
|
||||||
|
case 'm': case 'masculin': return 'le';
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/* -------------------------------------------- */
|
||||||
|
static articleIndétermine(genre) {
|
||||||
|
switch (toLowerCaseNoAccent(genre)) {
|
||||||
|
case 'f': case 'feminin': return 'une';
|
||||||
|
case 'p': case 'fp': case 'mp': case 'pluriel': return 'des';
|
||||||
|
case 'n': case 'neutre': return 'du'
|
||||||
|
default:
|
||||||
|
case 'm': case 'masculin': return 'un';
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/* -------------------------------------------- */
|
||||||
|
/**
|
||||||
|
* renvoie un des mots en fonction du genre:
|
||||||
|
*
|
||||||
|
* - masculin/neutre/m/n : mots[0]
|
||||||
|
* - feminin/f : mots[1]
|
||||||
|
* - pluriel/mp/p : mots[2]
|
||||||
|
* - fp : mots[3]
|
||||||
|
*
|
||||||
|
* @param {*} genre
|
||||||
|
* @param {...any} mots
|
||||||
|
*/
|
||||||
|
static accord(genre, ...mots) {
|
||||||
|
switch (toLowerCaseNoAccent(genre)) {
|
||||||
|
default:
|
||||||
|
case 'n': case 'neutre':
|
||||||
|
case 'm': case 'masculin': return mots[0];
|
||||||
|
case 'f': case 'feminin': return mots[1];
|
||||||
|
case 'p': case 'mp': case 'pluriel': return mots[2]
|
||||||
|
case 'fp': return mots[3];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
@ -144,6 +144,9 @@ export class RdDItemArme extends Item {
|
|||||||
return arme;
|
return arme;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static isArmeUtilisable(item) {
|
||||||
|
return item.type == 'arme' && (item.data.resistance > 0 || item.data.portee_courte>0);
|
||||||
|
}
|
||||||
|
|
||||||
static mainsNues(actorData={}) {
|
static mainsNues(actorData={}) {
|
||||||
const mainsNues = {
|
const mainsNues = {
|
||||||
|
@ -59,10 +59,12 @@ export class RdDItemCompetence extends Item {
|
|||||||
static computeCompetenceXPCost(competence) {
|
static computeCompetenceXPCost(competence) {
|
||||||
let xp = RdDItemCompetence.getDeltaXp(competence.data.base, competence.data.niveau ?? competence.data.base);
|
let xp = RdDItemCompetence.getDeltaXp(competence.data.base, competence.data.niveau ?? competence.data.base);
|
||||||
xp += competence.data.xp ?? 0;
|
xp += competence.data.xp ?? 0;
|
||||||
|
if ( competence.name.includes('Thanatos') ) xp *= 2; /// Thanatos compte double !
|
||||||
xp += competence.data.xp_sort ?? 0;
|
xp += competence.data.xp_sort ?? 0;
|
||||||
return xp;
|
return xp;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* -------------------------------------------- */
|
||||||
static computeEconomieCompetenceTroncXP(competences) {
|
static computeEconomieCompetenceTroncXP(competences) {
|
||||||
let economie = 0;
|
let economie = 0;
|
||||||
for (let troncList of competenceTroncs) {
|
for (let troncList of competenceTroncs) {
|
||||||
@ -87,17 +89,20 @@ export class RdDItemCompetence extends Item {
|
|||||||
return RdDItemCompetence.getCompetenceXp(niveau + 1);
|
return RdDItemCompetence.getCompetenceXp(niveau + 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* -------------------------------------------- */
|
||||||
static getCompetenceXp(niveau) {
|
static getCompetenceXp(niveau) {
|
||||||
RdDItemCompetence._valideNiveau(niveau);
|
RdDItemCompetence._valideNiveau(niveau);
|
||||||
return niveau < -10 ? 0 : competence_xp_par_niveau[niveau + 10];
|
return niveau < -10 ? 0 : competence_xp_par_niveau[niveau + 10];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* -------------------------------------------- */
|
||||||
static getDeltaXp(from, to) {
|
static getDeltaXp(from, to) {
|
||||||
RdDItemCompetence._valideNiveau(from);
|
RdDItemCompetence._valideNiveau(from);
|
||||||
RdDItemCompetence._valideNiveau(to);
|
RdDItemCompetence._valideNiveau(to);
|
||||||
return competence_xp_cumul[to] - competence_xp_cumul[from];
|
return competence_xp_cumul[to] - competence_xp_cumul[from];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* -------------------------------------------- */
|
||||||
static _valideNiveau(niveau){
|
static _valideNiveau(niveau){
|
||||||
if (niveau < -11 || niveau > competence_niveau_max) {
|
if (niveau < -11 || niveau > competence_niveau_max) {
|
||||||
console.warn("Niveau en dehors des niveaux de compétences: [-11, " + competence_niveau_max + "]", niveau)
|
console.warn("Niveau en dehors des niveaux de compétences: [-11, " + competence_niveau_max + "]", niveau)
|
||||||
|
@ -1,7 +1,6 @@
|
|||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
export class RdDItemCompetenceCreature extends Item {
|
export class RdDItemCompetenceCreature extends Item {
|
||||||
|
|
||||||
|
|
||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
static setRollDataCreature(rollData) {
|
static setRollDataCreature(rollData) {
|
||||||
rollData.carac = { "carac_creature": { label: rollData.competence.name, value: rollData.competence.data.carac_value } };
|
rollData.carac = { "carac_creature": { label: rollData.competence.name, value: rollData.competence.data.carac_value } };
|
||||||
@ -17,7 +16,7 @@ export class RdDItemCompetenceCreature extends Item {
|
|||||||
|
|
||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
static toArme(item) {
|
static toArme(item) {
|
||||||
if (item.type == 'competencecreature' && item.data.iscombat) {
|
if (RdDItemCompetenceCreature.isCompetenceAttaque(item)) {
|
||||||
let arme = { name: item.name, data: duplicate(item.data) };
|
let arme = { name: item.name, data: duplicate(item.data) };
|
||||||
mergeObject(arme.data,
|
mergeObject(arme.data,
|
||||||
{
|
{
|
||||||
@ -30,8 +29,17 @@ export class RdDItemCompetenceCreature extends Item {
|
|||||||
});
|
});
|
||||||
return arme;
|
return arme;
|
||||||
}
|
}
|
||||||
console.error("RdDItem.toArme(", item, ") : impossible de transformer l'Item en arme");
|
console.error("RdDItemCompetenceCreature.toArme(", item, ") : impossible de transformer l'Item en arme");
|
||||||
return undefined;
|
return undefined;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* -------------------------------------------- */
|
||||||
|
static isCompetenceAttaque(item) {
|
||||||
|
return item.type == 'competencecreature' && item.data.iscombat;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* -------------------------------------------- */
|
||||||
|
static isCompetenceParade(item) {
|
||||||
|
return item.type == 'competencecreature' && item.data.isparade;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -24,7 +24,7 @@ export class RdDItem extends Item {
|
|||||||
`<p>Modifier la quantité?</p>
|
`<p>Modifier la quantité?</p>
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<label> Quantité</label>
|
<label> Quantité</label>
|
||||||
<input name="quantity" type="text" placeholder="Ne rien mettre pour quantité infinie"/>
|
<input name="quantity" type="text" value="1"/>
|
||||||
</div>
|
</div>
|
||||||
<p>Modifier la prix?</p>
|
<p>Modifier la prix?</p>
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
@ -53,7 +53,7 @@ export class RdDItem extends Item {
|
|||||||
dialogResult[0] = -1
|
dialogResult[0] = -1
|
||||||
else if (this.data.data.quantite < dialogResult[0])
|
else if (this.data.data.quantite < dialogResult[0])
|
||||||
{
|
{
|
||||||
dialogResult[0] = this.data.data.quantite
|
dialogResult[0] = this.data.data.quantite;
|
||||||
ui.notifications.notify(`Impossible de poster plus que ce que vous avez. La quantité à été réduite à ${dialogResult[0]}.`)
|
ui.notifications.notify(`Impossible de poster plus que ce que vous avez. La quantité à été réduite à ${dialogResult[0]}.`)
|
||||||
this.update({"data.quantite" : 0})
|
this.update({"data.quantite" : 0})
|
||||||
}
|
}
|
||||||
|
@ -49,7 +49,7 @@ export class RdDItemSheet extends ItemSheet {
|
|||||||
async getData() {
|
async getData() {
|
||||||
let data = super.getData();
|
let data = super.getData();
|
||||||
data.categorieCompetences = RdDUtility.getCategorieCompetences();
|
data.categorieCompetences = RdDUtility.getCategorieCompetences();
|
||||||
if ( data.item.type == 'tache' || data.item.type == 'livre' || data.item.type == 'meditation') {
|
if ( data.item.type == 'tache' || data.item.type == 'livre' || data.item.type == 'meditation' || data.item.type == 'oeuvre') {
|
||||||
data.caracList = duplicate(game.system.model.Actor.personnage.carac);
|
data.caracList = duplicate(game.system.model.Actor.personnage.carac);
|
||||||
data.competences = await RdDUtility.loadCompendiumNames( 'foundryvtt-reve-de-dragon.competences' );
|
data.competences = await RdDUtility.loadCompendiumNames( 'foundryvtt-reve-de-dragon.competences' );
|
||||||
}
|
}
|
||||||
@ -80,6 +80,12 @@ export class RdDItemSheet extends ItemSheet {
|
|||||||
// Select competence categorie
|
// Select competence categorie
|
||||||
html.find("#categorie").on("click", this._onClickSelectCategorie.bind(this) );
|
html.find("#categorie").on("click", this._onClickSelectCategorie.bind(this) );
|
||||||
|
|
||||||
|
html.find('#sheet-competence-xp').change((event) => {
|
||||||
|
if ( this.object.data.type == 'competence') {
|
||||||
|
RdDUtility.checkThanatosXP( this.object.data.name );
|
||||||
|
}
|
||||||
|
} );
|
||||||
|
|
||||||
html.find('#creer-tache-livre').click((event) => {
|
html.find('#creer-tache-livre').click((event) => {
|
||||||
let actorId = event.currentTarget.attributes['data-actor-id'].value;
|
let actorId = event.currentTarget.attributes['data-actor-id'].value;
|
||||||
let actor = game.actors.get( actorId );
|
let actor = game.actors.get( actorId );
|
||||||
|
@ -68,13 +68,13 @@ export class RdDItemSort extends Item {
|
|||||||
let list = [];
|
let list = [];
|
||||||
let caseCheck = {};
|
let caseCheck = {};
|
||||||
for(let i=0; i<formData.bonusValue.length; i++) {
|
for(let i=0; i<formData.bonusValue.length; i++) {
|
||||||
let caseTMR = formData.caseValue[i] || 'A1';
|
let coord = formData.caseValue[i] || 'A1';
|
||||||
caseTMR = caseTMR.toUpperCase();
|
coord = coord.toUpperCase();
|
||||||
if ( TMRUtility.verifyTMRCoord( caseTMR ) ) { // Sanity check
|
if ( TMRUtility.verifyTMRCoord( coord ) ) { // Sanity check
|
||||||
let bonus = formData.bonusValue[i] || 0;
|
let bonus = formData.bonusValue[i] || 0;
|
||||||
if ( bonus > 0 && caseCheck[caseTMR] == undefined ) {
|
if ( bonus > 0 && caseCheck[coord] == undefined ) {
|
||||||
caseCheck[caseTMR] = bonus;
|
caseCheck[coord] = bonus;
|
||||||
list.push( caseTMR+":"+bonus );
|
list.push( coord+":"+bonus );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -86,21 +86,21 @@ export class RdDItemSort extends Item {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
static incrementBonusCase( actor, sort, coordTMR ) {
|
static incrementBonusCase( actor, sort, coord ) {
|
||||||
let bonusCaseList = this.buildBonusCaseList(sort.data.bonuscase, false);
|
let bonusCaseList = this.buildBonusCaseList(sort.data.bonuscase, false);
|
||||||
//console.log("ITEMSORT", sort, bonusCaseList);
|
//console.log("ITEMSORT", sort, bonusCaseList);
|
||||||
|
|
||||||
let found = false;
|
let found = false;
|
||||||
let StringList = [];
|
let StringList = [];
|
||||||
for( let bc of bonusCaseList) {
|
for( let bc of bonusCaseList) {
|
||||||
if (bc.case == coordTMR) { // Case existante
|
if (bc.case == coord) { // Case existante
|
||||||
found = true;
|
found = true;
|
||||||
bc.bonus = Number(bc.bonus) + 1;
|
bc.bonus = Number(bc.bonus) + 1;
|
||||||
}
|
}
|
||||||
StringList.push( bc.case+':'+bc.bonus );
|
StringList.push( bc.case+':'+bc.bonus );
|
||||||
}
|
}
|
||||||
if ( !found) { //Nouvelle case, bonus de 1
|
if ( !found) { //Nouvelle case, bonus de 1
|
||||||
StringList.push(coordTMR+':1');
|
StringList.push(coord+':1');
|
||||||
}
|
}
|
||||||
|
|
||||||
// Sauvegarde/update
|
// Sauvegarde/update
|
||||||
@ -110,10 +110,10 @@ export class RdDItemSort extends Item {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
static getCaseBonus( sort, coordTMR) {
|
static getCaseBonus( sort, coord) {
|
||||||
let bonusCaseList = this.buildBonusCaseList(sort.data.bonuscase, false);
|
let bonusCaseList = this.buildBonusCaseList(sort.data.bonuscase, false);
|
||||||
for( let bc of bonusCaseList) {
|
for( let bc of bonusCaseList) {
|
||||||
if (bc.case == coordTMR) { // Case existante
|
if (bc.case == coord) { // Case existante
|
||||||
return Number(bc.bonus);
|
return Number(bc.bonus);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,28 +0,0 @@
|
|||||||
|
|
||||||
/* -------------------------------------------- */
|
|
||||||
export class RdDItem {
|
|
||||||
|
|
||||||
/* -------------------------------------------- */
|
|
||||||
static buildItemsClassification(items) {
|
|
||||||
return RdDItem.classify(items, it => it.type)
|
|
||||||
}
|
|
||||||
|
|
||||||
static classify(items, classifier = it => it.type, transform = it => it) {
|
|
||||||
let itemsBy = {};
|
|
||||||
RdDItem.classifyInto(itemsBy, items, classifier, transform);
|
|
||||||
return itemsBy;
|
|
||||||
}
|
|
||||||
|
|
||||||
static classifyInto(itemsBy, items, classifier = it => it.type, transform = it => it) {
|
|
||||||
for (const item of items) {
|
|
||||||
const classification = classifier(item);
|
|
||||||
let list = itemsBy[classification];
|
|
||||||
if (!list) {
|
|
||||||
list = [];
|
|
||||||
itemsBy[classification] = list;
|
|
||||||
}
|
|
||||||
list.push(transform(item));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
@ -1,5 +1,4 @@
|
|||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* This class is intended as a placeholder for utility methods unrelated
|
* This class is intended as a placeholder for utility methods unrelated
|
||||||
* to actual classes of the game system or of FoundryVTT
|
* to actual classes of the game system or of FoundryVTT
|
||||||
@ -41,4 +40,31 @@ export class Misc {
|
|||||||
default: return '1/' + diviseur;
|
default: return '1/' + diviseur;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static classify(items, classifier = it => it.type, transform = it => it) {
|
||||||
|
let itemsBy = {};
|
||||||
|
Misc.classifyInto(itemsBy, items, classifier, transform);
|
||||||
|
return itemsBy;
|
||||||
|
}
|
||||||
|
|
||||||
|
static classifyInto(itemsBy, items, classifier = it => it.type, transform = it => it) {
|
||||||
|
for (const item of items) {
|
||||||
|
const classification = classifier(item);
|
||||||
|
let list = itemsBy[classification];
|
||||||
|
if (!list) {
|
||||||
|
list = [];
|
||||||
|
itemsBy[classification] = list;
|
||||||
|
}
|
||||||
|
list.push(transform(item));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
static rollOneOf(array) {
|
||||||
|
return array[new Roll("1d" + array.length).evaluate().total - 1];
|
||||||
|
}
|
||||||
|
|
||||||
|
static distinct(array) {
|
||||||
|
return [...new Set(array)];
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
71
module/poetique.js
Normal file
@ -0,0 +1,71 @@
|
|||||||
|
import { Misc } from "./misc.js"
|
||||||
|
|
||||||
|
const poesieHautReve = [
|
||||||
|
{
|
||||||
|
reference: 'Le Ratier Bretonien',
|
||||||
|
extrait: `Le courant du Fleuve
|
||||||
|
<br>Te domine et te Porte
|
||||||
|
<br>Avant que tu te moeuves
|
||||||
|
<br>Combat le, ou il t'emporte`
|
||||||
|
},
|
||||||
|
{
|
||||||
|
reference: 'Incompatibilité, Charles Beaudelaire',
|
||||||
|
extrait: `Et lorsque par hasard une nuée errante
|
||||||
|
<br>Assombrit dans son vol le lac silencieux,
|
||||||
|
<br>On croirait voir la robe ou l'ombre transparente
|
||||||
|
<br>D'un esprit qui voyage et passe dans les cieux.`
|
||||||
|
},
|
||||||
|
{
|
||||||
|
reference: 'Au fleuve de Loire, Joachim du Bellay',
|
||||||
|
extrait: `Ô de qui la vive course
|
||||||
|
<br>Prend sa bienheureuse source,
|
||||||
|
<br>D’une argentine fontaine,
|
||||||
|
<br>Qui d’une fuite lointaine,
|
||||||
|
<br>Te rends au sein fluctueux
|
||||||
|
<br>De l’Océan monstrueux`
|
||||||
|
},
|
||||||
|
{
|
||||||
|
reference: 'Denis Gerfaud',
|
||||||
|
extrait: `Et l'on peut savoir qui est le maître d'Oniros, c'est le Fleuve de l'Oubli.
|
||||||
|
Et l'on sait qui est le créateur du Fleuve de l'Oubli, c'est Hypnos et Narcos.
|
||||||
|
Mais l'on ne sait pas qui est le maître du Fleuve de l'Oubli,
|
||||||
|
sinon peut-être lui-même, ou peut-être Thanatos` },
|
||||||
|
{
|
||||||
|
reference: 'Denis Gerfaud',
|
||||||
|
extrait: `Narcos est la source du Fleuve de l'Oubli et Hypnos l'embouchure
|
||||||
|
Remonter le Fleuve est la Voie de la Nuit, la Voie du Souvenir.
|
||||||
|
Descendre le Fleuve est la Voie du Jour, la Voie de l'Oubli`
|
||||||
|
},
|
||||||
|
{
|
||||||
|
reference: 'Denis Gerfaud',
|
||||||
|
extrait: `Narcos engendre le fils dont il est la mère à l'heure du Vaisseau,
|
||||||
|
car Oniros s'embarque pour redescendre le Fleuve
|
||||||
|
vers son père Hypnos sur la Voie de l'Oubli`
|
||||||
|
},
|
||||||
|
{
|
||||||
|
reference: 'Denis Gerfaud',
|
||||||
|
extrait: `Hypnos engendre le fils dont il est la mère à l'heure du Serpent, car
|
||||||
|
tel les serpents, Oniros commence à remonter le Fleuve
|
||||||
|
sur le Voie du Souvenir vers son père Narcos`
|
||||||
|
},
|
||||||
|
{
|
||||||
|
reference: 'Denis Gerfaud',
|
||||||
|
extrait: `Ainsi se cuccèdent les Jours et les Ages.
|
||||||
|
<br>Les jours des Dragons sont les Ages des Hommes.`
|
||||||
|
},
|
||||||
|
{
|
||||||
|
reference: 'Denis Gerfaud',
|
||||||
|
extrait: `Ainsi parlent les sages:
|
||||||
|
«Les Dragons sont créateurs de leurs rêves, mais ils ne sont pas créateurs d'Oniros
|
||||||
|
Les Dragons ne sont pas les maîtres de leurs rêvezs, car ils ne sont pas maîtres d'Oniros.
|
||||||
|
Nul ne sait qui est le créateur des Dragons, ni qui est leur maître.
|
||||||
|
Mais l'on peut supposer qui est le maître du Rêve des Dragons, c'est Oniros»`
|
||||||
|
},
|
||||||
|
]
|
||||||
|
|
||||||
|
export class Poetique {
|
||||||
|
static getExtrait(){
|
||||||
|
return Misc.rollOneOf(poesieHautReve);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
@ -1,4 +1,3 @@
|
|||||||
import { Misc } from "./misc.js";
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Extend the base Dialog entity by defining a custom window to perform roll.
|
* Extend the base Dialog entity by defining a custom window to perform roll.
|
||||||
|
@ -1,7 +1,5 @@
|
|||||||
import { RdDItemCompetence } from "./item-competence.js";
|
import { RdDItemCompetence } from "./item-competence.js";
|
||||||
import { Misc } from "./misc.js";
|
|
||||||
import { RdDCalendrier } from "./rdd-calendrier.js";
|
|
||||||
import { RdDUtility } from "./rdd-utility.js";
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Extend the base Dialog entity by defining a custom window to perform roll.
|
* Extend the base Dialog entity by defining a custom window to perform roll.
|
||||||
|
@ -32,7 +32,7 @@ export class RdDBonus {
|
|||||||
let dmg = { total: 0 };
|
let dmg = { total: 0 };
|
||||||
if (rollData.arme && rollData.arme.name.toLowerCase() == "esquive") {
|
if (rollData.arme && rollData.arme.name.toLowerCase() == "esquive") {
|
||||||
// Specific case management
|
// Specific case management
|
||||||
ui.notifications.warn("Calcul de bonus dégats sur eswquive");
|
ui.notifications.warn("Calcul de bonus dégats sur esquive !");
|
||||||
} else {
|
} else {
|
||||||
dmg.dmgArme = RdDBonus._dmgArme(rollData);
|
dmg.dmgArme = RdDBonus._dmgArme(rollData);
|
||||||
dmg.penetration = RdDBonus._peneration(rollData);
|
dmg.penetration = RdDBonus._peneration(rollData);
|
||||||
@ -74,9 +74,15 @@ export class RdDBonus {
|
|||||||
|
|
||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
static _dmgArme(rollData) {
|
static _dmgArme(rollData) {
|
||||||
return rollData.arme == undefined ? 0 : (rollData.arme.data.dommagesReels ?? Number(rollData.arme.data.dommages ?? 0));
|
if ( rollData.arme) {
|
||||||
|
let dmgBase = rollData.arme.data.dommagesReels ?? Number(rollData.arme.data.dommages ?? 0);
|
||||||
|
//Le bonus dégats magiques ne peut pas faire dépasser le bonus de l'arme (cf p.278)
|
||||||
|
return dmgBase + Math.min(dmgBase, rollData.arme.data.magique ? rollData.arme.data.ecaille_efficacite : 0);
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* -------------------------------------------- */
|
||||||
static _peneration(rollData) {
|
static _peneration(rollData) {
|
||||||
return parseInt(rollData.arme?.data.penetration ?? 0);
|
return parseInt(rollData.arme?.data.penetration ?? 0);
|
||||||
}
|
}
|
||||||
|
@ -4,6 +4,7 @@ import { RdDAstrologieEditeur } from "./rdd-astrologie-editeur.js";
|
|||||||
import { HtmlUtility } from "./html-utility.js";
|
import { HtmlUtility } from "./html-utility.js";
|
||||||
import { RdDResolutionTable } from "./rdd-resolution-table.js";
|
import { RdDResolutionTable } from "./rdd-resolution-table.js";
|
||||||
import { RdDUtility } from "./rdd-utility.js";
|
import { RdDUtility } from "./rdd-utility.js";
|
||||||
|
import { Grammar } from "./grammar.js";
|
||||||
|
|
||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
const dossierIconesHeures = 'systems/foundryvtt-reve-de-dragon/icons/heures/'
|
const dossierIconesHeures = 'systems/foundryvtt-reve-de-dragon/icons/heures/'
|
||||||
@ -78,7 +79,8 @@ export class RdDCalendrier extends Application {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
getDateFromIndex( index ) {
|
getDateFromIndex( index = undefined ) {
|
||||||
|
if ( !index) index = this.getCurrentDayIndex();
|
||||||
let month = Math.floor(index / 28);
|
let month = Math.floor(index / 28);
|
||||||
let day = (index - (month*28)) + 1;
|
let day = (index - (month*28)) + 1;
|
||||||
return day+" "+heuresList[month];
|
return day+" "+heuresList[month];
|
||||||
@ -116,45 +118,33 @@ export class RdDCalendrier extends Application {
|
|||||||
|
|
||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
getCurrentNombreAstral() {
|
getCurrentNombreAstral() {
|
||||||
let index = this.getCurrentDayIndex();
|
let indexDate = this.getCurrentDayIndex();
|
||||||
return this.getNombreAstral(index);
|
return this.getNombreAstral(indexDate);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
getNombreAstral( index ) {
|
getNombreAstral( indexDate ) {
|
||||||
const liste = this.listeNombreAstral || this._loadListNombreAstral();
|
const liste = this.listeNombreAstral ?? this._loadListNombreAstral();
|
||||||
let astralData = liste.find( (nombreAstral, i) => nombreAstral.index == index );
|
let astralData = liste.find( (nombreAstral, i) => nombreAstral.index == indexDate );
|
||||||
if ( astralData == undefined ) {
|
if (! astralData?.nombreAstral ) {
|
||||||
this.rebuildListeNombreAstral();
|
this.rebuildListeNombreAstral();
|
||||||
astralData = liste.find( (nombreAstral, i) => nombreAstral.index == index );
|
astralData = liste.find( (nombreAstral, i) => nombreAstral.index == indexDate );
|
||||||
}
|
}
|
||||||
return astralData.nombreAstral || "N/A";
|
return astralData?.nombreAstral ?? "N/A";
|
||||||
}
|
}
|
||||||
|
|
||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
rebuildListeNombreAstral() {
|
rebuildListeNombreAstral() {
|
||||||
// Auto-create if needed
|
|
||||||
if ( this.listeNombreAstral == undefined)
|
|
||||||
this.listeNombreAstral = [];
|
|
||||||
|
|
||||||
// Nettoyage des nombres astraux anciens
|
|
||||||
let jourCourant = this.getCurrentDayIndex();
|
let jourCourant = this.getCurrentDayIndex();
|
||||||
let jourFin = jourCourant + 12;
|
let jourFin = jourCourant + 12;
|
||||||
let newList = this.listeNombreAstral.filter( (nombreAstral, i) => nombreAstral && nombreAstral.index >= jourCourant && nombreAstral.index < jourFin);
|
let newList = [0,1,2,3,4,5,6,7,8,9,10,11].map( i => this.ajouterNombreAstral(jourCourant + i));
|
||||||
//console.log("LSTES", this.listeNombreAstral, newList );
|
if (this.listeNombreAstral) {
|
||||||
|
for (const na of this.listeNombreAstral) {
|
||||||
let lastDay = jourCourant;
|
if (na && na.index >= jourCourant && na.index < jourFin) {
|
||||||
for (let i=0; i < MAX_NOMBRE_ASTRAL; i++) {
|
newList[na.index - jourCourant] = na;
|
||||||
let nombreAstral = newList[i];
|
}
|
||||||
if ( nombreAstral ) {
|
|
||||||
lastDay = nombreAstral.index + 1;
|
|
||||||
} else {
|
|
||||||
newList.push( this.ajouterNombreAstral( lastDay) );
|
|
||||||
lastDay += 1;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
this.listeNombreAstral = newList;
|
|
||||||
|
|
||||||
game.settings.set("foundryvtt-reve-de-dragon", "liste-nombre-astral", this.listeNombreAstral );
|
game.settings.set("foundryvtt-reve-de-dragon", "liste-nombre-astral", this.listeNombreAstral );
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -274,8 +264,9 @@ export class RdDCalendrier extends Application {
|
|||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
getAjustementAstrologique(heureNaissance, name='inconnu')
|
getAjustementAstrologique(heureNaissance, name='inconnu')
|
||||||
{
|
{
|
||||||
if (heureNaissance && heuresDef[heureNaissance]) {
|
let heure = Grammar.toLowerCaseNoAccent(heureNaissance);
|
||||||
let hn = heuresDef[heureNaissance].heure;
|
if (heure && heuresDef[heure]) {
|
||||||
|
let hn = heuresDef[heure].heure;
|
||||||
let chiffreAstral = this.getCurrentNombreAstral();
|
let chiffreAstral = this.getCurrentNombreAstral();
|
||||||
let heureCourante = this.calendrier.heureRdD;
|
let heureCourante = this.calendrier.heureRdD;
|
||||||
let ecartChance = (hn + chiffreAstral - heureCourante)%12;
|
let ecartChance = (hn + chiffreAstral - heureCourante)%12;
|
||||||
|
@ -1,3 +1,5 @@
|
|||||||
|
import { Grammar } from "./grammar.js";
|
||||||
|
|
||||||
export class RdDCarac {
|
export class RdDCarac {
|
||||||
|
|
||||||
static isAgiliteOuDerivee(selectedCarac) {
|
static isAgiliteOuDerivee(selectedCarac) {
|
||||||
@ -25,6 +27,6 @@ export class RdDCarac {
|
|||||||
* ainsi que de Perception active et volontaire.
|
* ainsi que de Perception active et volontaire.
|
||||||
*/
|
*/
|
||||||
static isActionPhysique(selectedCarac) {
|
static isActionPhysique(selectedCarac) {
|
||||||
return selectedCarac?.label.match(/(Apparence|Force|Agilité|Dextérité|Vue|Ouïe|Odorat-Goût|Empathie|Mêlée|Tir|Lancer|Dérobée)/);
|
return Grammar.toLowerCaseNoAccent(selectedCarac?.label).match(/(apparence|force|agilite|dexterite|vue|ouie|odorat|empathie|melee|tir|lancer|derobee)/);
|
||||||
}
|
}
|
||||||
}
|
}
|