Gestion de jets de competences et modificateurs associés
6
images/.directory
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
[Dolphin]
|
||||||
|
SortOrder=1
|
||||||
|
Timestamp=2024,5,30,18,14,56.568
|
||||||
|
Version=4
|
||||||
|
ViewMode=1
|
||||||
|
VisibleRoles=Details_text,Details_size,Details_modificationtime,Details_creationtime,CustomizedDetails
|
1
images/icons/acrobatic.svg
Normal file
@ -0,0 +1 @@
|
|||||||
|
<svg style="height: 512px; width: 512px;" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><defs><radialGradient id="darkzaitzev-acrobatic-gradient-0"><stop offset="0%" stop-color="#333232" stop-opacity="1"></stop><stop offset="100%" stop-color="#9e9c9c" stop-opacity="1"></stop></radialGradient></defs><rect fill="url(#darkzaitzev-acrobatic-gradient-0)" height="512" width="512" rx="32" ry="32"></rect><g class="" style="" transform="translate(0,0)"><path d="M140.488 19.31s-26.726 65.584-24.572 75.734c1.878 9.191 9.306.316 12.457 7.064 5.59 11.803 55.342 93.663 49.182 98.626-1.558 1.36-39.38-.402-67.961-5.845-52.49-9.998-94.822 2.352-77.039 42.21 26.177 58.653 133.15 154.14 97.89 183.602-40.844 34.159 19.82 117.249 79.275 40.308 10.885-14.085 29.356-73.201-1.614-69.579-37.447 4.38-14.128-30.491-14.128-30.491l23.345-29.92c12.96-1.9 134.534-21.449 134.534-21.449l-4.226-27.002-174.475 20.25s-24.16-32.453-35.964-50.687c-9.37-11.474 62.005 4.88 76.388-10.522 19.968-21.276 7.601-43.88 7.601-43.88L155.35 69.201zm114.619 43.977l-62.759 39.419 16.081 28.897 114.931-58.86zm-124.743 78.84l-46.691 31.612 48.224 10.444 17.417-12.13zm175.08 24.496l-52.166 34.37 51.969 32.462.058-21.93c51.869 12.43 140.22 48.13 126.472 191.26l23.908-73.889 27.884 33.386c-5.502-166.903-150.537-170.593-178.19-171.609zm-74.376 175.953l-19.91 25.873 110.89 14.697s18.638-17.84 15.035-18.976c-27.712-8.623-79.886-16.97-106.015-21.594z" fill="#000" fill-opacity="1"></path></g></svg>
|
After Width: | Height: | Size: 1.4 KiB |
1
images/icons/awareness.svg
Normal file
@ -0,0 +1 @@
|
|||||||
|
<svg style="height: 512px; width: 512px;" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><defs><radialGradient id="lorc-awareness-gradient-0"><stop offset="0%" stop-color="#333232" stop-opacity="1"></stop><stop offset="100%" stop-color="#9e9c9c" stop-opacity="1"></stop></radialGradient></defs><rect fill="url(#lorc-awareness-gradient-0)" height="512" width="512" rx="32" ry="32"></rect><g class="" style="" transform="translate(0,0)"><path d="M121.406 18.313c-57.98 16.562-98.06 51.613-98.062 92.28-.003 40.518 39.805 75.616 97.437 92.25-33.653-22.005-55.22-55.224-55.218-92.25 0-37.237 21.85-70.277 55.844-92.28zm276.531 0c33.995 22.003 55.844 55.043 55.844 92.28.004 37.026-21.563 70.245-55.217 92.25 57.632-16.634 97.44-51.732 97.437-92.25-.003-40.667-40.082-75.718-98.063-92.28zM163.28 41.656c-43.303 12.368-73.215 38.565-73.218 68.938-.002 30.26 29.707 56.482 72.75 68.906-25.135-16.434-41.25-41.255-41.25-68.906 0-27.813 16.328-52.503 41.72-68.938zm192.782 0c25.39 16.435 41.72 41.125 41.72 68.938 0 27.65-16.115 52.472-41.25 68.906 43.043-12.424 72.752-38.645 72.75-68.906-.004-30.373-29.915-56.57-73.22-68.938zm-101.03 6.813c-23.457 3.027-44.22 30.026-44.22 64.655 0 19.094 6.635 36.007 16.438 47.75l10.22 12.25-15.69 2.938c-12.834 2.4-22.282 9.19-30.25 20.062-7.965 10.872-14 25.903-18.218 43.156-7.727 31.62-9.362 70.17-9.593 103.94h41.655l.625 8.655 10.625 141.375h90.344l9.374-141.313.594-8.718h39.625c-.017-34.152-.373-73.232-7.375-105.095-3.818-17.37-9.612-32.392-17.688-43.156-8.076-10.765-17.99-17.51-32.344-19.72l-16-2.47 10.125-12.624c9.38-11.682 15.69-28.4 15.69-47.03 0-36.92-23.274-64.564-49.095-64.564-2.8 0-4.505-.137-4.844-.093zm-51.438 12.155c-31.38 8.964-53.063 27.96-53.063 49.97 0 21.927 21.53 40.935 52.72 49.936-18.212-11.908-29.875-29.898-29.875-49.936.003-20.153 11.82-38.06 30.22-49.97zm112.156 0c18.398 11.91 30.216 29.816 30.22 49.97 0 20.037-11.664 38.027-29.876 49.936 31.19-9 52.72-28.008 52.72-49.936-.002-22.01-21.686-41.005-53.064-49.97z" fill="#000" fill-opacity="1"></path></g></svg>
|
After Width: | Height: | Size: 2.0 KiB |
BIN
images/icons/classical-knowledge.png
Normal file
After Width: | Height: | Size: 5.5 KiB |
1
images/icons/classical-knowledge.svg
Normal file
@ -0,0 +1 @@
|
|||||||
|
<svg style="height: 512px; width: 512px;" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><defs><radialGradient id="delapouite-classical-knowledge-gradient-0"><stop offset="0%" stop-color="#333232" stop-opacity="1"></stop><stop offset="100%" stop-color="#9e9c9c" stop-opacity="1"></stop></radialGradient></defs><rect fill="url(#delapouite-classical-knowledge-gradient-0)" height="512" width="512" rx="32" ry="32"></rect><g class="" style="" transform="translate(0,0)"><path d="M104 37.25V215.1c3.6 9.9 10 14.1 20.9 17 11.4 2.9 27.1 3.1 43.9 3.1 16.8 0 34.6-.1 51.4 3.6 9.5 2.1 18.7 5.7 26.8 11.2V55.43c-7.2-9.9-15.9-13.69-27.3-15.09-12.2-1.49-27.3.55-42.9 2.83-15.7 2.28-31.9 4.81-47.7 2.88-8.7-1.07-17.3-3.87-25.1-8.8zm304 0c-7.8 4.93-16.4 7.73-25.1 8.8-15.8 1.93-32-.6-47.7-2.88-15.6-2.28-30.7-4.32-42.9-2.83-11.4 1.4-20.1 5.19-27.3 15.09V250c8.1-5.5 17.3-9.1 26.8-11.2 16.8-3.7 34.6-3.6 51.4-3.6 16.8 0 32.5-.2 43.9-3.1 10.9-2.9 17.3-7.1 20.9-17V37.25zM130.8 80.03h89.4v18h-89.4v-18zm161 0h89.4v18h-89.4v-18zm-161 44.47h89.4v18h-89.4v-18zm161 0h89.4v18h-89.4v-18zm-161 46.8h89.4v18h-89.4v-18zm161 0h89.4v18h-89.4v-18zM96 249c-17.3 0-29.19 7.3-37.77 18.9C49.66 279.4 45 295.7 45 312s4.66 32.6 13.23 44.1C66.81 367.7 78.7 375 96 375c22 0 35.7-7.1 44.4-14 8.6-6.9 11.5-13 11.5-13l2.5-5h203.2l2.5 5s2.9 6.1 11.5 13c8.7 6.9 22.4 14 44.4 14 17.3 0 29.2-7.3 37.8-18.9 8.5-11.5 13.2-27.8 13.2-44.1s-4.7-32.6-13.2-44.1c-8.6-11.6-20.5-18.9-37.8-18.9-22 0-35.7 7.1-44.4 14-8.6 6.9-11.5 13-11.5 13l-2.5 5H154.4l-2.5-5s-2.9-6.1-11.5-13c-8.7-6.9-22.4-14-44.4-14zm4.6 21.9c.9 0 1.9 0 2.9.1 13.5 1.2 28.2 8.9 44.1 24h216.8c15.9-15.1 30.6-22.8 44.1-24 14.2-1.2 26.6 5.8 33.1 16.2 13.1 20.9 7 53.9-20.6 72.3l-10-15c20.4-13.6 22.3-36.6 15.4-47.7-3.5-5.6-8.1-8.6-16.4-7.8-8.2.7-20.6 6.3-35.6 21.4l-2.7 2.6H140.3l-2.7-2.6c-15-15.1-27.4-20.7-35.6-21.4-8.26-.8-12.9 2.2-16.37 7.8-6.92 11.1-4.99 34.1 15.37 47.7l-9.99 15c-27.65-18.4-33.72-51.4-20.64-72.3 5.72-9.1 15.9-15.6 27.92-16.3h2.31zM169 361v126h30V361h-30zm48 0v126h30V361h-30zm48 0v126h30V361h-30zm48 0v126h30V361h-30z" fill="#000" fill-opacity="1"></path></g></svg>
|
After Width: | Height: | Size: 2.1 KiB |
1
images/icons/revolt.svg
Normal file
@ -0,0 +1 @@
|
|||||||
|
<svg style="height: 512px; width: 512px;" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><defs><radialGradient id="sbed-revolt-gradient-0"><stop offset="0%" stop-color="#333232" stop-opacity="1"></stop><stop offset="100%" stop-color="#9e9c9c" stop-opacity="1"></stop></radialGradient></defs><rect fill="url(#sbed-revolt-gradient-0)" height="512" width="512" rx="32" ry="32"></rect><g class="" style="" transform="translate(0,0)"><path d="M106 145.23c0-36.923 37.5-36.923 37.5-36.923s-18.75-23.163-18.75-36.922c0-13.76 0-18.462 18.75-36.922C162.25 16 162.25 16 181 16h150c18.75 0 42.22 19.56 56.25 36.923C398.26 66.556 406 89.845 406 101.813c0 61.88-50.018 178.424-50.018 178.424l6.137 215.197-203.352.566L181 274.46l-37.5-36.922c-18.75-18.462-37.5-36.924-37.5-55.384z" fill="#000" fill-opacity="1"></path></g></svg>
|
After Width: | Height: | Size: 825 B |
1
images/icons/shaking-hands.svg
Normal file
@ -0,0 +1 @@
|
|||||||
|
<svg style="height: 512px; width: 512px;" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><defs><radialGradient id="delapouite-shaking-hands-gradient-0"><stop offset="0%" stop-color="#333232" stop-opacity="1"></stop><stop offset="100%" stop-color="#9e9c9c" stop-opacity="1"></stop></radialGradient></defs><rect fill="url(#delapouite-shaking-hands-gradient-0)" height="512" width="512" rx="32" ry="32"></rect><g class="" style="" transform="translate(0,0)"><path d="M494 61.363l-82.58 77.934 78.994 132.96 3.586-4.458V61.362zM18 62.5v225.893c4.48.582 9.863.903 15.295.96 11.87.125 21.654-.65 27.15-1.144L113.1 154.974 18 62.5zm389.154 104.86l-7.04 4.556c-.15.097-5.362 3.336-6.893 4.29l-10.605 6.42.15.09c-4.914 3.057-6.28 3.917-11.857 7.38-2.83 1.757-2.9 1.798-5.584 3.465-20.29-10.907-42.306-19.29-67.998-25.882-32.312 9.762-66.542 23.888-100.722 37.142 14.19 17.087 29.96 22.651 45.845 22.85 18.42.23 37.25-7.78 50.218-16.754l7.4-5.12 7.426 10.73 115.453 83.33 45.112-29.987-60.906-102.51zM126.477 170.1L81.11 284.887 97.76 297.69l30.795-34.905 2.467-2.795 3.72-.232c1.5-.094 2.98-.138 4.44-.13 10.212.066 19.342 2.716 26.19 8.76 5.072 4.472 8.444 10.426 10.4 17.32l2.28-.142c11.995-.75 22.802 1.725 30.63 8.63 7.827 6.907 11.63 17.323 12.38 29.32l.07 1.08c6.44 1.216 12.205 3.752 16.893 7.888 7.828 6.906 11.63 17.32 12.38 29.317l.197 3.12c.642.202 1.275.424 1.9.658l2.033-2.853 5.47-7.678 2.813-3.95 7.33 5.223 59.428 42.336c6.464-1.594 10.317-4.075 12.46-7.086 2.147-3.012 3.233-7.47 2.624-14.107l-71.258-51.03-7.318-5.24 5.19-7.246 6.67-9.365 7.33 5.223 80.335 57.226c6.464-1.593 10.32-4.074 12.463-7.085 2.144-3.01 3.23-7.457 2.625-14.082l-92.398-65.55-7.34-5.21 10.414-14.68 7.343 5.208 92.414 65.565c6.47-1.594 10.327-4.075 12.473-7.088 2.148-3.015 3.233-7.476 2.62-14.125l-110.44-79.71c-14.655 8.688-33.402 15.648-53.557 15.396-23.587-.295-48.817-11.566-67.377-40.05a9 9 0 0 1 4.343-13.327c13.014-4.945 26.163-10.17 39.343-15.354l-92.056-6.834zm12.902 107.62l-47.564 53.91c.927 6.746 3.04 10.942 5.887 13.454 2.847 2.512 7.275 4.085 14.084 4.164l47.563-53.908c-.927-6.747-3.04-10.945-5.887-13.457-2.847-2.512-7.274-4.084-14.084-4.162zm43.308 25.81l-53.713 60.88c.926 6.747 3.04 10.945 5.886 13.457 2.85 2.51 7.275 4.083 14.085 4.16l53.713-60.878c-.926-6.748-3.04-10.944-5.887-13.457-2.846-2.512-7.273-4.085-14.083-4.164zm29.34 38.286l-47.56 53.91c.927 6.746 3.04 10.943 5.887 13.456 2.848 2.512 7.275 4.083 14.084 4.162L232 359.44c-.927-6.75-3.04-10.947-5.887-13.46-2.847-2.512-7.274-4.083-14.084-4.162zm24.702 39.137l-38.794 44.28c.925 6.76 3.038 10.962 5.888 13.476 2.845 2.51 7.267 4.082 14.067 4.163l38.796-44.28c-.926-6.758-3.04-10.96-5.89-13.476-2.844-2.51-7.266-4.08-14.066-4.162zm35.342 4.79c1.694 4.62 2.673 9.74 3.014 15.192l.232 3.704-8.277 9.448 26.724 19.037c6.464-1.594 10.316-4.075 12.46-7.086 2.145-3.01 3.233-7.464 2.628-14.093l-36.78-26.2z" fill="#000" fill-opacity="1"></path></g></svg>
|
After Width: | Height: | Size: 2.9 KiB |
1
images/icons/strong.svg
Normal file
@ -0,0 +1 @@
|
|||||||
|
<svg style="height: 512px; width: 512px;" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><defs><radialGradient id="lorc-strong-gradient-0"><stop offset="0%" stop-color="#333232" stop-opacity="1"></stop><stop offset="100%" stop-color="#9e9c9c" stop-opacity="1"></stop></radialGradient></defs><rect fill="url(#lorc-strong-gradient-0)" height="512" width="512" rx="32" ry="32"></rect><g class="" style="" transform="translate(0,0)"><path d="M257.375 20.313c-13.418 0-26.07 7.685-35.938 21.75-9.868 14.064-16.343 34.268-16.343 56.75 0 22.48 6.475 42.654 16.344 56.718 9.868 14.066 22.52 21.75 35.937 21.75 13.418 0 26.038-7.684 35.906-21.75 9.87-14.063 16.376-34.236 16.376-56.718 0-22.48-6.506-42.685-16.375-56.75-9.867-14.064-22.487-21.75-35.905-21.75zm-150.25 43.062c-20.305.574-23.996 13.892-31.78 29.03-23.298 45.304-55.564 164.75-55.564 164.75l160.47-5.436 29.125 137.593-22.78 106.03h149.093l-22.282-106 24.25-137.5 157.53 5.313c.002 0-32.264-119.447-55.56-164.75-7.787-15.14-11.477-28.457-31.782-29.03-17.898 0-32.406 15.552-32.406 34.718 0 19.166 14.508 34.72 32.406 34.72 3.728 0 7.258-.884 10.594-2.126l7.937 74.406L309.437 165c-.285.42-.552.867-.843 1.28-12.436 17.724-30.604 29.69-51.22 29.69-20.614 0-38.782-11.966-51.218-29.69-.277-.395-.54-.816-.812-1.218l-116.75 40.032 7.937-74.406c3.337 1.242 6.867 2.125 10.595 2.125 17.898 0 32.406-15.553 32.406-34.72 0-19.165-14.507-34.718-32.405-34.718z" fill="#000" fill-opacity="1"></path></g></svg>
|
After Width: | Height: | Size: 1.4 KiB |
@ -70,15 +70,15 @@ export class TeDeumActorPJSheet extends ActorSheet {
|
|||||||
|
|
||||||
// Update Inventory Item
|
// 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-id")
|
||||||
let itemId = li.data("item-id")
|
let itemId = li.data("item-id")
|
||||||
const item = this.actor.items.get( itemId );
|
const item = this.actor.items.get( itemId );
|
||||||
item.sheet.render(true);
|
item.sheet.render(true);
|
||||||
});
|
});
|
||||||
// Delete Inventory Item
|
// Delete Inventory Item
|
||||||
html.find('.item-delete').click(ev => {
|
html.find('.item-delete').click(ev => {
|
||||||
const li = $(ev.currentTarget).parents(".item")
|
const li = $(ev.currentTarget).parents(".item-id")
|
||||||
EcrymeUtility.confirmDelete(this, li).catch("Error : No deletion confirmed")
|
TeDeumUtility.confirmDelete(this, li).catch("Error : No deletion confirmed")
|
||||||
})
|
})
|
||||||
html.find('.item-add').click(ev => {
|
html.find('.item-add').click(ev => {
|
||||||
let dataType = $(ev.currentTarget).data("type")
|
let dataType = $(ev.currentTarget).data("type")
|
||||||
@ -107,9 +107,8 @@ export class TeDeumActorPJSheet extends ActorSheet {
|
|||||||
} );
|
} );
|
||||||
|
|
||||||
html.find('.roll-competence').click((event) => {
|
html.find('.roll-competence').click((event) => {
|
||||||
let categKey = $(event.currentTarget).data("category-key")
|
let compId = $(event.currentTarget).data("comp-id")
|
||||||
let skillKey = $(event.currentTarget).data("skill-key")
|
this.actor.rollCompetence(compId)
|
||||||
this.actor.rollSkill(categKey, skillKey)
|
|
||||||
});
|
});
|
||||||
html.find('.roll-arme').click((event) => {
|
html.find('.roll-arme').click((event) => {
|
||||||
const armeId = $(event.currentTarget).data("arme-id")
|
const armeId = $(event.currentTarget).data("arme-id")
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
import { TeDeumUtility } from "../common/tedeum-utility.js";
|
import { TeDeumUtility } from "../common/tedeum-utility.js";
|
||||||
|
import { TeDeumRollDialog } from "../dialogs/tedeum-roll-dialog.js";
|
||||||
|
|
||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
@ -98,8 +99,28 @@ export class TeDeumActor extends Actor {
|
|||||||
return comp;
|
return comp;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* -------------------------------------------- */
|
||||||
|
calculMalusBlessures() {
|
||||||
|
let modifierBlessures = 0
|
||||||
|
let nbBlessures = 0
|
||||||
|
// Cumul des malus de blessures
|
||||||
|
for (let locKey in this.system.localisation) {
|
||||||
|
let loc = this.system.localisation[locKey]
|
||||||
|
let bDef = game.system.tedeum.config.blessures[loc.blessures]
|
||||||
|
modifierBlessures += bDef.modifier
|
||||||
|
nbBlessures += bDef.count
|
||||||
|
}
|
||||||
|
// Si le nombre de blessures est supérieur au score d'endurance, alors malus supplémentaire
|
||||||
|
let endurance = this.items.find(item => item.type == "competence" && item.name.toLowerCase() == "endurance")
|
||||||
|
if ( nbBlessures > endurance.system.score) {
|
||||||
|
modifierBlessures += -1
|
||||||
|
}
|
||||||
|
return modifierBlessures
|
||||||
|
}
|
||||||
|
|
||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
updateCarac(c, key) {
|
updateCarac(c, key) {
|
||||||
|
c.key = key
|
||||||
c.name = game.system.tedeum.config.caracteristiques[key].label
|
c.name = game.system.tedeum.config.caracteristiques[key].label
|
||||||
c.generalqualite = game.system.tedeum.config.descriptionValeur[c.value].qualite
|
c.generalqualite = game.system.tedeum.config.descriptionValeur[c.value].qualite
|
||||||
c.qualite = game.system.tedeum.config.descriptionValeur[c.value][key]
|
c.qualite = game.system.tedeum.config.descriptionValeur[c.value][key]
|
||||||
@ -124,6 +145,19 @@ export class TeDeumActor extends Actor {
|
|||||||
providence.dice = game.system.tedeum.config.providence[providence.value].diceValue
|
providence.dice = game.system.tedeum.config.providence[providence.value].diceValue
|
||||||
return providence
|
return providence
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* -------------------------------------------- */
|
||||||
|
modifyProvidence(value) {
|
||||||
|
let providence = foundry.utils.duplicate(this.system.providence)
|
||||||
|
providence.value = Math.min(Math.max(providence.value + value, 0), 6)
|
||||||
|
this.update( { "system.providence": providence } )
|
||||||
|
}
|
||||||
|
/* -------------------------------------------- */
|
||||||
|
modifyXP(key, value) {
|
||||||
|
let xp = this.system.caracteristiques[key].experience
|
||||||
|
xp = Math.max(xp + value, 0)
|
||||||
|
this.update( { [`system.caracteristiques.${key}.experience`]: xp } )
|
||||||
|
}
|
||||||
|
|
||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
filterCompetencesByCarac(key) {
|
filterCompetencesByCarac(key) {
|
||||||
@ -132,6 +166,8 @@ export class TeDeumActor extends Actor {
|
|||||||
if (c.system.isBase) {
|
if (c.system.isBase) {
|
||||||
c.system.score = this.system.caracteristiques[c.system.caracteristique].value
|
c.system.score = this.system.caracteristiques[c.system.caracteristique].value
|
||||||
}
|
}
|
||||||
|
let caracDice = game.system.tedeum.config.descriptionValeur[this.system.caracteristiques[c.system.caracteristique].value].dice
|
||||||
|
c.system.formula = caracDice + "+" + c.system.score
|
||||||
})
|
})
|
||||||
return foundry.utils.deepClone( comp || {} )
|
return foundry.utils.deepClone( comp || {} )
|
||||||
}
|
}
|
||||||
@ -275,26 +311,30 @@ export class TeDeumActor extends Actor {
|
|||||||
rollData.actorImg = this.img
|
rollData.actorImg = this.img
|
||||||
rollData.actorId = this.id
|
rollData.actorId = this.id
|
||||||
rollData.img = this.img
|
rollData.img = this.img
|
||||||
rollData.isReroll = false
|
rollData.providence = this.prepareProvidence()
|
||||||
|
rollData.malusBlessures = this.calculMalusBlessures()
|
||||||
|
|
||||||
return rollData
|
return rollData
|
||||||
}
|
}
|
||||||
|
|
||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
getCommonCompetence(skillid) {
|
getCommonCompetence(compId) {
|
||||||
let rollData = this.getCommonRollData()
|
let rollData = this.getCommonRollData()
|
||||||
|
|
||||||
let competence = duplicate(this.items.find(it => it.type =="competence" && it.id == skillid))
|
let competence = duplicate(this.items.find(it => it.type =="competence" && it.id == compId))
|
||||||
|
|
||||||
rollData.competence = competence
|
rollData.competence = competence
|
||||||
|
let c = foundry.utils.duplicate(this.system.caracteristiques[competence.system.caracteristique])
|
||||||
|
this.updateCarac( c, competence.system.caracteristique)
|
||||||
|
rollData.carac = c
|
||||||
rollData.img = competence.img
|
rollData.img = competence.img
|
||||||
|
|
||||||
return rollData
|
return rollData
|
||||||
}
|
}
|
||||||
|
|
||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
rollCompetence(skillId) {
|
rollCompetence(compId) {
|
||||||
let rollData = this.getCommonCompetence(skillId)
|
let rollData = this.getCommonCompetence(compId)
|
||||||
rollData.mode = "competence"
|
rollData.mode = "competence"
|
||||||
rollData.title = rollData.competence.name
|
rollData.title = rollData.competence.name
|
||||||
this.startRoll(rollData).catch("Error on startRoll")
|
this.startRoll(rollData).catch("Error on startRoll")
|
||||||
@ -319,7 +359,8 @@ export class TeDeumActor extends Actor {
|
|||||||
|
|
||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
async startRoll(rollData) {
|
async startRoll(rollData) {
|
||||||
let rollDialog = await EcrymeRollDialog.create(this, rollData)
|
console.log("startRoll", rollData)
|
||||||
|
let rollDialog = await TeDeumRollDialog.create(this, rollData)
|
||||||
rollDialog.render(true)
|
rollDialog.render(true)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -48,7 +48,7 @@ export const TEDEUM_CONFIG = {
|
|||||||
11: { valeur: 11, qualite: "Excellent", dice: "d12", negativeDice: "d6", savoir: "Docte", sensibilite: "Subtil", entregent: "Galant", puissance: "Musculeux", complexion: "Sanguin", adresse: "Preste" },
|
11: { valeur: 11, qualite: "Excellent", dice: "d12", negativeDice: "d6", savoir: "Docte", sensibilite: "Subtil", entregent: "Galant", puissance: "Musculeux", complexion: "Sanguin", adresse: "Preste" },
|
||||||
12: { valeur: 12, qualite: "Admirable", dice: "d20", negativeDice: "d4", savoir: "Humaniste", sensibilite: "Spirituel", entregent: "Sémillant", puissance: "Hercule", complexion: "Aguerri", adresse: "Alerte" },
|
12: { valeur: 12, qualite: "Admirable", dice: "d20", negativeDice: "d4", savoir: "Humaniste", sensibilite: "Spirituel", entregent: "Sémillant", puissance: "Hercule", complexion: "Aguerri", adresse: "Alerte" },
|
||||||
},
|
},
|
||||||
|
diceValeur: [ "d4", "d6", "d8", "d10", "d12", "d20" ],
|
||||||
degatsArmure : {
|
degatsArmure : {
|
||||||
sansarmure : { label: "Sans armure"},
|
sansarmure : { label: "Sans armure"},
|
||||||
cuir : { label: "Cuir"},
|
cuir : { label: "Cuir"},
|
||||||
@ -110,5 +110,21 @@ export const TEDEUM_CONFIG = {
|
|||||||
domesticite: { label: "Domesticité", id: "domesticite", value: 8 },
|
domesticite: { label: "Domesticité", id: "domesticite", value: 8 },
|
||||||
paysannerie: { label: "Paysannerie", id: "paysannerie", value: 9 },
|
paysannerie: { label: "Paysannerie", id: "paysannerie", value: 9 },
|
||||||
gueux: { label: "Gueux", id: "gueux", value: 10 },
|
gueux: { label: "Gueux", id: "gueux", value: 10 },
|
||||||
}
|
},
|
||||||
|
bonusMalus: [
|
||||||
|
{ value: "-2", label: "-2 niveaux" },
|
||||||
|
{ value: "-1", label: "-1 niveau" },
|
||||||
|
{ value: "0", label: "Aucun" },
|
||||||
|
{ value: "1", label: "+1 niveau" },
|
||||||
|
{ value: "2", label: "+2 niveaux" }
|
||||||
|
],
|
||||||
|
blessures: [
|
||||||
|
{ value: 0, label: "Indemne", degatsMax: -1, count: 0, modifier: 0 },
|
||||||
|
{ value: 1, label: "Estafilade/Contusion", degatsMax: 2, count: 1, modifier: 0 },
|
||||||
|
{ value: 2, label: "Plaie", degatsMax: 4, count: 1, modifier: -1 },
|
||||||
|
{ value: 3, label: "Plaie béante", degatsMax: 6, count: 1, modifier: -2 },
|
||||||
|
{ value: 4, label: "Plaie atroce", degatsMax: 6, count: 1, horsCombat: true, modifier: -12 },
|
||||||
|
{ value: 5, label: "Tué net", degatsMax: 100, count: 1, horsCombat: true, mort: true, modifier: -12 }
|
||||||
|
]
|
||||||
|
|
||||||
}
|
}
|
@ -131,14 +131,14 @@ export class TeDeumUtility {
|
|||||||
html.on("click", '.button-select-confront', event => {
|
html.on("click", '.button-select-confront', event => {
|
||||||
let messageId = TeDeumUtility.findChatMessageId(event.currentTarget)
|
let messageId = TeDeumUtility.findChatMessageId(event.currentTarget)
|
||||||
let message = game.messages.get(messageId)
|
let message = game.messages.get(messageId)
|
||||||
let rollData = message.getFlag("world", "ecryme-rolldata")
|
let rollData = message.getFlag("world", "te-deum-rolldata")
|
||||||
ui.notifications.info( game.i18n.localize("ECRY.chat.confrontselect"))
|
ui.notifications.info( game.i18n.localize("ECRY.chat.confrontselect"))
|
||||||
TeDeumUtility.manageConfrontation(rollData)
|
TeDeumUtility.manageConfrontation(rollData)
|
||||||
})
|
})
|
||||||
html.on("click", '.button-apply-cephaly-difficulty', event => {
|
html.on("click", '.button-apply-cephaly-difficulty', event => {
|
||||||
let messageId = TeDeumUtility.findChatMessageId(event.currentTarget)
|
let messageId = TeDeumUtility.findChatMessageId(event.currentTarget)
|
||||||
let message = game.messages.get(messageId)
|
let message = game.messages.get(messageId)
|
||||||
let rollData = message.getFlag("world", "ecryme-rolldata")
|
let rollData = message.getFlag("world", "te-deum-rolldata")
|
||||||
let difficulty = $("#" + rollData.rollId + "-cephaly-difficulty").val()
|
let difficulty = $("#" + rollData.rollId + "-cephaly-difficulty").val()
|
||||||
TeDeumUtility.manageCephalyDifficulty(rollData, difficulty)
|
TeDeumUtility.manageCephalyDifficulty(rollData, difficulty)
|
||||||
})
|
})
|
||||||
@ -317,22 +317,47 @@ export class TeDeumUtility {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
static computeResults(rollData) {
|
static async computeResults(rollData) {
|
||||||
rollData.isSuccess = false
|
rollData.isSuccess = false
|
||||||
|
rollData.isReussiteCritique = false
|
||||||
|
rollData.isEchecCritique = false
|
||||||
if (!rollData.difficulty || rollData.difficulty == "-") {
|
if (!rollData.difficulty || rollData.difficulty == "-") {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
rollData.margin = rollData.total - rollData.difficulty
|
rollData.margin = rollData.total - rollData.difficulty
|
||||||
if (rollData.total > rollData.difficulty) {
|
if (rollData.total >= rollData.difficulty) {
|
||||||
rollData.isSuccess = true
|
rollData.isSuccess = true
|
||||||
let maxMargin = rollData.skill.value + ((rollData.spec) ? 2 : 0)
|
if (rollData.total >= 2 * rollData.difficulty) {
|
||||||
rollData.margin = Math.min(rollData.margin, maxMargin)
|
rollData.isReussiteCritique = true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (rollData.diceSum == 1) {
|
||||||
|
let critiqueRoll = await new Roll(rollData.carac.negativeDice).roll()
|
||||||
|
await this.showDiceSoNice(myRoll, game.settings.get("core", "rollMode"))
|
||||||
|
rollData.critiqueRoll = foundry.utils.duplicate(critiqueRoll)
|
||||||
|
if (critiqueRoll.total > rollData.competence.score) {
|
||||||
|
rollData.isEchecCritique = true
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* -------------------------------------------- */
|
||||||
|
static modifyDice(dice, bonusMalus) {
|
||||||
|
let newIndex = game.system.tedeum.config.diceValeur.indexOf(dice) + Number(bonusMalus)
|
||||||
|
newIndex = Math.min(Math.max(newIndex, 0), game.system.tedeum.config.diceValeur.length - 1)
|
||||||
|
return game.system.tedeum.config.diceValeur[newIndex]
|
||||||
|
}
|
||||||
|
|
||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
static computeRollFormula(rollData, actor, isConfrontation = false) {
|
static computeRollFormula(rollData, actor, isConfrontation = false) {
|
||||||
rollData.diceFormula = ""
|
let diceFormula = ""
|
||||||
|
if (rollData.competence) {
|
||||||
|
let diceBase = this.modifyDice(rollData.carac.dice, rollData.bonusMalus+rollData.malusBlessures)
|
||||||
|
diceFormula = diceBase + "x + " + rollData.competence.system.score
|
||||||
|
}
|
||||||
|
if (rollData.enableProvidence) {
|
||||||
|
diceFormula += " + " + rollData.providence.dice
|
||||||
|
}
|
||||||
return diceFormula
|
return diceFormula
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -342,26 +367,36 @@ export class TeDeumUtility {
|
|||||||
let actor = game.actors.get(rollData.actorId)
|
let actor = game.actors.get(rollData.actorId)
|
||||||
// Fix difficulty
|
// Fix difficulty
|
||||||
if (!rollData.difficulty || rollData.difficulty == "-") {
|
if (!rollData.difficulty || rollData.difficulty == "-") {
|
||||||
rollData.difficulty = 0
|
rollData.difficulty = 7
|
||||||
}
|
}
|
||||||
rollData.difficulty = Number(rollData.difficulty)
|
rollData.difficulty = game.system.tedeum.config.difficulte[rollData.difficulty].value
|
||||||
|
|
||||||
let diceFormula = this.computeRollFormula(rollData, actor)
|
let diceFormula = this.computeRollFormula(rollData, actor)
|
||||||
|
|
||||||
// Performs roll
|
// Performs roll
|
||||||
let myRoll = new Roll(diceFormula).roll({ async: false })
|
let myRoll = await new Roll(diceFormula).roll()
|
||||||
await this.showDiceSoNice(myRoll, game.settings.get("core", "rollMode"))
|
await this.showDiceSoNice(myRoll, game.settings.get("core", "rollMode"))
|
||||||
rollData.roll = duplicate(myRoll)
|
rollData.roll = foundry.utils.duplicate(myRoll)
|
||||||
rollData.total = myRoll.total
|
rollData.total = myRoll.total
|
||||||
rollData.diceSum = myRoll.terms[0].total
|
rollData.diceSum = myRoll.terms[0].total
|
||||||
|
rollData.diceFormula = diceFormula
|
||||||
|
|
||||||
this.computeResults(rollData)
|
await this.computeResults(rollData)
|
||||||
|
|
||||||
let msg = await this.createChatWithRollMode(rollData.alias, {
|
let msg = await this.createChatWithRollMode(rollData.alias, {
|
||||||
content: await renderTemplate(`systems/fvtt-te-deum/templates/chat/chat-generic-result.hbs`, rollData)
|
content: await renderTemplate(`systems/fvtt-te-deum/templates/chat/chat-generic-result.hbs`, rollData)
|
||||||
})
|
})
|
||||||
await msg.setFlag("world", "ecryme-rolldata", rollData)
|
await msg.setFlag("world", "te-deum-rolldata", rollData)
|
||||||
console.log("Rolldata result", rollData)
|
console.log("Rolldata result", rollData)
|
||||||
|
|
||||||
|
// Decrement providence if needed
|
||||||
|
if (rollData.enableProvidence) {
|
||||||
|
actor.modifyProvidence(-1)
|
||||||
|
}
|
||||||
|
// Manage XP
|
||||||
|
if (rollData.isReussiteCritique || rollData.isEchecCritique) {
|
||||||
|
actor.modifyXP(rollData.carac.key, 1)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
@ -454,6 +489,10 @@ export class TeDeumUtility {
|
|||||||
type: "roll-data",
|
type: "roll-data",
|
||||||
rollMode: game.settings.get("core", "rollMode"),
|
rollMode: game.settings.get("core", "rollMode"),
|
||||||
difficulty: "pardefaut",
|
difficulty: "pardefaut",
|
||||||
|
bonusMalus : "0",
|
||||||
|
isReroll : false,
|
||||||
|
enableProvidence : false,
|
||||||
|
malusBlessures: 0,
|
||||||
config: duplicate(game.system.tedeum.config)
|
config: duplicate(game.system.tedeum.config)
|
||||||
}
|
}
|
||||||
TeDeumUtility.updateWithTarget(rollData)
|
TeDeumUtility.updateWithTarget(rollData)
|
||||||
|
@ -6,7 +6,7 @@ export class TeDeumRollDialog extends Dialog {
|
|||||||
static async create(actor, rollData) {
|
static async create(actor, rollData) {
|
||||||
|
|
||||||
let options = { classes: ["tedeum-roll-dialog"], width: 540, height: 'fit-content', 'z-index': 99999 }
|
let options = { classes: ["tedeum-roll-dialog"], width: 540, height: 'fit-content', 'z-index': 99999 }
|
||||||
let html = await renderTemplate('systems/fvtt-tedeum/templates/dialogs/roll-dialog-generic.hbs', rollData);
|
let html = await renderTemplate('systems/fvtt-te-deum/templates/dialogs/roll-dialog-generic.hbs', rollData);
|
||||||
return new TeDeumRollDialog(actor, rollData, html, options);
|
return new TeDeumRollDialog(actor, rollData, html, options);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -38,12 +38,12 @@ export class TeDeumRollDialog extends Dialog {
|
|||||||
|
|
||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
roll() {
|
roll() {
|
||||||
EcrymeUtility.rollEcryme(this.rollData)
|
TeDeumUtility.rollTeDeum(this.rollData)
|
||||||
}
|
}
|
||||||
|
|
||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
async refreshDialog() {
|
async refreshDialog() {
|
||||||
const content = await renderTemplate("systems/fvtt-tedeum/templates/dialogs/roll-dialog-generic.hbs", this.rollData)
|
const content = await renderTemplate("systems/fvtt-te-deum/templates/dialogs/roll-dialog-generic.hbs", this.rollData)
|
||||||
this.data.content = content
|
this.data.content = content
|
||||||
this.render(true)
|
this.render(true)
|
||||||
}
|
}
|
||||||
@ -61,8 +61,15 @@ export class TeDeumRollDialog extends Dialog {
|
|||||||
this.rollData.bonusMalusPerso = Number(event.currentTarget.value)
|
this.rollData.bonusMalusPerso = Number(event.currentTarget.value)
|
||||||
})
|
})
|
||||||
html.find('#roll-difficulty').change((event) => {
|
html.find('#roll-difficulty').change((event) => {
|
||||||
this.rollData.difficulty = Number(event.currentTarget.value) || 0
|
this.rollData.difficulty = String(event.currentTarget.value) || "pardefaut"
|
||||||
})
|
})
|
||||||
|
html.find('#roll-bonus-malus').change((event) => {
|
||||||
|
this.rollData.bonusMalus = event.currentTarget.value || "0"
|
||||||
|
})
|
||||||
|
html.find('#roll-enable-providence').change((event) => {
|
||||||
|
this.rollData.enableProvidence = event.currentTarget.checked
|
||||||
|
})
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
@ -1 +1 @@
|
|||||||
MANIFEST-000022
|
MANIFEST-000042
|
||||||
|
@ -1,3 +1,8 @@
|
|||||||
2024/05/06-06:55:13.182706 7f87a4a006c0 Recovering log #20
|
2024/05/30-18:20:39.192517 7f19c60006c0 Recovering log #40
|
||||||
2024/05/06-06:55:13.193417 7f87a4a006c0 Delete type=3 #18
|
2024/05/30-18:20:39.203008 7f19c60006c0 Delete type=3 #38
|
||||||
2024/05/06-06:55:13.193524 7f87a4a006c0 Delete type=0 #20
|
2024/05/30-18:20:39.203069 7f19c60006c0 Delete type=0 #40
|
||||||
|
2024/05/31-09:06:57.898180 7f19c56006c0 Level-0 table #45: started
|
||||||
|
2024/05/31-09:06:57.898214 7f19c56006c0 Level-0 table #45: 0 bytes OK
|
||||||
|
2024/05/31-09:06:57.905181 7f19c56006c0 Delete type=0 #43
|
||||||
|
2024/05/31-09:06:57.905376 7f19c56006c0 Manual compaction at level-0 from '!folders!4OPhigzcPv46qbWW' @ 72057594037927935 : 1 .. '!items!zwC0H39ar5Pl1l92' @ 0 : 0; will stop at (end)
|
||||||
|
2024/05/31-09:06:57.905426 7f19c56006c0 Manual compaction at level-1 from '!folders!4OPhigzcPv46qbWW' @ 72057594037927935 : 1 .. '!items!zwC0H39ar5Pl1l92' @ 0 : 0; will stop at (end)
|
||||||
|
@ -1,8 +1,8 @@
|
|||||||
2024/05/05-20:14:18.376388 7f87a54006c0 Recovering log #16
|
2024/05/29-14:03:31.123056 7f1708c006c0 Recovering log #36
|
||||||
2024/05/05-20:14:18.386554 7f87a54006c0 Delete type=3 #14
|
2024/05/29-14:03:31.132934 7f1708c006c0 Delete type=3 #34
|
||||||
2024/05/05-20:14:18.386658 7f87a54006c0 Delete type=0 #16
|
2024/05/29-14:03:31.132990 7f1708c006c0 Delete type=0 #36
|
||||||
2024/05/05-22:07:39.129357 7f879e4006c0 Level-0 table #21: started
|
2024/05/29-14:17:02.858350 7f17072006c0 Level-0 table #41: started
|
||||||
2024/05/05-22:07:39.129390 7f879e4006c0 Level-0 table #21: 0 bytes OK
|
2024/05/29-14:17:02.858400 7f17072006c0 Level-0 table #41: 0 bytes OK
|
||||||
2024/05/05-22:07:39.175466 7f879e4006c0 Delete type=0 #19
|
2024/05/29-14:17:02.865141 7f17072006c0 Delete type=0 #39
|
||||||
2024/05/05-22:07:39.175815 7f879e4006c0 Manual compaction at level-0 from '!folders!4OPhigzcPv46qbWW' @ 72057594037927935 : 1 .. '!items!zwC0H39ar5Pl1l92' @ 0 : 0; will stop at (end)
|
2024/05/29-14:17:02.865366 7f17072006c0 Manual compaction at level-0 from '!folders!4OPhigzcPv46qbWW' @ 72057594037927935 : 1 .. '!items!zwC0H39ar5Pl1l92' @ 0 : 0; will stop at (end)
|
||||||
2024/05/05-22:07:39.175892 7f879e4006c0 Manual compaction at level-1 from '!folders!4OPhigzcPv46qbWW' @ 72057594037927935 : 1 .. '!items!zwC0H39ar5Pl1l92' @ 0 : 0; will stop at (end)
|
2024/05/29-14:17:02.865414 7f17072006c0 Manual compaction at level-1 from '!folders!4OPhigzcPv46qbWW' @ 72057594037927935 : 1 .. '!items!zwC0H39ar5Pl1l92' @ 0 : 0; will stop at (end)
|
||||||
|
BIN
packs/competences/MANIFEST-000042
Normal file
@ -1 +1 @@
|
|||||||
MANIFEST-000084
|
MANIFEST-000104
|
||||||
|
@ -1,3 +1,7 @@
|
|||||||
2024/05/06-06:55:13.169191 7f879fe006c0 Recovering log #82
|
2024/05/30-18:20:39.177986 7f19c74006c0 Recovering log #102
|
||||||
2024/05/06-06:55:13.180412 7f879fe006c0 Delete type=3 #80
|
2024/05/30-18:20:39.190129 7f19c74006c0 Delete type=3 #100
|
||||||
2024/05/06-06:55:13.180524 7f879fe006c0 Delete type=0 #82
|
2024/05/30-18:20:39.190232 7f19c74006c0 Delete type=0 #102
|
||||||
|
2024/05/31-09:06:57.885512 7f19c56006c0 Level-0 table #107: started
|
||||||
|
2024/05/31-09:06:57.885543 7f19c56006c0 Level-0 table #107: 0 bytes OK
|
||||||
|
2024/05/31-09:06:57.891829 7f19c56006c0 Delete type=0 #105
|
||||||
|
2024/05/31-09:06:57.905315 7f19c56006c0 Manual compaction at level-0 from 'undefined' @ 72057594037927935 : 1 .. 'undefined' @ 0 : 0; will stop at (end)
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
2024/05/05-20:14:18.363805 7f879f4006c0 Recovering log #78
|
2024/05/29-14:03:31.108608 7f17096006c0 Recovering log #98
|
||||||
2024/05/05-20:14:18.374315 7f879f4006c0 Delete type=3 #76
|
2024/05/29-14:03:31.119647 7f17096006c0 Delete type=3 #96
|
||||||
2024/05/05-20:14:18.374420 7f879f4006c0 Delete type=0 #78
|
2024/05/29-14:03:31.119700 7f17096006c0 Delete type=0 #98
|
||||||
2024/05/05-22:07:39.092489 7f879e4006c0 Level-0 table #83: started
|
2024/05/29-14:17:02.850741 7f17072006c0 Level-0 table #103: started
|
||||||
2024/05/05-22:07:39.092519 7f879e4006c0 Level-0 table #83: 0 bytes OK
|
2024/05/29-14:17:02.850779 7f17072006c0 Level-0 table #103: 0 bytes OK
|
||||||
2024/05/05-22:07:39.129220 7f879e4006c0 Delete type=0 #81
|
2024/05/29-14:17:02.858192 7f17072006c0 Delete type=0 #101
|
||||||
2024/05/05-22:07:39.175791 7f879e4006c0 Manual compaction at level-0 from 'undefined' @ 72057594037927935 : 1 .. 'undefined' @ 0 : 0; will stop at (end)
|
2024/05/29-14:17:02.865350 7f17072006c0 Manual compaction at level-0 from 'undefined' @ 72057594037927935 : 1 .. 'undefined' @ 0 : 0; will stop at (end)
|
||||||
|
BIN
packs/equipment/MANIFEST-000104
Normal file
@ -503,7 +503,6 @@ nav.sheet-tabs .item:after {
|
|||||||
right: 0;
|
right: 0;
|
||||||
height: 2rem;
|
height: 2rem;
|
||||||
width: 1px;
|
width: 1px;
|
||||||
border-right: 1px dashed rgba(52, 52, 52, 0.25);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.sheet .tab[data-tab] {
|
.sheet .tab[data-tab] {
|
||||||
@ -556,8 +555,8 @@ ul, li {
|
|||||||
}
|
}
|
||||||
|
|
||||||
.sheet li {
|
.sheet li {
|
||||||
margin: 0.010rem;
|
margin: 0.2rem;
|
||||||
padding: 0.25rem;
|
padding: 0.15rem;
|
||||||
}
|
}
|
||||||
.header-fields li {
|
.header-fields li {
|
||||||
margin: 0;
|
margin: 0;
|
||||||
@ -584,13 +583,11 @@ ul, li {
|
|||||||
}
|
}
|
||||||
|
|
||||||
.list-item {
|
.list-item {
|
||||||
/*margin: 0.125rem;*/
|
margin: 0.125rem;
|
||||||
/*box-shadow: inset 0px 0px 1px #00000096;
|
box-shadow: inset 0px 0px 1px #00000096;
|
||||||
border-radius: 0.25rem;
|
border-radius: 0.25rem;
|
||||||
padding: 0.125rem;*/
|
padding: 0.125rem;
|
||||||
flex: 1 1 5rem;
|
flex: 1 1 5rem;
|
||||||
display: flex !important;
|
|
||||||
color: rgba(19, 18, 18, 0.95);
|
|
||||||
}
|
}
|
||||||
.list-item-shadow {
|
.list-item-shadow {
|
||||||
background:rgba(87, 60, 32, 0.35);
|
background:rgba(87, 60, 32, 0.35);
|
||||||
@ -648,12 +645,9 @@ ul, li {
|
|||||||
flex-grow: 0;
|
flex-grow: 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
.comp-column-list {
|
|
||||||
column-count: 4;
|
|
||||||
}
|
|
||||||
.comp-li {
|
.comp-li {
|
||||||
max-width: 6rem;
|
max-width: 8rem;
|
||||||
width: 6rem;
|
width: 8rem;
|
||||||
}
|
}
|
||||||
.description-label {
|
.description-label {
|
||||||
flex-grow: 2;
|
flex-grow: 2;
|
||||||
@ -731,8 +725,8 @@ ul, li {
|
|||||||
flex-grow: 0;
|
flex-grow: 0;
|
||||||
flex-shrink: 0;
|
flex-shrink: 0;
|
||||||
flex-basis: 40px;
|
flex-basis: 40px;
|
||||||
margin-right: 0.25rem;
|
margin-right: 0.15rem;
|
||||||
margin-left: 0.25rem;
|
margin-left: 0.15rem;
|
||||||
}
|
}
|
||||||
|
|
||||||
.abilities-table {
|
.abilities-table {
|
||||||
@ -830,7 +824,7 @@ ul, li {
|
|||||||
}
|
}
|
||||||
|
|
||||||
.sidebar-tab .directory-list .entity {
|
.sidebar-tab .directory-list .entity {
|
||||||
border-top: 1px dashed rgba(0,0,0,0.25);
|
border-top: 1px rgba(0,0,0,0.25);
|
||||||
border-bottom: 0 none;
|
border-bottom: 0 none;
|
||||||
padding: 0.25rem 0;
|
padding: 0.25rem 0;
|
||||||
}
|
}
|
||||||
@ -1217,64 +1211,9 @@ ul, li {
|
|||||||
max-width: 2rem;
|
max-width: 2rem;
|
||||||
min-width: 2rem;
|
min-width: 2rem;
|
||||||
}
|
}
|
||||||
.item-name-label-header {
|
.item-field {
|
||||||
flex-grow:2;
|
|
||||||
max-width: 12rem;
|
|
||||||
min-width: 12rem;
|
|
||||||
}
|
|
||||||
.item-name-label-header-long {
|
|
||||||
flex-grow:2;
|
|
||||||
max-width: 14rem;
|
|
||||||
min-width: 14rem;
|
|
||||||
}
|
|
||||||
.item-name-label-header-long2 {
|
|
||||||
flex-grow:2;
|
|
||||||
max-width: 24rem;
|
|
||||||
min-width: 24rem;
|
|
||||||
}
|
|
||||||
.item-name-label {
|
|
||||||
flex-grow:2;
|
|
||||||
max-width: 10rem;
|
|
||||||
min-width: 10rem;
|
|
||||||
}
|
|
||||||
.item-name-label-long {
|
|
||||||
flex-grow:2;
|
|
||||||
max-width: 12rem;
|
|
||||||
min-width: 12rem;
|
|
||||||
}
|
|
||||||
.item-name-label-long2 {
|
|
||||||
flex-grow:2;
|
|
||||||
max-width: 20rem;
|
|
||||||
min-width: 20rem;
|
|
||||||
}
|
|
||||||
.item-name-label-long3 {
|
|
||||||
flex-grow:2;
|
|
||||||
max-width: 18rem;
|
|
||||||
min-width: 18rem;
|
|
||||||
}
|
|
||||||
.item-name-label-short {
|
|
||||||
flex-grow:1;
|
|
||||||
max-width: 4rem;
|
|
||||||
min-width: 4rem;
|
|
||||||
}
|
|
||||||
.item-name-label-medium {
|
|
||||||
flex-grow:2;
|
|
||||||
max-width: 6rem;
|
|
||||||
min-width: 6rem;
|
|
||||||
}
|
|
||||||
.item-name-label-text-margin {
|
|
||||||
margin-top: 4px;
|
margin-top: 4px;
|
||||||
}
|
}
|
||||||
.item-name-label-long2 {
|
|
||||||
flex-grow:2;
|
|
||||||
max-width: 22rem;
|
|
||||||
min-width: 22rem;
|
|
||||||
}
|
|
||||||
.item-name-label-level2 {
|
|
||||||
flex-grow:2;
|
|
||||||
max-width: 9rem;
|
|
||||||
min-width: 9rem;
|
|
||||||
}
|
|
||||||
.item-field-label-short {
|
.item-field-label-short {
|
||||||
flex-grow:1;
|
flex-grow:1;
|
||||||
max-width: 4rem;
|
max-width: 4rem;
|
||||||
@ -1295,9 +1234,27 @@ ul, li {
|
|||||||
max-width: 10rem;
|
max-width: 10rem;
|
||||||
min-width: 10rem;
|
min-width: 10rem;
|
||||||
}
|
}
|
||||||
|
.item-field-label-long14 {
|
||||||
|
flex-grow:1;
|
||||||
|
max-width: 14rem;
|
||||||
|
min-width: 14rem;
|
||||||
|
}
|
||||||
|
.carac-box {
|
||||||
|
background-color: rgba(155, 155, 150, 0.3);
|
||||||
|
box-shadow: inset 0px 0px 1px #00000096;
|
||||||
|
border-radius: 0.45rem;
|
||||||
|
}
|
||||||
|
.comp-box {
|
||||||
|
max-width: 16rem;
|
||||||
|
min-width: 16rem;
|
||||||
|
width: 16rem;
|
||||||
|
min-height: 1.6rem;
|
||||||
|
}
|
||||||
|
|
||||||
.item-control-end {
|
.item-control-end {
|
||||||
align-self: flex-end;
|
align-self: flex-end;
|
||||||
}
|
}
|
||||||
|
|
||||||
.alternate-list {
|
.alternate-list {
|
||||||
margin-top: 4px;
|
margin-top: 4px;
|
||||||
flex-wrap: nowrap;
|
flex-wrap: nowrap;
|
||||||
@ -1314,6 +1271,9 @@ ul, li {
|
|||||||
min-width:3rem;
|
min-width:3rem;
|
||||||
max-width: 3rem;
|
max-width: 3rem;
|
||||||
}
|
}
|
||||||
|
.item-left-pad {
|
||||||
|
margin-left: 4px;
|
||||||
|
}
|
||||||
.attribute-label {
|
.attribute-label {
|
||||||
font-weight: bold;
|
font-weight: bold;
|
||||||
}
|
}
|
||||||
|
@ -475,7 +475,6 @@ nav.sheet-tabs .item:after {
|
|||||||
right: 0;
|
right: 0;
|
||||||
height: 2rem;
|
height: 2rem;
|
||||||
width: 1px;
|
width: 1px;
|
||||||
border-right: 1px dashed rgba(52, 52, 52, 0.25);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.sheet .tab[data-tab] {
|
.sheet .tab[data-tab] {
|
||||||
@ -528,8 +527,8 @@ ul, li {
|
|||||||
}
|
}
|
||||||
|
|
||||||
.sheet li {
|
.sheet li {
|
||||||
margin: 0.010rem;
|
margin: 0.2rem;
|
||||||
padding: 0.25rem;
|
padding: 0.15rem;
|
||||||
}
|
}
|
||||||
.header-fields li {
|
.header-fields li {
|
||||||
margin: 0;
|
margin: 0;
|
||||||
@ -556,13 +555,11 @@ ul, li {
|
|||||||
}
|
}
|
||||||
|
|
||||||
.list-item {
|
.list-item {
|
||||||
/*margin: 0.125rem;*/
|
margin: 0.125rem;
|
||||||
/*box-shadow: inset 0px 0px 1px #00000096;
|
box-shadow: inset 0px 0px 1px rgba(0,0,0,0.58824);
|
||||||
border-radius: 0.25rem;
|
border-radius: 0.25rem;
|
||||||
padding: 0.125rem;*/
|
padding: 0.125rem;
|
||||||
flex: 1 1 5rem;
|
flex: 1 1 5rem;
|
||||||
display: flex !important;
|
|
||||||
color: rgba(19, 18, 18, 0.95);
|
|
||||||
}
|
}
|
||||||
.list-item-shadow {
|
.list-item-shadow {
|
||||||
background:rgba(87, 60, 32, 0.35);
|
background:rgba(87, 60, 32, 0.35);
|
||||||
@ -620,13 +617,9 @@ ul, li {
|
|||||||
flex-grow: 0;
|
flex-grow: 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
.comp-column-list {
|
|
||||||
-moz-column-count: 4;
|
|
||||||
column-count: 4;
|
|
||||||
}
|
|
||||||
.comp-li {
|
.comp-li {
|
||||||
max-width: 6rem;
|
max-width: 8rem;
|
||||||
width: 6rem;
|
width: 8rem;
|
||||||
}
|
}
|
||||||
.description-label {
|
.description-label {
|
||||||
flex-grow: 2;
|
flex-grow: 2;
|
||||||
@ -704,8 +697,8 @@ ul, li {
|
|||||||
flex-grow: 0;
|
flex-grow: 0;
|
||||||
flex-shrink: 0;
|
flex-shrink: 0;
|
||||||
flex-basis: 40px;
|
flex-basis: 40px;
|
||||||
margin-right: 0.25rem;
|
margin-right: 0.15rem;
|
||||||
margin-left: 0.25rem;
|
margin-left: 0.15rem;
|
||||||
}
|
}
|
||||||
|
|
||||||
.abilities-table {
|
.abilities-table {
|
||||||
@ -805,7 +798,7 @@ ul, li {
|
|||||||
}
|
}
|
||||||
|
|
||||||
.sidebar-tab .directory-list .entity {
|
.sidebar-tab .directory-list .entity {
|
||||||
border-top: 1px dashed rgba(0,0,0,0.25);
|
border-top: 1px rgba(0,0,0,0.25);
|
||||||
border-bottom: 0 none;
|
border-bottom: 0 none;
|
||||||
padding: 0.25rem 0;
|
padding: 0.25rem 0;
|
||||||
}
|
}
|
||||||
@ -1199,64 +1192,9 @@ ul, li {
|
|||||||
max-width: 2rem;
|
max-width: 2rem;
|
||||||
min-width: 2rem;
|
min-width: 2rem;
|
||||||
}
|
}
|
||||||
.item-name-label-header {
|
.item-field {
|
||||||
flex-grow:2;
|
|
||||||
max-width: 12rem;
|
|
||||||
min-width: 12rem;
|
|
||||||
}
|
|
||||||
.item-name-label-header-long {
|
|
||||||
flex-grow:2;
|
|
||||||
max-width: 14rem;
|
|
||||||
min-width: 14rem;
|
|
||||||
}
|
|
||||||
.item-name-label-header-long2 {
|
|
||||||
flex-grow:2;
|
|
||||||
max-width: 24rem;
|
|
||||||
min-width: 24rem;
|
|
||||||
}
|
|
||||||
.item-name-label {
|
|
||||||
flex-grow:2;
|
|
||||||
max-width: 10rem;
|
|
||||||
min-width: 10rem;
|
|
||||||
}
|
|
||||||
.item-name-label-long {
|
|
||||||
flex-grow:2;
|
|
||||||
max-width: 12rem;
|
|
||||||
min-width: 12rem;
|
|
||||||
}
|
|
||||||
.item-name-label-long2 {
|
|
||||||
flex-grow:2;
|
|
||||||
max-width: 20rem;
|
|
||||||
min-width: 20rem;
|
|
||||||
}
|
|
||||||
.item-name-label-long3 {
|
|
||||||
flex-grow:2;
|
|
||||||
max-width: 18rem;
|
|
||||||
min-width: 18rem;
|
|
||||||
}
|
|
||||||
.item-name-label-short {
|
|
||||||
flex-grow:1;
|
|
||||||
max-width: 4rem;
|
|
||||||
min-width: 4rem;
|
|
||||||
}
|
|
||||||
.item-name-label-medium {
|
|
||||||
flex-grow:2;
|
|
||||||
max-width: 6rem;
|
|
||||||
min-width: 6rem;
|
|
||||||
}
|
|
||||||
.item-name-label-text-margin {
|
|
||||||
margin-top: 4px;
|
margin-top: 4px;
|
||||||
}
|
}
|
||||||
.item-name-label-long2 {
|
|
||||||
flex-grow:2;
|
|
||||||
max-width: 22rem;
|
|
||||||
min-width: 22rem;
|
|
||||||
}
|
|
||||||
.item-name-label-level2 {
|
|
||||||
flex-grow:2;
|
|
||||||
max-width: 9rem;
|
|
||||||
min-width: 9rem;
|
|
||||||
}
|
|
||||||
.item-field-label-short {
|
.item-field-label-short {
|
||||||
flex-grow:1;
|
flex-grow:1;
|
||||||
max-width: 4rem;
|
max-width: 4rem;
|
||||||
@ -1277,9 +1215,27 @@ ul, li {
|
|||||||
max-width: 10rem;
|
max-width: 10rem;
|
||||||
min-width: 10rem;
|
min-width: 10rem;
|
||||||
}
|
}
|
||||||
|
.item-field-label-long14 {
|
||||||
|
flex-grow:1;
|
||||||
|
max-width: 14rem;
|
||||||
|
min-width: 14rem;
|
||||||
|
}
|
||||||
|
.carac-box {
|
||||||
|
background-color: rgba(155, 155, 150, 0.3);
|
||||||
|
box-shadow: inset 0px 0px 1px rgba(0,0,0,0.58824);
|
||||||
|
border-radius: 0.45rem;
|
||||||
|
}
|
||||||
|
.comp-box {
|
||||||
|
max-width: 16rem;
|
||||||
|
min-width: 16rem;
|
||||||
|
width: 16rem;
|
||||||
|
min-height: 1.6rem;
|
||||||
|
}
|
||||||
|
|
||||||
.item-control-end {
|
.item-control-end {
|
||||||
align-self: flex-end;
|
align-self: flex-end;
|
||||||
}
|
}
|
||||||
|
|
||||||
.alternate-list {
|
.alternate-list {
|
||||||
margin-top: 4px;
|
margin-top: 4px;
|
||||||
flex-wrap: nowrap;
|
flex-wrap: nowrap;
|
||||||
@ -1296,6 +1252,9 @@ ul, li {
|
|||||||
min-width:3rem;
|
min-width:3rem;
|
||||||
max-width: 3rem;
|
max-width: 3rem;
|
||||||
}
|
}
|
||||||
|
.item-left-pad {
|
||||||
|
margin-left: 4px;
|
||||||
|
}
|
||||||
.attribute-label {
|
.attribute-label {
|
||||||
font-weight: bold;
|
font-weight: bold;
|
||||||
}
|
}
|
||||||
|
@ -38,34 +38,34 @@
|
|||||||
<div class="tab principal" data-group="primary" data-tab="principal">
|
<div class="tab principal" data-group="primary" data-tab="principal">
|
||||||
|
|
||||||
<div class="grid grid-2col">
|
<div class="grid grid-2col">
|
||||||
<ul>
|
|
||||||
|
<ul class="item-list alternate-list">
|
||||||
{{#each caracList as |char key|}}
|
{{#each caracList as |char key|}}
|
||||||
<li class="flexrow">
|
<li class="item flexrow list-item carac-box">
|
||||||
<label class="item-field-label-medium">{{char.name}}</label>
|
<label class="item-left-pad item-field item-field-label-medium">{{char.name}}</label>
|
||||||
<select type="text" class="input-numeric-short" name="system.caracteristiques.{{key}}.value"data-dtype="Number" />
|
<select type="text" class="input-numeric-short" name="system.caracteristiques.{{key}}.value"data-dtype="Number" />
|
||||||
{{selectOptions @root.config.descriptionValeur selected=char.value labelAttr="valeur"}}
|
{{selectOptions @root.config.descriptionValeur selected=char.value labelAttr="valeur"}}
|
||||||
</select>
|
</select>
|
||||||
<label class="">{{char.qualite}}</label>
|
<label class="item-field item-field-label-medium">{{char.qualite}}</label>
|
||||||
<label class="">{{char.dice}}</label>
|
<label class="item-field item-field-label-medium">{{char.dice}} ({{char.negativeDice}})</label>
|
||||||
<label class="">{{char.negativeDice}}</label>
|
|
||||||
</li>
|
</li>
|
||||||
{{/each}}
|
{{/each}}
|
||||||
</ul>
|
</ul>
|
||||||
|
|
||||||
<ul>
|
<ul class="item-list alternate-list">
|
||||||
<li class="flexrow">
|
<li class="item flexrow list-item carac-box">
|
||||||
<label class="item-field-label-medium">Providence</label>
|
<label class="item-left-pad item-field item-field-label-medium">Providence</label>
|
||||||
<select type="text" class="input-numeric-short" name="system.providence.value" data-dtype="Number" />
|
<select type="text" class="input-numeric-short" name="system.providence.value" data-dtype="Number" />
|
||||||
{{selectOptions @root.config.providence selected=providence.value nameAttr="value" valueAttr="value" labelAttr="value"}}
|
{{selectOptions @root.config.providence selected=providence.value nameAttr="value" valueAttr="value" labelAttr="value"}}
|
||||||
</select>
|
</select>
|
||||||
<label class="item-field-label-long">{{providence.qualite}}</label>
|
<label class="item-field item-field-label-long">{{providence.qualite}}</label>
|
||||||
<label class="item-field-label-short">{{providence.dice}}</label>
|
<label class="item-field item-field-label-short">{{providence.dice}}</label>
|
||||||
</li>
|
</li>
|
||||||
<li class="flexrow">
|
<li class="item flexrow list-item carac-box">
|
||||||
<label class="">Bienveillance</label>
|
<label class="item-left-pad item-field item-field-label-medium">Bienveillance</label>
|
||||||
<input class="input-numeric-short" type="text" name="system.bienveillance.value" data-dtype="Number" />
|
<input class="input-numeric-short" type="text" name="system.bienveillance.value" data-dtype="Number" />
|
||||||
<label class="item-field-label-long"></label>
|
<label class="item-field item-field-label-long"></label>
|
||||||
<label class="item-field-label-short"></label>
|
<label class="item-field item-field -label-short"></label>
|
||||||
</li>
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
|
|
||||||
@ -79,76 +79,27 @@
|
|||||||
{{#each arbreCompetences as |carac key|}}
|
{{#each arbreCompetences as |carac key|}}
|
||||||
<ul>
|
<ul>
|
||||||
<li class="flexrow">
|
<li class="flexrow">
|
||||||
<h3 class="item-field-label-medium" data-tooltip="Caracteristique">{{carac.name}}</h3>
|
<h3 class="item-field-label-long14" data-tooltip="Caracteristique">{{carac.name}} : {{carac.qualite}}</h3>
|
||||||
<label class="">{{carac.value}}</label>
|
<label class="item-field item-field-label-short">{{carac.value}}</label>
|
||||||
<label class="">{{carac.qualite}}</label>
|
<label class="item-field item-field-label-medium">{{carac.dice}} (xp : {{carac.experience}})</label>
|
||||||
<label class="">{{carac.dice}}</label>
|
|
||||||
<label class="">{{carac.negativeDice}}</label>
|
|
||||||
</li>
|
</li>
|
||||||
<ul class="comp-column-list">
|
<ul class="ul-level1 flexrow item-list alternate-list">
|
||||||
{{#each carac.competences as |comp skillkey|}}
|
{{#each carac.competences as |comp skillkey|}}
|
||||||
<li class="flexrow comp-li">
|
<li class="flexrow carac-box comp-box item-id" data-item-id="{{comp.id}}">
|
||||||
<label class="item-field-label-medium">{{comp.name}}</label>
|
<label class="item-left-pad item-field item-field-label-long">
|
||||||
<label class="item-field-label-medium">{{comp.system.score}}</label>
|
<a class="roll-competence" data-comp-id="{{comp.id}}">{{comp.name}} {{comp.system.formula}} </a>
|
||||||
|
</label>
|
||||||
|
<span> </span>
|
||||||
|
<a class="item-control item-edit" title="Editer"><i class="fas fa-edit"></i></a>
|
||||||
|
<a class="item-control item-delete" title="Supprimer"><i class="fas fa-trash"></i></a>
|
||||||
</li>
|
</li>
|
||||||
{{/each}}
|
{{/each}}
|
||||||
|
</ul>
|
||||||
</ul>
|
|
||||||
</ul>
|
</ul>
|
||||||
{{/each}}
|
{{/each}}
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
{{#if hasCephaly}}
|
|
||||||
{{!-- Cephaly Tab --}}
|
|
||||||
<div class="tab cephaly" data-group="primary" data-tab="cephaly">
|
|
||||||
|
|
||||||
<div class="grid grid-2col">
|
|
||||||
|
|
||||||
<div>
|
|
||||||
|
|
||||||
<h3>{{localize "ECRY.ui.cephaly"}}</h3>
|
|
||||||
<ul class="stat-list alternate-list item-list">
|
|
||||||
{{#each cephalySkills as |skill skillkey|}}
|
|
||||||
<li class="item flexrow list-item">
|
|
||||||
<span class="item-name-label-long">
|
|
||||||
<a class="roll-cephaly" data-category-key="cephaly" data-skill-key="{{skillkey}}">
|
|
||||||
<i class="fa-solid fa-dice-d6"></i>
|
|
||||||
{{localize skill.name}}
|
|
||||||
</a></span>
|
|
||||||
<select class="item-field-label-short" type="text" name="system.cephaly.skilllist.{{skillkey}}.value"
|
|
||||||
value="{{skill.value}}" data-dtype="Number">
|
|
||||||
{{#select skill.value}}
|
|
||||||
{{#each @root.config.skillLevel as |level key| }}
|
|
||||||
<option value="{{level}}">{{level}}</option>
|
|
||||||
{{/each}}
|
|
||||||
{{/select}}
|
|
||||||
</select>
|
|
||||||
</li>
|
|
||||||
{{/each}}
|
|
||||||
</ul>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div>
|
|
||||||
{{#if annency}}
|
|
||||||
<h3>{{localize "ECRY.ui.annency"}} : <a class="open-annency" data-annency-id="{{annency.id}}">{{annency.name}}<i class="fas fa-edit"></i></a></h3>
|
|
||||||
<ul class="stat-list alternate-list item-list">
|
|
||||||
<li class="item flexrow list-item">
|
|
||||||
<span class="item-name-label-long">
|
|
||||||
{{annency.system.base.description}}
|
|
||||||
</span>
|
|
||||||
</li>
|
|
||||||
</ul>
|
|
||||||
{{/if}}
|
|
||||||
|
|
||||||
</div>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
{{/if}}
|
|
||||||
|
|
||||||
<div class="tab traits" data-group="primary" data-tab="traits">
|
<div class="tab traits" data-group="primary" data-tab="traits">
|
||||||
|
|
||||||
<ul class="item-list alternate-list">
|
<ul class="item-list alternate-list">
|
||||||
|
@ -1,37 +0,0 @@
|
|||||||
<div class="chat-message-header">
|
|
||||||
{{#if actorImg}}
|
|
||||||
<img class="actor-icon" src="{{actorImg}}" alt="{{alias}}" />
|
|
||||||
{{/if}}
|
|
||||||
<h4 class="chat-actor-name">{{alias}}</h4>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<hr>
|
|
||||||
|
|
||||||
{{#if img}}
|
|
||||||
<div>
|
|
||||||
<img class="chat-icon" src="{{img}}" alt="{{alias}}" />
|
|
||||||
</div>
|
|
||||||
{{/if}}
|
|
||||||
|
|
||||||
<div>
|
|
||||||
<ul>
|
|
||||||
<li>{{localize "ECRY.ui.cephaly"}} : {{localize skill.name}}</li>
|
|
||||||
|
|
||||||
{{#if annency}}
|
|
||||||
<li>{{localize "ECRY.ui.annencybonus"}} {{annency.name}}: {{annencyBonus}}</li>
|
|
||||||
{{/if}}
|
|
||||||
|
|
||||||
{{#if (gt marginExecution 0)}}
|
|
||||||
<li>{{localize "ECRY.ui.execution"}} {{executionTotal}} vs {{difficulty}} : {{marginExecution}}</li>
|
|
||||||
<li>{{localize cephalySuccess}}</li>
|
|
||||||
{{/if}}
|
|
||||||
|
|
||||||
{{#if (gt marginPreservation 0)}}
|
|
||||||
<li>{{localize "ECRY.ui.preservation"}} {{preservationTotal}} vs {{difficulty}} : {{marginPreservation}}</li>
|
|
||||||
<li>{{localize cephalyFailure}}</li>
|
|
||||||
{{/if}}
|
|
||||||
|
|
||||||
</ul>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
</div>
|
|
@ -1,72 +0,0 @@
|
|||||||
<div class="chat-message-header">
|
|
||||||
{{#if actorImg}}
|
|
||||||
<img class="actor-icon" src="{{actorImg}}" alt="{{alias}}" />
|
|
||||||
{{/if}}
|
|
||||||
<h4 class="chat-actor-name">{{alias}}</h4>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<hr>
|
|
||||||
|
|
||||||
{{#if img}}
|
|
||||||
<div>
|
|
||||||
<img class="chat-icon" src="{{img}}" alt="{{alias}}" />
|
|
||||||
</div>
|
|
||||||
{{/if}}
|
|
||||||
|
|
||||||
<div>
|
|
||||||
<ul>
|
|
||||||
{{#if (eq mode "cephaly")}}
|
|
||||||
<li>{{localize "ECRY.ui.cephaly"}} : {{localize skill.name}} </li>
|
|
||||||
{{else}}
|
|
||||||
<li>Confrontation : {{alias}} </li>
|
|
||||||
{{/if}}
|
|
||||||
|
|
||||||
<li>{{localize skill.name}}: {{skill.value}} </li>
|
|
||||||
{{#if spec}}
|
|
||||||
<li>{{localize "ECRY.chat.specialization"}} {{spec.name}} (+{{spec.system.bonus}}) </li>
|
|
||||||
{{/if}}
|
|
||||||
|
|
||||||
{{#each traitsBonus as |trait idx|}}
|
|
||||||
{{#if trait.activated}}
|
|
||||||
<li>{{localize "ECRY.chat.traitbonus"}}: {{trait.name}} ({{trait.system.level}}) </li>
|
|
||||||
{{/if}}
|
|
||||||
{{/each}}
|
|
||||||
{{#each traitsMalus as |trait idx|}}
|
|
||||||
{{#if trait.activated}}
|
|
||||||
<li>{{localize "ECRY.chat.traitmalus"}}: {{trait.name}} ({{trait.system.level}}) </li>
|
|
||||||
{{/if}}
|
|
||||||
{{/each}}
|
|
||||||
{{#if bonusMalusTraits}}
|
|
||||||
<li>{{localize "ECRY.chat.bonusmalustraits"}}: {{bonusMalusTraits}} </li>
|
|
||||||
{{/if}}
|
|
||||||
|
|
||||||
{{#if (isGM)}}
|
|
||||||
{{else}}
|
|
||||||
<li>{{localize "ECRY.ui.execution"}} : {{executionTotal}}</li>
|
|
||||||
<li>{{localize "ECRY.ui.preservation"}} : {{preservationTotal}}</li>
|
|
||||||
{{/if}}
|
|
||||||
|
|
||||||
</ul>
|
|
||||||
|
|
||||||
{{#if (isGM)}}
|
|
||||||
{{#if (eq mode "cephaly")}}
|
|
||||||
<div>
|
|
||||||
<span>{{localize "ECRY.chat.difficulty"}}</span>
|
|
||||||
<select id="{{rollId}}-cephaly-difficulty" name="cephaly-difficulty">
|
|
||||||
{{#for 1 20 1}}
|
|
||||||
<option value="{{this}}">{{this}}</option>
|
|
||||||
{{/for}}
|
|
||||||
</select>
|
|
||||||
</div>
|
|
||||||
<button class="button-apply-cephaly-difficulty">{{localize "ECRY.ui.cephalydifficulty"}}</button>
|
|
||||||
{{else}}
|
|
||||||
<button class="button-select-confront">{{localize "ECRY.ui.selectconfront"}}</button>
|
|
||||||
{{/if}}
|
|
||||||
{{else}}
|
|
||||||
<div>
|
|
||||||
{{localize "ECRY.chat.sentogm"}}
|
|
||||||
</div>
|
|
||||||
{{/if}}
|
|
||||||
</div>
|
|
||||||
|
|
||||||
</div>
|
|
@ -1,54 +0,0 @@
|
|||||||
<div class="chat-message-header">
|
|
||||||
{{#if actorImg}}
|
|
||||||
<img class="actor-icon" src="{{actorImg}}" alt="{{alias}}" />
|
|
||||||
{{/if}}
|
|
||||||
<h4 class="chat-actor-name">{{alias}}</h4>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<hr>
|
|
||||||
|
|
||||||
{{#if img}}
|
|
||||||
<div>
|
|
||||||
<img class="chat-icon" src="{{img}}" alt="{{alias}}" />
|
|
||||||
</div>
|
|
||||||
{{/if}}
|
|
||||||
|
|
||||||
<div>
|
|
||||||
<ul>
|
|
||||||
<li>Confrontation : {{rollData1.alias}} vs {{rollData2.alias}}</li>
|
|
||||||
<li>{{localize rollData1.skill.name}} ({{rollData1.skill.value}}) vs {{localize rollData2.skill.name}} ({{rollData2.skill.value}}) </li>
|
|
||||||
<li>{{rollData1.executionTotal}} vs {{rollData2.preservationTotal}} : {{marginExecution}}</li>
|
|
||||||
<li>{{rollData1.preservationTotal}} vs {{rollData2.executionTotal}} : {{marginPreservation}}</li>
|
|
||||||
|
|
||||||
{{#if rollData1.weapon}}
|
|
||||||
<li>{{rollData1.alias}} {{rollData1.weapon.name}} ({{rollData1.weapon.system.effect}})
|
|
||||||
</li>
|
|
||||||
{{/if}}
|
|
||||||
|
|
||||||
{{#if rollData2.weapon}}
|
|
||||||
<li>{{rollData2.alias}} {{rollData2.weapon.name}} ({{rollData2.weapon.system.effect}})</li>
|
|
||||||
{{/if}}
|
|
||||||
|
|
||||||
<li>{{localize "ECRY.ui.effect"}} {{localize "ECRY.ui.execution"}} : {{effectExecution}}</li>
|
|
||||||
{{#if impactExecution}}
|
|
||||||
<li>Impact {{rollData2.alias}} : 1 {{localize (concat "ECRY.ui." impactExecution)}}</li>
|
|
||||||
<button class="button-apply-impact" data-actor-id="{{rollData2.actorId}}" data-impact-type={{rollData1.skill.categKey}} data-impact="{{impactExecution}}">{{localize "ECRY.ui.applyimpact"}}</button>
|
|
||||||
{{/if}}
|
|
||||||
{{#if bonus2}}
|
|
||||||
<li>Bonus {{rollData2.alias}} : {{bonus2}}</li>
|
|
||||||
<button class="button-apply-bonus" data-actor-id="{{rollData2.actorId}}" data-bonus="{{bonus2}}">{{localize "ECRY.ui.applybonus"}}</button>
|
|
||||||
{{/if}}
|
|
||||||
|
|
||||||
<li>{{localize "ECRY.ui.effect"}} {{localize "ECRY.ui.preservation"}} : {{effectPreservation}}</li>
|
|
||||||
{{#if impactPreservation}}
|
|
||||||
<li>Impact {{rollData1.alias}} : 1 {{localize (concat "ECRY.ui." impactPreservation)}}</li>
|
|
||||||
<button class="button-apply-impact" data-actor-id="{{rollData1.actorId}}" data-impact-type={{rollData1.skill.categKey}} data-impact="{{impactPreservation}}">{{localize "ECRY.ui.applyimpact"}}</button>
|
|
||||||
{{/if}}
|
|
||||||
{{#if bonus1}}
|
|
||||||
<li>Bonus {{rollData1.alias}} : {{bonus1}}</li>
|
|
||||||
<button class="button-apply-bonus" data-actor-id="{{rollData1.actorId}}" data-bonus="{{bonus1}}">{{localize "ECRY.ui.applybonus"}}</button>
|
|
||||||
{{/if}}
|
|
||||||
</ul>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
</div>
|
|
@ -18,47 +18,33 @@
|
|||||||
|
|
||||||
<div>
|
<div>
|
||||||
<ul>
|
<ul>
|
||||||
{{#if skill}}
|
{{#if carac}}
|
||||||
<li>{{localize skill.name}}: {{skill.value}} </li>
|
<li>{{carac.name}}: {{carac.qualite}} ({{carac.dice}}) </li>
|
||||||
{{#if spec}}
|
{{/if}}
|
||||||
<li>{{localize "ECRY.chat.specialization"}} {{spec.name}} (+{{spec.system.bonus}}) </li>
|
{{#if competence}}
|
||||||
{{/if}}
|
<li>{{competence.name}}: {{competence.system.score}} </li>
|
||||||
{{/if}}
|
{{/if}}
|
||||||
|
{{#if bonusMalus}}
|
||||||
{{#if impactMalus}}
|
<li>Bonus/Malus: {{bonusMalus}} </li>
|
||||||
<li>{{localize "ECRY.ui.impactmalus"}}: {{impactMalus}} </li>
|
{{/if}}
|
||||||
{{/if}}
|
{{#if enableProvidence}}
|
||||||
|
<li>Un niveau de Providence a été utilisé !</li>
|
||||||
{{#if skillTranscendence}}
|
|
||||||
<li>{{localize "ECRY.ui.skilltranscendence"}}: {{skillTranscendence}} </li>
|
|
||||||
{{/if}}
|
|
||||||
|
|
||||||
{{#if traitsBonusList}}
|
|
||||||
{{#each traitsBonusList as |trait idx|}}
|
|
||||||
<li>{{localize "ECRY.chat.traitbonus"}}: {{trait.name}} ({{trait.system.level}}) </li>
|
|
||||||
{{/each}}
|
|
||||||
{{/if}}
|
|
||||||
{{#if traitsMalusList}}
|
|
||||||
{{#each traitsMalusList as |trait idx|}}
|
|
||||||
<li>{{localize "ECRY.chat.traitmalus"}}: {{trait.name}} ({{trait.system.level}}) </li>
|
|
||||||
{{/each}}
|
|
||||||
{{/if}}
|
|
||||||
{{#if bonusMalusTraits}}
|
|
||||||
<li>{{localize "ECRY.chat.bonusmalustraits"}}: {{bonusMalusTraits}} </li>
|
|
||||||
{{/if}}
|
|
||||||
|
|
||||||
<li>{{localize "ECRY.chat.formula"}}: {{diceFormula}} </li>
|
|
||||||
<li>{{localize "ECRY.chat.dicesum"}}: {{diceSum}} </li>
|
|
||||||
<li>{{localize "ECRY.chat.result"}}: {{total}} </li>
|
|
||||||
{{#if difficulty}}
|
|
||||||
<li>{{localize "ECRY.chat.difficulty"}}: {{difficulty}} - {{localize "ECRY.chat.margin"}}: {{margin}} </li>
|
|
||||||
{{#if isSuccess}}
|
|
||||||
<li><label class="chat-result-text chat-result-success ">{{localize "ECRY.chat.success"}}</label></li>
|
|
||||||
{{else}}
|
|
||||||
<li><label class="chat-result-text chat-result-failure">{{localize "ECRY.chat.failure"}}</label></li>
|
|
||||||
{{/if}}
|
|
||||||
{{/if}}
|
{{/if}}
|
||||||
|
|
||||||
|
<li>Dés: {{diceFormula}} </li>
|
||||||
|
<li>Difficulté: {{difficulty}} </li>
|
||||||
|
<li><strong>Résultat: {{total}}</strong> </li>
|
||||||
|
{{#if isSuccess}}
|
||||||
|
<li><strong>Succès !</strong> </li>
|
||||||
|
{{#if isReussiteCritique}}
|
||||||
|
<li><strong>Réussite critique ! 1 XP gagné en {{carac.name}}.</strong> </li>
|
||||||
|
{{/if}}
|
||||||
|
{{else}}
|
||||||
|
<li><strong>Echec !</strong> </li>
|
||||||
|
{{#if isEchecCritique}}
|
||||||
|
<li><strong>Echec critique ! 1 XP gagné en {{carac.name}}.</strong> </li>
|
||||||
|
{{/if}}
|
||||||
|
{{/if}}
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
@ -7,18 +7,43 @@
|
|||||||
</header>
|
</header>
|
||||||
|
|
||||||
<div class="flexcol">
|
<div class="flexcol">
|
||||||
|
<div class="flexrow">
|
||||||
|
<span class="roll-dialog-label">Caracteristique </span>
|
||||||
|
<span class="roll-dialog-label">{{carac.name}} : {{carac.qualite}} ({{carac.dice}})</span>
|
||||||
|
</div>
|
||||||
|
|
||||||
{{> systems/fvtt-ecryme/templates/dialogs/partial-common-roll-dialog.hbs}}
|
{{#if competence}}
|
||||||
|
<div class="flexrow">
|
||||||
|
<span class="roll-dialog-label">Compétence </span>
|
||||||
|
<span class="roll-dialog-label">{{competence.name}} ({{competence.system.score}})</span>
|
||||||
|
</div>
|
||||||
|
{{/if}}
|
||||||
|
|
||||||
|
{{#if malusBlessures}}
|
||||||
|
<div class="flexrow">
|
||||||
|
<span class="roll-dialog-label">Malus Blessures </span>
|
||||||
|
<span class="roll-dialog-label">{{malusBlessures}} niveaux</span>
|
||||||
|
</div>
|
||||||
|
{{/if}}
|
||||||
|
|
||||||
|
<div class="flexrow">
|
||||||
|
<span class="roll-dialog-label">Bonus/Malus : </span>
|
||||||
|
<select class="" type="text" id="roll-bonus-malus" value="{{bonusMalus}}" data-dtype="Number">
|
||||||
|
{{selectOptions config.bonusMalus selected=bonusMalus labelAttr="label" valueAttr="value" nameAttr="value"}}
|
||||||
|
</select>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
{{#if providence.value}}
|
||||||
|
<div class="flexrow">
|
||||||
|
<span class="roll-dialog-label">Utiliser la Providence ({{providence.dice}})</span>
|
||||||
|
<input type="checkbox" id="roll-enable-providence" {{checked enableProvidence}} />
|
||||||
|
</div>
|
||||||
|
{{/if}}
|
||||||
|
|
||||||
<div class="flexrow">
|
<div class="flexrow">
|
||||||
<span class="roll-dialog-label">Difficulté : </span>
|
<span class="roll-dialog-label">Difficulté : </span>
|
||||||
<select class="" type="text" id="roll-difficulty" value="{{difficulty}}" data-dtype="Number">
|
<select class="" type="text" id="roll-difficulty" value="{{difficulty}}" data-dtype="Number">
|
||||||
{{#select difficulty}}
|
{{selectOptions config.difficulte selected=difficulty labelAttr="label"}}
|
||||||
{{#each config.difficulty as |diffData value| }}
|
|
||||||
<option value="{{diffData.value}}">{{localize diffData.difficulty}} / {{localize diffData.frequency}}
|
|
||||||
({{diffData.value}})</option>
|
|
||||||
{{/each}}
|
|
||||||
{{/select}}
|
|
||||||
</select>
|
</select>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|