diff --git a/module/actor.js b/module/actor.js index 65504e6f..6030028e 100644 --- a/module/actor.js +++ b/module/actor.js @@ -272,7 +272,41 @@ export class RdDActor extends Actor { await this.update( {"data.reve.refoulement": refoulement } ); return ret; } - + + /* -------------------------------------------- */ + async deleteTMRRencontreAtPosition( ) { + let rencontres = duplicate(this.data.data.reve.rencontre); + let len = rencontres.list.length; + let i = 0; + //console.log("List", rencontres, len); + let newTable = []; + for( i=0; i < len; i++) { + if (rencontres.list[i].coord != this.data.data.reve.tmrpos.coord ) + newTable.push(rencontres.list[i]); + } + if ( newTable.length != len ) { + rencontres.list = newTable; + //console.log("Result: ", rencontres); + await this.update( {"data.reve.rencontre": rencontres } ); + } + } + + /* -------------------------------------------- */ + async addTMRRencontre( currentRencontre ) { + let rencontres = duplicate(this.data.data.reve.rencontre); + let len = rencontres.list.length; + let i = 0; + let already = false; + for( i=0; i < len; i++) { + if (rencontres.list[i].coord == this.data.data.reve.tmrpos.coord ) + already = true; + } + if ( !already ) { + rencontres.list.push( {coord: this.data.data.reve.tmrpos.coord, rencontre: currentRencontre} ); + await this.update( {"data.reve.rencontre": rencontres } ); + } + } + /* -------------------------------------------- */ async updatePointsDeReve( value ) { let reve = duplicate(this.data.data.reve.reve); @@ -423,12 +457,23 @@ export class RdDActor extends Actor { return sortList; } + /* -------------------------------------------- */ + getDraconicList( ) { + let draconicList = [] + for (const item of this.data.items) { + if (item.type == "competence" && item.data.categorie == 'draconic' ) + draconicList.push(item); + } + return draconicList; + } + /* -------------------------------------------- */ async rollSort( sortID ) { console.log("Loading TMR template!!!"); let data = { fatigueHTML:"" + RdDUtility.makeHTMLfatigueMatrix( this.data.data.sante.fatigue.value, this.data.data.sante.endurance.max ).html() + "
", + draconic: this.getDraconicList(), sort: this.getSortList(), caracReve: this.data.data.carac.reve.value } diff --git a/module/rdd-main.js b/module/rdd-main.js index ca9372d8..0f40dcab 100644 --- a/module/rdd-main.js +++ b/module/rdd-main.js @@ -12,6 +12,7 @@ import { RdDActor } from "./actor.js"; import { RdDItemSheet } from "./item-sheet.js"; import { RdDActorSheet } from "./actor-sheet.js"; import { RdDUtility } from "./rdd-utility.js"; +import { TMRUtility } from "./tmr-utility.js"; /* -------------------------------------------- */ /* Foundry VTT Initialization */ @@ -50,7 +51,32 @@ Hooks.once("init", async function() { Actors.registerSheet("foundryvtt-reve-de-dragon", RdDActorSheet, { makeDefault: true }); Items.unregisterSheet("core", ItemSheet); Items.registerSheet("foundryvtt-reve-de-dragon", RdDItemSheet, {makeDefault: true}); - - }); +/* -------------------------------------------- */ +/* Foundry VTT Initialization */ +/* -------------------------------------------- */ +const table2func = { "queues": TMRUtility.getQueue, "ombre": TMRUtility.getOmbre, "tetehr": TMRUtility.getTeteHR, "tete": TMRUtility.getTete, "souffle": TMRUtility.getSouffle }; +Hooks.on("chatMessage", (html, content, msg) => { + + // Setup new message's visibility + let rollMode = game.settings.get("core", "rollMode"); + if (["gmroll", "blindroll"].includes(rollMode)) msg["whisper"] = ChatMessage.getWhisperIDs("GM"); + if (rollMode === "blindroll") msg["blind"] = true; + msg["type"] = 0; + + let regExp; + regExp = /(\S+)/g; + let commands = content.match(regExp); + let command = commands[0]; + + + // Roll on a table + if (command === "/table") { + let tableName = commands[1].toLowerCase(); + table2func[tableName](); + return false + } + + return true; +} ); diff --git a/module/rdd-tmr-dialog.js b/module/rdd-tmr-dialog.js index 859b5ddb..2262beb5 100644 --- a/module/rdd-tmr-dialog.js +++ b/module/rdd-tmr-dialog.js @@ -37,20 +37,51 @@ export class RdDTMRDialog extends Dialog { this.cellw = 55; this.actor = actor; this.sort = sort; + this.rencontresExistantes = duplicate(this.actor.data.data.reve.rencontre.list); + //console.log(this.rencontresExistantes); this.pixiApp = new PIXI.Application( {width: 720, height: 860 } ); } - + + /* -------------------------------------------- */ + displayPreviousRencontres() { + for (let rencontre of this.rencontresExistantes) { + rencontre.circle = new PIXI.Graphics(); + rencontre.circle.beginFill(0x101010, 0.8); + rencontre.circle.drawCircle(0, 0, 6); + rencontre.circle.endFill(); + let coordXY = TMRUtility.convertToCellCoord( rencontre.coord ); + let basey = (coordXY.x % 2 == 0) ? this.col1_y : this.col2_y; + let myx = 28+(coordXY.x * this.cellw); + let myy = basey+28+(coordXY.y * this.cellh); + rencontre.circle.x = myx - (this.cellw/2)+16; + rencontre.circle.y = myy - (this.cellh/2)+16; + this.pixiApp.stage.addChild(rencontre.circle); + } + } + + /* -------------------------------------------- */ + updatePreviousRencontres() { + for (let rencontre of this.rencontresExistantes) { + this.pixiApp.stage.removeChild( rencontre.circle ); + } + this.rencontresExistantes = duplicate(this.actor.data.data.reve.rencontre.list); + this.displayPreviousRencontres(); + } + /* -------------------------------------------- */ async derober() { - await this.maximize(); - let rencontre = duplicate(this.actor.data.data.reve.rencontre); - rencontre.list.push( {coord: this.actor.data.data.reve.tmrpos.coord, rencontre: this.currentRencontre} ); + await this.actor.addTMRRencontre( this.currentRencontre ); console.log("-> derober", this.currentRencontre); + ChatMessage.create( { title: "TMR", content: game.user.name + " s'est dérobé et quitte les TMR.", user: game.user._id, whisper: ChatMessage.getWhisperRecipients("GM") } ); + this.close(); } /* -------------------------------------------- */ async refouler(data) { + ChatMessage.create( { title: "TMR", content: game.user.name + " a refoulé une rencontre.", user: game.user._id, whisper: ChatMessage.getWhisperRecipients("GM") } ); + await this.actor.deleteTMRRencontreAtPosition( ); // Remove the stored rencontre if necessary let result = await this.actor.ajouterRefoulement(1); + this.updatePreviousRencontres(); if (result == "souffle") { let souffle = TMRUtility.getSouffle(); } @@ -60,20 +91,24 @@ export class RdDTMRDialog extends Dialog { } /* -------------------------------------------- */ async matriser(data) { - + this.actor.deleteTMRRencontreAtPosition( ); // Remove the stored rencontre if necessary + this.updatePreviousRencontres(); await this.maximize(); let draconic = this.actor.getBestDraconic(); let carac = this.actor.getCurrentReve(); let level = draconic.data.niveau - this.currentRencontre.force; + console.log("Maitriser", carac, draconic.data.niveau, this.currentRencontre.force); let scoreDef = CONFIG.RDD.resolutionTable[carac][level+10]; let myroll = new Roll("d100"); myroll.roll(); if ( myroll.total > scoreDef.score ) { TMRUtility.processRencontreEchec( this.actor, this.rencontre); - this.close(); + ChatMessage.create( { title: "TMR", content: game.user.name + " a perdu sa rencontre.", user: game.user._id, whisper: ChatMessage.getWhisperRecipients("GM") } ); + this.close(); } else { TMRUtility.processRencontreReussite( this.actor, this.rencontre); + ChatMessage.create( { title: "TMR", content: game.user.name + " a gagné sa rencontre.", user: game.user._id, whisper: ChatMessage.getWhisperRecipients("GM") } ); } console.log("-> matriser", this.currentRencontre); this.updateValuesDisplay(); @@ -83,26 +118,30 @@ export class RdDTMRDialog extends Dialog { async manageRencontre(coordTMR, cellDescr) { // Roll until diffent than '8' - this.currentRencontre = undefined; let rencontre - let val = 8; - while (val == 8) { - let myroll = new Roll("d7"); - myroll.roll(); - val = myroll.total; - if ( val == 7 ) { - rencontre = TMRUtility.rencontreTMRRoll(coordTMR, cellDescr); + this.currentRencontre = undefined; + for (let previousRencontre of this.rencontresExistantes ) { + if ( previousRencontre.coord == coordTMR) + rencontre = previousRencontre.rencontre; + } + if ( rencontre == undefined ) { + let val = 8; + while (val == 8) { + let myroll = new Roll("d7"); + myroll.roll(); + val = myroll.total; + if ( val == 7 ) { + rencontre = TMRUtility.rencontreTMRRoll(coordTMR, cellDescr); + rencontre.force = new Roll(rencontre.data.force).roll().total; + } } } if (rencontre) { // Manages it - let myroll = new Roll(rencontre.data.force); - myroll.roll(); - rencontre.force = myroll.total; - this.currentRencontre = rencontre; + this.currentRencontre = duplicate(rencontre); await this.minimize(); let diag = new Dialog( { title: "Rencontre en TMR!", - content: "Vous recontrez un " + rencontre.name + " de force " + myroll.total + "
", + content: "Vous recontrez un " + rencontre.name + " de force " + rencontre.force + "
", buttons: { derober: { icon: '', @@ -251,7 +290,7 @@ export class RdDTMRDialog extends Dialog { cell1.append( this.pixiApp.view ); // load the texture we need - this.pixiApp.loader.add('tmr', 'systems/foundryvtt-reve-de-dragon/styles/ui/tmp_main_r1.webp').load((loader, resources) => { + await this.pixiApp.loader.add('tmr', 'systems/foundryvtt-reve-de-dragon/styles/ui/tmp_main_r1.webp').load((loader, resources) => { // This creates a texture from a 'bunny.png' image const mytmr = new PIXI.Sprite(resources.tmr.texture); // Setup the position of the bunny @@ -272,11 +311,12 @@ export class RdDTMRDialog extends Dialog { this.circle.drawCircle(0, 0, 15); this.circle.endFill(); this.updateSprites( this ); - + // Add the bunny to the scene we are building this.pixiApp.stage.addChild(mytmr); this.pixiApp.stage.addChild(this.circle); - //this.updateSprites(); + + this.displayPreviousRencontres(); } ); await this.actor.santeIncDec("fatigue", 1); // 1 point defatigue diff --git a/module/tmr-utility.js b/module/tmr-utility.js index dd4d9a03..43e66b22 100644 --- a/module/tmr-utility.js +++ b/module/tmr-utility.js @@ -1,12 +1,210 @@ /* -------------------------------------------- */ -const TMRMapping = { A1: { type: "cite", label: "Cité VIDE"}, B1: { type:"plaines", label: "Plaines d'ASSORH"}, C1: { type:"necropole", label: "Nécropole de KROAK"}, D1: { type: "fleuve", label: "Fleuve de l'Oubli"}, E1: { type: "monts", label: "Monts de KANAI"}, - F1: { type: "cite", label: "Cité GLAUQUE"}, G1: { type: "desolation", label: "Désolation de JAMAIS"}, H1: {type: "lac", label: "Lac d'ANTI-CALME"}, I1: { type: "plaines", label: "Plaines GRISES"}, J1: { type: "monts", label: "Monts FAINEANTS"}, - K1: { type: "cite", label: "Cité d'ONKAUS"}, L1: { type: "fleuve", label: "Fleuve de l'Oubli"}, M1: { type: "cite", label: "Cité JALOUSE"}, - - A2: { type: "desert", label: "Désert de MIEUX"}, B2: { type:"collines", label: "Collines de DAWELL"}, C2: { type:"monts", label: "Monts GLIGNANTS"}, D2: { type: "cite", label: "Cité de FROST"}, E2: { type: "plaines", label: "Plaines de FIASK"}, - F2: { type: "lac", label: "Lac de MISERE"}, G2: { type: "marais", label: "Marais NUISANTS"}, H2: {type: "collines", label: "Collines de PARTA"}, I2: { type: "foret", label: "Forêt FADE"}, J2: { type: "desert", label: "Désert de POLY"}, - K2: { type: "foret", label: "Forêt TAMEE"}, L2: { type: "fleuve", label: "Fleuve de l'Oubli"}, M2: { type: "necropole", label: "Nécropole de LOGOS"} - } +const TMRMapping = { + A1: { type: "cite", label: "Cité Vide"}, + B1: { type: "plaines", label: "Plaines d’Assorh"}, + C1: { type: "necropole", label: "Nécropole de Kroak"}, + D1: { type: "fleuve", label: "Fleuve"}, + E1: { type: "monts", label: "Monts de Kanaï"}, + F1: { type: "cite", label: "Cité Glauque"}, + G1: { type: "desolation", label: "Désolation de Demain"}, + H1: { type: "lac", label: "Lac d’Anticalme"}, + I1: { type: "plaines", label: "Plaines Grises"}, + J1: { type: "monts", label: "Monts Fainéants"}, + K1: { type: "cite", label: "Cité d’Onkause"}, + L1: { type: "fleuve", label: "Fleuve"}, + M1: { type: "cite", label: "Cité Jalouse"}, + + A2: { type: "desert", label: "Désert de Mieux"}, + B2: { type: "collines", label: "Collines de Dawell"}, + C2: { type: "marais", label: "Marais Glignants"}, + D2: { type: "cite", label: "Cité de Frost"}, + E2: { type: "plaines", label: "Plaines de Fiask"}, + F2: { type: "lac", label: "Lac de Misère"}, + G2: { type: "marais", label: "Marais Nuisants"}, + H2: { type: "collines", label: "Collines de Parta"}, + I2: { type: "foret", label: "Forêt Fade"}, + J2: { type: "desert", label: "Désert de Poly"}, + K2: { type: "foret", label: "Forêt Tamée"}, + L2: { type: "fleuve", label: "Fleuve"}, + M2: { type: "necropole", label: "Nécropole de Logos"}, + + A3: { type: "desolation", label: "Désolation de Demain"}, + B3: { type: "plaines", label: "Plaines de Rubéga"}, + C3: { type: "fleuve", label: "Fleuve"}, + D3: { type: "gouffre", label: "Gouffre d’Oki"}, + E3: { type: "foret", label: "Forêt d’Estoubh"}, + F3: { type: "fleuve", label: "Fleuve"}, + G3: { type: "gouffre", label: "Gouffre de Sun"}, + H3: { type: "foret", label: "Forêt de Ganna"}, + I3: { type: "monts", label: "Monts Grinçants"}, + J3: { type: "cite", label: "Cité Venin"}, + K3: { type: "plaines", label: "Plaines de Dois"}, + L3: { type: "lac", label: "Lac Laineux"}, + M3: { type: "monts", label: "Monts de Vdah"}, + + A4: { type: "foret", label: "Forêt de Falconax"}, + B4: { type: "monts", label: "Monts Crâneurs"}, + C4: { type: "pont", label: "Pont de Giolii"}, + D4: { type: "lac", label: "Lac de Foam"}, + E4: { type: "plaines", label: "Plaines d’Orti"}, + F4: { type: "fleuve", label: "Fleuve"}, + G4: { type: "sanctuaire", label: "Sanctuaire Blanc"}, + H4: { type: "plaines", label: "Plaines de Psark"}, + I4: { type: "plaines", label: "Plaines de Xiax"}, + J4: { type: "collines", label: "Collines d’Encre"}, + K4: { type: "pont", label: "Pont de Fah"}, + L4: { type: "sanctuaire", label: "Sanctuaire Mauve"}, + M4: { type: "gouffre ", label: "Gouffre Grisant"}, + + A5: { type: "plaines", label: "Plaines de Trilkh"}, + B5: { type: "collines", label: "Collines de Tanegy"}, + C5: { type: "marais", label: "Marais Flouants"}, + D5: { type: "fleuve", label: "Fleuve"}, + E5: { type: "monts", label: "Monts Brûlants"}, + F5: { type: "cite", label: "Cité de Panople"}, + G5: { type: "pont", label: "Pont d’Ik"}, + H5: { type: "desert", label: "Désert de Krane"}, + I5: { type: "desolation", label: "Désolation de Demain"}, + J5: { type: "marais", label: "Marais de Jab"}, + K5: { type: "fleuve", label: "Fleuve"}, + L5: { type: "collines", label: "Collines Suaves"}, + M5: { type: "cite", label: "Cité Rimarde"}, + + A6: { type: "necropole", label: "Nécropole de Zniak"}, + B6: { type: "foret", label: "Forêt de Bust"}, + C6: { type: "cite", label: "Cité Pavois"}, + D6: { type: "fleuve", label: "Fleuve"}, + E6: { type: "sanctuaire", label: "Sanctuaire de Plaine"}, + F6: { type: "fleuve", label: "Fleuve"}, + G6: { type: "marais", label: "Marais Glutants"}, + H6: { type: "monts", label: "Monts Gurdes"}, + I6: { type: "necropole", label: "Nécropole de Xotar"}, + J6: { type: "lac", label: "Lac d’Iaupe"}, + K6: { type: "desolation", label: "Désolation de Demain"}, + L6: { type: "foret", label: "Forêt Gueuse"}, + M6: { type: "desolation", label: "Désolation de Demain"}, + + A7: { type: "plaines", label: "Plaines de l’Arc"}, + B7: { type: "marais", label: "Marais Bluants"}, + C7: { type: "fleuve", label: "Fleuve"}, + D7: { type: "plaines", label: "Plaines d’A!a"}, + E7: { type: "foret", label: "Forêt de Glusks"}, + F7: { type: "fleuve", label: "Fleuve"}, + G7: { type: "cite", label: "Cité de Terwa"}, + H7: { type: "gouffre", label: "Gouffre de Kapfa"}, + I7: { type: "plaines", label: "Plaines de Troo"}, + J7: { type: "fleuve", label: "Fleuve"}, + K7: { type: "cite", label: "Cité de Kolix"}, + L7: { type: "gouffre", label: "Gouffre d’Episophe"}, + M7: { type: "desert", label: "Désert de Lave"}, + + A8: { type: "gouffre", label: "Gouffre de Shok"}, + B8: { type: "fleuve", label: "Fleuve"}, + C8: { type: "foret", label: "Forêt Turmide"}, + D8: { type: "cite", label: "Cité d’Olak"}, + E8: { type: "plaines", label: "Plaines d’Iolise"}, + F8: { type: "lac", label: "Lac des Chats"}, + G8: { type: "plaines", label: "Plaines Sans Joie"}, + H8: { type: "foret", label: "Forêt d’Ourf"}, + I8: { type: "fleuve", label: "Fleuve"}, + J8: { type: "monts", label: "Monts Barask"}, + K8: { type: "desert", label: "Désert de Fumée"}, + L8: { type: "monts", label: "Monts Tavelés"}, + M8: { type: "plaines", label: "Plaines Lavées"}, + + A9: { type: "collines", label: "Collines de Korrex"}, + B9: { type: "lac", label: "Lac de Lucre"}, + C9: { type: "monts", label: "Monts Tuméfiés"}, + D9: { type: "pont", label: "Pont d’Orx"}, + E9: { type: "fleuve", label: "Fleuve"}, + F9: { type: "plaines", label: "Plaines de Foe"}, + G9: { type: "desolation", label: "Désolation de Demain"}, + H9: { type: "collines", label: "Collines de Noirseul"}, + I9: { type: "fleuve", label: "Fleuve"}, + J9: { type: "marais", label: "Marais Gronchants"}, + K9: { type: "sanctuaire", label: "Sanctuaire Noir"}, + L9: { type: "collines", label: "Collines Cornues"}, + M9: { type: "necropole", label: "Nécropole de Zonar"}, + + A10: { type: "sanctuaire", label: "Sanctuaire d’Olis"}, + B10: { type: "monts", label: "Monts Salés"}, + C10: { type: "marais", label: "Marais de Dom"}, + D10: { type: "fleuve", label: "Fleuve"}, + E10: { type: "gouffre", label: "Gouffre de Junk"}, + F10: { type: "marais", label: "Marais Zultants"}, + G10: { type: "cite", label: "Cité de Sergal"}, + H10: { type: "plaines", label: "Plaines Noires"}, + I10: { type: "lac", label: "Lac Wanito"}, + J10: { type: "fleuve", label: "Fleuve"}, + K10: { type: "plaines", label: "Plaines Jaunes"}, + L10: { type: "desert", label: "Désert de Nicrop"}, + M10: { type: "foret", label: "Forêt de Jajou"}, + + A11: { type: "desolation", label: "Désolation de Demain"}, + B11: { type: "cite", label: "Cité de Brilz"}, + C11: { type: "pont", label: "Pont de Roï"}, + D11: { type: "desolation", label: "Désolation de Demain"}, + E11: { type: "lac", label: "Lac de Glinster"}, + F11: { type: "cite", label: "Cité de Noape"}, + G11: { type: "fleuve", label: "Fleuve"}, + H11: { type: "fleuve", label: "Fleuve"}, + I11: { type: "pont", label: "Pont de Yalm"}, + J11: { type: "plaines", label: "Plaines de Miltiar"}, + K11: { type: "cite", label: "Cité Tonnerre"}, + L11: { type: "collines", label: "Collines de Kol"}, + M11: { type: "cite", label: "Cité Crapaud"}, + + A12: { type: "plaines", label: "Plaines Sages"}, + B12: { type: "fleuve", label: "Fleuve"}, + C12: { type: "lac", label: "Lac de Fricassa"}, + D12: { type: "collines", label: "Collines d’Huaï"}, + E12: { type: "monts", label: "Monts Ajourés"}, + F12: { type: "necropole", label: "Nécropole de 'roat"}, + G12: { type: "plaines", label: "Plaines de Lufmil"}, + H12: { type: "collines", label: "Collines de Tooth"}, + I12: { type: "gouffre", label: "Gouffre Abimeux"}, + J12: { type: "cite", label: "Cité Folle"}, + K12: { type: "desolation", label: "Désolation de Demain"}, + L12: { type: "plaines", label: "Plaines Venteuses"}, + M12: { type: "collines", label: "Collines Révulsantes"}, + + A13: { type: "fleuve", label: "Fleuve"}, + B13: { type: "gouffre", label: "Gouffre des Litiges"}, + C13: { type: "desert", label: "Désert de Neige"}, + D13: { type: "cite", label: "Cité Sordide"}, + E13: { type: "plaines", label: "Plaines de Xnez"}, + F13: { type: "foret", label: "Forêt des Cris"}, + G13: { type: "plaines", label: "Plaines Calcaires"}, + H13: { type: "desolation", label: "Désolation de Demain"}, + I13: { type: "monts", label: "Monts Bigleux"}, + J13: { type: "gouffre", label: "Gouffre de Gromph"}, + K13: { type: "foret", label: "Forêt de Kluth"}, + L13: { type: "monts", label: "Monts Dormants"}, + M13: { type: "plaines", label: "Plaines d’Anjou"}, + + A14: { type: "collines", label: "Collines de Stolis"}, + B14: { type: "necropole", label: "Nécropole de Gorlo"}, + C14: { type: "foret", label: "Forêt de Bissam"}, + D14: { type: "sanctuaire", label: "Sanctuaire Plat"}, + E14: { type: "monts", label: "Monts de Quath"}, + F14: { type: "plaines", label: "Plaines Brisées"}, + G14: { type: "desert", label: "Désert de Sek"}, + H14: { type: "plaines", label: "Plaines Blanches"}, + I14: { type: "cite", label: "Cité Destituée"}, + J14: { type: "desert", label: "Désert de Sank"}, + K14: { type: "necropole", label: "Nécropole d’Antinéar"}, + L14: { type: "plaines", label: "Plaines de Jislith"}, + M14: { type: "desolation", label: "Désolation de Demain"}, + + A15: { type: "cite", label: "Cité de Mielh"}, + C15: { type: "plaines", label: "Plaines de Toué"}, + E15: { type: "foret", label: "Forêt des Furies"}, + G15: { type: "plaines", label: "Plaines des Soupirs"}, + I15: { type: "monts", label: "Monts des Dragées"}, + K15: { type: "collines", label: "Collines Pourpres"}, + M15: { type: "cite", label: "Cité de Klana"} + } + const rencontresTable = [ {name:"Messagers des Rêves", data: { force: "2d4", ignorer: true, derober: true, refoulement: 1, cite: "01-25", sanctuaire: "01-25", plaines: "01-20", pont: "01-20", collines: "01-15", forêt: "01-15", monts: "01-10", desert: "01-10", fleuve: "01-05", @@ -68,9 +266,7 @@ export class TMRUtility { /* -------------------------------------------- */ static rencontreTMRRoll( coordTMR, cellDescr ) { - let myroll = new Roll("d100"); - myroll.roll(); - let val = myroll.total; + let val = new Roll("d100").roll().total; //console.log("Rencontre !!!!", val, coordTMR, cellDescr); for( let renc of rencontresTable) { @@ -91,7 +287,41 @@ export class TMRUtility { } /* -------------------------------------------- */ - static processRencontreReussite( actor, rencontre ) { + static async processRencontreReussite( actor, rencontre ) { + let msg = "Vous avez réussi votre maîtrise ! "; + + if (rencontre.name == "Messagers des Rêves") { + msg += "Le Messager des Rêves vous permet de lancer votre sort à XX cases !"; + + } else if (rencontre.name == "Passeur des Rêves") { + msg += "Le Passeur des Rêves vous téléporte sur une case à distance XX !"; + + } else if (rencontre.name == "Fleur des Rêves") { + await actor.updatePointsDeReve( rencontre.force ); + msg += "La Fleur des rêves s'évanouit en vous fournissant " + rencontre.force + " Points de Rêve"; + + } else if (rencontre.name == "Mangeur de Rêve") { + msg += "Ce Mangeur des Rêves disparait !" + + } else if (rencontre.name == "Changeur de Rêve") { + msg += "Ce Changeur des Rêves disparait !" + + } else if (rencontre.name == "Briseur de Rêve") { + msg += "Ce Briseur des Rêves disparait !" + + } else if (rencontre.name == "Reflet d'ancien Rêve") { + msg += "Ce Reflet d'ancien Rêve disparait !" + + } else if (rencontre.name == "Tourbillon blanc") { + msg += "Ce Tourbillon Blanc disparait !" + + } else if (rencontre.name == "Tourbillon noir") { + msg += "Ce Tourbillon Noir disparait !" + + } else if (rencontre.name == "Rêve de Dragon") { + msg += "Un Rêve de Dragon survient !" + + } } /* -------------------------------------------- */ @@ -134,19 +364,39 @@ export class TMRUtility { } /* -------------------------------------------- */ - static getSouffle( ) { + static async genericGetTableResult( tableName, toChat) + { + let pack = game.packs.get("foundryvtt-reve-de-dragon.tables-diverses"); + await pack.getIndex(); + let entry = pack.index.find(e => e.name === tableName); + let rollQueues = await pack.getEntity(entry._id); + let result = rollQueues.draw( { displayChat: toChat } ); + return result; + } + + /* -------------------------------------------- */ + static async getSouffle( toChat ) { + return TMRUtility.genericGetTableResult( "Souffles de Dragon", toChat); } /* -------------------------------------------- */ - static getQueue( ) { + static async getQueue( toChat = true) { + return TMRUtility.genericGetTableResult( "Queues de dragon", toChat); } /* -------------------------------------------- */ - static getTete( ) { + static async getTete( toChat = true ) { + return TMRUtility.genericGetTableResult( "Têtes de Dragon pour haut-rêvants", toChat); + } + + /* -------------------------------------------- */ + static async getTeteHR( toChat = true ) { + return TMRUtility.genericGetTableResult( "Têtes de Dragon pour tous personnages", toChat); } /* -------------------------------------------- */ - static getOmbre( ) { + static async getOmbre( toChat = true ) { + return TMRUtility.genericGetTableResult( "Ombre de Thanatos", toChat); } } diff --git a/packs/competences.db.ORIG b/packs/competences.db.ORIG deleted file mode 100644 index b17f8f6e..00000000 --- a/packs/competences.db.ORIG +++ /dev/null @@ -1,65 +0,0 @@ -{"name":"Comédie","permission":{"default":0,"Q4cUvqxCxMoTJXDL":3},"type":"competence","data":{"niveau":-8,"base":-8,"categorie":"particuliere","xp":0,"description":"

L’art de paraître sur une scène : jouer un rôle, déclamer des vers, mimer, conter. Peut aussi servir à simuler, mystifier.

\n

 

","defaut_carac":"apparence"},"flags":{},"img":"systems/foundryvtt-reve-de-dragon/icons/competence_comedie.png","_id":"2JLK5e97WbTM5WxX"} -{"name":"Jeu","permission":{"default":0,"Q4cUvqxCxMoTJXDL":3},"type":"competence","data":{"niveau":-11,"base":-11,"categorie":"specialisee","xp":0,"description":"

Jeux de tripot, manipuler les dés. Connaître les jeux et les meilleures stratégies, déceler un tricheur et tricher soi-même.

\n

 

","defaut_carac":"intellect"},"flags":{},"img":"systems/foundryvtt-reve-de-dragon/icons/competence_jeu.png","_id":"3VSMRwMYpOi83wgE"} -{"name":"Cuisine","permission":{"default":0,"Q4cUvqxCxMoTJXDL":3},"type":"competence","data":{"niveau":-4,"base":-4,"categorie":"generale","xp":0,"description":"

Identifier les saveurs culinaires, les épices et les aromates. Exécuter, inventer une recette. Faire griller un gibier sur un feu de camp n’est généralement pas de la cuisine, mais de la simple survie.

\n

 

","defaut_carac":"odoratgout"},"flags":{},"img":"systems/foundryvtt-reve-de-dragon/icons/competence_cuisine.png","_id":"3qRzl3nhLZNsoDsI"} -{"name":"Survie en Sous-Sol","permission":{"default":0,"Q4cUvqxCxMoTJXDL":3},"type":"competence","data":{"niveau":-8,"base":-8,"categorie":"particuliere","xp":0,"description":"

Par exemple pister un gibier en forêt demande l’usage de Survie en forêt, trouver une grotte pour s’abriter en montagne demande Survie en montagne. Survie en extérieur tient lieu de survie spécifique pour les plaines et collines non boisées.

\n

 

","defaut_carac":"intellect"},"flags":{},"img":"systems/foundryvtt-reve-de-dragon/icons/competence_survie_sous_sol.png","_id":"6pXxEdeo7xcDvgx0"} -{"name":"Corps à corps","permission":{"default":0,"Q4cUvqxCxMoTJXDL":3},"type":"competence","data":{"niveau":-6,"base":-6,"categorie":"melee","xp":0,"description":"

Groupées en une seule jusqu’au niveau zéro, ces compétences sont les principes de base du combat de mêlée. Corps à corps permet de se battre sans armes ; Es-quive permet d’esquiver toutes les sortes de coup ; Dague de mêlée permet l’utilisation de la dague au contact.

\n

 

","defaut_carac":"melee"},"flags":{},"img":"systems/foundryvtt-reve-de-dragon/icons/competence_corps_a_corps.png","_id":"8Uj41cL5Qlxxy675"} -{"name":"Discrétion","permission":{"default":0,"Q4cUvqxCxMoTJXDL":3},"type":"competence","data":{"niveau":-4,"base":-4,"categorie":"generale","xp":0,"description":"

Se déplacer en silence, sans se faire remarquer, passer inaperçu, se fondre dans

\n

l’anonymat, se cacher.

\n

 

","defaut_carac":"agilite"},"flags":{},"img":"systems/foundryvtt-reve-de-dragon/icons/competence_discretion.png","_id":"94P55yZfeipCGbsr"} -{"name":"Saut","permission":{"default":0,"Q4cUvqxCxMoTJXDL":3},"type":"competence","data":{"niveau":-4,"base":-4,"categorie":"generale","xp":0,"description":"

Sauter par-dessus un obstacle ou sauter en contrebas ; rattraper une chute en la transformant en saut.

\n

 

","defaut_carac":"agilite"},"flags":{},"img":"systems/foundryvtt-reve-de-dragon/icons/competence_saut.png","_id":"9ICvksiNG6Bhm8CE"} -{"name":"Navigation","permission":{"default":0,"Q4cUvqxCxMoTJXDL":3},"type":"competence","data":{"niveau":-11,"base":-11,"categorie":"specialisee","xp":0,"description":"

Connaissance des manœuvres à accomplir sur un voilier, connaissance de la mer, de ses courants (voir Navigation, p325).

\n

 

","defaut_carac":"vue"},"flags":{},"img":"systems/foundryvtt-reve-de-dragon/icons/competence_navigation.png","_id":"AXeWswf2Dth9ysvy"} -{"name":"Séduction","permission":{"default":0,"Q4cUvqxCxMoTJXDL":3},"type":"competence","data":{"niveau":-4,"base":-4,"categorie":"generale","xp":0,"description":"

L’art d’être galant, de paraître attirant. Permet les conquêtes amoureuses.

\n

 

","defaut_carac":"apparence"},"flags":{},"img":"systems/foundryvtt-reve-de-dragon/icons/competence_seduction.png","_id":"AbM6lJ7DI2UAWLxj"} -{"name":"Masse à 2 mains","permission":{"default":0,"Q4cUvqxCxMoTJXDL":3},"type":"competence","data":{"niveau":-6,"base":-6,"categorie":"melee","xp":0,"description":"

Ces compétences permettent l’utilisation des masses, gourdins, bâtons, pour attaquer, voire parer.

\n

 

","defaut_carac":"melee"},"flags":{},"img":"systems/foundryvtt-reve-de-dragon/icons/competence_masse_2_mains.png","_id":"BMAloiSbDKOu3b4C"} -{"name":"Chirurgie","permission":{"default":0,"Q4cUvqxCxMoTJXDL":3},"type":"competence","data":{"niveau":-11,"base":-11,"categorie":"specialisee","xp":0,"description":"

L’art de soigner les blessures, panser, recoudre ; savoir se servir d’un rasoir. Chirurgie est utilisée pour accomplir premiers soins et soins complets sur toutes les blessures, et par extension, pour tous les actes de secourisme et de réanimation.

\n

 

","defaut_carac":"dexterite"},"flags":{},"img":"systems/foundryvtt-reve-de-dragon/icons/competence_chirurgie.png","_id":"BlG2YPATIbnY3m9P"} -{"name":"Survie en Montagne","permission":{"default":0,"Q4cUvqxCxMoTJXDL":3},"type":"competence","data":{"niveau":-8,"base":-8,"categorie":"particuliere","xp":0,"description":"

Par exemple pister un gibier en forêt demande l’usage de Survie en forêt, trouver une grotte pour s’abriter en montagne demande Survie en montagne. Survie en extérieur tient lieu de survie spécifique pour les plaines et collines non boisées.

\n

 

","defaut_carac":"intellect"},"flags":{},"img":"systems/foundryvtt-reve-de-dragon/icons/competence_survie_montagne.png","_id":"BzqBOeqS6HvJhqey"} -{"name":"Métallurgie","permission":{"default":0,"Q4cUvqxCxMoTJXDL":3},"type":"competence","data":{"niveau":-11,"base":-11,"categorie":"specialisee","xp":0,"description":"

C’est au sens large le travail du métal, et principalement du fer. Battre le fer, forger, tremper, limer, poncer, riveter. Évaluer la qualité, la solidité, d’un objet de fer, une arme par exemple.

\n

 

","defaut_carac":"force"},"flags":{},"img":"systems/foundryvtt-reve-de-dragon/icons/competence_metallurgie.png","_id":"CHyk96ypxMrg8VXh"} -{"name":"Equitation","permission":{"default":0,"Q4cUvqxCxMoTJXDL":3},"type":"competence","data":{"niveau":-8,"base":-8,"categorie":"particuliere","xp":0,"description":"

Monter à cheval, et, d’une manière générale, connaissance des chevaux. Peut s’appliquer aux autres montures de Rêve de Dragon : aligates, zyglutes, etc.

\n

 

","defaut_carac":"agilite"},"flags":{},"img":"systems/foundryvtt-reve-de-dragon/icons/competence_equitation.png","_id":"F5iQNrZSeJsfyTnV"} -{"name":"Charpenterie","permission":{"default":0,"Q4cUvqxCxMoTJXDL":3},"type":"competence","data":{"niveau":-8,"base":-8,"categorie":"particuliere","xp":0,"description":"

C’est au sens large le travail du bois, charpenterie, menuiserie, ébénisterie. Évaluer la qualité, solidité, d’une structure de bois.

\n

 

","defaut_carac":"dexterite"},"flags":{},"img":"systems/foundryvtt-reve-de-dragon/icons/competence_charpenterie.png","_id":"FqLWG6xjISKMLPiX"} -{"name":"Astrologie","permission":{"default":0,"Q4cUvqxCxMoTJXDL":3},"type":"competence","data":{"niveau":-11,"base":-11,"categorie":"connaissance","xp":0,"description":"

Connaissance des étoiles et de leur signification symbolique. Calculer les nombres astraux gouvernant la chance de chaque individu. S’orienter aux étoiles (voir Astrologie, p155).

\n

 

","defaut_carac":"vue"},"flags":{},"img":"systems/foundryvtt-reve-de-dragon/icons/competence_astrologie.png","_id":"GIIQm22Q4bBsmxpE"} -{"name":"Course","permission":{"default":0,"Q4cUvqxCxMoTJXDL":3},"type":"competence","data":{"niveau":-4,"base":-4,"categorie":"generale","xp":0,"description":"

Sprinter le plus vite possible, ou courir sur de longues distances en ménageant son souffle.

\n

 

","defaut_carac":"agilite"},"flags":{},"img":"systems/foundryvtt-reve-de-dragon/icons/competence_course.png","_id":"Jz4AZdDlSjsyoUsm"} -{"name":"Chant","permission":{"default":0,"Q4cUvqxCxMoTJXDL":3},"type":"competence","data":{"niveau":-4,"base":-4,"categorie":"generale","xp":0,"description":"

Savoir chanter juste, se souvenir de mélodies, improviser.

\n

 

","defaut_carac":"ouie"},"flags":{},"img":"systems/foundryvtt-reve-de-dragon/icons/competence_chant.png","_id":"LE4nA119la5cd0bC"} -{"name":"Danse","permission":{"default":0,"Q4cUvqxCxMoTJXDL":3},"type":"competence","data":{"niveau":-4,"base":-4,"categorie":"generale","xp":0,"description":"

Être capable de danser en mesure, de danser harmonieusement avec une personne

\n

ou un groupe, de charmer un public par une exhibition.

\n

 

","defaut_carac":"agilite"},"flags":{},"img":"systems/foundryvtt-reve-de-dragon/icons/competence_danse.png","_id":"LhP3Y0qCBHNp2atl"} -{"name":"Epée à 2 mains","permission":{"default":0,"Q4cUvqxCxMoTJXDL":3},"type":"competence","data":{"niveau":-6,"base":-6,"categorie":"melee","xp":0,"description":"

Ces compétences permettent l’utilisation des sept types d’épées de Rêve de Dragon pour attaquer ou parer.

\n

 

\n

 

","defaut_carac":"melee"},"flags":{},"img":"systems/foundryvtt-reve-de-dragon/icons/competence_epee_2_mains.png","_id":"MLIEbxSJHkY1m3No"} -{"name":"Dessin","permission":{"default":0,"Q4cUvqxCxMoTJXDL":3},"type":"competence","data":{"niveau":-4,"base":-4,"categorie":"generale","xp":0,"description":"

Avoir le sens des proportions. Savoir dessiner, faire le portrait de quelqu’un, mais

\n

également savoir faire un schéma, une carte, un plan, aux proportions exactes.

\n

 

","defaut_carac":"tir"},"flags":{},"img":"systems/foundryvtt-reve-de-dragon/icons/competence_dessin.png","_id":"OVcZE4kfiPYEOzgm"} -{"name":"Orfèvrerie","permission":{"default":0,"Q4cUvqxCxMoTJXDL":3},"type":"competence","data":{"niveau":-11,"base":-11,"categorie":"specialisee","xp":0,"description":"

Travail et connaissance des métaux précieux : or, argent, cuivre, étain, et par extension des pierres et perles précieuses. Évaluer la taille et la pureté d’une gemme, le prix d’un bijou.

\n

 

","defaut_carac":"dexterite"},"flags":{},"img":"systems/foundryvtt-reve-de-dragon/icons/competence_orfevrerie.png","_id":"PMOjO2CdedH1UTyi"} -{"name":"Serrurerie","permission":{"default":0,"Q4cUvqxCxMoTJXDL":3},"type":"competence","data":{"niveau":-11,"base":-11,"categorie":"specialisee","xp":0,"description":"

Compréhension des mécaniques et mécanismes, et plus particulièrement des serrures. Comprendre un mécanisme, le faire fonctionner, le réparer, le désarmer, le crocheter.

\n

 

","defaut_carac":"dexterite"},"flags":{},"img":"systems/foundryvtt-reve-de-dragon/icons/competence_serrurerie.png","_id":"PMnsXDyeB8w8ZG2k"} -{"name":"Survie en Forêt","permission":{"default":0,"Q4cUvqxCxMoTJXDL":3},"type":"competence","data":{"niveau":-8,"base":-8,"categorie":"particuliere","xp":0,"description":"

Par exemple pister un gibier en forêt demande l’usage de Survie en forêt, trouver une grotte pour s’abriter en montagne demande Survie en montagne. Survie en extérieur tient lieu de survie spécifique pour les plaines et collines non boisées.

\n

 

","defaut_carac":"intellect"},"flags":{},"img":"systems/foundryvtt-reve-de-dragon/icons/competence_survie_foret.png","_id":"PbvubzCxnOSnWLpG"} -{"name":"Botanique","permission":{"default":0,"Q4cUvqxCxMoTJXDL":3},"type":"competence","data":{"niveau":-11,"base":-11,"categorie":"connaissance","xp":0,"description":"

Identification des espèces végétales et de leurs propriétés. Permet de savoir si une plante connue pousse dans un milieu donné. Recherche de cette plante.

\n

 

","defaut_carac":"vue"},"flags":{},"img":"systems/foundryvtt-reve-de-dragon/icons/competence_botanique.png","_id":"PmwXYvmutlyQEonB"} -{"name":"Bouclier","permission":{"default":0,"Q4cUvqxCxMoTJXDL":3},"type":"competence","data":{"niveau":-6,"base":-6,"categorie":"melee","xp":0,"description":"

Utilisation de toutes les sortes de bouclierpour parer.

\n

 

","defaut_carac":"melee"},"flags":{},"img":"systems/foundryvtt-reve-de-dragon/icons/competence_bouclier.png","_id":"SJE3ghtswQwP1dIy"} -{"name":"Alchimie","permission":{"default":0,"Q4cUvqxCxMoTJXDL":3},"type":"competence","data":{"niveau":-11,"base":-11,"categorie":"connaissance","xp":0,"description":"

Connaissance des recettes et préparations alchimiques. Identification, élaboration, des solutions diverses, breuvages, poudres, onguents, crèmes, etc. (voir Principes d’alchimie, p357).

\n

 

","defaut_carac":"intellect"},"flags":{},"img":"systems/foundryvtt-reve-de-dragon/icons/competence_alchimie.png","_id":"TAKRb9CdMUhs9dd4"} -{"name":"Vigilance","permission":{"default":0,"Q4cUvqxCxMoTJXDL":3},"type":"competence","data":{"niveau":-4,"base":-4,"categorie":"generale","xp":0,"description":"

Le talent d’être toujours sur ses gardes, prêt à déceler la moindre anomalie, de

\n

bruit, d’odeur, de mouvement, etc. Permet de ne pas être surpris en combat, par

\n

exemple. Indispensable pour monter sérieusement la garde.

\n

 

","defaut_carac":"volonte"},"flags":{},"img":"systems/foundryvtt-reve-de-dragon/icons/competence_vigilance.png","_id":"VyAJK54OPjiRt8oH"} -{"name":"Médecine","permission":{"default":0,"Q4cUvqxCxMoTJXDL":3},"type":"competence","data":{"niveau":-11,"base":-11,"categorie":"connaissance","xp":0,"description":"

Diagnostic et soin des maladies. Connaissance des remèdes.

\n

 

","defaut_carac":"intellect"},"flags":{},"img":"systems/foundryvtt-reve-de-dragon/icons/competence_medecine.png","_id":"XK2TlYnhR8FlDaEi"} -{"name":"Maroquinerie","permission":{"default":0,"Q4cUvqxCxMoTJXDL":3},"type":"competence","data":{"niveau":-11,"base":-11,"categorie":"specialisee","xp":0,"description":"

Travail du cuir et de la peau. Dépecer correctement un animal en vue de conserver la peau, préparation au tannage, tannage. Évaluer la qualité, la solidité, d’un travail de cuir.

\n

 

","defaut_carac":"dexterite"},"flags":{},"img":"systems/foundryvtt-reve-de-dragon/icons/competence_maroquinerie.png","_id":"XYMQBxFKSs2nPW0J"} -{"name":"Survie en Marais","permission":{"default":0,"Q4cUvqxCxMoTJXDL":3},"type":"competence","data":{"niveau":-8,"base":-8,"categorie":"particuliere","xp":0,"description":"

Par exemple pister un gibier en forêt demande l’usage de Survie en forêt, trouver une grotte pour s’abriter en montagne demande Survie en montagne. Survie en extérieur tient lieu de survie spécifique pour les plaines et collines non boisées.

\n

 

","defaut_carac":"intellect"},"flags":{},"img":"systems/foundryvtt-reve-de-dragon/icons/competence_survie_marais.png","_id":"azn3Sm7XYKP78huL"} -{"name":"Voie d'Hypnos","permission":{"default":0,"Q4cUvqxCxMoTJXDL":3},"type":"competence","data":{"niveau":-11,"base":-11,"categorie":"draconic","xp":0,"description":"

Magie d’illusion, suggestion, invocation.

\n

 

","defaut_carac":"reve"},"flags":{},"img":"systems/foundryvtt-reve-de-dragon/icons/competence_hypnos.png","_id":"bt2cR4aE6lIOeg4F"} -{"name":"Zoologie","permission":{"default":0,"Q4cUvqxCxMoTJXDL":3},"type":"competence","data":{"niveau":-11,"base":-11,"categorie":"connaissance","xp":0,"description":"

Connaissance des espèces animales, de leurs mœurs, leur des habitat.

","defaut_carac":"intellect"},"flags":{},"img":"systems/foundryvtt-reve-de-dragon/icons/competence_zoologie.png","_id":"c5wursWW03ckpyqn"} -{"name":"Masse à 1 main","permission":{"default":0,"Q4cUvqxCxMoTJXDL":3},"type":"competence","data":{"niveau":-6,"base":-6,"categorie":"melee","xp":0,"description":"

Ces compétences permettent l’utilisation des masses, gourdins, bâtons, pour attaquer, voire parer.

\n

 

","defaut_carac":"melee"},"flags":{},"img":"systems/foundryvtt-reve-de-dragon/icons/competence_masse_1_main.png","_id":"cMHm3gQr9rUp4iPK"} -{"name":"Voie de Thanatos","permission":{"default":0,"Q4cUvqxCxMoTJXDL":3},"type":"competence","data":{"niveau":-11,"base":-11,"categorie":"draconic","xp":0,"description":"

Magie noire des forces du cauchemar.

\n

 

","defaut_carac":"reve"},"flags":{},"img":"systems/foundryvtt-reve-de-dragon/icons/competence_thanatos.png","_id":"dPlTQzvU3CEg5qKc"} -{"name":"Pickpocket","permission":{"default":0,"Q4cUvqxCxMoTJXDL":3},"type":"competence","data":{"niveau":-8,"base":-8,"categorie":"particuliere","xp":0,"description":"

Art extrêmement dangereux du vol à la tire.

","defaut_carac":"dexterite"},"flags":{},"img":"systems/foundryvtt-reve-de-dragon/icons/competence_pickpocket.png","_id":"dT5cvI7q1HcrLaT1"} -{"name":"Maçonnerie","permission":{"default":0,"Q4cUvqxCxMoTJXDL":3},"type":"competence","data":{"niveau":-8,"base":-8,"categorie":"particuliere","xp":0,"description":"

C’est au sens large le travail de la pierre. Évaluer la qualité, la solidité d’une struc-

\n

ture maçonnée.

\n

 

","defaut_carac":"vue"},"flags":{},"img":"systems/foundryvtt-reve-de-dragon/icons/competence_maconnerie.png","_id":"dwGVDTUJYP9FcmWM"} -{"name":"Epée à 1 main","permission":{"default":0,"Q4cUvqxCxMoTJXDL":3},"type":"competence","data":{"niveau":-6,"base":-6,"categorie":"melee","xp":0,"description":"

Groupées en une seule jusqu’au niveau zéro, ces compétences sont les principes de base du combat de mêlée. Corps à corps permet de se battre sans armes ; Es-quive permet d’esquiver toutes les sortes de coup ; Dague de mêlée permet l’utilisation de la dague au contact.

\n

 

","defaut_carac":"melee"},"flags":{},"img":"systems/foundryvtt-reve-de-dragon/icons/competence_epee_1_main.png","_id":"fPhPcCP3sbS6mfbS"} -{"name":"Escalade","permission":{"default":0,"Q4cUvqxCxMoTJXDL":3},"type":"competence","data":{"niveau":-4,"base":-4,"categorie":"generale","xp":0,"description":"

Escalader des obstacles, grimper à la corde, à un arbre, le long d’une paroi.

\n

 

","defaut_carac":"force"},"flags":{},"img":"systems/foundryvtt-reve-de-dragon/icons/competence_escalade.png","_id":"gECPPcn6j3B3sWTS"} -{"name":"Légendes","permission":{"default":0,"Q4cUvqxCxMoTJXDL":3},"type":"competence","data":{"niveau":-11,"base":-11,"categorie":"connaissance","xp":0,"description":"

Connaissance des légendes et des faits du passé. Légendes tient lieu d’histoire.

\n

 

","defaut_carac":"intellect"},"flags":{},"img":"systems/foundryvtt-reve-de-dragon/icons/competence_legendes.png","_id":"i3wMVkXObzlDVZTG"} -{"name":"Fronde","permission":{"default":0,"Q4cUvqxCxMoTJXDL":3},"type":"competence","data":{"niveau":-8,"base":-8,"categorie":"tir","xp":0,"description":"

Utilisation de la fronde giratoire.

\n

 

","defaut_carac":"tir"},"flags":{},"img":"systems/foundryvtt-reve-de-dragon/icons/competence_fronde.png","_id":"iNXKIfaETtgSGA0S"} -{"name":"Arbalète","permission":{"default":0,"Q4cUvqxCxMoTJXDL":3},"type":"competence","data":{"niveau":-8,"base":-8,"categorie":"tir","xp":0,"description":"

Utilisation de tous les types d’arbalètes.

","defaut_carac":"tir"},"flags":{},"img":"systems/foundryvtt-reve-de-dragon/icons/competence_arbalete.png","_id":"lt9VC7PkX4Faiduq"} -{"name":"Javelot","permission":{"default":0,"Q4cUvqxCxMoTJXDL":3},"type":"competence","data":{"niveau":-8,"base":-8,"categorie":"lancer","xp":0,"description":"

Utilisation de la lance courte ou de la javeline en lancer.

\n

 

","defaut_carac":"lancer"},"flags":{},"img":"systems/foundryvtt-reve-de-dragon/icons/competence_javelot.png","_id":"neuzZG2C5C0IJ1yk"} -{"name":"Voie d'Oniros","permission":{"default":0,"Q4cUvqxCxMoTJXDL":3},"type":"competence","data":{"niveau":-11,"base":-11,"categorie":"draconic","xp":0,"description":"

Magie s’appliquant au monde inanimé.

\n

 

","defaut_carac":"reve"},"flags":{},"img":"systems/foundryvtt-reve-de-dragon/icons/competence_oniros.png","_id":"nnR2UHelUaF8dxYn"} -{"name":"Esquive","permission":{"default":0,"Q4cUvqxCxMoTJXDL":3},"type":"competence","data":{"niveau":-6,"base":-6,"categorie":"melee","xp":0,"description":"

Groupées en une seule jusqu’au niveau zéro, ces compétences sont les principes de base du combat de mêlée. Corps à corps permet de se battre sans armes ; Es-quive permet d’esquiver toutes les sortes de coup ; Dague de mêlée permet l’utilisation de la dague au contact.

\n

 

","defaut_carac":"derobee"},"flags":{},"img":"systems/foundryvtt-reve-de-dragon/icons/competence_esquive.png","_id":"oFje22fZF1FaCQhN"} -{"name":"Survie en Cité","permission":{"default":0,"Q4cUvqxCxMoTJXDL":3},"type":"competence","data":{"niveau":-8,"base":-8,"categorie":"particuliere","xp":0,"description":"

Se sentir à son aise dans un milieu urbain, dans une foule. Savoir s’orienter intuitivement dans le dédale d’une cité inconnue, et en déceler les dangers : coupeurs de bourse, escrocs, tout autant que patrouilles de gardes. Savoir à qui s’adresser.

\n

 

","defaut_carac":"derobee"},"flags":{},"img":"systems/foundryvtt-reve-de-dragon/icons/competence_survie_cite.png","_id":"oHnSnCw1RAW5t15S"} -{"name":"Jonglerie","permission":{"default":0,"Q4cUvqxCxMoTJXDL":3},"type":"competence","data":{"niveau":-11,"base":-11,"categorie":"specialisee","xp":0,"description":"

Balles, quilles, couteaux, torches enflammées : l’art traditionnel du jongleur.

\n

 

","defaut_carac":"dexterite"},"flags":{},"img":"systems/foundryvtt-reve-de-dragon/icons/competence_jonglerie.png","_id":"owCW3nZDvlJy1kCT"} -{"name":"Natation","permission":{"default":0,"Q4cUvqxCxMoTJXDL":3},"type":"competence","data":{"niveau":-11,"base":-11,"categorie":"specialisee","xp":0,"description":"

Nager, plonger.

\n

 

","defaut_carac":"force"},"flags":{},"img":"systems/foundryvtt-reve-de-dragon/icons/competence_natation.png","_id":"qBUtHhyjvrg1c34I"} -{"name":"Ecriture","permission":{"default":0,"Q4cUvqxCxMoTJXDL":3},"type":"competence","data":{"niveau":-11,"base":-11,"categorie":"connaissance","xp":0,"description":"

Lire et écrire. Savoir composer un texte, un poème. Connaissance générale des langues anciennes.

\n

 

","defaut_carac":"intellect"},"flags":{},"img":"systems/foundryvtt-reve-de-dragon/icons/competence_ecriture.png","_id":"qmIpUeedvjC8nGF1"} -{"name":"Fléau","permission":{"default":0,"Q4cUvqxCxMoTJXDL":3},"type":"competence","data":{"niveau":-6,"base":-6,"categorie":"melee","xp":0,"description":"

Utilisation de tous les types de fléaux, pour attaquer.

\n

 

","defaut_carac":"melee"},"flags":{},"img":"systems/foundryvtt-reve-de-dragon/icons/competence_fleau.png","_id":"r79VAGS1fRUm4oAd"} -{"name":"Armes d'hast","permission":{"default":0,"Q4cUvqxCxMoTJXDL":3},"type":"competence","data":{"niveau":-6,"base":-6,"categorie":"melee","xp":0,"description":"

Utilisation de toutes les piques, vouges, hallebardes, toujours maniées à deux mains, pour attaquer.

\n

 

","defaut_carac":"melee"},"flags":{},"img":"systems/foundryvtt-reve-de-dragon/icons/competence_armes_hast.png","_id":"rwsHwIDszSIPBkrO"} -{"name":"Arc","permission":{"default":0,"Q4cUvqxCxMoTJXDL":3},"type":"competence","data":{"niveau":-8,"base":-8,"categorie":"tir","xp":0,"description":"

Utilisation de tous les types d’arcs.

\n

 

","defaut_carac":"tir"},"flags":{},"img":"systems/foundryvtt-reve-de-dragon/icons/competence_arc.png","_id":"tVbFkKSN4n0RSrFU"} -{"name":"Dague de jet","permission":{"default":0,"Q4cUvqxCxMoTJXDL":3},"type":"competence","data":{"niveau":-8,"base":-8,"categorie":"lancer","xp":0,"description":"

Utilisation de la dague en lancer.

","defaut_carac":"lancer"},"flags":{},"img":"systems/foundryvtt-reve-de-dragon/icons/competence_dague_jet.png","_id":"thJy5AN0qePmfpJu"} -{"name":"Bricolage","permission":{"default":0,"Q4cUvqxCxMoTJXDL":3},"type":"competence","data":{"niveau":-4,"base":-4,"categorie":"generale","xp":0,"description":"

L’art d’être inventif avec ses doigts, pour de petits aménagements ou réparations. Ne peut en aucun cas se substituer aux compétences d’artisanat, Charpenterie, Maçonnerie, etc. Bricolage est utilisé quand l’usage de ces compétences n’est pas pertinent.

\n

 

","defaut_carac":"dexterite"},"flags":{},"img":"systems/foundryvtt-reve-de-dragon/icons/competence_bricolage.png","_id":"tvIGIPaEJZBaySil"} -{"name":"Voie de Narcos","permission":{"default":0,"Q4cUvqxCxMoTJXDL":3},"type":"competence","data":{"niveau":-11,"base":-11,"categorie":"draconic","xp":0,"description":"

Magie d’enchantement.

","defaut_carac":"reve"},"flags":{},"img":"systems/foundryvtt-reve-de-dragon/icons/competence_narcos.png","_id":"u1Peok1EYkBcVsmN"} -{"name":"Survie en Glaces","permission":{"default":0,"Q4cUvqxCxMoTJXDL":3},"type":"competence","data":{"niveau":-8,"base":-8,"categorie":"particuliere","xp":0,"description":"

Par exemple pister un gibier en forêt demande l’usage de Survie en forêt, trouver une grotte pour s’abriter en montagne demande Survie en montagne. Survie en extérieur tient lieu de survie spécifique pour les plaines et collines non boisées.

\n

 

","defaut_carac":"intellect"},"flags":{},"img":"systems/foundryvtt-reve-de-dragon/icons/competence_survie_glace.png","_id":"uGPqmorAYxv1jboC"} -{"name":"Survie en Extérieur","permission":{"default":0,"Q4cUvqxCxMoTJXDL":3},"type":"competence","data":{"niveau":-8,"base":-8,"categorie":"particuliere","xp":0,"description":"

Se sentir à son aise dans la nature, hors de toute civilisation, s’orienter. Construireun abri, allumer un feu en mauvaisesconditions, trouver de l’eau, pêcher, savoirExemplaire pour dépecer un gibier et l’accommoder sur un feu de braise. Quand un milieu particulier devient déterminant, utiliser à la place une des 6 survies spécifiques.

","defaut_carac":"intellect"},"flags":{},"img":"systems/foundryvtt-reve-de-dragon/icons/competence_survie_exterieur.png","_id":"ue5iDSm2f4efQDWO"} -{"name":"Survie en Désert","permission":{"default":0,"Q4cUvqxCxMoTJXDL":3},"type":"competence","data":{"niveau":-8,"base":-8,"categorie":"particuliere","xp":0,"description":"

Par exemple pister un gibier en forêt demande l’usage de Survie en forêt, trouver une grotte pour s’abriter en montagne demande Survie en montagne. Survie en extérieur tient lieu de survie spécifique pour les plaines et collines non boisées.

\n

 

","defaut_carac":"intellect"},"flags":{},"img":"systems/foundryvtt-reve-de-dragon/icons/competence_survie_desert.png","_id":"vDOAyWc2YnuhNnFF"} -{"name":"Fouet","permission":{"default":0,"Q4cUvqxCxMoTJXDL":3},"type":"competence","data":{"niveau":-8,"base":-8,"categorie":"lancer","xp":0,"description":"

Utilisation du fouet.

","defaut_carac":"lancer"},"flags":{},"img":"systems/foundryvtt-reve-de-dragon/icons/competence_fouet.png","_id":"vIQVQxUeiw36hztI"} -{"name":"Travestissement","permission":{"default":0,"Q4cUvqxCxMoTJXDL":3},"type":"competence","data":{"niveau":-8,"base":-8,"categorie":"particuliere","xp":0,"description":"

L’art de se déguiser, de se grimer, de se rendre méconnaissable.

\n

 

","defaut_carac":"apparence"},"flags":{},"img":"systems/foundryvtt-reve-de-dragon/icons/competence_travestissement.png","_id":"w9QubIHdWEUorges"} -{"name":"Hache à 1 main","permission":{"default":0,"Q4cUvqxCxMoTJXDL":3},"type":"competence","data":{"niveau":-6,"base":-6,"categorie":"melee","xp":0,"description":"

Ces deux compétences permettent l’utilisation des hachettes, cognées et haches de bataille, pour attaquer.

\n

 

\n

 

","defaut_carac":"melee"},"flags":{},"img":"systems/foundryvtt-reve-de-dragon/icons/competence_hache_a_1_main.png","_id":"wEfuLImdNX4BSXVi"} -{"name":"Musique","permission":{"default":0,"Q4cUvqxCxMoTJXDL":3},"type":"competence","data":{"niveau":-8,"base":-8,"categorie":"particuliere","xp":0,"description":"

Solfège et règles musicales, jeu d’un instrument. Musique donne droit à la connaissance d’un instrument de musique, un seul, à spécifier.

\n

 

","defaut_carac":"ouie"},"flags":{},"img":"systems/foundryvtt-reve-de-dragon/icons/competence_musique.png","_id":"wefdYe0kvWKioPmk"} -{"name":"Commerce","permission":{"default":0,"Q4cUvqxCxMoTJXDL":3},"type":"competence","data":{"niveau":-8,"base":-8,"categorie":"particuliere","xp":0,"description":"

Évaluer le prix d’une marchandise, la valeur d’une monnaie locale. Savoir

\n

jusqu’où l’on peut marchander (lequel marchandage doit être fait en jeu de rôle

\n

par le joueur lui-même).

\n

 

","defaut_carac":"intellect"},"flags":{},"img":"systems/foundryvtt-reve-de-dragon/icons/competence_defaut.png","_id":"zO7Av9hJ2vdJiPgI"} -{"name":"Lance","permission":{"default":0,"Q4cUvqxCxMoTJXDL":3},"type":"competence","data":{"niveau":-6,"base":-6,"categorie":"melee","xp":0,"description":"

Utilisation en mêlée de la lance courte et de la javeline, pour attaquer, voire parer. La lance n’est toujours qu’à une main.

\n

 

","defaut_carac":"melee"},"flags":{},"img":"systems/foundryvtt-reve-de-dragon/icons/competence_lance.png","_id":"zPTXua2Kq6TeBTTZ"} -{"name":"Acrobatie","permission":{"default":0,"Q4cUvqxCxMoTJXDL":3},"type":"competence","data":{"niveau":-11,"base":-11,"categorie":"specialisee","xp":0,"description":"

Pirouettes, sauts périlleux, art du funambule, et d’une manière générale, toutes les performances d’agilité spécialisées.

\n

 

","defaut_carac":"agilite"},"flags":{},"img":"systems/foundryvtt-reve-de-dragon/icons/competence_acrobatie.png","_id":"zyNYa3hYtrOcF2jA"} diff --git a/packs/queues-de-dragon.db b/packs/queues-de-dragon.db index ad0629f7..d89ef29b 100644 --- a/packs/queues-de-dragon.db +++ b/packs/queues-de-dragon.db @@ -1,16 +1,16 @@ -{"_id":"0ninnfcmwzrj7k1n","name":"Mauvaise rencontre en perspective","permission":{"default":0,"jOzRscDxoXZWpGS6":3},"folder":"","flags":{},"content":"

Tirer la prochaine rencontre dans les TMR sur la @RollTable[52ymSWISvXPUhRyQ]{Table spéciale de rencontres}

\n

@JournalEntry[pyyjQGx3Hz0R5a0Z]{Passeur fou}

\n

@JournalEntry[S6XCr67fUuUpLtRm]{Tourbillon rouge}

"} -{"name":"Idée fixe","permission":{"default":0,"jOzRscDxoXZWpGS6":3},"flags":{},"content":"

Tirer 1d20 sur la table des @RollTable[FKXqN9FOJQHQXZ2L]{Idées fixes}. Les idées fixes prennent e!et immédiatement et durent jusqu’à l’extrême $n 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 $n 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.

","_id":"3SlglNScMS7nKQlx"} -{"name":"Pélerinage","permission":{"default":0,"jOzRscDxoXZWpGS6":3},"flags":{},"content":"

Avant de pouvoir à nouveau faire usage du haut-rêve, y compris déclencher volontairement un sort mis en réserve, le haut-rêvant doit se rendre dans une certaine case des TMR déterminée aléatoirement. Un Passeur peut l’y téléporter, mais un Messager ne peut s’y rendre à sa place. Dès que la case est atteinte, le pèlerinage est accompli.

","_id":"5CeHIVMp1q4UInfA"} -{"name":"Souvenir obsessionnel de l'archétype","permission":{"default":0,"jOzRscDxoXZWpGS6":3},"flags":{},"content":"

Les prochains points d’expérience dus au stress doivent être mis dans une compétence déterminée aléatoirement (voir table page suivante).

","_id":"8luj4WAhdV94mr6l"} -{"name":"Coup de barre","permission":{"default":0,"jOzRscDxoXZWpGS6":3},"flags":{},"content":"

Prise immédiate de 3d6 points de fatigue.

","_id":"9zh3JAHw0AgS6B4v"} -{"name":"Dépouillement","permission":{"default":0,"jOzRscDxoXZWpGS6":3},"flags":{},"content":"

Faire don de toute la monnaie actuellement possédée à la première personne inconnue rencontrée. En attendant, se garder d’aucune dépense. Refoulable au prix de 2 points de refoulement.

","_id":"FYzlFFtKbrrYwR49"} -{"name":"Désir lancinant","permission":{"default":0,"jOzRscDxoXZWpGS6":3},"flags":{},"content":"

Tirer 1d20 sur la table des@RollTable[wysZQFqioBqPijZM]{Désirs lancinants}. 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.

","_id":"I97dLVQibx8t5C0z"} -{"name":"Montée laborieuse","permission":{"default":0,"jOzRscDxoXZWpGS6":3},"flags":{},"content":"

Pendant un jour, monter en TMR coûte 2 points de rêve au lieu d’un, et 3 points en déplacement accéléré.

","_id":"K38bDmtyuVycJOqX"} -{"name":"Urgence draconique","permission":{"default":0,"jOzRscDxoXZWpGS6":3},"flags":{},"content":"

Le haut-rêvant est pris du besoin irrésistible de déclencher immédiatement son plus proche sort en réserve. À équidistance, prendre dans le sens des aiguilles d’une montre en commençant par le haut. En cas de rencontre dans les TMR, se dérober équivaut à refouler la queue de Dragon. Si aucun sort n’est en réserve, ou si il y a impossibilité de pratiquer la magie à cause d’une autre queue ou d’un sou%e, tirer à la place une idée fixe. Refoulable au prix de 2 points de refoulement.

","_id":"YCsytmWKopcm7HIv"} -{"name":"Amnésie sélective","permission":{"default":0,"jOzRscDxoXZWpGS6":3},"flags":{},"content":"

Pendant un jour, perte totale d’une compétence, à l’exclusion du Draconic. Déterminer aléatoirement la compétence visée qui, pratiquement, retourne au niveau de base. Si elle est déjà au niveau de base, en choisir une autre.

","_id":"a2J6ZIQv8GtWLzck"} -{"name":"Conquête","permission":{"default":0,"jOzRscDxoXZWpGS6":3},"flags":{},"content":"

Avant de pouvoir à nouveau faire usage du haut-rêve, y compris déclencher volontairement un sort mis en réserve, le haut-rêvant doit se rendre dans une certaine case des TMR déterminée aléatoirement et la maîtriser, difficulté -7. Ce peut être n’importe quelle case, sauf une case humide. En cas d’échec, la concentration est rompue ; il n’y a pas de souffle de Dragon en cas d’échec total.

","_id":"csgDcwgvW9KF9o17"} -{"_id":"jBFgNBBewS49hVJU","name":"Inertie draconique","permission":{"default":0,"jOzRscDxoXZWpGS6":3},"folder":"","flags":{},"content":"

Pendant un jour, la fatigue en TMR est doublée. Chaque case ou round coûte 2 points au lieu d’un.

"} -{"name":"Réinsertion aléatoire","permission":{"default":0,"jOzRscDxoXZWpGS6":3},"flags":{},"content":"

Comme après une sortie de la carte, le gardien des rêves réintroduit secrètement le demi-rêve du haut-rêvant dans les TMR.

","_id":"m0kzaruhTBXbXqEH"} -{"name":"Insomnie","permission":{"default":0,"jOzRscDxoXZWpGS6":3},"flags":{},"content":"

Impossibilité totale de dormir, et donc de rêver, pendant un jour.

","_id":"n9LQh69JSlPin0CS"} -{"name":"Masque de Narcos","permission":{"default":0,"jOzRscDxoXZWpGS6":3},"flags":{},"content":"

Pendant 1d7 jours à compter du lendemain, la caractéristique APPARENCE baisse de 1d6 points, de même que la Beauté.

","_id":"ovEIUV4ZRBeQlhW7"} -{"name":"Coup de foudre fatal","permission":{"default":0,"jOzRscDxoXZWpGS6":3},"flags":{},"content":"

On devient immédiatement amoureux fou de la première personne inconnue de sexe opposé et de même espèce rencontrée. Tant que satisfaction n’est pas obtenue, traiter comme un désir lancinant. Refoulable au prix de 2 points de refoulement.

","_id":"vaLh2NBnVo22rnpc"} +{"name":"Mauvaise rencontre en perspective","permission":{"default":0,"jOzRscDxoXZWpGS6":3},"type":"queue","data":{"description":"

Tirer la prochaine rencontre dans les TMR sur la @RollTable[52ymSWISvXPUhRyQ]{Table spéciale de rencontres}

","refoulement":1},"flags":{},"img":"icons/svg/mystery-man.svg","_id":"0jrEZ62Q2Jz4kBGf"} +{"name":"Souvenir obsessionnel de l'archétype","permission":{"default":0,"jOzRscDxoXZWpGS6":3},"type":"queue","data":{"description":"

Les prochains points d’expérience dus au stress doivent être mis dans une compétence déterminée aléatoirement. TABLE ALÉATOIRE À CRÉER

","refoulement":1},"flags":{},"img":"icons/svg/mystery-man.svg","_id":"1gGVlZM0UyifL6RK"} +{"name":"Coup de foudre fatal","permission":{"default":0,"jOzRscDxoXZWpGS6":3},"type":"queue","data":{"description":"

On devient immédiatement amoureux fou de la première personne inconnue de sexe opposé et de même espèce rencontrée. Tant que satisfaction n’est pas obtenue, traiter comme un désir lancinant. 

","refoulement":2},"flags":{},"img":"icons/svg/mystery-man.svg","_id":"32LbwxxokC9Tn370"} +{"name":"Montée laborieuse","permission":{"default":0,"jOzRscDxoXZWpGS6":3},"type":"queue","data":{"description":"

Pendant un jour, monter en TMR coûte 2 points de rêve au lieu d’un, et 3 points en déplacement accéléré.

","refoulement":1},"flags":{},"img":"icons/svg/mystery-man.svg","_id":"5knw1NcnBsLIjHpr"} +{"name":"Inertie draconique","permission":{"default":0,"jOzRscDxoXZWpGS6":3},"type":"queue","data":{"description":"

Pendant un jour, la fatigue en TMR est doublée. Chaque case ou round coûte 2 points au lieu d’un.

","refoulement":1},"flags":{},"img":"icons/svg/mystery-man.svg","_id":"EUrxQGd7FuW628NS"} +{"name":"Idée fixe","permission":{"default":0,"jOzRscDxoXZWpGS6":3},"type":"queue","data":{"description":"

Tirer 1d20 sur la table des @RollTable[FKXqN9FOJQHQXZ2L]{Idées fixes}. Les idées fixes prennent e!et immédiatement et durent jusqu’à l’extrême $n 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 $n néanmoins. Si elles entrent en contradiction avec une autre queue de Dragon, retirer.

","refoulement":1},"flags":{},"img":"icons/svg/mystery-man.svg","_id":"J3XtcVuQo846U1OT"} +{"name":"Désir lancinant","permission":{"default":0,"jOzRscDxoXZWpGS6":3},"type":"queue","data":{"description":"

Tirer 1d20 sur la table des@RollTable[wysZQFqioBqPijZM]{Désirs lancinants}. 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.

","refoulement":1},"flags":{},"img":"icons/svg/mystery-man.svg","_id":"Ltgqj86rYQr8D8LW"} +{"name":"Pélerinage","permission":{"default":0,"jOzRscDxoXZWpGS6":3},"type":"queue","data":{"description":"

Avant de pouvoir à nouveau faire usage du haut-rêve, y compris déclencher volontairement un sort mis en réserve, le haut-rêvant doit se rendre dans une certaine case des TMR déterminée aléatoirement. Un Passeur peut l’y téléporter, mais un Messager ne peut s’y rendre à sa place. Dès que la case est atteinte, le pèlerinage est accompli.

","refoulement":1},"flags":{},"img":"icons/svg/mystery-man.svg","_id":"NF4E7jTty1QGjaNj"} +{"name":"Urgence draconique","permission":{"default":0,"jOzRscDxoXZWpGS6":3},"type":"queue","data":{"description":"

Le haut-rêvant est pris du besoin irrésistible de déclencher immédiatement son plus proche sort en réserve. À équidistance, prendre dans le sens des aiguilles d’une montre en commençant par le haut. En cas de rencontre dans les TMR, se dérober équivaut à refouler la queue de Dragon. Si aucun sort n’est en réserve, ou si il y a impossibilité de pratiquer la magie à cause d’une autre queue ou d’un souffle, tirer à la place une idée fixe.

","refoulement":2},"flags":{},"img":"icons/svg/mystery-man.svg","_id":"OSV2b7bVWv2SCfUY"} +{"name":"Coup de barre","permission":{"default":0,"jOzRscDxoXZWpGS6":3},"type":"queue","data":{"description":"

Prise immédiate de 3d6 points de fatigue.

","refoulement":1},"flags":{},"img":"icons/svg/mystery-man.svg","_id":"Qgj5eSMpQ0IDHwZX"} +{"name":"Masque de Narcos","permission":{"default":0,"jOzRscDxoXZWpGS6":3},"type":"queue","data":{"description":"

Pendant 1d7 jours à compter du lendemain, la caractéristique APPARENCE baisse de 1d6 points, de même que la Beauté.

","refoulement":1},"flags":{},"img":"icons/svg/mystery-man.svg","_id":"TmEeikWOQt6NZGVY"} +{"name":"Réinsertion aléatoire","permission":{"default":0,"jOzRscDxoXZWpGS6":3},"type":"queue","data":{"description":"

Comme après une sortie de la carte, le gardien des rêves réintroduit secrètement le demi-rêve du haut-rêvant dans les TMR.

","refoulement":1},"flags":{},"img":"icons/svg/mystery-man.svg","_id":"iHuLw0I1Gc5mIucG"} +{"_id":"iJw6j7kuP1eAHIck","name":"Amnésie sélective","permission":{"default":0,"jOzRscDxoXZWpGS6":3},"type":"queue","data":{"description":"

Pendant un jour, perte totale d’une compétence, à l’exclusion du Draconic. Déterminer aléatoirement la compétence visée qui, pratiquement, retourne au niveau de base. Si elle est déjà au niveau de base, en choisir une autre.

","refoulement":1},"flags":{},"img":"icons/svg/mystery-man.svg"} +{"name":"Insomnie","permission":{"default":0,"jOzRscDxoXZWpGS6":3},"type":"queue","data":{"description":"

Impossibilité totale de dormir, et donc de rêver, pendant un jour.

","refoulement":1},"flags":{},"img":"icons/svg/mystery-man.svg","_id":"kHWwwxA0alcpDYpf"} +{"name":"Conquête","permission":{"default":0,"jOzRscDxoXZWpGS6":3},"type":"queue","data":{"description":"

Avant de pouvoir à nouveau faire usage du haut-rêve, y compris déclencher volontairement un sort mis en réserve, le haut-rêvant doit se rendre dans une certaine case des TMR déterminée aléatoirement et la maîtriser, difficulté -7. Ce peut être n’importe quelle case, sauf une case humide. En cas d’échec, la concentration est rompue ; il n’y a pas de souffle de Dragon en cas d’échec total.

","refoulement":1},"flags":{},"img":"icons/svg/mystery-man.svg","_id":"lBkO8FvFqXoKNhvk"} +{"name":"Dépouillement","permission":{"default":0,"jOzRscDxoXZWpGS6":3},"type":"queue","data":{"description":"

Faire don de toute la monnaie actuellement possédée à la première personne inconnue rencontrée. En attendant, se garder d’aucune dépense.

","refoulement":2},"flags":{},"img":"icons/svg/mystery-man.svg","_id":"vft88ioHpGxMzdML"} diff --git a/templates/dialog-tmr.html b/templates/dialog-tmr.html index 6bee89c6..4cda6def 100644 --- a/templates/dialog-tmr.html +++ b/templates/dialog-tmr.html @@ -28,7 +28,9 @@ Draconic : @@ -38,7 +40,7 @@
Sorts : -
Description :