Compare commits

..

27 Commits

Author SHA1 Message Date
0cc6b1de98 Release 10.0.22 2022-09-28 08:26:35 +02:00
c41b59b703 Merge pull request 'v10.0.22' (#560) from VincentVk/foundryvtt-reve-de-dragon:v10 into v10
Reviewed-on: public/foundryvtt-reve-de-dragon#560
2022-09-28 08:25:28 +02:00
Vincent Vandemeulebrouck
b4ca941065 Nettoyage de journal d'expérience pour MJ
Permet au MJ de vider les anciennes entrées du journal d'expérience
(jusqu'à une entrée, comprise)

Permet de supprimer une entrée spécifique
2022-09-28 01:24:32 +02:00
Vincent Vandemeulebrouck
322506250b Regrouper vue détaillée avec dévérouiller 2022-09-27 22:38:49 +02:00
Vincent Vandemeulebrouck
5d36ea9e0c Ajout Résistance/structure max aux véhicules
Pour qu'on puisse les réparer
2022-09-27 22:37:33 +02:00
Vincent Vandemeulebrouck
dc0fab2957 Nettoyage acteurs compendium 2022-09-27 22:37:33 +02:00
Vincent Vandemeulebrouck
2e158f9d39 Organisation des parties de la feuille 2022-09-27 22:37:24 +02:00
Vincent Vandemeulebrouck
7e1bbcada0 Séparation actor-sheet en sous-parties 2022-09-27 22:35:25 +02:00
Vincent Vandemeulebrouck
02ccb1f287 Nouvelle visualisation des blessures
Extractions des parties de la feuille pour préparer la possibilité de
proposer une autre fiche
2022-09-27 22:35:25 +02:00
4afa313ffc Enable links in editor 2022-09-27 21:03:18 +02:00
1b8ad316b9 Merge conteneur + fix hotbar 2022-09-25 21:21:28 +02:00
b35eaad757 Merge conteneur + fix hotbar 2022-09-25 21:17:47 +02:00
e325ab9278 Merge pull request 'Drop sur un objet met dans le conteneur parent' (#559) from VincentVk/foundryvtt-reve-de-dragon:v10 into v10
Reviewed-on: public/foundryvtt-reve-de-dragon#559
2022-09-25 21:17:01 +02:00
Vincent Vandemeulebrouck
ebe19959fa Drop sur un objet met dans le conteneur parent
Augmenter la zone pour lacher un objet:
* si c'est un objet similaire, on regroupe
* si c'est un conteneur: on met dans le conteneur
* si c'est un objet dans un conteneur, on met dans le conteneur
* si c'est un objet porté, on met dans les objets portés
2022-09-25 18:45:40 +02:00
Vincent Vandemeulebrouck
5a2bc69fbb Typo "nuage" dans les signes draconiques 2022-09-25 17:50:07 +02:00
57dfdf0b65 Merge fixes from Vincent 2022-09-24 09:58:45 +02:00
028e8b883f Merge pull request 'Corrections et quelques améliorations' (#557) from VincentVk/foundryvtt-reve-de-dragon:v10 into v10
Reviewed-on: public/foundryvtt-reve-de-dragon#557
2022-09-24 09:57:44 +02:00
Vincent Vandemeulebrouck
4bab69b88f Fix: déplacement de contenu rangé 2022-09-24 01:05:32 +02:00
Vincent Vandemeulebrouck
be0c0fbf3a Correction de la monnaie de la serveuse 2022-09-24 00:53:27 +02:00
Vincent Vandemeulebrouck
cd4bf203e6 Corrections d'images dans les compendiums 2022-09-24 00:53:27 +02:00
Vincent Vandemeulebrouck
fc5674a7d8 TMR et acteurs à cocher pour les signe draconiques
Au lieu d'une liste à sélection multiple, choisir les types de TMR
avec des cases à cocher.

Lors de l'ajout de signes éphémères, sélectionner les personnages
avec des cases à cocher.
2022-09-24 00:53:27 +02:00
Vincent Vandemeulebrouck
fe80881405 Fenêtre de stress avec acteurs à cocher
Remplacement de la liste d'acteurs par des cases à cocher car la
sélection n'est pas visible
2022-09-24 00:53:27 +02:00
Vincent Vandemeulebrouck
3a29c25b09 Fix: calculs des bonus de potions
Le calcul du bonus d'herbe d'une potion dépend des brins manquants.

La fabrication de potion propose les nombres de brins pour avoir un
effet. Impossible de faire une potion si on n'a pas assez de brins.

La puissance/points de guérison des potions magiques sont affichées lors
 de la consomation
2022-09-23 02:23:20 +02:00
Vincent Vandemeulebrouck
e2ff813226 Fix: pas plus de lots que disponibles
On pouvait saisir à la main un nombre de lots plus grand que le nombre
disponible, ce qui multipliait la quantité par ce nombre de lots
2022-09-23 01:32:18 +02:00
Vincent Vandemeulebrouck
b67f230212 Fix actionPrincipale de l'équipement 2022-09-23 00:57:02 +02:00
Vincent Vandemeulebrouck
47f9e1adaa Fix boutons d'avancement des heures
Bloqués par la recherche de maladies/poisons pour afficher le
message sur leurs effets
2022-09-23 00:46:57 +02:00
Vincent Vandemeulebrouck
33808b8cf0 Fix transfert de contenants 2022-09-23 00:46:57 +02:00
81 changed files with 1155 additions and 1048 deletions

View File

@@ -36,7 +36,7 @@ export class RdDActorCreatureSheet extends RdDActorSheet {
surEncombrementMessage: this.actor.getMessageSurEncombrement() surEncombrementMessage: this.actor.getMessageSurEncombrement()
} }
RdDUtility.filterItemsPerTypeForSheet(formData); RdDUtility.filterItemsPerTypeForSheet(formData, this.actor.itemTypes);
this.objetVersConteneur = RdDUtility.buildArbreDeConteneurs(formData.conteneurs, formData.objets); this.objetVersConteneur = RdDUtility.buildArbreDeConteneurs(formData.conteneurs, formData.objets);
formData.conteneurs = RdDUtility.conteneursRacine(formData.conteneurs); formData.conteneurs = RdDUtility.conteneursRacine(formData.conteneurs);

View File

@@ -39,11 +39,12 @@ export class RdDActorEntiteSheet extends ActorSheet {
limited: this.actor.limited, limited: this.actor.limited,
options: this.options, options: this.options,
owner: this.actor.isOwner, owner: this.actor.isOwner,
itemsByType: Misc.classify(this.actor.items.map(i => foundry.utils.deepClone(i))), description: await TextEditor.enrichHTML(this.object.system.description, {async: true}),
notesmj: await TextEditor.enrichHTML(this.object.system.notesmj, {async: true}),
}; };
formData.options.isGM = game.user.isGM; formData.options.isGM = game.user.isGM;
RdDUtility.filterItemsPerTypeForSheet(formData); RdDUtility.filterItemsPerTypeForSheet(formData, this.actor.itemTypes);
return formData; return formData;

View File

@@ -29,7 +29,6 @@ export class RdDActorSheet extends ActorSheet {
width: 640, width: 640,
tabs: [{ navSelector: ".sheet-tabs", contentSelector: ".sheet-body", initial: "carac" }], tabs: [{ navSelector: ".sheet-tabs", contentSelector: ".sheet-body", initial: "carac" }],
dragDrop: [{ dragSelector: ".item-list .item", dropSelector: null }], dragDrop: [{ dragSelector: ".item-list .item", dropSelector: null }],
editCaracComp: false,
showCompNiveauBase: false, showCompNiveauBase: false,
vueDetaillee: false vueDetaillee: false
}); });
@@ -52,15 +51,17 @@ export class RdDActorSheet extends ActorSheet {
limited: this.actor.limited, limited: this.actor.limited,
options: this.options, options: this.options,
owner: this.actor.isOwner, owner: this.actor.isOwner,
itemsByType: Misc.classify(this.actor.items.map(i => foundry.utils.deepClone(i))), biographie: await TextEditor.enrichHTML(this.object.system.biographie, {async: true}),
notes: await TextEditor.enrichHTML(this.object.system.notes, {async: true}),
notesmj: await TextEditor.enrichHTML(this.object.system.notesmj, {async: true}),
} }
RdDUtility.filterItemsPerTypeForSheet(formData) RdDUtility.filterItemsPerTypeForSheet(formData, this.actor.itemTypes);
formData.options.isGM = game.user.isGM; formData.options.isGM = game.user.isGM;
if (formData.type == 'creature') return formData; // Shortcut if (formData.type == 'creature') return formData; // Shortcut
formData.competenceByCategory = Misc.classify(formData.competences, it => it.system.categorie) formData.byCateg = Misc.classify(formData.competences, it => it.system.categorie)
formData.calc = { formData.calc = {
comptageArchetype: RdDItemCompetence.computeResumeArchetype(formData.competences), comptageArchetype: RdDItemCompetence.computeResumeArchetype(formData.competences),
@@ -102,7 +103,6 @@ export class RdDActorSheet extends ActorSheet {
formData.hautreve = { formData.hautreve = {
isDemiReve: this.actor.getEffect(STATUSES.StatusDemiReve), isDemiReve: this.actor.getEffect(STATUSES.StatusDemiReve),
rencontres: duplicate(formData.system.reve.rencontre.list), rencontres: duplicate(formData.system.reve.rencontre.list),
casesTmr: formData.itemsByType.casetmr,
cacheTMR: this.actor.isTMRCache() cacheTMR: this.actor.isTMRCache()
} }
@@ -191,7 +191,6 @@ export class RdDActorSheet extends ActorSheet {
const item = RdDSheetUtility.getItem(event, this.actor); const item = RdDSheetUtility.getItem(event, this.actor);
item?.postItem(); item?.postItem();
}); });
html.find('.item-action').click(async event => { html.find('.item-action').click(async event => {
const item = RdDSheetUtility.getItem(event, this.actor) const item = RdDSheetUtility.getItem(event, this.actor)
this.actor.actionItem(item); this.actor.actionItem(item);
@@ -204,7 +203,16 @@ export class RdDActorSheet extends ActorSheet {
RdDUtility.confirmerSuppressionSubacteur(this, subActor, li); RdDUtility.confirmerSuppressionSubacteur(this, subActor, li);
} }
}); });
html.find('.experiencelog-delete').click(async event => {
const li = $(event.currentTarget)?.parents(".experiencelog");
const key = Number(li.data("key") ?? -1);
await this.actor.deleteExperienceLog(key, 1);
});
html.find('.experiencelog-delete-previous').click(async event => {
const li = $(event.currentTarget)?.parents(".experiencelog");
const key = Number(li.data("key") ?? -1);
await this.actor.deleteExperienceLog(0, key + 1);
});
html.find('.encaisser-direct').click(async event => { html.find('.encaisser-direct').click(async event => {
this.actor.encaisser(); this.actor.encaisser();
}) })
@@ -241,7 +249,7 @@ export class RdDActorSheet extends ActorSheet {
}); });
// Blessure data // Blessure data
html.find('.blessures-soins').change(async event => { html.find('.blessure-soins').change(async event => {
const tr = $(event.currentTarget).parents(".item"); const tr = $(event.currentTarget).parents(".item");
let btype = tr.data('blessure-type'); let btype = tr.data('blessure-type');
let index = tr.data('blessure-index'); let index = tr.data('blessure-index');
@@ -386,7 +394,7 @@ export class RdDActorSheet extends ActorSheet {
this.actor.updateCompetenceStress(RdDSheetUtility.getItemId(event)); this.actor.updateCompetenceStress(RdDSheetUtility.getItemId(event));
}); });
if (this.options.editCaracComp) { if (this.options.vueDetaillee) {
// On carac change // On carac change
html.find('.carac-value').change(async event => { html.find('.carac-value').change(async event => {
let caracName = event.currentTarget.name.replace(".value", "").replace("system.carac.", ""); let caracName = event.currentTarget.name.replace(".value", "").replace("system.carac.", "");
@@ -423,10 +431,6 @@ export class RdDActorSheet extends ActorSheet {
this.options.showCompNiveauBase = !this.options.showCompNiveauBase; this.options.showCompNiveauBase = !this.options.showCompNiveauBase;
this.render(true); this.render(true);
}); });
html.find('.lock-unlock-sheet').click(async event => {
this.options.editCaracComp = !this.options.editCaracComp;
this.render(true);
});
html.find('.recherche') html.find('.recherche')
.each((index, field) => { .each((index, field) => {

View File

@@ -40,10 +40,11 @@ export class RdDActorVehiculeSheet extends ActorSheet {
limited: this.actor.limited, limited: this.actor.limited,
options: this.options, options: this.options,
owner: this.actor.isOwner, owner: this.actor.isOwner,
itemsByType: Misc.classify(this.actor.items.map(i => foundry.utils.deepClone(i))), description: await TextEditor.enrichHTML(this.object.system.biographie, {async: true}),
notesmj: await TextEditor.enrichHTML(this.object.system.notesmj, {async: true}),
}; };
RdDUtility.filterItemsPerTypeForSheet(formData); RdDUtility.filterItemsPerTypeForSheet(formData, this.actor.itemTypes);
this.objetVersConteneur = RdDUtility.buildArbreDeConteneurs(formData.conteneurs, formData.objets); this.objetVersConteneur = RdDUtility.buildArbreDeConteneurs(formData.conteneurs, formData.objets);
formData.conteneurs = RdDUtility.conteneursRacine(formData.conteneurs); formData.conteneurs = RdDUtility.conteneursRacine(formData.conteneurs);

View File

@@ -1020,10 +1020,20 @@ export class RdDActor extends Actor {
let expLog = duplicate(this.system.experiencelog); let expLog = duplicate(this.system.experiencelog);
expLog.push({ expLog.push({
mode: Misc.upperFirst(modeXP), valeur: valeurXP, raison: Misc.upperFirst(raisonXP), mode: Misc.upperFirst(modeXP), valeur: valeurXP, raison: Misc.upperFirst(raisonXP),
daterdd: game.system.rdd.calendrier.getDateFromIndex(), datereel: `${d.getDate()}/${d.getMonth() + 1}/${d.getFullYear()}` daterdd: game.system.rdd.calendrier.getDateFromIndex(),
datereel: `${d.getDate()}/${d.getMonth() + 1}/${d.getFullYear()}`
}); });
await this.update({ [`system.experiencelog`]: expLog }); await this.update({ [`system.experiencelog`]: expLog });
} }
async deleteExperienceLog(from, count) {
if (from >= 0 && count > 0) {
let expLog = duplicate(this.system.experiencelog);
expLog.splice(from, count);
await this.update({ [`system.experiencelog`]: expLog });
}
}
/* -------------------------------------------- */ /* -------------------------------------------- */
async updateCompteurValue(fieldName, fieldValue, raison = 'Inconnue') { async updateCompteurValue(fieldName, fieldValue, raison = 'Inconnue') {
@@ -1067,7 +1077,7 @@ export class RdDActor extends Actor {
/* -------------------------------------------- */ /* -------------------------------------------- */
_isConteneurContenu(item, conteneur) { _isConteneurContenu(item, conteneur) {
if (item?.isConteneur()) { // Si c'est un conteneur, il faut vérifier qu'on ne le déplace pas vers un sous-conteneur lui appartenant if (item?.isConteneur()) { // Si c'est un conteneur, il faut vérifier qu'on ne le déplace pas vers un sous-conteneur lui appartenant
for (let id of this.system.contenu) { for (let id of item.system.contenu) {
let subObjet = this.getObjet(id); let subObjet = this.getObjet(id);
if (subObjet?.id == conteneur.id) { if (subObjet?.id == conteneur.id) {
return true; // Loop detected ! return true; // Loop detected !
@@ -1098,7 +1108,7 @@ export class RdDActor extends Actor {
buildSubConteneurObjetList(conteneurId, deleteList) { buildSubConteneurObjetList(conteneurId, deleteList) {
let conteneur = this.getObjet(conteneurId); let conteneur = this.getObjet(conteneurId);
if (conteneur?.type == 'conteneur') { // Si c'est un conteneur if (conteneur?.type == 'conteneur') { // Si c'est un conteneur
for (let subId of this.system.contenu) { for (let subId of conteneur.system.contenu) {
let subObj = this.getObjet(subId); let subObj = this.getObjet(subId);
if (subObj) { if (subObj) {
if (subObj.type == 'conteneur') { if (subObj.type == 'conteneur') {
@@ -1123,28 +1133,29 @@ export class RdDActor extends Actor {
* de leurs ID */ * de leurs ID */
async enleverDeConteneur(item, conteneur, onEnleverDeConteneur) { async enleverDeConteneur(item, conteneur, onEnleverDeConteneur) {
if (conteneur?.isConteneur()) { if (conteneur?.isConteneur()) {
let data2use = duplicate(conteneur); item.estContenu = false;
let contenu = data2use.system.contenu; await this.updateEmbeddedDocuments('Item', [{
let index = contenu.indexOf(item.id); _id: conteneur.id,
while (index >= 0) { // Force cleanup, itemId is unique 'system.contenu': conteneur.system.contenu.filter(id => id != item.id)
contenu.splice(index, 1); }]);
index = contenu.indexOf(item.id);
}
item.system.estContenu = false;
await this.updateEmbeddedDocuments('Item', [data2use]);
onEnleverDeConteneur(); onEnleverDeConteneur();
} }
} }
/* -------------------------------------------- */ /* -------------------------------------------- */
/** Ajoute un item dans un conteneur, sur la base /** Ajoute un item dans un conteneur, sur la base
* de leurs ID */ * de leurs ID */
async ajouterDansConteneur(item, conteneur, onAjouterDansConteneur) { async ajouterDansConteneur(item, conteneur, onAjouterDansConteneur) {
if (conteneur?.isConteneur()) { if (!conteneur) {
let data2use = duplicate(conteneur); // TODO: afficher
data2use.system.contenu.push(item.id); item.estContenu = false;
item.system.estContenu = true; }
await this.updateEmbeddedDocuments('Item', [data2use]); else if (conteneur.isConteneur()) {
item.estContenu = true;
await this.updateEmbeddedDocuments('Item', [{
_id: conteneur.id,
'system.contenu': [...conteneur.system.contenu, item.id]
}]);
onAjouterDansConteneur(item.id, conteneur.id); onAjouterDansConteneur(item.id, conteneur.id);
} }
} }
@@ -1182,23 +1193,39 @@ export class RdDActor extends Actor {
if (item?.isEquipement() && sourceActorId == targetActorId) { if (item?.isEquipement() && sourceActorId == targetActorId) {
// rangement // rangement
if (srcId != destId && itemId != destId) { // déplacement de l'objet if (srcId != destId && itemId != destId) { // déplacement de l'objet
const dest = this.getObjet(destId);
const src = this.getObjet(srcId); const src = this.getObjet(srcId);
// changer de conteneur const dest = this.getObjet(destId);
if (this.conteneurPeutContenir(dest, item)) { const cible = this.getContenantOrParent(dest);
await this.enleverDeConteneur(item, src, params.onEnleverConteneur); const messageEquipementDifferent = item.messageEquipementDifferent(dest);
await this.ajouterDansConteneur(item, dest, params.onAjouterDansConteneur); if (dest && !messageEquipementDifferent) {
}
else if (dest?.isEquipementSimilaire(item)) {
await this.regrouperEquipementsSimilaires(item, dest); await this.regrouperEquipementsSimilaires(item, dest);
result = false; result = false;
} }
// changer de conteneur
else if (!cible || this.conteneurPeutContenir(cible, item)) {
await this.enleverDeConteneur(item, src, params.onEnleverConteneur);
await this.ajouterDansConteneur(item, cible, params.onAjouterDansConteneur);
}
else {
ui.notifications.info(messageEquipementDifferent);
}
} }
} }
await this.computeEncombrementTotalEtMalusArmure(); await this.computeEncombrementTotalEtMalusArmure();
return result; return result;
} }
getContenantOrParent(dest) {
if (!dest || dest.isConteneur()) {
return dest;
}
return this.getContenant(dest);
}
getContenant(item) {
return this.itemTypes['conteneur'].find(it => it.system.contenu.includes(item.id));
}
/* -------------------------------------------- */ /* -------------------------------------------- */
conteneurPeutContenir(dest, item) { conteneurPeutContenir(dest, item) {
if (!dest) { if (!dest) {
@@ -1251,7 +1278,7 @@ export class RdDActor extends Actor {
let newItemId = itemMap[item.id]; // Get newItem let newItemId = itemMap[item.id]; // Get newItem
console.log('New conteneur filling!', newConteneur, newItemId, item); console.log('New conteneur filling!', newConteneur, newItemId, item);
let contenu = duplicate(this.system.contenu); let contenu = duplicate(newConteneur.system.contenu);
contenu.push(newItemId); contenu.push(newItemId);
await this.updateEmbeddedDocuments('Item', [{ _id: newConteneurId, 'system.contenu': contenu }]); await this.updateEmbeddedDocuments('Item', [{ _id: newConteneurId, 'system.contenu': contenu }]);
} }
@@ -3859,8 +3886,10 @@ export class RdDActor extends Actor {
id: vehicle.id, id: vehicle.id,
name: vehicle.name, name: vehicle.name,
img: vehicle.img, img: vehicle.img,
categorie: vehicle.system.categorie, system: {
structure: vehicle.system.structure, categorie: vehicle.system.categorie,
etat: vehicle.system.etat
}
}; };
} }
@@ -4019,11 +4048,12 @@ export class RdDActor extends Actor {
name: `Potion de ${herbeData.system.categorie} (${herbeData.name})`, type: 'potion', name: `Potion de ${herbeData.system.categorie} (${herbeData.name})`, type: 'potion',
img: "systems/foundryvtt-reve-de-dragon/icons/objets/fiole_verre.webp", img: "systems/foundryvtt-reve-de-dragon/icons/objets/fiole_verre.webp",
system: { system: {
quantite: 1, valeur_deniers: 1, encombrement: 0.01, quantite: 1, cout: 0, encombrement: 0.1,
categorie: herbeData.system.categorie, categorie: herbeData.system.categorie,
herbe: herbeData.name, herbe: herbeData.name,
rarete: herbeData.system.rarete, rarete: herbeData.system.rarete,
herbebrins: herbeData.nbBrins, herbebrins: herbeData.nbBrins,
herbebonus: herbeData.herbebonus,
description: "" description: ""
} }
} }

View File

@@ -1,7 +1,6 @@
import { ChatUtility } from "./chat-utility.js"; import { ChatUtility } from "./chat-utility.js";
import { HtmlUtility } from "./html-utility.js"; import { HtmlUtility } from "./html-utility.js";
import { RdDItemSigneDraconique } from "./item-signedraconique.js"; import { RdDItemSigneDraconique } from "./item-signedraconique.js";
import { Misc } from "./misc.js";
import { TMRUtility } from "./tmr-utility.js"; import { TMRUtility } from "./tmr-utility.js";
export class DialogCreateSigneDraconique extends Dialog { export class DialogCreateSigneDraconique extends Dialog {
@@ -10,12 +9,13 @@ export class DialogCreateSigneDraconique extends Dialog {
const signe = await RdDItemSigneDraconique.randomSigneDraconique({ephemere: true}); const signe = await RdDItemSigneDraconique.randomSigneDraconique({ephemere: true});
let dialogData = { let dialogData = {
signe: signe, signe: signe,
tmrs: TMRUtility.listSelectedTMR(signe.system.typesTMR ?? []), tmrs: TMRUtility.buildSelectionTypesTMR(signe.system.typesTMR),
actors: game.actors.filter(actor => actor.isHautRevant()).map(actor => { actors: game.actors.filter(actor => actor.isPersonnage() && actor.isHautRevant())
let actorData = duplicate(actor); .map(actor => ({
actorData.selected = actor.hasPlayerOwner; id: actor.id,
return actorData; name: actor.name,
}) selected: true
}))
}; };
const html = await renderTemplate("systems/foundryvtt-reve-de-dragon/templates/dialog-create-signedraconique.html", dialogData); const html = await renderTemplate("systems/foundryvtt-reve-de-dragon/templates/dialog-create-signedraconique.html", dialogData);
@@ -23,12 +23,11 @@ export class DialogCreateSigneDraconique extends Dialog {
.render(true); .render(true);
} }
constructor(dialogData, html, callback) { constructor(dialogData, html) {
let options = { classes: ["DialogCreateSigneDraconiqueActorsActors"], width: 500, height: 650, 'z-index': 99999 }; let options = { classes: ["DialogCreateSigneDraconiqueActorsActors"], width: 500, height: 650, 'z-index': 99999 };
let conf = { let conf = {
title: "Créer un signe", title: "Créer un signe",
content: html, content: html,
default: "Ajouter aux haut-rêvants",
buttons: { buttons: {
"Ajouter aux haut-rêvants": { label: "Ajouter aux haut-rêvants", callback: it => { this._onCreerSigneActeurs(); } } "Ajouter aux haut-rêvants": { label: "Ajouter aux haut-rêvants", callback: it => { this._onCreerSigneActeurs(); } }
} }
@@ -41,7 +40,8 @@ export class DialogCreateSigneDraconique extends Dialog {
await $("[name='signe.system.ephemere']").change(); await $("[name='signe.system.ephemere']").change();
await $(".signe-xp-sort").change(); await $(".signe-xp-sort").change();
this.validerSigne(); this.validerSigne();
this.dialogData.actors.filter(it => it.selected).map(it => game.actors.get(it._id)) this.dialogData.actors.filter(it => it.selected)
.map(it => game.actors.get(it.id))
.forEach(actor => this._createSigneForActor(actor, this.dialogData.signe)); .forEach(actor => this._createSigneForActor(actor, this.dialogData.signe));
} }
@@ -64,7 +64,7 @@ export class DialogCreateSigneDraconique extends Dialog {
this.dialogData.signe.system.difficulte = $("[name='signe.system.difficulte']").val(); this.dialogData.signe.system.difficulte = $("[name='signe.system.difficulte']").val();
this.dialogData.signe.system.ephemere = $("[name='signe.system.ephemere']").prop("checked"); this.dialogData.signe.system.ephemere = $("[name='signe.system.ephemere']").prop("checked");
this.dialogData.signe.system.duree = $("[name='signe.system.duree']").val(); this.dialogData.signe.system.duree = $("[name='signe.system.duree']").val();
this.dialogData.signe.system.typesTMR = $(".select-tmr").val(); this.dialogData.signe.system.typesTMR = TMRUtility.buildListTypesTMRSelection(this.dialogData.tmrs);
} }
/* -------------------------------------------- */ /* -------------------------------------------- */
@@ -73,8 +73,9 @@ export class DialogCreateSigneDraconique extends Dialog {
this.setEphemere(this.dialogData.signe.system.ephemere); this.setEphemere(this.dialogData.signe.system.ephemere);
html.find(".signe-aleatoire").click(event => this.setSigneAleatoire()); html.find(".signe-aleatoire").click(event => this.setSigneAleatoire());
html.find("[name='signe.system.ephemere']").change((event) => this.setEphemere(event.currentTarget.checked)); html.find("[name='signe.system.ephemere']").change((event) => this.setEphemere(event.currentTarget.checked));
html.find(".select-actor").change((event) => this.onSelectActor(event));
html.find(".signe-xp-sort").change((event) => this.onValeurXpSort(event)); html.find(".signe-xp-sort").change((event) => this.onValeurXpSort(event));
html.find("input.select-actor").change((event) => this.onSelectActor(event));
html.find("input.select-tmr").change((event) => this.onSelectTmr(event));
} }
async setSigneAleatoire() { async setSigneAleatoire() {
@@ -87,7 +88,10 @@ export class DialogCreateSigneDraconique extends Dialog {
$("[name='signe.system.difficulte']").val(newSigne.system.difficulte); $("[name='signe.system.difficulte']").val(newSigne.system.difficulte);
$("[name='signe.system.duree']").val(newSigne.system.duree); $("[name='signe.system.duree']").val(newSigne.system.duree);
$("[name='signe.system.ephemere']").prop("checked", newSigne.system.ephemere); $("[name='signe.system.ephemere']").prop("checked", newSigne.system.ephemere);
$(".select-tmr").val(newSigne.system.typesTMR); this.dialogData.tmrs = TMRUtility.buildSelectionTypesTMR(newSigne.system.typesTMR);
this.dialogData.tmrs.forEach(t => {
$(`[data-tmr-name='${t.name}']`).prop( "checked", t.selected);
})
this.setEphemere(newSigne.system.ephemere); this.setEphemere(newSigne.system.ephemere);
} }
@@ -97,17 +101,22 @@ export class DialogCreateSigneDraconique extends Dialog {
} }
async onSelectActor(event) { async onSelectActor(event) {
event.preventDefault(); const actorId = $(event.currentTarget)?.data("actor-id");
const options = event.currentTarget.options; const actor = this.dialogData.actors.find(it => it.id == actorId);
for (var i = 0; i < options.length; i++) { // looping over the options if (actor) {
const actorId = options[i].attributes["data-actor-id"].value; actor.selected = event.currentTarget.checked;
const actor = this.dialogData.actors.find(it => it._id == actorId); }
if (actor) {
actor.selected = options[i].selected;
}
};
} }
onSelectTmr(event) {
const tmrName = $(event.currentTarget)?.data("tmr-name");
const onTmr = this.tmrs.find(it => it.name == tmrName);
if (onTmr){
onTmr.selected = event.currentTarget.checked;
}
}
onValeurXpSort(event) { onValeurXpSort(event) {
const codeReussite = event.currentTarget.attributes['data-typereussite']?.value ?? 0; const codeReussite = event.currentTarget.attributes['data-typereussite']?.value ?? 0;
const xp = Number(event.currentTarget.value); const xp = Number(event.currentTarget.value);

View File

@@ -6,6 +6,11 @@ export class DialogFabriquerPotion extends Dialog {
/* -------------------------------------------- */ /* -------------------------------------------- */
static async create(actor, item, dialogConfig) { static async create(actor, item, dialogConfig) {
const min = DialogFabriquerPotion.nombreBrinsMinimum(item);
if (item.system.quantite < min) {
ui.notifications.warn(`Vous avez ${item.system.quantite} brins de ${item.name}, il en faut au moins ${min} pour faire une potion!`);
return;
}
let potionData = DialogFabriquerPotion.prepareData(actor, item); let potionData = DialogFabriquerPotion.prepareData(actor, item);
let conf = { let conf = {
@@ -25,8 +30,11 @@ export class DialogFabriquerPotion extends Dialog {
/* -------------------------------------------- */ /* -------------------------------------------- */
static prepareData(actor, item) { static prepareData(actor, item) {
let potionData = duplicate(item) let potionData = duplicate(item)
potionData.nbBrinsSelect = RdDUtility.buildListOptions(1, potionData.system.quantite); potionData.nbBrinsSelect = RdDUtility.buildListOptions(
potionData.nbBrins = Math.min(potionData.system.quantite, DialogFabriquerPotion.getNombreBrinOptimal(potionData)); DialogFabriquerPotion.nombreBrinsMinimum(item),
DialogFabriquerPotion.nombreBrinsOptimal(item));
potionData.nbBrins = Math.min(potionData.system.quantite, DialogFabriquerPotion.nombreBrinsOptimal(potionData));
potionData.herbebonus = item.system.niveau;
potionData.buttonName = "Fabriquer"; potionData.buttonName = "Fabriquer";
return potionData; return potionData;
} }
@@ -45,7 +53,15 @@ export class DialogFabriquerPotion extends Dialog {
this.potionData = potionData; this.potionData = potionData;
} }
static getNombreBrinOptimal(herbeData) { static nombreBrinsMinimum(herbeData) {
switch (herbeData.system.categorie ?? '') {
case "Soin": return 1 + Math.max(0, 12 - 2 * herbeData.system.niveau);
case "Repos": return 1 + Math.max(0, 7 - 2 * herbeData.system.niveau);
}
return 1;
}
static nombreBrinsOptimal(herbeData) {
switch (herbeData.system.categorie ?? '') { switch (herbeData.system.categorie ?? '') {
case "Soin": return 12 - herbeData.system.niveau; case "Soin": return 12 - herbeData.system.niveau;
case "Repos": return 7 - herbeData.system.niveau; case "Repos": return 7 - herbeData.system.niveau;
@@ -59,6 +75,8 @@ export class DialogFabriquerPotion extends Dialog {
html.find("#nbBrins").change(event => { html.find("#nbBrins").change(event => {
this.potionData.nbBrins = Misc.toInt(event.currentTarget.value); this.potionData.nbBrins = Misc.toInt(event.currentTarget.value);
const brinsManquants = Math.max(0, DialogFabriquerPotion.nombreBrinsOptimal(this.potionData) - this.potionData.nbBrins);
this.potionData.herbebonus = Math.max(0, this.potionData.system.niveau - brinsManquants)
}); });
} }

View File

@@ -39,7 +39,7 @@ export class DialogItemAchat extends Dialog {
buttons[actionAchat] = { label: actionAchat, callback: it => { this.onAchat(); } }; buttons[actionAchat] = { label: actionAchat, callback: it => { this.onAchat(); } };
buttons["decliner"] = { label: "Décliner", callback: it => { } }; buttons["decliner"] = { label: "Décliner", callback: it => { } };
let conf = { let conf = {
title: venteData.acheteur? venteData.acheteur.name + " - " + actionAchat : actionAchat, title: venteData.acheteur ? venteData.acheteur.name + " - " + actionAchat : actionAchat,
content: html, content: html,
default: actionAchat, default: actionAchat,
buttons: buttons buttons: buttons
@@ -56,11 +56,11 @@ export class DialogItemAchat extends Dialog {
static prepareVenteData(buttonAcheter, vendeurId, vendeur, acheteur) { static prepareVenteData(buttonAcheter, vendeurId, vendeur, acheteur) {
const jsondata = buttonAcheter.attributes['data-jsondata']?.value; const jsondata = buttonAcheter.attributes['data-jsondata']?.value;
const prixLot = parseInt(buttonAcheter.attributes['data-prixLot']?.value ?? 0); const prixLot = parseInt(buttonAcheter.attributes['data-prixLot']?.value ?? 0);
let venteData = { return {
item: JSON.parse(jsondata), item: JSON.parse(jsondata),
vendeurId: vendeurId, vendeurId: vendeurId,
vendeur: vendeur, vendeur: vendeur,
acheteur:acheteur, acheteur: acheteur,
tailleLot: parseInt(buttonAcheter.attributes['data-tailleLot']?.value ?? 1), tailleLot: parseInt(buttonAcheter.attributes['data-tailleLot']?.value ?? 1),
quantiteIllimite: buttonAcheter.attributes['data-quantiteIllimite']?.value == 'true', quantiteIllimite: buttonAcheter.attributes['data-quantiteIllimite']?.value == 'true',
quantiteNbLots: parseInt(buttonAcheter.attributes['data-quantiteNbLots']?.value), quantiteNbLots: parseInt(buttonAcheter.attributes['data-quantiteNbLots']?.value),
@@ -73,7 +73,6 @@ export class DialogItemAchat extends Dialog {
prixTotal: prixLot, prixTotal: prixLot,
isVente: prixLot > 0 isVente: prixLot > 0
}; };
return venteData;
} }
async onAchat() { async onAchat() {
@@ -87,7 +86,7 @@ export class DialogItemAchat extends Dialog {
choix: this.venteData.choix choix: this.venteData.choix
}); });
} }
async onAchatConsommer() { async onAchatConsommer() {
this.venteData.choix.consommer = true; this.venteData.choix.consommer = true;
await this.onAchat(); await this.onAchat();
@@ -106,8 +105,12 @@ export class DialogItemAchat extends Dialog {
} }
setNombreLots(nombreLots) { setNombreLots(nombreLots) {
this.venteData.choix.nombreLots = nombreLots; if (nombreLots > this.venteData.quantiteNbLots) {
ui.notifications.warn(`Seulement ${this.venteData.quantiteNbLots} lots disponibles, vous ne pouvez pas en prendre ${nombreLots}`)
}
this.venteData.choix.nombreLots = Math.min(nombreLots, this.venteData.quantiteNbLots);
this.venteData.prixTotal = (nombreLots * this.venteData.prixLot).toFixed(2); this.venteData.prixTotal = (nombreLots * this.venteData.prixLot).toFixed(2);
$(".nombreLots").val(this.venteData.choix.nombreLots);
$(".prixTotal").text(this.venteData.prixTotal); $(".prixTotal").text(this.venteData.prixTotal);
} }

View File

@@ -1,18 +1,19 @@
import { Misc } from "./misc.js"; import { RdDSheetUtility } from "./rdd-sheet-utility.js";
export class DialogStress extends Dialog { export class DialogStress extends Dialog {
static async distribuerStress() { static async distribuerStress() {
let dialogData = { const dialogData = {
motif: "Motif", motif: "Motif",
stress: 10, stress: 10,
immediat: false, immediat: false,
actors: game.actors.filter(actor => actor.hasPlayerOwner && actor.isPersonnage()) actors: game.actors.filter(actor => actor.hasPlayerOwner && actor.isPersonnage())
.map(actor => { .map(actor => ({
let actorData = duplicate(actor); id: actor.id,
actorData.selected = actor.hasPlayerOwner; name: actor.name,
return actorData; selected: true
}) })
)
}; };
const html = await renderTemplate("systems/foundryvtt-reve-de-dragon/templates/dialog-stress.html", dialogData); const html = await renderTemplate("systems/foundryvtt-reve-de-dragon/templates/dialog-stress.html", dialogData);
@@ -21,52 +22,44 @@ export class DialogStress extends Dialog {
} }
constructor(dialogData, html) { constructor(dialogData, html) {
let options = { classes: ["DialogStress"], width: 400, height: 320, 'z-index': 99999 }; const options = { classes: ["DialogStress"],
let conf = { width: 400,
height: 205+dialogData.actors.length*25,
'z-index': 99999
};
const conf = {
title: "Donner du stress", title: "Donner du stress",
content: html, content: html,
buttons: { buttons: {
"Stress": { label: "Stress !", callback: it => { this._onStress(); } } stress: { label: "Stress !", callback: it => { this.onStress(); } }
} },
default: "stress"
}; };
super(conf, options); super(conf, options);
this.dialogData = dialogData; this.dialogData = dialogData;
} }
async _onStress() { async onStress() {
this.validerStress(); const motif = $("form.rdddialogstress input[name='motif']").val();
const compteur = this.dialogData.immediat ? 'experience' : 'stress'; const stress = Number($("form.rdddialogstress input[name='stress']").val());
const stress = this.dialogData.stress; const compteur = ($("form.rdddialogstress input[name='immediat']").prop("checked")) ? 'experience' : 'stress';
const motif = this.dialogData.motif;
this.dialogData.actors.filter(it => it.selected) this.dialogData.actors.filter(it => it.selected)
.map(it => game.actors.get(it._id)) .map(it => game.actors.get(it.id))
.forEach(actor => actor.distribuerStress(compteur, stress, motif)); .forEach(actor => actor.distribuerStress(compteur, stress, motif));
} }
validerStress() {
this.dialogData.motif = $("form.rdddialogstress input[name='motif']").val();
this.dialogData.stress = $("form.rdddialogstress input[name='stress']").val();
this.dialogData.immediat = $("form.rdddialogstress input[name='immediat']").prop("checked");;
}
/* -------------------------------------------- */ /* -------------------------------------------- */
activateListeners(html) { activateListeners(html) {
super.activateListeners(html); super.activateListeners(html);
html.find(".select-actor").change((event) => this.onSelectActor(event)); html.find("input.select-actor").change((event) => this.onSelectActor(event));
} }
async onSelectActor(event) { async onSelectActor(event) {
event.preventDefault(); const actorId = $(event.currentTarget)?.data("actor-id");
const options = event.currentTarget.options; const actor = this.dialogData.actors.find(it => it.id == actorId);
for (var i = 0; i < options.length; i++) { // looping over the options if (actor) {
const actorId = options[i].attributes["data-actor-id"].value; actor.selected = event.currentTarget.checked;
const actor = this.dialogData.actors.find(it => it._id == actorId); }
if (actor) {
actor.selected = options[i].selected;
}
};
} }
} }

View File

@@ -74,7 +74,10 @@ export class RdDItemSheet extends ItemSheet {
owner: this.item.isOwner, owner: this.item.isOwner,
editable: this.isEditable, editable: this.isEditable,
cssClass: this.isEditable ? "editable" : "locked", cssClass: this.isEditable ? "editable" : "locked",
isSoins: false isSoins: false,
description: await TextEditor.enrichHTML(this.object.system.description, {async: true}),
descriptionmj: await TextEditor.enrichHTML(this.object.system.descriptionmj, {async: true})
} }
if (this.actor) { if (this.actor) {
formData.isOwned = true; formData.isOwned = true;
@@ -93,8 +96,15 @@ export class RdDItemSheet extends ItemSheet {
formData.competences = await RdDUtility.loadCompendium('foundryvtt-reve-de-dragon.competences', it => RdDItemCompetence.isCompetenceArme(it)); formData.competences = await RdDUtility.loadCompendium('foundryvtt-reve-de-dragon.competences', it => RdDItemCompetence.isCompetenceArme(it));
console.log(formData.competences) console.log(formData.competences)
} }
if (this.item.type == 'recettecuisine') {
formData.ingredients = await TextEditor.enrichHTML(this.object.system.ingredients, {async: true})
}
if (this.item.type == 'recettealchimique') { if (this.item.type == 'recettealchimique') {
RdDAlchimie.processManipulation(this.item, this.actor && this.actor.id); RdDAlchimie.processManipulation(this.item, this.actor && this.actor.id);
formData.manipulation_update = await TextEditor.enrichHTML(this.object.system.manipulation_update, {async: true})
formData.utilisation = await TextEditor.enrichHTML(this.object.system.utilisation, {async: true})
formData.enchantement = await TextEditor.enrichHTML(this.object.system.enchantement, {async: true})
formData.sureffet = await TextEditor.enrichHTML(this.object.system.sureffet, {async: true})
} }
if (this.item.type == 'gemme') { if (this.item.type == 'gemme') {
formData.gemmeTypeList = RdDGemme.getGemmeTypeOptionList(); formData.gemmeTypeList = RdDGemme.getGemmeTypeOptionList();
@@ -121,8 +131,7 @@ export class RdDItemSheet extends ItemSheet {
/* -------------------------------------------- */ /* -------------------------------------------- */
prepareConteneurData(formData) { prepareConteneurData(formData) {
formData.itemsByType = Misc.classify(this.actor.items.map(i => foundry.utils.deepClone(i))) RdDUtility.filterEquipementParType(formData, this.actor.itemTypes);
RdDUtility.filterEquipementParType(formData)
this.objetVersConteneur = RdDUtility.buildArbreDeConteneurs(formData.conteneurs, formData.objets); this.objetVersConteneur = RdDUtility.buildArbreDeConteneurs(formData.conteneurs, formData.objets);
formData.subItems = formData.conteneurs.find(it => it._id == this.item.id)?.subItems; formData.subItems = formData.conteneurs.find(it => it._id == this.item.id)?.subItems;

View File

@@ -32,8 +32,7 @@ export class RdDSigneDraconiqueItemSheet extends ItemSheet {
const position = super.setPosition(options); const position = super.setPosition(options);
const sheetHeader = this.element.find(".sheet-header"); const sheetHeader = this.element.find(".sheet-header");
const sheetBody = this.element.find(".sheet-body"); const sheetBody = this.element.find(".sheet-body");
const bodyHeight = position.height - sheetHeader[0].clientHeight; sheetBody.css("height", position.height - sheetHeader[0].clientHeight)
sheetBody.css("height", bodyHeight);
return position; return position;
} }
@@ -41,16 +40,17 @@ export class RdDSigneDraconiqueItemSheet extends ItemSheet {
/* -------------------------------------------- */ /* -------------------------------------------- */
async getData() { async getData() {
const formData = duplicate(this.item); const formData = duplicate(this.item);
this.tmrs = TMRUtility.buildSelectionTypesTMR(this.item.system.typesTMR);
mergeObject(formData, { mergeObject(formData, {
tmrs: this.tmrs,
title: formData.name, title: formData.name,
isGM: game.user.isGM, isGM: game.user.isGM,
owner: this.actor.isOwner, owner: this.actor?.isOwner,
isOwned: this.actor ? true : false, isOwned: this.actor ? true : false,
actorId: this.actor?.id, actorId: this.actor?.id,
editable: this.isEditable, editable: this.isEditable,
cssClass: this.isEditable ? "editable" : "locked", cssClass: this.isEditable ? "editable" : "locked",
}); });
formData.tmrs = TMRUtility.listSelectedTMR(formData.system.typesTMR ?? []);
return formData; return formData;
} }
@@ -62,7 +62,7 @@ export class RdDSigneDraconiqueItemSheet extends ItemSheet {
if (!this.options.editable) return; if (!this.options.editable) return;
html.find(".signe-aleatoire").click(event => this.setSigneAleatoire()); html.find(".signe-aleatoire").click(event => this.setSigneAleatoire());
html.find(".select-tmr").change((event) => this.onSelectTmr(event)); html.find("input.select-tmr").change((event) => this.onSelectTmr(event));
html.find(".signe-xp-sort").change((event) => this.onValeurXpSort(event.currentTarget.attributes['data-typereussite']?.value, Number(event.currentTarget.value))); html.find(".signe-xp-sort").change((event) => this.onValeurXpSort(event.currentTarget.attributes['data-typereussite']?.value, Number(event.currentTarget.value)));
} }
@@ -72,9 +72,13 @@ export class RdDSigneDraconiqueItemSheet extends ItemSheet {
} }
async onSelectTmr(event) { async onSelectTmr(event) {
event.preventDefault(); const tmrName = $(event.currentTarget)?.data("tmr-name");
const selectedTMR = $(".select-tmr").val(); const onTmr = this.tmrs.find(it => it.name == tmrName);
this.item.update({ 'system.typesTMR': selectedTMR }); if (onTmr){
onTmr.selected = event.currentTarget.checked;
}
this.item.update({ 'system.typesTMR': TMRUtility.buildListTypesTMRSelection(this.tmrs) });
} }
async onValeurXpSort(event) { async onValeurXpSort(event) {

View File

@@ -148,10 +148,10 @@ export class RdDItem extends Item {
getActionPrincipale(options = { warnIfNot: true }) { getActionPrincipale(options = { warnIfNot: true }) {
const warn = options.warnIfNot; const warn = options.warnIfNot;
switch (this.type) { switch (this.type) {
case 'nourritureboisson': return this._actionOrWarnQuantiteZero(this.boisson ? 'Boire' : 'Manger', warn); case 'nourritureboisson': return this._actionOrWarnQuantiteZero(this.system.boisson ? 'Boire' : 'Manger', warn);
case 'potion': return this._actionOrWarnQuantiteZero('Boire', warn); case 'potion': return this._actionOrWarnQuantiteZero('Boire', warn);
case 'livre': return this._actionOrWarnQuantiteZero('Lire', warn); case 'livre': return this._actionOrWarnQuantiteZero('Lire', warn);
case 'conteneur': return this._actionOrWarnQuantiteZero('Ouvrir', warn); case 'conteneur': return 'Ouvrir';
case 'herbe': return this.isHerbeAPotion() ? this._actionOrWarnQuantiteZero('Décoction', warn) : undefined; case 'herbe': return this.isHerbeAPotion() ? this._actionOrWarnQuantiteZero('Décoction', warn) : undefined;
case 'queue': case 'ombre': return this.system.refoulement>0 ? 'Refouler' : undefined; case 'queue': case 'ombre': return this.system.refoulement>0 ? 'Refouler' : undefined;
} }
@@ -198,8 +198,9 @@ export class RdDItem extends Item {
/* -------------------------------------------- */ /* -------------------------------------------- */
// détermine si deux équipements sont similaires: de même type, et avec les même champs hormis la quantité // détermine si deux équipements sont similaires: de même type, et avec les même champs hormis la quantité
isEquipementSimilaire(other) { messageEquipementDifferent(other) {
if (!this.isEquipement()) return false; if (!other || !this.isEquipement()) return undefined;
let message = undefined; let message = undefined;
if (this.type != other.type) { if (this.type != other.type) {
message = `Impossible de regrouper ${this.type} avec ${other.type}`; message = `Impossible de regrouper ${this.type} avec ${other.type}`;
@@ -220,11 +221,7 @@ export class RdDItem extends Item {
} }
} }
} }
if (message){ return message;
ui.notifications.info(message)
return false;
}
return true;
} }
async proposerVente() { async proposerVente() {

View File

@@ -80,11 +80,30 @@ class _10_0_17_MigrationCompetenceCreature extends Migration {
} }
} }
class _10_0_21_VehiculeStructureResistanceMax extends Migration {
get code() { return "vehicule-structure-resistance-max"; }
get version() { return "10.0.21"; }
async migrate() {
await game.actors
.filter((actor) => actor.type == "vehicule")
.forEach(async (actor) => {
await actor.update({
'system.etat.resistance.value': actor.system.resistance,
'system.etat.resistance.max': actor.system.resistance,
'system.etat.structure.value': actor.system.structure,
'system.etat.structure.max': actor.system.structure
})
});
}
}
export class Migrations { export class Migrations {
static getMigrations() { static getMigrations() {
return [ return [
new _10_0_16_MigrationSortsReserve(), new _10_0_16_MigrationSortsReserve(),
new _10_0_17_MigrationCompetenceCreature() new _10_0_17_MigrationCompetenceCreature(),
new _10_0_21_VehiculeStructureResistanceMax(),
]; ];
} }

View File

@@ -223,9 +223,9 @@ export class RdDCalendrier extends Application {
checkMaladie( periode) { checkMaladie( periode) {
for (let actor of game.actors) { for (let actor of game.actors) {
if (actor.type == 'personnage') { if (actor.type == 'personnage') {
let maladies = actor.items.find( item => (item.type == 'maladie' || (item.type == 'poison' && item.system.active) ) && item.system.periodicite.toLowerCase().includes(periode) ); let maladies = actor.items.filter( item => (item.type == 'maladie' || (item.type == 'poison' && item.system.active) ) && item.system.periodicite.toLowerCase().includes(periode) );
for (let maladie of maladies) { for (let maladie of maladies) {
if ( maladie.system.identifie) { if ( maladie.system.identifie) {
ChatMessage.create({ content: `${actor.name} souffre de ${maladie.name} (${maladie.type}): vérifiez que les effets ne se sont pas aggravés !` }); ChatMessage.create({ content: `${actor.name} souffre de ${maladie.name} (${maladie.type}): vérifiez que les effets ne se sont pas aggravés !` });
} else { } else {
ChatMessage.create({ content: `${actor.name} souffre d'un mal inconnu (${maladie.type}): vérifiez que les effets ne se sont pas aggravés !` }); ChatMessage.create({ content: `${actor.name} souffre d'un mal inconnu (${maladie.type}): vérifiez que les effets ne se sont pas aggravés !` });

View File

@@ -358,10 +358,9 @@ export class RdDCommands {
async supprimerSignesDraconiquesEphemeres() { async supprimerSignesDraconiquesEphemeres() {
game.actors.forEach(actor => { game.actors.forEach(actor => {
const ephemeres = actor.items.find(item => item.type = 'signedraconique' && item.system.ephemere) const ephemeres = actor.items.filter(item => item.type = 'signedraconique' && item.system.ephemere);
.map(item => item.id);
if (ephemeres.length > 0) { if (ephemeres.length > 0) {
actor.deleteEmbeddedDocuments("Item", ephemeres); actor.deleteEmbeddedDocuments("Item", ephemeres.map(item => item.id));
} }
}); });
return true; return true;

View File

@@ -2,14 +2,18 @@ import { Misc } from "./misc.js";
export class RdDHotbar { export class RdDHotbar {
static async createMacro(item, command) { static async addToHotbar(item, slot) {
let macro = await Macro.create({ let command = `game.system.rdd.RdDHotbar.rollMacro("${item.name}", "${item.type}");`;
name: item.name, let macro = game.macros.contents.find(m => (m.name === item.name) && (m.command === command));
type: "script", if (!macro) {
img: item.img, macro = await Macro.create({
command: command name: item.name,
}, { displaySheet: false }) type: "script",
return macro img: item.img,
command: command
}, { displaySheet: false })
}
await game.user.assignHotbarMacro(macro, slot);
} }
/** /**
@@ -32,69 +36,33 @@ export class RdDHotbar {
if (!item || (item.type != "arme" && item.type != "competence")) { if (!item || (item.type != "arme" && item.type != "competence")) {
return true return true
} }
let command = `game.system.rdd.RdDHotbar.rollMacro("${item.name}", "${item.type}");`; this.addToHotbar(item, slot)
let macro = game.macros.contents.find(m => (m.name === item.name) && (m.command === command));
if (!macro) {
macro = this.createMacro(item, command)
}
game.user.assignHotbarMacro(macro, slot);
return false return false
} }
// Create a macro to open the actor sheet of the actor dropped on the hotbar return true
/*else if (documentData.type == "Actor") { })
let actor = game.actors.get(documentData.id); }
let command = `game.actors.get("${documentData.id}").sheet.render(true)`
let macro = game.macros.contents.find(m => (m.name === actor.name) && (m.command === command));
if (!macro) {
macro = await Macro.create({
name: actor.name,
type: "script",
img: actor.img,
command: command
}, { displaySheet: false })
game.user.assignHotbarMacro(macro, slot);
}
}
// Create a macro to open the journal sheet of the journal dropped on the hotbar
else if (documentData.type == "JournalEntry") {
let journal = fromUuidSync(documentData.uuid)
let command = `game.journal.get("${documentData.id}").sheet.render(true)`
let macro = game.macros.contents.find(m => (m.name === journal.name) && (m.command === command));
if (!macro) {
macro = await Macro.create({
name: journal.name,
type: "script",
img: "systems/foundryvtt-reve-de-dragon/icons/templates/icone_parchement_vierge.webp",
command: command
}, { displaySheet: false })
game.user.assignHotbarMacro(macro, slot);
}
}*/
return true;
});
}
/** Roll macro */ /** Roll macro */
static rollMacro(itemName, itemType, bypassData) { static rollMacro(itemName, itemType, bypassData) {
const speaker = ChatMessage.getSpeaker(); const speaker = ChatMessage.getSpeaker();
let actor; let actor;
if (speaker.token) actor = game.actors.tokens[speaker.token]; if (speaker.token) actor = game.actors.tokens[speaker.token];
if (!actor) actor = game.actors.get(speaker.actor); if (!actor) actor = game.actors.get(speaker.actor);
let item = actor?.items.find(it => it.name === itemName && it.type == itemType) ?? undefined; let item = actor?.items.find(it => it.name === itemName && it.type == itemType) ?? undefined;
if (!item) { if (!item) {
return ui.notifications.warn(`Impossible de trouver l'objet de cette macro`); return ui.notifications.warn(`Impossible de trouver l'objet de cette macro`);
}
// Trigger the item roll
switch (item.type) {
case "arme":
return actor.rollArme(item);
case "competence":
return actor.rollCompetence(itemName);
}
} }
// Trigger the item roll
switch (item.type) {
case "arme":
return actor.rollArme(item);
case "competence":
return actor.rollCompetence(itemName);
}
}
} }

View File

@@ -25,7 +25,7 @@ export class RdDRollTables {
/* -------------------------------------------- */ /* -------------------------------------------- */
static async drawTextFromRollTable(tableName, toChat) { static async drawTextFromRollTable(tableName, toChat) {
const drawResult = await RdDRollTables.genericGetTableResult(tableName, toChat); const drawResult = await RdDRollTables.genericGetTableResult(tableName, toChat);
return drawResult.data.text; return drawResult.text;
} }
/* -------------------------------------------- */ /* -------------------------------------------- */

View File

@@ -115,22 +115,43 @@ export class RdDUtility {
'systems/foundryvtt-reve-de-dragon/templates/actor-creature-sheet.html', 'systems/foundryvtt-reve-de-dragon/templates/actor-creature-sheet.html',
'systems/foundryvtt-reve-de-dragon/templates/actor-entite-sheet.html', 'systems/foundryvtt-reve-de-dragon/templates/actor-entite-sheet.html',
'systems/foundryvtt-reve-de-dragon/templates/actor-vehicule-sheet.html', 'systems/foundryvtt-reve-de-dragon/templates/actor-vehicule-sheet.html',
'systems/foundryvtt-reve-de-dragon/templates/actor-sheet-competence-partial.html', // sous-parties de feuilles de personnages
'systems/foundryvtt-reve-de-dragon/templates/actor-sheet-categorie-competences-partial.html', 'systems/foundryvtt-reve-de-dragon/templates/actor/competence.html',
'systems/foundryvtt-reve-de-dragon/templates/actor-sheet-effects-partial.html', 'systems/foundryvtt-reve-de-dragon/templates/actor/categorie-competences.html',
'systems/foundryvtt-reve-de-dragon/templates/actor-sheet-oeuvre-partial.html', 'systems/foundryvtt-reve-de-dragon/templates/actor/effects.html',
'systems/foundryvtt-reve-de-dragon/templates/actor-liste-blessures-partial.html', 'systems/foundryvtt-reve-de-dragon/templates/actor/xp-competences.html',
'systems/foundryvtt-reve-de-dragon/templates/actor-blessure-partial.html', 'systems/foundryvtt-reve-de-dragon/templates/actor/combat.html',
'systems/foundryvtt-reve-de-dragon/templates/actor-sheet-queues.html', 'systems/foundryvtt-reve-de-dragon/templates/actor/blessures.html',
// Conteneur/item in Actor sheet 'systems/foundryvtt-reve-de-dragon/templates/actor/blessure.html',
'systems/foundryvtt-reve-de-dragon/templates/actor-sheet-inventaire.html', 'systems/foundryvtt-reve-de-dragon/templates/actor/maladies-poisons.html',
'systems/foundryvtt-reve-de-dragon/templates/actor-sheet-item-queue.html', 'systems/foundryvtt-reve-de-dragon/templates/actor/possessions.html',
'systems/foundryvtt-reve-de-dragon/templates/actor-sheet-inventaire-item.html', 'systems/foundryvtt-reve-de-dragon/templates/actor/taches.html',
"systems/foundryvtt-reve-de-dragon/templates/actor-sheet-inventaire-monnaie.html", 'systems/foundryvtt-reve-de-dragon/templates/actor/taches.html',
'systems/foundryvtt-reve-de-dragon/templates/actor-sheet-liens-animaux.html', 'systems/foundryvtt-reve-de-dragon/templates/actor/oeuvres.html',
'systems/foundryvtt-reve-de-dragon/templates/actor-sheet-liens-suivants.html', 'systems/foundryvtt-reve-de-dragon/templates/actor/oeuvre.html',
'systems/foundryvtt-reve-de-dragon/templates/actor-sheet-liens-vehicules.html', 'systems/foundryvtt-reve-de-dragon/templates/actor/jeux.html',
'systems/foundryvtt-reve-de-dragon/templates/actor-sheet-editor-notes-mj.html', 'systems/foundryvtt-reve-de-dragon/templates/actor/alchimie.html',
'systems/foundryvtt-reve-de-dragon/templates/actor/astrologie.html',
'systems/foundryvtt-reve-de-dragon/templates/actor/non-haut-revant.html',
'systems/foundryvtt-reve-de-dragon/templates/actor/haut-revant.html',
'systems/foundryvtt-reve-de-dragon/templates/actor/dragon-queues.html',
'systems/foundryvtt-reve-de-dragon/templates/actor/dragon-queue.html',
'systems/foundryvtt-reve-de-dragon/templates/actor/dragon-souffles.html',
'systems/foundryvtt-reve-de-dragon/templates/actor/dragon-tetes.html',
'systems/foundryvtt-reve-de-dragon/templates/actor/hr-signes-draconiques.html',
'systems/foundryvtt-reve-de-dragon/templates/actor/hr-rencontres.html',
'systems/foundryvtt-reve-de-dragon/templates/actor/hr-sorts.html',
'systems/foundryvtt-reve-de-dragon/templates/actor/hr-sorts-reserve.html',
'systems/foundryvtt-reve-de-dragon/templates/actor/hr-meditations.html',
'systems/foundryvtt-reve-de-dragon/templates/actor/hr-casestmr.html',
'systems/foundryvtt-reve-de-dragon/templates/actor/xp-journal.html',
'systems/foundryvtt-reve-de-dragon/templates/actor/editor-notes-mj.html',
'systems/foundryvtt-reve-de-dragon/templates/actor/inventaire.html',
'systems/foundryvtt-reve-de-dragon/templates/actor/inventaire-item.html',
"systems/foundryvtt-reve-de-dragon/templates/actor/inventaire-monnaie.html",
'systems/foundryvtt-reve-de-dragon/templates/actor/liens-animaux.html',
'systems/foundryvtt-reve-de-dragon/templates/actor/liens-suivants.html',
'systems/foundryvtt-reve-de-dragon/templates/actor/liens-vehicules.html',
//Items //Items
'systems/foundryvtt-reve-de-dragon/templates/header-item.html', 'systems/foundryvtt-reve-de-dragon/templates/header-item.html',
'systems/foundryvtt-reve-de-dragon/templates/item-competence-sheet.html', 'systems/foundryvtt-reve-de-dragon/templates/item-competence-sheet.html',
@@ -368,49 +389,50 @@ export class RdDUtility {
} }
/* -------------------------------------------- */ /* -------------------------------------------- */
static filterItemsPerTypeForSheet(formData) { static filterItemsPerTypeForSheet(formData, itemTypes) {
RdDUtility.filterEquipementParType(formData); RdDUtility.filterEquipementParType(formData, itemTypes);
formData.sorts = this.arrayOrEmpty(formData.itemsByType['sort']); formData.sorts = this.arrayOrEmpty(itemTypes['sort']);
formData.signesdraconiques = this.arrayOrEmpty(formData.itemsByType['signedraconique']); formData.casestmr = this.arrayOrEmpty(itemTypes['casetmr']);
formData.queues = this.arrayOrEmpty(formData.itemsByType['queue']); formData.signesdraconiques = this.arrayOrEmpty(itemTypes['signedraconique']);
formData.souffles = this.arrayOrEmpty(formData.itemsByType['souffle']); formData.queues = this.arrayOrEmpty(itemTypes['queue']);
formData.ombres = this.arrayOrEmpty(formData.itemsByType['ombre']); formData.souffles = this.arrayOrEmpty(itemTypes['souffle']);
formData.tetes = this.arrayOrEmpty(formData.itemsByType['tete']); formData.ombres = this.arrayOrEmpty(itemTypes['ombre']);
formData.taches = this.arrayOrEmpty(formData.itemsByType['tache']); formData.tetes = this.arrayOrEmpty(itemTypes['tete']);
formData.meditations = this.arrayOrEmpty(formData.itemsByType['meditation']); formData.taches = this.arrayOrEmpty(itemTypes['tache']);
formData.chants = this.arrayOrEmpty(formData.itemsByType['chant']); formData.meditations = this.arrayOrEmpty(itemTypes['meditation']);
formData.danses = this.arrayOrEmpty(formData.itemsByType['danse']); formData.chants = this.arrayOrEmpty(itemTypes['chant']);
formData.musiques = this.arrayOrEmpty(formData.itemsByType['musique']); formData.danses = this.arrayOrEmpty(itemTypes['danse']);
formData.oeuvres = this.arrayOrEmpty(formData.itemsByType['oeuvre']); formData.musiques = this.arrayOrEmpty(itemTypes['musique']);
formData.jeux = this.arrayOrEmpty(formData.itemsByType['jeu']); formData.oeuvres = this.arrayOrEmpty(itemTypes['oeuvre']);
formData.jeux = this.arrayOrEmpty(itemTypes['jeu']);
formData.recettescuisine = this.arrayOrEmpty(formData.itemsByType['recettecuisine']); formData.recettescuisine = this.arrayOrEmpty(itemTypes['recettecuisine']);
formData.recettesAlchimiques = this.arrayOrEmpty(formData.itemsByType['recettealchimique']); formData.recettesAlchimiques = this.arrayOrEmpty(itemTypes['recettealchimique']);
formData.maladies = this.arrayOrEmpty(formData.itemsByType['maladie']); formData.maladies = this.arrayOrEmpty(itemTypes['maladie']);
formData.poisons = this.arrayOrEmpty(formData.itemsByType['poison']); formData.poisons = this.arrayOrEmpty(itemTypes['poison']);
formData.possessions = this.arrayOrEmpty(formData.itemsByType['possession']); formData.possessions = this.arrayOrEmpty(itemTypes['possession']);
formData.maladiesPoisons = formData.maladies.concat(formData.poisons); formData.maladiesPoisons = formData.maladies.concat(formData.poisons);
formData.competences = (formData.itemsByType.competence ?? []).concat(formData.itemsByType.competencecreature ?? []); formData.competences = (itemTypes['competence'] ?? []).concat(itemTypes['competencecreature'] ?? []);
formData.sortsReserve = this.arrayOrEmpty(formData.itemsByType['sortreserve']); formData.sortsReserve = this.arrayOrEmpty(itemTypes['sortreserve']);
} }
static filterEquipementParType(formData) { static filterEquipementParType(formData, itemTypes) {
formData.conteneurs = this.arrayOrEmpty(formData.itemsByType['conteneur']); formData.conteneurs = this.arrayOrEmpty(itemTypes['conteneur']);
formData.materiel = this.arrayOrEmpty(formData.itemsByType['objet']); formData.materiel = this.arrayOrEmpty(itemTypes['objet']);
formData.armes = this.arrayOrEmpty(formData.itemsByType['arme']); formData.armes = this.arrayOrEmpty(itemTypes['arme']);
formData.armures = this.arrayOrEmpty(formData.itemsByType['armure']); formData.armures = this.arrayOrEmpty(itemTypes['armure']);
formData.munitions = this.arrayOrEmpty(formData.itemsByType['munition']); formData.munitions = this.arrayOrEmpty(itemTypes['munition']);
formData.livres = this.arrayOrEmpty(formData.itemsByType['livre']); formData.livres = this.arrayOrEmpty(itemTypes['livre']);
formData.potions = this.arrayOrEmpty(formData.itemsByType['potion']); formData.potions = this.arrayOrEmpty(itemTypes['potion']);
formData.ingredients = this.arrayOrEmpty(formData.itemsByType['ingredient']); formData.ingredients = this.arrayOrEmpty(itemTypes['ingredient']);
formData.herbes = this.arrayOrEmpty(formData.itemsByType['herbe']); formData.herbes = this.arrayOrEmpty(itemTypes['herbe']);
formData.monnaie = this.arrayOrEmpty(formData.itemsByType['monnaie']); formData.monnaie = this.arrayOrEmpty(itemTypes['monnaie']);
formData.monnaie.sort(Monnaie.triValeurDenier()); formData.monnaie.sort(Monnaie.triValeurDenier());
formData.nourritureboissons = this.arrayOrEmpty(formData.itemsByType['nourritureboisson']); formData.nourritureboissons = this.arrayOrEmpty(itemTypes['nourritureboisson']);
formData.gemmes = this.arrayOrEmpty(formData.itemsByType['gemme']); formData.gemmes = this.arrayOrEmpty(itemTypes['gemme']);
formData.objets = formData.conteneurs formData.objets = formData.conteneurs
.concat(formData.materiel) .concat(formData.materiel)
@@ -480,7 +502,7 @@ export class RdDUtility {
const isConteneur = objet.type == 'conteneur'; const isConteneur = objet.type == 'conteneur';
const isOuvert = isConteneur && this.getAfficheContenu(objet._id); const isOuvert = isConteneur && this.getAfficheContenu(objet._id);
const isVide = isConteneur && objet.system.contenu.length == 0; const isVide = isConteneur && objet.system.contenu.length == 0;
const conteneur = Handlebars.partials['systems/foundryvtt-reve-de-dragon/templates/actor-sheet-inventaire-item.html']({ const conteneur = Handlebars.partials['systems/foundryvtt-reve-de-dragon/templates/actor/inventaire-item.html']({
item: objet, item: objet,
vide: isVide, vide: isVide,
ouvert: isOuvert ouvert: isOuvert

View File

@@ -291,12 +291,18 @@ export class TMRUtility {
static typeTmrName(type) { static typeTmrName(type) {
return Misc.upperFirst(TMRType[Grammar.toLowerCaseNoAccent(type)].name); return Misc.upperFirst(TMRType[Grammar.toLowerCaseNoAccent(type)].name);
} }
static listSelectedTMR(typesTMR) {
static buildSelectionTypesTMR(typesTMR) {
typesTMR= typesTMR?? [];
return Object.values(TMRType).map(value => Misc.upperFirst(value.name)) return Object.values(TMRType).map(value => Misc.upperFirst(value.name))
.sort() .sort()
.map(name => { return { name: name, selected: typesTMR.includes(name) } }); .map(name => { return { name: name, selected: typesTMR.includes(name) } });
} }
static buildListTypesTMRSelection(selectionTMRs) {
return selectionTMRs.filter(it => it.selected).map(it => it.name).join(" ");
}
static isCaseHumide(tmr) { static isCaseHumide(tmr) {
return tmr.type == 'fleuve' || tmr.type == 'lac' || tmr.type == 'marais'; return tmr.type == 'fleuve' || tmr.type == 'lac' || tmr.type == 'marais';
} }

File diff suppressed because one or more lines are too long

View File

@@ -1,40 +1,40 @@
{"name":"Idée fixe : Anorexie. Ne rien avaler, ni solide, ni liquide, pas même une potion","permission":{"default":0,"rYShh2P1DNavdoBD":3},"type":"queue","data":{"description":"<p>Prend effet imm&eacute;diatement et dure jusqu'&agrave; la <strong>fin de l'heure du Ch&acirc;teau Dormant </strong>du <strong>lendemain.<br /></strong>Si pass&eacute; ce d&eacute;lai, l'occasion de la manifester ne s'est pas pr&eacute;sent&eacute;e, la queue prend fin.</p>\n<p>Si elle entre en contradiction avec une autre queue, retirer.</p>","refoulement":1},"flags":{},"img":"anorexie.webp","effects":[],"_id":"0uc2pMIGL03Hq2Hn"} {"name":"Idée fixe : Anorexie. Ne rien avaler, ni solide, ni liquide, pas même une potion","permission":{"default":0,"rYShh2P1DNavdoBD":3},"type":"queue","data":{"description":"<p>Prend effet imm&eacute;diatement et dure jusqu'&agrave; la <strong>fin de l'heure du Ch&acirc;teau Dormant </strong>du <strong>lendemain.<br /></strong>Si pass&eacute; ce d&eacute;lai, l'occasion de la manifester ne s'est pas pr&eacute;sent&eacute;e, la queue prend fin.</p>\n<p>Si elle entre en contradiction avec une autre queue, retirer.</p>","refoulement":1},"flags":{},"img":"systems/foundryvtt-reve-de-dragon/icons/queues/idee_fixe.webp","effects":[],"_id":"0uc2pMIGL03Hq2Hn"}
{"name":"Désir lancinant : Briser un objet de verre","permission":{"default":0,"rYShh2P1DNavdoBD":3},"type":"queue","data":{"description":"<p>Tant que satisfaction n'est pas obtenue, aucun point d'exp&eacute;rience ne peut plus &ecirc;tre gagn&eacute; par l'exercice en cas de particuli&egrave;re et d'ajustement final n&eacute;gatif.<br />Les points d'exp&eacute;rience dus au stress ne sont pas affect&eacute;s.</p>","refoulement":1},"flags":{},"img":"briser_verre.webp","effects":[],"_id":"1l59lWbtvYp74OTb"} {"name":"Désir lancinant : Briser un objet de verre","permission":{"default":0,"rYShh2P1DNavdoBD":3},"type":"queue","data":{"description":"<p>Tant que satisfaction n'est pas obtenue, aucun point d'exp&eacute;rience ne peut plus &ecirc;tre gagn&eacute; par l'exercice en cas de particuli&egrave;re et d'ajustement final n&eacute;gatif.<br />Les points d'exp&eacute;rience dus au stress ne sont pas affect&eacute;s.</p>","refoulement":1},"flags":{},"img":"systems/foundryvtt-reve-de-dragon/icons/queues/desir_lancinant.webp","effects":[],"_id":"1l59lWbtvYp74OTb"}
{"name":"Idée fixe : Cracher dans toute nourriture ou boisson aperçue","permission":{"default":0,"rYShh2P1DNavdoBD":3},"type":"queue","data":{"description":"<p>Prend effet imm&eacute;diatement et dure jusqu'&agrave; la <strong>fin de l'heure du Ch&acirc;teau Dormant </strong>du <strong>lendemain.<br /></strong>Si pass&eacute; ce d&eacute;lai, l'occasion de la manifester ne s'est pas pr&eacute;sent&eacute;e, la queue prend fin.</p>\n<p>Si elle entre en contradiction avec une autre queue, retirer.</p>","refoulement":1},"flags":{},"img":"cracher_nourriture.webp","effects":[],"_id":"22EQLBJfHVYs96iC"} {"name":"Idée fixe : Cracher dans toute nourriture ou boisson aperçue","permission":{"default":0,"rYShh2P1DNavdoBD":3},"type":"queue","data":{"description":"<p>Prend effet imm&eacute;diatement et dure jusqu'&agrave; la <strong>fin de l'heure du Ch&acirc;teau Dormant </strong>du <strong>lendemain.<br /></strong>Si pass&eacute; ce d&eacute;lai, l'occasion de la manifester ne s'est pas pr&eacute;sent&eacute;e, la queue prend fin.</p>\n<p>Si elle entre en contradiction avec une autre queue, retirer.</p>","refoulement":1},"flags":{},"img":"systems/foundryvtt-reve-de-dragon/icons/queues/idee_fixe.webp","effects":[],"_id":"22EQLBJfHVYs96iC"}
{"name":"Idée fixe : Éteindre tout feu rencontré (feu de camp, torche, lanterne, etc.)","permission":{"default":0,"rYShh2P1DNavdoBD":3},"type":"queue","data":{"description":"<p>Prend effet imm&eacute;diatement et dure jusqu'&agrave; la <strong>fin de l'heure du Ch&acirc;teau Dormant </strong>du <strong>lendemain.<br /></strong>Si pass&eacute; ce d&eacute;lai, l'occasion de la manifester ne s'est pas pr&eacute;sent&eacute;e, la queue prend fin.</p>\n<p>Si elle entre en contradiction avec une autre queue, retirer.</p>","refoulement":1},"flags":{},"img":"eteindre_feu.webp","effects":[],"_id":"2Rtm78bMKPy8eG4q"} {"name":"Idée fixe : Éteindre tout feu rencontré (feu de camp, torche, lanterne, etc.)","permission":{"default":0,"rYShh2P1DNavdoBD":3},"type":"queue","data":{"description":"<p>Prend effet imm&eacute;diatement et dure jusqu'&agrave; la <strong>fin de l'heure du Ch&acirc;teau Dormant </strong>du <strong>lendemain.<br /></strong>Si pass&eacute; ce d&eacute;lai, l'occasion de la manifester ne s'est pas pr&eacute;sent&eacute;e, la queue prend fin.</p>\n<p>Si elle entre en contradiction avec une autre queue, retirer.</p>","refoulement":1},"flags":{},"img":"systems/foundryvtt-reve-de-dragon/icons/queues/idee_fixe.webp","effects":[],"_id":"2Rtm78bMKPy8eG4q"}
{"name":"Désir lancinant : Danser avec un(e) partenaire inconnu(e) (Beauté 13 minimum)","permission":{"default":0,"rYShh2P1DNavdoBD":3},"type":"queue","data":{"description":"<p>Tant que satisfaction n'est pas obtenue, aucun point d'exp&eacute;rience ne peut plus &ecirc;tre gagn&eacute; par l'exercice en cas de particuli&egrave;re et d'ajustement final n&eacute;gatif.<br />Les points d'exp&eacute;rience dus au stress ne sont pas affect&eacute;s.</p>","refoulement":1},"flags":{},"img":"danser_inconnu.webp","effects":[],"_id":"2i3PndTKG1n3hEUU"} {"name":"Désir lancinant : Danser avec un(e) partenaire inconnu(e) (Beauté 13 minimum)","permission":{"default":0,"rYShh2P1DNavdoBD":3},"type":"queue","data":{"description":"<p>Tant que satisfaction n'est pas obtenue, aucun point d'exp&eacute;rience ne peut plus &ecirc;tre gagn&eacute; par l'exercice en cas de particuli&egrave;re et d'ajustement final n&eacute;gatif.<br />Les points d'exp&eacute;rience dus au stress ne sont pas affect&eacute;s.</p>","refoulement":1},"flags":{},"img":"systems/foundryvtt-reve-de-dragon/icons/queues/desir_lancinant.webp","effects":[],"_id":"2i3PndTKG1n3hEUU"}
{"name":"Idée fixe : Traîner son épée en laisse (ou sa meilleure arme)","permission":{"default":0,"rYShh2P1DNavdoBD":3},"type":"queue","data":{"description":"<p>Prend effet imm&eacute;diatement et dure jusqu'&agrave; la <strong>fin de l'heure du Ch&acirc;teau Dormant </strong>du <strong>lendemain.<br /></strong>Si pass&eacute; ce d&eacute;lai, l'occasion de la manifester ne s'est pas pr&eacute;sent&eacute;e, la queue prend fin.</p>\n<p>Si elle entre en contradiction avec une autre queue, retirer.</p>","refoulement":1},"flags":{},"img":"trainer_laisse.webp","effects":[],"_id":"2j1q9e07ZLlIQDYl"} {"name":"Idée fixe : Traîner son épée en laisse (ou sa meilleure arme)","permission":{"default":0,"rYShh2P1DNavdoBD":3},"type":"queue","data":{"description":"<p>Prend effet imm&eacute;diatement et dure jusqu'&agrave; la <strong>fin de l'heure du Ch&acirc;teau Dormant </strong>du <strong>lendemain.<br /></strong>Si pass&eacute; ce d&eacute;lai, l'occasion de la manifester ne s'est pas pr&eacute;sent&eacute;e, la queue prend fin.</p>\n<p>Si elle entre en contradiction avec une autre queue, retirer.</p>","refoulement":1},"flags":{},"img":"systems/foundryvtt-reve-de-dragon/icons/queues/idee_fixe.webp","effects":[],"_id":"2j1q9e07ZLlIQDYl"}
{"name":"Désir lancinant : Gagner de largent (minimum 10 deniers)","permission":{"default":0,"rYShh2P1DNavdoBD":3},"type":"queue","data":{"description":"<p>Tant que satisfaction n'est pas obtenue, aucun point d'exp&eacute;rience ne peut plus &ecirc;tre gagn&eacute; par l'exercice en cas de particuli&egrave;re et d'ajustement final n&eacute;gatif.<br />Les points d'exp&eacute;rience dus au stress ne sont pas affect&eacute;s.</p>","refoulement":1},"flags":{},"img":"gagner_argent.webp","effects":[],"_id":"3BcC8lSsP5WIyva7"} {"name":"Désir lancinant : Gagner de largent (minimum 10 deniers)","permission":{"default":0,"rYShh2P1DNavdoBD":3},"type":"queue","data":{"description":"<p>Tant que satisfaction n'est pas obtenue, aucun point d'exp&eacute;rience ne peut plus &ecirc;tre gagn&eacute; par l'exercice en cas de particuli&egrave;re et d'ajustement final n&eacute;gatif.<br />Les points d'exp&eacute;rience dus au stress ne sont pas affect&eacute;s.</p>","refoulement":1},"flags":{},"img":"systems/foundryvtt-reve-de-dragon/icons/queues/desir_lancinant.webp","effects":[],"_id":"3BcC8lSsP5WIyva7"}
{"name":"Désir lancinant : Mégalomanie. Être acclamé par un minimum de 10 personnes","permission":{"default":0,"rYShh2P1DNavdoBD":3},"type":"queue","data":{"description":"<p>Tant que satisfaction n'est pas obtenue, aucun point d'exp&eacute;rience ne peut plus &ecirc;tre gagn&eacute; par l'exercice en cas de particuli&egrave;re et d'ajustement final n&eacute;gatif.<br />Les points d'exp&eacute;rience dus au stress ne sont pas affect&eacute;s.</p>","refoulement":1},"flags":{},"img":"megalomanie.webp","effects":[],"_id":"3ZjwYyQRatCMnBCi"} {"name":"Désir lancinant : Mégalomanie. Être acclamé par un minimum de 10 personnes","permission":{"default":0,"rYShh2P1DNavdoBD":3},"type":"queue","data":{"description":"<p>Tant que satisfaction n'est pas obtenue, aucun point d'exp&eacute;rience ne peut plus &ecirc;tre gagn&eacute; par l'exercice en cas de particuli&egrave;re et d'ajustement final n&eacute;gatif.<br />Les points d'exp&eacute;rience dus au stress ne sont pas affect&eacute;s.</p>","refoulement":1},"flags":{},"img":"systems/foundryvtt-reve-de-dragon/icons/queues/desir_lancinant.webp","effects":[],"_id":"3ZjwYyQRatCMnBCi"}
{"name":"Idée fixe : Avoir le visage noirci à la cendre","permission":{"default":0,"rYShh2P1DNavdoBD":3},"type":"queue","data":{"description":"<p>Prend effet imm&eacute;diatement et dure jusqu'&agrave; la <strong>fin de l'heure du Ch&acirc;teau Dormant </strong>du <strong>lendemain.<br /></strong>Si pass&eacute; ce d&eacute;lai, l'occasion de la manifester ne s'est pas pr&eacute;sent&eacute;e, la queue prend fin.</p>\n<p>Si elle entre en contradiction avec une autre queue, retirer.</p>","refoulement":1},"flags":{},"img":"avoir_visage.webp","effects":[],"_id":"6G0lF06jSryTduAt"} {"name":"Idée fixe : Avoir le visage noirci à la cendre","permission":{"default":0,"rYShh2P1DNavdoBD":3},"type":"queue","data":{"description":"<p>Prend effet imm&eacute;diatement et dure jusqu'&agrave; la <strong>fin de l'heure du Ch&acirc;teau Dormant </strong>du <strong>lendemain.<br /></strong>Si pass&eacute; ce d&eacute;lai, l'occasion de la manifester ne s'est pas pr&eacute;sent&eacute;e, la queue prend fin.</p>\n<p>Si elle entre en contradiction avec une autre queue, retirer.</p>","refoulement":1},"flags":{},"img":"systems/foundryvtt-reve-de-dragon/icons/queues/idee_fixe.webp","effects":[],"_id":"6G0lF06jSryTduAt"}
{"name":"Idée fixe : Ne marcher quà quatre pattes","permission":{"default":0,"rYShh2P1DNavdoBD":3},"type":"queue","data":{"description":"<p>Prend effet imm&eacute;diatement et dure jusqu'&agrave; la <strong>fin de l'heure du Ch&acirc;teau Dormant </strong>du <strong>lendemain.<br /></strong>Si pass&eacute; ce d&eacute;lai, l'occasion de la manifester ne s'est pas pr&eacute;sent&eacute;e, la queue prend fin.</p>\n<p>Si elle entre en contradiction avec une autre queue, retirer.</p>","refoulement":1},"flags":{},"img":"marcher_quatre_pattes.webp","effects":[],"_id":"7TKsit2Mv9mWGq3C"} {"name":"Idée fixe : Ne marcher quà quatre pattes","permission":{"default":0,"rYShh2P1DNavdoBD":3},"type":"queue","data":{"description":"<p>Prend effet imm&eacute;diatement et dure jusqu'&agrave; la <strong>fin de l'heure du Ch&acirc;teau Dormant </strong>du <strong>lendemain.<br /></strong>Si pass&eacute; ce d&eacute;lai, l'occasion de la manifester ne s'est pas pr&eacute;sent&eacute;e, la queue prend fin.</p>\n<p>Si elle entre en contradiction avec une autre queue, retirer.</p>","refoulement":1},"flags":{},"img":"systems/foundryvtt-reve-de-dragon/icons/queues/idee_fixe.webp","effects":[],"_id":"7TKsit2Mv9mWGq3C"}
{"name":"Désir lancinant : Acquérir une chèvre","permission":{"default":0,"rYShh2P1DNavdoBD":3},"type":"queue","data":{"description":"<p>Tant que satisfaction n'est pas obtenue, aucun point d'exp&eacute;rience ne peut plus &ecirc;tre gagn&eacute; par l'exercice en cas de particuli&egrave;re et d'ajustement final n&eacute;gatif.<br />Les points d'exp&eacute;rience dus au stress ne sont pas affect&eacute;s.</p>","refoulement":1},"flags":{},"img":"acqu%C3%A9rir_chevre.webp","effects":[],"_id":"8sLXQBqo8XwjAFG0"} {"name":"Désir lancinant : Acquérir une chèvre","permission":{"default":0,"rYShh2P1DNavdoBD":3},"type":"queue","data":{"description":"<p>Tant que satisfaction n'est pas obtenue, aucun point d'exp&eacute;rience ne peut plus &ecirc;tre gagn&eacute; par l'exercice en cas de particuli&egrave;re et d'ajustement final n&eacute;gatif.<br />Les points d'exp&eacute;rience dus au stress ne sont pas affect&eacute;s.</p>","refoulement":1},"flags":{},"img":"systems/foundryvtt-reve-de-dragon/icons/queues/desir_lancinant.webp","effects":[],"_id":"8sLXQBqo8XwjAFG0"}
{"name":"Idée fixe : Garder les yeux bandés","permission":{"default":0,"rYShh2P1DNavdoBD":3},"type":"queue","data":{"description":"<p>Prend effet imm&eacute;diatement et dure jusqu'&agrave; la <strong>fin de l'heure du Ch&acirc;teau Dormant </strong>du <strong>lendemain.<br /></strong>Si pass&eacute; ce d&eacute;lai, l'occasion de la manifester ne s'est pas pr&eacute;sent&eacute;e, la queue prend fin.</p>\n<p>Si elle entre en contradiction avec une autre queue, retirer.</p>","refoulement":1},"flags":{},"img":"garder_yeux.webp","effects":[],"_id":"E902EEYZHg3zFKq6"} {"name":"Idée fixe : Garder les yeux bandés","permission":{"default":0,"rYShh2P1DNavdoBD":3},"type":"queue","data":{"description":"<p>Prend effet imm&eacute;diatement et dure jusqu'&agrave; la <strong>fin de l'heure du Ch&acirc;teau Dormant </strong>du <strong>lendemain.<br /></strong>Si pass&eacute; ce d&eacute;lai, l'occasion de la manifester ne s'est pas pr&eacute;sent&eacute;e, la queue prend fin.</p>\n<p>Si elle entre en contradiction avec une autre queue, retirer.</p>","refoulement":1},"flags":{},"img":"systems/foundryvtt-reve-de-dragon/icons/queues/idee_fixe.webp","effects":[],"_id":"E902EEYZHg3zFKq6"}
{"name":"Désir lancinant : Danser nu sous la pluie","permission":{"default":0,"rYShh2P1DNavdoBD":3},"type":"queue","data":{"description":"<p>Tant que satisfaction n'est pas obtenue, aucun point d'exp&eacute;rience ne peut plus &ecirc;tre gagn&eacute; par l'exercice en cas de particuli&egrave;re et d'ajustement final n&eacute;gatif.<br />Les points d'exp&eacute;rience dus au stress ne sont pas affect&eacute;s.</p>","refoulement":1},"flags":{},"img":"danser_pluie.webp","effects":[],"_id":"F6qL4d4g3qjh045R"} {"name":"Désir lancinant : Danser nu sous la pluie","permission":{"default":0,"rYShh2P1DNavdoBD":3},"type":"queue","data":{"description":"<p>Tant que satisfaction n'est pas obtenue, aucun point d'exp&eacute;rience ne peut plus &ecirc;tre gagn&eacute; par l'exercice en cas de particuli&egrave;re et d'ajustement final n&eacute;gatif.<br />Les points d'exp&eacute;rience dus au stress ne sont pas affect&eacute;s.</p>","refoulement":1},"flags":{},"img":"systems/foundryvtt-reve-de-dragon/icons/queues/desir_lancinant.webp","effects":[],"_id":"F6qL4d4g3qjh045R"}
{"name":"Idée fixe : Garder sur soi 3d6 kilos de cailloux","permission":{"default":0,"rYShh2P1DNavdoBD":3},"type":"queue","data":{"description":"<p>Prend effet imm&eacute;diatement et dure jusqu'&agrave; la <strong>fin de l'heure du Ch&acirc;teau Dormant </strong>du <strong>lendemain.<br /></strong>Si pass&eacute; ce d&eacute;lai, l'occasion de la manifester ne s'est pas pr&eacute;sent&eacute;e, la queue prend fin.</p>\n<p>Si elle entre en contradiction avec une autre queue, retirer.</p>","refoulement":1},"flags":{},"img":"garder_cailloux.webp","effects":[],"_id":"F8G3rdU1nfJzYwYR"} {"name":"Idée fixe : Garder sur soi 3d6 kilos de cailloux","permission":{"default":0,"rYShh2P1DNavdoBD":3},"type":"queue","data":{"description":"<p>Prend effet imm&eacute;diatement et dure jusqu'&agrave; la <strong>fin de l'heure du Ch&acirc;teau Dormant </strong>du <strong>lendemain.<br /></strong>Si pass&eacute; ce d&eacute;lai, l'occasion de la manifester ne s'est pas pr&eacute;sent&eacute;e, la queue prend fin.</p>\n<p>Si elle entre en contradiction avec une autre queue, retirer.</p>","refoulement":1},"flags":{},"img":"systems/foundryvtt-reve-de-dragon/icons/queues/idee_fixe.webp","effects":[],"_id":"F8G3rdU1nfJzYwYR"}
{"name":"Désir lancinant : Se faire raser la tête","permission":{"default":0,"rYShh2P1DNavdoBD":3},"type":"queue","data":{"description":"<p>Tant que satisfaction n'est pas obtenue, aucun point d'exp&eacute;rience ne peut plus &ecirc;tre gagn&eacute; par l'exercice en cas de particuli&egrave;re et d'ajustement final n&eacute;gatif.<br />Les points d'exp&eacute;rience dus au stress ne sont pas affect&eacute;s.</p>","refoulement":1},"flags":{},"img":"raser_tete.webp","effects":[],"_id":"HSNOvBR890dsEDw2"} {"name":"Désir lancinant : Se faire raser la tête","permission":{"default":0,"rYShh2P1DNavdoBD":3},"type":"queue","data":{"description":"<p>Tant que satisfaction n'est pas obtenue, aucun point d'exp&eacute;rience ne peut plus &ecirc;tre gagn&eacute; par l'exercice en cas de particuli&egrave;re et d'ajustement final n&eacute;gatif.<br />Les points d'exp&eacute;rience dus au stress ne sont pas affect&eacute;s.</p>","refoulement":1},"flags":{},"img":"systems/foundryvtt-reve-de-dragon/icons/queues/desir_lancinant.webp","effects":[],"_id":"HSNOvBR890dsEDw2"}
{"name":"Idée fixe : Aller tout nu, sans porter le moindre paquet ni objet","permission":{"default":0,"rYShh2P1DNavdoBD":3},"type":"queue","data":{"description":"<p>Prend effet imm&eacute;diatement et dure jusqu'&agrave; la <strong>fin de l'heure du Ch&acirc;teau Dormant </strong>du <strong>lendemain.<br /></strong>Si pass&eacute; ce d&eacute;lai, l'occasion de la manifester ne s'est pas pr&eacute;sent&eacute;e, la queue prend fin.</p>\n<p>Si elle entre en contradiction avec une autre queue, retirer.</p>","refoulement":1},"flags":{},"img":"aller_nu.webp","effects":[],"_id":"I0CtQ05xFW6ghcdP"} {"name":"Idée fixe : Aller tout nu, sans porter le moindre paquet ni objet","permission":{"default":0,"rYShh2P1DNavdoBD":3},"type":"queue","data":{"description":"<p>Prend effet imm&eacute;diatement et dure jusqu'&agrave; la <strong>fin de l'heure du Ch&acirc;teau Dormant </strong>du <strong>lendemain.<br /></strong>Si pass&eacute; ce d&eacute;lai, l'occasion de la manifester ne s'est pas pr&eacute;sent&eacute;e, la queue prend fin.</p>\n<p>Si elle entre en contradiction avec une autre queue, retirer.</p>","refoulement":1},"flags":{},"img":"systems/foundryvtt-reve-de-dragon/icons/queues/idee_fixe.webp","effects":[],"_id":"I0CtQ05xFW6ghcdP"}
{"name":"Idée fixe : Boulimie. Manger au moins un point de sust. par heure","permission":{"default":0,"rYShh2P1DNavdoBD":3},"type":"queue","data":{"description":"<p>Prend effet imm&eacute;diatement et dure jusqu'&agrave; la <strong>fin de l'heure du Ch&acirc;teau Dormant </strong>du <strong>lendemain.<br /></strong>Si pass&eacute; ce d&eacute;lai, l'occasion de la manifester ne s'est pas pr&eacute;sent&eacute;e, la queue prend fin.</p>\n<p>Si elle entre en contradiction avec une autre queue, retirer.</p>","refoulement":1},"flags":{},"img":"boulimie.webp","effects":[],"_id":"JcTX8qMS0z8bmdVt"} {"name":"Idée fixe : Boulimie. Manger au moins un point de sust. par heure","permission":{"default":0,"rYShh2P1DNavdoBD":3},"type":"queue","data":{"description":"<p>Prend effet imm&eacute;diatement et dure jusqu'&agrave; la <strong>fin de l'heure du Ch&acirc;teau Dormant </strong>du <strong>lendemain.<br /></strong>Si pass&eacute; ce d&eacute;lai, l'occasion de la manifester ne s'est pas pr&eacute;sent&eacute;e, la queue prend fin.</p>\n<p>Si elle entre en contradiction avec une autre queue, retirer.</p>","refoulement":1},"flags":{},"img":"systems/foundryvtt-reve-de-dragon/icons/queues/idee_fixe.webp","effects":[],"_id":"JcTX8qMS0z8bmdVt"}
{"name":"Désir lancinant : Passer une nuit sur une échelle","permission":{"default":0,"rYShh2P1DNavdoBD":3},"type":"queue","data":{"description":"<p>Tant que satisfaction n'est pas obtenue, aucun point d'exp&eacute;rience ne peut plus &ecirc;tre gagn&eacute; par l'exercice en cas de particuli&egrave;re et d'ajustement final n&eacute;gatif.<br />Les points d'exp&eacute;rience dus au stress ne sont pas affect&eacute;s.</p>","refoulement":1},"flags":{},"img":"nuit_echelle.webp","effects":[],"_id":"LlELEB0FhymLx6VM"} {"name":"Désir lancinant : Passer une nuit sur une échelle","permission":{"default":0,"rYShh2P1DNavdoBD":3},"type":"queue","data":{"description":"<p>Tant que satisfaction n'est pas obtenue, aucun point d'exp&eacute;rience ne peut plus &ecirc;tre gagn&eacute; par l'exercice en cas de particuli&egrave;re et d'ajustement final n&eacute;gatif.<br />Les points d'exp&eacute;rience dus au stress ne sont pas affect&eacute;s.</p>","refoulement":1},"flags":{},"img":"systems/foundryvtt-reve-de-dragon/icons/queues/desir_lancinant.webp","effects":[],"_id":"LlELEB0FhymLx6VM"}
{"name":"Idée fixe : Refuser de monter dans les TMR","permission":{"default":0,"rYShh2P1DNavdoBD":3},"type":"queue","data":{"description":"<p>Prend effet imm&eacute;diatement et dure jusqu'&agrave; la <strong>fin de l'heure du Ch&acirc;teau Dormant </strong>du <strong>lendemain.<br /></strong>Si pass&eacute; ce d&eacute;lai, l'occasion de la manifester ne s'est pas pr&eacute;sent&eacute;e, la queue prend fin.</p>\n<p>Si elle entre en contradiction avec une autre queue, retirer.</p>","refoulement":1},"flags":{},"img":"refuser_tmr.webp","effects":[],"_id":"NpTDqICR7ZuToQrg"} {"name":"Idée fixe : Refuser de monter dans les TMR","permission":{"default":0,"rYShh2P1DNavdoBD":3},"type":"queue","data":{"description":"<p>Prend effet imm&eacute;diatement et dure jusqu'&agrave; la <strong>fin de l'heure du Ch&acirc;teau Dormant </strong>du <strong>lendemain.<br /></strong>Si pass&eacute; ce d&eacute;lai, l'occasion de la manifester ne s'est pas pr&eacute;sent&eacute;e, la queue prend fin.</p>\n<p>Si elle entre en contradiction avec une autre queue, retirer.</p>","refoulement":1},"flags":{},"img":"systems/foundryvtt-reve-de-dragon/icons/queues/idee_fixe.webp","effects":[],"_id":"NpTDqICR7ZuToQrg"}
{"name":"Désir lancinant : Masochisme. Perdre 3 points dendurance minimum en 1 round","permission":{"default":0,"rYShh2P1DNavdoBD":3},"type":"queue","data":{"description":"<p>Tant que satisfaction n'est pas obtenue, aucun point d'exp&eacute;rience ne peut plus &ecirc;tre gagn&eacute; par l'exercice en cas de particuli&egrave;re et d'ajustement final n&eacute;gatif.<br />Les points d'exp&eacute;rience dus au stress ne sont pas affect&eacute;s.</p>","refoulement":1},"flags":{},"img":"masochisme.webp","effects":[],"_id":"NzJJNK0YMAbobu0p"} {"name":"Désir lancinant : Masochisme. Perdre 3 points dendurance minimum en 1 round","permission":{"default":0,"rYShh2P1DNavdoBD":3},"type":"queue","data":{"description":"<p>Tant que satisfaction n'est pas obtenue, aucun point d'exp&eacute;rience ne peut plus &ecirc;tre gagn&eacute; par l'exercice en cas de particuli&egrave;re et d'ajustement final n&eacute;gatif.<br />Les points d'exp&eacute;rience dus au stress ne sont pas affect&eacute;s.</p>","refoulement":1},"flags":{},"img":"systems/foundryvtt-reve-de-dragon/icons/queues/desir_lancinant.webp","effects":[],"_id":"NzJJNK0YMAbobu0p"}
{"name":"Désir lancinant : Casser 3d6 oeufs en les jetant à terre","permission":{"default":0,"rYShh2P1DNavdoBD":3},"type":"queue","data":{"description":"<p>Tant que satisfaction n'est pas obtenue, aucun point d'exp&eacute;rience ne peut plus &ecirc;tre gagn&eacute; par l'exercice en cas de particuli&egrave;re et d'ajustement final n&eacute;gatif.<br />Les points d'exp&eacute;rience dus au stress ne sont pas affect&eacute;s.</p>","refoulement":1},"flags":{},"img":"casser_oeufs.webp","effects":[],"_id":"OjG8XRbeYtq2jcgB"} {"name":"Désir lancinant : Casser 3d6 oeufs en les jetant à terre","permission":{"default":0,"rYShh2P1DNavdoBD":3},"type":"queue","data":{"description":"<p>Tant que satisfaction n'est pas obtenue, aucun point d'exp&eacute;rience ne peut plus &ecirc;tre gagn&eacute; par l'exercice en cas de particuli&egrave;re et d'ajustement final n&eacute;gatif.<br />Les points d'exp&eacute;rience dus au stress ne sont pas affect&eacute;s.</p>","refoulement":1},"flags":{},"img":"systems/foundryvtt-reve-de-dragon/icons/queues/desir_lancinant.webp","effects":[],"_id":"OjG8XRbeYtq2jcgB"}
{"name":"Désir lancinant : Traire une vache","permission":{"default":0,"rYShh2P1DNavdoBD":3},"type":"queue","data":{"description":"<p>Tant que satisfaction n'est pas obtenue, aucun point d'exp&eacute;rience ne peut plus &ecirc;tre gagn&eacute; par l'exercice en cas de particuli&egrave;re et d'ajustement final n&eacute;gatif.<br />Les points d'exp&eacute;rience dus au stress ne sont pas affect&eacute;s.</p>","refoulement":1},"flags":{},"img":"traire_vache.webp","effects":[],"_id":"QHUOwjMR6AvepGPm"} {"name":"Désir lancinant : Traire une vache","permission":{"default":0,"rYShh2P1DNavdoBD":3},"type":"queue","data":{"description":"<p>Tant que satisfaction n'est pas obtenue, aucun point d'exp&eacute;rience ne peut plus &ecirc;tre gagn&eacute; par l'exercice en cas de particuli&egrave;re et d'ajustement final n&eacute;gatif.<br />Les points d'exp&eacute;rience dus au stress ne sont pas affect&eacute;s.</p>","refoulement":1},"flags":{},"img":"systems/foundryvtt-reve-de-dragon/icons/queues/desir_lancinant.webp","effects":[],"_id":"QHUOwjMR6AvepGPm"}
{"name":"Désir lancinant : Pisser dans un violon (luth, mandoline, etc.)","permission":{"default":0,"rYShh2P1DNavdoBD":3},"type":"queue","data":{"description":"<p>Tant que satisfaction n'est pas obtenue, aucun point d'exp&eacute;rience ne peut plus &ecirc;tre gagn&eacute; par l'exercice en cas de particuli&egrave;re et d'ajustement final n&eacute;gatif.<br />Les points d'exp&eacute;rience dus au stress ne sont pas affect&eacute;s.</p>","refoulement":1},"flags":{},"img":"pisser_violon.webp","effects":[],"_id":"S8PVNgxb7TcFXq9g"} {"name":"Désir lancinant : Pisser dans un violon (luth, mandoline, etc.)","permission":{"default":0,"rYShh2P1DNavdoBD":3},"type":"queue","data":{"description":"<p>Tant que satisfaction n'est pas obtenue, aucun point d'exp&eacute;rience ne peut plus &ecirc;tre gagn&eacute; par l'exercice en cas de particuli&egrave;re et d'ajustement final n&eacute;gatif.<br />Les points d'exp&eacute;rience dus au stress ne sont pas affect&eacute;s.</p>","refoulement":1},"flags":{},"img":"systems/foundryvtt-reve-de-dragon/icons/queues/desir_lancinant.webp","effects":[],"_id":"S8PVNgxb7TcFXq9g"}
{"name":"Désir lancinant : Manger du poisson","permission":{"default":0,"rYShh2P1DNavdoBD":3},"type":"queue","data":{"description":"<p>Tant que satisfaction n'est pas obtenue, aucun point d'exp&eacute;rience ne peut plus &ecirc;tre gagn&eacute; par l'exercice en cas de particuli&egrave;re et d'ajustement final n&eacute;gatif.<br />Les points d'exp&eacute;rience dus au stress ne sont pas affect&eacute;s.</p>","refoulement":1},"flags":{},"img":"manger_poisson.webp","effects":[],"_id":"SY0SsWtZdxSodMcl"} {"name":"Désir lancinant : Manger du poisson","permission":{"default":0,"rYShh2P1DNavdoBD":3},"type":"queue","data":{"description":"<p>Tant que satisfaction n'est pas obtenue, aucun point d'exp&eacute;rience ne peut plus &ecirc;tre gagn&eacute; par l'exercice en cas de particuli&egrave;re et d'ajustement final n&eacute;gatif.<br />Les points d'exp&eacute;rience dus au stress ne sont pas affect&eacute;s.</p>","refoulement":1},"flags":{},"img":"systems/foundryvtt-reve-de-dragon/icons/queues/desir_lancinant.webp","effects":[],"_id":"SY0SsWtZdxSodMcl"}
{"name":"Idée fixe : Ne pas franchir de porte. (On peut franchir une fenêtre)","permission":{"default":0,"rYShh2P1DNavdoBD":3},"type":"queue","data":{"description":"<p>Prend effet imm&eacute;diatement et dure jusqu'&agrave; la <strong>fin de l'heure du Ch&acirc;teau Dormant </strong>du <strong>lendemain.<br /></strong>Si pass&eacute; ce d&eacute;lai, l'occasion de la manifester ne s'est pas pr&eacute;sent&eacute;e, la queue prend fin.</p>\n<p>Si elle entre en contradiction avec une autre queue, retirer.</p>","refoulement":1},"flags":{},"img":"pas-franchir.webp","effects":[],"_id":"UUTbsktTcxsIe5L5"} {"name":"Idée fixe : Ne pas franchir de porte. (On peut franchir une fenêtre)","permission":{"default":0,"rYShh2P1DNavdoBD":3},"type":"queue","data":{"description":"<p>Prend effet imm&eacute;diatement et dure jusqu'&agrave; la <strong>fin de l'heure du Ch&acirc;teau Dormant </strong>du <strong>lendemain.<br /></strong>Si pass&eacute; ce d&eacute;lai, l'occasion de la manifester ne s'est pas pr&eacute;sent&eacute;e, la queue prend fin.</p>\n<p>Si elle entre en contradiction avec une autre queue, retirer.</p>","refoulement":1},"flags":{},"img":"systems/foundryvtt-reve-de-dragon/icons/queues/idee_fixe.webp","effects":[],"_id":"UUTbsktTcxsIe5L5"}
{"name":"Idée fixe : Refuser de se délester du moindre objet, ni donner ni prêter","permission":{"default":0,"rYShh2P1DNavdoBD":3},"type":"queue","data":{"description":"<p>Prend effet imm&eacute;diatement et dure jusqu'&agrave; la <strong>fin de l'heure du Ch&acirc;teau Dormant </strong>du <strong>lendemain.<br /></strong>Si pass&eacute; ce d&eacute;lai, l'occasion de la manifester ne s'est pas pr&eacute;sent&eacute;e, la queue prend fin.</p>\n<p>Si elle entre en contradiction avec une autre queue, retirer.</p>","refoulement":1},"flags":{},"img":"refuser_delester.webp","effects":[],"_id":"VChJbtGFtWoiFNky"} {"name":"Idée fixe : Refuser de se délester du moindre objet, ni donner ni prêter","permission":{"default":0,"rYShh2P1DNavdoBD":3},"type":"queue","data":{"description":"<p>Prend effet imm&eacute;diatement et dure jusqu'&agrave; la <strong>fin de l'heure du Ch&acirc;teau Dormant </strong>du <strong>lendemain.<br /></strong>Si pass&eacute; ce d&eacute;lai, l'occasion de la manifester ne s'est pas pr&eacute;sent&eacute;e, la queue prend fin.</p>\n<p>Si elle entre en contradiction avec une autre queue, retirer.</p>","refoulement":1},"flags":{},"img":"systems/foundryvtt-reve-de-dragon/icons/queues/idee_fixe.webp","effects":[],"_id":"VChJbtGFtWoiFNky"}
{"name":"Idée fixe : Ne sexprimer que par des cris danimaux (meuh ! coin-coin ! etc.)","permission":{"default":0,"rYShh2P1DNavdoBD":3},"type":"queue","data":{"description":"<p>Prend effet imm&eacute;diatement et dure jusqu'&agrave; la <strong>fin de l'heure du Ch&acirc;teau Dormant </strong>du <strong>lendemain.<br /></strong>Si pass&eacute; ce d&eacute;lai, l'occasion de la manifester ne s'est pas pr&eacute;sent&eacute;e, la queue prend fin.</p>\n<p>Si elle entre en contradiction avec une autre queue, retirer.</p>","refoulement":1},"flags":{},"img":"exprimer_cris.webp","effects":[],"_id":"YCHBbRLiMzTH7IBj"} {"name":"Idée fixe : Ne sexprimer que par des cris danimaux (meuh ! coin-coin ! etc.)","permission":{"default":0,"rYShh2P1DNavdoBD":3},"type":"queue","data":{"description":"<p>Prend effet imm&eacute;diatement et dure jusqu'&agrave; la <strong>fin de l'heure du Ch&acirc;teau Dormant </strong>du <strong>lendemain.<br /></strong>Si pass&eacute; ce d&eacute;lai, l'occasion de la manifester ne s'est pas pr&eacute;sent&eacute;e, la queue prend fin.</p>\n<p>Si elle entre en contradiction avec une autre queue, retirer.</p>","refoulement":1},"flags":{},"img":"systems/foundryvtt-reve-de-dragon/icons/queues/idee_fixe.webp","effects":[],"_id":"YCHBbRLiMzTH7IBj"}
{"name":"Idée fixe : Vider sur sa tête toute fiole ou flacon aperçu","permission":{"default":0,"rYShh2P1DNavdoBD":3},"type":"queue","data":{"description":"<p>Prend effet imm&eacute;diatement et dure jusqu'&agrave; la <strong>fin de l'heure du Ch&acirc;teau Dormant </strong>du <strong>lendemain.<br /></strong>Si pass&eacute; ce d&eacute;lai, l'occasion de la manifester ne s'est pas pr&eacute;sent&eacute;e, la queue prend fin.</p>\n<p>Si elle entre en contradiction avec une autre queue, retirer.</p>","refoulement":1},"flags":{},"img":"verser_flacon.webp","effects":[],"_id":"afGp9CewfyJKecEE"} {"name":"Idée fixe : Vider sur sa tête toute fiole ou flacon aperçu","permission":{"default":0,"rYShh2P1DNavdoBD":3},"type":"queue","data":{"description":"<p>Prend effet imm&eacute;diatement et dure jusqu'&agrave; la <strong>fin de l'heure du Ch&acirc;teau Dormant </strong>du <strong>lendemain.<br /></strong>Si pass&eacute; ce d&eacute;lai, l'occasion de la manifester ne s'est pas pr&eacute;sent&eacute;e, la queue prend fin.</p>\n<p>Si elle entre en contradiction avec une autre queue, retirer.</p>","refoulement":1},"flags":{},"img":"systems/foundryvtt-reve-de-dragon/icons/queues/idee_fixe.webp","effects":[],"_id":"afGp9CewfyJKecEE"}
{"name":"Désir lancinant : Faire des bulles de savon","permission":{"default":0,"rYShh2P1DNavdoBD":3},"type":"queue","data":{"description":"<p>Tant que satisfaction n'est pas obtenue, aucun point d'exp&eacute;rience ne peut plus &ecirc;tre gagn&eacute; par l'exercice en cas de particuli&egrave;re et d'ajustement final n&eacute;gatif.<br />Les points d'exp&eacute;rience dus au stress ne sont pas affect&eacute;s.</p>","refoulement":1},"flags":{},"img":"bulles_savon.webp","effects":[],"_id":"df5oN8Ub3dWTVxNj"} {"name":"Désir lancinant : Faire des bulles de savon","permission":{"default":0,"rYShh2P1DNavdoBD":3},"type":"queue","data":{"description":"<p>Tant que satisfaction n'est pas obtenue, aucun point d'exp&eacute;rience ne peut plus &ecirc;tre gagn&eacute; par l'exercice en cas de particuli&egrave;re et d'ajustement final n&eacute;gatif.<br />Les points d'exp&eacute;rience dus au stress ne sont pas affect&eacute;s.</p>","refoulement":1},"flags":{},"img":"systems/foundryvtt-reve-de-dragon/icons/queues/desir_lancinant.webp","effects":[],"_id":"df5oN8Ub3dWTVxNj"}
{"name":"Désir lancinant : Entendre braire un âne","permission":{"default":0,"rYShh2P1DNavdoBD":3},"type":"queue","data":{"description":"<p>Tant que satisfaction n'est pas obtenue, aucun point d'exp&eacute;rience ne peut plus &ecirc;tre gagn&eacute; par l'exercice en cas de particuli&egrave;re et d'ajustement final n&eacute;gatif.<br />Les points d'exp&eacute;rience dus au stress ne sont pas affect&eacute;s.</p>","refoulement":1},"flags":{},"img":"entendre_ane.webp","effects":[],"_id":"diCCimukdNM6bPub"} {"name":"Désir lancinant : Entendre braire un âne","permission":{"default":0,"rYShh2P1DNavdoBD":3},"type":"queue","data":{"description":"<p>Tant que satisfaction n'est pas obtenue, aucun point d'exp&eacute;rience ne peut plus &ecirc;tre gagn&eacute; par l'exercice en cas de particuli&egrave;re et d'ajustement final n&eacute;gatif.<br />Les points d'exp&eacute;rience dus au stress ne sont pas affect&eacute;s.</p>","refoulement":1},"flags":{},"img":"systems/foundryvtt-reve-de-dragon/icons/queues/desir_lancinant.webp","effects":[],"_id":"diCCimukdNM6bPub"}
{"name":"Désir lancinant : Se rouler dans la boue","permission":{"default":0,"rYShh2P1DNavdoBD":3},"type":"queue","data":{"description":"<p>Tant que satisfaction n'est pas obtenue, aucun point d'exp&eacute;rience ne peut plus &ecirc;tre gagn&eacute; par l'exercice en cas de particuli&egrave;re et d'ajustement final n&eacute;gatif.<br />Les points d'exp&eacute;rience dus au stress ne sont pas affect&eacute;s.</p>","refoulement":1},"flags":{},"img":"se_rouler_boue.webp","effects":[],"_id":"el4lofhhSucMv5xv"} {"name":"Désir lancinant : Se rouler dans la boue","permission":{"default":0,"rYShh2P1DNavdoBD":3},"type":"queue","data":{"description":"<p>Tant que satisfaction n'est pas obtenue, aucun point d'exp&eacute;rience ne peut plus &ecirc;tre gagn&eacute; par l'exercice en cas de particuli&egrave;re et d'ajustement final n&eacute;gatif.<br />Les points d'exp&eacute;rience dus au stress ne sont pas affect&eacute;s.</p>","refoulement":1},"flags":{},"img":"systems/foundryvtt-reve-de-dragon/icons/queues/desir_lancinant.webp","effects":[],"_id":"el4lofhhSucMv5xv"}
{"name":"Idée fixe : Ne dire que «non» ou négation analogue","permission":{"default":0,"rYShh2P1DNavdoBD":3},"type":"queue","data":{"description":"<p>Prend effet imm&eacute;diatement et dure jusqu'&agrave; la <strong>fin de l'heure du Ch&acirc;teau Dormant </strong>du <strong>lendemain.<br /></strong>Si pass&eacute; ce d&eacute;lai, l'occasion de la manifester ne s'est pas pr&eacute;sent&eacute;e, la queue prend fin.</p>\n<p>Si elle entre en contradiction avec une autre queue, retirer.</p>","refoulement":1},"flags":{},"img":"dire_non.webp","effects":[],"_id":"gMmqdJ9I7Mt8Tg3f"} {"name":"Idée fixe : Ne dire que «non» ou négation analogue","permission":{"default":0,"rYShh2P1DNavdoBD":3},"type":"queue","data":{"description":"<p>Prend effet imm&eacute;diatement et dure jusqu'&agrave; la <strong>fin de l'heure du Ch&acirc;teau Dormant </strong>du <strong>lendemain.<br /></strong>Si pass&eacute; ce d&eacute;lai, l'occasion de la manifester ne s'est pas pr&eacute;sent&eacute;e, la queue prend fin.</p>\n<p>Si elle entre en contradiction avec une autre queue, retirer.</p>","refoulement":1},"flags":{},"img":"systems/foundryvtt-reve-de-dragon/icons/queues/idee_fixe.webp","effects":[],"_id":"gMmqdJ9I7Mt8Tg3f"}
{"name":"Désir lancinant : Manger des champignons","permission":{"default":0,"rYShh2P1DNavdoBD":3},"type":"queue","data":{"description":"<p>Tant que satisfaction n'est pas obtenue, aucun point d'exp&eacute;rience ne peut plus &ecirc;tre gagn&eacute; par l'exercice en cas de particuli&egrave;re et d'ajustement final n&eacute;gatif.<br />Les points d'exp&eacute;rience dus au stress ne sont pas affect&eacute;s.</p>","refoulement":1},"flags":{},"img":"manger_champignons.webp","effects":[],"_id":"gadh6aI5iCM82qpP"} {"name":"Désir lancinant : Manger des champignons","permission":{"default":0,"rYShh2P1DNavdoBD":3},"type":"queue","data":{"description":"<p>Tant que satisfaction n'est pas obtenue, aucun point d'exp&eacute;rience ne peut plus &ecirc;tre gagn&eacute; par l'exercice en cas de particuli&egrave;re et d'ajustement final n&eacute;gatif.<br />Les points d'exp&eacute;rience dus au stress ne sont pas affect&eacute;s.</p>","refoulement":1},"flags":{},"img":"systems/foundryvtt-reve-de-dragon/icons/queues/desir_lancinant.webp","effects":[],"_id":"gadh6aI5iCM82qpP"}
{"name":"Idée fixe : Refuser de se déplacer autrement que porté","permission":{"default":0,"rYShh2P1DNavdoBD":3},"type":"queue","data":{"description":"<p>Prend effet imm&eacute;diatement et dure jusqu'&agrave; la <strong>fin de l'heure du Ch&acirc;teau Dormant </strong>du <strong>lendemain.<br /></strong>Si pass&eacute; ce d&eacute;lai, l'occasion de la manifester ne s'est pas pr&eacute;sent&eacute;e, la queue prend fin.</p>\n<p>Si elle entre en contradiction avec une autre queue, retirer.</p>","refoulement":1},"flags":{},"img":"refuser_deplacer.webp","effects":[],"_id":"hghw6Cldrad1CIiJ"} {"name":"Idée fixe : Refuser de se déplacer autrement que porté","permission":{"default":0,"rYShh2P1DNavdoBD":3},"type":"queue","data":{"description":"<p>Prend effet imm&eacute;diatement et dure jusqu'&agrave; la <strong>fin de l'heure du Ch&acirc;teau Dormant </strong>du <strong>lendemain.<br /></strong>Si pass&eacute; ce d&eacute;lai, l'occasion de la manifester ne s'est pas pr&eacute;sent&eacute;e, la queue prend fin.</p>\n<p>Si elle entre en contradiction avec une autre queue, retirer.</p>","refoulement":1},"flags":{},"img":"systems/foundryvtt-reve-de-dragon/icons/queues/idee_fixe.webp","effects":[],"_id":"hghw6Cldrad1CIiJ"}
{"name":"Idée fixe : Garder une main sur la tête","permission":{"default":0,"rYShh2P1DNavdoBD":3},"type":"queue","data":{"description":"<p>Prend effet imm&eacute;diatement et dure jusqu'&agrave; la <strong>fin de l'heure du Ch&acirc;teau Dormant </strong>du <strong>lendemain.<br /></strong>Si pass&eacute; ce d&eacute;lai, l'occasion de la manifester ne s'est pas pr&eacute;sent&eacute;e, la queue prend fin.</p>\n<p>Si elle entre en contradiction avec une autre queue, retirer.</p>","refoulement":1},"flags":{},"img":"garder_main.webp","effects":[],"_id":"iPYPgxL2uUnphStc"} {"name":"Idée fixe : Garder une main sur la tête","permission":{"default":0,"rYShh2P1DNavdoBD":3},"type":"queue","data":{"description":"<p>Prend effet imm&eacute;diatement et dure jusqu'&agrave; la <strong>fin de l'heure du Ch&acirc;teau Dormant </strong>du <strong>lendemain.<br /></strong>Si pass&eacute; ce d&eacute;lai, l'occasion de la manifester ne s'est pas pr&eacute;sent&eacute;e, la queue prend fin.</p>\n<p>Si elle entre en contradiction avec une autre queue, retirer.</p>","refoulement":1},"flags":{},"img":"systems/foundryvtt-reve-de-dragon/icons/queues/idee_fixe.webp","effects":[],"_id":"iPYPgxL2uUnphStc"}
{"name":"Idée fixe : Appeler les hommes «madame» et les femmes «messire»","permission":{"default":0,"rYShh2P1DNavdoBD":3},"type":"queue","data":{"description":"<p>Prend effet imm&eacute;diatement et dure jusqu'&agrave; la <strong>fin de l'heure du Ch&acirc;teau Dormant </strong>du <strong>lendemain.<br /></strong>Si pass&eacute; ce d&eacute;lai, l'occasion de la manifester ne s'est pas pr&eacute;sent&eacute;e, la queue prend fin.</p>\n<p>Si elle entre en contradiction avec une autre queue, retirer.</p>","refoulement":1},"flags":{},"img":"appeler_hommes_femmes.webp","effects":[],"_id":"j2xIrFWYqhDM4TcN"} {"name":"Idée fixe : Appeler les hommes «madame» et les femmes «messire»","permission":{"default":0,"rYShh2P1DNavdoBD":3},"type":"queue","data":{"description":"<p>Prend effet imm&eacute;diatement et dure jusqu'&agrave; la <strong>fin de l'heure du Ch&acirc;teau Dormant </strong>du <strong>lendemain.<br /></strong>Si pass&eacute; ce d&eacute;lai, l'occasion de la manifester ne s'est pas pr&eacute;sent&eacute;e, la queue prend fin.</p>\n<p>Si elle entre en contradiction avec une autre queue, retirer.</p>","refoulement":1},"flags":{},"img":"systems/foundryvtt-reve-de-dragon/icons/queues/idee_fixe.webp","effects":[],"_id":"j2xIrFWYqhDM4TcN"}
{"name":"Désir lancinant : Se soûler (minimum pas frais)","permission":{"default":0,"rYShh2P1DNavdoBD":3},"type":"queue","data":{"description":"<p>Tant que satisfaction n'est pas obtenue, aucun point d'exp&eacute;rience ne peut plus &ecirc;tre gagn&eacute; par l'exercice en cas de particuli&egrave;re et d'ajustement final n&eacute;gatif.<br />Les points d'exp&eacute;rience dus au stress ne sont pas affect&eacute;s.</p>","refoulement":1},"flags":{},"img":"se_souler.webp","effects":[],"_id":"jShpKV8mVcqWmYvp"} {"name":"Désir lancinant : Se soûler (minimum pas frais)","permission":{"default":0,"rYShh2P1DNavdoBD":3},"type":"queue","data":{"description":"<p>Tant que satisfaction n'est pas obtenue, aucun point d'exp&eacute;rience ne peut plus &ecirc;tre gagn&eacute; par l'exercice en cas de particuli&egrave;re et d'ajustement final n&eacute;gatif.<br />Les points d'exp&eacute;rience dus au stress ne sont pas affect&eacute;s.</p>","refoulement":1},"flags":{},""img":"systems/foundryvtt-reve-de-dragon/icons/queues/desir_lancinant.webp","effects":[],"_id":"jShpKV8mVcqWmYvp"}
{"name":"Désir lancinant : Construire une cabane","permission":{"default":0,"rYShh2P1DNavdoBD":3},"type":"queue","data":{"description":"<p>Tant que satisfaction n'est pas obtenue, aucun point d'exp&eacute;rience ne peut plus &ecirc;tre gagn&eacute; par l'exercice en cas de particuli&egrave;re et d'ajustement final n&eacute;gatif.<br />Les points d'exp&eacute;rience dus au stress ne sont pas affect&eacute;s.</p>","refoulement":1},"flags":{},"img":"construire_cabane.webp","effects":[],"_id":"mN0yghXkFfj2YctJ"} {"name":"Désir lancinant : Construire une cabane","permission":{"default":0,"rYShh2P1DNavdoBD":3},"type":"queue","data":{"description":"<p>Tant que satisfaction n'est pas obtenue, aucun point d'exp&eacute;rience ne peut plus &ecirc;tre gagn&eacute; par l'exercice en cas de particuli&egrave;re et d'ajustement final n&eacute;gatif.<br />Les points d'exp&eacute;rience dus au stress ne sont pas affect&eacute;s.</p>","refoulement":1},"flags":{},"img":"systems/foundryvtt-reve-de-dragon/icons/queues/desir_lancinant.webp","effects":[],"_id":"mN0yghXkFfj2YctJ"}
{"name":"Désir lancinant : Embrasser un cochon sur le groin","permission":{"default":0,"rYShh2P1DNavdoBD":3},"type":"queue","data":{"description":"<p>Tant que satisfaction n'est pas obtenue, aucun point d'exp&eacute;rience ne peut plus &ecirc;tre gagn&eacute; par l'exercice en cas de particuli&egrave;re et d'ajustement final n&eacute;gatif.<br />Les points d'exp&eacute;rience dus au stress ne sont pas affect&eacute;s.</p>","refoulement":1},"flags":{},"img":"embrasser_cochon.webp","effects":[],"_id":"sjXBBr85OBk4Yg4t"} {"name":"Désir lancinant : Embrasser un cochon sur le groin","permission":{"default":0,"rYShh2P1DNavdoBD":3},"type":"queue","data":{"description":"<p>Tant que satisfaction n'est pas obtenue, aucun point d'exp&eacute;rience ne peut plus &ecirc;tre gagn&eacute; par l'exercice en cas de particuli&egrave;re et d'ajustement final n&eacute;gatif.<br />Les points d'exp&eacute;rience dus au stress ne sont pas affect&eacute;s.</p>","refoulement":1},"flags":{},"img":"systems/foundryvtt-reve-de-dragon/icons/queues/desir_lancinant.webp","effects":[],"_id":"sjXBBr85OBk4Yg4t"}
{"name":"Idée fixe : Faire le mort","permission":{"default":0,"rYShh2P1DNavdoBD":3},"type":"queue","data":{"description":"<p>Prend effet imm&eacute;diatement et dure jusqu'&agrave; la <strong>fin de l'heure du Ch&acirc;teau Dormant </strong>du <strong>lendemain.<br /></strong>Si pass&eacute; ce d&eacute;lai, l'occasion de la manifester ne s'est pas pr&eacute;sent&eacute;e, la queue prend fin.</p>\n<p>Si elle entre en contradiction avec une autre queue, retirer.</p>","refoulement":1},"flags":{},"img":"faire_mort.webp","effects":[],"_id":"xa4t9Lbt6uLEjap6"} {"name":"Idée fixe : Faire le mort","permission":{"default":0,"rYShh2P1DNavdoBD":3},"type":"queue","data":{"description":"<p>Prend effet imm&eacute;diatement et dure jusqu'&agrave; la <strong>fin de l'heure du Ch&acirc;teau Dormant </strong>du <strong>lendemain.<br /></strong>Si pass&eacute; ce d&eacute;lai, l'occasion de la manifester ne s'est pas pr&eacute;sent&eacute;e, la queue prend fin.</p>\n<p>Si elle entre en contradiction avec une autre queue, retirer.</p>","refoulement":1},"flags":{},"img":"systems/foundryvtt-reve-de-dragon/icons/queues/idee_fixe.webp","effects":[],"_id":"xa4t9Lbt6uLEjap6"}

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -1,9 +1,9 @@
{"_id":"0ZW71u9G8fqnyNfy","name":"Drakkar","permission":{"default":0,"rYShh2P1DNavdoBD":3},"type":"vehicule","data":{"categorie":"Bateau","resistance":28,"structure":12,"vitesse":"3/2/1","bonus":"(10)/+10/+14","manoeuvrabilite":"0/-2/-4","equipage":8,"capacite_encombrement":150,"description":"Description ...","notesmj":"Notes du MJ"},"sort":100001,"flags":{},"img":"systems/foundryvtt-reve-de-dragon/icons/vehicules/drakkar.webp","token":{"flags":{},"name":"Drakkar","displayName":0,"img":"systems/foundryvtt-reve-de-dragon/icons/vehicules/drakkar_token.webp","tint":"","width":10,"height":10,"scale":1,"mirrorX":false,"mirrorY":false,"lockRotation":false,"rotation":0,"vision":false,"dimSight":0,"brightSight":0,"dimLight":0,"brightLight":0,"sightAngle":360,"lightAngle":360,"lightColor":"","lightAlpha":1,"lightAnimation":{"type":"","speed":5,"intensity":5},"actorId":"0ZW71u9G8fqnyNfy","actorLink":false,"disposition":0,"displayBars":0,"bar1":{"attribute":""},"bar2":{"attribute":""},"randomImg":false},"items":[],"effects":[]} {"_id":"0ZW71u9G8fqnyNfy","name":"Drakkar","type":"vehicule","sort":100001,"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.vehicules.0ZW71u9G8fqnyNfy"}},"img":"systems/foundryvtt-reve-de-dragon/icons/vehicules/drakkar.webp","items":[],"effects":[],"system":{"categorie":"Bateau","resistance":28,"structure":12,"vitesse":"3/2/1","bonus":"(10)/+10/+14","manoeuvrabilite":"0/-2/-4","equipage":8,"capacite_encombrement":150,"etat":{"resistance":{"type":"number","max":28,"value":28,"label":"Résistance","derivee":false},"structure":{"type":"number","max":12,"value":12,"label":"Structure","derivee":false}},"description":"Description ...","race":"","notesmj":"Notes du MJ","attributs":{"malusarmure":{"value":0}}},"ownership":{"default":0,"rYShh2P1DNavdoBD":3},"prototypeToken":{"flags":{},"name":"Drakkar","displayName":0,"width":10,"height":10,"lockRotation":false,"rotation":0,"actorLink":false,"disposition":0,"displayBars":0,"bar1":{"attribute":"sante.vie"},"bar2":{"attribute":"sante.endurance"},"randomImg":false,"light":{"dim":0,"bright":0,"angle":360,"color":null,"alpha":1,"animation":{"type":null,"speed":5,"intensity":5,"reverse":false},"coloration":1,"attenuation":0.5,"luminosity":0.5,"saturation":0,"contrast":0,"shadows":0,"darkness":{"min":0,"max":1}},"texture":{"src":"systems/foundryvtt-reve-de-dragon/icons/vehicules/drakkar_token.webp","tint":null,"scaleX":1,"scaleY":1,"offsetX":0,"offsetY":0,"rotation":0},"sight":{"angle":360,"enabled":false,"range":0,"brightness":1,"visionMode":"basic","color":null,"attenuation":0.1,"saturation":0,"contrast":0},"alpha":1,"detectionModes":[]},"folder":null,"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.0.21","coreVersion":"10.286","createdTime":1664231097623,"modifiedTime":1664231486338,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
{"_id":"5FWY38a5emYmqisa","name":"Cariole","permission":{"default":0,"rYShh2P1DNavdoBD":3},"type":"vehicule","data":{"categorie":"Cariole à Bras","resistance":10,"structure":6,"vitesse":"","bonus":"","manoeuvrabilite":"","equipage":1,"capacite_encombrement":50,"description":"Description ...","notesmj":"Notes du MJ"},"sort":100001,"flags":{},"img":"systems/foundryvtt-reve-de-dragon/icons/vehicules/cariole.webp","token":{"flags":{},"name":"Cariole","displayName":0,"img":"systems/foundryvtt-reve-de-dragon/icons/vehicules/cariole_token.webp","tint":"","width":2,"height":2,"scale":1,"mirrorX":false,"mirrorY":false,"lockRotation":false,"rotation":0,"vision":false,"dimSight":0,"brightSight":0,"dimLight":0,"brightLight":0,"sightAngle":360,"lightAngle":360,"lightColor":"","lightAlpha":1,"lightAnimation":{"type":"","speed":5,"intensity":5},"actorId":"5FWY38a5emYmqisa","actorLink":false,"disposition":0,"displayBars":0,"bar1":{"attribute":""},"bar2":{"attribute":""},"randomImg":false},"items":[],"effects":[]} {"_id":"5FWY38a5emYmqisa","name":"Cariole","type":"vehicule","sort":100001,"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.vehicules.5FWY38a5emYmqisa"}},"img":"systems/foundryvtt-reve-de-dragon/icons/vehicules/cariole.webp","items":[],"effects":[],"system":{"categorie":"Cariole à Bras","resistance":10,"structure":6,"vitesse":"","bonus":"","manoeuvrabilite":"","equipage":1,"capacite_encombrement":50,"etat":{"resistance":{"type":"number","max":10,"value":10,"label":"Résistance","derivee":false},"structure":{"type":"number","max":6,"value":6,"label":"Structure","derivee":false}},"description":"Description ...","race":"","notesmj":"Notes du MJ","attributs":{"malusarmure":{"value":0}}},"ownership":{"default":0,"rYShh2P1DNavdoBD":3},"prototypeToken":{"flags":{},"name":"Cariole","displayName":0,"width":2,"height":2,"lockRotation":false,"rotation":0,"actorLink":false,"disposition":0,"displayBars":0,"bar1":{"attribute":"sante.vie"},"bar2":{"attribute":"sante.endurance"},"randomImg":false,"light":{"dim":0,"bright":0,"angle":360,"color":null,"alpha":1,"animation":{"type":null,"speed":5,"intensity":5,"reverse":false},"coloration":1,"attenuation":0.5,"luminosity":0.5,"saturation":0,"contrast":0,"shadows":0,"darkness":{"min":0,"max":1}},"texture":{"src":"systems/foundryvtt-reve-de-dragon/icons/vehicules/cariole_token.webp","tint":null,"scaleX":1,"scaleY":1,"offsetX":0,"offsetY":0,"rotation":0},"sight":{"angle":360,"enabled":false,"range":0,"brightness":1,"visionMode":"basic","color":null,"attenuation":0.1,"saturation":0,"contrast":0},"alpha":1,"detectionModes":[]},"folder":null,"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.0.21","coreVersion":"10.286","createdTime":1664231097624,"modifiedTime":1664231486337,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
{"_id":"C0JpbzQSELoml971","name":"Canot","permission":{"default":0,"rYShh2P1DNavdoBD":3},"type":"vehicule","data":{"categorie":"Barque","resistance":14,"structure":6,"vitesse":"","bonus":"(2)/+3/+5","manoeuvrabilite":"","equipage":1,"capacite_encombrement":50,"description":"Description ...","notesmj":"Notes du MJ"},"sort":100001,"flags":{},"img":"systems/foundryvtt-reve-de-dragon/icons/vehicules/canot.webp","token":{"flags":{},"name":"Canot","displayName":0,"img":"systems/foundryvtt-reve-de-dragon/icons/vehicules/canot_token.webp","tint":"","width":3,"height":3,"scale":1,"mirrorX":false,"mirrorY":false,"lockRotation":false,"rotation":0,"vision":false,"dimSight":0,"brightSight":0,"dimLight":0,"brightLight":0,"sightAngle":360,"lightAngle":360,"lightColor":"","lightAlpha":1,"lightAnimation":{"type":"","speed":5,"intensity":5},"actorId":"C0JpbzQSELoml971","actorLink":false,"disposition":0,"displayBars":0,"bar1":{"attribute":""},"bar2":{"attribute":""},"randomImg":false},"items":[],"effects":[]} {"_id":"C0JpbzQSELoml971","name":"Canot","type":"vehicule","sort":100001,"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.vehicules.C0JpbzQSELoml971"}},"img":"systems/foundryvtt-reve-de-dragon/icons/vehicules/canot.webp","items":[],"effects":[],"system":{"categorie":"Barque","resistance":14,"structure":6,"vitesse":"","bonus":"(2)/+3/+5","manoeuvrabilite":"","equipage":1,"capacite_encombrement":50,"etat":{"resistance":{"type":"number","max":14,"value":14,"label":"Résistance","derivee":false},"structure":{"type":"number","max":6,"value":6,"label":"Structure","derivee":false}},"description":"Description ...","race":"","notesmj":"Notes du MJ","attributs":{"malusarmure":{"value":0}}},"ownership":{"default":0,"rYShh2P1DNavdoBD":3},"prototypeToken":{"flags":{},"name":"Canot","displayName":0,"width":3,"height":3,"lockRotation":false,"rotation":0,"actorLink":false,"disposition":0,"displayBars":0,"bar1":{"attribute":"sante.vie"},"bar2":{"attribute":"sante.endurance"},"randomImg":false,"light":{"dim":0,"bright":0,"angle":360,"color":null,"alpha":1,"animation":{"type":null,"speed":5,"intensity":5,"reverse":false},"coloration":1,"attenuation":0.5,"luminosity":0.5,"saturation":0,"contrast":0,"shadows":0,"darkness":{"min":0,"max":1}},"texture":{"src":"systems/foundryvtt-reve-de-dragon/icons/vehicules/canot_token.webp","tint":null,"scaleX":1,"scaleY":1,"offsetX":0,"offsetY":0,"rotation":0},"sight":{"angle":360,"enabled":false,"range":0,"brightness":1,"visionMode":"basic","color":null,"attenuation":0.1,"saturation":0,"contrast":0},"alpha":1,"detectionModes":[]},"folder":null,"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.0.21","coreVersion":"10.286","createdTime":1664231097625,"modifiedTime":1664231486336,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
{"_id":"PoQUTsNThYDp6XAW","name":"Nef","permission":{"default":0,"rYShh2P1DNavdoBD":3},"type":"vehicule","data":{"categorie":"Bateau","resistance":30,"structure":14,"vitesse":"5/4/2","bonus":"","manoeuvrabilite":"0/-3/-4","equipage":12,"capacite_encombrement":200,"description":"Description ...","notesmj":"Notes du MJ"},"sort":100001,"flags":{},"img":"systems/foundryvtt-reve-de-dragon/icons/vehicules/nef.webp","token":{"flags":{},"name":"Nef","displayName":0,"img":"systems/foundryvtt-reve-de-dragon/icons/vehicules/nef_token.webp","tint":"","width":13,"height":13,"scale":1,"mirrorX":false,"mirrorY":false,"lockRotation":false,"rotation":0,"vision":false,"dimSight":0,"brightSight":0,"dimLight":0,"brightLight":0,"sightAngle":360,"lightAngle":360,"lightColor":"","lightAlpha":1,"lightAnimation":{"type":"","speed":5,"intensity":5},"actorId":"PoQUTsNThYDp6XAW","actorLink":false,"disposition":0,"displayBars":0,"bar1":{"attribute":""},"bar2":{"attribute":""},"randomImg":false},"items":[],"effects":[]} {"_id":"PoQUTsNThYDp6XAW","name":"Nef","type":"vehicule","sort":100001,"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.vehicules.PoQUTsNThYDp6XAW"}},"img":"systems/foundryvtt-reve-de-dragon/icons/vehicules/nef.webp","items":[],"effects":[],"system":{"categorie":"Bateau","resistance":30,"structure":14,"vitesse":"5/4/2","bonus":"","manoeuvrabilite":"0/-3/-4","equipage":12,"capacite_encombrement":200,"etat":{"resistance":{"type":"number","max":30,"value":30,"label":"Résistance","derivee":false},"structure":{"type":"number","max":14,"value":14,"label":"Structure","derivee":false}},"description":"Description ...","race":"","notesmj":"Notes du MJ","attributs":{"malusarmure":{"value":0}}},"ownership":{"default":0,"rYShh2P1DNavdoBD":3},"prototypeToken":{"flags":{},"name":"Nef","displayName":0,"width":13,"height":13,"lockRotation":false,"rotation":0,"actorLink":false,"disposition":0,"displayBars":0,"bar1":{"attribute":"sante.vie"},"bar2":{"attribute":"sante.endurance"},"randomImg":false,"light":{"dim":0,"bright":0,"angle":360,"color":null,"alpha":1,"animation":{"type":null,"speed":5,"intensity":5,"reverse":false},"coloration":1,"attenuation":0.5,"luminosity":0.5,"saturation":0,"contrast":0,"shadows":0,"darkness":{"min":0,"max":1}},"texture":{"src":"systems/foundryvtt-reve-de-dragon/icons/vehicules/nef_token.webp","tint":null,"scaleX":1,"scaleY":1,"offsetX":0,"offsetY":0,"rotation":0},"sight":{"angle":360,"enabled":false,"range":0,"brightness":1,"visionMode":"basic","color":null,"attenuation":0.1,"saturation":0,"contrast":0},"alpha":1,"detectionModes":[]},"folder":null,"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.0.21","coreVersion":"10.286","createdTime":1664231097626,"modifiedTime":1664231486339,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
{"_id":"RFOYL8HBUxd32DXS","name":"Galère","permission":{"default":0,"rYShh2P1DNavdoBD":3},"type":"vehicule","data":{"categorie":"Bateau","resistance":36,"structure":14,"vitesse":"2/2/1","bonus":"(12)/+12/+16","manoeuvrabilite":"0/-4/-6","equipage":10,"capacite_encombrement":300,"description":"Description ...","notesmj":"Notes du MJ"},"sort":100001,"flags":{},"img":"systems/foundryvtt-reve-de-dragon/icons/vehicules/galere.webp","token":{"flags":{},"name":"Galère","displayName":0,"img":"systems/foundryvtt-reve-de-dragon/icons/vehicules/galere_token.webp","tint":"","width":14,"height":14,"scale":1,"mirrorX":false,"mirrorY":false,"lockRotation":false,"rotation":0,"vision":false,"dimSight":0,"brightSight":0,"dimLight":0,"brightLight":0,"sightAngle":360,"lightAngle":360,"lightColor":"","lightAlpha":1,"lightAnimation":{"type":"","speed":5,"intensity":5},"actorId":"RFOYL8HBUxd32DXS","actorLink":false,"disposition":0,"displayBars":0,"bar1":{"attribute":""},"bar2":{"attribute":""},"randomImg":false},"items":[],"effects":[]} {"_id":"RFOYL8HBUxd32DXS","name":"Galère","type":"vehicule","sort":100001,"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.vehicules.RFOYL8HBUxd32DXS"}},"img":"systems/foundryvtt-reve-de-dragon/icons/vehicules/galere.webp","items":[],"effects":[],"system":{"categorie":"Bateau","resistance":36,"structure":14,"vitesse":"2/2/1","bonus":"(12)/+12/+16","manoeuvrabilite":"0/-4/-6","equipage":10,"capacite_encombrement":300,"etat":{"resistance":{"type":"number","max":36,"value":36,"label":"Résistance","derivee":false},"structure":{"type":"number","max":14,"value":14,"label":"Structure","derivee":false}},"description":"Description ...","race":"","notesmj":"Notes du MJ","attributs":{"malusarmure":{"value":0}}},"ownership":{"default":0,"rYShh2P1DNavdoBD":3},"prototypeToken":{"flags":{},"name":"Galère","displayName":0,"width":14,"height":14,"lockRotation":false,"rotation":0,"actorLink":false,"disposition":0,"displayBars":0,"bar1":{"attribute":"sante.vie"},"bar2":{"attribute":"sante.endurance"},"randomImg":false,"light":{"dim":0,"bright":0,"angle":360,"color":null,"alpha":1,"animation":{"type":null,"speed":5,"intensity":5,"reverse":false},"coloration":1,"attenuation":0.5,"luminosity":0.5,"saturation":0,"contrast":0,"shadows":0,"darkness":{"min":0,"max":1}},"texture":{"src":"systems/foundryvtt-reve-de-dragon/icons/vehicules/galere_token.webp","tint":null,"scaleX":1,"scaleY":1,"offsetX":0,"offsetY":0,"rotation":0},"sight":{"angle":360,"enabled":false,"range":0,"brightness":1,"visionMode":"basic","color":null,"attenuation":0.1,"saturation":0,"contrast":0},"alpha":1,"detectionModes":[]},"folder":null,"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.0.21","coreVersion":"10.286","createdTime":1664231097627,"modifiedTime":1664231486339,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
{"_id":"TDpSn7GawJ1LCHp7","name":"Charette","permission":{"default":0,"rYShh2P1DNavdoBD":3},"type":"vehicule","data":{"categorie":"Chariot","resistance":16,"structure":8,"vitesse":"","bonus":"","manoeuvrabilite":"","equipage":1,"capacite_encombrement":100,"description":"Description ...","notesmj":"Notes du MJ"},"sort":100001,"flags":{},"img":"systems/foundryvtt-reve-de-dragon/icons/vehicules/charette.webp","token":{"flags":{},"name":"Charette","displayName":0,"img":"systems/foundryvtt-reve-de-dragon/icons/vehicules/charette_token.webp","tint":"","width":3,"height":3,"scale":1.1,"mirrorX":false,"mirrorY":false,"lockRotation":false,"rotation":0,"vision":false,"dimSight":0,"brightSight":0,"dimLight":0,"brightLight":0,"sightAngle":360,"lightAngle":360,"lightColor":"","lightAlpha":1,"lightAnimation":{"type":"","speed":5,"intensity":5},"actorId":"TDpSn7GawJ1LCHp7","actorLink":false,"disposition":0,"displayBars":0,"bar1":{"attribute":""},"bar2":{"attribute":""},"randomImg":false},"items":[],"effects":[]} {"_id":"TDpSn7GawJ1LCHp7","name":"Charette","type":"vehicule","sort":100001,"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.vehicules.TDpSn7GawJ1LCHp7"}},"img":"systems/foundryvtt-reve-de-dragon/icons/vehicules/charette.webp","items":[],"effects":[],"system":{"categorie":"Chariot","resistance":16,"structure":8,"vitesse":"","bonus":"","manoeuvrabilite":"","equipage":1,"capacite_encombrement":100,"etat":{"resistance":{"type":"number","max":16,"value":16,"label":"Résistance","derivee":false},"structure":{"type":"number","max":8,"value":8,"label":"Structure","derivee":false}},"description":"Description ...","race":"","notesmj":"Notes du MJ","attributs":{"malusarmure":{"value":0}}},"ownership":{"default":0,"rYShh2P1DNavdoBD":3},"prototypeToken":{"flags":{},"name":"Charette","displayName":0,"width":3,"height":3,"lockRotation":false,"rotation":0,"actorLink":false,"disposition":0,"displayBars":0,"bar1":{"attribute":"sante.vie"},"bar2":{"attribute":"sante.endurance"},"randomImg":false,"light":{"dim":0,"bright":0,"angle":360,"color":null,"alpha":1,"animation":{"type":null,"speed":5,"intensity":5,"reverse":false},"coloration":1,"attenuation":0.5,"luminosity":0.5,"saturation":0,"contrast":0,"shadows":0,"darkness":{"min":0,"max":1}},"texture":{"src":"systems/foundryvtt-reve-de-dragon/icons/vehicules/charette_token.webp","tint":null,"scaleX":1.1,"scaleY":1.1,"offsetX":0,"offsetY":0,"rotation":0},"sight":{"angle":360,"enabled":false,"range":0,"brightness":1,"visionMode":"basic","color":null,"attenuation":0.1,"saturation":0,"contrast":0},"alpha":1,"detectionModes":[]},"folder":null,"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.0.21","coreVersion":"10.286","createdTime":1664231097629,"modifiedTime":1664231486337,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
{"_id":"ZiyRDzz3gGzlpLIc","name":"Barque","permission":{"default":0,"rYShh2P1DNavdoBD":3},"type":"vehicule","data":{"categorie":"Barque","resistance":20,"structure":10,"vitesse":"3/2/1","bonus":"(4)/+4/+6","manoeuvrabilite":"0/0/-4","equipage":4,"capacite_encombrement":100,"description":"Description ...","notesmj":"Notes du MJ"},"sort":100001,"flags":{},"img":"systems/foundryvtt-reve-de-dragon/icons/vehicules/barque.webp","token":{"flags":{},"name":"Barque","displayName":0,"img":"systems/foundryvtt-reve-de-dragon/icons/vehicules/barque_token.webp","tint":"","width":6,"height":6,"scale":1,"mirrorX":false,"mirrorY":false,"lockRotation":false,"rotation":0,"vision":false,"dimSight":0,"brightSight":0,"dimLight":0,"brightLight":0,"sightAngle":360,"lightAngle":360,"lightColor":"","lightAlpha":1,"lightAnimation":{"type":"","speed":5,"intensity":5},"actorId":"ZiyRDzz3gGzlpLIc","actorLink":false,"disposition":0,"displayBars":0,"bar1":{"attribute":""},"bar2":{"attribute":""},"randomImg":false},"items":[],"effects":[]} {"_id":"ZiyRDzz3gGzlpLIc","name":"Barque","type":"vehicule","sort":100001,"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.vehicules.ZiyRDzz3gGzlpLIc"}},"img":"systems/foundryvtt-reve-de-dragon/icons/vehicules/barque.webp","items":[],"effects":[],"system":{"categorie":"Barque","resistance":20,"structure":10,"vitesse":"3/2/1","bonus":"(4)/+4/+6","manoeuvrabilite":"0/0/-4","equipage":4,"capacite_encombrement":100,"etat":{"resistance":{"type":"number","max":20,"value":20,"label":"Résistance","derivee":false},"structure":{"type":"number","max":10,"value":10,"label":"Structure","derivee":false}},"description":"Description ...","race":"","notesmj":"Notes du MJ","attributs":{"malusarmure":{"value":0}}},"ownership":{"default":0,"rYShh2P1DNavdoBD":3},"prototypeToken":{"flags":{},"name":"Barque","displayName":0,"width":6,"height":6,"lockRotation":false,"rotation":0,"actorLink":false,"disposition":0,"displayBars":0,"bar1":{"attribute":"sante.vie"},"bar2":{"attribute":"sante.endurance"},"randomImg":false,"light":{"dim":0,"bright":0,"angle":360,"color":null,"alpha":1,"animation":{"type":null,"speed":5,"intensity":5,"reverse":false},"coloration":1,"attenuation":0.5,"luminosity":0.5,"saturation":0,"contrast":0,"shadows":0,"darkness":{"min":0,"max":1}},"texture":{"src":"systems/foundryvtt-reve-de-dragon/icons/vehicules/barque_token.webp","tint":null,"scaleX":1,"scaleY":1,"offsetX":0,"offsetY":0,"rotation":0},"sight":{"angle":360,"enabled":false,"range":0,"brightness":1,"visionMode":"basic","color":null,"attenuation":0.1,"saturation":0,"contrast":0},"alpha":1,"detectionModes":[]},"folder":null,"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.0.21","coreVersion":"10.286","createdTime":1664231097629,"modifiedTime":1664231486336,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
{"_id":"gM77co80kmpVsYg6","name":"Posé par terre","permission":{"default":0,"Q2G6GTdrotKzYGUC":3},"type":"vehicule","data":{"categorie":"Autre","resistance":0,"structure":0,"vitesse":"","bonus":"","manoeuvrabilite":"","equipage":0,"capacite_encombrement":100,"description":"<p>D&eacute;poser ici les objets que vous voulez &eacute;changer avec d'autres joueurs</p>","notesmj":""},"sort":100001,"flags":{},"img":"systems/foundryvtt-reve-de-dragon/icons/templates/icone_parchement_vierge.webp","token":{"flags":{},"name":"Posé par terre","displayName":0,"img":"systems/foundryvtt-reve-de-dragon/icons/templates/icone_parchement_vierge.webp","tint":"","width":1,"height":1,"scale":1,"mirrorX":false,"mirrorY":false,"lockRotation":false,"rotation":0,"vision":false,"dimSight":0,"brightSight":0,"dimLight":0,"brightLight":0,"sightAngle":360,"lightAngle":360,"lightColor":"","lightAlpha":1,"lightAnimation":{"type":"","speed":5,"intensity":5},"actorId":"gM77co80kmpVsYg6","actorLink":true,"disposition":0,"displayBars":0,"bar1":{"attribute":""},"bar2":{"attribute":""},"randomImg":false},"items":[],"effects":[]} {"_id":"gM77co80kmpVsYg6","name":"Posé par terre","type":"vehicule","sort":100001,"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.vehicules.gM77co80kmpVsYg6"}},"img":"systems/foundryvtt-reve-de-dragon/icons/templates/icone_parchement_vierge.webp","items":[],"effects":[],"system":{"categorie":"Autre","resistance":0,"structure":0,"vitesse":"","bonus":"","manoeuvrabilite":"","equipage":0,"capacite_encombrement":100,"etat":{"resistance":{"type":"number","max":0,"value":0,"label":"Résistance","derivee":false},"structure":{"type":"number","max":0,"value":0,"label":"Structure","derivee":false}},"description":"<p>D&eacute;poser ici les objets que vous voulez &eacute;changer avec d'autres joueurs</p>","race":"","notesmj":"","attributs":{"malusarmure":{"value":0}}},"ownership":{"default":0,"Q2G6GTdrotKzYGUC":3},"prototypeToken":{"flags":{},"name":"Posé par terre","displayName":0,"width":1,"height":1,"lockRotation":false,"rotation":0,"actorLink":true,"disposition":0,"displayBars":0,"bar1":{"attribute":"sante.vie"},"bar2":{"attribute":"sante.endurance"},"randomImg":false,"light":{"dim":0,"bright":0,"angle":360,"color":null,"alpha":1,"animation":{"type":null,"speed":5,"intensity":5,"reverse":false},"coloration":1,"attenuation":0.5,"luminosity":0.5,"saturation":0,"contrast":0,"shadows":0,"darkness":{"min":0,"max":1}},"texture":{"src":"systems/foundryvtt-reve-de-dragon/icons/templates/icone_parchement_vierge.webp","tint":null,"scaleX":1,"scaleY":1,"offsetX":0,"offsetY":0,"rotation":0},"sight":{"angle":360,"enabled":false,"range":0,"brightness":1,"visionMode":"basic","color":null,"attenuation":0.1,"saturation":0,"contrast":0},"alpha":1,"detectionModes":[]},"folder":null,"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.0.21","coreVersion":"10.286","createdTime":1664231097630,"modifiedTime":1664231486340,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
{"_id":"idyDmDWYpQ4Eppen","name":"Chariot","permission":{"default":0,"rYShh2P1DNavdoBD":3},"type":"vehicule","data":{"categorie":"Chariot","resistance":20,"structure":10,"vitesse":"","bonus":"","manoeuvrabilite":"","equipage":1,"capacite_encombrement":150,"description":"Description ...","notesmj":"Notes du MJ"},"sort":100001,"flags":{},"img":"systems/foundryvtt-reve-de-dragon/icons/vehicules/chariot.webp","token":{"flags":{},"name":"Chariot","displayName":0,"img":"systems/foundryvtt-reve-de-dragon/icons/vehicules/chariot_token.webp","tint":"","width":4,"height":4,"scale":1.4,"mirrorX":false,"mirrorY":false,"lockRotation":false,"rotation":0,"vision":false,"dimSight":0,"brightSight":0,"dimLight":0,"brightLight":0,"sightAngle":360,"lightAngle":360,"lightColor":"","lightAlpha":1,"lightAnimation":{"type":"","speed":5,"intensity":5},"actorId":"idyDmDWYpQ4Eppen","actorLink":false,"disposition":0,"displayBars":0,"bar1":{"attribute":""},"bar2":{"attribute":""},"randomImg":false},"items":[],"effects":[]} {"_id":"idyDmDWYpQ4Eppen","name":"Chariot","type":"vehicule","sort":100001,"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.vehicules.idyDmDWYpQ4Eppen"}},"img":"systems/foundryvtt-reve-de-dragon/icons/vehicules/chariot.webp","items":[],"effects":[],"system":{"categorie":"Chariot","resistance":20,"structure":10,"vitesse":"","bonus":"","manoeuvrabilite":"","equipage":1,"capacite_encombrement":150,"etat":{"resistance":{"type":"number","max":20,"value":20,"label":"Résistance","derivee":false},"structure":{"type":"number","max":10,"value":10,"label":"Structure","derivee":false}},"description":"Description ...","race":"","notesmj":"Notes du MJ","attributs":{"malusarmure":{"value":0}}},"ownership":{"default":0,"rYShh2P1DNavdoBD":3},"prototypeToken":{"flags":{},"name":"Chariot","displayName":0,"width":4,"height":4,"lockRotation":false,"rotation":0,"actorLink":false,"disposition":0,"displayBars":0,"bar1":{"attribute":"sante.vie"},"bar2":{"attribute":"sante.endurance"},"randomImg":false,"light":{"dim":0,"bright":0,"angle":360,"color":null,"alpha":1,"animation":{"type":null,"speed":5,"intensity":5,"reverse":false},"coloration":1,"attenuation":0.5,"luminosity":0.5,"saturation":0,"contrast":0,"shadows":0,"darkness":{"min":0,"max":1}},"texture":{"src":"systems/foundryvtt-reve-de-dragon/icons/vehicules/chariot_token.webp","tint":null,"scaleX":1.4,"scaleY":1.4,"offsetX":0,"offsetY":0,"rotation":0},"sight":{"angle":360,"enabled":false,"range":0,"brightness":1,"visionMode":"basic","color":null,"attenuation":0.1,"saturation":0,"contrast":0},"alpha":1,"detectionModes":[]},"folder":null,"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.0.21","coreVersion":"10.286","createdTime":1664231097632,"modifiedTime":1664231486338,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}

File diff suppressed because one or more lines are too long

View File

@@ -252,6 +252,49 @@ table {border: 1px solid #7a7971;}
justify-content: center; justify-content: center;
text-align: left; text-align: left;
} }
.blessure-control {
flex-grow: 1;
flex-direction: row;
}
.blessure-soins {
flex-direction: row;
align-content: flex-start;
justify-content: flex-start;
margin-right: 2px;
margin-left: 2px;
padding: 2px;
}
input:is(.blessure-psdone, .blessure-scdone) {
width: 20px;
}
input:is(.blessure-premiers_soins, .blessure-soins_complets) {
width: calc(100% - 25px);
}
.blessure-jours {
flex-direction: row;
align-content: flex-start;
justify-content: flex-start;
}
.blessure-localisation {
flex-direction: row;
align-content: flex-start;
justify-content: flex-start;
}
.blessure-inactive {
color:rgba(150, 150, 150, 0.4);
}
.blessure-active-legere {
color:rgba(60, 60, 60, 0.9);
text-shadow: 1px 1px 4px rgba(60, 60, 60, 1);
}
.blessure-active-grave {
color: rgba(218, 126, 21, 0.9);
text-shadow: 1px 1px 4px rgba(60, 60, 60, 1);
}
.blessure-active-critique {
color: rgba(173, 36, 26, 0.9);
text-shadow: 1px 1px 4px rgba(60, 60, 60, 1);
}
.foundryvtt-reve-de-dragon .sheet-header { .foundryvtt-reve-de-dragon .sheet-header {
-webkit-box-flex: 0; -webkit-box-flex: 0;
@@ -366,6 +409,12 @@ table {border: 1px solid #7a7971;}
flex-wrap: nowrap; flex-wrap: nowrap;
justify-content: stretch; justify-content: stretch;
} }
.rdd.sheet .window-content .sheet-body .carac-list .caracteristique.vehicle {
flex-wrap: nowrap;
justify-content: stretch;
flex-basis: 7.5em;
}
.rdd.sheet .window-content .sheet-body .carac-list .caracteristique > .carac-label { .rdd.sheet .window-content .sheet-body .carac-list .caracteristique > .carac-label {
flex-basis: 50%; flex-basis: 50%;
} }
@@ -450,20 +499,6 @@ table {border: 1px solid #7a7971;}
border-bottom: 1px solid #BBB; border-bottom: 1px solid #BBB;
} }
.blessure-inactive {
color:rgba(150, 150, 150, 0.4)
}
.blessure-active-legere {
color:rgba(60, 60, 60, 0.9);
text-shadow: rgba(60, 60, 60, 0.7);
}
.blessure-active-grave {
color:rgba(218, 126, 21, 0.9);
}
.blessure-active-critique {
color:rgba(173, 36, 26, 0.9);
}
.foundryvtt-reve-de-dragon .items-list .item .item-image { .foundryvtt-reve-de-dragon .items-list .item .item-image {
-webkit-box-flex: 0; -webkit-box-flex: 0;
-ms-flex: 0 0 24px; -ms-flex: 0 0 24px;
@@ -840,6 +875,23 @@ ul, li {
margin-left: 3rem; margin-left: 3rem;
} }
.grid-select-type-tmr {
display: grid;
grid-column: span 4 / span 4;
grid-template-columns: repeat(4, minmax(0, 1fr));
gap: 0.1rem;
margin: 0.1rem;
padding: 0;
}
.grid-select-actor {
display: grid;
grid-column: span 2 / span 2;
grid-template-columns: repeat(2, minmax(0, 1fr));
gap: 0.1rem;
margin: 0.1rem;
padding: 0;
}
.sheet-competence-img { .sheet-competence-img {
width: 24px; width: 24px;
height: 24px; height: 24px;
@@ -891,6 +943,12 @@ ul, li {
margin-right: 0.2rem; margin-right: 0.2rem;
margin-left: 0.2rem; margin-left: 0.2rem;
} }
.initiative-value {
flex-grow: 0;
flex-basis: 3rem;
margin-right: 0.2rem;
margin-left: 0.2rem;
}
.description-value { .description-value {
flex-grow: 0; flex-grow: 0;
flex-basis: 4rem; flex-basis: 4rem;
@@ -909,23 +967,6 @@ ul, li {
.alchimie-title { .alchimie-title {
font-weight: bold; font-weight: bold;
} }
.blessure-data {
flex-direction: row;
align-content: flex-start;
justify-content: flex-start;
}
.blessures-soins {
flex-grow: 0;
flex-basis: 32px;
margin-right: 4px;
margin-left: 4px;
}
.blessures-loc {
flex-grow: 0;
flex-basis: 96px;
margin-right: 4px;
margin-left: 4px;
}
.pointsreve-value { .pointsreve-value {
flex-grow: 0; flex-grow: 0;
flex-basis: 64px; flex-basis: 64px;
@@ -1076,7 +1117,7 @@ ul, li {
.table-fatigue .fatigue-malus { .table-fatigue .fatigue-malus {
font-size: 0.8rem; font-size: 0.8rem;
} }
.flex-actions-bar { .flex-actions-bar {
flex-grow: 2; flex-grow: 2;
} }

View File

@@ -34,7 +34,7 @@
], ],
"url": "https://www.uberwald.me/gitea/public/foundryvtt-reve-de-dragon/", "url": "https://www.uberwald.me/gitea/public/foundryvtt-reve-de-dragon/",
"license": "LICENSE.txt", "license": "LICENSE.txt",
"version": "10.0.18", "version": "10.0.22",
"compatibility": { "compatibility": {
"minimum": "10", "minimum": "10",
"verified": "10.286" "verified": "10.286"
@@ -333,7 +333,7 @@
], ],
"socket": true, "socket": true,
"manifest": "https://www.uberwald.me/gitea/public/foundryvtt-reve-de-dragon/raw/v10/system.json", "manifest": "https://www.uberwald.me/gitea/public/foundryvtt-reve-de-dragon/raw/v10/system.json",
"download": "https://www.uberwald.me/gitea/public/foundryvtt-reve-de-dragon/archive/foundryvtt-reve-de-dragon-10.0.18.zip", "download": "https://www.uberwald.me/gitea/public/foundryvtt-reve-de-dragon/archive/foundryvtt-reve-de-dragon-10.0.22.zip",
"gridDistance": 1, "gridDistance": 1,
"gridUnits": "m", "gridUnits": "m",
"primaryTokenAttribute": "sante.vie", "primaryTokenAttribute": "sante.vie",

View File

@@ -31,13 +31,27 @@
}, },
"vehicule": { "vehicule": {
"categorie": "", "categorie": "",
"resistance": 0,
"structure": 0,
"vitesse": "", "vitesse": "",
"bonus": "", "bonus": "",
"manoeuvrabilite": "", "manoeuvrabilite": "",
"equipage": 0, "equipage": 0,
"capacite_encombrement": 0 "capacite_encombrement": 0,
"etat": {
"resistance" : {
"type": "number",
"max": 20,
"value": 20,
"label": "Résistance",
"derivee": false
},
"structure":{
"type": "number",
"max": 10,
"value": 10,
"label": "Structure",
"derivee": false
}
}
}, },
"entite": { "entite": {
"definition": { "definition": {

View File

@@ -1,27 +0,0 @@
<tr class="table-row alterne-row item" data-blessure-type="{{gravite}}" data-attribute={{key}} data-blessure-index="{{key}}" >
<td class="blessure-control" title="Blessure {{title}}" data-blessure-active="{{bless.active}}">
{{#if bless.active}}
<i class="fas fa-skull-crossbones blessure-active-{{gravite}}" name="blessure-{{gravite}}-{{key}}-active"></i>
{{else}}
<i class="fas fa-skull-crossbones blessure-inactive" name="blessure-{{gravite}}-{{key}}-active"></i>
{{/if}}
</td>
<td>
<input class="blessures-soins blessure-localisation" type="text" name="blessure-{{gravite}}-{{key}}-localisation" data-dtype="String" value="{{bless.loc}}"/>
</td>
<td>
<input class="blessures-soins blessure-premiers_soins" type="text" name="blessure-{{gravite}}-{{key}}-premiers_soins" data-dtype="number" value="{{bless.premiers_soins}}"/>
</td>
<td>
<input class="blessures-soins blessure-psdone" name="blessure-{{gravite}}-{{key}}-psdone" type="checkbox" name="bless.psdone" {{#if bless.psdone}}checked{{/if}}/>
</td>
<td>
<input class="blessures-soins blessure-soins_complets" type="text" name="blessure-{{gravite}}-{{key}}-soins_complets" data-dtype="number" value="{{bless.soins_complets}}"/>
</td>
<td>
<input class="blessures-soins blessure-scdone" name="blessure-{{gravite}}-{{key}}-scdone" type="checkbox" name="bless.scdone" {{#if bless.scdone}}checked{{/if}}/>
</td>
<td>
<input class="blessures-soins blessure-jours" type="text" name="blessure-{{gravite}}-{{key}}-jours" name="jours" data-dtype="number" value="{{bless.jours}}"/>
</td>
</tr>

View File

@@ -18,7 +18,7 @@
<span>{{calc.resumeBlessures}}</span> <span>{{calc.resumeBlessures}}</span>
</div> </div>
<div class="flexrow"> <div class="flexrow">
{{>"systems/foundryvtt-reve-de-dragon/templates/actor-sheet-effects-partial.html"}} {{>"systems/foundryvtt-reve-de-dragon/templates/actor/effects.html"}}
</div> </div>
</div> </div>
</div> </div>
@@ -121,12 +121,12 @@
{{!-- blessures Tab --}} {{!-- blessures Tab --}}
<div class="tab blessures" data-group="primary" data-tab="blessures" style="height:200px"> <div class="tab blessures" data-group="primary" data-tab="blessures" style="height:200px">
{{!-- Liste de blessures --}} {{!-- Liste de blessures --}}
{{> "systems/foundryvtt-reve-de-dragon/templates/actor-liste-blessures-partial.html" this}} {{> "systems/foundryvtt-reve-de-dragon/templates/actor/blessures.html"}}
</div> </div>
{{!-- Equipment Tab --}} {{!-- Equipment Tab --}}
<div class="tab items" data-group="primary" data-tab="items"> <div class="tab items" data-group="primary" data-tab="items">
{{> "systems/foundryvtt-reve-de-dragon/templates/actor-sheet-inventaire.html"}} {{> "systems/foundryvtt-reve-de-dragon/templates/actor/inventaire.html"}}
</div> </div>
{{!-- Biography Tab --}} {{!-- Biography Tab --}}
@@ -139,10 +139,10 @@
<div class="form-group editor"> <div class="form-group editor">
<span class="item-name"><h4>Description</h4> <span class="item-name"><h4>Description</h4>
{{editor system.description target="system.description" button=true owner=owner editable=true}} {{editor description target="system.description" button=true owner=owner editable=true}}
</div> </div>
{{>"systems/foundryvtt-reve-de-dragon/templates/actor-sheet-editor-notes-mj.html"}} {{>"systems/foundryvtt-reve-de-dragon/templates/actor/editor-notes-mj.html"}}
</div> </div>

View File

@@ -131,9 +131,9 @@
{{!-- Biography Tab --}} {{!-- Biography Tab --}}
<div class="tab description" data-group="primary" data-tab="description"> <div class="tab description" data-group="primary" data-tab="description">
<div class="form-group editor"> <div class="form-group editor">
{{editor system.description target="system.description" button=true owner=owner editable=true}} {{editor description target="system.description" button=true owner=owner editable=true}}
</div> </div>
{{>"systems/foundryvtt-reve-de-dragon/templates/actor-sheet-editor-notes-mj.html"}} {{>"systems/foundryvtt-reve-de-dragon/templates/actor/editor-notes-mj.html"}}
</div> </div>
</section> </section>

View File

@@ -1,28 +0,0 @@
<h3>Blessures:</h3>
<table class="table-container" role="table">
<thead>
<tr class="competence-header competence-title competence-label" >
<th></th>
<th>Loc.</th>
<th>Premiers soins</th>
<th>P.S. OK?</th>
<th>Soins complets</th>
<th>S.C. OK?</th>
<th>Age (jours)</th>
</tr>
</thead>
<tbody>
<tr class="table-row alterne-row" ><td/><td colspan="4">Légères</td></tr>
{{#each system.blessures.legeres.liste as |bless key|}}
{{> "systems/foundryvtt-reve-de-dragon/templates/actor-blessure-partial.html" bless=bless key=key gravite="legere" title="Légère"}}
{{/each}}
<tr class="table-row alterne-row"><td/><td colspan="4">Graves</td></tr>
{{#each system.blessures.graves.liste as |bless key|}}
{{> "systems/foundryvtt-reve-de-dragon/templates/actor-blessure-partial.html" bless=bless key=key gravite="grave" title="Grave"}}
{{/each}}
<tr class="table-row alterne-row"><td/><td colspan="4">Critiques</td></tr>
{{#each system.blessures.critiques.liste as |bless key|}}
{{> "systems/foundryvtt-reve-de-dragon/templates/actor-blessure-partial.html" bless=bless key=key gravite="critique" title="Critique"}}
{{/each}}
</tbody>
</table>

View File

@@ -1,6 +0,0 @@
{{#if options.isGM}}
<h3>Notes du MJ : </h3>
<div class="form-group editor">
{{editor system.notesmj target="system.notesmj" button=true owner=owner editable=editable}}
</div>
{{/if}}

View File

@@ -1,52 +0,0 @@
<li class="item flexrow list-item" data-item-id="{{item._id}}" draggable="true">
{{#if (eq item.type 'conteneur')}}
<span class="sheet-competence-img conteneur-name">
{{#if vide}}
<i class="far fa-square"></i>
{{else}}
<a data-item-id="{{item._id}}">
{{#if ouvert}}
<i class="far fa-minus-square"></i>
<!-- <i class="far fa-caret-square-down"></i> -->
{{else}}
<i class="far fa-plus-square"></i>
<!-- <i class="fas fa-caret-square-right"></i> -->
{{/if}}
</a>
{{/if}}
</span>
<span class="item-name conteneur-name flex-grow">
<a data-item-id="{{item._id}}">
<img class="sheet-competence-img" src="{{item.img}}" title="{{item.name}}"/>
{{item.name}}
</a>
</span>
{{else}}
<img class="sheet-competence-img" src="{{item.img}}" title="{{item.name}}"/>
<span class="item-name flex-grow">{{item.name}}</span>
{{/if}}
<span class="item-quantite">{{item.system.quantite}}
{{#if (gt item.system.quantite 1)}}
<a class="item-control item-split" title="Séparer"><i class="fas fa-unlink"></i></a>
{{/if}}
</span>
<span class="item-quantite">{{numberFormat item.system.encTotal decimals=2}}</span>
<div class="item-controls flex-grow">
{{#unless item.estContenu}}
{{#if (ne item.type 'conteneur')}}
<a class="item-control item-equip" title="Equiper">{{#if item.system.equipe}}<i class="fas fa-hand-rock"></i>{{else}}<i class="far fa-hand-paper"></i>{{/if}}</a>
{{/if}}
{{/unless}}
<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>
{{#if (or (eq item.type 'arme') (eq item.type 'conteneur') item.system.quantite)}}
&nbsp;
<a class="item-control item-vendre" title="Vendre ou donner"><i class="fas fa-comments-dollar"></i></a>
{{/if}}
<a class="item-control item-montrer" title="Montrer"><i class="fas fa-comment"></i></a>
{{#if item.system.actionPrincipale}}
<a class="item-name item-action">{{item.system.actionPrincipale}}</a>
{{/if}}
</div>
</li>

View File

@@ -1,15 +0,0 @@
<span class="item-name"><h4>Véhicules</h4></span>
<ul class="item-list alterne-list">
{{#each subacteurs.vehicules as |vehicule id|}}
<li class="item flexrow list-item" data-actor-id="{{vehicule.id}}">
<img class="sheet-competence-img" src="{{vehicule.img}}" title="{{vehicule.name}}"/>
<span class="flex-grow subacteur-label"><a>{{vehicule.name}}</a></span>
<span>{{vehicule.categorie}}</span>
<span>{{vehicule.structure}}</span>
<div class="flex-shrink">
<a class="subacteur-delete" title="Supprimer"><i class="fas fa-trash"></i></a>
</div>
</li>
{{/each}}
</ul>

View File

@@ -69,7 +69,7 @@
<span>{{system.compteurs.surenc.label}}: {{system.compteurs.surenc.value}}</span> <span>{{system.compteurs.surenc.label}}: {{system.compteurs.surenc.value}}</span>
</div> </div>
<div class="flexrow"> <div class="flexrow">
{{>"systems/foundryvtt-reve-de-dragon/templates/actor-sheet-effects-partial.html"}} {{>"systems/foundryvtt-reve-de-dragon/templates/actor/effects.html"}}
</div> </div>
</div> </div>
</div> </div>
@@ -93,9 +93,10 @@
{{!-- Carac Tab --}} {{!-- Carac Tab --}}
<div class="tab items" data-group="primary" data-tab="carac"> <div class="tab items" data-group="primary" data-tab="carac">
<div class="flexrow"> <div class="flexrow">
<span><a class="lock-unlock-sheet"><img class="small-button-container" <span><a class="vue-detaillee">
src="systems/foundryvtt-reve-de-dragon/icons/{{#if options.editCaracComp}}unlocked.svg{{else}}locked.svg{{/if}}" alt="blocker/débloquer" <i class="fas {{#if options.vueDetaillee}}fa-eye-slash{{else}}fa-eye{{/if}}"></i>
>{{#if options.editCaracComp}}Verrouiller{{else}}Déverrouiller{{/if}}</a></span> {{#if options.vueDetaillee}}Vue simplifiée{{else}}Vue détaillée{{/if}}</a>
</span>
</div> </div>
<div class="grid grid-2col"> <div class="grid grid-2col">
<div class="flex-group-left flexcol"> <div class="flex-group-left flexcol">
@@ -108,7 +109,7 @@
{{/if}} {{/if}}
{{#if (eq key 'taille')}} {{#if (eq key 'taille')}}
<span class="carac-label" name="system.carac.{{key}}.label">{{carac.label}}</span> <span class="carac-label" name="system.carac.{{key}}.label">{{carac.label}}</span>
<input class="carac-value" type="text" name="system.carac.{{key}}.value" value="{{carac.value}}" data-dtype="{{carac.type}}" {{#unless @root.options.editCaracComp}}disabled{{/unless}} /> <input class="carac-value" type="text" name="system.carac.{{key}}.value" value="{{carac.value}}" data-dtype="{{carac.type}}" {{#unless @root.options.vueDetaillee}}disabled{{/unless}} />
<label class="carac-xp"/> <label class="carac-xp"/>
{{else}} {{else}}
{{#if carac.derivee}} {{#if carac.derivee}}
@@ -125,9 +126,9 @@
{{else}} {{else}}
<span class="carac-label tooltip" name="system.carac.{{key}}.label"><a name={{key}}>{{carac.label}}</a></span> <span class="carac-label tooltip" name="system.carac.{{key}}.label"><a name={{key}}>{{carac.label}}</a></span>
{{/if}} {{/if}}
<input class="carac-value" type="text" name="system.carac.{{key}}.value" value="{{carac.value}}" data-dtype="{{carac.type}}" {{#unless @root.options.editCaracComp}}disabled{{/unless}} /> <input class="carac-value" type="text" name="system.carac.{{key}}.value" value="{{carac.value}}" data-dtype="{{carac.type}}" {{#unless @root.options.vueDetaillee}}disabled{{/unless}} />
<span class="carac-xp tooltip"> <span class="carac-xp tooltip">
<input class="carac-xp" type="text" name="system.carac.{{key}}.xp" value="{{carac.xp}}" data-dtype="number" {{#unless @root.options.editCaracComp}}disabled{{/unless}} /> <input class="carac-xp" type="text" name="system.carac.{{key}}.xp" value="{{carac.xp}}" data-dtype="number" {{#unless @root.options.vueDetaillee}}disabled{{/unless}} />
<span class="tooltiptext ttt-xp">Vous devez acquérir {{carac.xpNext}} points d'Experience pour augmenter de 1 votre {{carac.label}}</span> <span class="tooltiptext ttt-xp">Vous devez acquérir {{carac.xpNext}} points d'Experience pour augmenter de 1 votre {{carac.label}}</span>
</span> </span>
{{#if carac.isLevelUp}} {{#if carac.isLevelUp}}
@@ -149,7 +150,7 @@
<ul class="carac-list"> <ul class="carac-list">
<li class="caracteristique flexrow list-item"> <li class="caracteristique flexrow list-item">
<span class="carac-label" name="beaute">Beauté&nbsp;:</span> <span class="carac-label" name="beaute">Beauté&nbsp;:</span>
<input class="description-value" type="text" name="system.beaute" value="{{system.beaute}}" data-dtype="String" {{#unless @root.options.editCaracComp}}disabled{{/unless}}/> <input class="description-value" type="text" name="system.beaute" value="{{system.beaute}}" data-dtype="String" {{#unless @root.options.vueDetaillee}}disabled{{/unless}}/>
<label class="carac-xp"/> <label class="carac-xp"/>
</li> </li>
{{#each system.attributs as |attr key|}} {{#each system.attributs as |attr key|}}
@@ -211,449 +212,80 @@
{{!-- Compétences Tab --}} {{!-- Compétences Tab --}}
<div class="tab competences" data-group="primary" data-tab="competences"> <div class="tab competences" data-group="primary" data-tab="competences">
<div class="grid grid-4col"> <div class="flexrow">
<span><a class="lock-unlock-sheet"><img class="small-button-container" <span><a class="vue-detaillee">
src="systems/foundryvtt-reve-de-dragon/icons/{{#if options.editCaracComp}}unlocked.svg{{else}}locked.svg{{/if}}" alt="blocker/débloquer"> <i class="fas {{#if options.vueDetaillee}}fa-eye-slash{{else}}fa-eye{{/if}}"></i>
{{#if options.editCaracComp}}Verrouiller{{else}}Déverrouiller{{/if}}</a></span> {{#if options.vueDetaillee}}Vue simplifiée{{else}}Vue détaillée{{/if}}</a>
<span>
<input class="recherche flex-grow" type="text" value="{{options.recherche.text}}" name="recherche"
size="8" data-dtype="String" placeholder="chercher"/>
</span> </span>
<span><a class="show-hide-competences"><img class="small-button-container" <span><a class="show-hide-competences"><img class="small-button-container"
src="systems/foundryvtt-reve-de-dragon/icons/{{#if options.showCompNiveauBase}}no-filter.svg{{else}}filter.svg{{/if}}" alt="filter/montrer tout"> src="systems/foundryvtt-reve-de-dragon/icons/{{#if options.showCompNiveauBase}}no-filter.svg{{else}}filter.svg{{/if}}" alt="filter/montrer tout">
{{#if options.showCompNiveauBase}}Montrer tout{{else}}Filtrer{{/if}}</a> {{#if options.showCompNiveauBase}}Montrer tout{{else}}Filtrer{{/if}}</a>
</span> </span>
<span><a class="vue-detaillee"> <span class="flexrow">
<i class="fas {{#if options.vueDetaillee}}fa-eye-slash{{else}}fa-eye{{/if}}"></i> <i class="fas fa-search flex-shrink"></i>
{{#if options.vueDetaillee}}Vue simplifiée{{else}}Vue détaillée{{/if}}</a> <input class="recherche flex-grow" type="text" value="{{options.recherche.text}}" name="recherche"
size="8" data-dtype="String" placeholder="chercher"/>
</span> </span>
</div> </div>
<div class="grid grid-2col"> <div class="grid grid-2col">
<div class="flex-group-left flexcol competence-column"> <div class="flex-group-left flexcol competence-column">
{{> "systems/foundryvtt-reve-de-dragon/templates/actor-sheet-categorie-competences-partial.html" competences=(filtreTriCompetences competenceByCategory.generale) categorie="Compétences générales"}} {{> "systems/foundryvtt-reve-de-dragon/templates/actor/categorie-competences.html" competences=(filtreTriCompetences byCateg.generale) categorie="Compétences générales"}}
{{> "systems/foundryvtt-reve-de-dragon/templates/actor-sheet-categorie-competences-partial.html" competences=(filtreTriCompetences competenceByCategory.particuliere) categorie="Compétences Particulières"}} {{> "systems/foundryvtt-reve-de-dragon/templates/actor/categorie-competences.html" competences=(filtreTriCompetences byCateg.particuliere) categorie="Compétences Particulières"}}
{{> "systems/foundryvtt-reve-de-dragon/templates/actor-sheet-categorie-competences-partial.html" competences=(filtreTriCompetences competenceByCategory.specialisee) categorie="Compétences Spécialisées"}} {{> "systems/foundryvtt-reve-de-dragon/templates/actor/categorie-competences.html" competences=(filtreTriCompetences byCateg.specialisee) categorie="Compétences Spécialisées"}}
</div> </div>
<div class="flex-group-left flexcol competence-column"> <div class="flex-group-left flexcol competence-column">
{{> "systems/foundryvtt-reve-de-dragon/templates/actor-sheet-categorie-competences-partial.html" competences=(filtreTriCompetences competenceByCategory.melee) categorie="Compétences de Mêlée"}} {{> "systems/foundryvtt-reve-de-dragon/templates/actor/categorie-competences.html" competences=(filtreTriCompetences byCateg.melee) categorie="Compétences de Mêlée"}}
{{> "systems/foundryvtt-reve-de-dragon/templates/actor-sheet-categorie-competences-partial.html" competences=(filtreTriCompetences competenceByCategory.tir) categorie="Compétences de Tir"}} {{> "systems/foundryvtt-reve-de-dragon/templates/actor/categorie-competences.html" competences=(filtreTriCompetences byCateg.tir) categorie="Compétences de Tir"}}
{{> "systems/foundryvtt-reve-de-dragon/templates/actor-sheet-categorie-competences-partial.html" competences=(filtreTriCompetences competenceByCategory.lancer) categorie="Compétences de Lancer"}} {{> "systems/foundryvtt-reve-de-dragon/templates/actor/categorie-competences.html" competences=(filtreTriCompetences byCateg.lancer) categorie="Compétences de Lancer"}}
{{> "systems/foundryvtt-reve-de-dragon/templates/actor-sheet-categorie-competences-partial.html" competences=(filtreTriCompetences competenceByCategory.connaissance) categorie="Connaissances"}} {{> "systems/foundryvtt-reve-de-dragon/templates/actor/categorie-competences.html" competences=(filtreTriCompetences byCateg.connaissance) categorie="Connaissances"}}
{{#if (or system.attributs.hautrevant.value options.vueDetaillee)}} {{#if (or system.attributs.hautrevant.value options.vueDetaillee)}}
{{> "systems/foundryvtt-reve-de-dragon/templates/actor-sheet-categorie-competences-partial.html" competences=(filtreTriCompetences competenceByCategory.draconic) categorie="Draconic"}} {{> "systems/foundryvtt-reve-de-dragon/templates/actor/categorie-competences.html" competences=(filtreTriCompetences byCateg.draconic) categorie="Draconic"}}
{{/if}} {{/if}}
{{> "systems/foundryvtt-reve-de-dragon/templates/actor/xp-competences.html"}}
<div>
<ul class="item-list">
<li class="item flexrow">
<span class="generic-label">Stress transformé</span>
<input class="compteur-edit" type="text" name="experience" value="{{system.compteurs.experience.value}}" data-dtype="number" size="3"/>
</li>
<li class="item flexrow">
<span class="generic-label">Total XP compétences</span>
<span class="competence-value">{{calc.competenceXPTotal}}</span>
</li>
{{#if options.vueDetaillee}}
<li>Niveaux d'archétype à répartir</li>
{{#each calc.comptageArchetype as |archetype key|}}
{{#if (lt archetype.nombre archetype.nombreMax)}}
<li class="item flexrow">
<label class="generic-label">Archetype {{archetype.niveau}} : {{archetype.nombre}} / {{archetype.nombreMax}}</label>
</li>
{{/if}}
{{/each}}
{{/if}}
</ul>
</div>
</div> </div>
</div> </div>
</div> </div>
{{!-- Combat Tab --}} {{!-- Combat Tab --}}
<div class="tab combat" data-group="primary" data-tab="combat"> <div class="tab combat" data-group="primary" data-tab="combat">
<h3 class="blessures-title">Armes et Défenses:</h3> {{> "systems/foundryvtt-reve-de-dragon/templates/actor/combat.html"}}<hr>
<ul class="item-list alterne-list"> {{> "systems/foundryvtt-reve-de-dragon/templates/actor/blessures.html"}}
<li class="competence-header flexrow"> {{> "systems/foundryvtt-reve-de-dragon/templates/actor/maladies-poisons.html"}}
<span class="competence-title competence-label">Armes</span> {{> "systems/foundryvtt-reve-de-dragon/templates/actor/possessions.html"}}
<span class="competence-title competence-label">Initiative</span>
<span class="competence-title competence-label">Comp.</span>
<span class="competence-title competence-value">Niveau</span>
<span class="competence-title competence-value">+dom</span>
</li>
{{#each combat as |arme key|}}
<li class="item flexrow list-item" data-item-id="{{arme._id}}"
data-arme-name="{{arme.name}}" data-competence-name="{{arme.system.competence}}" >
<span class="arme-label">
<a>
{{#if arme.img}}
<img class="sheet-competence-img" src="{{arme.img}}"/>
{{/if}}
<span>{{arme.name}}</span>
</a>
</span>
<span class="arme-initiative"><a>{{arme.system.initiative}}</a></span>
<span class="competence-label">{{arme.system.competence}}</span>
<span class="competence-value">{{numberFormat arme.system.niveau decimals=0 sign=true}}</span>
<span class="competence-value">{{numberFormat arme.system.dommagesReels decimals=0 sign=true}}</span>
</li>
{{/each}}
{{#each esquives as |esq key|}}
<li class="item flexrow list-item" data-item-id="{{esq._id}}">
<span class="competence-label">
<a class="competence-label" name="{{esq.name}}">
<img class="sheet-competence-img" src="{{esq.img}}"/>
<span>{{esq.name}}</span>
</a>
</span>
<span class="arme-initiative"></span>
<span class="competence-label"></span>
<span class="competence-value">{{numberFormat esq.system.niveau decimals=0 sign=true}}</span>
<span class="competence-value"></span>
</li>
{{/each}}
</ul>
<hr>
{{!-- Liste de blessures --}}
{{> "systems/foundryvtt-reve-de-dragon/templates/actor-liste-blessures-partial.html" this}}
{{#if maladiesPoisons.length}}
{{!-- Maladies & Poison --}}
<h3 class="blessures-title">Maladies & Poisons:</h3>
<ul class="item-list alterne-list">
<li class="competence-header flexrow">
<span class="competence-title flex-grow competence-label">Nom</span>
<span class="competence-title competence-label">Type</span>
<span class="competence-title competence-value">Remèdes</span>
<span class="competence-title flex-grow competence-value">Edition</span>
</li>
{{#each maladiesPoisons as |maladie key|}}
<li class="item flexrow list-item" data-item-id="{{maladie._id}}">
<span class="competence-label">
{{#if (or @root.options.isGM maladie.system.identifie)}}
{{maladie.name}}
{{else}}
Inconnue
{{/if}}
</span>
<span class="competence-label">{{maladie.type}}</span>
<span class="competence-label">
{{#if (or @root.options.isGM maladie.system.remedesconnus)}}
{{maladie.system.remedes}}
{{else}}
Remèdes Inconnus
{{/if}}
</span>
<div class="item-controls">
<a class="item-edit" title="Modifier"><i class="fas fa-edit"></i></a>
<a class="item-delete" title="Supprimer"><i class="fas fa-trash"></i></a>
</div>
</li>
{{/each}}
</ul>
{{/if}}
{{#if possessions.length}}
{{!-- Possession --}}
<h3 class="blessures-title">Possession:</h3>
<ul class="item-list alterne-list">
<li class="competence-header flexrow">
<span class="competence-title flex-grow competence-label">Nom</span>
<span class="competence-title competence-label">Type</span>
</li>
{{#each possessions as |possession key|}}
<li class="item flexrow list-item" data-item-id="{{possession._id}}">
<span class="competence-label">
<a class="sheet-possession-attack">{{possession.name}} (Conjurer)</a>
</span>
<span class="competence-label">{{possession.system.type}}</span>
<div class="item-controls">
<a class="item-edit" title="Modifier"><i class="fas fa-edit"></i></a>
<a class="item-delete" title="Supprimer"><i class="fas fa-trash"></i></a>
</div>
</li>
{{/each}}
</ul>
{{/if}}
</div> </div>
{{!-- Connaissances Tab --}} {{!-- Connaissances Tab --}}
<div class="tab connaissances" data-group="primary" data-tab="connaissances"> <div class="tab connaissances" data-group="primary" data-tab="connaissances">
<h3>Tâches</h3><a class='creer-tache'>Créer une nouvelle Tâche</a> {{> "systems/foundryvtt-reve-de-dragon/templates/actor/taches.html"}}
<ul class="item-list alterne-list"> {{> "systems/foundryvtt-reve-de-dragon/templates/actor/oeuvres.html"}}
{{#each taches as |tache id|}} {{> "systems/foundryvtt-reve-de-dragon/templates/actor/jeux.html"}}
<li class="item flexrow list-item" data-item-id="{{tache._id}}"> {{> "systems/foundryvtt-reve-de-dragon/templates/actor/alchimie.html"}}
<img class="sheet-competence-img" src="{{tache.img}}" />
<span class="competence-title tache-label"><a>{{tache.name}}
({{tache.system.points_de_tache_courant}}{{#if
(or @root.options.isGM (not tache.system.cacher_points_de_tache))
}}/{{tache.system.points_de_tache}}{{/if}})</a></span>
<div class="item-controls flex-shrink">
<a class="item-edit" title="Edit Item"><i class="fas fa-edit"></i></a>
<a class="item-delete" title="Delete Item"><i class="fas fa-trash"></i></a>
</div>
</li>
{{/each}}
</ul>
<hr>
<h3>Oeuvres diverses :</h3><a class="creer-une-oeuvre">Créer une oeuvre</a>
<ul class="item-list alterne-list">
{{#each chants as |chant id|}}
{{> "systems/foundryvtt-reve-de-dragon/templates/actor-sheet-oeuvre-partial.html" oeuvre=chant typeOeuvre="Chant" classOeuvre="chant-label"}}
{{/each}}
{{#each musiques as |musique id|}}
{{> "systems/foundryvtt-reve-de-dragon/templates/actor-sheet-oeuvre-partial.html" oeuvre=musique typeOeuvre="Musique" classOeuvre="musique-label"}}
{{/each}}
{{#each danses as |danse id|}}
{{> "systems/foundryvtt-reve-de-dragon/templates/actor-sheet-oeuvre-partial.html" oeuvre=danse typeOeuvre="Danse" classOeuvre="danse-label"}}
{{/each}}
{{#each oeuvres as |oeuvre id|}}
{{> "systems/foundryvtt-reve-de-dragon/templates/actor-sheet-oeuvre-partial.html" oeuvre=oeuvre typeOeuvre=oeuvre.system.competence classOeuvre="oeuvre-label"}}
{{/each}}
{{#each recettescuisine as |recette id|}}
{{> "systems/foundryvtt-reve-de-dragon/templates/actor-sheet-oeuvre-partial.html" oeuvre=recette typeOeuvre="Recette de cuisine" classOeuvre="recettecuisine-label"}}
{{/each}}
</ul>
<h3>Jeux :</h3>
<ul class="item-list alterne-list">
{{#each jeux as |jeu id|}}
<li class="item flexrow list-item" data-item-id="{{jeu._id}}"><span class="competence-title jeu-label"><a>{{jeu.name}} (base {{jeu.system.base}})</a></span>
<div class="item-controls flex-shrink">
<a class="item-edit" title="Edit Item"><i class="fas fa-edit"></i></a>
<a class="item-delete" title="Delete Item"><i class="fas fa-trash"></i></a>
</div>
</li>
{{/each}}
</ul>
<h3>Recettes Alchimiques</h3>
<ul class="item-list alterne-list">
{{#each recettesAlchimiques as |recette id|}}
<li class="item flexrow list-item" data-item-id="{{recette._id}}"><span class="competence-title recette-label item-edit"><a>{{recette.name}}</a></span>
<div class="item-controls flex-shrink">
<a class="item-edit" title="Edit Item"><i class="fas fa-edit"></i></a>
<a class="item-delete" title="Delete Item"><i class="fas fa-trash"></i></a>
</div>
</li>
{{/each}}
</ul>
<hr>
<h3>Astrologie</h3>
<span class="astrologie-label"><a id="jet-astrologie">Astrologie : Nombres Astraux</a></span>
</div> </div>
{{!-- hautreve Tab --}} {{!-- hautreve Tab --}}
<div class="tab hautreve " data-group="primary" data-tab="hautreve" style="height:200px"> <div class="tab hautreve " data-group="primary" data-tab="hautreve" style="height:200px">
<div> <div>
{{#if system.attributs.hautrevant.value}} {{#if system.attributs.hautrevant.value}}
<h3>Haut rêvant</h3> <h3>Haut rêvant</h3>
{{> "systems/foundryvtt-reve-de-dragon/templates/actor/haut-revant.html"}}
{{else}} {{else}}
<h3>Vous n'avez pas le don de haut-rêve! Il faut attribuer la Tête de Dragon 'Don de Haut Rêve' si votre personnage est ou devient Haut-Rêvant.</h3> <h3>Vous n'avez pas le don de haut-rêve</h3>
<p>Attribuer la Tête de Dragon 'Don de Haut Rêve' pour rendre le personnage Haut-Rêvant.</p>
{{> "systems/foundryvtt-reve-de-dragon/templates/actor/non-haut-revant.html"}}
{{/if}} {{/if}}
<ul class="item-list"> <br><br>
{{#if system.attributs.hautrevant.value}}
{{#if options.isGM}}
<li class="item flexrow">
<span>
<a class="chat-card-button forcer-tmr-aleatoire">Ré-insertion aléatoire (ie TMR cachée)</a>
</span>
<span>
<a class="chat-card-button afficher-tmr">Montrer les TMR</a>
</span>
</li>
{{/if}}
<li class="item flexrow">
<span class="competence-label flex-shrink">Demi rêve :
{{#if options.isGM}}
{{caseTmr-label system.reve.tmrpos.coord}}
</span><span>
<input class="competence-value" type="text" name="system.reve.tmrpos.coord" value="{{system.reve.tmrpos.coord}}" data-dtype="String"/>
{{else if hautreve.cacheTMR}}
{{caseTmr-type system.reve.tmrpos.coord}}
</span><span>
??
{{else}}
{{caseTmr-label system.reve.tmrpos.coord}}
</span><span>
{{system.reve.tmrpos.coord}}
{{/if}}
</span>
</li>
{{/if}}
<li class="item flexrow">
<span class="competence-label">Seuil de Rêve :</span>
<span>
{{#if options.isGM}}
<input class="seuil-reve-value" type="text" name="system.reve.seuil.value" value="{{system.reve.seuil.value}}" data-dtype="Number"/>
{{else}}
{{system.reve.seuil.value}}
{{/if}}
</span>
</li>
<li class="item flexrow" >
<span class="competence-label">Refoulement : </span>
<span>
{{#if options.isGM}}
<input class="competence-value" type="text" name="system.reve.refoulement.value" value="{{system.reve.refoulement.value}}" data-dtype="Number"/>
{{else}}
{{system.reve.refoulement.value}}
{{/if}}
</span>
</li>
</ul>
</div> </div>
<hr>
{{!-- Queues, Souffles, Tetes, Ombre --}}
{{> "systems/foundryvtt-reve-de-dragon/templates/actor-sheet-queues.html"}}
{{#if souffles.length}}
<h3>Souffles:</h3>
<ul class="item-list">
{{#each souffles as |souffle key|}}
<li class="item flexrow" data-attribute={{key}} data-item-id="{{souffle._id}}">
<img class="sheet-competence-img" src="{{souffle.img}}" />
<span class="display-label flex-grow"><a>{{souffle.name}}</a></span>
<div class="item-controls flex-shrink">
<a class="item-delete" title="Delete Item"><i class="fas fa-trash"></i></a>
</div>
</li>
{{/each}}
</ul>
{{/if}}
{{#if tetes.length}}
<h3>Tetes:</h3>
<ul class="item-list">
{{#each tetes as |tete key|}}
<li class="item flexrow" data-attribute={{key}} data-item-id="{{tete._id}}">
<img class="sheet-competence-img" src="{{tete.img}}" />
<span class="display-label flex-grow"><a>{{tete.name}}</a></span>
<div class="item-controls flex-shrink">
<a class="item-delete" title="Delete Item"><i class="fas fa-trash"></i></a>
</div>
</li>
{{/each}}
</ul>
{{/if}}
{{#if system.attributs.hautrevant.value}}
{{#if (and options.isGM signesdraconiques.length)}}
<h3>Signes draconiques</h3>
<ul class="item-list alterne-list">
{{#each signesdraconiques as |signe key|}}
<li class="item list-item flexrow" data-item-id="{{signe._id}}" data-attribute="{{key}}">
<img class="sheet-competence-img" src="{{signe.img}}" />
<span class="display-label flex-grow"><a>{{signe.name}}</a></span>
<span class="flex-shrink">{{signe.system.difficulte}}</span>
<div class="item-controls flex-shrink">
<a class="item-delete" title="Supprimer"><i class="fas fa-trash"></i></a>
</div>
</li>
{{/each}}
</ul>
{{/if}}
{{#if hautreve.rencontres.length}}
<h3>Rencontres présentes:</h3>
<ul class="item-list">
{{#each hautreve.rencontres as |rencontre key|}}
<li class="item flexrow" data-item-id="{{key}}" data-attribute="{{key}}">
<span class="display-label"><a data-item-id="{{key}}">{{rencontre.name}} r{{rencontre.force}}</a></span>
<span class="flex-shrink">{{rencontre.coord}} - {{caseTmr-label rencontre.coord}}</span>
{{#if rencontre.date}}
<span>{{upperFirst rencontre.heure}}, le {{rencontre.date}}</span>
{{/if}}
<div class="item-controls flex-shrink">
<a class="rencontre-delete" title="Supprimer"><i class="fas fa-trash"></i></a>
</div>
</li>
{{/each}}
</ul>
{{/if}}
{{#if sortsReserve.length}}
<h3>Sorts en Réserve:</h3>
<ul class="item-list alterne-list">
{{#each sortsReserve as |sort key|}}
<li class="item list-item flexrow" data-item-id="{{sort._id}}" data-attribute="{{key}}">
<img class="sheet-competence-img" src="{{sort.img}}" />
<span class="display-label"><a>{{#if sort.system.echectotal}}Echec total: {{/if}}{{sort.name}} r{{sort.system.ptreve}}</a></span>
<span>{{sort.system.coord}} - {{caseTmr-label sort.system.coord}}</span>
<div class="item-controls flex-shrink">
<a class="item-delete flex-shrink" title="Supprimer"><i class="fas fa-trash"></i></a>
</div>
</li>
{{/each}}
{{#each hautreve.sortsReserve as |reserve key|}}
<li class="item list-item flexrow" data-index="{{key}}">
<img class="sheet-competence-img" src="{{reserve.img}}" />
<span class="display-label">{{reserve.sort.name}} r{{reserve.sort.system.ptreve_reel}}</span>
<span>{{reserve.coord}} - {{caseTmr-label reserve.coord}}</span>
<div class="item-controls flex-shrink">
<a class="delete-sort-reserve flex-shrink" title="Supprimer"><i class="fas fa-trash"></i></a>
</div>
</li>
{{/each}}
</ul>
{{/if}}
<hr>
<h3>Sorts:</h3>
<ul class="item-list alterne-list">
{{#each sorts as |sort key|}}
<li class="item list-item flexrow" data-item-id="{{sort._id}}" data-attribute="{{key}}">
<img class="sheet-competence-img" src="{{sort.img}}" />
<span class="display-label flex-grow">
<a data-item-id="{{sort._id}}">{{sort.name}}
- {{#if sort.system.caseTMRspeciale}}{{sort.system.caseTMRspeciale}}{{else}}{{upperFirst sort.system.caseTMR}}{{/if}}
</a>
</span>
<span>{{sort.system.draconic}} / {{sort.system.difficulte}}</span>
<div class="item-controls flex-shrink">
<a class="item-delete" title="Supprimer"><i class="fas fa-trash"></i></a>
</div>
</li>
{{/each}}
</ul>
<h3>Méditations:</h3>
<ul class="item-list">
{{#each meditations as |meditation key|}}
<li class="item flexrow" data-item-id="{{meditation._id}}" data-attribute="{{key}}">
<img class="sheet-competence-img" src="{{meditation.img}}" />
<span class="meditation-label flex-grow"><a data-item-id="{{meditation._id}}">{{meditation.name}} - {{meditation.system.competence}}</a></span>
<div class="item-controls flex-shrink">
<a class="item-edit" title="Editer"><i class="fas fa-edit"></i></a>
<a class="item-delete" title="Supprimer"><i class="fas fa-trash"></i></a>
</div>
</li>
{{/each}}
</ul>
<hr>
{{#if hautreve.casesTmr}}
<h3>Cases Spéciales:</h3>
<ul class="item-list">
{{#each hautreve.casesTmr as |casetmr key|}}
<li class="item flexrow" data-item-id="{{casetmr._id}}" data-attribute="{{key}}">
<img class="sheet-competence-img" src="{{casetmr.img}}" />
<span class="display-label"><a data-item-id="{{casetmr._id}}">{{casetmr.name}}</a></span>
<span>{{casetmr.system.coord}} - {{caseTmr-label casetmr.system.coord}}</span>
<div class="item-controls flex-shrink">
<a class="item-delete" title="Supprimer"><i class="fas fa-trash"></i></a>
</div>
</li>
{{/each}}
</ul>
{{/if}}
<br><br>
{{/if}}
</div> </div>
{{!-- Equipment Tab --}} {{!-- Equipment Tab --}}
<div class="tab items" data-group="primary" data-tab="items"> <div class="tab items" data-group="primary" data-tab="items">
{{> "systems/foundryvtt-reve-de-dragon/templates/actor-sheet-inventaire.html"}} {{> "systems/foundryvtt-reve-de-dragon/templates/actor/inventaire.html"}}
{{> "systems/foundryvtt-reve-de-dragon/templates/actor-sheet-liens-animaux.html"}} {{> "systems/foundryvtt-reve-de-dragon/templates/actor/liens-animaux.html"}}
{{> "systems/foundryvtt-reve-de-dragon/templates/actor-sheet-liens-suivants.html"}} {{> "systems/foundryvtt-reve-de-dragon/templates/actor/liens-suivants.html"}}
{{> "systems/foundryvtt-reve-de-dragon/templates/actor-sheet-liens-vehicules.html"}} {{> "systems/foundryvtt-reve-de-dragon/templates/actor/liens-vehicules.html"}}
</div> </div>
@@ -713,27 +345,14 @@
<article class="flexcol"> <article class="flexcol">
<h3>Biographie : </h3> <h3>Biographie : </h3>
<div class="form-group editor"> <div class="form-group editor">
{{editor system.biographie target="system.biographie" button=true owner=owner editable=editable}} {{editor biographie target="system.biographie" button=true owner=owner editable=editable}}
</div> </div>
<h3>Notes : </h3> <h3>Notes : </h3>
<div class="form-group editor"> <div class="form-group editor">
{{editor system.notes target="system.notes" button=true owner=owner editable=editable}} {{editor notes target="system.notes" button=true owner=owner editable=editable}}
</div> </div>
<h3>Journal d'Experience</h3> {{> "systems/foundryvtt-reve-de-dragon/templates/actor/xp-journal.html"}}
<div class="form-group editor"> {{> "systems/foundryvtt-reve-de-dragon/templates/actor/editor-notes-mj.html"}}
<ul class="item-list alterne-list">
{{#each system.experiencelog as |xp key|}}
<li class="item flexrow list-item">
<label class="flex-shrink">{{xp.mode}} </label>
<label class="flex-grow">{{xp.valeur}} {{xp.raison}} </label>
<label class="flex-shrink">{{xp.daterdd}} </label>
<label class="flex-shrink">{{xp.datereel}} </label>
</li>
{{/each}}
</ul>
</div>
{{>"systems/foundryvtt-reve-de-dragon/templates/actor-sheet-editor-notes-mj.html"}}
</article> </article>
</div> </div>

View File

@@ -26,7 +26,7 @@
<div class="flex-group-left flexcol"> <div class="flex-group-left flexcol">
<ol class="carac-list alterne-list"> <ol class="carac-list alterne-list">
<li class="caracteristique flexrow list-item" data-attribute="{{key}}"> <li class="caracteristique flexrow list-item" data-attribute="{{key}}">
<span class="carac-label flexrow" name="categorie">Catégorie</span> <span class="carac-label">Catégorie</span>
<select name="system.categorie" class="categorie" data-dtype="String"> <select name="system.categorie" class="categorie" data-dtype="String">
{{#select system.categorie}} {{#select system.categorie}}
{{>"systems/foundryvtt-reve-de-dragon/templates/enum-categorie-vehicule.html"}} {{>"systems/foundryvtt-reve-de-dragon/templates/enum-categorie-vehicule.html"}}
@@ -34,52 +34,53 @@
</select> </select>
</li> </li>
<li class="caracteristique flexrow list-item" data-attribute="{{key}}"> <li class="caracteristique flexrow list-item" data-attribute="{{key}}">
<span class="carac-label flexrow" name="categorie">Résistance</span> <span class="carac-label">Résistance</span>
<input class="competence-value flexrow" type="text" name="system.resistance" value="{{system.resistance}}" data-dtype="Number" /> <input class="competence-value flexrow" type="text" name="system.etat.resistance.value" value="{{system.etat.resistance.value}}" data-dtype="Number" />
/
<input class="competence-value flexrow" type="text" name="system.etat.resistance.max" value="{{system.etat.resistance.max}}" data-dtype="Number" />
</li> </li>
<li class="caracteristique flexrow list-item" data-attribute="{{key}}"> <li class="caracteristique flexrow list-item" data-attribute="{{key}}">
<span class="carac-label flexrow" name="categorie">Structure</span> <span class="carac-label">Structure</span>
<input class="competence-value flexrow" type="text" name="system.structure" value="{{system.structure}}" data-dtype="Number" /> <input class="competence-value flexrow" type="text" name="system.etat.structure.value" value="{{system.etat.structure.value}}" data-dtype="Number" />
/
<input class="competence-value flexrow" type="text" name="system.etat.structure.max" value="{{system.etat.structure.max}}" data-dtype="Number" />
</li> </li>
<li class="caracteristique flexrow list-item" data-attribute="{{key}}"> <li class="caracteristique flexrow list-item" data-attribute="{{key}}">
<span class="carac-label flexrow" name="categorie">Vitesse</span> <span class="carac-label">Vitesse</span>
<input class="competence-value flexrow" type="text" name="system.vitesse" value="{{system.vitesse}}" data-dtype="String" /> <input class="caracteristique vehicle" type="text" name="system.vitesse" value="{{system.vitesse}}" data-dtype="String" />
</li> </li>
<li class="caracteristique flexrow list-item" data-attribute="{{key}}"> <li class="caracteristique flexrow list-item" data-attribute="{{key}}">
<span class="carac-label flexrow" name="categorie">Bonus</span> <span class="carac-label">Bonus</span>
<input class="competence-value flexrow" type="text" name="system.bonus" value="{{system.bonus}}" data-dtype="String" /> <input class="caracteristique vehicle" type="text" name="system.bonus" value="{{system.bonus}}" data-dtype="String" />
</li> </li>
<li class="caracteristique flexrow list-item" data-attribute="{{key}}"> <li class="caracteristique flexrow list-item" data-attribute="{{key}}">
<span class="carac-label flexrow" name="categorie">Manoeuvrabilité</span> <span class="carac-label">Manoeuvrabilité</span>
<input class="competence-value flexrow" type="text" name="system.manoeuvrabilite" value="{{system.manoeuvrabilite}}" data-dtype="String" /> <input class="caracteristique vehicle" type="text" name="system.manoeuvrabilite" value="{{system.manoeuvrabilite}}" data-dtype="String" />
</li> </li>
<li class="caracteristique flexrow list-item" data-attribute="{{key}}"> <li class="caracteristique flexrow list-item" data-attribute="{{key}}">
<span class="carac-label flexrow" name="categorie">Equipage</span> <span class="carac-label">Equipage</span>
<input class="competence-value flexrow" type="text" name="system.equipage" value="{{system.equipage}}" data-dtype="Number" /> <input class="caracteristique vehicle" type="text" name="system.equipage" value="{{system.equipage}}" data-dtype="Number" />
</li> </li>
<li class="caracteristique flexrow list-item" data-attribute="{{key}}"> <li class="caracteristique flexrow list-item" data-attribute="{{key}}">
<span class="carac-label flexrow" name="categorie">Capacité d'Encombrement</span> <span class="carac-label">Capacité d'Encombrement</span>
<input class="competence-value flexrow" type="text" name="system.capacite_encombrement" value="{{system.capacite_encombrement}}" data-dtype="Number" /> <input class="caracteristique vehicle" type="text" name="system.capacite_encombrement" value="{{system.capacite_encombrement}}" data-dtype="Number" />
</li> </li>
</ol> </ol>
</div> </div>
</div> </div>
</div> </div>
{{!-- Equipment Tab --}} {{!-- Equipment Tab --}}
<div class="tab items" data-group="primary" data-tab="items"> <div class="tab items" data-group="primary" data-tab="items">
{{> "systems/foundryvtt-reve-de-dragon/templates/actor/inventaire.html"}}
{{> "systems/foundryvtt-reve-de-dragon/templates/actor-sheet-inventaire.html"}} </div>
{{!-- Biography Tab --}} {{!-- Biography Tab --}}
<div class="tab description" data-group="primary" data-tab="description"> <div class="tab description" data-group="primary" data-tab="description">
<div class="form-group editor"> <div class="form-group editor">
{{editor content=system.description target="system.description" button=true owner=owner editable=editable}} {{editor description target="system.description" button=true owner=owner editable=editable}}
</div> </div>
{{>"systems/foundryvtt-reve-de-dragon/templates/actor-sheet-editor-notes-mj.html"}} {{>"systems/foundryvtt-reve-de-dragon/templates/actor/editor-notes-mj.html"}}
</div>
</div> </div>
</section> </section>

View File

@@ -0,0 +1,13 @@
{{#if recettesAlchimiques.length}}
<h3>Recettes Alchimiques</h3>
<ul class="item-list alterne-list">
{{#each recettesAlchimiques as |recette id|}}
<li class="item flexrow list-item" data-item-id="{{recette._id}}"><span class="competence-title recette-label item-edit"><a>{{recette.name}}</a></span>
<div class="item-controls flex-shrink">
<a class="item-edit" title="Edit Item"><i class="fas fa-edit"></i></a>
<a class="item-delete" title="Delete Item"><i class="fas fa-trash"></i></a>
</div>
</li>
{{/each}}
</ul>
{{/if}}

View File

@@ -0,0 +1,2 @@
<h3>Astrologie</h3>
<span class="astrologie-label"><a id="jet-astrologie">Astrologie : Nombres Astraux</a></span>

View File

@@ -0,0 +1,27 @@
<li class="item flexrow list-item {{#if blessure.active}}blessure-active-{{gravite}}{{else}}blessure-inactive{{/if}}"
data-blessure-type="{{gravite}}"
data-attribute={{key}}
data-blessure-index="{{key}}"
data-blessure-active="{{blessure.active}}">
<span class="blessure-control" title="Blessure {{title}}">
<i class="fas fa-skull-crossbones" name="blessure-{{gravite}}-{{key}}-active"></i>
{{title}}
</span>
{{#if blessure.active}}
<span class="blessure-soins flexrow">
<input class="blessure-psdone" name="blessure-{{gravite}}-{{key}}-psdone" type="checkbox" name="blessure.psdone" {{#if blessure.psdone}}checked{{/if}}/>
<input class="blessure-premiers_soins" type="text" name="blessure-{{gravite}}-{{key}}-premiers_soins" data-dtype="number" value="{{blessure.premiers_soins}}"/>
</span>
<span class="blessure-soins flexrow">
<input class="blessure-scdone" name="blessure-{{gravite}}-{{key}}-scdone" type="checkbox" name="blessure.scdone" {{#if blessure.scdone}}checked{{/if}}/>
<input class="blessure-soins_complets" type="text" name="blessure-{{gravite}}-{{key}}-soins_complets" data-dtype="number" value="{{blessure.soins_complets}}"/>
</span>
<input class="blessure-jours" type="text" name="blessure-{{gravite}}-{{key}}-jours" name="jours" data-dtype="number" value="{{blessure.jours}}"/>
<input class="blessure-localisation" type="text" name="blessure-{{gravite}}-{{key}}-localisation" data-dtype="String" value="{{blessure.loc}}"/>
{{else}}
<span></span>
<span></span>
<span></span>
<span></span>
{{/if}}
</li>

View File

@@ -0,0 +1,18 @@
<ul class="item-list alterne-list">
<li class="competence-header flexrow" >
<span>Blessures</span>
<span>Premiers soins</span>
<span>Soins complets</span>
<span>Age (jours)</span>
<span>Localisation</span>
</li>
{{#each system.blessures.legeres.liste as |blessure key|}}
{{> "systems/foundryvtt-reve-de-dragon/templates/actor/blessure.html" blessure=blessure key=key gravite="legere" title="Légère"}}
{{/each}}
{{#each system.blessures.graves.liste as |blessure key|}}
{{> "systems/foundryvtt-reve-de-dragon/templates/actor/blessure.html" blessure=blessure key=key gravite="grave" title="Grave"}}
{{/each}}
{{#each system.blessures.critiques.liste as |blessure key|}}
{{> "systems/foundryvtt-reve-de-dragon/templates/actor/blessure.html" blessure=blessure key=key gravite="critique" title="Critique"}}
{{/each}}
</ul>

View File

@@ -6,7 +6,6 @@
<ul class="item-list alterne-list competence-list"> <ul class="item-list alterne-list competence-list">
{{#if @root.options.vueDetaillee}} {{#if @root.options.vueDetaillee}}
<li class="item flexrow list-item "> <li class="item flexrow list-item ">
<span class="competence-label"></span> <span class="competence-label"></span>
<span class="competence-value" >Niv.</span> <span class="competence-value" >Niv.</span>
<span class="competence-xp">xp</span> <span class="competence-xp">xp</span>
@@ -15,7 +14,7 @@
{{/if}} {{/if}}
<div class="item-controls"> <div class="item-controls">
<i class="far fa-arrow-alt-circle-up"></i> <i class="far fa-arrow-alt-circle-up"></i>
<span class="competence-archetype">Arch</span> <span class="competence-archetype">Arch.</span>
<i class="far fa-edit"></i> <i class="far fa-edit"></i>
{{#if @root.options.isGM}} {{#if @root.options.isGM}}
<i class="far fa-trash"></i> <i class="far fa-trash"></i>
@@ -24,7 +23,7 @@
</li> </li>
{{/if}} {{/if}}
{{#each competences as |comp key|}} {{#each competences as |comp key|}}
{{> "systems/foundryvtt-reve-de-dragon/templates/actor-sheet-competence-partial.html" comp}} {{> "systems/foundryvtt-reve-de-dragon/templates/actor/competence.html" comp}}
{{/each}} {{/each}}
</ul> </ul>
</div> </div>

View File

@@ -0,0 +1,43 @@
<ul class="item-list alterne-list">
<li class="competence-header flexrow">
<span class="competence-title competence-label">Armes et Défenses</span>
<span class="competence-title competence-value">Niveau</span>
<span class="competence-title competence-value">+dom</span>
<span class="competence-title competence-value"></span>
<span class="competence-title initiative-value">Initiative</span>
</li>
{{#each combat as |arme key|}}
<li class="item flexrow list-item"
data-item-id="{{arme._id}}"
data-arme-name="{{arme.name}}"
data-competence-name="{{arme.system.competence}}" >
<span class="arme-label">
<a>
{{#if arme.img}}
<img class="sheet-competence-img" src="{{arme.img}}"/>
{{/if}}
<span>{{arme.name}}</span>
</a>
({{arme.system.competence}})
</span>
<span class="competence-value">{{numberFormat arme.system.niveau decimals=0 sign=true}}</span>
<span class="competence-value">{{numberFormat arme.system.dommagesReels decimals=0 sign=true}}</span>
<span class="competence-value"></span>
<span class="initiative-value arme-initiative"><a>{{arme.system.initiative}}</a></span>
</li>
{{/each}}
{{#each esquives as |esq key|}}
<li class="item flexrow list-item" data-item-id="{{esq._id}}">
<span class="competence-label">
<a class="competence-label" name="{{esq.name}}">
<img class="sheet-competence-img" src="{{esq.img}}"/>
<span>{{esq.name}}</span>
</a>
</span>
<span class="competence-value">{{numberFormat esq.system.niveau decimals=0 sign=true}}</span>
<span class="competence-value"></span>
<span class="competence-value"></span>
<span class="initiative-value"></span>
</li>
{{/each}}
</ul>

View File

@@ -14,19 +14,19 @@
<input class="competence-value" type="text" compname="{{name}}" name="comp-value-{{name}}" <input class="competence-value" type="text" compname="{{name}}" name="comp-value-{{name}}"
value="{{numberFormat system.niveau decimals=0 sign=true}}" data-dtype="number" value="{{numberFormat system.niveau decimals=0 sign=true}}" data-dtype="number"
{{#unless @root.options.editCaracComp}}disabled{{/unless}} /> {{#unless @root.options.vueDetaillee}}disabled{{/unless}} />
{{#if @root.options.vueDetaillee}}
<span class="competence-xp tooltip"> <span class="competence-xp tooltip">
<input class="competence-xp " type="text" compname="{{name}}" name="comp-xp-{{name}}" <input class="competence-xp " type="text" compname="{{name}}" name="comp-xp-{{name}}"
value="{{numberFormat system.xp decimals=0 sign=false}}" data-dtype="number" value="{{numberFormat system.xp decimals=0 sign=false}}" data-dtype="number"/>
{{#unless @root.options.editCaracComp}}disabled{{/unless}} />
<span class="tooltiptext left-competence ttt-xp">Vous devez acquérir {{system.xpNext}} points d'Experience pour augmenter de 1 votre compétence {{name}}</span> <span class="tooltiptext left-competence ttt-xp">Vous devez acquérir {{system.xpNext}} points d'Experience pour augmenter de 1 votre compétence {{name}}</span>
</span> </span>
{{/if}}
{{#if (eq system.categorie 'draconic')}} {{#if (eq system.categorie 'draconic')}}
<input class="competence-xp-sort" type="text" compname="{{name}}" name="comp-xp-sort-{{name}}" <input class="competence-xp-sort" type="text" compname="{{name}}" name="comp-xp-sort-{{name}}"
value="{{numberFormat system.xp_sort decimals=0 sign=false}}" data-dtype="number" value="{{numberFormat system.xp_sort decimals=0 sign=false}}" data-dtype="number"
{{#unless @root.options.editCaracComp}}disabled{{/unless}}/> {{#unless @root.options.vueDetaillee}}disabled{{/unless}}/>
{{/if}} {{/if}}
{{#if @root.options.vueDetaillee}} {{#if @root.options.vueDetaillee}}
<div class="item-controls"> <div class="item-controls">
@@ -39,8 +39,7 @@
<i class="far fa-circle"></i> <i class="far fa-circle"></i>
{{/if}} {{/if}}
<input class="competence-archetype niveau-archetype" type="text" compname="{{name}}" name="comp-archetype-{{name}}" <input class="competence-archetype niveau-archetype" type="text" compname="{{name}}" name="comp-archetype-{{name}}"
value="{{numberFormat system.niveau_archetype decimals=0 sign=true}}" data-dtype="number" value="{{numberFormat system.niveau_archetype decimals=0 sign=true}}" data-dtype="number"/>
{{#unless @root.options.editCaracComp}}disabled{{/unless}} />
<a class="item-edit" title="Modifier"><i class="fas fa-edit"></i></a> <a class="item-edit" title="Modifier"><i class="fas fa-edit"></i></a>
{{#if @root.options.isGM}} {{#if @root.options.isGM}}
<a class="item-delete" title="Supprimer"><i class="fas fa-trash"></i></a> <a class="item-delete" title="Supprimer"><i class="fas fa-trash"></i></a>

View File

@@ -3,13 +3,13 @@
{{#if queues.length}}Queues de Dragon{{/if}} {{#if queues.length}}Queues de Dragon{{/if}}
{{#if (and queues.length ombres.length)}} et {{/if}} {{#if (and queues.length ombres.length)}} et {{/if}}
{{#if ombres.length}}Ombres de Thanatos{{/if}} {{#if ombres.length}}Ombres de Thanatos{{/if}}
:</h3> </h3>
<ul class="flex-group-left"> <ul class="flex-group-left">
{{#each queues as |queue key|}} {{#each queues as |queue key|}}
{{> "systems/foundryvtt-reve-de-dragon/templates/actor-sheet-item-queue.html" queue=queue key=key}} {{> "systems/foundryvtt-reve-de-dragon/templates/actor/dragon-queue.html" queue=queue key=key}}
{{/each}} {{/each}}
{{#each ombres as |ombre key|}} {{#each ombres as |ombre key|}}
{{> "systems/foundryvtt-reve-de-dragon/templates/actor-sheet-item-queue.html" queue=ombre key=key}} {{> "systems/foundryvtt-reve-de-dragon/templates/actor/dragon-queue.html" queue=ombre key=key}}
{{/each}} {{/each}}
</ul> </ul>
{{/if}} {{/if}}

View File

@@ -0,0 +1,14 @@
{{#if souffles.length}}
<h3>Souffles</h3>
<ul class="item-list">
{{#each souffles as |souffle key|}}
<li class="item flexrow" data-attribute={{key}} data-item-id="{{souffle._id}}">
<img class="sheet-competence-img" src="{{souffle.img}}" />
<span class="display-label flex-grow"><a>{{souffle.name}}</a></span>
<div class="item-controls flex-shrink">
<a class="item-delete" title="Delete Item"><i class="fas fa-trash"></i></a>
</div>
</li>
{{/each}}
</ul>
{{/if}}

View File

@@ -0,0 +1,14 @@
{{#if tetes.length}}
<h3>Tetes</h3>
<ul class="item-list">
{{#each tetes as |tete key|}}
<li class="item flexrow" data-attribute={{key}} data-item-id="{{tete._id}}">
<img class="sheet-competence-img" src="{{tete.img}}" />
<span class="display-label flex-grow"><a>{{tete.name}}</a></span>
<div class="item-controls flex-shrink">
<a class="item-delete" title="Delete Item"><i class="fas fa-trash"></i></a>
</div>
</li>
{{/each}}
</ul>
{{/if}}

View File

@@ -0,0 +1,6 @@
{{#if options.isGM}}
<h3>Notes du MJ : </h3>
<div class="form-group editor">
{{editor notesmj target="system.notesmj" button=true owner=owner editable=editable}}
</div>
{{/if}}

View File

@@ -0,0 +1,35 @@
{{#if options.isGM}}
<li class="item flexrow">
<span>
<a class="chat-card-button forcer-tmr-aleatoire">Ré-insertion aléatoire (ie TMR cachée)</a>
</span>
<span>
<a class="chat-card-button afficher-tmr">Montrer les TMR</a>
</span>
</li>
{{/if}}
<li class="item flexrow">
<span class="competence-label flex-shrink">Demi rêve :
{{#if options.isGM}}
{{caseTmr-label system.reve.tmrpos.coord}}
</span><span>
<input class="competence-value" type="text" name="system.reve.tmrpos.coord" value="{{system.reve.tmrpos.coord}}" data-dtype="String"/>
{{else if hautreve.cacheTMR}}
{{caseTmr-type system.reve.tmrpos.coord}}
</span><span>
??
{{else}}
{{caseTmr-label system.reve.tmrpos.coord}}
</span><span>
{{system.reve.tmrpos.coord}}
{{/if}}
</span>
</li>
{{> "systems/foundryvtt-reve-de-dragon/templates/actor/non-haut-revant.html"}}
<hr>
{{> "systems/foundryvtt-reve-de-dragon/templates/actor/hr-signes-draconiques.html"}}
{{> "systems/foundryvtt-reve-de-dragon/templates/actor/hr-rencontres.html"}}
{{> "systems/foundryvtt-reve-de-dragon/templates/actor/hr-sorts.html"}}
{{> "systems/foundryvtt-reve-de-dragon/templates/actor/hr-sorts-reserve.html"}}
{{> "systems/foundryvtt-reve-de-dragon/templates/actor/hr-meditations.html"}}
{{> "systems/foundryvtt-reve-de-dragon/templates/actor/hr-casestmr.html"}}

View File

@@ -0,0 +1,15 @@
{{#if casestmr.length}}
<h3>Effets sur les cases des TMR</h3>
<ul class="item-list alterne-list">
{{#each casestmr as |casetmr key|}}
<li class="item list-item flexrow" data-item-id="{{casetmr.id}}" data-attribute="{{key}}">
<img class="sheet-competence-img" src="{{casetmr.img}}" />
<span class="display-label"><a>{{casetmr.name}}</a></span>
<span>{{casetmr.system.coord}} - {{caseTmr-label casetmr.system.coord}}</span>
<div class="item-controls flex-shrink">
<a class="item-delete" title="Supprimer"><i class="fas fa-trash"></i></a>
</div>
</li>
{{/each}}
</ul>
{{/if}}

View File

@@ -0,0 +1,15 @@
{{#if meditations.length}}
<h3>Méditations</h3>
<ul class="item-list">
{{#each meditations as |meditation key|}}
<li class="item flexrow" data-item-id="{{meditation._id}}" data-attribute="{{key}}">
<img class="sheet-competence-img" src="{{meditation.img}}" />
<span class="meditation-label flex-grow"><a data-item-id="{{meditation._id}}">{{meditation.name}} - {{meditation.system.competence}}</a></span>
<div class="item-controls flex-shrink">
<a class="item-edit" title="Editer"><i class="fas fa-edit"></i></a>
<a class="item-delete" title="Supprimer"><i class="fas fa-trash"></i></a>
</div>
</li>
{{/each}}
</ul>
{{/if}}

View File

@@ -0,0 +1,17 @@
{{#if hautreve.rencontres.length}}
<h3>Rencontres en attente dans les TMR</h3>
<ul class="item-list">
{{#each hautreve.rencontres as |rencontre key|}}
<li class="item flexrow" data-item-id="{{key}}" data-attribute="{{key}}">
<span class="display-label"><a data-item-id="{{key}}">{{rencontre.name}} r{{rencontre.force}}</a></span>
<span class="flex-shrink">{{rencontre.coord}} - {{caseTmr-label rencontre.coord}}</span>
{{#if rencontre.date}}
<span>{{upperFirst rencontre.heure}}, le {{rencontre.date}}</span>
{{/if}}
<div class="item-controls flex-shrink">
<a class="rencontre-delete" title="Supprimer"><i class="fas fa-trash"></i></a>
</div>
</li>
{{/each}}
</ul>
{{/if}}

View File

@@ -0,0 +1,15 @@
{{#if (and options.isGM signesdraconiques.length)}}
<h3>Signes draconiques</h3>
<ul class="item-list alterne-list">
{{#each signesdraconiques as |signe key|}}
<li class="item list-item flexrow" data-item-id="{{signe._id}}" data-attribute="{{key}}">
<img class="sheet-competence-img" src="{{signe.img}}" />
<span class="display-label flex-grow"><a>{{signe.name}}</a></span>
<span class="flex-shrink">{{signe.system.difficulte}}</span>
<div class="item-controls flex-shrink">
<a class="item-delete" title="Supprimer"><i class="fas fa-trash"></i></a>
</div>
</li>
{{/each}}
</ul>
{{/if}}

View File

@@ -0,0 +1,15 @@
{{#if sortsReserve.length}}
<h3>Sorts en Réserve</h3>
<ul class="item-list alterne-list">
{{#each sortsReserve as |sort key|}}
<li class="item list-item flexrow" data-item-id="{{sort._id}}" data-attribute="{{key}}">
<img class="sheet-competence-img" src="{{sort.img}}" />
<span class="display-label"><a>{{#if sort.system.echectotal}}Echec total: {{/if}}{{sort.name}} r{{sort.system.ptreve}}</a></span>
<span>{{sort.system.coord}} - {{caseTmr-label sort.system.coord}}</span>
<div class="item-controls flex-shrink">
<a class="item-delete flex-shrink" title="Supprimer"><i class="fas fa-trash"></i></a>
</div>
</li>
{{/each}}
</ul>
{{/if}}

View File

@@ -0,0 +1,19 @@
{{#if sorts.length}}
<h3>Sorts</h3>
<ul class="item-list alterne-list">
{{#each sorts as |sort key|}}
<li class="item list-item flexrow" data-item-id="{{sort._id}}" data-attribute="{{key}}">
<img class="sheet-competence-img" src="{{sort.img}}" />
<span class="display-label flex-grow">
<a data-item-id="{{sort._id}}">{{sort.name}}
- {{#if sort.system.caseTMRspeciale}}{{sort.system.caseTMRspeciale}}{{else}}{{upperFirst sort.system.caseTMR}}{{/if}}
</a>
</span>
<span>{{sort.system.draconic}} / {{sort.system.difficulte}}</span>
<div class="item-controls flex-shrink">
<a class="item-delete" title="Supprimer"><i class="fas fa-trash"></i></a>
</div>
</li>
{{/each}}
</ul>
{{/if}}

View File

@@ -1,24 +1,16 @@
<li class="item flexrow list-item" data-item-id="{{item._id}}" draggable="true"> <li class="item flexrow list-item" data-item-id="{{item._id}}" draggable="true">
<span class="equipement-nom {{#if (eq item.type 'conteneur')}}conteneur-name{{/if}} "> <span class="equipement-nom {{#if (eq item.type 'conteneur')}}conteneur-name{{/if}} ">
{{#if (eq item.type 'conteneur')}} {{#if (eq item.type 'conteneur')}}
{{#if vide}} <a>
<i class="far fa-square"></i> <i class="{{~#if vide}}far fa-square
{{else}} {{else if ouvert}}far fa-minus-square
<a data-item-id="{{item._id}}"> {{else}}far fa-plus-square
{{#if ouvert}} {{/if~}}"></i>
<i class="far fa-minus-square"></i> {{/if}}
{{else}}
<i class="far fa-plus-square"></i>
{{/if}}
</a>
{{/if}}
<a data-item-id="{{item._id}}">
<img class="sheet-competence-img" src="{{item.img}}" title="{{item.name}}"/>
<span>{{item.name}}</span>
</a>
{{else}}
<img class="sheet-competence-img" src="{{item.img}}" title="{{item.name}}"/> <img class="sheet-competence-img" src="{{item.img}}" title="{{item.name}}"/>
<span>{{item.name}}</span> <span>{{item.name}}</span>
{{#if (eq item.type 'conteneur')}}
</a>
{{/if}} {{/if}}
</span> </span>
<span class="equipement-detail">{{item.system.quantite}} <span class="equipement-detail">{{item.system.quantite}}
@@ -40,8 +32,8 @@
<a class="item-vendre" title="Vendre ou donner"><i class="fas fa-comments-dollar"></i></a> <a class="item-vendre" title="Vendre ou donner"><i class="fas fa-comments-dollar"></i></a>
{{/if}} {{/if}}
<a class="item-montrer" title="Montrer"><i class="fas fa-comment"></i></a> <a class="item-montrer" title="Montrer"><i class="fas fa-comment"></i></a>
{{#if item.actionPrincipale}} {{#if item.system.actionPrincipale}}
<a class="item-action">{{item.actionPrincipale}}</a> <a class="item-action">{{item.system.actionPrincipale}}</a>
{{/if}} {{/if}}
</span> </span>
</li> </li>

View File

@@ -13,12 +13,6 @@
<span class="equipement-detail item-controls"> <span class="equipement-detail item-controls">
<a class="monnaie-plus"><i class="fas fa-plus-square"></i></a> <a class="monnaie-plus"><i class="fas fa-plus-square"></i></a>
</span> </span>
<!-- <span class="equipement-detail">
<span class="flex-shrink"><a class="monnaie-moins"><i class="fas fa-minus-square"></i></a></span>
<span>{{piece.system.quantite}}</span>
<span class="flex-shrink"><a class="monnaie-plus"><i class="fas fa-plus-square"></i></a></span>
</span> -->
<span class="equipement-actions item-controls"> <span class="equipement-actions item-controls">
<a class="item-edit" title="Editer"><i class="fas fa-edit"></i></a> <a class="item-edit" title="Editer"><i class="fas fa-edit"></i></a>
<a class="item-delete" title="Supprimer"><i class="fas fa-trash"></i></a> <a class="item-delete" title="Supprimer"><i class="fas fa-trash"></i></a>

View File

@@ -1,4 +1,4 @@
{{> "systems/foundryvtt-reve-de-dragon/templates/actor-sheet-inventaire-monnaie.html" monnaie=monnaie}} {{> "systems/foundryvtt-reve-de-dragon/templates/actor/inventaire-monnaie.html" monnaie=monnaie}}
<span class="item-name"><h4>Equipement</h4></span> <span class="item-name"><h4>Equipement</h4></span>
<span class="item-name">Encombrement total/max : {{numberFormat calc.encTotal decimals=2}} / {{system.attributs.encombrement.value}} <b>{{calc.surEncombrementMessage}}</b></span> - <span class="item-name">Encombrement total/max : {{numberFormat calc.encTotal decimals=2}} / {{system.attributs.encombrement.value}} <b>{{calc.surEncombrementMessage}}</b></span> -
@@ -16,7 +16,7 @@
{{#each objets as |item id|}} {{#each objets as |item id|}}
{{#unless item.estContenu}} {{#unless item.estContenu}}
{{#if (ne item.type 'conteneur')}} {{#if (ne item.type 'conteneur')}}
{{> "systems/foundryvtt-reve-de-dragon/templates/actor-sheet-inventaire-item.html" item=item vide=true ouvert=true }} {{> "systems/foundryvtt-reve-de-dragon/templates/actor/inventaire-item.html" item=item vide=true ouvert=true }}
{{/if}} {{/if}}
{{/unless}} {{/unless}}
{{/each}} {{/each}}

13
templates/actor/jeux.html Normal file
View File

@@ -0,0 +1,13 @@
{{#if jeux.length}}
<h3>Jeux :</h3>
<ul class="item-list alterne-list">
{{#each jeux as |jeu id|}}
<li class="item flexrow list-item" data-item-id="{{jeu._id}}"><span class="competence-title jeu-label"><a>{{jeu.name}} (base {{jeu.system.base}})</a></span>
<div class="item-controls flex-shrink">
<a class="item-edit" title="Edit Item"><i class="fas fa-edit"></i></a>
<a class="item-delete" title="Delete Item"><i class="fas fa-trash"></i></a>
</div>
</li>
{{/each}}
</ul>
{{/if}}

View File

@@ -0,0 +1,33 @@
{{#if subacteurs.vehicules.length}}
<ul class="item-list alterne-list">
<li class="competence-header flexrow">
<span class="item-name"><h4>Véhicules</h4></span>
<span></span>
<span>Catégorie</span>
<span>Résistance</span>
<span>Structure</span>
<span></span>
</li>
{{#each subacteurs.vehicules as |vehicule id|}}
<li class="item flexrow list-item" data-actor-id="{{vehicule.id}}">
<span class="subacteur-label">
<a>
<img class="sheet-competence-img" src="{{vehicule.img}}" title="{{vehicule.name}}"/>
{{vehicule.name}}
</a>
</span>
<span>{{vehicule.system.categorie}}</span>
<span>{{vehicule.system.etat.resistance.max}}</span>
<span>{{vehicule.system.etat.structure.max}}</span>
<span>
<a class="subacteur-delete" title="Supprimer"><i class="fas fa-trash"></i></a>
</span>
</li>
{{/each}}
</ul>
{{else}}
<span class="item-name"><h4>Véhicules</h4></span>
{{/if}}

View File

@@ -0,0 +1,34 @@
{{#if maladiesPoisons.length}}
<h3 class="blessures-title">Maladies & Poisons:</h3>
<ul class="item-list alterne-list">
<li class="competence-header flexrow">
<span class="competence-title flex-grow competence-label">Nom</span>
<span class="competence-title competence-label">Type</span>
<span class="competence-title competence-value">Remèdes</span>
<span class="competence-title flex-grow competence-value">Edition</span>
</li>
{{#each maladiesPoisons as |maladie key|}}
<li class="item flexrow list-item" data-item-id="{{maladie._id}}">
<span class="competence-label">
{{#if (or @root.options.isGM maladie.system.identifie)}}
{{maladie.name}}
{{else}}
Inconnue
{{/if}}
</span>
<span class="competence-label">{{maladie.type}}</span>
<span class="competence-label">
{{#if (or @root.options.isGM maladie.system.remedesconnus)}}
{{maladie.system.remedes}}
{{else}}
Remèdes Inconnus
{{/if}}
</span>
<div class="item-controls">
<a class="item-edit" title="Modifier"><i class="fas fa-edit"></i></a>
<a class="item-delete" title="Supprimer"><i class="fas fa-trash"></i></a>
</div>
</li>
{{/each}}
</ul>
{{/if}}

View File

@@ -0,0 +1,26 @@
<ul class="item-list">
<li class="item flexrow">
<span class="competence-label">Seuil de Rêve :</span>
<span>
{{#if options.isGM}}
<input class="seuil-reve-value" type="text" name="system.reve.seuil.value" value="{{system.reve.seuil.value}}" data-dtype="Number"/>
{{else}}
{{system.reve.seuil.value}}
{{/if}}
</span>
</li>
<li class="item flexrow" >
<span class="competence-label">Refoulement : </span>
<span>
{{#if options.isGM}}
<input class="competence-value" type="text" name="system.reve.refoulement.value" value="{{system.reve.refoulement.value}}" data-dtype="Number"/>
{{else}}
{{system.reve.refoulement.value}}
{{/if}}
</span>
</li>
</ul>
<hr>
{{> "systems/foundryvtt-reve-de-dragon/templates/actor/dragon-queues.html"}}
{{> "systems/foundryvtt-reve-de-dragon/templates/actor/dragon-souffles.html"}}
{{> "systems/foundryvtt-reve-de-dragon/templates/actor/dragon-tetes.html"}}

View File

@@ -0,0 +1,18 @@
<h3>Oeuvres diverses</h3><a class="creer-une-oeuvre">Créer une oeuvre</a>
<ul class="item-list alterne-list">
{{#each chants as |chant id|}}
{{> "systems/foundryvtt-reve-de-dragon/templates/actor/oeuvre.html" oeuvre=chant typeOeuvre="Chant" classOeuvre="chant-label"}}
{{/each}}
{{#each musiques as |musique id|}}
{{> "systems/foundryvtt-reve-de-dragon/templates/actor/oeuvre.html" oeuvre=musique typeOeuvre="Musique" classOeuvre="musique-label"}}
{{/each}}
{{#each danses as |danse id|}}
{{> "systems/foundryvtt-reve-de-dragon/templates/actor/oeuvre.html" oeuvre=danse typeOeuvre="Danse" classOeuvre="danse-label"}}
{{/each}}
{{#each oeuvres as |oeuvre id|}}
{{> "systems/foundryvtt-reve-de-dragon/templates/actor/oeuvre.html" oeuvre=oeuvre typeOeuvre=oeuvre.system.competence classOeuvre="oeuvre-label"}}
{{/each}}
{{#each recettescuisine as |recette id|}}
{{> "systems/foundryvtt-reve-de-dragon/templates/actor/oeuvre.html" oeuvre=recette typeOeuvre="Recette de cuisine" classOeuvre="recettecuisine-label"}}
{{/each}}
</ul>

View File

@@ -0,0 +1,22 @@
{{#if possessions.length}}
{{!-- Possession --}}
<h3 class="blessures-title">Possession:</h3>
<ul class="item-list alterne-list">
<li class="competence-header flexrow">
<span class="competence-title flex-grow competence-label">Nom</span>
<span class="competence-title competence-label">Type</span>
</li>
{{#each possessions as |possession key|}}
<li class="item flexrow list-item" data-item-id="{{possession._id}}">
<span class="competence-label">
<a class="sheet-possession-attack">{{possession.name}} (Conjurer)</a>
</span>
<span class="competence-label">{{possession.system.type}}</span>
<div class="item-controls">
<a class="item-edit" title="Modifier"><i class="fas fa-edit"></i></a>
<a class="item-delete" title="Supprimer"><i class="fas fa-trash"></i></a>
</div>
</li>
{{/each}}
</ul>
{{/if}}

View File

@@ -0,0 +1,16 @@
<h3>Tâches</h3><a class='creer-tache'>Créer une nouvelle Tâche</a>
<ul class="item-list alterne-list">
{{#each taches as |tache id|}}
<li class="item flexrow list-item" data-item-id="{{tache._id}}">
<img class="sheet-competence-img" src="{{tache.img}}" />
<span class="competence-title tache-label"><a>{{tache.name}}
({{tache.system.points_de_tache_courant}}{{#if
(or @root.options.isGM (not tache.system.cacher_points_de_tache))
}}/{{tache.system.points_de_tache}}{{/if}})</a></span>
<div class="item-controls flex-shrink">
<a class="item-edit" title="Edit Item"><i class="fas fa-edit"></i></a>
<a class="item-delete" title="Delete Item"><i class="fas fa-trash"></i></a>
</div>
</li>
{{/each}}
</ul>

View File

@@ -0,0 +1,23 @@
<div>
<ul class="item-list">
<li class="item flexrow">
<span class="generic-label">Stress transformé</span>
<input class="compteur-edit" type="text" name="experience" value="{{system.compteurs.experience.value}}" data-dtype="number" size="3"/>
</li>
<li class="item flexrow">
<span class="generic-label">Total XP compétences</span>
<span class="competence-value">{{calc.competenceXPTotal}}</span>
</li>
{{#if options.vueDetaillee}}
<li>Niveaux d'archétype à répartir</li>
{{#each calc.comptageArchetype as |archetype key|}}
{{#if (lt archetype.nombre archetype.nombreMax)}}
<li class="item flexrow">
<label class="generic-label">Archetype {{archetype.niveau}} : {{archetype.nombre}} / {{archetype.nombreMax}}</label>
</li>
{{/if}}
{{/each}}
{{/if}}
</ul>
</div>

View File

@@ -0,0 +1,23 @@
<h3>Journal d'Experience</h3>
<div class="form-group editor">
<ul class="item-list alterne-list">
{{#each system.experiencelog as |xp key|}}
<li class="experiencelog flexrow list-item" data-key="{{key}}">
<label class="flex-grow">{{xp.valeur}} {{xp.raison}}</label>
<label class="flex-shrink">{{xp.mode}}</label>
<label class="flex-shrink">{{xp.daterdd}}</label>
<label class="flex-shrink">{{xp.datereel}}</label>
{{#if @root.options.isGM}}
<span>
<a class="experiencelog-delete" title="Supprimer">
<i class="fas fa-trash"></i>
</a>
<a class="experiencelog-delete-previous" title="Supprimer jusqu'ici">
<i class="fas fa-eraser"></i>
</a>
</span>
{{/if}}
</li>
{{/each}}
</ul>
</div>

View File

@@ -1,6 +1,6 @@
<img class="chat-icon" src="{{img}}" alt="potion de repos" /> <img class="chat-icon" src="{{img}}" alt="potion de repos" />
<h4> <h4>
{{alias}} a bu une <strong>{{name}}{{#if system.magique}} enchantée{{/if}}</strong> {{alias}} a bu une <strong>{{name}}{{#if system.magique}} enchantée de puissance {{system.puissance}}{{/if}}</strong>.
</h4> </h4>
<hr> <hr>
<div> <div>

View File

@@ -1,6 +1,6 @@
<img class="chat-icon" src="{{img}}" alt="potion de soin" /> <img class="chat-icon" src="{{img}}" alt="potion de soin" />
<h4> <h4>
{{alias}} a bu une <strong>{{name}}{{#if system.magique}} enchantée{{/if}}</strong> {{alias}} a bu une <strong>{{name}}{{#if system.magique}} enchantée de {{system.puissance}} points de guérison{{/if}}</strong>
</h4> </h4>
<hr> <hr>
<div> <div>

View File

@@ -31,22 +31,31 @@
<input type="text" name="signe.system.duree" value="{{signe.system.duree}}" data-dtype="String" /> <input type="text" name="signe.system.duree" value="{{signe.system.duree}}" data-dtype="String" />
</span> </span>
</div> </div>
<hr>
<label>Terres médianes</label>
<div class="form-group"> <div class="form-group">
<label for="tmrs">Terres médianes</label> <div class="grid-select-type-tmr">
<select class="select-tmr" name="tmrs" id="tmrs" size="{{tmrs.length}}" multiple>
{{#each tmrs as |tmr key|}} {{#each tmrs as |tmr key|}}
<option value="{{tmr.name}}" {{#if tmr.selected}}selected{{/if}}>{{tmr.name}}</option> <label class="flexrow">
<input type="checkbox" data-dtype="Boolean" class="select-tmr"
data-tmr-name="{{tmr.name}}" {{#if tmr.selected}}checked{{/if}} />
{{tmr.name}}
</label>
{{/each}} {{/each}}
</select> </div>
</div> </div>
<hr>
<label for="actors">Haut-rêvants concernés</label>
<div class="form-group"> <div class="form-group">
<label for="actors">Haut-rêvants concernés</label> <div class="grid-select-actor">
<select class="select-actor" id="actors" size="7" multiple>
{{#each actors as |actor key|}} {{#each actors as |actor key|}}
<option value="{{actor.name}}" data-actor-id="{{actor._id}}" {{#if actor.selected}}selected{{/if}}>{{actor.name}}</option> <label class="flexrow">
<input type="checkbox" data-dtype="Boolean" class="select-actor"
data-actor-id="{{actor.id}}" {{#if actor.selected}}checked{{/if}} />
{{actor.name}}
</label>
{{/each}} {{/each}}
</select> </div>
</div> </div>
<hr>
</form> </form>

View File

@@ -12,13 +12,17 @@
<label for="immediat">Expérience immédiate</label> <label for="immediat">Expérience immédiate</label>
<input class="flex-shrink" type="checkbox" name="immediat" {{#if immediat}}checked{{/if}} /> <input class="flex-shrink" type="checkbox" name="immediat" {{#if immediat}}checked{{/if}} />
</div> </div>
<div class="form-group"> <div class="flexcol">
<label for="actors">Personnages concernés</label> <label>Personnages concernés</label>
<select class="select-actor" id="actors" size="7" multiple> <div class="grid-select-actor">
{{#each actors as |actor key|}} {{#each actors as |actor key|}}
<option value="{{actor.name}}" data-actor-id="{{actor._id}}" {{#if actor.selected}}selected{{/if}}>{{actor.name}}</option> <label class="flexrow">
<input type="checkbox" data-dtype="Boolean" class="select-actor"
data-actor-id="{{actor.id}}" {{#if actor.selected}}checked{{/if}} />
{{actor.name}}
</label>
{{/each}} {{/each}}
</select> </div>
</div> </div>
</div> </div>
</form> </form>

View File

@@ -9,25 +9,25 @@
<div class="flexcol"> <div class="flexcol">
<span><label class="alchimie-title">Manipulation : </label></span> <span><label class="alchimie-title">Manipulation : </label></span>
<div class="form-group medium-editor"> <div class="form-group medium-editor">
{{editor system.manipulation_update target="system.manipulation" button=true owner=owner editable=editable}} {{editor manipulation_update target="system.manipulation" button=true owner=owner editable=editable}}
</div> </div>
</div> </div>
<div class="flexcol"> <div class="flexcol">
<span><label class="alchimie-title">Utilisation : </label></span> <span><label class="alchimie-title">Utilisation : </label></span>
<div class="form-group small-editor"> <div class="form-group small-editor">
{{editor system.utilisation target="system.utilisation" button=true owner=owner editable=editable}} {{editor utilisation target="system.utilisation" button=true owner=owner editable=editable}}
</div> </div>
</div> </div>
<div class="flexcol"> <div class="flexcol">
<span><label class="alchimie-title">Enchantement : </label></span> <span><label class="alchimie-title">Enchantement : </label></span>
<div class="form-group small-editor"> <div class="form-group small-editor">
{{editor system.enchantement target="system.enchantement" button=true owner=owner editable=editable}} {{editor enchantement target="system.enchantement" button=true owner=owner editable=editable}}
</div> </div>
</div> </div>
<div class="flexcol"> <div class="flexcol">
<span><label class="alchimie-title">Sur-effet : </label></span> <span><label class="alchimie-title">Sur-effet : </label></span>
<div class="form-group small-editor"> <div class="form-group small-editor">
{{editor system.sureffet target="system.sureffet" button=true owner=owner editable=editable}} {{editor sureffet target="system.sureffet" button=true owner=owner editable=editable}}
</div> </div>
</div> </div>

View File

@@ -25,7 +25,7 @@
<div class="flexcol"> <div class="flexcol">
<span><label>Ingrédients : </label></span> <span><label>Ingrédients : </label></span>
<div class="form-group editor"> <div class="form-group editor">
{{editor system.ingredients target="system.ingredients" button=true owner=owner editable=editable}} {{editor ingredients target="system.ingredients" button=true owner=owner editable=editable}}
</div> </div>
</div> </div>

View File

@@ -25,7 +25,7 @@
{{!-- Description Tab --}} {{!-- Description Tab --}}
<div class="tab" data-group="primary" data-tab="description"> <div class="tab" data-group="primary" data-tab="description">
{{editor system.description target="system.description" button=true owner=owner editable=editable}} {{editor description target="system.description" button=true owner=owner editable=editable}}
</div> </div>
{{!-- Attributes Tab --}} {{!-- Attributes Tab --}}

View File

@@ -37,17 +37,21 @@
<input class="attribute-value" type="text" name="system.duree" value="{{system.duree}}" data-dtype="String" /> <input class="attribute-value" type="text" name="system.duree" value="{{system.duree}}" data-dtype="String" />
</div> </div>
{{/if}} {{/if}}
<label>Terres médianes</label>
<div class="form-group"> <div class="form-group">
<label for="tmrs">Terres médianes</label> <div class="grid-select-type-tmr">
<select class="select-tmr attribute-value" name="tmrs" id="tmrs" size={{tmrs.length}} multiple /> {{#each tmrs as |tmr key|}}
{{#each tmrs as |tmr key|}} <label class="flexrow">
<option class="option-tmr" value="{{tmr.name}}" {{#if tmr.selected}}selected{{/if}}>{{tmr.name}}</option> <input type="checkbox" data-dtype="Boolean" class="select-tmr"
{{/each}} data-tmr-name="{{tmr.name}}" {{#if tmr.selected}}checked{{/if}} />
</select> {{tmr.name}}
</label>
{{/each}}
</div>
</div> </div>
{{>"systems/foundryvtt-reve-de-dragon/templates/partial-item-description.html"}} {{>"systems/foundryvtt-reve-de-dragon/templates/partial-item-description.html"}}
</section> </section>
</form> </form>

View File

@@ -1,14 +1,14 @@
<div class="flexcol"> <div class="flexcol">
<span><label>Description : </label></span> <span><label>Description : </label></span>
<div class="form-group editor"> <div class="form-group editor">
{{editor system.description target="system.description" button=true owner=owner editable=editable}} {{editor description target="system.description" button=true owner=owner editable=editable}}
</div> </div>
</div> </div>
{{#if isGM}} {{#if isGM}}
<div class="flexcol"> <div class="flexcol">
<span><label>Description (MJ seulement): </label></span> <span><label>Description (MJ seulement): </label></span>
<div class="form-group editor"> <div class="form-group editor">
{{editor system.descriptionmj target="system.descriptionmj" button=true owner=owner editable=editable}} {{editor descriptionmj target="system.descriptionmj" button=true owner=owner editable=editable}}
</div> </div>
</div> </div>
{{/if}} {{/if}}