Compare commits

...

9 Commits

Author SHA1 Message Date
e34449631c Optimisation fenêtre de jets
La fenêtre de jet pour les attaques à distance prenait
trop de hauteur sur petit écran.

La difficulté était mal visualisée par les joueurs (et confondue
avec les conditions)

Le d100 de la zone "tricher" était un peu trop gros

Les ajustements sont organisés plus logiquement: difficulté,
conditions, ajustements à cocher
2026-06-20 18:38:48 +02:00
f8a20b90ff Génération aléatoire d'archétype 2026-06-20 18:38:48 +02:00
749eb5ee13 upgrade publish action 2026-06-20 18:38:47 +02:00
17cb8a2e06 13.0.45
All checks were successful
Release Creation / build (release) Successful in 1m23s
2026-06-16 23:02:39 +02:00
933256da66 Nouvelle correction du manifest
Some checks failed
Release Creation / build (release) Has been cancelled
Le manifest versionné, téléchargé dans le système, pointe maintenant
sur le manifest latest.

Le lien manifest foundry est celui du manifest de la version.
2026-06-16 22:59:36 +02:00
a58b171fb4 13.0.44 - Le dépôt d'Illisys
All checks were successful
Release Creation / build (release) Successful in 1m5s
- le manifest pointe maintenant toujours vers la dernière version
- changement des liens dans le system.json
2026-06-15 21:26:03 +02:00
2eac969261 Update system.json
even if not necessary, it was referencing previous repository
2026-06-14 22:41:04 +02:00
fabres
e6612fe024 Make default release as latest 2026-06-14 21:57:55 +02:00
fabres
18b9e4c7a8 Updte gitignore 2026-06-14 21:55:48 +02:00
20 changed files with 285 additions and 89 deletions

View File

@@ -32,7 +32,7 @@ jobs:
env:
version: ${{steps.get_version.outputs.version-without-v}}
url: https://gitea.scriptarium.org/${{gitea.repository}}
manifest: https://gitea.scriptarium.org/${{gitea.repository}}/releases/download/${{github.event.release.tag_name}}/system.json
manifest: "https://gitea.scriptarium.org/Scriptarium/foundryvtt-reve-de-dragon/releases/download/latest/system.json"
download: https://gitea.scriptarium.org/${{gitea.repository}}/releases/download/${{github.event.release.tag_name}}/rddsystem.zip
- name: Set up Node.js
@@ -64,12 +64,12 @@ jobs:
api_key: "${{secrets.RDD_PUBLISH_RELEASE}}"
- name: Publish to Foundry server
uses: djlechuck/foundryvtt-publish-package-action@v1
uses: djlechuck/foundryvtt-publish-package-action@v1.1.0
with:
token: ${{ secrets.RDD_PUBLISH_RELEASE_FOUNDRY }}
id: "foundryvtt-reve-de-dragon"
version: ${{github.event.release.tag_name}}
manifest: "https://gitea.scriptarium.org/${{gitea.repository}}/releases/download/${{github.event.release.tag_name}}/system.json"
manifest: https://gitea.scriptarium.org/${{gitea.repository}}/releases/download/${{github.event.release.tag_name}}/system.json
notes: "https://gitea.scriptarium.org/Scriptarium/foundryvtt-reve-de-dragon/raw/branch/v13/changelog.md"
compatibility-minimum: "13"
compatibility-verified: "13"

1
.gitignore vendored
View File

@@ -12,3 +12,4 @@ todo.md
/packs/*/CURRENT
/packs/*/LOG
/packs/*/LOCK
.github/

View File

@@ -1 +1,87 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512" style="height: 256px; width: 256px;"><defs><filter id="shadow-1" height="300%" width="300%" x="-100%" y="-100%"><feFlood flood-color="rgba(201, 201, 201, 1)" result="flood"></feFlood><feComposite in="flood" in2="SourceGraphic" operator="atop" result="composite"></feComposite>0<feOffset dx="230" dy="300" result="offset"></feOffset><feComposite in="SourceGraphic" in2="offset" operator="over"></feComposite></filter></defs><g class="" transform="translate(-100,0)" style=""><path d="m375.483 251.243-109.98 51.138.213 183.381L477.01 266.346l-86.993-21.81zm-12.736 108.626-5.947 14.699-48.604-8.955 5.007-12.832a141.306 141.306 0 0 0 13.51-11.358 167.184 167.184 0 0 0 16.566-17.517 170.478 170.478 0 0 0 12.606-17.958 115.607 115.607 0 0 0 9.514-17.97l14.068 2.51q-9.37 22.334-30.361 44.43-13.296 13.64-20.645 18.636zM121.603 244.334l-84.71 21.763L246.474 486V302.38l-109.946-51.137zm19.147 50.852a28.72 28.72 0 0 1 24.273 6.802 53.052 53.052 0 0 1 11.226 14.188l-13.081 2.676a28.542 28.542 0 0 0-5.388-7.374q-5.185-4.876-11.262-3.853l-.487.095a6.458 6.458 0 0 0-5.162 4.448c-.856 2.378-.238 5.554 1.796 9.371q4.08 7.6 10.81 9.027a23.785 23.785 0 0 0 8.563-.203l1.867-.344 5.791 10.822q-6.398 1.427-8.23 3.282-3.21 3.14.429 9.93a17.042 17.042 0 0 0 6.089 6.696 10.406 10.406 0 0 0 7.385 1.534l.416-.083q4.757-.964 5.079-4.757c.261-2.57-.655-5.744-2.748-9.514l12.38-2.545a49.247 49.247 0 0 1 4.103 11.226 19.956 19.956 0 0 1-.642 9.383 11.702 11.702 0 0 1-3.96 5.411 19.575 19.575 0 0 1-8.027 3.235l-1.19.214a27.971 27.971 0 0 1-17.494-2.7 32.193 32.193 0 0 1-14.128-14.092q-3.627-6.79-2.604-12.19a8.396 8.396 0 0 1 2.521-4.947h-.071q-1.844.31-7.04-2.497a32.11 32.11 0 0 1-12.916-13.593q-5.245-9.764-3.282-18.398 1.962-8.634 13.676-11zM27.19 248.865l108.78-116.309a7.135 7.135 0 0 1 1.427 0h.154q3.14.345 2.842 3.71a19.36 19.36 0 0 1-3.294 8.1 39.376 39.376 0 0 1-9.728 10.405q-3.912 2.938-15.044 9.514-12.796 7.505-19.55 14.77a92.535 92.535 0 0 0-11.513 14.486l32.907 3.758 8.182-12.963-20.967-2.378a36.415 36.415 0 0 1 4.757-3.83q2.379-1.605 8.444-5.125l6.422-3.747a92.975 92.975 0 0 0 12.903-8.776 61.472 61.472 0 0 0 12.51-14.414q6.84-10.846 6.494-17.957c-.19-3.949-2.105-6.434-5.684-7.505l79.798-85.161-102.097 179.576-5.708 10.06zm367.238-71.974q-3.817-5.458-3.758-8.515c0-2.033 1.19-3.199 3.568-3.448h.57a11.892 11.892 0 0 1 6.91 2.247 29.85 29.85 0 0 1 7.837 8.051q3.687 5.28 3.71 8.397c0 2.093-1.188 3.258-3.496 3.567h-.594a11.75 11.75 0 0 1-6.957-2.378 29.79 29.79 0 0 1-7.79-7.885zm-109.41-141.52 83.948 89.634h-1.189c-.38 0-.975 0-1.463.107q-7.825.892-8.324 6.862-.5 5.97 5.03 13.747a53.778 53.778 0 0 0 6.375 7.374 37.901 37.901 0 0 0 10.144 6.897q-2.117 2.89-.702 7.98a37.283 37.283 0 0 0 5.613 11.096 55.122 55.122 0 0 0 15.223 14.806q8.098 5.268 16.066 4.935.81 0 1.618-.13 8.776-.988 9.228-7.873a16.114 16.114 0 0 0-.463-4.853l58.689 62.686-91.572-22.941-6.1-10.703zm98.22 104.927 2.45 2.617c.451.57.903 1.189 1.355 1.784 1.808 2.592 2.723 4.757 2.723 6.529 0 1.771-1.034 2.782-3.127 3.02h-.512a10.346 10.346 0 0 1-6.077-1.95 22.596 22.596 0 0 1-6.184-6.137c-1.974-2.83-2.937-5.102-2.878-6.814.06-1.713 1.118-2.7 3.187-2.937h.524a10.263 10.263 0 0 1 6.005 1.879 19.147 19.147 0 0 1 2.533 2.01zM255.987 26 137.456 231.026l118.532 55.05 118.604-55.05zm-1.19 208.463q-17.529 0-24.58-12.273-7.053-12.273-7.053-34.988 0-22.714 7.052-35.047 7.052-12.332 24.582-12.344 17.53 0 24.582 12.332 7.052 12.333 7.052 35.047 0 22.715-7.052 34.988-7.053 12.273-24.582 12.285zm10.538-71.807q2.497 7.968 2.497 24.546 0 15.817-2.497 24.201-2.498 8.384-10.537 8.325-8.04 0-10.632-8.325-2.593-8.324-2.593-24.2 0-16.579 2.593-24.547t10.632-7.968q8.015-.012 10.513 7.956z" fill="#fff" fill-opacity="1" filter="url(#shadow-1)" transform="translate(128, 128) scale(0.5, 0.5) rotate(-30, 256, 256) skewX(0) skewY(0)"></path></g></svg>
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
viewBox="0 0 649.20972 359.75745"
version="1.1"
id="svg6"
sodipodi:docname="_d100.svg"
width="649.20972"
height="359.75745"
inkscape:version="1.0.1 (3bc2e813f5, 2020-09-07)">
<metadata
id="metadata12">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title></dc:title>
</cc:Work>
</rdf:RDF>
</metadata>
<defs
id="defs10" />
<sodipodi:namedview
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1"
objecttolerance="10"
gridtolerance="10"
guidetolerance="10"
inkscape:pageopacity="0"
inkscape:pageshadow="2"
inkscape:window-width="2202"
inkscape:window-height="1379"
id="namedview8"
showgrid="true"
fit-margin-top="0"
fit-margin-left="0"
fit-margin-right="0"
fit-margin-bottom="0"
inkscape:zoom="1.4355469"
inkscape:cx="366.48667"
inkscape:cy="102.06012"
inkscape:window-x="0"
inkscape:window-y="0"
inkscape:window-maximized="0"
inkscape:current-layer="svg6">
<inkscape:grid
type="xygrid"
id="grid837"
originx="110.48667"
originy="-153.93988" />
</sodipodi:namedview>
<g
class=""
id="g4"
style="fill:#ffffff"
transform="translate(-94.621782,-91.536548)">
<path
d="m 375.483,251.243 -109.98,51.138 0.213,183.381 211.294,-219.416 -86.993,-21.81 z m -12.736,108.626 -5.947,14.699 -48.604,-8.955 5.007,-12.832 a 141.306,141.306 0 0 0 13.51,-11.358 167.184,167.184 0 0 0 16.566,-17.517 170.478,170.478 0 0 0 12.606,-17.958 115.607,115.607 0 0 0 9.514,-17.97 l 14.068,2.51 q -9.37,22.334 -30.361,44.43 -13.296,13.64 -20.645,18.636 z M 121.603,244.334 36.893,266.097 246.474,486 V 302.38 L 136.528,251.243 Z m 19.147,50.852 a 28.72,28.72 0 0 1 24.273,6.802 53.052,53.052 0 0 1 11.226,14.188 l -13.081,2.676 a 28.542,28.542 0 0 0 -5.388,-7.374 q -5.185,-4.876 -11.262,-3.853 l -0.487,0.095 a 6.458,6.458 0 0 0 -5.162,4.448 c -0.856,2.378 -0.238,5.554 1.796,9.371 q 4.08,7.6 10.81,9.027 a 23.785,23.785 0 0 0 8.563,-0.203 l 1.867,-0.344 5.791,10.822 q -6.398,1.427 -8.23,3.282 -3.21,3.14 0.429,9.93 a 17.042,17.042 0 0 0 6.089,6.696 10.406,10.406 0 0 0 7.385,1.534 l 0.416,-0.083 q 4.757,-0.964 5.079,-4.757 c 0.261,-2.57 -0.655,-5.744 -2.748,-9.514 l 12.38,-2.545 a 49.247,49.247 0 0 1 4.103,11.226 19.956,19.956 0 0 1 -0.642,9.383 11.702,11.702 0 0 1 -3.96,5.411 19.575,19.575 0 0 1 -8.027,3.235 l -1.19,0.214 a 27.971,27.971 0 0 1 -17.494,-2.7 32.193,32.193 0 0 1 -14.128,-14.092 q -3.627,-6.79 -2.604,-12.19 a 8.396,8.396 0 0 1 2.521,-4.947 h -0.071 q -1.844,0.31 -7.04,-2.497 a 32.11,32.11 0 0 1 -12.916,-13.593 q -5.245,-9.764 -3.282,-18.398 1.962,-8.634 13.676,-11 z M 27.19,248.865 135.97,132.556 a 7.135,7.135 0 0 1 1.427,0 h 0.154 q 3.14,0.345 2.842,3.71 a 19.36,19.36 0 0 1 -3.294,8.1 39.376,39.376 0 0 1 -9.728,10.405 q -3.912,2.938 -15.044,9.514 -12.796,7.505 -19.55,14.77 a 92.535,92.535 0 0 0 -11.513,14.486 l 32.907,3.758 8.182,-12.963 -20.967,-2.378 a 36.415,36.415 0 0 1 4.757,-3.83 q 2.379,-1.605 8.444,-5.125 l 6.422,-3.747 a 92.975,92.975 0 0 0 12.903,-8.776 61.472,61.472 0 0 0 12.51,-14.414 q 6.84,-10.846 6.494,-17.957 c -0.19,-3.949 -2.105,-6.434 -5.684,-7.505 l 79.798,-85.161 -102.097,179.576 -5.708,10.06 z m 367.238,-71.974 q -3.817,-5.458 -3.758,-8.515 c 0,-2.033 1.19,-3.199 3.568,-3.448 h 0.57 a 11.892,11.892 0 0 1 6.91,2.247 29.85,29.85 0 0 1 7.837,8.051 q 3.687,5.28 3.71,8.397 c 0,2.093 -1.188,3.258 -3.496,3.567 h -0.594 a 11.75,11.75 0 0 1 -6.957,-2.378 29.79,29.79 0 0 1 -7.79,-7.885 z m -109.41,-141.52 83.948,89.634 h -1.189 c -0.38,0 -0.975,0 -1.463,0.107 q -7.825,0.892 -8.324,6.862 -0.5,5.97 5.03,13.747 a 53.778,53.778 0 0 0 6.375,7.374 37.901,37.901 0 0 0 10.144,6.897 q -2.117,2.89 -0.702,7.98 a 37.283,37.283 0 0 0 5.613,11.096 55.122,55.122 0 0 0 15.223,14.806 q 8.098,5.268 16.066,4.935 0.81,0 1.618,-0.13 8.776,-0.988 9.228,-7.873 a 16.114,16.114 0 0 0 -0.463,-4.853 l 58.689,62.686 -91.572,-22.941 -6.1,-10.703 z m 98.22,104.927 2.45,2.617 c 0.451,0.57 0.903,1.189 1.355,1.784 1.808,2.592 2.723,4.757 2.723,6.529 0,1.771 -1.034,2.782 -3.127,3.02 h -0.512 a 10.346,10.346 0 0 1 -6.077,-1.95 22.596,22.596 0 0 1 -6.184,-6.137 c -1.974,-2.83 -2.937,-5.102 -2.878,-6.814 0.06,-1.713 1.118,-2.7 3.187,-2.937 h 0.524 a 10.263,10.263 0 0 1 6.005,1.879 19.147,19.147 0 0 1 2.533,2.01 z M 255.987,26 137.456,231.026 l 118.532,55.05 118.604,-55.05 z m -1.19,208.463 q -17.529,0 -24.58,-12.273 -7.053,-12.273 -7.053,-34.988 0,-22.714 7.052,-35.047 7.052,-12.332 24.582,-12.344 17.53,0 24.582,12.332 7.052,12.333 7.052,35.047 0,22.715 -7.052,34.988 -7.053,12.273 -24.582,12.285 z m 10.538,-71.807 q 2.497,7.968 2.497,24.546 0,15.817 -2.497,24.201 -2.498,8.384 -10.537,8.325 -8.04,0 -10.632,-8.325 -2.593,-8.324 -2.593,-24.2 0,-16.579 2.593,-24.547 2.593,-7.968 10.632,-7.968 8.015,-0.012 10.513,7.956 z"
fill="#ffffff"
fill-opacity="1"
transform="matrix(0.69282032,-0.4,0.4,0.69282032,-23.762003,181.038)"
id="path2"
style="fill:#ffffff" />
</g>
<g
class=""
id="g4-4"
style="fill:#ffffff"
transform="rotate(12.267903,709.7839,1245.6727)">
<path
d="m 375.483,251.243 -109.98,51.138 0.213,183.381 211.294,-219.416 -86.993,-21.81 z m -12.736,108.626 -5.947,14.699 -48.604,-8.955 5.007,-12.832 a 141.306,141.306 0 0 0 13.51,-11.358 167.184,167.184 0 0 0 16.566,-17.517 170.478,170.478 0 0 0 12.606,-17.958 115.607,115.607 0 0 0 9.514,-17.97 l 14.068,2.51 q -9.37,22.334 -30.361,44.43 -13.296,13.64 -20.645,18.636 z M 121.603,244.334 36.893,266.097 246.474,486 V 302.38 L 136.528,251.243 Z m 19.147,50.852 a 28.72,28.72 0 0 1 24.273,6.802 53.052,53.052 0 0 1 11.226,14.188 l -13.081,2.676 a 28.542,28.542 0 0 0 -5.388,-7.374 q -5.185,-4.876 -11.262,-3.853 l -0.487,0.095 a 6.458,6.458 0 0 0 -5.162,4.448 c -0.856,2.378 -0.238,5.554 1.796,9.371 q 4.08,7.6 10.81,9.027 a 23.785,23.785 0 0 0 8.563,-0.203 l 1.867,-0.344 5.791,10.822 q -6.398,1.427 -8.23,3.282 -3.21,3.14 0.429,9.93 a 17.042,17.042 0 0 0 6.089,6.696 10.406,10.406 0 0 0 7.385,1.534 l 0.416,-0.083 q 4.757,-0.964 5.079,-4.757 c 0.261,-2.57 -0.655,-5.744 -2.748,-9.514 l 12.38,-2.545 a 49.247,49.247 0 0 1 4.103,11.226 19.956,19.956 0 0 1 -0.642,9.383 11.702,11.702 0 0 1 -3.96,5.411 19.575,19.575 0 0 1 -8.027,3.235 l -1.19,0.214 a 27.971,27.971 0 0 1 -17.494,-2.7 32.193,32.193 0 0 1 -14.128,-14.092 q -3.627,-6.79 -2.604,-12.19 a 8.396,8.396 0 0 1 2.521,-4.947 h -0.071 q -1.844,0.31 -7.04,-2.497 a 32.11,32.11 0 0 1 -12.916,-13.593 q -5.245,-9.764 -3.282,-18.398 1.962,-8.634 13.676,-11 z M 27.19,248.865 135.97,132.556 a 7.135,7.135 0 0 1 1.427,0 h 0.154 q 3.14,0.345 2.842,3.71 a 19.36,19.36 0 0 1 -3.294,8.1 39.376,39.376 0 0 1 -9.728,10.405 q -3.912,2.938 -15.044,9.514 -12.796,7.505 -19.55,14.77 a 92.535,92.535 0 0 0 -11.513,14.486 l 32.907,3.758 8.182,-12.963 -20.967,-2.378 a 36.415,36.415 0 0 1 4.757,-3.83 q 2.379,-1.605 8.444,-5.125 l 6.422,-3.747 a 92.975,92.975 0 0 0 12.903,-8.776 61.472,61.472 0 0 0 12.51,-14.414 q 6.84,-10.846 6.494,-17.957 c -0.19,-3.949 -2.105,-6.434 -5.684,-7.505 l 79.798,-85.161 -102.097,179.576 -5.708,10.06 z m 367.238,-71.974 q -3.817,-5.458 -3.758,-8.515 c 0,-2.033 1.19,-3.199 3.568,-3.448 h 0.57 a 11.892,11.892 0 0 1 6.91,2.247 29.85,29.85 0 0 1 7.837,8.051 q 3.687,5.28 3.71,8.397 c 0,2.093 -1.188,3.258 -3.496,3.567 h -0.594 a 11.75,11.75 0 0 1 -6.957,-2.378 29.79,29.79 0 0 1 -7.79,-7.885 z m -109.41,-141.52 83.948,89.634 h -1.189 c -0.38,0 -0.975,0 -1.463,0.107 q -7.825,0.892 -8.324,6.862 -0.5,5.97 5.03,13.747 a 53.778,53.778 0 0 0 6.375,7.374 37.901,37.901 0 0 0 10.144,6.897 q -2.117,2.89 -0.702,7.98 a 37.283,37.283 0 0 0 5.613,11.096 55.122,55.122 0 0 0 15.223,14.806 q 8.098,5.268 16.066,4.935 0.81,0 1.618,-0.13 8.776,-0.988 9.228,-7.873 a 16.114,16.114 0 0 0 -0.463,-4.853 l 58.689,62.686 -91.572,-22.941 -6.1,-10.703 z m 98.22,104.927 2.45,2.617 c 0.451,0.57 0.903,1.189 1.355,1.784 1.808,2.592 2.723,4.757 2.723,6.529 0,1.771 -1.034,2.782 -3.127,3.02 h -0.512 a 10.346,10.346 0 0 1 -6.077,-1.95 22.596,22.596 0 0 1 -6.184,-6.137 c -1.974,-2.83 -2.937,-5.102 -2.878,-6.814 0.06,-1.713 1.118,-2.7 3.187,-2.937 h 0.524 a 10.263,10.263 0 0 1 6.005,1.879 19.147,19.147 0 0 1 2.533,2.01 z M 255.987,26 137.456,231.026 l 118.532,55.05 118.604,-55.05 z m -1.19,208.463 q -17.529,0 -24.58,-12.273 -7.053,-12.273 -7.053,-34.988 0,-22.714 7.052,-35.047 7.052,-12.332 24.582,-12.344 17.53,0 24.582,12.332 7.052,12.333 7.052,35.047 0,22.715 -7.052,34.988 -7.053,12.273 -24.582,12.285 z m 10.538,-71.807 q 2.497,7.968 2.497,24.546 0,15.817 -2.497,24.201 -2.498,8.384 -10.537,8.325 -8.04,0 -10.632,-8.325 -2.593,-8.324 -2.593,-24.2 0,-16.579 2.593,-24.547 2.593,-7.968 10.632,-7.968 8.015,-0.012 10.513,7.956 z"
fill="#ffffff"
fill-opacity="1"
transform="matrix(0.69282032,-0.4,0.4,0.69282032,-23.762003,181.038)"
id="path2-6"
style="fill:#ffffff" />
</g>
</svg>

Before

Width:  |  Height:  |  Size: 3.8 KiB

After

Width:  |  Height:  |  Size: 9.3 KiB

View File

@@ -1,5 +1,29 @@
# 13.0
## 13.0.46 - L'archétype d'Illisys
- ajout d'une génération d'archétype aléatoire
- respecte les niveaux d'archétype déjà alloués
- l'archétype alloué est supérieur au niveau actuel (si c'est possible)
- les compétences supérieures à 0 ont plus de chances d'avoir les niveaux d'archétype élevés
- si tous les niveaux d'archétype supérieurs à une compétences sont déjà alloué,
l'archétype est au niveau actuel de la compétence
- Amélioration de l'affichage de la fenêtre de jets:
- La difficultée est déplacée dans la colonne des ajustements
- les ajustements sont mieux alignés
- les ajustements sont mieux ordonnés
- Les indications d'ajustements de tir prennent moins de place
- l'icône d100 est redessinée pour être mieux centrée
## 13.0.45 - L'endépôté d'Illisys
- nouvelle correction du manifest
## 13.0.44 - Le dépôt d'Illisys
- le manifest pointe maintenant toujours vers la dernière version
- changement des liens dans le system.json
## 13.0.43 - L'urgence d'Illisys
- correction urgente des jets

View File

@@ -514,6 +514,13 @@ body {
align-items: anchor-center;
margin: 0 0.2rem;
}
.system-foundryvtt-reve-de-dragon .roll-dialog roll-section label,
.system-foundryvtt-reve-de-dragon .roll-dialog roll-section div label {
text-align: left;
min-width: 55%;
display: flex;
flex-direction: row;
}
.system-foundryvtt-reve-de-dragon .roll-dialog roll-resume {
display: flex;
flex-direction: row;
@@ -670,10 +677,14 @@ body {
padding: 0;
filter: invert(0.8);
}
.system-foundryvtt-reve-de-dragon .roll-dialog roll-conditions roll-section[name="tricher"] img {
.system-foundryvtt-reve-de-dragon .roll-dialog roll-conditions roll-section[name="tricher"] label {
display: flex;
flex-direction: row;
}
.system-foundryvtt-reve-de-dragon .roll-dialog roll-conditions roll-section[name="tricher"] label img {
/* image de d100 */
max-width: 2.5rem;
max-height: 2.5rem;
max-width: 2rem;
max-height: 2rem;
}
.system-foundryvtt-reve-de-dragon .roll-dialog roll-buttons {
display: flex;

View File

@@ -32,6 +32,7 @@
display: flex;
flex-direction: column;
}
roll-conditions roll-section[name="rollmode"],
roll-type {
button[data-checked="true"] {
@@ -64,6 +65,13 @@
flex-direction: row;
align-items: anchor-center;
margin: 0 0.2rem;
label {
text-align:left;
min-width: 55%;
display: flex;
flex-direction: row;
}
}
roll-resume {
@@ -241,11 +249,18 @@
padding: 0;
filter: invert(0.8);
}
roll-conditions roll-section[name="tricher"] img {
/* image de d100 */
max-width: 2.5rem;
max-height: 2.5rem;
}
roll-conditions roll-section[name="tricher"] {
label {
display: flex;
flex-direction: row;
img {
/* image de d100 */
max-width: 2rem;
max-height: 2rem;
}
}
}
roll-buttons {
display: flex;

View File

@@ -275,6 +275,7 @@ export class RdDActorSheet extends RdDBaseActorSangSheet {
await this.actor.updateCompetenceArchetype(compName, parseInt(event.target.value));
});
this.html.find('.nouvelle-incarnation').click(async event => await this.actor.nouvelleIncarnation())
this.html.find('.repartition-archetype-aleatoire').click(async event => await this.actor.repartitionArchetypeAleatoire())
}
// On pts de reve change

View File

@@ -2975,19 +2975,19 @@ export class RdDActor extends RdDBaseActorSang {
}
async nouvelleIncarnation() {
let incarnation = this.toObject();
let incarnation = this.toObject()
incarnation.items = Array.from(this.items.filter(it => it.type == ITEM_TYPES.competence),
incarnation.items = Array.from(this.itemTypes[ITEM_TYPES.competence],
it => {
it = it.toObject();
it.id = undefined;
it.system.niveau = it.system.base;
it.system.niveau_archetype = Math.max(it.system.niveau + (it.system.xp > 0 ? 1 : 0), it.system.niveau_archetype);
it.system.xp = 0;
it.system.xp_sort = 0;
it.system.default_diffLibre = 0;
return it;
});
it = it.toObject()
it.id = undefined
it.system.niveau = it.system.base
it.system.niveau_archetype = Math.max(it.system.niveau + (it.system.xp > 0 ? 1 : 0), it.system.niveau_archetype)
it.system.xp = 0
it.system.xp_sort = 0
it.system.default_diffLibre = 0
return it
})
incarnation.name = 'Réincarnation de ' + incarnation.name
incarnation.system = {
@@ -3002,12 +3002,57 @@ export class RdDActor extends RdDBaseActorSang {
'reve.reve.value': this.system.carac.reve.value,
subacteurs: { suivants: [], montures: [], vehicules: [] },
}
incarnation = await RdDBaseActor.create(incarnation);
await incarnation.deleteEmbeddedDocuments('ActiveEffect', incarnation.getEmbeddedCollection("ActiveEffect").map(it => it.id));
await incarnation.remiseANeuf();
incarnation.sheet.render(true);
incarnation = await RdDBaseActor.create(incarnation)
await incarnation.deleteEmbeddedDocuments('ActiveEffect', incarnation.getEmbeddedCollection("ActiveEffect").map(it => it.id))
await incarnation.remiseANeuf()
incarnation.sheet.render(true)
}
async repartitionArchetypeAleatoire() {
const nivArchetypeDisponibles = RdDItemCompetence.computeResumeArchetype(this.itemTypes[ITEM_TYPES.competence])
.filter(it => it.reste > 0)
function proba(nivDispo, niveauActuel) {
return niveauActuel > 0 ? (nivDispo.reste + 3) : nivDispo.reste
}
async function takeNiveauArchetypeRandom(niveauMin) {
const potential = nivArchetypeDisponibles.filter(it => it.niveau >= niveauMin)
const totalChances = potential.map(it => proba(it, niveauMin)).reduce(Misc.sum(), 0)
if (totalChances > 0) {
let random = await Misc.random(totalChances)
for (const selected of potential) {
if (selected.reste > 0) {
const chances = proba(selected, niveauMin)
if (random <= chances) {
selected.nombre++
selected.reste--
return selected.niveau
}
random -= chances
}
}
}
return Math.max(0, niveauMin)
}
const compsByNiveau = Misc.classify(
this.itemTypes[ITEM_TYPES.competence].filter(it => it.system.niveau_archetype <= 0),
it => Math.max(0, it.system.niveau))
const niveaux = Object.keys(compsByNiveau).sort(Misc.descending())
const updates = []
for (let i = 0; i < niveaux.length; i++) {
const competencesDuNiveau = Misc.shuffled(compsByNiveau[niveaux[i]])
for (let j = 0; j < competencesDuNiveau.length; j++) {
const competence = competencesDuNiveau[j]
const nivArchetype = await takeNiveauArchetypeRandom(competence.system.niveau)
updates.push({ _id: competence.id, 'system.niveau_archetype': nivArchetype })
}
}
await this.updateEmbeddedDocuments('Item', updates)
}
/* -------------------------------------------- */
async _rollArtV2(oeuvreId) {

View File

@@ -24,8 +24,7 @@ export class Misc {
return text.charAt(0).toLowerCase() + text.slice(1);
}
static stripHtml(html)
{
static stripHtml(html) {
const tmp = document.createElement("DIV")
tmp.innerHTML = html
return tmp.textContent || tmp.innerText || ""
@@ -329,4 +328,19 @@ export class Misc {
'-o-transform': rotation
};
}
static async random(count) {
const roll = new Roll(`1d${count}`)
await roll.evaluate()
return roll.total
}
static shuffled(source) {
const result = source.slice(0)
for (let i = result.length - 1; i > 0; i--) {
const j = Math.floor(Math.random() * (i + 1));
[result[i], result[j]] = [result[j], result[i]];
}
return result
}
}

View File

@@ -27,10 +27,10 @@ export const DIFF = {
}
export const DIFFS = {
[DIFF.LIBRE]: { key: DIFF.LIBRE, label: "Difficulté libre", libre: true, visible: true, max: 0 },
[DIFF.ATTAQUE]: { key: DIFF.ATTAQUE, label: "Difficulté d'attaque", libre: true, visible: true, max: 0 },
[DIFF.IMPOSEE]: { key: DIFF.IMPOSEE, label: "Difficulté imposée", libre: false, visible: true, max: 20 },
[DIFF.DEFENSE]: { key: DIFF.DEFENSE, label: "Difficulté défense", libre: false, visible: true, max: 0 },
[DIFF.LIBRE]: { key: DIFF.LIBRE, label: "Diff. libre", libre: true, visible: true, max: 0 },
[DIFF.ATTAQUE]: { key: DIFF.ATTAQUE, label: "Diff. attaque", libre: true, visible: true, max: 0 },
[DIFF.IMPOSEE]: { key: DIFF.IMPOSEE, label: "Diff. imposée", libre: false, visible: true, max: 20 },
[DIFF.DEFENSE]: { key: DIFF.DEFENSE, label: "Diff. défense", libre: false, visible: true, max: 0 },
[DIFF.DEFAUT]: { key: DIFF.DEFAUT, label: "Difficulté", libre: true, visible: true, max: 5 },
[DIFF.AUCUN]: { key: DIFF.AUCUN, label: "", libre: false, visible: false, max: 0 },
}

View File

@@ -80,7 +80,6 @@ const ROLL_PARTS = [
new RollPartCarac(),
new RollPartComp(),
new RollPartDiff(),
new RollPartApprecier(),
new RollPartAttaque(),
new RollPartPossession(),
@@ -91,18 +90,18 @@ const ROLL_PARTS = [
new RollPartCuisine(),
new RollPartOeuvre(),
new RollPartJeu(),
new RollPartSign(),
new RollPartEcailles(),
new RollPartEtat(),
new RollPartDiff(),
new RollPartConditions(),
new RollPartEtat(),
new RollPartSign(),
new RollPartEncTotal(),
new RollPartSurEnc(),
new RollPartEthylisme(),
new RollPartEcailles(),
new RollPartMalusArmure(),
new RollPartEmpoignadeTaille(),
new RollPartEmpoignade(),
new RollPartEncTotal(),
new RollPartSurEnc(),
new RollPartAppelMoral(),
new RollPartMoral(),
new RollPartCoeur(),

View File

@@ -14,7 +14,7 @@ const EXCLUDED_ROLL_TYPES = [
export class RollPartDiff extends RollPart {
get code() { return PART_DIFF }
get section() { return ROLLDIALOG_SECTION.CHOIX }
get section() { return ROLLDIALOG_SECTION.CONDITIONS }
restore(rollData) {
const current = this.getCurrent(rollData)

View File

@@ -1,10 +1,10 @@
{
"id": "foundryvtt-reve-de-dragon",
"title": "Rêve de Dragon",
"version": "13.0.36",
"download": "https://www.uberwald.me/gitea/public/foundryvtt-reve-de-dragon/releases/download/13.0.36/rddsystem.zip",
"manifest": "https://www.uberwald.me/gitea/public/foundryvtt-reve-de-dragon/releases/download/13.0.36/system.json",
"changelog": "https://www.uberwald.me/gitea/public/foundryvtt-reve-de-dragon/raw/branch/v11/changelog.md",
"version": "13.0.43",
"download": "https://gitea.scriptarium.org/Scriptarium/foundryvtt-reve-de-dragon/releases/download/13.0.43/rddsystem.zip",
"manifest": "https://gitea.scriptarium.org/Scriptarium/foundryvtt-reve-de-dragon/releases/download/latest/system.json",
"changelog": "https://gitea.scriptarium.org/Scriptarium/foundryvtt-reve-de-dragon/raw/branch/v13/changelog.md",
"compatibility": {
"minimum": "13",
"verified": "14"

View File

@@ -1,21 +1,20 @@
<div>
<ul class="item-list">
<li><a class="repartition-archetype-aleatoire chat-card-button flexrow" data-tooltip="Répartition aléatoire des niveaux d'archétype restants">
<i class="fa-solid fa-circle-user-clock"></i><i class="fa-solid fa-shuffle"></i></a>
{{#if @root.options.isGM}}
<li>
<a class="nouvelle-incarnation chat-card-button" data-tooltip="Création d'une nouvelle incarnation de l'archétype">
<i class="fa-solid fa-person-circle-plus"></i> Nouvelle incarnation</a>
<a class="nouvelle-incarnation chat-card-button flexrow" data-tooltip="Création d'une nouvelle incarnation de l'archétype">
<i class="fa-regular fa-skull"></i><i class="fa-solid fa-person-circle-plus"></i></a>
</li>
{{/if}}
<li><hr></li>
<li>Niveaux d'archétype</li>
{{#if calc.comptageArchetype}}
{{#each calc.comptageArchetype as |archetype|}}
<li class="item flexrow">
<label class="generic-label">
Niveaux {{plusMoins archetype.niveau}} : {{archetype.nombre}} / {{archetype.nombreMax}}
</label>
</li>
<li class="item flexrow">
<label class="generic-label">
Niveaux {{plusMoins archetype.niveau}} : {{archetype.nombre}} / {{archetype.nombreMax}}
</label>
</li>
{{/each}}
{{/if}}
</ul>

View File

@@ -1,6 +1,6 @@
<label for="{{code}}" data-tooltip="Moral: {{plusMoins refs.moral}}" {{#if (lte refs.moral 0)}}style="font-size: 0.9rem;"{{/if}}>
{{#if current.icon}}{{{current.icon}}}{{/if}}{{refs.label}}
</label>
<input name="{{code}}" type="checkbox"
{{#if current.checked}}checked{{/if}}
{{#if rollData.type.retry}}disabled{{/if}}/>
<label for="{{code}}" data-tooltip="Moral: {{plusMoins refs.moral}}">
{{#if current.icon}}{{{current.icon}}}{{/if}}{{refs.label}}
</label>

View File

@@ -67,21 +67,18 @@
</subline>
{{/if}}
{{#if current.distance}}
<subline><hr></subline>
<subline>
<subline data-tooltip="Difficultée à valider par le gardien">
<span>
<strong>Attaque à distance</strong> {{current.main}} difficulté proposée de <strong>{{plusMoins current.distance.total}}</strong> à valider par le Gardien
<strong>Attaque à distance</strong> {{current.main}}
{{#unless current.distance.isVisible}}<i class="fa-solid fa-eye-slash"></i> Avec les murs et la lumière, la cible n'est pas visible;{{/unless}}
Taille {{current.distance.taille.msg}}: {{plusMoins current.distance.taille.diff}};
Portée {{#if (lt current.distance.distance 0)}}indéterminée{{else}}{{numberFormat current.distance.distance decimals=1}} mètres{{/if}} {{current.distance.portee.msg}}: {{plusMoins current.distance.portee.diff}};
<span data-tooltip="0 immobile, -3 actif, -4 en mouvement, -5 en zig-zag">
Mouvement {{current.distance.activite.msg}}: {{plusMoins current.distance.activite.diff}};
</span>
<br><strong>Difficulté proposée de {{plusMoins current.distance.total}}</strong>
</span>
</subline>
<subline></subline>
<subline>
<ul>
{{#unless current.distance.isVisible}}<li>Avec les murs et la lumière, la cible n'est pas visible.</li>{{/unless}}
<li>Taille {{current.distance.taille.msg}}: {{plusMoins current.distance.taille.diff}}</li>
<li>Portée {{current.distance.portee.msg}}: {{plusMoins current.distance.portee.diff}} (distance {{#if (lt current.distance.distance 0)}}indéterminée{{else}}indicative de {{numberFormat current.distance.distance decimals=1}} mètres{{/if}}). </li>
<li>Mouvement {{current.distance.activite.msg}}: {{plusMoins current.distance.activite.diff}} (0 immobile, -3 actif, -4 en mouvement, -5 en zig-zag)</li>
</ul>
</subline>
{{/if}}
</roll-part-detail>
{{/if}}

View File

@@ -1,5 +1,9 @@
<input name="{{code}}" type="checkbox"
<label for="{{code}}">
{{#if current.icon}}{{{current.icon}}}{{/if}}
{{either current.label refs.label}}
</label>
<span>
<input name="{{code}}" type="checkbox"
{{#if current.checked}}checked{{/if}}
{{#if rollData.type.retry}}disabled{{/if}}/>
{{#if current.icon}}{{{current.icon}}}{{/if}}
<label for="{{code}}">{{either current.label refs.label}} : {{plusMoins current.value}}</label>
{{plusMoins current.value}}</span>

View File

@@ -1,9 +1,7 @@
<subline>
<label for="{{code}}">{{current.label}}&nbsp;</label>
<input type="number"
name="{{name}}"
value="{{current.value}}"
pattern="^(-|+)?\d+$"
min="{{current.min}}" max="{{current.max}}" step="1"
{{#if (or rollData.type.retry current.disabled)}}disabled{{/if}}>
</subline>
<label for="{{code}}">{{current.label}}&nbsp;</label>
<input type="number"
name="{{name}}"
value="{{current.value}}"
pattern="^(-|+)?\d+$"
min="{{current.min}}" max="{{current.max}}" step="1"
{{#if (or rollData.type.retry current.disabled)}}disabled{{/if}}>

View File

@@ -1,11 +1,11 @@
<input name="{{code}}" type="checkbox"
{{#if current.checked}}checked{{/if}}
{{#if rollData.type.retry}}disabled{{/if}}/>
<label for="{{code}}">
{{#if current.icon}}{{{current.icon}}}{{/if}}
{{current.label}}
Enc. total
</label>
<label for="malusenc">Enc. total</label>
<input name="{{code}}" type="checkbox"
{{#if current.checked}}checked{{/if}}
{{#if rollData.type.retry}}disabled{{/if}}/>
<input type="number"
name='malusenc'
value="{{current.value}}"

View File

@@ -1,5 +1,7 @@
<label for="{{name}}">Forcer </label>
<img src="systems/foundryvtt-reve-de-dragon/assets/ui/d100.svg" data-tooltip="Forcer le résultat du jet de dé"/>
<label for="{{name}}">
<img src="systems/foundryvtt-reve-de-dragon/assets/ui/d100.svg" data-tooltip="Forcer le résultat du jet de dé"/>
Forcer
</label>
<input type="number"
name="{{name}}"
value="{{current.resultat}}"