diff --git a/.gitignore b/.gitignore
index f60e6d39..9c14ae61 100644
--- a/.gitignore
+++ b/.gitignore
@@ -2,3 +2,4 @@
.idea
todo.txt
todo.md
+/.vscode
diff --git a/icons/heures/de-heures.webp b/icons/heures/de-heures.webp
new file mode 100644
index 00000000..7615d31b
Binary files /dev/null and b/icons/heures/de-heures.webp differ
diff --git a/icons/tmr/signe_draconique.webp b/icons/tmr/signe_draconique.webp
new file mode 100644
index 00000000..12b86aa1
Binary files /dev/null and b/icons/tmr/signe_draconique.webp differ
diff --git a/module/actor-sheet.js b/module/actor-sheet.js
index ab9de568..441e0222 100644
--- a/module/actor-sheet.js
+++ b/module/actor-sheet.js
@@ -223,6 +223,11 @@ export class RdDActorSheet extends ActorSheet {
const item = this.actor.items.get(li.data("item-id"));
item.sheet.render(true);
});
+ html.find('.display-label a').click((event) => {
+ let myID = event.currentTarget.attributes['data-item-id'].value;
+ const item = this.actor.getEmbeddedDocument('Item', myID);
+ item.sheet.render(true);
+ });
html.find('.rencontre-delete').click(ev => {
const li = $(ev.currentTarget).parents(".item");
const rencontreKey = li.data("item-id");
@@ -428,26 +433,6 @@ export class RdDActorSheet extends ActorSheet {
html.find('.enlever-tous-effets').click((event) => {
this.actor.enleverTousLesEffets();
});
- // Display info about queue
- html.find('.queuesouffle-label a').click((event) => {
- let myID = event.currentTarget.attributes['data-item-id'].value;
- const item = this.actor.getEmbeddedDocument('Item', myID);
- item.sheet.render(true);
- });
- // Info sort
- html.find('.sort-label a').click((event) => {
- let myID = event.currentTarget.attributes['data-id'].value;
- const item = this.actor.getEmbeddedDocument('Item', myID);
- item.sheet.render(true);
- });
- // Info sort
- html.find('.case-label a').click((event) => {
- let myID = event.currentTarget.attributes['data-id'].value;
- const item = this.actor.getEmbeddedDocument('Item', myID);
- item.sheet.render(true);
- });
-
- // Display info about queue
html.find('.conteneur-name a').click((event) => {
let myID = event.currentTarget.attributes['data-item-id'].value;
RdDUtility.toggleAfficheContenu(myID);
diff --git a/module/actor.js b/module/actor.js
index c63ff35d..5cc15454 100644
--- a/module/actor.js
+++ b/module/actor.js
@@ -19,6 +19,7 @@ import { RdDItemArme } from "./item-arme.js";
import { RdDAlchimie } from "./rdd-alchimie.js";
import { StatusEffects } from "./status-effects.js";
import { RdDItemCompetenceCreature } from "./item-competencecreature.js";
+import { RdDItemSigneDraconique } from "./item-signedraconique.js";
import { ReglesOptionelles } from "./regles-optionelles.js";
import { TMRRencontres } from "./tmr-rencontres.js";
import { Poetique } from "./poetique.js";
@@ -193,7 +194,7 @@ export class RdDActor extends Actor {
}
/* -------------------------------------------- */
isHautRevant() {
- return Misc.templateData(this).attributs.hautrevant.value != ""
+ return this.isPersonnage() && Misc.templateData(this).attributs.hautrevant.value != ""
}
/* -------------------------------------------- */
getFatigueActuelle() {
@@ -650,8 +651,7 @@ export class RdDActor extends Actor {
}
}
else {
- const roll = new Roll("1dr").evaluate();
- let deRecuperation = roll.total;
+ let deRecuperation = await RdDDice.rollTotal("1dr");
console.log("recuperationReve", deRecuperation);
if (deRecuperation >= 7) {
// Rêve de Dragon !
@@ -743,7 +743,7 @@ export class RdDActor extends Actor {
// TODO: un dialogue pour demander le type de tête?
rollData.tete = true;
}
- rollData.poesie = Poetique.getExtrait();
+ rollData.poesie = await Poetique.getExtrait();
ChatMessage.create({
whisper: ChatUtility.getWhisperRecipientsAndGMs(game.user.name),
@@ -1088,10 +1088,16 @@ export class RdDActor extends Actor {
/* -------------------------------------------- */
computeIsHautRevant() {
- const tplData = Misc.templateData(this);
- tplData.attributs.hautrevant.value = this.listItemsData('tete').find(it => Grammar.toLowerCaseNoAccent(it.name) == 'don de haut-reve')
- ? "Haut rêvant"
- : "";
+ if (this.isPersonnage()) {
+ Misc.templateData(this).attributs.hautrevant.value = this.hasItemNamed('tete', 'don de haut-reve')
+ ? "Haut rêvant"
+ : "";
+ }
+ }
+
+ hasItemNamed(type, name) {
+ name = Grammar.toLowerCaseNoAccent(name);
+ return this.listItemsData(type).find(it => Grammar.toLowerCaseNoAccent(it.name) == name);
}
/* -------------------------------------------- */
@@ -1184,7 +1190,7 @@ export class RdDActor extends Actor {
/* -------------------------------------------- */
async ajouterRefoulement(value = 1) {
let refoulement = Misc.templateData(this).reve.refoulement.value + value;
- let total = new Roll("1d20").evaluate({ async: false }).total;
+ let total = await RdDDice.rollTotal("1d20");
if (total <= refoulement) {
refoulement = 0;
await this.ajouterSouffle({ chat: true });
@@ -1266,7 +1272,7 @@ export class RdDActor extends Actor {
whisper: ChatUtility.getWhisperRecipientsAndGMs(game.user.name)
});
const innaccessible = this.buildTMRInnaccessible();
- let tmr = TMRUtility.getTMRAleatoire(tmr => !innaccessible.includes(tmr.coord));
+ let tmr = await TMRUtility.getTMRAleatoire(tmr => !innaccessible.includes(tmr.coord));
this.updateCoordTMR(tmr.coord);
this.cacheTMR();
return tmr;
@@ -1395,25 +1401,6 @@ export class RdDActor extends Actor {
return RdDCarac.calculSConst(Misc.templateData(this).carac.constitution.value);
}
- /* -------------------------------------------- */
- async testSiSonne(sante, endurance) {
- const roll = new Roll("1d20").evaluate();
- roll.showDice = true;
- RdDDice.show(roll);
- let result = {
- roll: roll,
- sonne: roll.total > endurance || roll.total == 20 // 20 is always a failure
- }
- if (roll.total == 1) {
- await this.ajoutXpConstitution(1); // +1 XP !
- ChatMessage.create({ content: `${this.name} a obenu 1 sur son Jet d'Endurance et a gagné 1 point d'Expérience en Constitution. Ce point d'XP a été ajouté automatiquement).` });
- }
- if (result.sonne) {
- await this.setSonne();
- sante.sonne.value = true;
- }
- return result;
- }
async ajoutXpConstitution(xp) {
await this.update({ "data.carac.constitution.xp": Misc.toInt(Misc.templateData(this).carac.constitution.xp) + xp });
@@ -1428,48 +1415,71 @@ export class RdDActor extends Actor {
return this.countBlessures(Misc.templateData(this).blessures[name].liste);
}
+
+ /* -------------------------------------------- */
+ async testSiSonne(sante, endurance) {
+ const result = await this._jetEndurance(endurance);
+ if (result.roll.total == 1) {
+ ChatMessage.create({ content: await this._gainXpConstitutionJetEndurance() });
+ }
+ sante.sonne.value ||= result.sonne;
+ return result;
+ }
+
/* -------------------------------------------- */
async jetEndurance() {
- let myRoll = new Roll("1d20").roll();
- myRoll.showDice = true;
- await RdDDice.show(myRoll);
-
const actorData = Misc.data(this);
- let msgText = "Jet d'Endurance : " + myRoll.total + " / " + actorData.data.sante.endurance.value + "
";
- if (myRoll.total == 1 || (myRoll.total != 20 && myRoll.total <= actorData.data.sante.endurance.value)) {
- msgText += `${this.name} a réussi son Jet d'Endurance !`;
- if (myRoll.total == 1) {
- await this.ajoutXpConstitution();
- msgText += `et gagne 1 Point d'Experience en Constitution`;
- }
- } else {
- await this.setSonne();
- msgText += `${this.name} a échoué son Jet d'Endurance et devient Sonné`;
- }
+ const endurance = actorData.data.sante.endurance.value;
+
+ const result = await this._jetEndurance(actorData.data.sante.endurance.value)
const message = {
- content: msgText,
+ content: "Jet d'Endurance : " + result.roll.total + " / " + endurance + "
",
whisper: ChatMessage.getWhisperRecipients(game.user.name)
};
+ if (result.sonne) {
+ message.content += `${this.name} a échoué son Jet d'Endurance et devient Sonné`;
+ }
+ else if (result.roll.total == 1) {
+ message.content += await this._gainXpConstitutionJetEndurance();
+ }
+ else {
+ message.content += `${this.name} a réussi son Jet d'Endurance !`;
+ }
+
ChatMessage.create(message);
}
+ async _gainXpConstitutionJetEndurance() {
+ await this.ajoutXpConstitution(1); // +1 XP !
+ return `${this.name} a obtenu 1 sur son Jet d'Endurance et a gagné 1 point d'Expérience en Constitution. Ce point d'XP a été ajouté automatiquement.`;
+ }
+
+ async _jetEndurance(endurance) {
+ const roll = await RdDDice.roll("1d20", { showDice: true });
+ let result = {
+ roll: roll,
+ sonne: roll.total > endurance || roll.total == 20 // 20 is always a failure
+ }
+ if (result.sonne) {
+ await this.setSonne();
+ }
+ return result;
+ }
+
/* -------------------------------------------- */
async jetVie() {
- let myRoll = new Roll("1d20").roll();
- myRoll.showDice = true;
- await RdDDice.show(myRoll);
-
+ let roll = await RdDDice.roll("1d20", { showDice: true });
const actorData = Misc.data(this);
- let msgText = "Jet de Vie : " + myRoll.total + " / " + actorData.data.sante.vie.value + "
";
- if (myRoll.total <= actorData.data.sante.vie.value) {
+ let msgText = "Jet de Vie : " + roll.total + " / " + actorData.data.sante.vie.value + "
";
+ if (roll.total <= actorData.data.sante.vie.value) {
msgText += "Jet réussi, pas de perte de point de vie (prochain jet dans 1 round pour 1 critique, SC minutes pour une grave)";
- if (myRoll.total == 1) {
+ if (roll.total == 1) {
msgText += "La durée entre 2 jets de vie est multipliée par 20 (20 rounds pour une critique, SCx20 minutes pour une grave)";
}
} else {
msgText += "Jet échoué, vous perdez 1 point de vie";
await this.santeIncDec("vie", -1);
- if (myRoll.total == 20) {
+ if (roll.total == 20) {
msgText += "Votre personnage est mort !!!!!";
}
}
@@ -1482,7 +1492,7 @@ export class RdDActor extends Actor {
/* -------------------------------------------- */
async santeIncDec(name, inc, options = { isCritique: false, ethylisme: false }) {
- if (name=='fatigue' && !ReglesOptionelles.isUsing("appliquer-fatigue")) {
+ if (name == 'fatigue' && !ReglesOptionelles.isUsing("appliquer-fatigue")) {
return;
}
const sante = duplicate(Misc.templateData(this).sante);
@@ -1582,8 +1592,7 @@ export class RdDActor extends Actor {
/* -------------------------------------------- */
async jetDeMoral(situation, messageReussi = undefined, messageManque = undefined) {
- let jetMoral = new Roll("1d20").roll();
- RdDDice.show(jetMoral);
+ let jetMoral = await RdDDice.roll("1d20", { showDice: true });
let moralActuel = Misc.toInt(Misc.templateData(this).compteurs.moral.value);
const difficulte = 10 + moralActuel;
const succes = jetMoral.total <= difficulte;
@@ -1687,11 +1696,11 @@ export class RdDActor extends Actor {
RdDResolutionTable.displayRollData(jetVieView, this, 'chat-resultat-ethylisme.html');
if (rollEthylisme.isEchec) {
- let enduranceLostRoll = new Roll("1d6").roll();
+ let enduranceLostRoll = await RdDDice.roll("1d6");
// enduranceLostRoll.showDice = true;
RdDDice.show(enduranceLostRoll);
let enduranceLost = enduranceLostRoll.total;
- let perteEndurance = await this.santeIncDec("endurance", -enduranceLost, {ethylisme: true});
+ let perteEndurance = await this.santeIncDec("endurance", -enduranceLost, { ethylisme: true });
let jetEnduranceView = {
ethylismeEtape: 'Endurance',
enduranceLost: perteEndurance.perte,
@@ -1725,7 +1734,7 @@ export class RdDActor extends Actor {
RdDResolutionTable.displayRollData(jetVolonteView, this, 'chat-resultat-ethylisme.html');
}
- await this.update({'data.compteurs.ethylisme': ethylisme});
+ await this.update({ 'data.compteurs.ethylisme': ethylisme });
}
/* -------------------------------------------- */
@@ -2097,9 +2106,11 @@ export class RdDActor extends Actor {
let draconicList = this.computeDraconicAndSortIndex(sortList);
const actorData = Misc.data(this);
+ const reve = duplicate(actorData.data.carac.reve);
let rollData = {
- forceCarac: { 'reve': duplicate(actorData.data.carac.reve) },
- selectedCarac: duplicate(actorData.data.carac.reve),
+ carac: { 'reve': reve },
+ forceCarac: { 'reve': reve },
+ selectedCarac: reve,
draconicList: draconicList,
sortList: sortList,
competence: draconicList[0],
@@ -2107,10 +2118,8 @@ export class RdDActor extends Actor {
tmr: TMRUtility.getTMR(coord),
diffLibre: RdDItemSort.getDifficulte(sortList[0], -7), // Per default at startup
coutreve: Array(30).fill().map((item, index) => 1 + index),
- carac: { 'reve': duplicate(actorData.data.carac.reve) }
}
- if (this.currentTMR) this.currentTMR.minimize(); // Hide
const dialog = await RdDRoll.create(this, rollData,
{
html: 'systems/foundryvtt-reve-de-dragon/templates/dialog-roll-sort.html',
@@ -2283,7 +2292,7 @@ export class RdDActor extends Actor {
RdDResolutionTable.displayRollData(rollData, this)
return rollData.rolled;
}
-
+
/* -------------------------------------------- */
_appliquerExperienceRollData(rollData) {
const callback = this.createCallbackExperience();
@@ -2320,6 +2329,11 @@ export class RdDActor extends Actor {
dialog.render(true);
}
+ /* -------------------------------------------- */
+ async _competenceResult(rollData) {
+ RdDResolutionTable.displayRollData(rollData, this, 'chat-resultat-competence.html')
+ }
+
/* -------------------------------------------- */
async creerTacheDepuisLivre(item, options = { renderSheet: true }) {
const itemData = Misc.data(item);
@@ -2544,24 +2558,15 @@ export class RdDActor extends Actor {
/* -------------------------------------------- */
async rollMeditation(id) {
let meditation = Misc.data(this.getMeditation(id));
- let competence = Misc.data(this.getCompetence(meditation.data.competence));
- competence.data.defaut_carac = "intellect"; // Meditation = tjs avec intellect
let meditationData = {
- competence: competence,
- meditation: meditation,
- conditionMeditation: {
- isHeure: false,
- isVeture: false,
- isComportement: false,
- isPurification: false,
- },
+ competence: duplicate(Misc.data(this.getCompetence(meditation.data.competence))),
+ meditation: duplicate(meditation),
+ conditionMeditation: { isHeure: false, isVeture: false, isComportement: false, isPurification: false },
diffConditions: 0,
use: { libre: false, conditions: true, },
- carac: {}
+ carac: { "intellect": Misc.templateData(this).carac.intellect }
};
- meditationData.carac["intellect"] = Misc.templateData(this).carac["intellect"];
-
- console.log("rollMeditation !!!", meditationData);
+ meditationData.competence.data.defaut_carac = "intellect"; // Meditation = tjs avec intellect
const dialog = await RdDRoll.create(this, meditationData,
{
@@ -2573,7 +2578,7 @@ export class RdDActor extends Actor {
label: "Jet de méditation",
callbacks: [
this.createCallbackExperience(),
- { condition: r => r.rolled.isETotal, action: r => this._meditationETotal(r) },
+ { condition: r => r.rolled.isEPart, action: r => this._meditationEPart(r) },
{ action: r => this._meditationResult(r) }
]
});
@@ -2584,27 +2589,92 @@ export class RdDActor extends Actor {
async _meditationResult(meditationData) {
this.santeIncDec("fatigue", 2);
- meditationData.diffLecture = -7;
- if (meditationData.rolled.isPart)
- meditationData.diffLecture = 0;
- else if (meditationData.rolled.isSign)
- meditationData.diffLecture = -3;
+ const signeData = RdDItemSigneDraconique.prepareSigneDraconiqueMeditation(meditationData.meditation, meditationData.rolled)
+ if (signeData) {
+ await this.createEmbeddedDocuments("Item", [signeData]);
+ }
RdDResolutionTable.displayRollData(meditationData, this.name, 'chat-resultat-meditation.html');
}
/* -------------------------------------------- */
- _meditationETotal(meditationData) {
- meditationData.meditation.data.malus--;
- this.updateEmbeddedDocuments('Item', [meditationData.meditation]);
+ _meditationEPart(meditationData) {
+ this.updateEmbeddedDocuments('Item', [{ _id: meditation._id, 'data.malus': meditationData.meditation.data.malus - 1 }]);
+ }
+
+
+ /* -------------------------------------------- */
+ _getSignesDraconiques(coord) {
+ const type = TMRUtility.getTMRType(coord);
+ return this.listItemsData("signedraconique").filter(it => it.data.typesTMR.includes(type));
}
/* -------------------------------------------- */
- async _competenceResult(rollData) {
- RdDResolutionTable.displayRollData(rollData, this, 'chat-resultat-competence.html')
+ isResonanceSigneDraconique(coord) {
+ return this._getSignesDraconiques(coord).length > 0;
}
- async _moralDecrease(rollData) {
- RdDResolutionTable.displayRollData(rollData, this, 'chat-resultat-competence.html')
+
+ /* -------------------------------------------- */
+ async rollLireSigneDraconique(coord) {
+ if (!this.isHautRevant()) {
+ ui.notifications.info("Seul un haut rêvant peut lire un signe draconique!");
+ return;
+ }
+ let signes = this._getSignesDraconiques(coord);
+ if (signes.length == 0) {
+ ui.notifications.info(`Aucun signe draconiques en ${coord} !`);
+ return;
+ }
+ if (this.currentTMR) this.currentTMR.minimize(); // Hide
+
+ let draconicList = this.getDraconicList()
+ .map(draconic => duplicate(Misc.data(draconic)))
+ .map(draconic => { draconic.data.defaut_carac = "intellect"; return draconic; });
+
+ const intellect = Misc.templateData(this).carac.intellect;
+ let rollData = {
+ carac: { 'intellect': intellect },
+ selectedCarac: intellect,
+ competence: draconicList[0],
+ draconicList: draconicList,
+ signe: signes[0],
+ signes: signes,
+ tmr: TMRUtility.getTMR(coord),
+ diffLibre: Misc.data(signes[0]).data.difficulte,
+ }
+
+ const dialog = await RdDRoll.create(this, rollData,
+ {
+ html: 'systems/foundryvtt-reve-de-dragon/templates/dialog-roll-signedraconique.html',
+ options: { height: 600 },
+ close: html => { this.currentTMR.maximize() } // Re-display TMR
+ },
+ {
+ name: 'lire-signe-draconique',
+ label: 'Lire le signe draconique',
+ callbacks: [
+ this.createCallbackExperience(),
+ { action: r => this._rollLireSigneDraconique(r) }
+ ]
+ }
+ );
+ dialog.render(true);
+ }
+
+ /* -------------------------------------------- */
+ async _rollLireSigneDraconique(rollData) {
+ const compData = rollData.competence;
+ if (!RdDItemCompetence.isDraconic(compData)) {
+ ui.notifications.error(`La compétence ${compData.name} n'est pas une compétence draconique`);
+ return;
+ }
+ rollData.xpSort = RdDItemSigneDraconique.getXpSortSigneDraconique(rollData.rolled.code, rollData.signe);
+ if (rollData.xpSort > 0) {
+ await this.updateEmbeddedDocuments("Item", [{ _id: compData._id, 'data.xp_sort': Misc.toInt(compData.data.xp_sort) + rollData.xpSort }]);
+ }
+ await this.deleteEmbeddedDocuments("Item", [rollData.signe._id]);
+ RdDResolutionTable.displayRollData(rollData, this.name, 'chat-resultat-lecture-signedraconique.html');
+ this.currentTMR.close();
}
/* -------------------------------------------- */
@@ -2840,6 +2910,7 @@ export class RdDActor extends Actor {
fatigue: RdDUtility.calculFatigueHtml(fatigue, endurance),
draconic: this.getDraconicList(),
sort: this.getSortList(),
+ signes: this.listItemsData("signedraconique"),
caracReve: actorData.data.carac.reve.value,
pointsReve: this.getReveActuel(),
isRapide: isRapide
@@ -2904,14 +2975,14 @@ export class RdDActor extends Actor {
}
/* -------------------------------------------- */
- computeArmure(attackerRoll) {
+ async computeArmure(attackerRoll) {
let dmg = (attackerRoll.dmg.dmgArme ?? 0) + (attackerRoll.dmg.dmgActor ?? 0);
let armeData = attackerRoll.arme;
let protection = 0;
const armures = this.items.map(it => Misc.data(it))
.filter(it => it.type == "armure" && it.data.equipe);
for (const itemData of armures) {
- protection += new Roll(itemData.data.protection.toString()).roll().total;
+ protection += await RdDDice.rollTotal(itemData.data.protection.toString());
if (dmg > 0) {
this._deteriorerArmure(itemData, dmg);
dmg = 0;
@@ -2972,7 +3043,7 @@ export class RdDActor extends Actor {
console.log("encaisserDommages", rollData)
let santeOrig = duplicate(Misc.templateData(this).sante);
- let encaissement = this.jetEncaissement(rollData);
+ let encaissement = await this.jetEncaissement(rollData);
this.ajouterBlessure(encaissement); // Will upate the result table
const perteVie = this.isEntiteCauchemar()
@@ -3011,29 +3082,34 @@ export class RdDActor extends Actor {
}
/* -------------------------------------------- */
- jetEncaissement(rollData) {
- const roll = new Roll("2d10").roll();
- roll.showDice = true;
- RdDDice.show(roll, game.settings.get("core", "rollMode"));
+ async jetEncaissement(rollData) {
+ const roll = await RdDDice.roll("2d10", { showDice: true });
- const armure = this.computeArmure(rollData);
+ const armure = await this.computeArmure(rollData);
const jetTotal = roll.total + rollData.dmg.total - armure;
let encaissement = RdDUtility.selectEncaissement(jetTotal, rollData.dmg.mortalite)
let over20 = Math.max(jetTotal - 20, 0);
encaissement.dmg = rollData.dmg;
- encaissement.dmg.loc = rollData.dmg.loc ?? RdDUtility.getLocalisation(this.data.type);
+ encaissement.dmg.loc = rollData.dmg.loc ?? await RdDUtility.getLocalisation(this.data.type);
encaissement.dmg.loc.label = encaissement.dmg.loc.label ?? 'Corps;'
encaissement.roll = roll;
encaissement.armure = armure;
encaissement.total = jetTotal;
- encaissement.vie = RdDUtility._evaluatePerte(encaissement.vie, over20);
- encaissement.endurance = RdDUtility._evaluatePerte(encaissement.endurance, over20);
+ encaissement.vie = await RdDActor._evaluatePerte(encaissement.vie, over20);
+ encaissement.endurance = await RdDActor._evaluatePerte(encaissement.endurance, over20);
encaissement.penetration = rollData.arme?.data.penetration ?? 0;
return encaissement;
}
+ /* -------------------------------------------- */
+ static async _evaluatePerte(formula, over20) {
+ let perte = new Roll(formula, { over20: over20 });
+ await perte.evaluate({ async: true });
+ return perte.total;
+ }
+
/* -------------------------------------------- */
ajouterBlessure(encaissement) {
const actorData = Misc.data(this);
@@ -3306,7 +3382,7 @@ export class RdDActor extends Actor {
/* -------------------------------------------- */
async achatVente(vendeurId, acheteurId, venteData, chatMessageIdVente) {
- if (vendeurId == acheteurId){
+ if (vendeurId == acheteurId) {
ui.notifications.info("Inutile de se vendre à soi-même");
return;
}
@@ -3615,7 +3691,7 @@ export class RdDActor extends Actor {
potionData.reussiteReve = true;
potionData.aphasiePermanente = false;
if (potionData.data.reposalchimique) {
- let chanceAphasie = new Roll("1d100").evaluate({ async: false }).total;
+ let chanceAphasie = await RdDDice.rollTotal("1d100");
if (chanceAphasie <= potionData.data.pr) {
potionData.aphasiePermanente = true;
}
diff --git a/module/dialog-create-signedraconique.js b/module/dialog-create-signedraconique.js
new file mode 100644
index 00000000..6b3c8919
--- /dev/null
+++ b/module/dialog-create-signedraconique.js
@@ -0,0 +1,116 @@
+import { ChatUtility } from "./chat-utility.js";
+import { HtmlUtility } from "./html-utility.js";
+import { RdDItemSigneDraconique } from "./item-signedraconique.js";
+import { Misc } from "./misc.js";
+import { RdDRollTables } from "./rdd-rolltables.js";
+import { TMRType, TMRUtility } from "./tmr-utility.js";
+
+export class DialogCreateSigneDraconique extends Dialog {
+
+ static async createSigneForActors() {
+ const signe = await RdDItemSigneDraconique.randomSigneDraconique();
+ let dialogData = {
+ signe: signe,
+ tmrs: TMRUtility.listSelectedTMR(signe.data.typesTMR ?? []),
+ actors: game.actors.filter(actor => actor.isHautRevant()).map(actor => {
+ let actorData = duplicate(Misc.data(actor));
+ actorData.selected = actor.hasPlayerOwner;
+ return actorData;
+ })
+ };
+
+ const html = await renderTemplate("systems/foundryvtt-reve-de-dragon/templates/dialog-create-signedraconique.html", dialogData);
+ new DialogCreateSigneDraconique(dialogData, html)
+ .render(true);
+ }
+
+ constructor(dialogData, html, callback) {
+ let options = { classes: ["DialogCreateSigneDraconiqueActorsActors"], width: 500, height: 650, 'z-index': 99999 };
+ let conf = {
+ title: "Créer un signe",
+ content: html,
+ default: "Ajouter aux haut-rêvants",
+ buttons: {
+ "Ajouter aux haut-rêvants": { label: "Ajouter aux haut-rêvants", callback: it => { this._onCreerSigneActeurs(); } }
+ }
+ };
+ super(conf, options);
+ this.dialogData = dialogData;
+ }
+
+ async _onCreerSigneActeurs() {
+ this.validerSigne();
+ this.dialogData.actors.filter(it => it.selected).map(it => game.actors.get(it._id))
+ .forEach(actor => this._createSigneForActor(actor, this.dialogData.signe));
+ }
+
+ async _createSigneForActor(actor, signe) {
+ actor.createEmbeddedDocuments("Item", [signe]);
+ ChatMessage.create({
+ whisper: ChatUtility.getWhisperRecipientsAndGMs(Misc.data(actor).name),
+ content: await renderTemplate("systems/foundryvtt-reve-de-dragon/templates/chat-signe-draconique-actor.html", {
+ signe: signe,
+ alias: Misc.data(actor).name
+ })
+ });
+ }
+
+ validerSigne() {
+ this.dialogData.signe.name = $("[name='signe.name']").val();
+ this.dialogData.signe.data.valeur.norm = $("[name='signe.data.valeur.norm']").val();
+ this.dialogData.signe.data.valeur.sign = $("[name='signe.data.valeur.sign']").val();
+ this.dialogData.signe.data.valeur.part = $("[name='signe.data.valeur.part']").val();
+ this.dialogData.signe.data.difficulte = $("[name='signe.data.difficulte']").val();
+ this.dialogData.signe.data.ephemere = $("[name='signe.data.ephemere']").prop("checked");
+ this.dialogData.signe.data.duree = $("[name='signe.data.duree']").val();
+ this.dialogData.signe.data.typesTMR = $(".select-tmr").val();
+ }
+
+ /* -------------------------------------------- */
+ activateListeners(html) {
+ super.activateListeners(html);
+ this.setEphemere(this.dialogData.signe.data.ephemere);
+ html.find(".signe-aleatoire").click(event => this.setSigneAleatoire());
+ html.find("[name='signe.data.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));
+ }
+ async setSigneAleatoire() {
+ const newSigne = await RdDItemSigneDraconique.randomSigneDraconique();
+
+ $("[name='signe.name']").val(newSigne.name);
+ $("[name='signe.data.valeur.norm']").val(newSigne.data.valeur.norm);
+ $("[name='signe.data.valeur.sign']").val(newSigne.data.valeur.sign);
+ $("[name='signe.data.valeur.part']").val(newSigne.data.valeur.part);
+ $("[name='signe.data.difficulte']").val(newSigne.data.difficulte);
+ $("[name='signe.data.duree']").val(newSigne.data.duree);
+ $("[name='signe.data.ephemere']").prop("checked", newSigne.data.ephemere);
+ $(".select-tmr").val(newSigne.data.typesTMR);
+ this.setEphemere(newSigne.data.ephemere);
+ }
+
+ async setEphemere(ephemere) {
+ this.dialogData.signe.data.ephemere = ephemere;
+ HtmlUtility._showControlWhen($(".signe-data-duree"), ephemere);
+ }
+
+ async onSelectActor(event) {
+ event.preventDefault();
+ const options = event.currentTarget.options;
+ for (var i = 0; i < options.length; i++) { // looping over the options
+ const actorId = options[i].attributes["data-actor-id"].value;
+ const actor = this.dialogData.actors.find(it => it._id == actorId);
+ if (actor) {
+ actor.selected = options[i].selected;
+ }
+ };
+ }
+
+ onValeurXpSort(event) {
+ const codeReussite = event.currentTarget.attributes['data-typereussite']?.value ?? 0;
+ const xp = Number(event.currentTarget.value);
+ const oldValeur = this.dialogData.signe.data.valeur;
+ this.dialogData.signe.data.valeur = RdDItemSigneDraconique.calculValeursXpSort(codeReussite, xp, oldValeur);
+ }
+
+}
\ No newline at end of file
diff --git a/module/item-sheet.js b/module/item-sheet.js
index 7a926413..cdecc0b6 100644
--- a/module/item-sheet.js
+++ b/module/item-sheet.js
@@ -51,8 +51,9 @@ export class RdDItemSheet extends ItemSheet {
/** @override */
setPosition(options = {}) {
const position = super.setPosition(options);
+ const sheetHeader = this.element.find(".sheet-header");
const sheetBody = this.element.find(".sheet-body");
- const bodyHeight = position.height - 192;
+ const bodyHeight = position.height - sheetHeader[0].clientHeight;
sheetBody.css("height", bodyHeight);
return position;
}
diff --git a/module/item-signedraconique-sheet.js b/module/item-signedraconique-sheet.js
new file mode 100644
index 00000000..5e3acade
--- /dev/null
+++ b/module/item-signedraconique-sheet.js
@@ -0,0 +1,104 @@
+import { RdDItemSigneDraconique } from "./item-signedraconique.js";
+import { Misc } from "./misc.js";
+import { TMRType, TMRUtility } from "./tmr-utility.js";
+
+/**
+ * Item sheet pour signes draconiques
+ * @extends {ItemSheet}
+ */
+export class RdDSigneDraconiqueItemSheet extends ItemSheet {
+
+ /** @override */
+ static get defaultOptions() {
+ return mergeObject(super.defaultOptions, {
+ classes: ["foundryvtt-reve-de-dragon", "sheet", "item"],
+ template: "systems/foundryvtt-reve-de-dragon/templates/item-signedraconique-sheet.html",
+ width: 550,
+ height: 550
+ });
+ }
+
+ /* -------------------------------------------- */
+ _getHeaderButtons() {
+ let buttons = super._getHeaderButtons();
+ buttons.unshift({ class: "post", icon: "fas fa-comment", onclick: ev => this.item.postItem() });
+ return buttons;
+ }
+
+ /* -------------------------------------------- */
+ /** @override */
+ setPosition(options = {}) {
+ const position = super.setPosition(options);
+ const sheetHeader = this.element.find(".sheet-header");
+ const sheetBody = this.element.find(".sheet-body");
+ const bodyHeight = position.height - sheetHeader[0].clientHeight;
+ sheetBody.css("height", bodyHeight);
+ return position;
+ }
+
+
+ /* -------------------------------------------- */
+ async getData() {
+ const formData = duplicate(Misc.data(this.object));
+ mergeObject(formData, {
+ title: formData.name,
+ isGM: game.user.isGM,
+ owner: this.document.isOwner,
+ isOwned: this.actor ? true : false,
+ actorId: this.actor?.id,
+ editable: this.isEditable,
+ cssClass: this.isEditable ? "editable" : "locked",
+ });
+ formData.tmrs = TMRUtility.listSelectedTMR(formData.data.typesTMR ?? []);
+ return formData;
+ }
+
+ /* -------------------------------------------- */
+ /** @override */
+ activateListeners(html) {
+ super.activateListeners(html);
+
+ if (!this.options.editable) return;
+
+ html.find(".signe-aleatoire").click(event => this.setSigneAleatoire());
+ html.find(".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)));
+ }
+
+ async setSigneAleatoire() {
+ const newSigne = await RdDItemSigneDraconique.randomSigneDraconique();
+ // $("[name='signe.name']").val(newSigne.name);
+ // $("[name='signe.data.valeur.norm']").val(newSigne.data.valeur.norm);
+ // $("[name='signe.data.valeur.sign']").val(newSigne.data.valeur.sign);
+ // $("[name='signe.data.valeur.part']").val(newSigne.data.valeur.part);
+ // $("[name='signe.data.difficulte']").val(newSigne.data.difficulte);
+ // $("[name='signe.data.duree']").val(newSigne.data.duree);
+ // $("[name='signe.data.ephemere']").prop("checked", newSigne.data.ephemere);
+ // $(".select-tmr").val(newSigne.data.typesTMR);
+ // this.setEphemere(newSigne.data.ephemere);
+ this.object.update(newSigne);
+ }
+
+ async onSelectTmr(event) {
+ event.preventDefault();
+ const selectedTMR = $(".select-tmr").val();
+ this.object.update({ 'data.typesTMR': selectedTMR });
+ }
+
+ async onValeurXpSort(event) {
+ const codeReussite = event.currentTarget.attributes['data-typereussite']?.value ?? 0;
+ const xp = Number(event.currentTarget.value);
+ const oldValeur = Misc.templateData(this.object).valeur;
+ const newValeur = RdDItemSigneDraconique.calculValeursXpSort(codeReussite, xp, oldValeur);
+ await this.object.update({ 'data.valeur': newValeur });
+ }
+
+ /* -------------------------------------------- */
+ get template() {
+ return `systems/foundryvtt-reve-de-dragon/templates/item-signedraconique-sheet.html`;
+ }
+
+ get title() {
+ return `Signe draconique: ${this.object.name}`;
+ }
+}
diff --git a/module/item-signedraconique.js b/module/item-signedraconique.js
new file mode 100644
index 00000000..2cba4175
--- /dev/null
+++ b/module/item-signedraconique.js
@@ -0,0 +1,100 @@
+import { Misc } from "./misc.js";
+import { RdDDice } from "./rdd-dice.js";
+import { RdDRollTables } from "./rdd-rolltables.js";
+import { TMRType } from "./tmr-utility.js";
+
+const tableSignesIndicatifs = [
+ { rarete: "Très facile", difficulte: 0, xp: 6, nbCases: 14 },
+ { rarete: "Facile", difficulte: -2, xp: 10, nbCases: 10 },
+ { rarete: "Moyen", difficulte: -3, xp: 15, nbCases: 7 },
+ { rarete: "Difficile", difficulte: -5, xp: 20, nbCases: 4 },
+ { rarete: "Ardu", difficulte: -8, xp: 30, nbCases: 1 }
+
+]
+export class RdDItemSigneDraconique {
+
+ static prepareSigneDraconiqueMeditation(meditation, rolled) {
+ if (rolled.isSuccess != undefined) {
+ meditation = Misc.data(meditation);
+ return {
+ name: "de la " + meditation.name,
+ type: "signedraconique",
+ img: meditation.img,
+ data: {
+ "typesTMR": [Misc.upperFirst(meditation.data.tmr)],
+ "difficulte": RdDItemSigneDraconique.getDiffSigneMeditation(rolled.code),
+ "ephemere": true,
+ "duree": "1 round",
+ "valeur": { "norm": 3, "sign": 5, "part": 10 }
+ }
+ };
+ }
+ return undefined;
+ }
+
+ static getDiffSigneMeditation(code) {
+ switch (code) {
+ case "norm": return -7;
+ case "sign": return -3;
+ case "part": return 0;
+ }
+ return undefined;
+ }
+
+ static getXpSortSigneDraconique(code, signe) {
+ return Misc.data(signe).data.valeur[code] ?? 0;
+ }
+
+ static calculValeursXpSort(qualite, valeur, avant) {
+ switch (qualite) {
+ case "norm":
+ return {
+ norm: valeur,
+ sign: Math.max(valeur, avant.sign),
+ part: Math.max(valeur, avant.part)
+ }
+ case "sign":
+ return {
+ norm: Math.min(valeur, avant.norm),
+ sign: valeur,
+ part: Math.max(valeur, avant.part)
+ }
+ case "part":
+ return {
+ norm: Math.min(valeur, avant.norm),
+ sign: Math.min(valeur, avant.sign),
+ part: valeur
+ }
+ }
+ }
+
+ static async randomSigneDraconique() {
+ let modele = await RdDDice.rollOneOf(tableSignesIndicatifs);
+ return {
+ name: await RdDItemSigneDraconique.randomSigneDescription(),
+ type: "signedraconique",
+ img: 'systems/foundryvtt-reve-de-dragon/icons/tmr/signe_draconique.webp',
+ data: {
+ typesTMR: await RdDItemSigneDraconique.randomTmrs(modele.nbCases),
+ ephemere: true,
+ duree: "1 round",
+ difficulte: modele.difficulte,
+ valeur: { norm: modele.xp, sign: modele.xp, part: Math.floor(modele.xp * 1.5) },
+ }
+ };
+ }
+
+ static async randomTmrs(nbTmr = undefined) {
+ let tmrs = Object.values(TMRType).map(value => Misc.upperFirst(value.name));
+ let keep = nbTmr ?? (await RdDDice.rollTotal("1d" + TMRType.length) + 1);
+ for (let i = tmrs.length; i > keep; i--) {
+ tmrs.splice(await RdDDice.rollTotal("1d" + i), 1);
+ }
+ return tmrs;
+ }
+
+ static async randomSigneDescription() {
+ return await RdDRollTables.drawTextFromRollTable("Signes draconiques", false);
+ }
+
+}
\ No newline at end of file
diff --git a/module/item.js b/module/item.js
index 75610267..98bda21f 100644
--- a/module/item.js
+++ b/module/item.js
@@ -25,6 +25,7 @@ export class RdDItem extends Item {
isConteneur() {
return Misc.data(this).type == 'conteneur';
}
+
isVide() {
return this.isConteneur() && (Misc.templateData(this).contenu ?? []).length == 0;
}
diff --git a/module/misc.js b/module/misc.js
index 68269af3..09114a98 100644
--- a/module/misc.js
+++ b/module/misc.js
@@ -1,3 +1,4 @@
+import { RdDDice } from "./rdd-dice.js";
/**
* This class is intended as a placeholder for utility methods unrelated
@@ -22,13 +23,13 @@ export class Misc {
return (a, b) => a + b;
}
- static ascending(orderFunction = x=>x) {
+ static ascending(orderFunction = x => x) {
return (a, b) => Misc.sortingBy(orderFunction(a), orderFunction(b));
- }
+ }
- static descending(orderFunction = x=>x) {
+ static descending(orderFunction = x => x) {
return (a, b) => Misc.sortingBy(orderFunction(b), orderFunction(a));
- }
+ }
static sortingBy(a, b) {
if (a > b) return 1;
@@ -49,7 +50,7 @@ export class Misc {
}
static keepDecimals(num, decimals) {
- if (decimals<=0 || decimals>6) return num;
+ if (decimals <= 0 || decimals > 6) return num;
const decimal = Math.pow(10, parseInt(decimals));
return Math.round(num * decimal) / decimal;
}
@@ -92,10 +93,6 @@ export class Misc {
}
}
- static rollOneOf(array) {
- return array[new Roll("1d" + array.length).evaluate({ async: false }).total - 1];
- }
-
static distinct(array) {
return [...new Set(array)];
}
@@ -112,7 +109,7 @@ export class Misc {
}
static connectedGMOrUser(ownerId = undefined) {
- if (ownerId && game.user.id == ownerId){
+ if (ownerId && game.user.id == ownerId) {
return ownerId;
}
return (game.user.isGM ? game.user.id : game.users.entities.find(u => u.isGM && u.active)?.id) ?? game.user.id;
diff --git a/module/poetique.js b/module/poetique.js
index ec2e55b2..7edde996 100644
--- a/module/poetique.js
+++ b/module/poetique.js
@@ -1,4 +1,5 @@
import { Misc } from "./misc.js"
+import { RdDDice } from "./rdd-dice.js";
const poesieHautReve = [
{
@@ -64,8 +65,8 @@ const poesieHautReve = [
]
export class Poetique {
- static getExtrait(){
- return Misc.rollOneOf(poesieHautReve);
+ static async getExtrait(){
+ return await RdDDice.rollOneOf(poesieHautReve);
}
}
\ No newline at end of file
diff --git a/module/rdd-calendrier.js b/module/rdd-calendrier.js
index bcb6cd0d..4c8ced8a 100644
--- a/module/rdd-calendrier.js
+++ b/module/rdd-calendrier.js
@@ -5,6 +5,8 @@ import { HtmlUtility } from "./html-utility.js";
import { RdDResolutionTable } from "./rdd-resolution-table.js";
import { RdDUtility } from "./rdd-utility.js";
import { Grammar } from "./grammar.js";
+import { Misc } from "./misc.js";
+import {RdDDice } from "./rdd-dice.js";
/* -------------------------------------------- */
const dossierIconesHeures = 'systems/foundryvtt-reve-de-dragon/icons/heures/'
@@ -124,9 +126,9 @@ export class RdDCalendrier extends Application {
}
/* -------------------------------------------- */
- ajouterNombreAstral(index) {
+ async ajouterNombreAstral(index) {
return {
- nombreAstral: new Roll("1d12").evaluate( {async:false} ).total,
+ nombreAstral: await RdDDice.rollTotal("1dh"),
valeursFausses: [],
index: index
}
@@ -278,11 +280,10 @@ export class RdDCalendrier extends Application {
request.isValid = true;
if (!request.rolled.isSuccess) {
request.isValid = false;
- let nbAstralFaux = new Roll("1d11").evaluate( { async: false} ).total;
- nbAstral = nbAstral==nbAstralFaux ? 12 : nbAstralFaux;
+ nbAstral = await RdDDice.rollTotal("1dhr"+nbAstral);
// Mise à jour des nombres astraux du joueur
let astralData = this.listeNombreAstral.find((nombreAstral, i) => nombreAstral.index == request.date);
- astralData.valeursFausses.push({ actorId: request.id, nombreAstral: nbAstralFaux });
+ astralData.valeursFausses.push({ actorId: request.id, nombreAstral: nbAstral });
game.settings.set("foundryvtt-reve-de-dragon", "liste-nombre-astral", this.listeNombreAstral);
}
request.nbAstral = nbAstral;
diff --git a/module/rdd-commands.js b/module/rdd-commands.js
index f8b44405..f7d5bb4c 100644
--- a/module/rdd-commands.js
+++ b/module/rdd-commands.js
@@ -1,5 +1,6 @@
/* -------------------------------------------- */
+import { DialogCreateSigneDraconique } from "./dialog-create-signedraconique.js";
import { RdDItemCompetence } from "./item-competence.js";
import { Misc } from "./misc.js";
import { RdDCarac } from "./rdd-carac.js";
@@ -82,6 +83,17 @@ export class RdDCommands {
descr: `Affiche les heures de chance et de malchance selon l'heure de naissance donnée en argument. Exemples:
/astro Lyre`
});
+
+ rddCommands.registerCommand({
+ path: ["/signe", "+"], func: (content, msg, params) => rddCommands.creerSignesDraconiques(),
+ descr: "Crée un signe draconique et l'ajoute aux haut-rêvants choisis."
+ });
+
+ rddCommands.registerCommand({
+ path: ["/signe", "-"], func: (content, msg, params) => rddCommands.supprimerSignesDraconiquesEphemeres(),
+ descr: "Supprime les signes draconiques éphémères"
+ });
+
game.system.rdd.commands = rddCommands;
}
}
@@ -271,16 +283,14 @@ export class RdDCommands {
/* -------------------------------------------- */
async rollDeDraconique(msg) {
- let ddr = new Roll("1dr + 7").evaluate();
- ddr.showDice = true;
- await RdDDice.showDiceSoNice(ddr);
- RdDCommands._chatAnswer(msg, `Lancer d'un Dé draconique: ${ddr.total}`);
+ let ddr = await RdDDice.rollTotal("1dr + 7", { showDice:true });
+ RdDCommands._chatAnswer(msg, `Lancer d'un Dé draconique: ${ddr}`);
}
- getTMRAleatoire(msg, params) {
+ async getTMRAleatoire(msg, params) {
if (params.length < 2) {
let type = params[0];
- const tmr = TMRUtility.getTMRAleatoire(type ? (it => it.type == type) : (it => true));
+ const tmr = await TMRUtility.getTMRAleatoire(type ? (it => it.type == type) : (it => true));
RdDCommands._chatAnswer(msg, `Case aléatoire: ${tmr.coord} - ${tmr.label}`);
}
else {
@@ -312,5 +322,20 @@ export class RdDCommands {
}
}
+ async creerSignesDraconiques() {
+ DialogCreateSigneDraconique.createSigneForActors();
+ return true;
+ }
+
+ async supprimerSignesDraconiquesEphemeres() {
+ game.actors.forEach(actor => {
+ const ephemeres = actor.filterItems(item => Misc.data(item).type = 'signedraconique' && Misc.data(item).data.ephemere)
+ .map(item => item.id);
+ if (ephemeres.length > 0) {
+ actor.deleteEmbeddedDocuments("Item", ephemeres);
+ }
+ });
+ return true;
+ }
}
diff --git a/module/rdd-dice.js b/module/rdd-dice.js
index 4a9d42fb..27ee6c3e 100644
--- a/module/rdd-dice.js
+++ b/module/rdd-dice.js
@@ -25,7 +25,7 @@ export class De7 extends Die {
return {
type: "d7",
font: "HeuresDraconiques",
- fontScale : 0.7,
+ fontScale: 0.7,
labels: ['1', '2', '3', '4', '5', '6', 'd', '0'],
system: system
}
@@ -36,7 +36,7 @@ export class De7 extends Die {
super(termData);
}
- evaluate() {
+ async evaluate() {
super.evaluate();
this.explode("x=8");
return this;
@@ -62,7 +62,7 @@ export class DeDraconique extends Die {
return {
type: "dr",
font: "HeuresDraconiques",
- fontScale : 0.7,
+ fontScale: 0.7,
labels: ['1', '2', '3', '4', '5', '6', 'd', '0'],
system: system
}
@@ -73,7 +73,7 @@ export class DeDraconique extends Die {
super(termData);
}
- evaluate() {
+ async evaluate() {
super.evaluate();
this.explode("x=7");
return this;
@@ -113,7 +113,7 @@ export class DeHeure extends Die {
}
static getResultLabel(result) {
- return img(imagesHeures[result-1]);
+ return img(imagesHeures[result - 1]);
}
}
@@ -124,6 +124,27 @@ export class RdDDice {
CONFIG.Dice.terms[DeHeure.DENOMINATION] = DeHeure;
}
+ static async roll(formula, options = { showDice: false }) {
+ const roll = new Roll(formula);
+ await roll.evaluate({ async: true });
+ if (options.showDice) {
+ roll.showDice = options.showDice;
+ }
+ await RdDDice.show(roll, game.settings.get("core", "rollMode"));
+ return roll;
+ }
+
+ static async rollTotal(formula) {
+ const roll = new Roll(formula);
+ await roll.evaluate({ async: true });
+ return roll.total;
+ }
+
+ static async rollOneOf(array) {
+ const roll = await RdDDice.rollTotal(`1d${array.length}`);
+ return array[roll-1];
+ }
+
static diceSoNiceReady(dice3d) {
for (const system of Object.keys(dice3d.DiceFactory.systems)) {
dice3d.addDicePreset(De7.diceSoNiceData(system));
diff --git a/module/rdd-main.js b/module/rdd-main.js
index e019331f..d96303cc 100644
--- a/module/rdd-main.js
+++ b/module/rdd-main.js
@@ -31,6 +31,7 @@ import { EffetsDraconiques } from "./tmr/effets-draconiques.js";
import { RdDHerbes } from "./rdd-herbes.js";
import { RdDItem } from "./item.js";
import { RdDDice } from "./rdd-dice.js";
+import { RdDSigneDraconiqueItemSheet } from "./item-signedraconique-sheet.js";
/* -------------------------------------------- */
/* Foundry VTT Initialization */
@@ -117,7 +118,7 @@ Hooks.once("init", async function () {
config: true,
default: true,
type: Boolean
- });
+ });
/* -------------------------------------------- */
game.settings.register("foundryvtt-reve-de-dragon", "appliquer-famine-soif", {
name: "Notifier de la famine et la soif pour",
@@ -131,7 +132,7 @@ Hooks.once("init", async function () {
"famine-soif": "la famine et la soif",
},
default: "aucun"
- });
+ });
/* -------------------------------------------- */
// Set an initiative formula for the system
@@ -167,6 +168,11 @@ Hooks.once("init", async function () {
Actors.registerSheet("foundryvtt-reve-de-dragon", RdDActorVehiculeSheet, { types: ["vehicule"], makeDefault: true });
Actors.registerSheet("foundryvtt-reve-de-dragon", RdDActorEntiteSheet, { types: ["entite"], makeDefault: true });
Items.unregisterSheet("core", ItemSheet);
+ Items.registerSheet("foundryvtt-reve-de-dragon", RdDSigneDraconiqueItemSheet, {
+ label: "Signe draconique",
+ types: ["signedraconique"],
+ makeDefault: true
+ });
Items.registerSheet("foundryvtt-reve-de-dragon", RdDItemSheet, { makeDefault: true });
CONFIG.Combat.documentClass = RdDCombatManager;
@@ -176,7 +182,7 @@ Hooks.once("init", async function () {
RdDDice.init();
RdDCommands.init();
RdDCombat.init();
- RdDCombatManager.init(),
+ RdDCombatManager.init();
RdDTokenHud.init();
RdDActor.init();
RddCompendiumOrganiser.init();
@@ -198,12 +204,12 @@ function messageDeBienvenue() {
` });
}
}
-
+
/* -------------------------------------------- */
/* Foundry VTT Initialization */
/* -------------------------------------------- */
Hooks.once("ready", function () {
-
+
StatusEffects.onReady();
RdDHerbes.initializeHerbes();
diff --git a/module/rdd-namegen.js b/module/rdd-namegen.js
index a5e6d05c..52713906 100644
--- a/module/rdd-namegen.js
+++ b/module/rdd-namegen.js
@@ -1,14 +1,17 @@
-import { Grammar } from "./grammar.js";
import { Misc } from "./misc.js";
+import { RdDDice } from "./rdd-dice.js";
const words = [ 'pore', 'pre', 'flor', 'lane', 'turlu', 'pin', 'a', 'alph', 'i', 'onse', 'iane', 'ane', 'zach', 'arri', 'ba', 'bo', 'bi',
- 'alta', 'par', 'pir', 'zor', 'zir', 'de', 'pol', 'tran', 'no', 'la','al' , 'pul', 'one', 'ner', 'nur' ];
+ 'alta', 'par', 'pir', 'zor', 'zir', 'de', 'pol', 'tran', 'no', 'la', 'al' , 'pul', 'one', 'ner', 'nur', 'mac', 'mery',
+ 'cat', 'do', 'di', 'der', 'er', 'el', 'far', 'fer', 'go', 'guer', 'hot', 'jor', 'jar', 'ji', 'kri', 'ket', 'lor', 'hur',
+ 'lar', 'lir', 'lu', 'pot', 'pro', 'pra', 'pit', 'qua', 'qui', 're', 'ral', 'sal', 'sen', 'ted', 'to', 'ta', 'lars', 'ver',
+ 'vin', 'ov', 'wal', 'ry', 'ly', '' ];
/* -------------------------------------------- */
export class RdDNameGen {
- static getName( msg, params ) {
- let name = Misc.upperFirst( Misc.rollOneOf(words) + Misc.rollOneOf(words) )
+ static async getName( msg, params ) {
+ let name = Misc.upperFirst( await RdDDice.rollOneOf(words) + await RdDDice.rollOneOf(words) )
//console.log(name);
ChatMessage.create( { content: `Nom : ${name}`, whisper: ChatMessage.getWhisperRecipients("GM") } );
}
diff --git a/module/rdd-resolution-table.js b/module/rdd-resolution-table.js
index 23a6e2c8..c128668a 100644
--- a/module/rdd-resolution-table.js
+++ b/module/rdd-resolution-table.js
@@ -149,10 +149,7 @@ export class RdDResolutionTable {
/* -------------------------------------------- */
static async rollChances(chances, diviseur) {
- let myRoll = new Roll("1d100").evaluate( {async: false} );
- myRoll.showDice = chances.showDice;
- await RdDDice.show(myRoll);
- chances.roll = myRoll.total;
+ chances.roll = await RdDDice.rollTotal("1d100", {showDice:chances.showDice});
mergeObject(chances, this.computeReussite(chances, chances.roll, diviseur), { overwrite: true });
return chances;
}
diff --git a/module/rdd-roll.js b/module/rdd-roll.js
index e305965f..1151eb5f 100644
--- a/module/rdd-roll.js
+++ b/module/rdd-roll.js
@@ -205,6 +205,11 @@ export class RdDRoll extends Dialog {
this.updateRollResult();
$("#diffLibre").val(this.rollData.diffLibre);
});
+ html.find('.roll-signedraconique').change((event) => {
+ let sortKey = Misc.toInt(event.currentTarget.value);
+ this.setSelectedSigneDraconique(this.rollData.signes[sortKey]);
+ this.updateRollResult();
+ });
html.find('#ptreve-variable').change((event) => {
let ptreve = Misc.toInt(event.currentTarget.value);
this.rollData.selectedSort.data.ptreve_reel = ptreve;
@@ -276,6 +281,12 @@ export class RdDRoll extends Dialog {
HtmlUtility._showControlWhen($(".div-sort-ptreve-fixe"), !coutVariable);
}
+ async setSelectedSigneDraconique(signe){
+ this.rollData.signe = signe;
+ this.rollData.diffLibre = Misc.data(signe).data.difficulte,
+ $(".signe-difficulte").text(Misc.toSignedString(this.rollData.diffLibre));
+ }
+
/* -------------------------------------------- */
async updateRollResult() {
let rollData = this.rollData;
diff --git a/module/rdd-rolltables.js b/module/rdd-rolltables.js
index f9696267..89516904 100644
--- a/module/rdd-rolltables.js
+++ b/module/rdd-rolltables.js
@@ -8,31 +8,20 @@ export class RdDRollTables {
const table = await pack.getDocument(entry._id);
const draw = await table.draw({ displayChat: toChat, rollMode: "gmroll"});
console.log("RdDRollTables", tableName, toChat, ":", draw);
- return draw;
+ return draw.results.length > 0 ? draw.results[0] : undefined;
}
/* -------------------------------------------- */
- static async drawItemFromRollTable(tableName, toChat) {
- const draw = await RdDRollTables.genericGetTableResult(tableName, toChat);
- const drawnItemRef = draw.results.length > 0 ? draw.results[0] : undefined;
- if (drawnItemRef.data.collection) {
- console.log(drawnItemRef);
- const pack = game.packs.get(drawnItemRef.data.collection);
- return await pack.getDocument(drawnItemRef.data.resultId);
- }
- ui.notifications.warn("le tirage ne correspond pas à une entrée d'un Compendium")
- return drawnItemRef.text;
+ static async drawItemFromRollTable(tableName, toChat = false) {
+ const drawResult = await RdDRollTables.genericGetTableResult(tableName, toChat);
+ const pack = game.packs.get(drawResult.data.collection);
+ return await pack.getDocument(drawResult.data.resultId);
}
/* -------------------------------------------- */
static async drawTextFromRollTable(tableName, toChat) {
- const draw = await RdDRollTables.genericGetTableResult(tableName, toChat);
- const drawnItemRef = draw.results.length > 0 ? draw.results[0] : undefined;
- if (drawnItemRef.collection) {
- ui.notifications.warn("le tirage correspond à une entrée d'un Compendium, on attendait un texte")
- return await pack.getDocument(drawnItemRef.resultId);
- }
- return drawnItemRef.text;
+ const drawResult = await RdDRollTables.genericGetTableResult(tableName, toChat);
+ return drawResult.data.text;
}
/* -------------------------------------------- */
diff --git a/module/rdd-tmr-dialog.js b/module/rdd-tmr-dialog.js
index 54ca9860..f761d3a4 100644
--- a/module/rdd-tmr-dialog.js
+++ b/module/rdd-tmr-dialog.js
@@ -13,6 +13,7 @@ import { Draconique } from "./tmr/draconique.js";
import { Misc } from "./misc.js";
import { HtmlUtility } from "./html-utility.js";
import { ReglesOptionelles } from "./regles-optionelles.js";
+import { RdDDice } from "./rdd-dice.js";
/* -------------------------------------------- */
export class RdDTMRDialog extends Dialog {
@@ -59,8 +60,8 @@ export class RdDTMRDialog extends Dialog {
this.rencontreState = 'aucune';
this.pixiApp = new PIXI.Application({ width: 720, height: 860 });
- this.pixiTMR = new PixiTMR(this, this.pixiApp);
- this.cacheTMR = (game.user.isGM) ? false: actor.isTMRCache();
+ this.pixiTMR = new PixiTMR(this, this.pixiApp);
+ this.cacheTMR = (game.user.isGM) ? false : actor.isTMRCache();
this.callbacksOnAnimate = [];
if (!this.viewOnly) {
@@ -69,7 +70,7 @@ export class RdDTMRDialog extends Dialog {
}
// load the texture we need
- this.pixiTMR.load( (loader, resources) => this.createPixiSprites() );
+ this.pixiTMR.load((loader, resources) => this.createPixiSprites());
}
/* -------------------------------------------- */
@@ -142,20 +143,27 @@ export class RdDTMRDialog extends Dialog {
_tokenSortEnReserve(sortEnReserve) {
return EffetsDraconiques.sortReserve.token(this.pixiTMR, sortEnReserve.sort, () => sortEnReserve.coord);
}
+
_tokenDemiReve() {
const actorData = Misc.data(this.actor);
return EffetsDraconiques.demiReve.token(this.pixiTMR, actorData, () => actorData.data.reve.tmrpos.coord);
}
_updateDemiReve() {
- if ( !this.cacheTMR) {
+ this.notifierResonanceSigneDraconique(this._getActorCoord());
+
+ if (!this.cacheTMR) {
this._setTokenPosition(this.demiReve);
}
}
+ _getActorCoord() {
+ return Misc.data(this.actor).data.reve.tmrpos.coord;
+ }
+
/* -------------------------------------------- */
- async moveFromKey( move ) {
- let pos = TMRUtility.convertToCellPos(Misc.data(this.actor).data.reve.tmrpos.coord);
+ async moveFromKey(move) {
+ let pos = TMRUtility.convertToCellPos(this._getActorCoord());
if (move == 'top') pos.y -= 1;
if (move == 'bottom') pos.y += 1;
@@ -165,7 +173,7 @@ export class RdDTMRDialog extends Dialog {
if (move == 'top-left') pos.y -= 1;
if (move == 'top-right') pos.y -= 1;
} else {
- if (move == 'bottom-left') pos.y += 1;
+ if (move == 'bottom-left') pos.y += 1;
if (move == 'bottom-right') pos.y += 1;
}
@@ -178,69 +186,74 @@ export class RdDTMRDialog extends Dialog {
async activateListeners(html) {
super.activateListeners(html);
- HtmlUtility._showControlWhen($(".appliquerFatigue"), ReglesOptionelles.isUsing("appliquer-fatigue"));
document.getElementById("tmrrow1").insertCell(0).append(this.pixiApp.view);
if (this.viewOnly) {
- html.find('#lancer-sort').remove();
- }
- else {
- // Roll Sort
- html.find('#lancer-sort').click((event) => {
- this.actor.rollUnSort(Misc.data(this.actor).data.reve.tmrpos.coord);
- });
- }
- if (this.viewOnly) {
+ html.find('.lancer-sort').remove();
+ html.find('.lire-signe-draconique').remove();
return;
}
+ HtmlUtility._showControlWhen($(".appliquerFatigue"), ReglesOptionelles.isUsing("appliquer-fatigue"));
+ HtmlUtility._showControlWhen($(".lire-signe-draconique"), this.actor.isResonanceSigneDraconique(this._getActorCoord()));
+
+ // Roll Sort
+ html.find('.lancer-sort').click((event) => {
+ this.actor.rollUnSort(this._getActorCoord());
+ });
+ html.find('.lire-signe-draconique').click((event) => {
+ this.actor.rollLireSigneDraconique(this._getActorCoord());
+ });
+
html.find('#dir-top').click((event) => {
this.moveFromKey("top");
- } );
+ });
html.find('#dir-top-left').click((event) => {
this.moveFromKey("top-left");
- } );
+ });
html.find('#dir-top-right').click((event) => {
this.moveFromKey("top-right");
- } );
+ });
html.find('#dir-bottom-left').click((event) => {
this.moveFromKey("bottom-left");
- } );
+ });
html.find('#dir-bottom-right').click((event) => {
this.moveFromKey("bottom-right");
- } );
+ });
html.find('#dir-bottom').click((event) => {
this.moveFromKey("bottom");
- } );
+ });
-
// Gestion du cout de montée en points de rêve
let reveCout = ((this.tmrdata.isRapide && !EffetsDraconiques.isDeplacementAccelere(this.actor)) ? -2 : -1) - this.actor.countMonteeLaborieuse();
- if (ReglesOptionelles.isUsing("appliquer-fatigue")){
+ if (ReglesOptionelles.isUsing("appliquer-fatigue")) {
this.cumulFatigue += this.fatigueParCase;
}
await this.actor.reveActuelIncDec(reveCout);
// Le reste...
this.updateValuesDisplay();
- let tmr = TMRUtility.getTMR(Misc.data(this.actor).data.reve.tmrpos.coord);
+ let tmr = TMRUtility.getTMR(this._getActorCoord());
await this.manageRencontre(tmr, () => {
this.postRencontre(tmr);
});
}
/* -------------------------------------------- */
- updateValuesDisplay() {
- let ptsreve = document.getElementById("tmr-pointsreve-value");
+ async updateValuesDisplay() {
+ const coord = this._getActorCoord();
const actorData = Misc.data(this.actor);
+
+ HtmlUtility._showControlWhen($(".lire-signe-draconique"), this.actor.isResonanceSigneDraconique(coord));
+
+ let ptsreve = document.getElementById("tmr-pointsreve-value");
ptsreve.innerHTML = actorData.data.reve.reve.value;
let tmrpos = document.getElementById("tmr-pos");
- if ( this.cacheTMR ) {
- tmrpos.innerHTML = '?? ('+ TMRUtility.getTMRType( actorData.data.reve.tmrpos.coord ) + ')';
+ if (this.cacheTMR) {
+ tmrpos.innerHTML = '?? (' + TMRUtility.getTMRType(coord) + ')';
} else {
- let tmr = TMRUtility.getTMR(actorData.data.reve.tmrpos.coord);
- tmrpos.innerHTML = actorData.data.reve.tmrpos.coord + " (" + tmr.label + ")";
+ tmrpos.innerHTML = coord + " (" + TMRUtility.getTMRLabel(coord) + ")";
}
let etat = document.getElementById("tmr-etatgeneral-value");
@@ -249,7 +262,7 @@ export class RdDTMRDialog extends Dialog {
let refoulement = document.getElementById("tmr-refoulement-value");
refoulement.innerHTML = actorData.data.reve.refoulement.value;
- if (ReglesOptionelles.isUsing("appliquer-fatigue")){
+ if (ReglesOptionelles.isUsing("appliquer-fatigue")) {
let fatigueItem = document.getElementById("tmr-fatigue-table");
//console.log("Refresh : ", actorData.data.sante.fatigue.value);
fatigueItem.innerHTML = "
" + RdDUtility.makeHTMLfatigueMatrix(actorData.data.sante.fatigue.value, actorData.data.sante.endurance.max).html() + "
";
@@ -373,7 +386,7 @@ export class RdDTMRDialog extends Dialog {
rencontre: this.currentRencontre,
nbRounds: 1,
canClose: false,
- tmr: TMRUtility.getTMR(Misc.data(this.actor).data.reve.tmrpos.coord)
+ tmr: TMRUtility.getTMR(this._getActorCoord())
}
await this._tentativeMaitrise(rencontreData);
@@ -414,7 +427,7 @@ export class RdDTMRDialog extends Dialog {
else if (rencData.rolled.isEchec && rencData.rencontre.isPersistant) {
setTimeout(() => {
rencData.nbRounds++;
- if (ReglesOptionelles.isUsing("appliquer-fatigue")){
+ if (ReglesOptionelles.isUsing("appliquer-fatigue")) {
this.cumulFatigue += this.fatigueParCase;
}
this._tentativeMaitrise(rencData);
@@ -523,11 +536,11 @@ export class RdDTMRDialog extends Dialog {
if (rencontre) {
return rencontre;
}
- let myRoll = new Roll("1d7").evaluate( { async: false} ).total;
+ let myRoll = await RdDDice.rollTotal("1d7");
if (TMRUtility.isForceRencontre() || myRoll == 7) {
return await this.rencontreTMRRoll(tmr, this.actor.isRencontreSpeciale());
}
- let locTMR = (this.cacheTMR) ? "??": tmr.label + " (" + tmr.coord + ")";
+ let locTMR = (this.cacheTMR) ? "??" : tmr.label + " (" + tmr.coord + ")";
this._tellToUser(myRoll + ": Pas de rencontre en " + locTMR);
}
@@ -584,7 +597,7 @@ export class RdDTMRDialog extends Dialog {
await this._rollMaitriseCaseHumide(rollData);
return;
}
- rollData.poesie = Poetique.getExtrait();
+ rollData.poesie = await Poetique.getExtrait();
ChatMessage.create({
whisper: ChatUtility.getWhisperRecipientsAndGMs(game.user.name),
content: await renderTemplate(`systems/foundryvtt-reve-de-dragon/templates/chat-resultat-maitrise-tmr.html`, rollData)
@@ -701,7 +714,7 @@ export class RdDTMRDialog extends Dialog {
}
this.toclose = rollData.rolled.isEchec;
- rollData.poesie = Poetique.getExtrait();
+ rollData.poesie = await Poetique.getExtrait();
ChatMessage.create({
whisper: ChatUtility.getWhisperRecipientsAndGMs(game.user.name),
content: await renderTemplate(`systems/foundryvtt-reve-de-dragon/templates/chat-resultat-maitrise-tmr.html`, rollData)
@@ -852,7 +865,7 @@ export class RdDTMRDialog extends Dialog {
/* -------------------------------------------- */
async _onClickTMRPos(eventPos) {
- let currentPos = TMRUtility.convertToCellPos(Misc.data(this.actor).data.reve.tmrpos.coord);
+ let currentPos = TMRUtility.convertToCellPos(this._getActorCoord());
console.log("deplacerDemiReve >>>>", currentPos, eventPos);
@@ -861,7 +874,7 @@ export class RdDTMRDialog extends Dialog {
// Validation de la case de destination (gestion du cas des rencontres qui peuvent téléporter)
let deplacementType = this._calculDeplacement(targetCoord, currentCoord, currentPos, eventPos);
-
+
// Si le deplacement est valide
if (deplacementType == 'normal' || deplacementType == 'saut') {
await this._deplacerDemiReve(targetCoord, deplacementType);
@@ -896,13 +909,14 @@ export class RdDTMRDialog extends Dialog {
Si la case est le demi-rêve, ne pas lancer de sort.
Si un lancement de sort est en cours, trouver un moyen de réafficher cette fenêtre si on essaie de lancer un sort (ou bloquer le lancer de sort)
*/
+ this.notifierResonanceSigneDraconique(targetCoord);
await this.actor.rollUnSort(targetCoord);
this.nettoyerRencontre();
}
/* -------------------------------------------- */
- externalRefresh( tmrData ) {
- this.cacheTMR = (game.user.isGM) ? false: this.actor.isTMRCache();
+ externalRefresh(tmrData) {
+ this.cacheTMR = (game.user.isGM) ? false : this.actor.isTMRCache();
this.createPixiSprites();
this.forceDemiRevePositionView();
this.updateValuesDisplay();
@@ -920,11 +934,10 @@ export class RdDTMRDialog extends Dialog {
// Gestion cases spéciales type Trou noir, etc
tmr = await this.manageTmrInnaccessible(tmr);
- this.actor.updateCoordTMR(tmr.coord);
await this.actor.updateCoordTMR(tmr.coord);
this._updateDemiReve();
- if (ReglesOptionelles.isUsing("appliquer-fatigue")){
+ if (ReglesOptionelles.isUsing("appliquer-fatigue")) {
this.cumulFatigue += this.fatigueParCase;
}
this.updateValuesDisplay();
@@ -943,6 +956,15 @@ export class RdDTMRDialog extends Dialog {
}
}
+ async notifierResonanceSigneDraconique(coord) {
+ if (this.actor.isResonanceSigneDraconique(coord)) {
+ ChatMessage.create({
+ whisper: ChatUtility.getWhisperRecipientsAndGMs(game.user.name),
+ content: await renderTemplate(`systems/foundryvtt-reve-de-dragon/templates/chat-signe-draconique-resonance.html`, { alias: this.actor.name, typeTMR: TMRUtility.getTMRType(coord) })
+ });
+ }
+ }
+
/* -------------------------------------------- */
async postRencontre(tmr) {
if (!(this.viewOnly || this.currentRencontre)) {
@@ -998,7 +1020,7 @@ export class RdDTMRDialog extends Dialog {
/* -------------------------------------------- */
_setTokenPosition(token) {
- if ( !this.cacheTMR) {
+ if (!this.cacheTMR) {
this.pixiTMR.setPosition(token.sprite, TMRUtility.convertToCellPos(token.coordTMR()));
}
}
diff --git a/module/rdd-utility.js b/module/rdd-utility.js
index bdd25d71..4011417d 100644
--- a/module/rdd-utility.js
+++ b/module/rdd-utility.js
@@ -7,6 +7,7 @@ import { Grammar } from "./grammar.js";
import { TMRUtility } from "./tmr-utility.js";
import { DialogItemAchat } from "./dialog-item-achat.js";
import { ReglesOptionelles } from "./regles-optionelles.js";
+import { RdDDice } from "./rdd-dice.js";
/* -------------------------------------------- */
// This table starts at 0 -> niveau -10
@@ -140,6 +141,7 @@ export class RdDUtility {
'systems/foundryvtt-reve-de-dragon/templates/item-monnaie-sheet.html',
'systems/foundryvtt-reve-de-dragon/templates/item-meditation-sheet.html',
'systems/foundryvtt-reve-de-dragon/templates/item-nourritureboisson-sheet.html',
+ 'systems/foundryvtt-reve-de-dragon/templates/item-signedraconique-sheet.html',
'systems/foundryvtt-reve-de-dragon/templates/competence-carac-defaut.html',
'systems/foundryvtt-reve-de-dragon/templates/competence-base.html',
'systems/foundryvtt-reve-de-dragon/templates/enum-aspect-tarot.html',
@@ -204,7 +206,8 @@ export class RdDUtility {
'systems/foundryvtt-reve-de-dragon/templates/chat-actor-competence-xp.html',
'systems/foundryvtt-reve-de-dragon/templates/chat-actor-carac-xp.html',
'systems/foundryvtt-reve-de-dragon/templates/chat-potionenchantee-chateaudormant.html',
- 'systems/foundryvtt-reve-de-dragon/templates/chat-fabriquer-potion-base.html'
+ 'systems/foundryvtt-reve-de-dragon/templates/chat-fabriquer-potion-base.html',
+ 'systems/foundryvtt-reve-de-dragon/templates/chat-signe-draconique-actor.html'
];
Handlebars.registerHelper('upperFirst', str => Misc.upperFirst(str ?? 'Null'));
@@ -271,6 +274,7 @@ export class RdDUtility {
formData.munitions = this.checkNull(formData.itemsByType['munition']);
formData.herbes = this.checkNull(formData.itemsByType['herbe']);
formData.sorts = this.checkNull(formData.itemsByType['sort']);
+ formData.signesdraconiques = this.checkNull(formData.itemsByType['signedraconique']);
formData.queues = this.checkNull(formData.itemsByType['queue']);
formData.souffles = this.checkNull(formData.itemsByType['souffle']);
formData.ombres = this.checkNull(formData.itemsByType['ombre']);
@@ -441,8 +445,8 @@ export class RdDUtility {
}
/* -------------------------------------------- */
- static getLocalisation(type = 'personnage') {
- let result = new Roll("1d20").roll().total;
+ static async getLocalisation(type = 'personnage') {
+ let result = await RdDDice.rollTotal("1d20");
let txt = ""
if (type == 'personnage') {
if (result <= 3) txt = "Jambe, genou, pied, jarret";
@@ -474,15 +478,6 @@ export class RdDUtility {
return duplicate(table[0]);
}
-
- /* -------------------------------------------- */
- static _evaluatePerte(formula, over20) {
- console.log("_evaluatePerte", formula, over20);
- let perte = new Roll(formula, { over20: over20 });
- perte.evaluate();
- return perte.total;
- }
-
/* -------------------------------------------- */
static currentFatigueMalus(value, max) {
if (ReglesOptionelles.isUsing("appliquer-fatigue")) {
diff --git a/module/tmr-rencontres.js b/module/tmr-rencontres.js
index 4c03dd19..eea11c27 100644
--- a/module/tmr-rencontres.js
+++ b/module/tmr-rencontres.js
@@ -1,5 +1,6 @@
import { Grammar } from "./grammar.js";
import { Misc } from "./misc.js";
+import { RdDDice } from "./rdd-dice.js";
import { TMRUtility } from "./tmr-utility.js";
import { TMRType } from "./tmr-utility.js";
@@ -268,7 +269,7 @@ const rencontresStandard = [
{ code: "reflet", name: "Reflet d'ancien Rêve", type: "reflet", genre: "m", force: "2d6", isPersistant: true },
{ code: "tbblanc", name: "Tourbillon blanc", type: "tbblanc", genre: "m", force: "2d6", isPersistant: true },
{ code: "tbnoir", name: "Tourbillon noir", type: "tbnoir", genre: "m", force: "2d8", isPersistant: true },
- { code: "rdd", name: "Rêve de Dragon", type: "rdd", genre: "m", force: "1ddr + 7", refoulement: 2, quitterTMR: true }
+ { code: "rdd", name: "Rêve de Dragon", type: "rdd", genre: "m", force: "1dr + 7", refoulement: 2, quitterTMR: true }
];
const rencontresPresentCite = [
@@ -324,7 +325,7 @@ export class TMRRencontres {
return false;
}
if (!roll || roll <= 0 || roll > 100) {
- roll = new Roll("1d100").evaluate().total;
+ roll = await RdDDice.rollTotal("1d100");
}
let rencontre = await TMRRencontres.getRencontreAleatoire(terrain, roll);
ChatMessage.create({
@@ -356,15 +357,13 @@ export class TMRRencontres {
/* -------------------------------------------- */
static async getRencontreAleatoire(terrain, roll = undefined) {
if (!roll || roll <= 0 || roll > 100) {
- roll = new Roll("1d100").evaluate({ async: false }).total;
+ roll = await RdDDice.rollTotal("1d100");
}
terrain = Grammar.toLowerCaseNoAccent(terrain);
- //console.log("getRencontreAleatoire", terrain, roll);
const code = tableRencontres[terrain].find(it => it.range[0] <= roll && roll <= it.range[1]).code;
const rencontre = duplicate(rencontresStandard.find(it => it.code == code));
rencontre.roll = roll;
await TMRRencontres.evaluerForceRencontre(rencontre);
- //console.log(rencontre);
return rencontre;
}
@@ -373,20 +372,14 @@ export class TMRRencontres {
const rencontre = duplicate(
(index && index >= 0 && index < mauvaisesRencontres.length)
? mauvaisesRencontres[index]
- : Misc.rollOneOf(mauvaisesRencontres));
+ : await RdDDice.rollOneOf(mauvaisesRencontres));
await TMRRencontres.evaluerForceRencontre(rencontre);
return rencontre;
}
/* -------------------------------------------- */
static async evaluerForceRencontre(rencontre) {
- if (TMRRencontres.isReveDeDragon(rencontre)) {
- const ddr = new Roll("1dr + 7").evaluate();
- rencontre.force = 7 + ddr.total;
- }
- else {
- rencontre.force = new Roll(rencontre.force).evaluate({ async: false }).total;
- }
+ rencontre.force = await new Roll(rencontre.force).evaluate().total;
return rencontre.force;
}
@@ -426,14 +419,14 @@ export class TMRRencontres {
}
/* -------------------------------------------- */
- static msgEchecPasseurFou(tmrData) {
+ static async msgEchecPasseurFou(tmrData) {
tmrData.sortReserve = Misc.templateData(tmrData.actor).reve.reserve.list[0];
if (tmrData.sortReserve) {
// Passeur fou positionne sur la case d'un ort en réserve // TODO : Choisir le sort le plus loin ou au hasard
tmrData.newTMR = TMRUtility.getTMR(tmrData.sortReserve.coord);
} else {
// Déplacement aléatoire de la force du Passeur Fou
- const newCoord = Misc.rollOneOf(TMRUtility.getTMRPortee(tmrData.tmr.coord, tmrData.rencontre.force));
+ const newCoord = await RdDDice.rollOneOf(TMRUtility.getTMRPortee(tmrData.tmr.coord, tmrData.rencontre.force));
tmrData.newTMR = TMRUtility.getTMR(newCoord);
}
if (tmrData.sortReserve) {
@@ -472,7 +465,7 @@ export class TMRRencontres {
static async _toubillonner(tmrDialog, actor, cases) {
let coord = Misc.templateData(actor).reve.tmrpos.coord;
for (let i = 0; i < cases; i++) {
- coord = TMRUtility.deplaceTMRAleatoire(actor, coord).coord;
+ coord = await TMRUtility.deplaceTMRAleatoire(actor, coord).coord;
}
await tmrDialog.forceDemiRevePosition(coord)
}
diff --git a/module/tmr-utility.js b/module/tmr-utility.js
index 566d45a7..d7a397fc 100644
--- a/module/tmr-utility.js
+++ b/module/tmr-utility.js
@@ -1,6 +1,7 @@
import { TMRRencontres } from "./tmr-rencontres.js";
import { Misc } from "./misc.js";
import { Grammar } from "./grammar.js";
+import { RdDDice } from "./rdd-dice.js";
/* -------------------------------------------- */
const TMRMapping = {
@@ -338,7 +339,7 @@ export class TMRUtility {
static getTMRType(coord) {
const tmr = TMRMapping[coord];
- return Misc.upperFirst(tmr.type);
+ return Misc.upperFirst(TMRType[tmr.type].name);
}
static getTMRDescr(coord) {
@@ -346,6 +347,12 @@ export class TMRUtility {
return Grammar.articleDetermine(tmr.type) + ' ' + tmr.label;
}
+ static listSelectedTMR(typesTMR) {
+ return Object.values(TMRType).map(value => Misc.upperFirst(value.name))
+ .sort()
+ .map(name => { return { name: name, selected: typesTMR.includes(name) } });
+ }
+
static isCaseHumide(tmr) {
return tmr.type == 'fleuve' || tmr.type == 'lac' || tmr.type == 'marais';
}
@@ -380,13 +387,13 @@ export class TMRUtility {
}
/* -------------------------------------------- */
- static getDirectionPattern() {
- return Misc.rollOneOf(tmrRandomMovePatten);
+ static async getDirectionPattern() {
+ return await RdDDice.rollOneOf(tmrRandomMovePatten);
}
/* -------------------------------------------- */
- static deplaceTMRAleatoire(actor, coord) {
- return TMRUtility.deplaceTMRSelonPattern(actor, coord, TMRUtility.getDirectionPattern(), 1);
+ static async deplaceTMRAleatoire(actor, coord) {
+ return TMRUtility.deplaceTMRSelonPattern(actor, coord, await TMRUtility.getDirectionPattern(), 1);
}
/* -------------------------------------------- */
@@ -418,8 +425,8 @@ export class TMRUtility {
return TMRUtility.filterTMR(filter).map(it => it.coord);
}
- static getTMRAleatoire(filter = it => true) {
- return Misc.rollOneOf(TMRUtility.filterTMR(filter))
+ static async getTMRAleatoire(filter = it => true) {
+ return await RdDDice.rollOneOf(TMRUtility.filterTMR(filter))
}
/* -------------------------------------------- */
diff --git a/module/tmr/conquete.js b/module/tmr/conquete.js
index b1cf1862..b8c0ac53 100644
--- a/module/tmr/conquete.js
+++ b/module/tmr/conquete.js
@@ -1,5 +1,6 @@
import { Grammar } from "../grammar.js";
import { Misc } from "../misc.js";
+import { RdDDice } from "../rdd-dice.js";
import { tmrColors, tmrConstants, tmrTokenZIndex, TMRUtility } from "../tmr-utility.js";
import { Draconique } from "./draconique.js";
@@ -31,7 +32,7 @@ export class Conquete extends Draconique {
async _creerConquete(actor, queue) {
let existants = actor.data.items.filter(it => this.isCase(it)).map(it => Misc.data(it).data.coord);
let possibles = TMRUtility.filterTMR(tmr => !TMRUtility.isCaseHumide(tmr) && !existants.includes(tmr.coord));
- let conquete = Misc.rollOneOf(possibles);
+ let conquete =await RdDDice.rollOneOf(possibles);
await this.createCaseTmr(actor, 'Conquête: ' + conquete.label, conquete, queue.id);
}
diff --git a/module/tmr/debordement.js b/module/tmr/debordement.js
index 0aa9feb2..a9b3a998 100644
--- a/module/tmr/debordement.js
+++ b/module/tmr/debordement.js
@@ -13,7 +13,7 @@ export class Debordement extends Draconique {
manualMessage() { return false }
async onActorCreateOwned(actor, souffle) {
const existants = actor.data.items.filter(it => this.isCase(it)).map(it => it.data.coord);
- const tmr = TMRUtility.getTMRAleatoire(it => !(TMRUtility.isCaseHumide(it) || existants.includes(it.coord)));
+ const tmr = await TMRUtility.getTMRAleatoire(it => !(TMRUtility.isCaseHumide(it) || existants.includes(it.coord)));
await this.createCaseTmr(actor, 'Debordement: ' + tmr.label, tmr, souffle.id);
}
diff --git a/module/tmr/desorientation.js b/module/tmr/desorientation.js
index 0fc1d46c..e1fc7855 100644
--- a/module/tmr/desorientation.js
+++ b/module/tmr/desorientation.js
@@ -1,5 +1,6 @@
import { Grammar } from "../grammar.js";
import { Misc } from "../misc.js";
+import { RdDDice } from "../rdd-dice.js";
import { tmrColors, tmrConstants, tmrTokenZIndex, TMRType, TMRUtility } from "../tmr-utility.js";
import { Draconique } from "./draconique.js";
@@ -13,7 +14,7 @@ export class Desorientation extends Draconique {
manualMessage() { return false }
async onActorCreateOwned(actor, souffle) {
- const type = Misc.rollOneOf(this._typesPossibles(actor));
+ const type = await RdDDice.rollOneOf(this._typesPossibles(actor));
console.log("désorientation", type);
souffle.name += ": " + TMRType[type].name;
await this._creerCasesTmr(actor, type, souffle);
diff --git a/module/tmr/pelerinage.js b/module/tmr/pelerinage.js
index d30c10b6..a8cdea37 100644
--- a/module/tmr/pelerinage.js
+++ b/module/tmr/pelerinage.js
@@ -13,7 +13,7 @@ export class Pelerinage extends Draconique {
manualMessage() { return false }
async onActorCreateOwned(actor, queue) {
- let tmr = TMRUtility.getTMRAleatoire();
+ let tmr = await TMRUtility.getTMRAleatoire();
await this.createCaseTmr(actor, 'Pèlerinage: ' + tmr.label, tmr, queue.id);
}
diff --git a/module/tmr/periple.js b/module/tmr/periple.js
index e33aad91..9ad0d83f 100644
--- a/module/tmr/periple.js
+++ b/module/tmr/periple.js
@@ -1,5 +1,6 @@
import { Grammar } from "../grammar.js";
-import { tmrColors, tmrConstants, tmrTokenZIndex, TMRUtility } from "../tmr-utility.js";
+import { RdDDice } from "../rdd-dice.js";
+import { tmrConstants, tmrTokenZIndex, TMRUtility } from "../tmr-utility.js";
import { Draconique } from "./draconique.js";
export class Periple extends Draconique {
@@ -13,7 +14,7 @@ export class Periple extends Draconique {
manualMessage() { return false }
async onActorCreateOwned(actor, souffle) {
- let terrain = new Roll("1d2").evaluate().total == 1 ? 'sanctuaire' : 'necropole';
+ let terrain = (await RdDDice.rollTotal("1d2")) == 1 ? 'sanctuaire' : 'necropole';
let tmrs = TMRUtility.getListTMR(terrain);
for (let tmr of tmrs) {
await this.createCaseTmr(actor, 'Périple: ' + tmr.label, tmr, souffle.id);
diff --git a/module/tmr/reserve-extensible.js b/module/tmr/reserve-extensible.js
index d28bc239..35ba770c 100644
--- a/module/tmr/reserve-extensible.js
+++ b/module/tmr/reserve-extensible.js
@@ -12,7 +12,7 @@ export class ReserveExtensible extends Draconique {
manualMessage() { return "Vous pouvez re-configurer votre Réserve extensible" }
async onActorCreateOwned(actor, tete) {
const existants = actor.data.items.filter(it => this.isCase(it)).map(it => it.data.coord);
- const tmr = TMRUtility.getTMRAleatoire(it => !(it.type == 'fleuve' || existants.includes(it.coord)));
+ const tmr = await TMRUtility.getTMRAleatoire(it => !(it.type == 'fleuve' || existants.includes(it.coord)));
await this.createCaseTmr(actor, "Nouvelle Réserve extensible", tmr, tete.id);
}
diff --git a/module/tmr/trou-noir.js b/module/tmr/trou-noir.js
index 95a09e04..454746be 100644
--- a/module/tmr/trou-noir.js
+++ b/module/tmr/trou-noir.js
@@ -13,7 +13,7 @@ export class TrouNoir extends Draconique {
async onActorCreateOwned(actor, souffle) {
const existants = actor.data.items.filter(it => this.isCase(it)).map(it => it.data.coord);
- const tmr = TMRUtility.getTMRAleatoire(it => !(TMRUtility.isCaseHumide(it) || existants.includes(it.coord)));
+ const tmr = await TMRUtility.getTMRAleatoire(it => !(TMRUtility.isCaseHumide(it) || existants.includes(it.coord)));
await this.createCaseTmr(actor, 'Trou noir: ' + tmr.label, tmr, souffle.id);
}
diff --git a/packs/tables-diverses.db b/packs/tables-diverses.db
index d2ab3580..7dda0719 100644
--- a/packs/tables-diverses.db
+++ b/packs/tables-diverses.db
@@ -1,12 +1,13 @@
-{"name":"Table spéciale de rencontres","permission":{"default":0,"jOzRscDxoXZWpGS6":3},"flags":{},"description":"","results":[{"_id":"m1sOHvOsOlFRYgg1","flags":{},"type":0,"text":"Mangeur de rêve 1d6.","img":"icons/svg/d20-black.svg","resultId":"","weight":1,"range":[1,1],"drawn":false},{"_id":"THgTJucYdosZixxL","flags":{},"type":0,"text":"Mangeur de rêve 2d6.","img":"icons/svg/d20-black.svg","resultId":"","weight":1,"range":[2,2],"drawn":false},{"_id":"wpUaRAW4HVRM8eOs","flags":{},"type":0,"text":"Reflet d’ancien rêve 2d6+4.","img":"icons/svg/d20-black.svg","resultId":"","weight":1,"range":[3,3],"drawn":false},{"_id":"tPwuPqShKzWo5jkG","flags":{},"type":0,"text":"Tourbillon blanc 2d6+4.","img":"icons/svg/d20-black.svg","resultId":"","weight":1,"range":[4,4],"drawn":false},{"_id":"sfX1CrIT7avWnIQm","flags":{},"type":0,"text":"Tourbillon noir 2d8+4.","img":"icons/svg/d20-black.svg","resultId":"","weight":1,"range":[5,5],"drawn":false},{"_id":"Wvh7Nv4QMhrQOP30","flags":{},"type":0,"text":"Passeur fou 2d8.","img":"icons/svg/d20-black.svg","resultId":"","weight":1,"range":[6,6],"drawn":false},{"_id":"lJ24ZLMLxXscNqy2","flags":{},"type":0,"text":"Tourbillon rouge 2d8.","img":"icons/svg/d20-black.svg","resultId":"","weight":1,"range":[7,7],"drawn":false}],"formula":"1d7","replacement":true,"displayRoll":true,"_id":"66ye0OOxBO9LEjdd"}
-{"_id":"7Py520wVyrjAgS9j","name":"Maladresses non armé","permission":{"default":0,"jOzRscDxoXZWpGS6":3},"flags":{},"img":"icons/svg/d20-grey.svg","description":"","results":[{"_id":"5ExNFCB8JNMT2535","flags":{},"type":0,"text":"Assomé net : Endurance tombe à 0 et -1 pt de vie.","img":"icons/svg/d20-black.svg","resultId":"","weight":1,"range":[2,2],"drawn":false},{"_id":"SnLYEufd9JrYDXcX","flags":{},"type":0,"text":"Ami bousculé : Le compagnon bousculé doit réussir Empathie/Vigilance à -1d6 ou être en demi-surprise jusqu’à la fin du round suivant.","img":"icons/svg/d20-black.svg","resultId":"","weight":1,"range":[3,3],"drawn":false},{"_id":"1DtaMqWygL8BjZjw","flags":{},"type":0,"text":"Chute : Encaissement à -1d6 sur la table des Coups non mortels.","img":"icons/svg/d20-black.svg","resultId":"","weight":1,"range":[4,4],"drawn":false},{"_id":"Fkaf51J6FMuAqEAx","flags":{},"type":0,"text":"Déséquilibré : Réussir Agilité/Vigilance à -1d6 ou être en demi-surprise jusqu’à la fin du round suivant.","img":"icons/svg/d20-black.svg","resultId":"","weight":1,"range":[5,7],"drawn":false},{"_id":"kyAKakRIPGKr6Gdy","flags":{},"type":0,"text":"Faux mouvement : Perte de 2d6 points d’endurance.","img":"icons/svg/d20-black.svg","resultId":"","weight":1,"range":[8,14],"drawn":false},{"_id":"hTKkiPGPCTDIFh0Y","flags":{},"type":0,"text":"Déséquilibré : Réussir Agilité/Vigilance à -1d6 ou être en demi-surprise jusqu’à la fin du round suivant.","img":"icons/svg/d20-black.svg","resultId":"","weight":1,"range":[15,17],"drawn":false},{"_id":"NY1uI3k3YbJKQddk","flags":{},"type":0,"text":"Chute : Encaissement à -1d6 sur la table des Coups non mortels.","img":"icons/svg/d20-black.svg","resultId":"","weight":1,"range":[18,18],"drawn":false},{"_id":"CEDYz7CYFfJIQRr0","flags":{},"type":0,"text":"Ami bousculé : Le compagnon bousculé doit réussir Empathie/Vigilance à -1d6 ou être en demi-surprise jusqu’à la fin du round suivant.","img":"icons/svg/d20-black.svg","resultId":"","weight":1,"range":[19,19],"drawn":false},{"_id":"dSKiqZe8cXO89HgH","flags":{},"type":0,"text":"Assomé net : Endurance tombe à 0 et -1 pt de vie.","img":"icons/svg/d20-black.svg","resultId":"","weight":1,"range":[20,20],"drawn":false}],"formula":"2d10","replacement":false,"displayRoll":true}
-{"name":"Détermination aléatoire de compétence","permission":{"default":0,"jOzRscDxoXZWpGS6":3},"flags":{},"description":"","results":[{"_id":"9sBISZqs2DL0PG9W","flags":{},"type":2,"text":"Dague","img":"systems/foundryvtt-reve-de-dragon/icons/competence_dague.png","collection":"foundryvtt-reve-de-dragon.competences","resultId":"XZNm5W8nTe8aCG61","weight":1,"range":[1,2],"drawn":false},{"_id":"eBlqM8jwRJ5PB5gm","flags":{},"type":2,"text":"Epée à 1 main","img":"systems/foundryvtt-reve-de-dragon/icons/competence_epee_1_main.png","collection":"foundryvtt-reve-de-dragon.competences","resultId":"fPhPcCP3sbS6mfbS","weight":1,"range":[3,3],"drawn":false},{"_id":"tZBAPUjyjQy8EUHO","flags":{},"type":2,"text":"Epée à 2 mains","img":"systems/foundryvtt-reve-de-dragon/icons/competence_epee_2_mains.png","collection":"foundryvtt-reve-de-dragon.competences","resultId":"MLIEbxSJHkY1m3No","weight":1,"range":[4,4],"drawn":false},{"_id":"qvfMPJP3BkpcP5Fe","flags":{},"type":2,"text":"Hache à 1 main","img":"systems/foundryvtt-reve-de-dragon/icons/competence_hache_a_1_main.png","collection":"foundryvtt-reve-de-dragon.competences","resultId":"wEfuLImdNX4BSXVi","weight":1,"range":[5,5],"drawn":false},{"_id":"Z6JR5YWaA43j98tX","flags":{},"type":2,"text":"Hache à 2 mains","img":"systems/foundryvtt-reve-de-dragon/icons/competence_hache_a_2_mains.png","collection":"foundryvtt-reve-de-dragon.competences","resultId":"F97wHYDsQ5UyvJnb","weight":1,"range":[6,6],"drawn":false},{"_id":"r5JIcqBekKckdNQt","flags":{},"type":2,"text":"Lance","img":"systems/foundryvtt-reve-de-dragon/icons/competence_lance.png","collection":"foundryvtt-reve-de-dragon.competences","resultId":"zPTXua2Kq6TeBTTZ","weight":1,"range":[7,8],"drawn":false},{"_id":"vLY1W9u2uYuhPkQV","flags":{},"type":2,"text":"Masse à 1 main","img":"systems/foundryvtt-reve-de-dragon/icons/competence_masse_1_main.png","collection":"foundryvtt-reve-de-dragon.competences","resultId":"cMHm3gQr9rUp4iPK","weight":1,"range":[9,9],"drawn":false},{"_id":"HrHsJd2KcoKr9KTJ","flags":{},"type":2,"text":"Masse à 2 mains","img":"systems/foundryvtt-reve-de-dragon/icons/competence_masse_2_mains.png","collection":"foundryvtt-reve-de-dragon.competences","resultId":"BMAloiSbDKOu3b4C","weight":1,"range":[10,10],"drawn":false},{"_id":"X87jQ9IKmiDJSdVM","flags":{},"type":2,"text":"Fléau","img":"systems/foundryvtt-reve-de-dragon/icons/competence_fleau.png","collection":"foundryvtt-reve-de-dragon.competences","resultId":"r79VAGS1fRUm4oAd","weight":1,"range":[11,12],"drawn":false},{"_id":"X21M9ux2yL5eEP97","flags":{},"type":2,"text":"Armes d'hast","img":"systems/foundryvtt-reve-de-dragon/icons/competence_armes_hast.png","collection":"foundryvtt-reve-de-dragon.competences","resultId":"rwsHwIDszSIPBkrO","weight":1,"range":[13,16],"drawn":false},{"_id":"YgAGBkMD7xY1zZ73","flags":{},"type":2,"text":"Corps à corps","img":"systems/foundryvtt-reve-de-dragon/icons/competence_corps_a_corps.png","collection":"foundryvtt-reve-de-dragon.competences","resultId":"8Uj41cL5Qlxxy675","weight":1,"range":[17,18],"drawn":false},{"_id":"wz5G0AAKv3iv8mO5","flags":{},"type":2,"text":"Arbalète","img":"systems/foundryvtt-reve-de-dragon/icons/competence_arbalete.png","collection":"foundryvtt-reve-de-dragon.competences","resultId":"lt9VC7PkX4Faiduq","weight":1,"range":[19,20],"drawn":false},{"_id":"pHWfUuHd53tv75mk","flags":{},"type":2,"text":"Arc","img":"systems/foundryvtt-reve-de-dragon/icons/competence_arc.png","collection":"foundryvtt-reve-de-dragon.competences","resultId":"tVbFkKSN4n0RSrFU","weight":1,"range":[21,22],"drawn":false},{"_id":"uWULinOEr2zT9Afy","flags":{},"type":2,"text":"Dague de jet","img":"systems/foundryvtt-reve-de-dragon/icons/competence_dague_jet.png","collection":"foundryvtt-reve-de-dragon.competences","resultId":"thJy5AN0qePmfpJu","weight":1,"range":[23,24],"drawn":false},{"_id":"Q5gHNcgr8PAw5YKC","flags":{},"type":2,"text":"Javelot","img":"systems/foundryvtt-reve-de-dragon/icons/competence_javelot.png","collection":"foundryvtt-reve-de-dragon.competences","resultId":"neuzZG2C5C0IJ1yk","weight":1,"range":[25,26],"drawn":false},{"_id":"q2cdTOR6XFhX3m6z","flags":{},"type":2,"text":"Fronde","img":"systems/foundryvtt-reve-de-dragon/icons/competence_fronde.png","collection":"foundryvtt-reve-de-dragon.competences","resultId":"iNXKIfaETtgSGA0S","weight":1,"range":[27,28],"drawn":false},{"_id":"miq7pP6fjWbV38k6","flags":{},"type":2,"text":"Fouet","img":"systems/foundryvtt-reve-de-dragon/icons/competence_fouet.png","collection":"foundryvtt-reve-de-dragon.competences","resultId":"vIQVQxUeiw36hztI","weight":1,"range":[29,30],"drawn":false},{"_id":"UitlRjiMGmRYUvlU","flags":{},"type":2,"text":"Esquive","img":"systems/foundryvtt-reve-de-dragon/icons/competence_esquive.png","collection":"foundryvtt-reve-de-dragon.competences","resultId":"oFje22fZF1FaCQhN","weight":1,"range":[31,32],"drawn":false},{"_id":"KJGW2JDBVWtrztqn","flags":{},"type":2,"text":"Bouclier","img":"systems/foundryvtt-reve-de-dragon/icons/competence_bouclier.png","collection":"foundryvtt-reve-de-dragon.competences","resultId":"SJE3ghtswQwP1dIy","weight":1,"range":[33,34],"drawn":false},{"_id":"n2qjILAd4g1xrxaW","flags":{},"type":2,"text":"Chant","img":"systems/foundryvtt-reve-de-dragon/icons/competence_chant.png","collection":"foundryvtt-reve-de-dragon.competences","resultId":"LE4nA119la5cd0bC","weight":1,"range":[35,40],"drawn":false},{"_id":"MsDPOVPwFbEUIsy7","flags":{},"type":2,"text":"Danse","img":"systems/foundryvtt-reve-de-dragon/icons/competence_danse.png","collection":"foundryvtt-reve-de-dragon.competences","resultId":"LhP3Y0qCBHNp2atl","weight":1,"range":[41,46],"drawn":false},{"_id":"hlnKnwQNu29rmXNk","flags":{},"type":2,"text":"Discrétion","img":"systems/foundryvtt-reve-de-dragon/icons/competence_discretion.png","collection":"foundryvtt-reve-de-dragon.competences","resultId":"94P55yZfeipCGbsr","weight":1,"range":[47,48],"drawn":false},{"_id":"rDtXw3Q7JMWKrYaF","flags":{},"type":2,"text":"Escalade","img":"systems/foundryvtt-reve-de-dragon/icons/competence_escalade.png","collection":"foundryvtt-reve-de-dragon.competences","resultId":"gECPPcn6j3B3sWTS","weight":1,"range":[49,50],"drawn":false},{"_id":"Mdk3L6zOs99uxkq3","flags":{},"type":2,"text":"Saut","img":"systems/foundryvtt-reve-de-dragon/icons/competence_saut.png","collection":"foundryvtt-reve-de-dragon.competences","resultId":"9ICvksiNG6Bhm8CE","weight":1,"range":[51,52],"drawn":false},{"_id":"tRMYNJVd0tzJN39A","flags":{},"type":2,"text":"Cuisine","img":"systems/foundryvtt-reve-de-dragon/icons/competence_cuisine.png","collection":"foundryvtt-reve-de-dragon.competences","resultId":"3qRzl3nhLZNsoDsI","weight":1,"range":[53,58],"drawn":false},{"_id":"tZuba0mG2fjPhJ8g","flags":{},"type":2,"text":"Course","img":"systems/foundryvtt-reve-de-dragon/icons/competence_course.png","collection":"foundryvtt-reve-de-dragon.competences","resultId":"Jz4AZdDlSjsyoUsm","weight":1,"range":[59,60],"drawn":false},{"_id":"9NYb0ZFnIVJ8nKjv","flags":{},"type":2,"text":"Dessin","img":"systems/foundryvtt-reve-de-dragon/icons/competence_dessin.png","collection":"foundryvtt-reve-de-dragon.competences","resultId":"OVcZE4kfiPYEOzgm","weight":1,"range":[61,66],"drawn":false},{"_id":"PYpbLaUERUqrCZSM","flags":{},"type":2,"text":"Séduction","img":"systems/foundryvtt-reve-de-dragon/icons/competence_seduction.png","collection":"foundryvtt-reve-de-dragon.competences","resultId":"AbM6lJ7DI2UAWLxj","weight":1,"range":[67,70],"drawn":false},{"_id":"4GIFGmx6kBMFwy4o","flags":{},"type":2,"text":"Vigilance","img":"systems/foundryvtt-reve-de-dragon/icons/competence_vigilance.png","collection":"foundryvtt-reve-de-dragon.competences","resultId":"VyAJK54OPjiRt8oH","weight":1,"range":[71,72],"drawn":false},{"_id":"WibqvGxsQ1hhEmuB","flags":{},"type":2,"text":"Bricolage","img":"systems/foundryvtt-reve-de-dragon/icons/competence_bricolage.png","collection":"foundryvtt-reve-de-dragon.competences","resultId":"tvIGIPaEJZBaySil","weight":1,"range":[73,78],"drawn":false},{"_id":"gQogDfrwBKftnrNg","flags":{},"type":2,"text":"Charpenterie","img":"systems/foundryvtt-reve-de-dragon/icons/competence_charpenterie.png","collection":"foundryvtt-reve-de-dragon.competences","resultId":"FqLWG6xjISKMLPiX","weight":1,"range":[79,84],"drawn":false},{"_id":"AhRKxgdmYdql3iJv","flags":{},"type":2,"text":"Comédie","img":"systems/foundryvtt-reve-de-dragon/icons/competence_comedie.png","collection":"foundryvtt-reve-de-dragon.competences","resultId":"2JLK5e97WbTM5WxX","weight":1,"range":[85,90],"drawn":false},{"_id":"iWONUpMsZrIovrW6","flags":{},"type":2,"text":"Commerce","img":"systems/foundryvtt-reve-de-dragon/icons/competence_defaut.png","collection":"foundryvtt-reve-de-dragon.competences","resultId":"zO7Av9hJ2vdJiPgI","weight":1,"range":[91,96],"drawn":false},{"_id":"8p2nM9b9NKgXftC6","flags":{},"type":2,"text":"Equitation","img":"systems/foundryvtt-reve-de-dragon/icons/competence_equitation.png","collection":"foundryvtt-reve-de-dragon.competences","resultId":"F5iQNrZSeJsfyTnV","weight":1,"range":[97,102],"drawn":false},{"_id":"nTs5kJa2Y1PlsdR6","flags":{},"type":2,"text":"Maçonnerie","img":"systems/foundryvtt-reve-de-dragon/icons/competence_maconnerie.png","collection":"foundryvtt-reve-de-dragon.competences","resultId":"dwGVDTUJYP9FcmWM","weight":1,"range":[103,108],"drawn":false},{"_id":"SLGmlhYD3yIv9RTw","flags":{},"type":2,"text":"Musique","img":"systems/foundryvtt-reve-de-dragon/icons/competence_musique.png","collection":"foundryvtt-reve-de-dragon.competences","resultId":"wefdYe0kvWKioPmk","weight":1,"range":[109,114],"drawn":false},{"_id":"k3MQErJ6fhaXjy5Q","flags":{},"type":2,"text":"Pickpocket","img":"systems/foundryvtt-reve-de-dragon/icons/competence_pickpocket.png","collection":"foundryvtt-reve-de-dragon.competences","resultId":"dT5cvI7q1HcrLaT1","weight":1,"range":[115,120],"drawn":false},{"_id":"nPfyawbN49pUBjmN","flags":{},"type":2,"text":"Survie en Extérieur","img":"systems/foundryvtt-reve-de-dragon/icons/competence_survie_exterieur.png","collection":"foundryvtt-reve-de-dragon.competences","resultId":"ue5iDSm2f4efQDWO","weight":1,"range":[121,122],"drawn":false},{"_id":"iQXHhRe1yaxkoI9q","flags":{},"type":2,"text":"Survie en Cité","img":"systems/foundryvtt-reve-de-dragon/icons/competence_survie_cite.png","collection":"foundryvtt-reve-de-dragon.competences","resultId":"oHnSnCw1RAW5t15S","weight":1,"range":[123,124],"drawn":false},{"_id":"ZhPRAyUuEYcG9X5z","flags":{},"type":2,"text":"Survie en Désert","img":"systems/foundryvtt-reve-de-dragon/icons/competence_survie_desert.png","collection":"foundryvtt-reve-de-dragon.competences","resultId":"vDOAyWc2YnuhNnFF","weight":1,"range":[125,126],"drawn":false},{"_id":"xKmAbx1nMbRWRaUf","flags":{},"type":2,"text":"Survie en Forêt","img":"systems/foundryvtt-reve-de-dragon/icons/competence_survie_foret.png","collection":"foundryvtt-reve-de-dragon.competences","resultId":"PbvubzCxnOSnWLpG","weight":1,"range":[127,128],"drawn":false},{"_id":"adlAhNycLEPEEDKG","flags":{},"type":2,"text":"Survie en Glaces","img":"systems/foundryvtt-reve-de-dragon/icons/competence_survie_glace.png","collection":"foundryvtt-reve-de-dragon.competences","resultId":"uGPqmorAYxv1jboC","weight":1,"range":[129,130],"drawn":false},{"_id":"gpfI4rxYtxorstEt","flags":{},"type":2,"text":"Survie en Marais","img":"systems/foundryvtt-reve-de-dragon/icons/competence_survie_marais.png","collection":"foundryvtt-reve-de-dragon.competences","resultId":"azn3Sm7XYKP78huL","weight":1,"range":[131,132],"drawn":false},{"_id":"2LTUJ4WQuFHdbUCa","flags":{},"type":2,"text":"Survie en Montagne","img":"systems/foundryvtt-reve-de-dragon/icons/competence_survie_montagne.png","collection":"foundryvtt-reve-de-dragon.competences","resultId":"BzqBOeqS6HvJhqey","weight":1,"range":[133,134],"drawn":false},{"_id":"ZU0NR8n5OzQbqvOS","flags":{},"type":2,"text":"Survie en Sous-Sol","img":"systems/foundryvtt-reve-de-dragon/icons/competence_survie_sous_sol.png","collection":"foundryvtt-reve-de-dragon.competences","resultId":"6pXxEdeo7xcDvgx0","weight":1,"range":[135,136],"drawn":false},{"_id":"PTIrHz6GbGynuX5n","flags":{},"type":2,"text":"Travestissement","img":"systems/foundryvtt-reve-de-dragon/icons/competence_travestissement.png","collection":"foundryvtt-reve-de-dragon.competences","resultId":"w9QubIHdWEUorges","weight":1,"range":[137,142],"drawn":false},{"_id":"izWJA8NgUBQ7jvwB","flags":{},"type":2,"text":"Acrobatie","img":"systems/foundryvtt-reve-de-dragon/icons/competence_acrobatie.png","collection":"foundryvtt-reve-de-dragon.competences","resultId":"zyNYa3hYtrOcF2jA","weight":1,"range":[143,144],"drawn":false},{"_id":"lZevW2I6ujT6Dy03","flags":{},"type":2,"text":"Métallurgie","img":"systems/foundryvtt-reve-de-dragon/icons/competence_metallurgie.png","collection":"foundryvtt-reve-de-dragon.competences","resultId":"CHyk96ypxMrg8VXh","weight":1,"range":[145,148],"drawn":false},{"_id":"Lpxnhk9gR0Yj2G44","flags":{},"type":2,"text":"Jeu","img":"systems/foundryvtt-reve-de-dragon/icons/competence_jeu.png","collection":"foundryvtt-reve-de-dragon.competences","resultId":"3VSMRwMYpOi83wgE","weight":1,"range":[149,152],"drawn":false},{"_id":"tXD0hBXYivgfJDhs","flags":{},"type":2,"text":"Jonglerie","img":"systems/foundryvtt-reve-de-dragon/icons/competence_jonglerie.png","collection":"foundryvtt-reve-de-dragon.competences","resultId":"owCW3nZDvlJy1kCT","weight":1,"range":[153,158],"drawn":false},{"_id":"6ymG1y1FjO6JEG5q","flags":{},"type":2,"text":"Maroquinerie","img":"systems/foundryvtt-reve-de-dragon/icons/competence_maroquinerie.png","collection":"foundryvtt-reve-de-dragon.competences","resultId":"XYMQBxFKSs2nPW0J","weight":1,"range":[159,164],"drawn":false},{"_id":"N3sEj99PrwXKqCux","flags":{},"type":2,"text":"Natation","img":"systems/foundryvtt-reve-de-dragon/icons/competence_natation.png","collection":"foundryvtt-reve-de-dragon.competences","resultId":"qBUtHhyjvrg1c34I","weight":1,"range":[165,166],"drawn":false},{"_id":"nYjtV3JAOcn1GIrw","flags":{},"type":2,"text":"Navigation","img":"systems/foundryvtt-reve-de-dragon/icons/competence_navigation.png","collection":"foundryvtt-reve-de-dragon.competences","resultId":"AXeWswf2Dth9ysvy","weight":1,"range":[167,172],"drawn":false},{"_id":"ngj5LmOpQ8upunfY","flags":{},"type":2,"text":"Orfèvrerie","img":"systems/foundryvtt-reve-de-dragon/icons/competence_orfevrerie.png","collection":"foundryvtt-reve-de-dragon.competences","resultId":"PMOjO2CdedH1UTyi","weight":1,"range":[173,176],"drawn":false},{"_id":"br0H32GMbmv8IYsl","flags":{},"type":2,"text":"Serrurerie","img":"systems/foundryvtt-reve-de-dragon/icons/competence_serrurerie.png","collection":"foundryvtt-reve-de-dragon.competences","resultId":"PMnsXDyeB8w8ZG2k","weight":1,"range":[177,178],"drawn":false},{"_id":"NWkkbA5ifEZ3hclg","flags":{},"type":2,"text":"Alchimie","img":"systems/foundryvtt-reve-de-dragon/icons/competence_alchimie.png","collection":"foundryvtt-reve-de-dragon.competences","resultId":"TAKRb9CdMUhs9dd4","weight":1,"range":[179,180],"drawn":false},{"_id":"AYR0QpNd3HJVh5UL","flags":{},"type":2,"text":"Astrologie","img":"systems/foundryvtt-reve-de-dragon/icons/competence_astrologie.png","collection":"foundryvtt-reve-de-dragon.competences","resultId":"GIIQm22Q4bBsmxpE","weight":1,"range":[181,182],"drawn":false},{"_id":"BMOTHEAQWnjfxTtc","flags":{},"type":2,"text":"Botanique","img":"systems/foundryvtt-reve-de-dragon/icons/competence_botanique.png","collection":"foundryvtt-reve-de-dragon.competences","resultId":"PmwXYvmutlyQEonB","weight":1,"range":[183,184],"drawn":false},{"_id":"H6lZzKByCVhIUldD","flags":{},"type":2,"text":"Chirurgie","img":"systems/foundryvtt-reve-de-dragon/icons/competence_chirurgie.png","collection":"foundryvtt-reve-de-dragon.competences","resultId":"BlG2YPATIbnY3m9P","weight":1,"range":[185,186],"drawn":false},{"_id":"ZkXubH48o5I7ExvT","flags":{},"type":2,"text":"Légendes","img":"systems/foundryvtt-reve-de-dragon/icons/competence_legendes.png","collection":"foundryvtt-reve-de-dragon.competences","resultId":"i3wMVkXObzlDVZTG","weight":1,"range":[187,188],"drawn":false},{"_id":"nqtBe0jgDEtvm2Ob","flags":{},"type":2,"text":"Ecriture","img":"systems/foundryvtt-reve-de-dragon/icons/competence_ecriture.png","collection":"foundryvtt-reve-de-dragon.competences","resultId":"qmIpUeedvjC8nGF1","weight":1,"range":[189,190],"drawn":false},{"_id":"dfQg2QkE2O1NLdeh","flags":{},"type":2,"text":"Médecine","img":"systems/foundryvtt-reve-de-dragon/icons/competence_medecine.png","collection":"foundryvtt-reve-de-dragon.competences","resultId":"XK2TlYnhR8FlDaEi","weight":1,"range":[191,192],"drawn":false},{"_id":"374XHlzYK5azgOch","flags":{},"type":2,"text":"Zoologie","img":"systems/foundryvtt-reve-de-dragon/icons/competence_zoologie.png","collection":"foundryvtt-reve-de-dragon.competences","resultId":"c5wursWW03ckpyqn","weight":1,"range":[193,194],"drawn":false},{"_id":"85p5T2AdujHhCrgr","flags":{},"type":2,"text":"Voie d'Oniros","img":"systems/foundryvtt-reve-de-dragon/icons/competence_oniros.png","collection":"foundryvtt-reve-de-dragon.competences","resultId":"nnR2UHelUaF8dxYn","weight":1,"range":[195,196],"drawn":false},{"_id":"VT5HflXvc0kdHFV3","flags":{},"type":2,"text":"Voie d'Hypnos","img":"systems/foundryvtt-reve-de-dragon/icons/competence_hypnos.png","collection":"foundryvtt-reve-de-dragon.competences","resultId":"bt2cR4aE6lIOeg4F","weight":1,"range":[197,198],"drawn":false},{"_id":"cmxNBwfCdgMUDGJ9","flags":{},"type":2,"text":"Voie de Narcos","img":"systems/foundryvtt-reve-de-dragon/icons/competence_narcos.png","collection":"foundryvtt-reve-de-dragon.competences","resultId":"u1Peok1EYkBcVsmN","weight":1,"range":[199,200],"drawn":false}],"formula":"1d200","replacement":false,"displayRoll":true,"_id":"E0WLgjn6LA9WsvKJ"}
-{"name":"Ombre de Thanatos","permission":{"default":0,"jOzRscDxoXZWpGS6":3},"flags":{},"description":"","results":[{"_id":"wpzuulK7z3G5qffV","flags":{},"type":2,"text":"Mauvaise rencontre en perspective","img":"icons/svg/mystery-man.svg","collection":"foundryvtt-reve-de-dragon.ombres-de-thanatos","resultId":"S7se7qPnL6WDg5U5","weight":1,"range":[1,3],"drawn":false},{"_id":"SoUADgjH4T8RvdxX","flags":{},"type":2,"text":"Pélerinage","img":"icons/svg/mystery-man.svg","collection":"foundryvtt-reve-de-dragon.ombres-de-thanatos","resultId":"PYDb8gvRWeCAdPEZ","weight":1,"range":[4,6],"drawn":false},{"_id":"4hb8cPu0biIIz8b5","flags":{},"type":2,"text":"Conquête","img":"icons/svg/mystery-man.svg","collection":"foundryvtt-reve-de-dragon.ombres-de-thanatos","resultId":"N9j8K6x89BdS7ZKN","weight":1,"range":[7,9],"drawn":false},{"_id":"RXDO4FsDh4jAsDLs","flags":{},"type":2,"text":"Inertie draconique","img":"icons/svg/mystery-man.svg","collection":"foundryvtt-reve-de-dragon.ombres-de-thanatos","resultId":"PmEjVox3Q6SPF730","weight":1,"range":[10,12],"drawn":false},{"_id":"CozTCNQrrfZ59sf1","flags":{},"type":2,"text":"Urgence draconique","img":"icons/svg/mystery-man.svg","collection":"foundryvtt-reve-de-dragon.ombres-de-thanatos","resultId":"3dnmi4Fyh5eUQcyP","weight":1,"range":[13,15],"drawn":false},{"_id":"QvG73iq6hBlenhEp","flags":{},"type":2,"text":"Réinsertion aléatoire","img":"icons/svg/mystery-man.svg","collection":"foundryvtt-reve-de-dragon.ombres-de-thanatos","resultId":"yEHdCabJYx0qvoL5","weight":1,"range":[16,18],"drawn":false},{"_id":"HMyr7XykkAPWmN8t","flags":{},"type":2,"text":"Montée laborieuse","img":"icons/svg/mystery-man.svg","collection":"foundryvtt-reve-de-dragon.ombres-de-thanatos","resultId":"uQ4PwcwplvZarfn1","weight":1,"range":[19,21],"drawn":false},{"_id":"ik7dIzDzJ1wAUkgf","flags":{},"type":2,"text":"Coup de barre","img":"icons/svg/mystery-man.svg","collection":"foundryvtt-reve-de-dragon.ombres-de-thanatos","resultId":"PMz7SaB6sRxhwrWw","weight":1,"range":[22,24],"drawn":false},{"_id":"aW9V5ygWHPdW1Jtf","flags":{},"type":2,"text":"Insomnie","img":"icons/svg/mystery-man.svg","collection":"foundryvtt-reve-de-dragon.ombres-de-thanatos","resultId":"6MUcjYfxfi45STvo","weight":1,"range":[25,27],"drawn":false},{"_id":"2FYKcBFesQzcXbUA","flags":{},"type":2,"text":"Dépouillement","img":"icons/svg/mystery-man.svg","collection":"foundryvtt-reve-de-dragon.ombres-de-thanatos","resultId":"UmvGxA4cFSoRE82Z","weight":1,"range":[28,30],"drawn":false},{"_id":"IyBmZMV61fY9UYA0","flags":{},"type":2,"text":"Amnésie sélective","img":"icons/svg/mystery-man.svg","collection":"foundryvtt-reve-de-dragon.ombres-de-thanatos","resultId":"aZWuRmi8lplZQcdM","weight":1,"range":[31,33],"drawn":false},{"_id":"1j3visYhg7NhqCDT","flags":{},"type":2,"text":"Souvenir morbide de l'archétype","img":"icons/svg/mystery-man.svg","collection":"foundryvtt-reve-de-dragon.ombres-de-thanatos","resultId":"RrPMV2HW2Rg8POK1","weight":1,"range":[34,38],"drawn":false},{"_id":"lpsX7oyzuuAd64h0","flags":{},"type":2,"text":"Désir de boire du sang chaud","img":"icons/svg/mystery-man.svg","collection":"foundryvtt-reve-de-dragon.ombres-de-thanatos","resultId":"DnhuuGUEbOF95JlN","weight":1,"range":[39,42],"drawn":false},{"_id":"YunZkN9eCnjZ1D8m","flags":{},"type":2,"text":"Désir de dormir dans un cercueil","img":"icons/svg/mystery-man.svg","collection":"foundryvtt-reve-de-dragon.ombres-de-thanatos","resultId":"fO1jjVlOb6faLv3T","weight":1,"range":[43,46],"drawn":false},{"_id":"tEj1NQTA0mhzM1p1","flags":{},"type":2,"text":"Désir d'assister à une pendaison","img":"icons/svg/mystery-man.svg","collection":"foundryvtt-reve-de-dragon.ombres-de-thanatos","resultId":"wqWkQQsAPVlFw4ft","weight":1,"range":[47,50],"drawn":false},{"_id":"dosUf11v2O51O6t3","flags":{},"type":2,"text":"Désir de parler à un crâne (humain)","img":"icons/svg/mystery-man.svg","collection":"foundryvtt-reve-de-dragon.ombres-de-thanatos","resultId":"lz3ghhJzkPRWJ2jz","weight":1,"range":[51,54],"drawn":false},{"_id":"PHka9Cubw22yZe8q","flags":{},"type":2,"text":"Désir d'entendre hurler de terreur","img":"icons/svg/mystery-man.svg","collection":"foundryvtt-reve-de-dragon.ombres-de-thanatos","resultId":"twUoR8ALYiabkfoE","weight":1,"range":[55,58],"drawn":false},{"_id":"UQNVsTqU0H8DNcKy","flags":{},"type":2,"text":"Désir de blesser une femme","img":"icons/svg/mystery-man.svg","collection":"foundryvtt-reve-de-dragon.ombres-de-thanatos","resultId":"gT0PQAxlYrtITyut","weight":1,"range":[59,62],"drawn":false},{"_id":"4LrCLY6tNKSY8Yuk","flags":{},"type":2,"text":"Désir de blesser un enfant","img":"icons/svg/mystery-man.svg","collection":"foundryvtt-reve-de-dragon.ombres-de-thanatos","resultId":"2KbzOC2aj98CiQbW","weight":1,"range":[63,66],"drawn":false},{"_id":"ZuLtoh6m8e2RHcx5","flags":{},"type":2,"text":"Désir d'escalade difficile","img":"icons/svg/mystery-man.svg","collection":"foundryvtt-reve-de-dragon.ombres-de-thanatos","resultId":"2KM1yiEOE0ZdT2oL","weight":1,"range":[67,70],"drawn":false},{"_id":"QwHAJQawRnx4Go3h","flags":{},"type":2,"text":"Injurier la première personne inconnue rencontrée","img":"icons/svg/mystery-man.svg","collection":"foundryvtt-reve-de-dragon.ombres-de-thanatos","resultId":"fUKNZ0uEG2y2PkOk","weight":1,"range":[71,73],"drawn":false},{"_id":"xxC1Kj1hWxyp06lG","flags":{},"type":2,"text":"Couardise irraisonnée","img":"icons/svg/mystery-man.svg","collection":"foundryvtt-reve-de-dragon.ombres-de-thanatos","resultId":"cUkRSRz5DJYb3WM8","weight":1,"range":[74,76],"drawn":false},{"_id":"5f78aQb3Yc34DXTs","flags":{},"type":2,"text":"Héroïsme forcené","img":"icons/svg/mystery-man.svg","collection":"foundryvtt-reve-de-dragon.ombres-de-thanatos","resultId":"spYuiInqbCoDsKvd","weight":1,"range":[77,85],"drawn":false},{"_id":"YK5vMX4fw2cmezYx","flags":{},"type":2,"text":"Haine fatale","img":"icons/svg/mystery-man.svg","collection":"foundryvtt-reve-de-dragon.ombres-de-thanatos","resultId":"dFf8jaC0RvidC1ZC","weight":1,"range":[86,95],"drawn":false},{"_id":"QMsLQ7UYnGgAHX6w","flags":{},"type":2,"text":"Infarctus","img":"icons/svg/mystery-man.svg","collection":"foundryvtt-reve-de-dragon.ombres-de-thanatos","resultId":"e67rXcuO236ioYAr","weight":1,"range":[96,100],"drawn":false}],"formula":"1d100","replacement":true,"displayRoll":true,"_id":"Q4OENe3IxeVk2emd"}
-{"_id":"U7lFRPBHeIH8u9J1","name":"Queues de dragon","img":"icons/svg/d20-grey.svg","description":"Une queue de Dragon vient perturber le Haut Rêvant, mais peut éventuellement être refoulée.","results":[{"_id":"DnmiOB1RpCmVLch9","flags":{},"type":2,"text":"Mauvaise rencontre en perspective","img":"icons/svg/mystery-man.svg","collection":"foundryvtt-reve-de-dragon.queues-de-dragon","resultId":"0jrEZ62Q2Jz4kBGf","weight":1,"range":[1,4],"drawn":false,"rangeL":1,"rangeH":4},{"_id":"WOwIemPaKZHdCMvr","flags":{},"type":2,"text":"Pèlerinage","img":"systems/foundryvtt-reve-de-dragon/icons/queue_dragon.webp","collection":"foundryvtt-reve-de-dragon.queues-de-dragon","resultId":"RVslW735GbPbXCpP","weight":1,"range":[5,8],"drawn":false,"rangeL":5,"rangeH":8},{"_id":"gfYTSiUicNZwAjRo","flags":{},"type":2,"text":"Conquête","img":"icons/svg/mystery-man.svg","collection":"foundryvtt-reve-de-dragon.queues-de-dragon","resultId":"lBkO8FvFqXoKNhvk","weight":1,"range":[9,12],"drawn":false,"rangeL":9,"rangeH":12},{"_id":"naqhaGGmAJeluTY0","flags":{},"type":2,"text":"Inertie draconique","img":"icons/svg/mystery-man.svg","collection":"foundryvtt-reve-de-dragon.queues-de-dragon","resultId":"EUrxQGd7FuW628NS","weight":1,"range":[13,16],"drawn":false,"rangeL":13,"rangeH":16},{"_id":"x2yKZ5M27TS3T1sz","flags":{},"type":2,"text":"Urgence draconique","img":"icons/svg/mystery-man.svg","collection":"foundryvtt-reve-de-dragon.queues-de-dragon","resultId":"OSV2b7bVWv2SCfUY","weight":1,"range":[17,20],"drawn":false,"rangeL":17,"rangeH":20},{"_id":"iioHGaPajVKNkstK","flags":{},"type":2,"text":"Réinsertion aléatoire","img":"icons/svg/mystery-man.svg","collection":"foundryvtt-reve-de-dragon.queues-de-dragon","resultId":"iHuLw0I1Gc5mIucG","weight":1,"range":[21,24],"drawn":false,"rangeL":21,"rangeH":24},{"_id":"JYmA9tItuZcMPOOV","flags":{},"type":2,"text":"Montée laborieuse","img":"icons/svg/mystery-man.svg","collection":"foundryvtt-reve-de-dragon.queues-de-dragon","resultId":"5knw1NcnBsLIjHpr","weight":1,"range":[25,28],"drawn":false,"rangeL":25,"rangeH":28},{"_id":"CiDHbsTLdHa3OH0P","flags":{},"type":2,"text":"Coup de barre","img":"icons/svg/mystery-man.svg","collection":"foundryvtt-reve-de-dragon.queues-de-dragon","resultId":"Qgj5eSMpQ0IDHwZX","weight":1,"range":[29,33],"drawn":false,"rangeL":29,"rangeH":33},{"_id":"zlA5O6YKgVhlau0g","flags":{},"type":2,"text":"Insomnie","img":"icons/svg/mystery-man.svg","collection":"foundryvtt-reve-de-dragon.queues-de-dragon","resultId":"kHWwwxA0alcpDYpf","weight":1,"range":[34,38],"drawn":false,"rangeL":34,"rangeH":38},{"_id":"fG9uQ9ZczIsiAZiu","flags":{},"type":2,"text":"Dépouillement","img":"icons/svg/mystery-man.svg","collection":"foundryvtt-reve-de-dragon.queues-de-dragon","resultId":"vft88ioHpGxMzdML","weight":1,"range":[39,43],"drawn":false,"rangeL":39,"rangeH":43},{"_id":"0E9o8Ok7XGHQn9td","flags":{},"type":2,"text":"Amnésie sélective","img":"icons/svg/mystery-man.svg","collection":"foundryvtt-reve-de-dragon.queues-de-dragon","resultId":"iJw6j7kuP1eAHIck","weight":1,"range":[44,48],"drawn":false,"rangeL":44,"rangeH":48},{"_id":"tR0mP1r8vZkkIZCN","flags":{},"type":2,"text":"Souvenir obsessionnel de l'archétype","img":"icons/svg/mystery-man.svg","collection":"foundryvtt-reve-de-dragon.queues-de-dragon","resultId":"1gGVlZM0UyifL6RK","weight":1,"range":[49,60],"drawn":false,"rangeL":49,"rangeH":60},{"_id":"6I1yzi0EXNACViG7","flags":{},"type":2,"text":"Coup de foudre fatal","img":"icons/svg/mystery-man.svg","collection":"foundryvtt-reve-de-dragon.queues-de-dragon","resultId":"32LbwxxokC9Tn370","weight":1,"range":[61,65],"drawn":false,"rangeL":61,"rangeH":65},{"_id":"56YHZq0lAtlzR4W8","flags":{},"type":2,"text":"Masque de Narcos","img":"icons/svg/mystery-man.svg","collection":"foundryvtt-reve-de-dragon.queues-de-dragon","resultId":"TmEeikWOQt6NZGVY","weight":1,"range":[66,70],"drawn":false,"rangeL":66,"rangeH":70},{"_id":"0DrCevELHAHP1djk","flags":{},"type":2,"text":"Désir lancinant","img":"icons/svg/mystery-man.svg","collection":"foundryvtt-reve-de-dragon.queues-de-dragon","resultId":"Ltgqj86rYQr8D8LW","weight":1,"range":[71,85],"drawn":false,"rangeL":71,"rangeH":85},{"_id":"S4rUoU2hlj6EugD4","flags":{},"type":2,"text":"Idée fixe","img":"icons/svg/mystery-man.svg","collection":"foundryvtt-reve-de-dragon.queues-de-dragon","resultId":"J3XtcVuQo846U1OT","weight":1,"range":[86,100],"drawn":false,"rangeL":86,"rangeH":100}],"formula":"1d100","replacement":true,"displayRoll":true,"folder":null,"sort":0,"permission":{"default":0,"jOzRscDxoXZWpGS6":3},"flags":{}}
-{"name":"Têtes de Dragon pour tous personnages","permission":{"default":0,"jOzRscDxoXZWpGS6":3},"flags":{},"description":"Quand une tête est dite unique, retirer si le personnage la possède déjà. Quand elle est dite cumulable, le jet de dés indiqué bénéficie d’un nouveau bonus de +1 chaque fois qu’elle est ré-obtenue. Par exemple un jet de Vue à zéro devient un jet de Vue à +1.","results":[{"_id":"dVS0FZiln8xbcDVW","flags":{},"type":2,"text":"Augmentation de caractéristique","img":"icons/svg/mystery-man.svg","collection":"foundryvtt-reve-de-dragon.tetes-de-dragon-pour-tous-personnages","resultId":"OFWK2rZkh1S5Hbjh","weight":1,"range":[1,7],"drawn":false},{"_id":"bMN9j7EA6quRhcjQ","flags":{},"type":2,"text":"Don de haut-rêve","img":"icons/svg/mystery-man.svg","collection":"foundryvtt-reve-de-dragon.tetes-de-dragon-pour-tous-personnages","resultId":"YwmmMSH52pNJsOn3","weight":1,"range":[35,40],"drawn":false},{"_id":"tHjCWtOXt9rZcxeE","flags":{},"type":2,"text":"Souvenir immédiat de l'archétype","img":"icons/svg/mystery-man.svg","collection":"foundryvtt-reve-de-dragon.tetes-de-dragon-pour-tous-personnages","resultId":"FesXnBWChHcWfrBm","weight":1,"range":[8,14],"drawn":false},{"_id":"ik6qehStjGzSysdB","flags":{},"type":2,"text":"Don de sentir les haut-rêvants","img":"icons/svg/mystery-man.svg","collection":"foundryvtt-reve-de-dragon.tetes-de-dragon-pour-tous-personnages","resultId":"aAIbDFQ0Pz6XrHh6","weight":1,"range":[41,46],"drawn":false},{"_id":"m7luEPB0qCczWfe1","flags":{},"type":2,"text":"Don de sentir le mensonge","img":"icons/svg/mystery-man.svg","collection":"foundryvtt-reve-de-dragon.tetes-de-dragon-pour-tous-personnages","resultId":"OZZbiBiLlM6Y8lEY","weight":1,"range":[47,52],"drawn":false},{"_id":"IPB3m4ONBmaP4O3i","flags":{},"type":2,"text":"Don de résistance à la magie","img":"icons/svg/mystery-man.svg","collection":"foundryvtt-reve-de-dragon.tetes-de-dragon-pour-tous-personnages","resultId":"6gcyt965GKvDgG02","weight":1,"range":[53,58],"drawn":false},{"_id":"aLxOqRKLiuzwdzfI","flags":{},"type":2,"text":"Don de non-résistance à la magie","img":"icons/svg/mystery-man.svg","collection":"foundryvtt-reve-de-dragon.tetes-de-dragon-pour-tous-personnages","resultId":"egUb65MLFFKpLnkO","weight":1,"range":[59,64],"drawn":false},{"_id":"UuFHH4vl7mRH5MLu","flags":{},"type":2,"text":"Don de contrôler son sommeil","img":"icons/svg/mystery-man.svg","collection":"foundryvtt-reve-de-dragon.tetes-de-dragon-pour-tous-personnages","resultId":"N6guZDGzzZjt9GrR","weight":1,"range":[65,70],"drawn":false},{"_id":"lrQLebx8ZhV6fQRO","flags":{},"type":2,"text":"Don limité de résistance au poison","img":"icons/svg/mystery-man.svg","collection":"foundryvtt-reve-de-dragon.tetes-de-dragon-pour-tous-personnages","resultId":"THAUFNSNgSHfh06l","weight":1,"range":[71,76],"drawn":false},{"_id":"A3KZpG1yyL0pMMrQ","flags":{},"type":2,"text":"Don limité de résistance à la maladie","img":"icons/svg/mystery-man.svg","collection":"foundryvtt-reve-de-dragon.tetes-de-dragon-pour-tous-personnages","resultId":"CoXzAjCwGSWVM4cY","weight":1,"range":[77,82],"drawn":false},{"_id":"dN3DyGXso0ySK56W","flags":{},"type":2,"text":"Don d'apprivoiser les animaux","img":"icons/svg/mystery-man.svg","collection":"foundryvtt-reve-de-dragon.tetes-de-dragon-pour-tous-personnages","resultId":"wlbbh75GZWks3Ehb","weight":1,"range":[83,88],"drawn":false},{"_id":"vJxx7hRIgmVtBuU6","flags":{},"type":2,"text":"Don d'orientation","img":"icons/svg/mystery-man.svg","collection":"foundryvtt-reve-de-dragon.tetes-de-dragon-pour-tous-personnages","resultId":"slnKVCfHbLwbXi4Z","weight":1,"range":[89,94],"drawn":false},{"_id":"ZM3uOMpEwdrmkPw9","flags":{},"type":2,"text":"Don limité de guérison","img":"icons/svg/mystery-man.svg","collection":"foundryvtt-reve-de-dragon.tetes-de-dragon-pour-tous-personnages","resultId":"3EqDvQ0p4f73KZl5","weight":1,"range":[95,100],"drawn":false},{"_id":"D7A37IkCI5z2z1DV","flags":{},"type":2,"text":"Don limité de réussite","img":"icons/svg/mystery-man.svg","collection":"foundryvtt-reve-de-dragon.tetes-de-dragon-pour-tous-personnages","resultId":"R6LxyzYwAMCjKIr5","weight":1,"range":[15,21],"drawn":false},{"_id":"NbEruiuFMhnUna2U","flags":{},"type":2,"text":"Don de double chance","img":"icons/svg/mystery-man.svg","collection":"foundryvtt-reve-de-dragon.tetes-de-dragon-pour-tous-personnages","resultId":"zzD5wN03zwq0e5Cn","weight":1,"range":[22,28],"drawn":false},{"_id":"ZBVa1vrTaBrTE9p4","flags":{},"type":2,"text":"Don de voir la magie","img":"icons/svg/mystery-man.svg","collection":"foundryvtt-reve-de-dragon.tetes-de-dragon-pour-tous-personnages","resultId":"QWouooLkM7pE2yG1","weight":1,"range":[29,34],"drawn":false}],"formula":"1d100","replacement":true,"displayRoll":true,"_id":"VyoowwZ4vJJADDxR"}
-{"_id":"nbH4v630P7ARaAHk","name":"Idées fixes","permission":{"default":0,"jOzRscDxoXZWpGS6":3},"flags":{},"img":"icons/svg/d20-grey.svg","description":"Les idées fixes prennent effet immédiatement et durent jusqu’à l’extrême fin de l’heure du Château Dormant du lendemain. Si passé ce délai, l’occasion de les manifester ne s’est pas présentée, la queue prend fin néanmoins. Si elles entrent en contradiction avec une autre queue de Dragon, retirer. Les idées fixes peuvent être refoulées à tout moment au prix de 1 point de refoulement.","results":[{"_id":"xX6XGI6ujPDSbbob","flags":{},"type":2,"text":"Idée fixe : Ne s’exprimer que par des cris d’animaux (meuh ! coin-coin ! etc.)","img":"exprimer_cris.png","collection":"foundryvtt-reve-de-dragon.queues-de-dragon","resultId":"YCHBbRLiMzTH7IBj","weight":1,"range":[1,1],"drawn":false},{"_id":"gYN6fcQISs2H7kAn","flags":{},"type":2,"text":"Idée fixe : Garder les yeux bandés","img":"garder_yeux.png","collection":"foundryvtt-reve-de-dragon.queues-de-dragon","resultId":"E902EEYZHg3zFKq6","weight":1,"range":[2,2],"drawn":false},{"_id":"QIHOFfluPnEJFKHD","flags":{},"type":2,"text":"Idée fixe : Ne dire que «non» ou négation analogue","img":"dire_non.png","collection":"foundryvtt-reve-de-dragon.queues-de-dragon","resultId":"gMmqdJ9I7Mt8Tg3f","weight":1,"range":[3,3],"drawn":false},{"_id":"P0eaJjtQQfpNIL9I","flags":{},"type":2,"text":"Idée fixe : Garder sur soi 3d6 kilos de cailloux","img":"garder_cailloux.png","collection":"foundryvtt-reve-de-dragon.queues-de-dragon","resultId":"F8G3rdU1nfJzYwYR","weight":1,"range":[4,4],"drawn":false},{"_id":"PENvfmIpKFWee8rF","flags":{},"type":2,"text":"Idée fixe : Traîner son épée en laisse (ou sa meilleure arme)","img":"trainer_laisse.png","collection":"foundryvtt-reve-de-dragon.queues-de-dragon","resultId":"2j1q9e07ZLlIQDYl","weight":1,"range":[5,5],"drawn":false},{"_id":"6xT8v1ScJSZEente","flags":{},"type":2,"text":"Idée fixe : Garder une main sur la tête","img":"garder_main.png","collection":"foundryvtt-reve-de-dragon.queues-de-dragon","resultId":"iPYPgxL2uUnphStc","weight":1,"range":[6,6],"drawn":false},{"_id":"0CO9RJPygGdJT9nB","flags":{},"type":2,"text":"Idée fixe : Avoir le visage noirci à la cendre","img":"avoir_visage.png","collection":"foundryvtt-reve-de-dragon.queues-de-dragon","resultId":"6G0lF06jSryTduAt","weight":1,"range":[7,7],"drawn":false},{"_id":"XeCtzSCuEEm9q8TI","flags":{},"type":2,"text":"Idée fixe : Cracher dans toute nourriture ou boisson aperçue","img":"cracher_nourriture.png","collection":"foundryvtt-reve-de-dragon.queues-de-dragon","resultId":"22EQLBJfHVYs96iC","weight":1,"range":[8,8],"drawn":false},{"_id":"Sh5KRDvM7iXad6rK","flags":{},"type":2,"text":"Idée fixe : Anorexie. Ne rien avaler, ni solide, ni liquide, pas même une potion","img":"anorexie.png","collection":"foundryvtt-reve-de-dragon.queues-de-dragon","resultId":"0uc2pMIGL03Hq2Hn","weight":1,"range":[9,9],"drawn":false},{"_id":"6Q3XKURzip61EXK2","flags":{},"type":2,"text":"Idée fixe : Aller tout nu, sans porter le moindre paquet ni objet","img":"aller_nu.png","collection":"foundryvtt-reve-de-dragon.queues-de-dragon","resultId":"I0CtQ05xFW6ghcdP","weight":1,"range":[10,10],"drawn":false},{"_id":"7B8joMjIuhNxip6N","flags":{},"type":2,"text":"Idée fixe : Vider sur sa tête toute fiole ou flacon aperçu","img":"verser_flacon.png","collection":"foundryvtt-reve-de-dragon.queues-de-dragon","resultId":"afGp9CewfyJKecEE","weight":1,"range":[11,11],"drawn":false},{"_id":"Febiy30xqiNo7OqV","flags":{},"type":2,"text":"Idée fixe : Appeler les hommes «madame» et les femmes «messire»","img":"appeler_hommes_femmes.png","collection":"foundryvtt-reve-de-dragon.queues-de-dragon","resultId":"j2xIrFWYqhDM4TcN","weight":1,"range":[12,12],"drawn":false},{"_id":"Aa72g0fFdq2qBmCn","flags":{},"type":2,"text":"Idée fixe : Ne marcher qu’à quatre pattes","img":"marcher_quatre_pattes.png","collection":"foundryvtt-reve-de-dragon.queues-de-dragon","resultId":"7TKsit2Mv9mWGq3C","weight":1,"range":[13,13],"drawn":false},{"_id":"UYhT76xYv8OGXcMZ","flags":{},"type":2,"text":"Idée fixe : Boulimie. Manger au moins un point de sust. par heure","img":"boulimie.png","collection":"foundryvtt-reve-de-dragon.queues-de-dragon","resultId":"JcTX8qMS0z8bmdVt","weight":1,"range":[14,14],"drawn":false},{"_id":"fOnQmiXMPXrK3K6P","flags":{},"type":2,"text":"Idée fixe : Refuser de se déplacer autrement que porté","img":"refuser_deplacer.png","collection":"foundryvtt-reve-de-dragon.queues-de-dragon","resultId":"hghw6Cldrad1CIiJ","weight":1,"range":[15,15],"drawn":false},{"_id":"KKGlZXouFfIMKQma","flags":{},"type":2,"text":"Idée fixe : Ne pas franchir de porte. (On peut franchir une fenêtre)","img":"pas-franchir.png","collection":"foundryvtt-reve-de-dragon.queues-de-dragon","resultId":"UUTbsktTcxsIe5L5","weight":1,"range":[16,16],"drawn":false},{"_id":"JjWHUsMLhLuTYB2q","flags":{},"type":2,"text":"Idée fixe : Faire le mort","img":"faire_mort.png","collection":"foundryvtt-reve-de-dragon.queues-de-dragon","resultId":"xa4t9Lbt6uLEjap6","weight":1,"range":[17,17],"drawn":false},{"_id":"r7Dw8GD1ceypY0iV","flags":{},"type":2,"text":"Idée fixe : Éteindre tout feu rencontré (feu de camp, torche, lanterne, etc.)","img":"eteindre_feu.png","collection":"foundryvtt-reve-de-dragon.queues-de-dragon","resultId":"2Rtm78bMKPy8eG4q","weight":1,"range":[18,18],"drawn":false},{"_id":"i0AW1Ir1V7y2ZmEh","flags":{},"type":2,"text":"Idée fixe : Refuser de se délester du moindre objet, ni donner ni prêter","img":"refuser_delester.png","collection":"foundryvtt-reve-de-dragon.queues-de-dragon","resultId":"VChJbtGFtWoiFNky","weight":1,"range":[19,19],"drawn":false},{"_id":"DQBzVXbJKn9zsXUI","flags":{},"type":2,"text":"Idée fixe : Refuser de monter dans les TMR","img":"refuser_tmr.png","collection":"foundryvtt-reve-de-dragon.queues-de-dragon","resultId":"NpTDqICR7ZuToQrg","weight":1,"range":[20,20],"drawn":false}],"formula":"1d20","replacement":false,"displayRoll":true}
-{"name":"Maladresse armé","permission":{"default":0,"jOzRscDxoXZWpGS6":3},"flags":{},"description":"","results":[{"_id":"R18ITzDLLuGiaqXM","flags":{},"type":0,"text":"Assomé net : Endurance tombe à 0 et -1 pt de vie.","img":"icons/svg/d20-black.svg","resultId":"","weight":1,"range":[2,2],"drawn":false},{"_id":"sfWXLz4QIkPLNJmg","flags":{},"type":0,"text":"Ami bousculé : Le compagnon bousculé doit réussir Empathie/Vigilance à -1d6 ou être en demi-surprise jusqu’à la fin du round suivant.","img":"icons/svg/d20-black.svg","resultId":"","weight":1,"range":[3,3],"drawn":false},{"_id":"APqyDePFzBaROB6i","flags":{},"type":0,"text":"Chute : Encaissement à -1d6 sur la table des Coups non mortels.","img":"icons/svg/d20-black.svg","resultId":"","weight":1,"range":[4,4],"drawn":false},{"_id":"8yErM3dW4F2MBFqe","flags":{},"type":0,"text":"Désarmé","img":"icons/svg/d20-black.svg","resultId":"","weight":1,"range":[5,5],"drawn":false},{"_id":"8dh7zUXAq8ehNag7","flags":{},"type":0,"text":"Arme choquée : L’arme utilisée joue un jet de Résistance à -2d6 et perd ce nombre de points de résistance en cas d’échec.","img":"icons/svg/d20-black.svg","resultId":"","weight":1,"range":[6,7],"drawn":false},{"_id":"OskepgYnU7pok5jv","flags":{},"type":0,"text":"Déséquilibré : Réussir Agilité/Vigilance à -1d6 ou être en demi-surprise jusqu’à la fin du round suivant.","img":"icons/svg/d20-black.svg","resultId":"","weight":1,"range":[8,9],"drawn":false},{"_id":"GOYmqZj1Lnc0cKO9","flags":{},"type":0,"text":"Faux mouvement : Perte de 2d6 points d’endurance.","img":"icons/svg/d20-black.svg","resultId":"","weight":1,"range":[10,12],"drawn":false},{"_id":"NOrmphYuLWRKZxai","flags":{},"type":0,"text":"Déséquilibré : Réussir Agilité/Vigilance à -1d6 ou être en demi-surprise jusqu’à la fin du round suivant.","img":"icons/svg/d20-black.svg","resultId":"","weight":1,"range":[13,14],"drawn":false},{"_id":"ef8tfK8JzdX1OKzf","flags":{},"type":0,"text":"Arme choquée : L’arme utilisée joue un jet de Résistance à -2d6 et perd ce nombre de points de résistance en cas d’échec.","img":"icons/svg/d20-black.svg","resultId":"","weight":1,"range":[15,16],"drawn":false},{"_id":"9V3Gj9PEYrEY7OCc","flags":{},"type":0,"text":"Désarmé","img":"icons/svg/d20-black.svg","resultId":"","weight":1,"range":[17,17],"drawn":false},{"_id":"c61AFRaP9poCmr9B","flags":{},"type":0,"text":"Chute : Encaissement à -1d6 sur la table des Coups non mortels.","img":"icons/svg/d20-black.svg","resultId":"","weight":1,"range":[18,18],"drawn":false},{"_id":"8tS1rSwYvd0cS9o4","flags":{},"type":0,"text":"Ami bousculé : Le compagnon bousculé doit réussir Empathie/Vigilance à -1d6 ou être en demi-surprise jusqu’à la fin du round suivant.","img":"icons/svg/d20-black.svg","resultId":"","weight":1,"range":[19,19],"drawn":false},{"_id":"ma6DRHIjkgpOVc55","flags":{},"type":0,"text":"Assommé net : Endurance tombe à 0 et -1 pt de vie.","img":"icons/svg/d20-black.svg","resultId":"","weight":1,"range":[20,20],"drawn":false}],"formula":"2d10","replacement":false,"displayRoll":true,"_id":"pXYVWRlCftWdwsBP"}
-{"_id":"sVWhyr4wPnieuPP8","name":"Désirs lancinants","permission":{"default":0,"jOzRscDxoXZWpGS6":3},"flags":{},"img":"icons/svg/d20-grey.svg","description":"Les désirs lancinants durent jusqu’à ce qu’ils soient satisfaits ou refoulés. Tant que satisfaction n’est pas obtenue, aucun point d’expérience ne peut plus être gagné par l’exercice en cas de particulière et d’ajustement final négatif. Les points d’expérience dus au stress ne sont pas affectés. Les désirs lancinants peuvent être refoulés à tout moment au prix de 1 point de refoulement.","results":[{"_id":"m9BMFVAByyICiMkp","flags":{},"type":2,"text":"Désir lancinant : Danser nu sous la pluie","img":"danser_pluie.png","collection":"foundryvtt-reve-de-dragon.queues-de-dragon","resultId":"F6qL4d4g3qjh045R","weight":1,"range":[1,1],"drawn":false},{"_id":"EJYCgPl9BCW92LSM","flags":{},"type":2,"text":"Désir lancinant : Traire une vache","img":"traire_vache.png","collection":"foundryvtt-reve-de-dragon.queues-de-dragon","resultId":"QHUOwjMR6AvepGPm","weight":1,"range":[2,2],"drawn":false},{"_id":"fRgwd7VconbmXrWQ","flags":{},"type":2,"text":"Désir lancinant : Manger du poisson","img":"manger_poisson.png","collection":"foundryvtt-reve-de-dragon.queues-de-dragon","resultId":"SY0SsWtZdxSodMcl","weight":1,"range":[3,3],"drawn":false},{"_id":"NEWpP5vwM5KQviDD","flags":{},"type":2,"text":"Désir lancinant : Manger des champignons","img":"manger_champignons.png","collection":"foundryvtt-reve-de-dragon.queues-de-dragon","resultId":"gadh6aI5iCM82qpP","weight":1,"range":[4,4],"drawn":false},{"_id":"8pMq7q3evaj9fIst","flags":{},"type":2,"text":"Désir lancinant : Se soûler (minimum pas frais)","img":"se_souler.png","collection":"foundryvtt-reve-de-dragon.queues-de-dragon","resultId":"jShpKV8mVcqWmYvp","weight":1,"range":[5,5],"drawn":false},{"_id":"qFOyIPVjQkVjrHFI","flags":{},"type":2,"text":"Désir lancinant : Gagner de l’argent (minimum 10 deniers)","img":"gagner_argent.png","collection":"foundryvtt-reve-de-dragon.queues-de-dragon","resultId":"3BcC8lSsP5WIyva7","weight":1,"range":[6,6],"drawn":false},{"_id":"RrOMys2WRxUrRYev","flags":{},"type":2,"text":"Désir lancinant : Faire des bulles de savon","img":"bulles_savon.png","collection":"foundryvtt-reve-de-dragon.queues-de-dragon","resultId":"df5oN8Ub3dWTVxNj","weight":1,"range":[7,7],"drawn":false},{"_id":"kwOTcCx7NDRxqv8B","flags":{},"type":2,"text":"Désir lancinant : Entendre braire un âne","img":"entendre_ane.png","collection":"foundryvtt-reve-de-dragon.queues-de-dragon","resultId":"diCCimukdNM6bPub","weight":1,"range":[8,8],"drawn":false},{"_id":"KoGHRGGze7WXnO9R","flags":{},"type":2,"text":"Désir lancinant : Danser avec un(e) partenaire inconnu(e) (Beauté 13 minimum)","img":"danser_inconnu.png","collection":"foundryvtt-reve-de-dragon.queues-de-dragon","resultId":"2i3PndTKG1n3hEUU","weight":1,"range":[9,9],"drawn":false},{"_id":"JFiIv5R4gAYV1IMs","flags":{},"type":2,"text":"Désir lancinant : Construire une cabane","img":"construire_cabane.png","collection":"foundryvtt-reve-de-dragon.queues-de-dragon","resultId":"mN0yghXkFfj2YctJ","weight":1,"range":[10,10],"drawn":false},{"_id":"vKXdKjA4Vt7OWhOW","flags":{},"type":2,"text":"Désir lancinant : Acquérir une chèvre","img":"acqu%C3%A9rir_chevre.png","collection":"foundryvtt-reve-de-dragon.queues-de-dragon","resultId":"8sLXQBqo8XwjAFG0","weight":1,"range":[11,11],"drawn":false},{"_id":"wRk4nXin4UUB5c4o","flags":{},"type":2,"text":"Désir lancinant : Se rouler dans la boue","img":"se_rouler_boue.png","collection":"foundryvtt-reve-de-dragon.queues-de-dragon","resultId":"el4lofhhSucMv5xv","weight":1,"range":[12,12],"drawn":false},{"_id":"XUcNhyHEDjSvg8ki","flags":{},"type":2,"text":"Désir lancinant : Embrasser un cochon sur le groin","img":"embrasser_cochon.png","collection":"foundryvtt-reve-de-dragon.queues-de-dragon","resultId":"sjXBBr85OBk4Yg4t","weight":1,"range":[13,13],"drawn":false},{"_id":"oN3eP4peneyXENds","flags":{},"type":2,"text":"Désir lancinant : Briser un objet de verre","img":"briser_verre.png","collection":"foundryvtt-reve-de-dragon.queues-de-dragon","resultId":"1l59lWbtvYp74OTb","weight":1,"range":[14,14],"drawn":false},{"_id":"5AHjNXDrQL5TqLjv","flags":{},"type":2,"text":"Désir lancinant : Casser 3d6 oeufs en les jetant à terre","img":"casser_oeufs.png","collection":"foundryvtt-reve-de-dragon.queues-de-dragon","resultId":"OjG8XRbeYtq2jcgB","weight":1,"range":[15,15],"drawn":false},{"_id":"crQSShE6rcAnBj1k","flags":{},"type":2,"text":"Désir lancinant : Passer une nuit sur une échelle","img":"nuit_echelle.png","collection":"foundryvtt-reve-de-dragon.queues-de-dragon","resultId":"LlELEB0FhymLx6VM","weight":1,"range":[16,16],"drawn":false},{"_id":"dDYpP2np5BKlEMSK","flags":{},"type":2,"text":"Désir lancinant : Se faire raser la tête","img":"raser_tete.png","collection":"foundryvtt-reve-de-dragon.queues-de-dragon","resultId":"HSNOvBR890dsEDw2","weight":1,"range":[17,17],"drawn":false},{"_id":"CvynUiSfzZ0UnFzk","flags":{},"type":2,"text":"Désir lancinant : Masochisme. Perdre 3 points d’endurance minimum en 1 round","img":"masochisme.png","collection":"foundryvtt-reve-de-dragon.queues-de-dragon","resultId":"NzJJNK0YMAbobu0p","weight":1,"range":[18,18],"drawn":false},{"_id":"3pM6YTcKglgt5naZ","flags":{},"type":2,"text":"Désir lancinant : Mégalomanie. Être acclamé par un minimum de 10 personnes","img":"megalomanie.png","collection":"foundryvtt-reve-de-dragon.queues-de-dragon","resultId":"3ZjwYyQRatCMnBCi","weight":1,"range":[19,19],"drawn":false},{"_id":"EJYLKIrPHPPbgrlW","flags":{},"type":2,"text":"Désir lancinant : Pisser dans un violon (luth, mandoline, etc.)","img":"pisser_violon.png","collection":"foundryvtt-reve-de-dragon.queues-de-dragon","resultId":"S8PVNgxb7TcFXq9g","weight":1,"range":[20,20],"drawn":false}],"formula":"1d20","replacement":false,"displayRoll":true}
-{"_id":"sXPDAHwb6ND5tNJG","name":"Têtes de Dragon pour haut-rêvants","permission":{"default":0,"jOzRscDxoXZWpGS6":3},"flags":{},"img":"icons/svg/d20-grey.svg","description":"Quand une tête est dite unique, retirer si le personnage la possède déjà. Quand elle est dite cumulable, le jet de dés indiqué bénéficie d’un nouveau bonus de +1 chaque fois qu’elle est ré-obtenue. Par exemple un jet de Vue à zéro devient un jet de Vue à +1.","results":[{"_id":"SrGcS3nquZptN3Lx","flags":{},"type":2,"text":"Don de double-rêve","img":"icons/svg/mystery-man.svg","collection":"foundryvtt-reve-de-dragon.tetes-de-dragon-pour-haut-revants","resultId":"VWOXA0q6GB7o8oxz","weight":1,"range":[1,10],"drawn":false},{"_id":"fGwttrng7KMYrll1","flags":{},"type":2,"text":"Don de déplacement accéléré","img":"icons/svg/mystery-man.svg","collection":"foundryvtt-reve-de-dragon.tetes-de-dragon-pour-haut-revants","resultId":"ZVh8PLlAzAJulr37","weight":1,"range":[11,20],"drawn":false},{"_id":"BASdOFjj0HJsrDI6","flags":{},"type":2,"text":"Augmentation du seuil de rêve","img":"icons/svg/mystery-man.svg","collection":"foundryvtt-reve-de-dragon.tetes-de-dragon-pour-haut-revants","resultId":"Zlt01O2sFrVR9pus","weight":1,"range":[21,30],"drawn":false},{"_id":"HWgayaNNiVLlb5Lj","flags":{},"type":2,"text":"Connaissance intuitive d'un nouveau sort","img":"icons/svg/mystery-man.svg","collection":"foundryvtt-reve-de-dragon.tetes-de-dragon-pour-haut-revants","resultId":"SFxPAvWpEGYHI8mO","weight":1,"range":[31,40],"drawn":false},{"_id":"QMegfeFyxIxNNai7","flags":{},"type":2,"text":"Terre d'attache","img":"icons/svg/mystery-man.svg","collection":"foundryvtt-reve-de-dragon.tetes-de-dragon-pour-haut-revants","resultId":"YDo0a0ApM8iW9g82","weight":1,"range":[41,50],"drawn":false},{"_id":"0FYecx0AOjHJGInw","flags":{},"type":2,"text":"Présent des cités","img":"systems/foundryvtt-reve-de-dragon/icons/tete_dragon.webp","collection":"foundryvtt-reve-de-dragon.tetes-de-dragon-pour-haut-revants","resultId":"E4a4O1IdrgbNGpVy","weight":1,"range":[51,60],"drawn":false},{"_id":"CtjqmAwweZVDbAjY","flags":{},"type":2,"text":"Réserve en sécurité","img":"icons/svg/mystery-man.svg","collection":"foundryvtt-reve-de-dragon.tetes-de-dragon-pour-haut-revants","resultId":"BT18LAdIqEgSG2Hh","weight":1,"range":[61,70],"drawn":false},{"_id":"WNELkA5FkYTj68Ln","flags":{},"type":2,"text":"Réserve extensible","img":"icons/svg/mystery-man.svg","collection":"foundryvtt-reve-de-dragon.tetes-de-dragon-pour-haut-revants","resultId":"bFdU6ddgj4BAlJZX","weight":1,"range":[71,80],"drawn":false},{"_id":"fn1I3FolBzOmeh0W","flags":{},"type":2,"text":"Quête des eaux","img":"icons/svg/mystery-man.svg","collection":"foundryvtt-reve-de-dragon.tetes-de-dragon-pour-haut-revants","resultId":"a3Y5W0AX5EKxZRSL","weight":1,"range":[81,90],"drawn":false},{"_id":"jr90oOnnrEH31eZj","flags":{},"type":2,"text":"Connaissance du fleuve","img":"icons/svg/mystery-man.svg","collection":"foundryvtt-reve-de-dragon.tetes-de-dragon-pour-haut-revants","resultId":"5JccZSafqCXYqrwU","weight":1,"range":[91,100],"drawn":false}],"formula":"1d100","replacement":true,"displayRoll":true}
-{"name":"Souffles de Dragon","permission":{"default":0,"jOzRscDxoXZWpGS6":3},"flags":{},"description":"Quand un souffle dure ddr jours, déterminer ce nombre de la même façon que la force d’un Rêve de Dragon, sur une base minimum de 7. Le souffle prend effet à l’instant même et dure jusqu’à la fin de l’heure du Château Dormant du xème jour. Aucun souffle de Dragon n’est refoulable.","results":[{"_id":"39OpB4Ly6pwHNvq3","flags":{},"type":2,"text":"Périple","img":"icons/svg/mystery-man.svg","collection":"foundryvtt-reve-de-dragon.souffles-de-dragon","resultId":"yczTFUNwqyg0WhsQ","weight":1,"range":[1,5],"drawn":false},{"_id":"8JkuRose0umr9I9J","flags":{},"type":2,"text":"Fermeture des cités","img":"icons/svg/mystery-man.svg","collection":"foundryvtt-reve-de-dragon.souffles-de-dragon","resultId":"aBiHdEMLWNZurX3v","weight":1,"range":[6,10],"drawn":false},{"_id":"dGKfn21m4nMJkvTj","flags":{},"type":2,"text":"Débordement","img":"icons/svg/mystery-man.svg","collection":"foundryvtt-reve-de-dragon.souffles-de-dragon","resultId":"YiXBU7qBxR0OnkPS","weight":1,"range":[11,15],"drawn":false},{"_id":"3yosmgSu7FZ0nY3l","flags":{},"type":2,"text":"Impraticabilité des ponts","img":"icons/svg/mystery-man.svg","collection":"foundryvtt-reve-de-dragon.souffles-de-dragon","resultId":"8B74cu17PCdqztke","weight":1,"range":[16,20],"drawn":false},{"_id":"5ujcfs6jFvDjWVOK","flags":{},"type":2,"text":"Désorientation","img":"icons/svg/mystery-man.svg","collection":"foundryvtt-reve-de-dragon.souffles-de-dragon","resultId":"Su90PAG4Hea7qoej","weight":1,"range":[21,25],"drawn":false},{"_id":"MEunTLUJI4pVuzwv","flags":{},"type":2,"text":"Impraticabilité des ponts","img":"icons/svg/mystery-man.svg","collection":"foundryvtt-reve-de-dragon.souffles-de-dragon","resultId":"8B74cu17PCdqztke","weight":1,"range":[26,30],"drawn":false},{"_id":"IvuyAhcW9yzbhRLF","flags":{},"type":2,"text":"Désorientation","img":"icons/svg/mystery-man.svg","collection":"foundryvtt-reve-de-dragon.souffles-de-dragon","resultId":"Su90PAG4Hea7qoej","weight":1,"range":[31,35],"drawn":false},{"_id":"JmoyngtksVYFnNWy","flags":{},"type":2,"text":"Trou noir","img":"icons/svg/mystery-man.svg","collection":"foundryvtt-reve-de-dragon.souffles-de-dragon","resultId":"QcfOUgWT15BCLUvl","weight":1,"range":[36,40],"drawn":false},{"_id":"pombreEUTYX2prs6","flags":{},"type":2,"text":"Péage","img":"icons/svg/mystery-man.svg","collection":"foundryvtt-reve-de-dragon.souffles-de-dragon","resultId":"HYsVo3LM53vAm8Y4","weight":1,"range":[41,45],"drawn":false},{"_id":"PWzcBoJSsDdV8m8m","flags":{},"type":2,"text":"Montée laborieuse","img":"icons/svg/mystery-man.svg","collection":"foundryvtt-reve-de-dragon.souffles-de-dragon","resultId":"yFZ6KkvVQVyCJLua","weight":1,"range":[46,50],"drawn":false},{"_id":"KoyO1TrUQYFxu1MM","flags":{},"type":2,"text":"Double résistance du fleuve","img":"icons/svg/mystery-man.svg","collection":"foundryvtt-reve-de-dragon.souffles-de-dragon","resultId":"nI4sA12n6AdLNv5I","weight":1,"range":[51,55],"drawn":false},{"_id":"NGpVZ0worbKmi5bN","flags":{},"type":2,"text":"Confusion draconique","img":"icons/svg/mystery-man.svg","collection":"foundryvtt-reve-de-dragon.souffles-de-dragon","resultId":"cuopXCY54q3nTtBl","weight":1,"range":[56,60],"drawn":false},{"_id":"wjlmxOrF5mKx5Uqt","flags":{},"type":2,"text":"Épuisement","img":"icons/svg/mystery-man.svg","collection":"foundryvtt-reve-de-dragon.souffles-de-dragon","resultId":"GNZW6esJ2nCHjfyu","weight":1,"range":[61,65],"drawn":false},{"_id":"RYySlbmF6KtKJ8C6","flags":{},"type":2,"text":"Perte dans une caractéristique","img":"icons/svg/mystery-man.svg","collection":"foundryvtt-reve-de-dragon.souffles-de-dragon","resultId":"ykxvi2vohrZPidLK","weight":1,"range":[66,70],"drawn":false},{"_id":"Ec0BW2vZ3QTpIZRn","flags":{},"type":2,"text":"Vieillissement instantané","img":"icons/svg/mystery-man.svg","collection":"foundryvtt-reve-de-dragon.souffles-de-dragon","resultId":"dArTQtFwTssAyl90","weight":1,"range":[71,75],"drawn":false},{"_id":"dIBOMmIwvx2kTgTN","flags":{},"type":2,"text":"Non-combativité","img":"icons/svg/mystery-man.svg","collection":"foundryvtt-reve-de-dragon.souffles-de-dragon","resultId":"6xvkOytCrp5yDAOs","weight":1,"range":[76,79],"drawn":false},{"_id":"3tR6RxkGiugHxSHd","flags":{},"type":2,"text":"Je-m'en-foutisme","img":"icons/svg/mystery-man.svg","collection":"foundryvtt-reve-de-dragon.souffles-de-dragon","resultId":"2FDRnIY6Os6JJ27j","weight":1,"range":[80,83],"drawn":false},{"_id":"TZWltQcYm3F81ZqO","flags":{},"type":2,"text":"Paresse intellectuelle","img":"icons/svg/mystery-man.svg","collection":"foundryvtt-reve-de-dragon.souffles-de-dragon","resultId":"IYfK01ZdAkDZbUS9","weight":1,"range":[84,88],"drawn":false},{"_id":"xmUhIdsW8Bgq31lJ","flags":{},"type":2,"text":"Queue de dragon perpétuelle","img":"icons/svg/mystery-man.svg","collection":"foundryvtt-reve-de-dragon.souffles-de-dragon","resultId":"CVXptnnw75fLx4LK","weight":1,"range":[89,100],"drawn":false}],"formula":"1d100","replacement":false,"displayRoll":true,"_id":"vKiKfjFVP36mYnEt"}
-{"_id":"w2WBqsg1B2fPV8zT","name":"Tarot Draconique","permission":{"default":0,"Q2G6GTdrotKzYGUC":3},"flags":{"core":{"sourceId":"RollTable.wgFwo1JYrkjyy7J7"}},"img":"systems/foundryvtt-reve-de-dragon/icons/tarots/dos-tarot.png","description":"Tirage d'une carte de tarot","results":[{"_id":"EP4xqaMgXhuFKNWe","flags":{},"type":2,"text":"L'Auberge","img":"systems/foundryvtt-reve-de-dragon/icons/tarots/dos-tarot.png","collection":"foundryvtt-reve-de-dragon.tarot-draconique","resultId":"2AZ4LaHfNjewYIkO","weight":1,"range":[1,1],"drawn":false},{"_id":"hRvvPoX8nv7AonqM","flags":{},"type":2,"text":"L'Epée","img":"systems/foundryvtt-reve-de-dragon/icons/tarots/dos-tarot.png","collection":"foundryvtt-reve-de-dragon.tarot-draconique","resultId":"inWYIYIuHkoZ3S4A","weight":1,"range":[2,2],"drawn":false},{"_id":"gtMrSlTlMKFV6T6i","flags":{},"type":2,"text":"L'Esprit Thanataire","img":"systems/foundryvtt-reve-de-dragon/icons/tarots/dos-tarot.png","collection":"foundryvtt-reve-de-dragon.tarot-draconique","resultId":"jpNASgEPndryQwuX","weight":1,"range":[3,3],"drawn":false},{"_id":"UdJ5OXBfeg83EN8y","flags":{},"type":2,"text":"La Couronne","img":"systems/foundryvtt-reve-de-dragon/icons/tarots/dos-tarot.png","collection":"foundryvtt-reve-de-dragon.tarot-draconique","resultId":"W150EcUq9vU9ryyc","weight":1,"range":[4,4],"drawn":false},{"_id":"GobVbxfElUvE1flV","flags":{},"type":2,"text":"La Déchirure","img":"systems/foundryvtt-reve-de-dragon/icons/tarots/dos-tarot.png","collection":"foundryvtt-reve-de-dragon.tarot-draconique","resultId":"yIIUac5ehspmqDB2","weight":1,"range":[5,5],"drawn":false},{"_id":"JPjrJQ77YbIwTcJX","flags":{},"type":2,"text":"La Licorne","img":"systems/foundryvtt-reve-de-dragon/icons/tarots/dos-tarot.png","collection":"foundryvtt-reve-de-dragon.tarot-draconique","resultId":"0tOoKLhFKqBLGdAc","weight":1,"range":[6,6],"drawn":false},{"_id":"ToLq4NpjqD2GwlZq","flags":{},"type":2,"text":"La Lune","img":"systems/foundryvtt-reve-de-dragon/icons/tarots/dos-tarot.png","collection":"foundryvtt-reve-de-dragon.tarot-draconique","resultId":"J1qgDjOtf7vK4oV6","weight":1,"range":[7,7],"drawn":false},{"_id":"bTwPXktwq5t5jAAy","flags":{},"type":2,"text":"La Sebile","img":"systems/foundryvtt-reve-de-dragon/icons/tarots/dos-tarot.png","collection":"foundryvtt-reve-de-dragon.tarot-draconique","resultId":"rlmOj3pu4EDd2jZi","weight":1,"range":[8,8],"drawn":false},{"_id":"tbTCmOeNaWYaG6jU","flags":{},"type":2,"text":"La Vierge","img":"systems/foundryvtt-reve-de-dragon/icons/tarots/dos-tarot.png","collection":"foundryvtt-reve-de-dragon.tarot-draconique","resultId":"miO25LLlwPyOAGeR","weight":1,"range":[9,9],"drawn":false},{"_id":"ssqd2Idq1akdYakx","flags":{},"type":2,"text":"Le Chateau","img":"systems/foundryvtt-reve-de-dragon/icons/tarots/dos-tarot.png","collection":"foundryvtt-reve-de-dragon.tarot-draconique","resultId":"n9il4UfR6swHQ805","weight":1,"range":[10,10],"drawn":false},{"_id":"ykbg1uUgbbySEfai","flags":{},"type":2,"text":"Le Coffre","img":"systems/foundryvtt-reve-de-dragon/icons/tarots/dos-tarot.png","collection":"foundryvtt-reve-de-dragon.tarot-draconique","resultId":"vreVS8zyLuiV3qom","weight":1,"range":[11,11],"drawn":false},{"_id":"NkEN5qFZ0aGcgjne","flags":{},"type":2,"text":"Le Gibet","img":"systems/foundryvtt-reve-de-dragon/icons/tarots/dos-tarot.png","collection":"foundryvtt-reve-de-dragon.tarot-draconique","resultId":"beF1v9sjQeDgmxZL","weight":1,"range":[12,12],"drawn":false},{"_id":"OjbIhV6dwaqwMLhG","flags":{},"type":2,"text":"Le Grimoire","img":"systems/foundryvtt-reve-de-dragon/icons/tarots/dos-tarot.png","collection":"foundryvtt-reve-de-dragon.tarot-draconique","resultId":"G2zkE5vY7UrgzNV9","weight":1,"range":[13,13],"drawn":false},{"_id":"mzKV31aojE7DFJUz","flags":{},"type":2,"text":"Le Groin","img":"systems/foundryvtt-reve-de-dragon/icons/tarots/dos-tarot.png","collection":"foundryvtt-reve-de-dragon.tarot-draconique","resultId":"yHvIWLb4TuUAbPGa","weight":1,"range":[14,14],"drawn":false},{"_id":"hD9BUGLDILRc4jJm","flags":{},"type":2,"text":"Le Haut-Rêvant","img":"systems/foundryvtt-reve-de-dragon/icons/tarots/dos-tarot.png","collection":"foundryvtt-reve-de-dragon.tarot-draconique","resultId":"2dWBIwjKVCTxwrHE","weight":1,"range":[15,15],"drawn":false},{"_id":"MFjPTrGgPxUrjHeW","flags":{},"type":2,"text":"Le Luth","img":"systems/foundryvtt-reve-de-dragon/icons/tarots/dos-tarot.png","collection":"foundryvtt-reve-de-dragon.tarot-draconique","resultId":"RjwPSt0pOwQ8w9Qy","weight":1,"range":[16,16],"drawn":false},{"_id":"LZ9n4jg7I1ZjB8Lg","flags":{},"type":2,"text":"Le Rabot","img":"systems/foundryvtt-reve-de-dragon/icons/tarots/dos-tarot.png","collection":"foundryvtt-reve-de-dragon.tarot-draconique","resultId":"zP2OF8ZrAYEODxOn","weight":1,"range":[17,17],"drawn":false},{"_id":"nv6TDBdxJNnJyDYa","flags":{},"type":2,"text":"Le Soleil","img":"systems/foundryvtt-reve-de-dragon/icons/tarots/dos-tarot.png","collection":"foundryvtt-reve-de-dragon.tarot-draconique","resultId":"zSqKPNeQTVjRuni6","weight":1,"range":[18,18],"drawn":false},{"_id":"QdM0WqpsxObvETQU","flags":{},"type":2,"text":"Le Vaisseau","img":"systems/foundryvtt-reve-de-dragon/icons/tarots/dos-tarot.png","collection":"foundryvtt-reve-de-dragon.tarot-draconique","resultId":"VAhO41qD8QQLDie5","weight":1,"range":[19,19],"drawn":false},{"_id":"iDCdiYblZYjPYwYJ","flags":{},"type":2,"text":"Le Voyageur","img":"systems/foundryvtt-reve-de-dragon/icons/tarots/dos-tarot.png","collection":"foundryvtt-reve-de-dragon.tarot-draconique","resultId":"BQkcM9P2xdImdNb9","weight":1,"range":[20,20],"drawn":false},{"_id":"yLioN4DMxU45TnBE","flags":{},"type":2,"text":"Les Marais","img":"systems/foundryvtt-reve-de-dragon/icons/tarots/dos-tarot.png","collection":"foundryvtt-reve-de-dragon.tarot-draconique","resultId":"3U9OCmUD156gwu9b","weight":1,"range":[21,21],"drawn":false}],"formula":"1d21","replacement":true,"displayRoll":true}
+{"_id":"66ye0OOxBO9LEjdd","name":"Table spéciale de rencontres","img":"icons/svg/d20-grey.svg","results":[{"_id":"m1sOHvOsOlFRYgg1","flags":{},"type":0,"text":"Mangeur de rêve 1d6.","img":"icons/svg/d20-black.svg","weight":1,"range":[1,1],"drawn":false},{"_id":"THgTJucYdosZixxL","flags":{},"type":0,"text":"Mangeur de rêve 2d6.","img":"icons/svg/d20-black.svg","weight":1,"range":[2,2],"drawn":false},{"_id":"wpUaRAW4HVRM8eOs","flags":{},"type":0,"text":"Reflet d’ancien rêve 2d6+4.","img":"icons/svg/d20-black.svg","weight":1,"range":[3,3],"drawn":false},{"_id":"tPwuPqShKzWo5jkG","flags":{},"type":0,"text":"Tourbillon blanc 2d6+4.","img":"icons/svg/d20-black.svg","weight":1,"range":[4,4],"drawn":false},{"_id":"sfX1CrIT7avWnIQm","flags":{},"type":0,"text":"Tourbillon noir 2d8+4.","img":"icons/svg/d20-black.svg","weight":1,"range":[5,5],"drawn":false},{"_id":"Wvh7Nv4QMhrQOP30","flags":{},"type":0,"text":"Passeur fou 2d8.","img":"icons/svg/d20-black.svg","weight":1,"range":[6,6],"drawn":false},{"_id":"lJ24ZLMLxXscNqy2","flags":{},"type":0,"text":"Tourbillon rouge 2d8.","img":"icons/svg/d20-black.svg","weight":1,"range":[7,7],"drawn":false}],"formula":"1d7","replacement":true,"displayRoll":true,"folder":null,"sort":0,"permission":{"default":0,"jOzRscDxoXZWpGS6":3},"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.tables-diverses.66ye0OOxBO9LEjdd"}}}
+{"_id":"7Py520wVyrjAgS9j","name":"Maladresses non armé","img":"icons/svg/d20-grey.svg","results":[{"_id":"5ExNFCB8JNMT2535","flags":{},"type":0,"text":"Assomé net : Endurance tombe à 0 et -1 pt de vie.","img":"icons/svg/d20-black.svg","weight":1,"range":[2,2],"drawn":false},{"_id":"SnLYEufd9JrYDXcX","flags":{},"type":0,"text":"Ami bousculé : Le compagnon bousculé doit réussir Empathie/Vigilance à -1d6 ou être en demi-surprise jusqu’à la fin du round suivant.","img":"icons/svg/d20-black.svg","weight":1,"range":[3,3],"drawn":false},{"_id":"1DtaMqWygL8BjZjw","flags":{},"type":0,"text":"Chute : Encaissement à -1d6 sur la table des Coups non mortels.","img":"icons/svg/d20-black.svg","weight":1,"range":[4,4],"drawn":false},{"_id":"Fkaf51J6FMuAqEAx","flags":{},"type":0,"text":"Déséquilibré : Réussir Agilité/Vigilance à -1d6 ou être en demi-surprise jusqu’à la fin du round suivant.","img":"icons/svg/d20-black.svg","weight":1,"range":[5,7],"drawn":false},{"_id":"kyAKakRIPGKr6Gdy","flags":{},"type":0,"text":"Faux mouvement : Perte de 2d6 points d’endurance.","img":"icons/svg/d20-black.svg","weight":1,"range":[8,14],"drawn":false},{"_id":"hTKkiPGPCTDIFh0Y","flags":{},"type":0,"text":"Déséquilibré : Réussir Agilité/Vigilance à -1d6 ou être en demi-surprise jusqu’à la fin du round suivant.","img":"icons/svg/d20-black.svg","weight":1,"range":[15,17],"drawn":false},{"_id":"NY1uI3k3YbJKQddk","flags":{},"type":0,"text":"Chute : Encaissement à -1d6 sur la table des Coups non mortels.","img":"icons/svg/d20-black.svg","weight":1,"range":[18,18],"drawn":false},{"_id":"CEDYz7CYFfJIQRr0","flags":{},"type":0,"text":"Ami bousculé : Le compagnon bousculé doit réussir Empathie/Vigilance à -1d6 ou être en demi-surprise jusqu’à la fin du round suivant.","img":"icons/svg/d20-black.svg","weight":1,"range":[19,19],"drawn":false},{"_id":"dSKiqZe8cXO89HgH","flags":{},"type":0,"text":"Assomé net : Endurance tombe à 0 et -1 pt de vie.","img":"icons/svg/d20-black.svg","weight":1,"range":[20,20],"drawn":false}],"formula":"2d10","replacement":false,"displayRoll":true,"folder":null,"sort":0,"permission":{"default":0,"jOzRscDxoXZWpGS6":3},"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.tables-diverses.7Py520wVyrjAgS9j"}}}
+{"_id":"E0WLgjn6LA9WsvKJ","name":"Détermination aléatoire de compétence","img":"icons/svg/d20-grey.svg","results":[{"_id":"9sBISZqs2DL0PG9W","flags":{},"type":2,"text":"Dague","img":"systems/foundryvtt-reve-de-dragon/icons/competence_dague.png","collection":"foundryvtt-reve-de-dragon.competences","resultId":"XZNm5W8nTe8aCG61","weight":1,"range":[1,2],"drawn":false},{"_id":"eBlqM8jwRJ5PB5gm","flags":{},"type":2,"text":"Epée à 1 main","img":"systems/foundryvtt-reve-de-dragon/icons/competence_epee_1_main.png","collection":"foundryvtt-reve-de-dragon.competences","resultId":"fPhPcCP3sbS6mfbS","weight":1,"range":[3,3],"drawn":false},{"_id":"tZBAPUjyjQy8EUHO","flags":{},"type":2,"text":"Epée à 2 mains","img":"systems/foundryvtt-reve-de-dragon/icons/competence_epee_2_mains.png","collection":"foundryvtt-reve-de-dragon.competences","resultId":"MLIEbxSJHkY1m3No","weight":1,"range":[4,4],"drawn":false},{"_id":"qvfMPJP3BkpcP5Fe","flags":{},"type":2,"text":"Hache à 1 main","img":"systems/foundryvtt-reve-de-dragon/icons/competence_hache_a_1_main.png","collection":"foundryvtt-reve-de-dragon.competences","resultId":"wEfuLImdNX4BSXVi","weight":1,"range":[5,5],"drawn":false},{"_id":"Z6JR5YWaA43j98tX","flags":{},"type":2,"text":"Hache à 2 mains","img":"systems/foundryvtt-reve-de-dragon/icons/competence_hache_a_2_mains.png","collection":"foundryvtt-reve-de-dragon.competences","resultId":"F97wHYDsQ5UyvJnb","weight":1,"range":[6,6],"drawn":false},{"_id":"r5JIcqBekKckdNQt","flags":{},"type":2,"text":"Lance","img":"systems/foundryvtt-reve-de-dragon/icons/competence_lance.png","collection":"foundryvtt-reve-de-dragon.competences","resultId":"zPTXua2Kq6TeBTTZ","weight":1,"range":[7,8],"drawn":false},{"_id":"vLY1W9u2uYuhPkQV","flags":{},"type":2,"text":"Masse à 1 main","img":"systems/foundryvtt-reve-de-dragon/icons/competence_masse_1_main.png","collection":"foundryvtt-reve-de-dragon.competences","resultId":"cMHm3gQr9rUp4iPK","weight":1,"range":[9,9],"drawn":false},{"_id":"HrHsJd2KcoKr9KTJ","flags":{},"type":2,"text":"Masse à 2 mains","img":"systems/foundryvtt-reve-de-dragon/icons/competence_masse_2_mains.png","collection":"foundryvtt-reve-de-dragon.competences","resultId":"BMAloiSbDKOu3b4C","weight":1,"range":[10,10],"drawn":false},{"_id":"X87jQ9IKmiDJSdVM","flags":{},"type":2,"text":"Fléau","img":"systems/foundryvtt-reve-de-dragon/icons/competence_fleau.png","collection":"foundryvtt-reve-de-dragon.competences","resultId":"r79VAGS1fRUm4oAd","weight":1,"range":[11,12],"drawn":false},{"_id":"X21M9ux2yL5eEP97","flags":{},"type":2,"text":"Armes d'hast","img":"systems/foundryvtt-reve-de-dragon/icons/competence_armes_hast.png","collection":"foundryvtt-reve-de-dragon.competences","resultId":"rwsHwIDszSIPBkrO","weight":1,"range":[13,16],"drawn":false},{"_id":"YgAGBkMD7xY1zZ73","flags":{},"type":2,"text":"Corps à corps","img":"systems/foundryvtt-reve-de-dragon/icons/competence_corps_a_corps.png","collection":"foundryvtt-reve-de-dragon.competences","resultId":"8Uj41cL5Qlxxy675","weight":1,"range":[17,18],"drawn":false},{"_id":"wz5G0AAKv3iv8mO5","flags":{},"type":2,"text":"Arbalète","img":"systems/foundryvtt-reve-de-dragon/icons/competence_arbalete.png","collection":"foundryvtt-reve-de-dragon.competences","resultId":"lt9VC7PkX4Faiduq","weight":1,"range":[19,20],"drawn":false},{"_id":"pHWfUuHd53tv75mk","flags":{},"type":2,"text":"Arc","img":"systems/foundryvtt-reve-de-dragon/icons/competence_arc.png","collection":"foundryvtt-reve-de-dragon.competences","resultId":"tVbFkKSN4n0RSrFU","weight":1,"range":[21,22],"drawn":false},{"_id":"uWULinOEr2zT9Afy","flags":{},"type":2,"text":"Dague de jet","img":"systems/foundryvtt-reve-de-dragon/icons/competence_dague_jet.png","collection":"foundryvtt-reve-de-dragon.competences","resultId":"thJy5AN0qePmfpJu","weight":1,"range":[23,24],"drawn":false},{"_id":"Q5gHNcgr8PAw5YKC","flags":{},"type":2,"text":"Javelot","img":"systems/foundryvtt-reve-de-dragon/icons/competence_javelot.png","collection":"foundryvtt-reve-de-dragon.competences","resultId":"neuzZG2C5C0IJ1yk","weight":1,"range":[25,26],"drawn":false},{"_id":"q2cdTOR6XFhX3m6z","flags":{},"type":2,"text":"Fronde","img":"systems/foundryvtt-reve-de-dragon/icons/competence_fronde.png","collection":"foundryvtt-reve-de-dragon.competences","resultId":"iNXKIfaETtgSGA0S","weight":1,"range":[27,28],"drawn":false},{"_id":"miq7pP6fjWbV38k6","flags":{},"type":2,"text":"Fouet","img":"systems/foundryvtt-reve-de-dragon/icons/competence_fouet.png","collection":"foundryvtt-reve-de-dragon.competences","resultId":"vIQVQxUeiw36hztI","weight":1,"range":[29,30],"drawn":false},{"_id":"UitlRjiMGmRYUvlU","flags":{},"type":2,"text":"Esquive","img":"systems/foundryvtt-reve-de-dragon/icons/competence_esquive.png","collection":"foundryvtt-reve-de-dragon.competences","resultId":"oFje22fZF1FaCQhN","weight":1,"range":[31,32],"drawn":false},{"_id":"KJGW2JDBVWtrztqn","flags":{},"type":2,"text":"Bouclier","img":"systems/foundryvtt-reve-de-dragon/icons/competence_bouclier.png","collection":"foundryvtt-reve-de-dragon.competences","resultId":"SJE3ghtswQwP1dIy","weight":1,"range":[33,34],"drawn":false},{"_id":"n2qjILAd4g1xrxaW","flags":{},"type":2,"text":"Chant","img":"systems/foundryvtt-reve-de-dragon/icons/competence_chant.png","collection":"foundryvtt-reve-de-dragon.competences","resultId":"LE4nA119la5cd0bC","weight":1,"range":[35,40],"drawn":false},{"_id":"MsDPOVPwFbEUIsy7","flags":{},"type":2,"text":"Danse","img":"systems/foundryvtt-reve-de-dragon/icons/competence_danse.png","collection":"foundryvtt-reve-de-dragon.competences","resultId":"LhP3Y0qCBHNp2atl","weight":1,"range":[41,46],"drawn":false},{"_id":"hlnKnwQNu29rmXNk","flags":{},"type":2,"text":"Discrétion","img":"systems/foundryvtt-reve-de-dragon/icons/competence_discretion.png","collection":"foundryvtt-reve-de-dragon.competences","resultId":"94P55yZfeipCGbsr","weight":1,"range":[47,48],"drawn":false},{"_id":"rDtXw3Q7JMWKrYaF","flags":{},"type":2,"text":"Escalade","img":"systems/foundryvtt-reve-de-dragon/icons/competence_escalade.png","collection":"foundryvtt-reve-de-dragon.competences","resultId":"gECPPcn6j3B3sWTS","weight":1,"range":[49,50],"drawn":false},{"_id":"Mdk3L6zOs99uxkq3","flags":{},"type":2,"text":"Saut","img":"systems/foundryvtt-reve-de-dragon/icons/competence_saut.png","collection":"foundryvtt-reve-de-dragon.competences","resultId":"9ICvksiNG6Bhm8CE","weight":1,"range":[51,52],"drawn":false},{"_id":"tRMYNJVd0tzJN39A","flags":{},"type":2,"text":"Cuisine","img":"systems/foundryvtt-reve-de-dragon/icons/competence_cuisine.png","collection":"foundryvtt-reve-de-dragon.competences","resultId":"3qRzl3nhLZNsoDsI","weight":1,"range":[53,58],"drawn":false},{"_id":"tZuba0mG2fjPhJ8g","flags":{},"type":2,"text":"Course","img":"systems/foundryvtt-reve-de-dragon/icons/competence_course.png","collection":"foundryvtt-reve-de-dragon.competences","resultId":"Jz4AZdDlSjsyoUsm","weight":1,"range":[59,60],"drawn":false},{"_id":"9NYb0ZFnIVJ8nKjv","flags":{},"type":2,"text":"Dessin","img":"systems/foundryvtt-reve-de-dragon/icons/competence_dessin.png","collection":"foundryvtt-reve-de-dragon.competences","resultId":"OVcZE4kfiPYEOzgm","weight":1,"range":[61,66],"drawn":false},{"_id":"PYpbLaUERUqrCZSM","flags":{},"type":2,"text":"Séduction","img":"systems/foundryvtt-reve-de-dragon/icons/competence_seduction.png","collection":"foundryvtt-reve-de-dragon.competences","resultId":"AbM6lJ7DI2UAWLxj","weight":1,"range":[67,70],"drawn":false},{"_id":"4GIFGmx6kBMFwy4o","flags":{},"type":2,"text":"Vigilance","img":"systems/foundryvtt-reve-de-dragon/icons/competence_vigilance.png","collection":"foundryvtt-reve-de-dragon.competences","resultId":"VyAJK54OPjiRt8oH","weight":1,"range":[71,72],"drawn":false},{"_id":"WibqvGxsQ1hhEmuB","flags":{},"type":2,"text":"Bricolage","img":"systems/foundryvtt-reve-de-dragon/icons/competence_bricolage.png","collection":"foundryvtt-reve-de-dragon.competences","resultId":"tvIGIPaEJZBaySil","weight":1,"range":[73,78],"drawn":false},{"_id":"gQogDfrwBKftnrNg","flags":{},"type":2,"text":"Charpenterie","img":"systems/foundryvtt-reve-de-dragon/icons/competence_charpenterie.png","collection":"foundryvtt-reve-de-dragon.competences","resultId":"FqLWG6xjISKMLPiX","weight":1,"range":[79,84],"drawn":false},{"_id":"AhRKxgdmYdql3iJv","flags":{},"type":2,"text":"Comédie","img":"systems/foundryvtt-reve-de-dragon/icons/competence_comedie.png","collection":"foundryvtt-reve-de-dragon.competences","resultId":"2JLK5e97WbTM5WxX","weight":1,"range":[85,90],"drawn":false},{"_id":"iWONUpMsZrIovrW6","flags":{},"type":2,"text":"Commerce","img":"systems/foundryvtt-reve-de-dragon/icons/competence_defaut.png","collection":"foundryvtt-reve-de-dragon.competences","resultId":"zO7Av9hJ2vdJiPgI","weight":1,"range":[91,96],"drawn":false},{"_id":"8p2nM9b9NKgXftC6","flags":{},"type":2,"text":"Equitation","img":"systems/foundryvtt-reve-de-dragon/icons/competence_equitation.png","collection":"foundryvtt-reve-de-dragon.competences","resultId":"F5iQNrZSeJsfyTnV","weight":1,"range":[97,102],"drawn":false},{"_id":"nTs5kJa2Y1PlsdR6","flags":{},"type":2,"text":"Maçonnerie","img":"systems/foundryvtt-reve-de-dragon/icons/competence_maconnerie.png","collection":"foundryvtt-reve-de-dragon.competences","resultId":"dwGVDTUJYP9FcmWM","weight":1,"range":[103,108],"drawn":false},{"_id":"SLGmlhYD3yIv9RTw","flags":{},"type":2,"text":"Musique","img":"systems/foundryvtt-reve-de-dragon/icons/competence_musique.png","collection":"foundryvtt-reve-de-dragon.competences","resultId":"wefdYe0kvWKioPmk","weight":1,"range":[109,114],"drawn":false},{"_id":"k3MQErJ6fhaXjy5Q","flags":{},"type":2,"text":"Pickpocket","img":"systems/foundryvtt-reve-de-dragon/icons/competence_pickpocket.png","collection":"foundryvtt-reve-de-dragon.competences","resultId":"dT5cvI7q1HcrLaT1","weight":1,"range":[115,120],"drawn":false},{"_id":"nPfyawbN49pUBjmN","flags":{},"type":2,"text":"Survie en Extérieur","img":"systems/foundryvtt-reve-de-dragon/icons/competence_survie_exterieur.png","collection":"foundryvtt-reve-de-dragon.competences","resultId":"ue5iDSm2f4efQDWO","weight":1,"range":[121,122],"drawn":false},{"_id":"iQXHhRe1yaxkoI9q","flags":{},"type":2,"text":"Survie en Cité","img":"systems/foundryvtt-reve-de-dragon/icons/competence_survie_cite.png","collection":"foundryvtt-reve-de-dragon.competences","resultId":"oHnSnCw1RAW5t15S","weight":1,"range":[123,124],"drawn":false},{"_id":"ZhPRAyUuEYcG9X5z","flags":{},"type":2,"text":"Survie en Désert","img":"systems/foundryvtt-reve-de-dragon/icons/competence_survie_desert.png","collection":"foundryvtt-reve-de-dragon.competences","resultId":"vDOAyWc2YnuhNnFF","weight":1,"range":[125,126],"drawn":false},{"_id":"xKmAbx1nMbRWRaUf","flags":{},"type":2,"text":"Survie en Forêt","img":"systems/foundryvtt-reve-de-dragon/icons/competence_survie_foret.png","collection":"foundryvtt-reve-de-dragon.competences","resultId":"PbvubzCxnOSnWLpG","weight":1,"range":[127,128],"drawn":false},{"_id":"adlAhNycLEPEEDKG","flags":{},"type":2,"text":"Survie en Glaces","img":"systems/foundryvtt-reve-de-dragon/icons/competence_survie_glace.png","collection":"foundryvtt-reve-de-dragon.competences","resultId":"uGPqmorAYxv1jboC","weight":1,"range":[129,130],"drawn":false},{"_id":"gpfI4rxYtxorstEt","flags":{},"type":2,"text":"Survie en Marais","img":"systems/foundryvtt-reve-de-dragon/icons/competence_survie_marais.png","collection":"foundryvtt-reve-de-dragon.competences","resultId":"azn3Sm7XYKP78huL","weight":1,"range":[131,132],"drawn":false},{"_id":"2LTUJ4WQuFHdbUCa","flags":{},"type":2,"text":"Survie en Montagne","img":"systems/foundryvtt-reve-de-dragon/icons/competence_survie_montagne.png","collection":"foundryvtt-reve-de-dragon.competences","resultId":"BzqBOeqS6HvJhqey","weight":1,"range":[133,134],"drawn":false},{"_id":"ZU0NR8n5OzQbqvOS","flags":{},"type":2,"text":"Survie en Sous-Sol","img":"systems/foundryvtt-reve-de-dragon/icons/competence_survie_sous_sol.png","collection":"foundryvtt-reve-de-dragon.competences","resultId":"6pXxEdeo7xcDvgx0","weight":1,"range":[135,136],"drawn":false},{"_id":"PTIrHz6GbGynuX5n","flags":{},"type":2,"text":"Travestissement","img":"systems/foundryvtt-reve-de-dragon/icons/competence_travestissement.png","collection":"foundryvtt-reve-de-dragon.competences","resultId":"w9QubIHdWEUorges","weight":1,"range":[137,142],"drawn":false},{"_id":"izWJA8NgUBQ7jvwB","flags":{},"type":2,"text":"Acrobatie","img":"systems/foundryvtt-reve-de-dragon/icons/competence_acrobatie.png","collection":"foundryvtt-reve-de-dragon.competences","resultId":"zyNYa3hYtrOcF2jA","weight":1,"range":[143,144],"drawn":false},{"_id":"lZevW2I6ujT6Dy03","flags":{},"type":2,"text":"Métallurgie","img":"systems/foundryvtt-reve-de-dragon/icons/competence_metallurgie.png","collection":"foundryvtt-reve-de-dragon.competences","resultId":"CHyk96ypxMrg8VXh","weight":1,"range":[145,148],"drawn":false},{"_id":"Lpxnhk9gR0Yj2G44","flags":{},"type":2,"text":"Jeu","img":"systems/foundryvtt-reve-de-dragon/icons/competence_jeu.png","collection":"foundryvtt-reve-de-dragon.competences","resultId":"3VSMRwMYpOi83wgE","weight":1,"range":[149,152],"drawn":false},{"_id":"tXD0hBXYivgfJDhs","flags":{},"type":2,"text":"Jonglerie","img":"systems/foundryvtt-reve-de-dragon/icons/competence_jonglerie.png","collection":"foundryvtt-reve-de-dragon.competences","resultId":"owCW3nZDvlJy1kCT","weight":1,"range":[153,158],"drawn":false},{"_id":"6ymG1y1FjO6JEG5q","flags":{},"type":2,"text":"Maroquinerie","img":"systems/foundryvtt-reve-de-dragon/icons/competence_maroquinerie.png","collection":"foundryvtt-reve-de-dragon.competences","resultId":"XYMQBxFKSs2nPW0J","weight":1,"range":[159,164],"drawn":false},{"_id":"N3sEj99PrwXKqCux","flags":{},"type":2,"text":"Natation","img":"systems/foundryvtt-reve-de-dragon/icons/competence_natation.png","collection":"foundryvtt-reve-de-dragon.competences","resultId":"qBUtHhyjvrg1c34I","weight":1,"range":[165,166],"drawn":false},{"_id":"nYjtV3JAOcn1GIrw","flags":{},"type":2,"text":"Navigation","img":"systems/foundryvtt-reve-de-dragon/icons/competence_navigation.png","collection":"foundryvtt-reve-de-dragon.competences","resultId":"AXeWswf2Dth9ysvy","weight":1,"range":[167,172],"drawn":false},{"_id":"ngj5LmOpQ8upunfY","flags":{},"type":2,"text":"Orfèvrerie","img":"systems/foundryvtt-reve-de-dragon/icons/competence_orfevrerie.png","collection":"foundryvtt-reve-de-dragon.competences","resultId":"PMOjO2CdedH1UTyi","weight":1,"range":[173,176],"drawn":false},{"_id":"br0H32GMbmv8IYsl","flags":{},"type":2,"text":"Serrurerie","img":"systems/foundryvtt-reve-de-dragon/icons/competence_serrurerie.png","collection":"foundryvtt-reve-de-dragon.competences","resultId":"PMnsXDyeB8w8ZG2k","weight":1,"range":[177,178],"drawn":false},{"_id":"NWkkbA5ifEZ3hclg","flags":{},"type":2,"text":"Alchimie","img":"systems/foundryvtt-reve-de-dragon/icons/competence_alchimie.png","collection":"foundryvtt-reve-de-dragon.competences","resultId":"TAKRb9CdMUhs9dd4","weight":1,"range":[179,180],"drawn":false},{"_id":"AYR0QpNd3HJVh5UL","flags":{},"type":2,"text":"Astrologie","img":"systems/foundryvtt-reve-de-dragon/icons/competence_astrologie.png","collection":"foundryvtt-reve-de-dragon.competences","resultId":"GIIQm22Q4bBsmxpE","weight":1,"range":[181,182],"drawn":false},{"_id":"BMOTHEAQWnjfxTtc","flags":{},"type":2,"text":"Botanique","img":"systems/foundryvtt-reve-de-dragon/icons/competence_botanique.png","collection":"foundryvtt-reve-de-dragon.competences","resultId":"PmwXYvmutlyQEonB","weight":1,"range":[183,184],"drawn":false},{"_id":"H6lZzKByCVhIUldD","flags":{},"type":2,"text":"Chirurgie","img":"systems/foundryvtt-reve-de-dragon/icons/competence_chirurgie.png","collection":"foundryvtt-reve-de-dragon.competences","resultId":"BlG2YPATIbnY3m9P","weight":1,"range":[185,186],"drawn":false},{"_id":"ZkXubH48o5I7ExvT","flags":{},"type":2,"text":"Légendes","img":"systems/foundryvtt-reve-de-dragon/icons/competence_legendes.png","collection":"foundryvtt-reve-de-dragon.competences","resultId":"i3wMVkXObzlDVZTG","weight":1,"range":[187,188],"drawn":false},{"_id":"nqtBe0jgDEtvm2Ob","flags":{},"type":2,"text":"Ecriture","img":"systems/foundryvtt-reve-de-dragon/icons/competence_ecriture.png","collection":"foundryvtt-reve-de-dragon.competences","resultId":"qmIpUeedvjC8nGF1","weight":1,"range":[189,190],"drawn":false},{"_id":"dfQg2QkE2O1NLdeh","flags":{},"type":2,"text":"Médecine","img":"systems/foundryvtt-reve-de-dragon/icons/competence_medecine.png","collection":"foundryvtt-reve-de-dragon.competences","resultId":"XK2TlYnhR8FlDaEi","weight":1,"range":[191,192],"drawn":false},{"_id":"374XHlzYK5azgOch","flags":{},"type":2,"text":"Zoologie","img":"systems/foundryvtt-reve-de-dragon/icons/competence_zoologie.png","collection":"foundryvtt-reve-de-dragon.competences","resultId":"c5wursWW03ckpyqn","weight":1,"range":[193,194],"drawn":false},{"_id":"85p5T2AdujHhCrgr","flags":{},"type":2,"text":"Voie d'Oniros","img":"systems/foundryvtt-reve-de-dragon/icons/competence_oniros.png","collection":"foundryvtt-reve-de-dragon.competences","resultId":"nnR2UHelUaF8dxYn","weight":1,"range":[195,196],"drawn":false},{"_id":"VT5HflXvc0kdHFV3","flags":{},"type":2,"text":"Voie d'Hypnos","img":"systems/foundryvtt-reve-de-dragon/icons/competence_hypnos.png","collection":"foundryvtt-reve-de-dragon.competences","resultId":"bt2cR4aE6lIOeg4F","weight":1,"range":[197,198],"drawn":false},{"_id":"cmxNBwfCdgMUDGJ9","flags":{},"type":2,"text":"Voie de Narcos","img":"systems/foundryvtt-reve-de-dragon/icons/competence_narcos.png","collection":"foundryvtt-reve-de-dragon.competences","resultId":"u1Peok1EYkBcVsmN","weight":1,"range":[199,200],"drawn":false}],"formula":"1d200","replacement":false,"displayRoll":true,"folder":null,"sort":0,"permission":{"default":0,"jOzRscDxoXZWpGS6":3},"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.tables-diverses.E0WLgjn6LA9WsvKJ"}}}
+{"_id":"Q4OENe3IxeVk2emd","name":"Ombre de Thanatos","img":"icons/svg/d20-grey.svg","results":[{"_id":"wpzuulK7z3G5qffV","flags":{},"type":2,"text":"Mauvaise rencontre en perspective","img":"icons/svg/mystery-man.svg","collection":"foundryvtt-reve-de-dragon.ombres-de-thanatos","resultId":"S7se7qPnL6WDg5U5","weight":1,"range":[1,3],"drawn":false},{"_id":"SoUADgjH4T8RvdxX","flags":{},"type":2,"text":"Pélerinage","img":"icons/svg/mystery-man.svg","collection":"foundryvtt-reve-de-dragon.ombres-de-thanatos","resultId":"PYDb8gvRWeCAdPEZ","weight":1,"range":[4,6],"drawn":false},{"_id":"4hb8cPu0biIIz8b5","flags":{},"type":2,"text":"Conquête","img":"icons/svg/mystery-man.svg","collection":"foundryvtt-reve-de-dragon.ombres-de-thanatos","resultId":"N9j8K6x89BdS7ZKN","weight":1,"range":[7,9],"drawn":false},{"_id":"RXDO4FsDh4jAsDLs","flags":{},"type":2,"text":"Inertie draconique","img":"icons/svg/mystery-man.svg","collection":"foundryvtt-reve-de-dragon.ombres-de-thanatos","resultId":"PmEjVox3Q6SPF730","weight":1,"range":[10,12],"drawn":false},{"_id":"CozTCNQrrfZ59sf1","flags":{},"type":2,"text":"Urgence draconique","img":"icons/svg/mystery-man.svg","collection":"foundryvtt-reve-de-dragon.ombres-de-thanatos","resultId":"3dnmi4Fyh5eUQcyP","weight":1,"range":[13,15],"drawn":false},{"_id":"QvG73iq6hBlenhEp","flags":{},"type":2,"text":"Réinsertion aléatoire","img":"icons/svg/mystery-man.svg","collection":"foundryvtt-reve-de-dragon.ombres-de-thanatos","resultId":"yEHdCabJYx0qvoL5","weight":1,"range":[16,18],"drawn":false},{"_id":"HMyr7XykkAPWmN8t","flags":{},"type":2,"text":"Montée laborieuse","img":"icons/svg/mystery-man.svg","collection":"foundryvtt-reve-de-dragon.ombres-de-thanatos","resultId":"uQ4PwcwplvZarfn1","weight":1,"range":[19,21],"drawn":false},{"_id":"ik7dIzDzJ1wAUkgf","flags":{},"type":2,"text":"Coup de barre","img":"icons/svg/mystery-man.svg","collection":"foundryvtt-reve-de-dragon.ombres-de-thanatos","resultId":"PMz7SaB6sRxhwrWw","weight":1,"range":[22,24],"drawn":false},{"_id":"aW9V5ygWHPdW1Jtf","flags":{},"type":2,"text":"Insomnie","img":"icons/svg/mystery-man.svg","collection":"foundryvtt-reve-de-dragon.ombres-de-thanatos","resultId":"6MUcjYfxfi45STvo","weight":1,"range":[25,27],"drawn":false},{"_id":"2FYKcBFesQzcXbUA","flags":{},"type":2,"text":"Dépouillement","img":"icons/svg/mystery-man.svg","collection":"foundryvtt-reve-de-dragon.ombres-de-thanatos","resultId":"UmvGxA4cFSoRE82Z","weight":1,"range":[28,30],"drawn":false},{"_id":"IyBmZMV61fY9UYA0","flags":{},"type":2,"text":"Amnésie sélective","img":"icons/svg/mystery-man.svg","collection":"foundryvtt-reve-de-dragon.ombres-de-thanatos","resultId":"aZWuRmi8lplZQcdM","weight":1,"range":[31,33],"drawn":false},{"_id":"1j3visYhg7NhqCDT","flags":{},"type":2,"text":"Souvenir morbide de l'archétype","img":"icons/svg/mystery-man.svg","collection":"foundryvtt-reve-de-dragon.ombres-de-thanatos","resultId":"RrPMV2HW2Rg8POK1","weight":1,"range":[34,38],"drawn":false},{"_id":"lpsX7oyzuuAd64h0","flags":{},"type":2,"text":"Désir de boire du sang chaud","img":"icons/svg/mystery-man.svg","collection":"foundryvtt-reve-de-dragon.ombres-de-thanatos","resultId":"DnhuuGUEbOF95JlN","weight":1,"range":[39,42],"drawn":false},{"_id":"YunZkN9eCnjZ1D8m","flags":{},"type":2,"text":"Désir de dormir dans un cercueil","img":"icons/svg/mystery-man.svg","collection":"foundryvtt-reve-de-dragon.ombres-de-thanatos","resultId":"fO1jjVlOb6faLv3T","weight":1,"range":[43,46],"drawn":false},{"_id":"tEj1NQTA0mhzM1p1","flags":{},"type":2,"text":"Désir d'assister à une pendaison","img":"icons/svg/mystery-man.svg","collection":"foundryvtt-reve-de-dragon.ombres-de-thanatos","resultId":"wqWkQQsAPVlFw4ft","weight":1,"range":[47,50],"drawn":false},{"_id":"dosUf11v2O51O6t3","flags":{},"type":2,"text":"Désir de parler à un crâne (humain)","img":"icons/svg/mystery-man.svg","collection":"foundryvtt-reve-de-dragon.ombres-de-thanatos","resultId":"lz3ghhJzkPRWJ2jz","weight":1,"range":[51,54],"drawn":false},{"_id":"PHka9Cubw22yZe8q","flags":{},"type":2,"text":"Désir d'entendre hurler de terreur","img":"icons/svg/mystery-man.svg","collection":"foundryvtt-reve-de-dragon.ombres-de-thanatos","resultId":"twUoR8ALYiabkfoE","weight":1,"range":[55,58],"drawn":false},{"_id":"UQNVsTqU0H8DNcKy","flags":{},"type":2,"text":"Désir de blesser une femme","img":"icons/svg/mystery-man.svg","collection":"foundryvtt-reve-de-dragon.ombres-de-thanatos","resultId":"gT0PQAxlYrtITyut","weight":1,"range":[59,62],"drawn":false},{"_id":"4LrCLY6tNKSY8Yuk","flags":{},"type":2,"text":"Désir de blesser un enfant","img":"icons/svg/mystery-man.svg","collection":"foundryvtt-reve-de-dragon.ombres-de-thanatos","resultId":"2KbzOC2aj98CiQbW","weight":1,"range":[63,66],"drawn":false},{"_id":"ZuLtoh6m8e2RHcx5","flags":{},"type":2,"text":"Désir d'escalade difficile","img":"icons/svg/mystery-man.svg","collection":"foundryvtt-reve-de-dragon.ombres-de-thanatos","resultId":"2KM1yiEOE0ZdT2oL","weight":1,"range":[67,70],"drawn":false},{"_id":"QwHAJQawRnx4Go3h","flags":{},"type":2,"text":"Injurier la première personne inconnue rencontrée","img":"icons/svg/mystery-man.svg","collection":"foundryvtt-reve-de-dragon.ombres-de-thanatos","resultId":"fUKNZ0uEG2y2PkOk","weight":1,"range":[71,73],"drawn":false},{"_id":"xxC1Kj1hWxyp06lG","flags":{},"type":2,"text":"Couardise irraisonnée","img":"icons/svg/mystery-man.svg","collection":"foundryvtt-reve-de-dragon.ombres-de-thanatos","resultId":"cUkRSRz5DJYb3WM8","weight":1,"range":[74,76],"drawn":false},{"_id":"5f78aQb3Yc34DXTs","flags":{},"type":2,"text":"Héroïsme forcené","img":"icons/svg/mystery-man.svg","collection":"foundryvtt-reve-de-dragon.ombres-de-thanatos","resultId":"spYuiInqbCoDsKvd","weight":1,"range":[77,85],"drawn":false},{"_id":"YK5vMX4fw2cmezYx","flags":{},"type":2,"text":"Haine fatale","img":"icons/svg/mystery-man.svg","collection":"foundryvtt-reve-de-dragon.ombres-de-thanatos","resultId":"dFf8jaC0RvidC1ZC","weight":1,"range":[86,95],"drawn":false},{"_id":"QMsLQ7UYnGgAHX6w","flags":{},"type":2,"text":"Infarctus","img":"icons/svg/mystery-man.svg","collection":"foundryvtt-reve-de-dragon.ombres-de-thanatos","resultId":"e67rXcuO236ioYAr","weight":1,"range":[96,100],"drawn":false}],"formula":"1d100","replacement":true,"displayRoll":true,"folder":null,"sort":0,"permission":{"default":0,"jOzRscDxoXZWpGS6":3},"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.tables-diverses.Q4OENe3IxeVk2emd"}}}
+{"_id":"U7lFRPBHeIH8u9J1","name":"Queues de dragon","img":"icons/svg/d20-grey.svg","description":"Une queue de Dragon vient perturber le Haut Rêvant, mais peut éventuellement être refoulée.","results":[{"_id":"DnmiOB1RpCmVLch9","flags":{},"type":2,"text":"Mauvaise rencontre en perspective","img":"icons/svg/mystery-man.svg","collection":"foundryvtt-reve-de-dragon.queues-de-dragon","resultId":"0jrEZ62Q2Jz4kBGf","weight":1,"range":[1,4],"drawn":false,"rangeL":1,"rangeH":4},{"_id":"WOwIemPaKZHdCMvr","flags":{},"type":2,"text":"Pèlerinage","img":"systems/foundryvtt-reve-de-dragon/icons/queue_dragon.webp","collection":"foundryvtt-reve-de-dragon.queues-de-dragon","resultId":"RVslW735GbPbXCpP","weight":1,"range":[5,8],"drawn":false,"rangeL":5,"rangeH":8},{"_id":"gfYTSiUicNZwAjRo","flags":{},"type":2,"text":"Conquête","img":"icons/svg/mystery-man.svg","collection":"foundryvtt-reve-de-dragon.queues-de-dragon","resultId":"lBkO8FvFqXoKNhvk","weight":1,"range":[9,12],"drawn":false,"rangeL":9,"rangeH":12},{"_id":"naqhaGGmAJeluTY0","flags":{},"type":2,"text":"Inertie draconique","img":"icons/svg/mystery-man.svg","collection":"foundryvtt-reve-de-dragon.queues-de-dragon","resultId":"EUrxQGd7FuW628NS","weight":1,"range":[13,16],"drawn":false,"rangeL":13,"rangeH":16},{"_id":"x2yKZ5M27TS3T1sz","flags":{},"type":2,"text":"Urgence draconique","img":"icons/svg/mystery-man.svg","collection":"foundryvtt-reve-de-dragon.queues-de-dragon","resultId":"OSV2b7bVWv2SCfUY","weight":1,"range":[17,20],"drawn":false,"rangeL":17,"rangeH":20},{"_id":"iioHGaPajVKNkstK","flags":{},"type":2,"text":"Réinsertion aléatoire","img":"icons/svg/mystery-man.svg","collection":"foundryvtt-reve-de-dragon.queues-de-dragon","resultId":"iHuLw0I1Gc5mIucG","weight":1,"range":[21,24],"drawn":false,"rangeL":21,"rangeH":24},{"_id":"JYmA9tItuZcMPOOV","flags":{},"type":2,"text":"Montée laborieuse","img":"icons/svg/mystery-man.svg","collection":"foundryvtt-reve-de-dragon.queues-de-dragon","resultId":"5knw1NcnBsLIjHpr","weight":1,"range":[25,28],"drawn":false,"rangeL":25,"rangeH":28},{"_id":"CiDHbsTLdHa3OH0P","flags":{},"type":2,"text":"Coup de barre","img":"icons/svg/mystery-man.svg","collection":"foundryvtt-reve-de-dragon.queues-de-dragon","resultId":"Qgj5eSMpQ0IDHwZX","weight":1,"range":[29,33],"drawn":false,"rangeL":29,"rangeH":33},{"_id":"zlA5O6YKgVhlau0g","flags":{},"type":2,"text":"Insomnie","img":"icons/svg/mystery-man.svg","collection":"foundryvtt-reve-de-dragon.queues-de-dragon","resultId":"kHWwwxA0alcpDYpf","weight":1,"range":[34,38],"drawn":false,"rangeL":34,"rangeH":38},{"_id":"fG9uQ9ZczIsiAZiu","flags":{},"type":2,"text":"Dépouillement","img":"icons/svg/mystery-man.svg","collection":"foundryvtt-reve-de-dragon.queues-de-dragon","resultId":"vft88ioHpGxMzdML","weight":1,"range":[39,43],"drawn":false,"rangeL":39,"rangeH":43},{"_id":"0E9o8Ok7XGHQn9td","flags":{},"type":2,"text":"Amnésie sélective","img":"icons/svg/mystery-man.svg","collection":"foundryvtt-reve-de-dragon.queues-de-dragon","resultId":"iJw6j7kuP1eAHIck","weight":1,"range":[44,48],"drawn":false,"rangeL":44,"rangeH":48},{"_id":"tR0mP1r8vZkkIZCN","flags":{},"type":2,"text":"Souvenir obsessionnel de l'archétype","img":"icons/svg/mystery-man.svg","collection":"foundryvtt-reve-de-dragon.queues-de-dragon","resultId":"1gGVlZM0UyifL6RK","weight":1,"range":[49,60],"drawn":false,"rangeL":49,"rangeH":60},{"_id":"6I1yzi0EXNACViG7","flags":{},"type":2,"text":"Coup de foudre fatal","img":"icons/svg/mystery-man.svg","collection":"foundryvtt-reve-de-dragon.queues-de-dragon","resultId":"32LbwxxokC9Tn370","weight":1,"range":[61,65],"drawn":false,"rangeL":61,"rangeH":65},{"_id":"56YHZq0lAtlzR4W8","flags":{},"type":2,"text":"Masque de Narcos","img":"icons/svg/mystery-man.svg","collection":"foundryvtt-reve-de-dragon.queues-de-dragon","resultId":"TmEeikWOQt6NZGVY","weight":1,"range":[66,70],"drawn":false,"rangeL":66,"rangeH":70},{"_id":"0DrCevELHAHP1djk","flags":{},"type":2,"text":"Désir lancinant","img":"icons/svg/mystery-man.svg","collection":"foundryvtt-reve-de-dragon.queues-de-dragon","resultId":"Ltgqj86rYQr8D8LW","weight":1,"range":[71,85],"drawn":false,"rangeL":71,"rangeH":85},{"_id":"S4rUoU2hlj6EugD4","flags":{},"type":2,"text":"Idée fixe","img":"icons/svg/mystery-man.svg","collection":"foundryvtt-reve-de-dragon.queues-de-dragon","resultId":"J3XtcVuQo846U1OT","weight":1,"range":[86,100],"drawn":false,"rangeL":86,"rangeH":100}],"formula":"1d100","replacement":true,"displayRoll":true,"folder":null,"sort":0,"permission":{"default":0,"jOzRscDxoXZWpGS6":3},"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.tables-diverses.U7lFRPBHeIH8u9J1"}}}
+{"_id":"VyoowwZ4vJJADDxR","name":"Têtes de Dragon pour tous personnages","img":"icons/svg/d20-grey.svg","description":"Quand une tête est dite unique, retirer si le personnage la possède déjà. Quand elle est dite cumulable, le jet de dés indiqué bénéficie d’un nouveau bonus de +1 chaque fois qu’elle est ré-obtenue. Par exemple un jet de Vue à zéro devient un jet de Vue à +1.","results":[{"_id":"dVS0FZiln8xbcDVW","flags":{},"type":2,"text":"Augmentation de caractéristique","img":"icons/svg/mystery-man.svg","collection":"foundryvtt-reve-de-dragon.tetes-de-dragon-pour-tous-personnages","resultId":"OFWK2rZkh1S5Hbjh","weight":1,"range":[1,7],"drawn":false},{"_id":"bMN9j7EA6quRhcjQ","flags":{},"type":2,"text":"Don de haut-rêve","img":"icons/svg/mystery-man.svg","collection":"foundryvtt-reve-de-dragon.tetes-de-dragon-pour-tous-personnages","resultId":"YwmmMSH52pNJsOn3","weight":1,"range":[35,40],"drawn":false},{"_id":"tHjCWtOXt9rZcxeE","flags":{},"type":2,"text":"Souvenir immédiat de l'archétype","img":"icons/svg/mystery-man.svg","collection":"foundryvtt-reve-de-dragon.tetes-de-dragon-pour-tous-personnages","resultId":"FesXnBWChHcWfrBm","weight":1,"range":[8,14],"drawn":false},{"_id":"ik6qehStjGzSysdB","flags":{},"type":2,"text":"Don de sentir les haut-rêvants","img":"icons/svg/mystery-man.svg","collection":"foundryvtt-reve-de-dragon.tetes-de-dragon-pour-tous-personnages","resultId":"aAIbDFQ0Pz6XrHh6","weight":1,"range":[41,46],"drawn":false},{"_id":"m7luEPB0qCczWfe1","flags":{},"type":2,"text":"Don de sentir le mensonge","img":"icons/svg/mystery-man.svg","collection":"foundryvtt-reve-de-dragon.tetes-de-dragon-pour-tous-personnages","resultId":"OZZbiBiLlM6Y8lEY","weight":1,"range":[47,52],"drawn":false},{"_id":"IPB3m4ONBmaP4O3i","flags":{},"type":2,"text":"Don de résistance à la magie","img":"icons/svg/mystery-man.svg","collection":"foundryvtt-reve-de-dragon.tetes-de-dragon-pour-tous-personnages","resultId":"6gcyt965GKvDgG02","weight":1,"range":[53,58],"drawn":false},{"_id":"aLxOqRKLiuzwdzfI","flags":{},"type":2,"text":"Don de non-résistance à la magie","img":"icons/svg/mystery-man.svg","collection":"foundryvtt-reve-de-dragon.tetes-de-dragon-pour-tous-personnages","resultId":"egUb65MLFFKpLnkO","weight":1,"range":[59,64],"drawn":false},{"_id":"UuFHH4vl7mRH5MLu","flags":{},"type":2,"text":"Don de contrôler son sommeil","img":"icons/svg/mystery-man.svg","collection":"foundryvtt-reve-de-dragon.tetes-de-dragon-pour-tous-personnages","resultId":"N6guZDGzzZjt9GrR","weight":1,"range":[65,70],"drawn":false},{"_id":"lrQLebx8ZhV6fQRO","flags":{},"type":2,"text":"Don limité de résistance au poison","img":"icons/svg/mystery-man.svg","collection":"foundryvtt-reve-de-dragon.tetes-de-dragon-pour-tous-personnages","resultId":"THAUFNSNgSHfh06l","weight":1,"range":[71,76],"drawn":false},{"_id":"A3KZpG1yyL0pMMrQ","flags":{},"type":2,"text":"Don limité de résistance à la maladie","img":"icons/svg/mystery-man.svg","collection":"foundryvtt-reve-de-dragon.tetes-de-dragon-pour-tous-personnages","resultId":"CoXzAjCwGSWVM4cY","weight":1,"range":[77,82],"drawn":false},{"_id":"dN3DyGXso0ySK56W","flags":{},"type":2,"text":"Don d'apprivoiser les animaux","img":"icons/svg/mystery-man.svg","collection":"foundryvtt-reve-de-dragon.tetes-de-dragon-pour-tous-personnages","resultId":"wlbbh75GZWks3Ehb","weight":1,"range":[83,88],"drawn":false},{"_id":"vJxx7hRIgmVtBuU6","flags":{},"type":2,"text":"Don d'orientation","img":"icons/svg/mystery-man.svg","collection":"foundryvtt-reve-de-dragon.tetes-de-dragon-pour-tous-personnages","resultId":"slnKVCfHbLwbXi4Z","weight":1,"range":[89,94],"drawn":false},{"_id":"ZM3uOMpEwdrmkPw9","flags":{},"type":2,"text":"Don limité de guérison","img":"icons/svg/mystery-man.svg","collection":"foundryvtt-reve-de-dragon.tetes-de-dragon-pour-tous-personnages","resultId":"3EqDvQ0p4f73KZl5","weight":1,"range":[95,100],"drawn":false},{"_id":"D7A37IkCI5z2z1DV","flags":{},"type":2,"text":"Don limité de réussite","img":"icons/svg/mystery-man.svg","collection":"foundryvtt-reve-de-dragon.tetes-de-dragon-pour-tous-personnages","resultId":"R6LxyzYwAMCjKIr5","weight":1,"range":[15,21],"drawn":false},{"_id":"NbEruiuFMhnUna2U","flags":{},"type":2,"text":"Don de double chance","img":"icons/svg/mystery-man.svg","collection":"foundryvtt-reve-de-dragon.tetes-de-dragon-pour-tous-personnages","resultId":"zzD5wN03zwq0e5Cn","weight":1,"range":[22,28],"drawn":false},{"_id":"ZBVa1vrTaBrTE9p4","flags":{},"type":2,"text":"Don de voir la magie","img":"icons/svg/mystery-man.svg","collection":"foundryvtt-reve-de-dragon.tetes-de-dragon-pour-tous-personnages","resultId":"QWouooLkM7pE2yG1","weight":1,"range":[29,34],"drawn":false}],"formula":"1d100","replacement":true,"displayRoll":true,"folder":null,"sort":0,"permission":{"default":0,"jOzRscDxoXZWpGS6":3},"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.tables-diverses.VyoowwZ4vJJADDxR"}}}
+{"name":"Signes draconiques","img":"systems/foundryvtt-reve-de-dragon/icons/heures/de-heures.webp","description":"Propositions de descriptions de signes draconiques","results":[{"_id":"RrHTGEjvQSRScfvS","type":0,"text":"des centaines de graines emportées par le vent","img":"icons/svg/d20-black.svg","weight":1,"range":[1,1],"drawn":false,"flags":{},"rangeL":1,"rangeH":1},{"_id":"YbaZQMKMdwYSAG3j","type":0,"text":"des cheminées de fées","img":"icons/svg/d20-black.svg","weight":1,"range":[2,2],"drawn":false,"flags":{},"rangeL":2,"rangeH":2},{"_id":"EOAwVJbpCkQlIWBV","type":0,"text":"des cristaux de neige étincelants au soleil","img":"icons/svg/d20-black.svg","weight":1,"range":[3,3],"drawn":false,"flags":{},"rangeL":3,"rangeH":3},{"_id":"sx4BAqoQXhz6n5Gb","type":0,"text":"des feux follets dans la nuit","img":"icons/svg/d20-black.svg","weight":1,"range":[4,4],"drawn":false,"flags":{},"rangeL":4,"rangeH":4},{"_id":"TnRnASsaK50EZtKN","type":0,"text":"des fumeroles s'échappant de fissures dans le sol","img":"icons/svg/d20-black.svg","weight":1,"range":[5,5],"drawn":false,"flags":{},"rangeL":5,"rangeH":5},{"_id":"GxU1GrRDDwDbYhR6","type":0,"text":"des grêlons de la taille d'un oeuf de pigeon","img":"icons/svg/d20-black.svg","weight":1,"range":[6,6],"drawn":false,"flags":{},"rangeL":6,"rangeH":6},{"_id":"uwWickxstmWYZV0w","type":0,"text":"des lichens à l'assaut d'une souche","img":"icons/svg/d20-black.svg","weight":1,"range":[7,7],"drawn":false,"flags":{},"rangeL":7,"rangeH":7},{"_id":"bXQFB43loC5Onw4z","type":0,"text":"des mirages sur l'horizon","img":"icons/svg/d20-black.svg","weight":1,"range":[8,8],"drawn":false,"flags":{},"rangeL":8,"rangeH":8},{"_id":"XbMgETBXGQhYnLC8","type":0,"text":"des nuages accrochées aux flancs d'une montagne","img":"icons/svg/d20-black.svg","weight":1,"range":[9,9],"drawn":false,"flags":{},"rangeL":9,"rangeH":9},{"_id":"iCiFFy5azFRfFckf","type":0,"text":"des nuées dans le ciel nocturne","img":"icons/svg/d20-black.svg","weight":1,"range":[10,10],"drawn":false,"flags":{},"rangeL":10,"rangeH":10},{"_id":"nKpAHXjyHZtz7qdT","type":0,"text":"des plumes duveteuses accrochées dans les fougères","img":"icons/svg/d20-black.svg","weight":1,"range":[11,11],"drawn":false,"flags":{},"rangeL":11,"rangeH":11},{"_id":"DYcdGevQ466CTAGx","type":0,"text":"des roches sculptées par l'érosion","img":"icons/svg/d20-black.svg","weight":1,"range":[12,12],"drawn":false,"flags":{},"rangeL":12,"rangeH":12},{"_id":"gkxC7GRzihCaeezW","type":0,"text":"des signes comme gravés à même la pierre évoquant la langue des Dragons","img":"icons/svg/d20-black.svg","weight":1,"range":[13,13],"drawn":false,"flags":{},"rangeL":13,"rangeH":13},{"_id":"VQd9LHp66ynzwpTB","type":0,"text":"des silhouettes imprécises dans la brume","img":"icons/svg/d20-black.svg","weight":1,"range":[14,14],"drawn":false,"flags":{},"rangeL":14,"rangeH":14},{"_id":"EfbPSZQWGAsmdyi8","type":0,"text":"des sons de flûtes provenant du sous bois","img":"icons/svg/d20-black.svg","weight":1,"range":[15,15],"drawn":false,"flags":{},"rangeL":15,"rangeH":15},{"_id":"8tQk0HnsdlPtuqZU","type":0,"text":"des traces de fossiles dans une roche","img":"icons/svg/d20-black.svg","weight":1,"range":[16,16],"drawn":false,"flags":{},"rangeL":16,"rangeH":16},{"_id":"q8MXOYsVs8PmDWXs","type":0,"text":"des uages noirs qui moutonnent juste avant la pluie","img":"icons/svg/d20-black.svg","weight":1,"range":[17,17],"drawn":false,"flags":{},"rangeL":17,"rangeH":17},{"_id":"qkIvtH5qmoMGPsmu","type":0,"text":"des veinures aux reflets métalliques dans la roche","img":"icons/svg/d20-black.svg","weight":1,"range":[18,18],"drawn":false,"flags":{},"rangeL":18,"rangeH":18},{"_id":"EZXdxg7DYq2XmQNv","type":0,"text":"des voiles d'aurores boréales tombant dans le ciel nocturne","img":"icons/svg/d20-black.svg","weight":1,"range":[19,19],"drawn":false,"flags":{},"rangeL":19,"rangeH":19},{"_id":"2KWl2CFhVbIRM2hB","type":0,"text":"des éclairs zébrant le ciel à l'horizon","img":"icons/svg/d20-black.svg","weight":1,"range":[20,20],"drawn":false,"flags":{},"rangeL":20,"rangeH":20},{"_id":"5xd4BGDdJf1yQ8W0","type":0,"text":"l'entrelacs des branches d'un arbre millénaire","img":"icons/svg/d20-black.svg","weight":1,"range":[21,21],"drawn":false,"flags":{},"rangeL":21,"rangeH":21},{"_id":"e110nwWYhZPTqcxp","type":0,"text":"l'écoulement d'une chute l'eau","img":"icons/svg/d20-black.svg","weight":1,"range":[22,22],"drawn":false,"flags":{},"rangeL":22,"rangeH":22},{"_id":"wtp7KqoQeZDruxbd","type":0,"text":"l'écume sur les vagues salées","img":"icons/svg/d20-black.svg","weight":1,"range":[23,23],"drawn":false,"flags":{},"rangeL":23,"rangeH":23},{"_id":"heuAkvxDbU2O2Xv3","type":0,"text":"la brillance d'étoiles alignées","img":"icons/svg/d20-black.svg","weight":1,"range":[24,24],"drawn":false,"flags":{},"rangeL":24,"rangeH":24},{"_id":"060oBHqZjijhCguE","type":0,"text":"la coloration verte des flammes","img":"icons/svg/d20-black.svg","weight":1,"range":[25,25],"drawn":false,"flags":{},"rangeL":25,"rangeH":25},{"_id":"dptFVSls88PS7F9Z","type":0,"text":"la course hypnotique des balles d'un jongleur","img":"icons/svg/d20-black.svg","weight":1,"range":[26,26],"drawn":false,"flags":{},"rangeL":26,"rangeH":26},{"_id":"YuHwobxISaNx8poL","type":0,"text":"la formation de givre sur une étendue d'eau","img":"icons/svg/d20-black.svg","weight":1,"range":[27,27],"drawn":false,"flags":{},"rangeL":27,"rangeH":27},{"_id":"gVaaSWaIdcfzkYDW","type":0,"text":"la lueur du crépuscule sur les cimes à l'horizon","img":"icons/svg/d20-black.svg","weight":1,"range":[28,28],"drawn":false,"flags":{},"rangeL":28,"rangeH":28},{"_id":"nx22UUQy2IS2IrFJ","type":0,"text":"la lune rouge sang","img":"icons/svg/d20-black.svg","weight":1,"range":[29,29],"drawn":false,"flags":{},"rangeL":29,"rangeH":29},{"_id":"E0AwVI3Wu1q62ch1","type":0,"text":"la rosée dans une toile d'araignée","img":"icons/svg/d20-black.svg","weight":1,"range":[30,30],"drawn":false,"flags":{},"rangeL":30,"rangeH":30},{"_id":"PQfgELyF201O7HGR","type":0,"text":"la teinte rouge de la lune à travers les nuages","img":"icons/svg/d20-black.svg","weight":1,"range":[31,31],"drawn":false,"flags":{},"rangeL":31,"rangeH":31},{"_id":"c4IVdBfeFm5nzZNr","type":0,"text":"le faisceau d'ondes causé par un insecte aquatique","img":"icons/svg/d20-black.svg","weight":1,"range":[32,32],"drawn":false,"flags":{},"rangeL":32,"rangeH":32},{"_id":"s7WGDkDbSjWAjA0k","type":0,"text":"le mouvement de grains de sable poussés par le vent","img":"icons/svg/d20-black.svg","weight":1,"range":[33,33],"drawn":false,"flags":{},"rangeL":33,"rangeH":33},{"_id":"R3tPZOuEaLLEmH2R","type":0,"text":"le mouvement de vagues battant le rivage","img":"icons/svg/d20-black.svg","weight":1,"range":[34,34],"drawn":false,"flags":{},"rangeL":34,"rangeH":34},{"_id":"7tRKVSstvB1KoPc5","type":0,"text":"le mouvement régulier des pales d'un moulin à vent","img":"icons/svg/d20-black.svg","weight":1,"range":[35,35],"drawn":false,"flags":{},"rangeL":35,"rangeH":35},{"_id":"g9D6PwYYC0nsMRuz","type":0,"text":"le rythme de l'eau qui emporte les aubes d'un moulin","img":"icons/svg/d20-black.svg","weight":1,"range":[36,36],"drawn":false,"flags":{},"rangeL":36,"rangeH":36},{"_id":"pyyfjNdxPTQxT8I9","type":0,"text":"le soleil masqué par un passage de nuages","img":"icons/svg/d20-black.svg","weight":1,"range":[37,37],"drawn":false,"flags":{},"rangeL":37,"rangeH":37},{"_id":"ruu8JE6D37shPBHW","type":0,"text":"le tableau abstrait de tâches sur le sol","img":"icons/svg/d20-black.svg","weight":1,"range":[38,38],"drawn":false,"flags":{},"rangeL":38,"rangeH":38},{"_id":"11H6WPvsH2asuNni","type":0,"text":"les cicatrices et boutons du visage d'un malade","img":"icons/svg/d20-black.svg","weight":1,"range":[39,39],"drawn":false,"flags":{},"rangeL":39,"rangeH":39},{"_id":"Rx4emTpLzHlWLOc1","type":0,"text":"les colorations violacées et oranges du ciel matinal","img":"icons/svg/d20-black.svg","weight":1,"range":[40,40],"drawn":false,"flags":{},"rangeL":40,"rangeH":40},{"_id":"npX7u53uvhpDzijj","type":0,"text":"les figures de la rouille sur un vieux casque","img":"icons/svg/d20-black.svg","weight":1,"range":[41,41],"drawn":false,"flags":{},"rangeL":41,"rangeH":41},{"_id":"iVwJRtg003SGiaSS","type":0,"text":"les filaments d'une fleur carnivore enlaçant un insecte","img":"icons/svg/d20-black.svg","weight":1,"range":[42,42],"drawn":false,"flags":{},"rangeL":42,"rangeH":42},{"_id":"AREeqXnfwKWC60dU","type":0,"text":"les rayons du soleil couchant","img":"icons/svg/d20-black.svg","weight":1,"range":[43,43],"drawn":false,"flags":{},"rangeL":43,"rangeH":43},{"_id":"a2DxMk0jPF9XeOkv","type":0,"text":"les reflets d'eau à travers les plantes aquatiques","img":"icons/svg/d20-black.svg","weight":1,"range":[44,44],"drawn":false,"flags":{},"rangeL":44,"rangeH":44},{"_id":"2NDAAfLswV9jf7ef","type":0,"text":"les remous cascadant d’un torrent tels un liquide en ébullition dans une marmite de gigant","img":"icons/svg/d20-black.svg","weight":1,"range":[45,45],"drawn":false,"flags":{},"rangeL":45,"rangeH":45},{"_id":"3QqbSi2ItMkGAfCH","type":0,"text":"les restes d'un mur antique","img":"icons/svg/d20-black.svg","weight":1,"range":[46,46],"drawn":false,"flags":{},"rangeL":46,"rangeH":46},{"_id":"tJCwHWzVfruXZoLU","type":0,"text":"les vagues du vent dans les herbes hautes","img":"icons/svg/d20-black.svg","weight":1,"range":[47,47],"drawn":false,"flags":{},"rangeL":47,"rangeH":47},{"_id":"plN0wPSvG7nj28WA","type":0,"text":"un arbre mort fendu par la foudre","img":"icons/svg/d20-black.svg","weight":1,"range":[48,48],"drawn":false,"flags":{},"rangeL":48,"rangeH":48},{"_id":"azLfeKh1kTlYvI5S","type":0,"text":"un arc-en-ciel double","img":"icons/svg/d20-black.svg","weight":1,"range":[49,49],"drawn":false,"flags":{},"rangeL":49,"rangeH":49},{"_id":"mJ9xrlNQPY99WCGk","type":0,"text":"un arc-en-ciel très lumineux","img":"icons/svg/d20-black.svg","weight":1,"range":[50,50],"drawn":false,"flags":{},"rangeL":50,"rangeH":50},{"_id":"63ucZAx20pRFW1kT","type":0,"text":"un cadavre d'animal inconnu","img":"icons/svg/d20-black.svg","weight":1,"range":[51,51],"drawn":false,"flags":{},"rangeL":51,"rangeH":51},{"_id":"t44uvhajFl13JU2u","type":0,"text":"un dragon de nuages prenant son envol","img":"icons/svg/d20-black.svg","weight":1,"range":[52,52],"drawn":false,"flags":{},"rangeL":52,"rangeH":52},{"_id":"z4T8y3bhT4ZwQVa0","type":0,"text":"un empilement de pierres","img":"icons/svg/d20-black.svg","weight":1,"range":[53,53],"drawn":false,"flags":{},"rangeL":53,"rangeH":53},{"_id":"Zi5miLXbqRvTxwbx","type":0,"text":"un enfant sautant dans les flaques d'eau","img":"icons/svg/d20-black.svg","weight":1,"range":[54,54],"drawn":false,"flags":{},"rangeL":54,"rangeH":54},{"_id":"ifwpV51bDa32ClSd","type":0,"text":"un fantôme de poussière étincellant au soleil","img":"icons/svg/d20-black.svg","weight":1,"range":[55,55],"drawn":false,"flags":{},"rangeL":55,"rangeH":55},{"_id":"mAZUonbClU5cC8dM","type":0,"text":"un geyser projetant eau et vapeur à la face des Dragons","img":"icons/svg/d20-black.svg","weight":1,"range":[56,56],"drawn":false,"flags":{},"rangeL":56,"rangeH":56},{"_id":"JBIEezI2AHeMvowN","type":0,"text":"un manche d'outil poli par l'usure","img":"icons/svg/d20-black.svg","weight":1,"range":[57,57],"drawn":false,"flags":{},"rangeL":57,"rangeH":57},{"_id":"Jro6WmB9BpRvZxFw","type":0,"text":"un moustique gorgé de sang","img":"icons/svg/d20-black.svg","weight":1,"range":[58,58],"drawn":false,"flags":{},"rangeL":58,"rangeH":58},{"_id":"gxRm6BCXwseLfnKh","type":0,"text":"un nid d'oiseau inconnu","img":"icons/svg/d20-black.svg","weight":1,"range":[59,59],"drawn":false,"flags":{},"rangeL":59,"rangeH":59},{"_id":"WMcREu025qFHzKKd","type":0,"text":"un nuage d'insectes assombrissant le ciel","img":"icons/svg/d20-black.svg","weight":1,"range":[60,60],"drawn":false,"flags":{},"rangeL":60,"rangeH":60},{"_id":"FKtgKc8DFlkbMvFM","type":0,"text":"un panache de fumée volcaniques s'élevant à l'horizon","img":"icons/svg/d20-black.svg","weight":1,"range":[61,61],"drawn":false,"flags":{},"rangeL":61,"rangeH":61},{"_id":"nzNoSwVmD58SidId","type":0,"text":"un parterre de fleurs","img":"icons/svg/d20-black.svg","weight":1,"range":[62,62],"drawn":false,"flags":{},"rangeL":62,"rangeH":62},{"_id":"jlr0NtvjHd6g7DWC","type":0,"text":"un prairie brumeuse","img":"icons/svg/d20-black.svg","weight":1,"range":[63,63],"drawn":false,"flags":{},"rangeL":63,"rangeH":63},{"_id":"mfJQZpHvG1r1Ia1m","type":0,"text":"un rideau de pluie éclairé d'un rai de lumière diffus","img":"icons/svg/d20-black.svg","weight":1,"range":[64,64],"drawn":false,"flags":{},"rangeL":64,"rangeH":64},{"_id":"9p6zClwEpAAkT5VV","type":0,"text":"un tourbillon dans l'eau","img":"icons/svg/d20-black.svg","weight":1,"range":[65,65],"drawn":false,"flags":{},"rangeL":65,"rangeH":65},{"_id":"o38QP4UFiaZl4YX5","type":0,"text":"un tourbillon de poussière","img":"icons/svg/d20-black.svg","weight":1,"range":[66,66],"drawn":false,"flags":{},"rangeL":66,"rangeH":66},{"_id":"eYKY277yE524Y79J","type":0,"text":"un vol d'oiseaux migrateurs alignés traçant des lettres dans le ciel","img":"icons/svg/d20-black.svg","weight":1,"range":[67,67],"drawn":false,"flags":{},"rangeL":67,"rangeH":67},{"_id":"P14CdBZuNRsLGH8O","type":0,"text":"une braise attisée par le vent","img":"icons/svg/d20-black.svg","weight":1,"range":[68,68],"drawn":false,"flags":{},"rangeL":68,"rangeH":68},{"_id":"ZZ8lhI2g0yDzQVYj","type":0,"text":"une coloration bleutée de la lune","img":"icons/svg/d20-black.svg","weight":1,"range":[69,69],"drawn":false,"flags":{},"rangeL":69,"rangeH":69},{"_id":"w72zD9PujqjOlJOY","type":0,"text":"une concrétion rocheuse évoquant une cascade figée","img":"icons/svg/d20-black.svg","weight":1,"range":[70,70],"drawn":false,"flags":{},"rangeL":70,"rangeH":70},{"_id":"g2NEjYWWfqXaSnVX","type":0,"text":"une fine couche de terre craquelée par le soleil","img":"icons/svg/d20-black.svg","weight":1,"range":[71,71],"drawn":false,"flags":{},"rangeL":71,"rangeH":71},{"_id":"JpmzngQnXrXL0FSC","type":0,"text":"une forme animale évoquée par les courbes d'une écorce","img":"icons/svg/d20-black.svg","weight":1,"range":[72,72],"drawn":false,"flags":{},"rangeL":72,"rangeH":72},{"_id":"qgf0zDzQLd7TK98q","type":0,"text":"une gerbe d'étincelles échappant du feu","img":"icons/svg/d20-black.svg","weight":1,"range":[73,73],"drawn":false,"flags":{},"rangeL":73,"rangeH":73},{"_id":"DbmW1INaEUyEXMaf","type":0,"text":"une mante religieuse dévorrant son male","img":"icons/svg/d20-black.svg","weight":1,"range":[74,74],"drawn":false,"flags":{},"rangeL":74,"rangeH":74},{"_id":"BRZQG32kiHEjFOvq","type":0,"text":"une mue de lézard","img":"icons/svg/d20-black.svg","weight":1,"range":[75,75],"drawn":false,"flags":{},"rangeL":75,"rangeH":75},{"_id":"3oltRX2ezQPr1zF6","type":0,"text":"une nuée chaotique d'oiseaux tourbillonnant dans le vent","img":"icons/svg/d20-black.svg","weight":1,"range":[76,76],"drawn":false,"flags":{},"rangeL":76,"rangeH":76},{"_id":"zFWJw3wNlarkLRZD","type":0,"text":"une ondée illuminée tombant tel un voile","img":"icons/svg/d20-black.svg","weight":1,"range":[77,77],"drawn":false,"flags":{},"rangeL":77,"rangeH":77},{"_id":"7e6hOdc9tHhD6ip5","type":0,"text":"une phosphorescence dans l'eau","img":"icons/svg/d20-black.svg","weight":1,"range":[78,78],"drawn":false,"flags":{},"rangeL":78,"rangeH":78},{"_id":"EigNWJQzvJ12ffd7","type":0,"text":"une tornade dans le lointain","img":"icons/svg/d20-black.svg","weight":1,"range":[79,79],"drawn":false,"flags":{},"rangeL":79,"rangeH":79},{"_id":"gdGIwUZ5H9NY0f5I","type":0,"text":"une étoile filante","img":"icons/svg/d20-black.svg","weight":1,"range":[80,80],"drawn":false,"flags":{},"rangeL":80,"rangeH":80},{"_id":"wXE7zzJRwExkMe6L","type":0,"text":"une étrange disposition d'ossements sur le sol","img":"icons/svg/d20-black.svg","weight":1,"range":[81,81],"drawn":false,"flags":{},"rangeL":81,"rangeH":81},{"_id":"u0bYiDcXp1XeKPK2","type":0,"text":"","img":"icons/svg/d20-black.svg","weight":1,"range":[82,82],"drawn":false,"flags":{},"rangeL":82,"rangeH":82}],"formula":"1d82","replacement":true,"displayRoll":true,"folder":null,"sort":0,"permission":{"default":0,"wYnBx3HmLfGzsj7P":3},"flags":{"exportSource":{"world":"test-rdd","system":"foundryvtt-reve-de-dragon","coreVersion":"0.7.9","systemVersion":"1.3.55"},"core":{"sourceId":"RollTable.CgzX7Fuo1UB8N0u9"}},"_id":"g2YrF2NM9UesVZLP"}
+{"_id":"nbH4v630P7ARaAHk","name":"Idées fixes","img":"icons/svg/d20-grey.svg","description":"Les idées fixes prennent effet immédiatement et durent jusqu’à l’extrême fin de l’heure du Château Dormant du lendemain. Si passé ce délai, l’occasion de les manifester ne s’est pas présentée, la queue prend fin néanmoins. Si elles entrent en contradiction avec une autre queue de Dragon, retirer. Les idées fixes peuvent être refoulées à tout moment au prix de 1 point de refoulement.","results":[{"_id":"xX6XGI6ujPDSbbob","flags":{},"type":2,"text":"Idée fixe : Ne s’exprimer que par des cris d’animaux (meuh ! coin-coin ! etc.)","img":"exprimer_cris.png","collection":"foundryvtt-reve-de-dragon.queues-de-dragon","resultId":"YCHBbRLiMzTH7IBj","weight":1,"range":[1,1],"drawn":false},{"_id":"gYN6fcQISs2H7kAn","flags":{},"type":2,"text":"Idée fixe : Garder les yeux bandés","img":"garder_yeux.png","collection":"foundryvtt-reve-de-dragon.queues-de-dragon","resultId":"E902EEYZHg3zFKq6","weight":1,"range":[2,2],"drawn":false},{"_id":"QIHOFfluPnEJFKHD","flags":{},"type":2,"text":"Idée fixe : Ne dire que «non» ou négation analogue","img":"dire_non.png","collection":"foundryvtt-reve-de-dragon.queues-de-dragon","resultId":"gMmqdJ9I7Mt8Tg3f","weight":1,"range":[3,3],"drawn":false},{"_id":"P0eaJjtQQfpNIL9I","flags":{},"type":2,"text":"Idée fixe : Garder sur soi 3d6 kilos de cailloux","img":"garder_cailloux.png","collection":"foundryvtt-reve-de-dragon.queues-de-dragon","resultId":"F8G3rdU1nfJzYwYR","weight":1,"range":[4,4],"drawn":false},{"_id":"PENvfmIpKFWee8rF","flags":{},"type":2,"text":"Idée fixe : Traîner son épée en laisse (ou sa meilleure arme)","img":"trainer_laisse.png","collection":"foundryvtt-reve-de-dragon.queues-de-dragon","resultId":"2j1q9e07ZLlIQDYl","weight":1,"range":[5,5],"drawn":false},{"_id":"6xT8v1ScJSZEente","flags":{},"type":2,"text":"Idée fixe : Garder une main sur la tête","img":"garder_main.png","collection":"foundryvtt-reve-de-dragon.queues-de-dragon","resultId":"iPYPgxL2uUnphStc","weight":1,"range":[6,6],"drawn":false},{"_id":"0CO9RJPygGdJT9nB","flags":{},"type":2,"text":"Idée fixe : Avoir le visage noirci à la cendre","img":"avoir_visage.png","collection":"foundryvtt-reve-de-dragon.queues-de-dragon","resultId":"6G0lF06jSryTduAt","weight":1,"range":[7,7],"drawn":false},{"_id":"XeCtzSCuEEm9q8TI","flags":{},"type":2,"text":"Idée fixe : Cracher dans toute nourriture ou boisson aperçue","img":"cracher_nourriture.png","collection":"foundryvtt-reve-de-dragon.queues-de-dragon","resultId":"22EQLBJfHVYs96iC","weight":1,"range":[8,8],"drawn":false},{"_id":"Sh5KRDvM7iXad6rK","flags":{},"type":2,"text":"Idée fixe : Anorexie. Ne rien avaler, ni solide, ni liquide, pas même une potion","img":"anorexie.png","collection":"foundryvtt-reve-de-dragon.queues-de-dragon","resultId":"0uc2pMIGL03Hq2Hn","weight":1,"range":[9,9],"drawn":false},{"_id":"6Q3XKURzip61EXK2","flags":{},"type":2,"text":"Idée fixe : Aller tout nu, sans porter le moindre paquet ni objet","img":"aller_nu.png","collection":"foundryvtt-reve-de-dragon.queues-de-dragon","resultId":"I0CtQ05xFW6ghcdP","weight":1,"range":[10,10],"drawn":false},{"_id":"7B8joMjIuhNxip6N","flags":{},"type":2,"text":"Idée fixe : Vider sur sa tête toute fiole ou flacon aperçu","img":"verser_flacon.png","collection":"foundryvtt-reve-de-dragon.queues-de-dragon","resultId":"afGp9CewfyJKecEE","weight":1,"range":[11,11],"drawn":false},{"_id":"Febiy30xqiNo7OqV","flags":{},"type":2,"text":"Idée fixe : Appeler les hommes «madame» et les femmes «messire»","img":"appeler_hommes_femmes.png","collection":"foundryvtt-reve-de-dragon.queues-de-dragon","resultId":"j2xIrFWYqhDM4TcN","weight":1,"range":[12,12],"drawn":false},{"_id":"Aa72g0fFdq2qBmCn","flags":{},"type":2,"text":"Idée fixe : Ne marcher qu’à quatre pattes","img":"marcher_quatre_pattes.png","collection":"foundryvtt-reve-de-dragon.queues-de-dragon","resultId":"7TKsit2Mv9mWGq3C","weight":1,"range":[13,13],"drawn":false},{"_id":"UYhT76xYv8OGXcMZ","flags":{},"type":2,"text":"Idée fixe : Boulimie. Manger au moins un point de sust. par heure","img":"boulimie.png","collection":"foundryvtt-reve-de-dragon.queues-de-dragon","resultId":"JcTX8qMS0z8bmdVt","weight":1,"range":[14,14],"drawn":false},{"_id":"fOnQmiXMPXrK3K6P","flags":{},"type":2,"text":"Idée fixe : Refuser de se déplacer autrement que porté","img":"refuser_deplacer.png","collection":"foundryvtt-reve-de-dragon.queues-de-dragon","resultId":"hghw6Cldrad1CIiJ","weight":1,"range":[15,15],"drawn":false},{"_id":"KKGlZXouFfIMKQma","flags":{},"type":2,"text":"Idée fixe : Ne pas franchir de porte. (On peut franchir une fenêtre)","img":"pas-franchir.png","collection":"foundryvtt-reve-de-dragon.queues-de-dragon","resultId":"UUTbsktTcxsIe5L5","weight":1,"range":[16,16],"drawn":false},{"_id":"JjWHUsMLhLuTYB2q","flags":{},"type":2,"text":"Idée fixe : Faire le mort","img":"faire_mort.png","collection":"foundryvtt-reve-de-dragon.queues-de-dragon","resultId":"xa4t9Lbt6uLEjap6","weight":1,"range":[17,17],"drawn":false},{"_id":"r7Dw8GD1ceypY0iV","flags":{},"type":2,"text":"Idée fixe : Éteindre tout feu rencontré (feu de camp, torche, lanterne, etc.)","img":"eteindre_feu.png","collection":"foundryvtt-reve-de-dragon.queues-de-dragon","resultId":"2Rtm78bMKPy8eG4q","weight":1,"range":[18,18],"drawn":false},{"_id":"i0AW1Ir1V7y2ZmEh","flags":{},"type":2,"text":"Idée fixe : Refuser de se délester du moindre objet, ni donner ni prêter","img":"refuser_delester.png","collection":"foundryvtt-reve-de-dragon.queues-de-dragon","resultId":"VChJbtGFtWoiFNky","weight":1,"range":[19,19],"drawn":false},{"_id":"DQBzVXbJKn9zsXUI","flags":{},"type":2,"text":"Idée fixe : Refuser de monter dans les TMR","img":"refuser_tmr.png","collection":"foundryvtt-reve-de-dragon.queues-de-dragon","resultId":"NpTDqICR7ZuToQrg","weight":1,"range":[20,20],"drawn":false}],"formula":"1d20","replacement":false,"displayRoll":true,"folder":null,"sort":0,"permission":{"default":0,"jOzRscDxoXZWpGS6":3},"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.tables-diverses.nbH4v630P7ARaAHk"}}}
+{"_id":"pXYVWRlCftWdwsBP","name":"Maladresse armé","img":"icons/svg/d20-grey.svg","results":[{"_id":"R18ITzDLLuGiaqXM","flags":{},"type":0,"text":"Assomé net : Endurance tombe à 0 et -1 pt de vie.","img":"icons/svg/d20-black.svg","weight":1,"range":[2,2],"drawn":false},{"_id":"sfWXLz4QIkPLNJmg","flags":{},"type":0,"text":"Ami bousculé : Le compagnon bousculé doit réussir Empathie/Vigilance à -1d6 ou être en demi-surprise jusqu’à la fin du round suivant.","img":"icons/svg/d20-black.svg","weight":1,"range":[3,3],"drawn":false},{"_id":"APqyDePFzBaROB6i","flags":{},"type":0,"text":"Chute : Encaissement à -1d6 sur la table des Coups non mortels.","img":"icons/svg/d20-black.svg","weight":1,"range":[4,4],"drawn":false},{"_id":"8yErM3dW4F2MBFqe","flags":{},"type":0,"text":"Désarmé","img":"icons/svg/d20-black.svg","weight":1,"range":[5,5],"drawn":false},{"_id":"8dh7zUXAq8ehNag7","flags":{},"type":0,"text":"Arme choquée : L’arme utilisée joue un jet de Résistance à -2d6 et perd ce nombre de points de résistance en cas d’échec.","img":"icons/svg/d20-black.svg","weight":1,"range":[6,7],"drawn":false},{"_id":"OskepgYnU7pok5jv","flags":{},"type":0,"text":"Déséquilibré : Réussir Agilité/Vigilance à -1d6 ou être en demi-surprise jusqu’à la fin du round suivant.","img":"icons/svg/d20-black.svg","weight":1,"range":[8,9],"drawn":false},{"_id":"GOYmqZj1Lnc0cKO9","flags":{},"type":0,"text":"Faux mouvement : Perte de 2d6 points d’endurance.","img":"icons/svg/d20-black.svg","weight":1,"range":[10,12],"drawn":false},{"_id":"NOrmphYuLWRKZxai","flags":{},"type":0,"text":"Déséquilibré : Réussir Agilité/Vigilance à -1d6 ou être en demi-surprise jusqu’à la fin du round suivant.","img":"icons/svg/d20-black.svg","weight":1,"range":[13,14],"drawn":false},{"_id":"ef8tfK8JzdX1OKzf","flags":{},"type":0,"text":"Arme choquée : L’arme utilisée joue un jet de Résistance à -2d6 et perd ce nombre de points de résistance en cas d’échec.","img":"icons/svg/d20-black.svg","weight":1,"range":[15,16],"drawn":false},{"_id":"9V3Gj9PEYrEY7OCc","flags":{},"type":0,"text":"Désarmé","img":"icons/svg/d20-black.svg","weight":1,"range":[17,17],"drawn":false},{"_id":"c61AFRaP9poCmr9B","flags":{},"type":0,"text":"Chute : Encaissement à -1d6 sur la table des Coups non mortels.","img":"icons/svg/d20-black.svg","weight":1,"range":[18,18],"drawn":false},{"_id":"8tS1rSwYvd0cS9o4","flags":{},"type":0,"text":"Ami bousculé : Le compagnon bousculé doit réussir Empathie/Vigilance à -1d6 ou être en demi-surprise jusqu’à la fin du round suivant.","img":"icons/svg/d20-black.svg","weight":1,"range":[19,19],"drawn":false},{"_id":"ma6DRHIjkgpOVc55","flags":{},"type":0,"text":"Assommé net : Endurance tombe à 0 et -1 pt de vie.","img":"icons/svg/d20-black.svg","weight":1,"range":[20,20],"drawn":false}],"formula":"2d10","replacement":false,"displayRoll":true,"folder":null,"sort":0,"permission":{"default":0,"jOzRscDxoXZWpGS6":3},"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.tables-diverses.pXYVWRlCftWdwsBP"}}}
+{"_id":"sVWhyr4wPnieuPP8","name":"Désirs lancinants","img":"icons/svg/d20-grey.svg","description":"Les désirs lancinants durent jusqu’à ce qu’ils soient satisfaits ou refoulés. Tant que satisfaction n’est pas obtenue, aucun point d’expérience ne peut plus être gagné par l’exercice en cas de particulière et d’ajustement final négatif. Les points d’expérience dus au stress ne sont pas affectés. Les désirs lancinants peuvent être refoulés à tout moment au prix de 1 point de refoulement.","results":[{"_id":"m9BMFVAByyICiMkp","flags":{},"type":2,"text":"Désir lancinant : Danser nu sous la pluie","img":"danser_pluie.png","collection":"foundryvtt-reve-de-dragon.queues-de-dragon","resultId":"F6qL4d4g3qjh045R","weight":1,"range":[1,1],"drawn":false},{"_id":"EJYCgPl9BCW92LSM","flags":{},"type":2,"text":"Désir lancinant : Traire une vache","img":"traire_vache.png","collection":"foundryvtt-reve-de-dragon.queues-de-dragon","resultId":"QHUOwjMR6AvepGPm","weight":1,"range":[2,2],"drawn":false},{"_id":"fRgwd7VconbmXrWQ","flags":{},"type":2,"text":"Désir lancinant : Manger du poisson","img":"manger_poisson.png","collection":"foundryvtt-reve-de-dragon.queues-de-dragon","resultId":"SY0SsWtZdxSodMcl","weight":1,"range":[3,3],"drawn":false},{"_id":"NEWpP5vwM5KQviDD","flags":{},"type":2,"text":"Désir lancinant : Manger des champignons","img":"manger_champignons.png","collection":"foundryvtt-reve-de-dragon.queues-de-dragon","resultId":"gadh6aI5iCM82qpP","weight":1,"range":[4,4],"drawn":false},{"_id":"8pMq7q3evaj9fIst","flags":{},"type":2,"text":"Désir lancinant : Se soûler (minimum pas frais)","img":"se_souler.png","collection":"foundryvtt-reve-de-dragon.queues-de-dragon","resultId":"jShpKV8mVcqWmYvp","weight":1,"range":[5,5],"drawn":false},{"_id":"qFOyIPVjQkVjrHFI","flags":{},"type":2,"text":"Désir lancinant : Gagner de l’argent (minimum 10 deniers)","img":"gagner_argent.png","collection":"foundryvtt-reve-de-dragon.queues-de-dragon","resultId":"3BcC8lSsP5WIyva7","weight":1,"range":[6,6],"drawn":false},{"_id":"RrOMys2WRxUrRYev","flags":{},"type":2,"text":"Désir lancinant : Faire des bulles de savon","img":"bulles_savon.png","collection":"foundryvtt-reve-de-dragon.queues-de-dragon","resultId":"df5oN8Ub3dWTVxNj","weight":1,"range":[7,7],"drawn":false},{"_id":"kwOTcCx7NDRxqv8B","flags":{},"type":2,"text":"Désir lancinant : Entendre braire un âne","img":"entendre_ane.png","collection":"foundryvtt-reve-de-dragon.queues-de-dragon","resultId":"diCCimukdNM6bPub","weight":1,"range":[8,8],"drawn":false},{"_id":"KoGHRGGze7WXnO9R","flags":{},"type":2,"text":"Désir lancinant : Danser avec un(e) partenaire inconnu(e) (Beauté 13 minimum)","img":"danser_inconnu.png","collection":"foundryvtt-reve-de-dragon.queues-de-dragon","resultId":"2i3PndTKG1n3hEUU","weight":1,"range":[9,9],"drawn":false},{"_id":"JFiIv5R4gAYV1IMs","flags":{},"type":2,"text":"Désir lancinant : Construire une cabane","img":"construire_cabane.png","collection":"foundryvtt-reve-de-dragon.queues-de-dragon","resultId":"mN0yghXkFfj2YctJ","weight":1,"range":[10,10],"drawn":false},{"_id":"vKXdKjA4Vt7OWhOW","flags":{},"type":2,"text":"Désir lancinant : Acquérir une chèvre","img":"acqu%C3%A9rir_chevre.png","collection":"foundryvtt-reve-de-dragon.queues-de-dragon","resultId":"8sLXQBqo8XwjAFG0","weight":1,"range":[11,11],"drawn":false},{"_id":"wRk4nXin4UUB5c4o","flags":{},"type":2,"text":"Désir lancinant : Se rouler dans la boue","img":"se_rouler_boue.png","collection":"foundryvtt-reve-de-dragon.queues-de-dragon","resultId":"el4lofhhSucMv5xv","weight":1,"range":[12,12],"drawn":false},{"_id":"XUcNhyHEDjSvg8ki","flags":{},"type":2,"text":"Désir lancinant : Embrasser un cochon sur le groin","img":"embrasser_cochon.png","collection":"foundryvtt-reve-de-dragon.queues-de-dragon","resultId":"sjXBBr85OBk4Yg4t","weight":1,"range":[13,13],"drawn":false},{"_id":"oN3eP4peneyXENds","flags":{},"type":2,"text":"Désir lancinant : Briser un objet de verre","img":"briser_verre.png","collection":"foundryvtt-reve-de-dragon.queues-de-dragon","resultId":"1l59lWbtvYp74OTb","weight":1,"range":[14,14],"drawn":false},{"_id":"5AHjNXDrQL5TqLjv","flags":{},"type":2,"text":"Désir lancinant : Casser 3d6 oeufs en les jetant à terre","img":"casser_oeufs.png","collection":"foundryvtt-reve-de-dragon.queues-de-dragon","resultId":"OjG8XRbeYtq2jcgB","weight":1,"range":[15,15],"drawn":false},{"_id":"crQSShE6rcAnBj1k","flags":{},"type":2,"text":"Désir lancinant : Passer une nuit sur une échelle","img":"nuit_echelle.png","collection":"foundryvtt-reve-de-dragon.queues-de-dragon","resultId":"LlELEB0FhymLx6VM","weight":1,"range":[16,16],"drawn":false},{"_id":"dDYpP2np5BKlEMSK","flags":{},"type":2,"text":"Désir lancinant : Se faire raser la tête","img":"raser_tete.png","collection":"foundryvtt-reve-de-dragon.queues-de-dragon","resultId":"HSNOvBR890dsEDw2","weight":1,"range":[17,17],"drawn":false},{"_id":"CvynUiSfzZ0UnFzk","flags":{},"type":2,"text":"Désir lancinant : Masochisme. Perdre 3 points d’endurance minimum en 1 round","img":"masochisme.png","collection":"foundryvtt-reve-de-dragon.queues-de-dragon","resultId":"NzJJNK0YMAbobu0p","weight":1,"range":[18,18],"drawn":false},{"_id":"3pM6YTcKglgt5naZ","flags":{},"type":2,"text":"Désir lancinant : Mégalomanie. Être acclamé par un minimum de 10 personnes","img":"megalomanie.png","collection":"foundryvtt-reve-de-dragon.queues-de-dragon","resultId":"3ZjwYyQRatCMnBCi","weight":1,"range":[19,19],"drawn":false},{"_id":"EJYLKIrPHPPbgrlW","flags":{},"type":2,"text":"Désir lancinant : Pisser dans un violon (luth, mandoline, etc.)","img":"pisser_violon.png","collection":"foundryvtt-reve-de-dragon.queues-de-dragon","resultId":"S8PVNgxb7TcFXq9g","weight":1,"range":[20,20],"drawn":false}],"formula":"1d20","replacement":false,"displayRoll":true,"folder":null,"sort":0,"permission":{"default":0,"jOzRscDxoXZWpGS6":3},"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.tables-diverses.sVWhyr4wPnieuPP8"}}}
+{"_id":"sXPDAHwb6ND5tNJG","name":"Têtes de Dragon pour haut-rêvants","img":"icons/svg/d20-grey.svg","description":"Quand une tête est dite unique, retirer si le personnage la possède déjà. Quand elle est dite cumulable, le jet de dés indiqué bénéficie d’un nouveau bonus de +1 chaque fois qu’elle est ré-obtenue. Par exemple un jet de Vue à zéro devient un jet de Vue à +1.","results":[{"_id":"SrGcS3nquZptN3Lx","flags":{},"type":2,"text":"Don de double-rêve","img":"icons/svg/mystery-man.svg","collection":"foundryvtt-reve-de-dragon.tetes-de-dragon-pour-haut-revants","resultId":"VWOXA0q6GB7o8oxz","weight":1,"range":[1,10],"drawn":false},{"_id":"fGwttrng7KMYrll1","flags":{},"type":2,"text":"Don de déplacement accéléré","img":"icons/svg/mystery-man.svg","collection":"foundryvtt-reve-de-dragon.tetes-de-dragon-pour-haut-revants","resultId":"ZVh8PLlAzAJulr37","weight":1,"range":[11,20],"drawn":false},{"_id":"BASdOFjj0HJsrDI6","flags":{},"type":2,"text":"Augmentation du seuil de rêve","img":"icons/svg/mystery-man.svg","collection":"foundryvtt-reve-de-dragon.tetes-de-dragon-pour-haut-revants","resultId":"Zlt01O2sFrVR9pus","weight":1,"range":[21,30],"drawn":false},{"_id":"HWgayaNNiVLlb5Lj","flags":{},"type":2,"text":"Connaissance intuitive d'un nouveau sort","img":"icons/svg/mystery-man.svg","collection":"foundryvtt-reve-de-dragon.tetes-de-dragon-pour-haut-revants","resultId":"SFxPAvWpEGYHI8mO","weight":1,"range":[31,40],"drawn":false},{"_id":"QMegfeFyxIxNNai7","flags":{},"type":2,"text":"Terre d'attache","img":"icons/svg/mystery-man.svg","collection":"foundryvtt-reve-de-dragon.tetes-de-dragon-pour-haut-revants","resultId":"YDo0a0ApM8iW9g82","weight":1,"range":[41,50],"drawn":false},{"_id":"0FYecx0AOjHJGInw","flags":{},"type":2,"text":"Présent des cités","img":"systems/foundryvtt-reve-de-dragon/icons/tete_dragon.webp","collection":"foundryvtt-reve-de-dragon.tetes-de-dragon-pour-haut-revants","resultId":"E4a4O1IdrgbNGpVy","weight":1,"range":[51,60],"drawn":false},{"_id":"CtjqmAwweZVDbAjY","flags":{},"type":2,"text":"Réserve en sécurité","img":"icons/svg/mystery-man.svg","collection":"foundryvtt-reve-de-dragon.tetes-de-dragon-pour-haut-revants","resultId":"BT18LAdIqEgSG2Hh","weight":1,"range":[61,70],"drawn":false},{"_id":"WNELkA5FkYTj68Ln","flags":{},"type":2,"text":"Réserve extensible","img":"icons/svg/mystery-man.svg","collection":"foundryvtt-reve-de-dragon.tetes-de-dragon-pour-haut-revants","resultId":"bFdU6ddgj4BAlJZX","weight":1,"range":[71,80],"drawn":false},{"_id":"fn1I3FolBzOmeh0W","flags":{},"type":2,"text":"Quête des eaux","img":"icons/svg/mystery-man.svg","collection":"foundryvtt-reve-de-dragon.tetes-de-dragon-pour-haut-revants","resultId":"a3Y5W0AX5EKxZRSL","weight":1,"range":[81,90],"drawn":false},{"_id":"jr90oOnnrEH31eZj","flags":{},"type":2,"text":"Connaissance du fleuve","img":"icons/svg/mystery-man.svg","collection":"foundryvtt-reve-de-dragon.tetes-de-dragon-pour-haut-revants","resultId":"5JccZSafqCXYqrwU","weight":1,"range":[91,100],"drawn":false}],"formula":"1d100","replacement":true,"displayRoll":true,"folder":null,"sort":0,"permission":{"default":0,"jOzRscDxoXZWpGS6":3},"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.tables-diverses.sXPDAHwb6ND5tNJG"}}}
+{"_id":"vKiKfjFVP36mYnEt","name":"Souffles de Dragon","img":"icons/svg/d20-grey.svg","description":"Quand un souffle dure ddr jours, déterminer ce nombre de la même façon que la force d’un Rêve de Dragon, sur une base minimum de 7. Le souffle prend effet à l’instant même et dure jusqu’à la fin de l’heure du Château Dormant du xème jour. Aucun souffle de Dragon n’est refoulable.","results":[{"_id":"39OpB4Ly6pwHNvq3","flags":{},"type":2,"text":"Périple","img":"icons/svg/mystery-man.svg","collection":"foundryvtt-reve-de-dragon.souffles-de-dragon","resultId":"yczTFUNwqyg0WhsQ","weight":1,"range":[1,5],"drawn":false},{"_id":"8JkuRose0umr9I9J","flags":{},"type":2,"text":"Fermeture des cités","img":"icons/svg/mystery-man.svg","collection":"foundryvtt-reve-de-dragon.souffles-de-dragon","resultId":"aBiHdEMLWNZurX3v","weight":1,"range":[6,10],"drawn":false},{"_id":"dGKfn21m4nMJkvTj","flags":{},"type":2,"text":"Débordement","img":"icons/svg/mystery-man.svg","collection":"foundryvtt-reve-de-dragon.souffles-de-dragon","resultId":"YiXBU7qBxR0OnkPS","weight":1,"range":[11,15],"drawn":false},{"_id":"3yosmgSu7FZ0nY3l","flags":{},"type":2,"text":"Impraticabilité des ponts","img":"icons/svg/mystery-man.svg","collection":"foundryvtt-reve-de-dragon.souffles-de-dragon","resultId":"8B74cu17PCdqztke","weight":1,"range":[16,20],"drawn":false},{"_id":"5ujcfs6jFvDjWVOK","flags":{},"type":2,"text":"Désorientation","img":"icons/svg/mystery-man.svg","collection":"foundryvtt-reve-de-dragon.souffles-de-dragon","resultId":"Su90PAG4Hea7qoej","weight":1,"range":[21,25],"drawn":false},{"_id":"MEunTLUJI4pVuzwv","flags":{},"type":2,"text":"Impraticabilité des ponts","img":"icons/svg/mystery-man.svg","collection":"foundryvtt-reve-de-dragon.souffles-de-dragon","resultId":"8B74cu17PCdqztke","weight":1,"range":[26,30],"drawn":false},{"_id":"IvuyAhcW9yzbhRLF","flags":{},"type":2,"text":"Désorientation","img":"icons/svg/mystery-man.svg","collection":"foundryvtt-reve-de-dragon.souffles-de-dragon","resultId":"Su90PAG4Hea7qoej","weight":1,"range":[31,35],"drawn":false},{"_id":"JmoyngtksVYFnNWy","flags":{},"type":2,"text":"Trou noir","img":"icons/svg/mystery-man.svg","collection":"foundryvtt-reve-de-dragon.souffles-de-dragon","resultId":"QcfOUgWT15BCLUvl","weight":1,"range":[36,40],"drawn":false},{"_id":"pombreEUTYX2prs6","flags":{},"type":2,"text":"Péage","img":"icons/svg/mystery-man.svg","collection":"foundryvtt-reve-de-dragon.souffles-de-dragon","resultId":"HYsVo3LM53vAm8Y4","weight":1,"range":[41,45],"drawn":false},{"_id":"PWzcBoJSsDdV8m8m","flags":{},"type":2,"text":"Montée laborieuse","img":"icons/svg/mystery-man.svg","collection":"foundryvtt-reve-de-dragon.souffles-de-dragon","resultId":"yFZ6KkvVQVyCJLua","weight":1,"range":[46,50],"drawn":false},{"_id":"KoyO1TrUQYFxu1MM","flags":{},"type":2,"text":"Double résistance du fleuve","img":"icons/svg/mystery-man.svg","collection":"foundryvtt-reve-de-dragon.souffles-de-dragon","resultId":"nI4sA12n6AdLNv5I","weight":1,"range":[51,55],"drawn":false},{"_id":"NGpVZ0worbKmi5bN","flags":{},"type":2,"text":"Confusion draconique","img":"icons/svg/mystery-man.svg","collection":"foundryvtt-reve-de-dragon.souffles-de-dragon","resultId":"cuopXCY54q3nTtBl","weight":1,"range":[56,60],"drawn":false},{"_id":"wjlmxOrF5mKx5Uqt","flags":{},"type":2,"text":"Épuisement","img":"icons/svg/mystery-man.svg","collection":"foundryvtt-reve-de-dragon.souffles-de-dragon","resultId":"GNZW6esJ2nCHjfyu","weight":1,"range":[61,65],"drawn":false},{"_id":"RYySlbmF6KtKJ8C6","flags":{},"type":2,"text":"Perte dans une caractéristique","img":"icons/svg/mystery-man.svg","collection":"foundryvtt-reve-de-dragon.souffles-de-dragon","resultId":"ykxvi2vohrZPidLK","weight":1,"range":[66,70],"drawn":false},{"_id":"Ec0BW2vZ3QTpIZRn","flags":{},"type":2,"text":"Vieillissement instantané","img":"icons/svg/mystery-man.svg","collection":"foundryvtt-reve-de-dragon.souffles-de-dragon","resultId":"dArTQtFwTssAyl90","weight":1,"range":[71,75],"drawn":false},{"_id":"dIBOMmIwvx2kTgTN","flags":{},"type":2,"text":"Non-combativité","img":"icons/svg/mystery-man.svg","collection":"foundryvtt-reve-de-dragon.souffles-de-dragon","resultId":"6xvkOytCrp5yDAOs","weight":1,"range":[76,79],"drawn":false},{"_id":"3tR6RxkGiugHxSHd","flags":{},"type":2,"text":"Je-m'en-foutisme","img":"icons/svg/mystery-man.svg","collection":"foundryvtt-reve-de-dragon.souffles-de-dragon","resultId":"2FDRnIY6Os6JJ27j","weight":1,"range":[80,83],"drawn":false},{"_id":"TZWltQcYm3F81ZqO","flags":{},"type":2,"text":"Paresse intellectuelle","img":"icons/svg/mystery-man.svg","collection":"foundryvtt-reve-de-dragon.souffles-de-dragon","resultId":"IYfK01ZdAkDZbUS9","weight":1,"range":[84,88],"drawn":false},{"_id":"xmUhIdsW8Bgq31lJ","flags":{},"type":2,"text":"Queue de dragon perpétuelle","img":"icons/svg/mystery-man.svg","collection":"foundryvtt-reve-de-dragon.souffles-de-dragon","resultId":"CVXptnnw75fLx4LK","weight":1,"range":[89,100],"drawn":false}],"formula":"1d100","replacement":false,"displayRoll":true,"folder":null,"sort":0,"permission":{"default":0,"jOzRscDxoXZWpGS6":3},"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.tables-diverses.vKiKfjFVP36mYnEt"}}}
+{"_id":"w2WBqsg1B2fPV8zT","name":"Tarot Draconique","img":"systems/foundryvtt-reve-de-dragon/icons/tarots/dos-tarot.png","description":"Tirage d'une carte de tarot","results":[{"_id":"EP4xqaMgXhuFKNWe","flags":{},"type":2,"text":"L'Auberge","img":"systems/foundryvtt-reve-de-dragon/icons/tarots/dos-tarot.png","collection":"foundryvtt-reve-de-dragon.tarot-draconique","resultId":"2AZ4LaHfNjewYIkO","weight":1,"range":[1,1],"drawn":false},{"_id":"hRvvPoX8nv7AonqM","flags":{},"type":2,"text":"L'Epée","img":"systems/foundryvtt-reve-de-dragon/icons/tarots/dos-tarot.png","collection":"foundryvtt-reve-de-dragon.tarot-draconique","resultId":"inWYIYIuHkoZ3S4A","weight":1,"range":[2,2],"drawn":false},{"_id":"gtMrSlTlMKFV6T6i","flags":{},"type":2,"text":"L'Esprit Thanataire","img":"systems/foundryvtt-reve-de-dragon/icons/tarots/dos-tarot.png","collection":"foundryvtt-reve-de-dragon.tarot-draconique","resultId":"jpNASgEPndryQwuX","weight":1,"range":[3,3],"drawn":false},{"_id":"UdJ5OXBfeg83EN8y","flags":{},"type":2,"text":"La Couronne","img":"systems/foundryvtt-reve-de-dragon/icons/tarots/dos-tarot.png","collection":"foundryvtt-reve-de-dragon.tarot-draconique","resultId":"W150EcUq9vU9ryyc","weight":1,"range":[4,4],"drawn":false},{"_id":"GobVbxfElUvE1flV","flags":{},"type":2,"text":"La Déchirure","img":"systems/foundryvtt-reve-de-dragon/icons/tarots/dos-tarot.png","collection":"foundryvtt-reve-de-dragon.tarot-draconique","resultId":"yIIUac5ehspmqDB2","weight":1,"range":[5,5],"drawn":false},{"_id":"JPjrJQ77YbIwTcJX","flags":{},"type":2,"text":"La Licorne","img":"systems/foundryvtt-reve-de-dragon/icons/tarots/dos-tarot.png","collection":"foundryvtt-reve-de-dragon.tarot-draconique","resultId":"0tOoKLhFKqBLGdAc","weight":1,"range":[6,6],"drawn":false},{"_id":"ToLq4NpjqD2GwlZq","flags":{},"type":2,"text":"La Lune","img":"systems/foundryvtt-reve-de-dragon/icons/tarots/dos-tarot.png","collection":"foundryvtt-reve-de-dragon.tarot-draconique","resultId":"J1qgDjOtf7vK4oV6","weight":1,"range":[7,7],"drawn":false},{"_id":"bTwPXktwq5t5jAAy","flags":{},"type":2,"text":"La Sebile","img":"systems/foundryvtt-reve-de-dragon/icons/tarots/dos-tarot.png","collection":"foundryvtt-reve-de-dragon.tarot-draconique","resultId":"rlmOj3pu4EDd2jZi","weight":1,"range":[8,8],"drawn":false},{"_id":"tbTCmOeNaWYaG6jU","flags":{},"type":2,"text":"La Vierge","img":"systems/foundryvtt-reve-de-dragon/icons/tarots/dos-tarot.png","collection":"foundryvtt-reve-de-dragon.tarot-draconique","resultId":"miO25LLlwPyOAGeR","weight":1,"range":[9,9],"drawn":false},{"_id":"ssqd2Idq1akdYakx","flags":{},"type":2,"text":"Le Chateau","img":"systems/foundryvtt-reve-de-dragon/icons/tarots/dos-tarot.png","collection":"foundryvtt-reve-de-dragon.tarot-draconique","resultId":"n9il4UfR6swHQ805","weight":1,"range":[10,10],"drawn":false},{"_id":"ykbg1uUgbbySEfai","flags":{},"type":2,"text":"Le Coffre","img":"systems/foundryvtt-reve-de-dragon/icons/tarots/dos-tarot.png","collection":"foundryvtt-reve-de-dragon.tarot-draconique","resultId":"vreVS8zyLuiV3qom","weight":1,"range":[11,11],"drawn":false},{"_id":"NkEN5qFZ0aGcgjne","flags":{},"type":2,"text":"Le Gibet","img":"systems/foundryvtt-reve-de-dragon/icons/tarots/dos-tarot.png","collection":"foundryvtt-reve-de-dragon.tarot-draconique","resultId":"beF1v9sjQeDgmxZL","weight":1,"range":[12,12],"drawn":false},{"_id":"OjbIhV6dwaqwMLhG","flags":{},"type":2,"text":"Le Grimoire","img":"systems/foundryvtt-reve-de-dragon/icons/tarots/dos-tarot.png","collection":"foundryvtt-reve-de-dragon.tarot-draconique","resultId":"G2zkE5vY7UrgzNV9","weight":1,"range":[13,13],"drawn":false},{"_id":"mzKV31aojE7DFJUz","flags":{},"type":2,"text":"Le Groin","img":"systems/foundryvtt-reve-de-dragon/icons/tarots/dos-tarot.png","collection":"foundryvtt-reve-de-dragon.tarot-draconique","resultId":"yHvIWLb4TuUAbPGa","weight":1,"range":[14,14],"drawn":false},{"_id":"hD9BUGLDILRc4jJm","flags":{},"type":2,"text":"Le Haut-Rêvant","img":"systems/foundryvtt-reve-de-dragon/icons/tarots/dos-tarot.png","collection":"foundryvtt-reve-de-dragon.tarot-draconique","resultId":"2dWBIwjKVCTxwrHE","weight":1,"range":[15,15],"drawn":false},{"_id":"MFjPTrGgPxUrjHeW","flags":{},"type":2,"text":"Le Luth","img":"systems/foundryvtt-reve-de-dragon/icons/tarots/dos-tarot.png","collection":"foundryvtt-reve-de-dragon.tarot-draconique","resultId":"RjwPSt0pOwQ8w9Qy","weight":1,"range":[16,16],"drawn":false},{"_id":"LZ9n4jg7I1ZjB8Lg","flags":{},"type":2,"text":"Le Rabot","img":"systems/foundryvtt-reve-de-dragon/icons/tarots/dos-tarot.png","collection":"foundryvtt-reve-de-dragon.tarot-draconique","resultId":"zP2OF8ZrAYEODxOn","weight":1,"range":[17,17],"drawn":false},{"_id":"nv6TDBdxJNnJyDYa","flags":{},"type":2,"text":"Le Soleil","img":"systems/foundryvtt-reve-de-dragon/icons/tarots/dos-tarot.png","collection":"foundryvtt-reve-de-dragon.tarot-draconique","resultId":"zSqKPNeQTVjRuni6","weight":1,"range":[18,18],"drawn":false},{"_id":"QdM0WqpsxObvETQU","flags":{},"type":2,"text":"Le Vaisseau","img":"systems/foundryvtt-reve-de-dragon/icons/tarots/dos-tarot.png","collection":"foundryvtt-reve-de-dragon.tarot-draconique","resultId":"VAhO41qD8QQLDie5","weight":1,"range":[19,19],"drawn":false},{"_id":"iDCdiYblZYjPYwYJ","flags":{},"type":2,"text":"Le Voyageur","img":"systems/foundryvtt-reve-de-dragon/icons/tarots/dos-tarot.png","collection":"foundryvtt-reve-de-dragon.tarot-draconique","resultId":"BQkcM9P2xdImdNb9","weight":1,"range":[20,20],"drawn":false},{"_id":"yLioN4DMxU45TnBE","flags":{},"type":2,"text":"Les Marais","img":"systems/foundryvtt-reve-de-dragon/icons/tarots/dos-tarot.png","collection":"foundryvtt-reve-de-dragon.tarot-draconique","resultId":"3U9OCmUD156gwu9b","weight":1,"range":[21,21],"drawn":false}],"formula":"1d21","replacement":true,"displayRoll":true,"folder":null,"sort":0,"permission":{"default":0,"Q2G6GTdrotKzYGUC":3},"flags":{"core":{"sourceId":"RollTable.wgFwo1JYrkjyy7J7"}}}
diff --git a/template.json b/template.json
index 6a610cc9..a18b5589 100644
--- a/template.json
+++ b/template.json
@@ -577,7 +577,7 @@
"Item": {
"types": ["objet", "arme", "armure", "conteneur", "competence", "sort", "herbe", "ingredient", "livre", "potion", "munition", "rencontresTMR", "queue", "ombre", "souffle",
"tete", "competencecreature", "tarot", "monnaie", "nombreastral", "tache", "meditation", "casetmr", "recettealchimique",
- "musique", "chant", "danse", "jeu", "recettecuisine", "maladie", "poison", "oeuvre", "nourritureboisson" ],
+ "musique", "chant", "danse", "jeu", "recettecuisine", "maladie", "poison", "oeuvre", "nourritureboisson", "signedraconique" ],
"objet": {
"description": "",
"quantite": 1,
@@ -868,6 +868,18 @@
"encombrement": 0,
"quantite": 1,
"cout": 0
+ },
+ "signedraconique": {
+ "typesTMR": [],
+ "ephemere": true,
+ "duree": "1 round",
+ "difficulte": 0,
+ "valeur": {
+ "norm": 3,
+ "sign": 5,
+ "part": 10
+ },
+ "description": ""
}
}
}
diff --git a/templates/actor-sheet.html b/templates/actor-sheet.html
index c428fe72..35825de3 100644
--- a/templates/actor-sheet.html
+++ b/templates/actor-sheet.html
@@ -310,7 +310,7 @@
{{#each taches as |tache id|}}
- {{tache.name}} ({{tache.data.points_de_tache_courant}}/{{tache.data.points_de_tache}})
-
+
@@ -340,7 +340,7 @@
{{#each jeux as |jeu id|}}
- {{jeu.name}} (base {{jeu.data.base}})
-
+
@@ -351,7 +351,7 @@
{{#each recettesAlchimiques as |recette id|}}
- {{recette.name}}
-
-
- {{#if data.attributs.hautrevant.value}}
- Sorts:
+
+
+
+
+
+ {{#if data.attributs.hautrevant.value}}
+ {{#if options.isGM}}
+ Signes draconiques
- {{#each sorts as |mysort key|}}
- -
- {{mysort.name}}
- {{mysort.data.draconic}} / {{mysort.data.difficulte}}
-
+ {{#each signesdraconiques as |signe key|}}
+
-
+ {{signe.name}}
+ {{signe.data.difficulte}}
+
{{/each}}
-
-
Sorts en Réserve:
+ {{/if}}
+
Sorts:
- {{#each hautreve.sortsReserve as |reserve key|}}
- -
-
- {{reserve.sort.name}} - {{reserve.coord}} - {{caseTmr-label reserve.coord}} - r{{reserve.sort.data.ptreve_reel}}
+ {{#each sorts as |sort key|}}
+
-
+ {{sort.name}}
+ {{sort.data.draconic}} / {{sort.data.difficulte}}
+
{{/each}}
-
+
+
Sorts en Réserve:
+
+ {{#each hautreve.sortsReserve as |reserve key|}}
+ -
+
+ {{reserve.sort.name}}
+ r{{reserve.sort.data.ptreve_reel}}
+ {{reserve.coord}}
+ {{caseTmr-label reserve.coord}}
+
+
+ {{/each}}
+
+
Méditations:
{{#each meditations as |meditation key|}}
-
- {{meditation.name}} - {{meditation.data.competence}}
-
+
{{meditation.name}} - {{meditation.data.competence}}
+
@@ -466,8 +494,8 @@
{{#each queues as |queue key|}}
-
- {{queue.name}}
-
+
{{queue.name}}
+
@@ -477,8 +505,8 @@
{{#each souffles as |souffle key|}}
-
- {{souffle.name}}
-
+
{{souffle.name}}
+
@@ -488,8 +516,8 @@
{{#each tetes as |tete key|}}
-
- {{tete.name}}
-
+
{{tete.name}}
+
@@ -499,8 +527,8 @@
{{#each ombres as |ombre key|}}
-
- {{ombre.name}}
-
+
{{ombre.name}}
+
@@ -512,8 +540,12 @@
{{#each hautreve.rencontres as |rencontre key|}}
-
- {{rencontre.rencontre.name}} - {{rencontre.coord}} {{#if rencontre.rencontre.date}}({{rencontre.rencontre.date}} - {{rencontre.rencontre.heure}}){{/if}}
-
+
{{rencontre.rencontre.name}} - {{rencontre.coord}}
+
{{caseTmr-label reserve.coord}}
+ {{#if rencontre.rencontre.date}}
+
({{rencontre.rencontre.date}} - {{rencontre.rencontre.heure}})
+ {{/if}}
+
@@ -523,11 +555,11 @@
Cases Spéciales:
@@ -544,7 +576,7 @@
{{piece.name}}
{{piece.data.quantite}}
+-
-
+
@@ -589,7 +621,7 @@
-
{{monture.name}}
-
+
@@ -604,7 +636,7 @@
{{vehicule.name}}
{{vehicule.categorie}}
{{vehicule.structure}}
-
+
@@ -617,7 +649,7 @@
-
{{suivant.name}}
-
+
diff --git a/templates/chat-resultat-lecture-signedraconique.html b/templates/chat-resultat-lecture-signedraconique.html
new file mode 100644
index 00000000..4e1ba3cd
--- /dev/null
+++ b/templates/chat-resultat-lecture-signedraconique.html
@@ -0,0 +1,11 @@
+
+
{{alias}} lit le signe {{signe.name}}
+{{> "systems/foundryvtt-reve-de-dragon/templates/chat-infojet.html"}}
+
+
+ {{#if rolled.isSuccess}}
+ Vous avez gagné {{xpSort}} points d'expérience en sorts dans la {{competence.name}}.
+ {{else}}
+ Vous n'avez pas pu interpréter le signe draconique.
+ {{/if}}
+
diff --git a/templates/chat-resultat-meditation.html b/templates/chat-resultat-meditation.html
index 91f096fb..1918f3d8 100644
--- a/templates/chat-resultat-meditation.html
+++ b/templates/chat-resultat-meditation.html
@@ -6,11 +6,10 @@
{{#if rolled.isSuccess}}
- {{alias}} aperçoit un signe Draconique fugitif, qu'il faut aller lire en {{meditation.data.tmr}} en réussissant un test d'INTELLECT/Draconic à {{diffLecture}}.
- Selon le résultat de votre lecture, vous gagnerez les points suivants en Sort: 3 pour une Normale, 5 pour une Significative, 10 pour une Particulière.
+ Vous apercevez un signe draconique éphémère, qu'il faut aller lire en {{meditation.data.tmr}}.
{{else}}
- {{alias}} a échoué dans sa méditation et ne voit aucun signe Draconique.
+ Votre méditation ne porte pas ses fruits, vous ne voyez aucun signe Draconique.
{{/if}}
Vous vous êtes fatigué de 2 cases.
- {{#if rolled.isETotal}}
Votre échec total augmente de 1 la difficulté de la méditation!{{/if~}}
+ {{#if rolled.isEPart}}
Votre échec {{#if rolled.isETotal}}total{{else}}particulier{{/if}} augmente de 1 la difficulté de la méditation!{{/if~}}
diff --git a/templates/chat-signe-draconique-actor.html b/templates/chat-signe-draconique-actor.html
new file mode 100644
index 00000000..f05b43fb
--- /dev/null
+++ b/templates/chat-signe-draconique-actor.html
@@ -0,0 +1,7 @@
+
+ {{alias}} perçoit {{signe.name}}
+
+
Pour le lire ce signe draconique, rendez-vous dans les
+ Terres Médianes du Rêve et trouvez une case de résonnance.
+ {{#if signe.data.ephemere}}C'est un signe éphémère, qui ne restera présent que pour {{signe.data.duree}}{{/if}}
+
diff --git a/templates/chat-signe-draconique-resonance.html b/templates/chat-signe-draconique-resonance.html
new file mode 100644
index 00000000..d3b0bdba
--- /dev/null
+++ b/templates/chat-signe-draconique-resonance.html
@@ -0,0 +1,4 @@
+
+ {{alias}} peut lire un signe draconique
+
+
Vous venez de trouver une terre de résonance en {{typeTMR}}, vous pouvez le lire un signe draconique.
diff --git a/templates/dialog-create-signedraconique.html b/templates/dialog-create-signedraconique.html
new file mode 100644
index 00000000..44a7e941
--- /dev/null
+++ b/templates/dialog-create-signedraconique.html
@@ -0,0 +1,52 @@
+
\ No newline at end of file
diff --git a/templates/dialog-roll-signedraconique.html b/templates/dialog-roll-signedraconique.html
new file mode 100644
index 00000000..b9de46d9
--- /dev/null
+++ b/templates/dialog-roll-signedraconique.html
@@ -0,0 +1,48 @@
+{{log 'lecture signe draconique' this}}
+
+
+
\ No newline at end of file
diff --git a/templates/dialog-roll-sort.html b/templates/dialog-roll-sort.html
index 4501ef0c..e5e75302 100644
--- a/templates/dialog-roll-sort.html
+++ b/templates/dialog-roll-sort.html
@@ -1,4 +1,3 @@
-{{log 'lancer de sort' this}}
-