Add new Compendium
This commit is contained in:
parent
a14f05f762
commit
e17e01f7e8
@ -273,6 +273,40 @@ export class RdDActor extends Actor {
|
|||||||
return ret;
|
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 ) {
|
async updatePointsDeReve( value ) {
|
||||||
let reve = duplicate(this.data.data.reve.reve);
|
let reve = duplicate(this.data.data.reve.reve);
|
||||||
@ -423,12 +457,23 @@ export class RdDActor extends Actor {
|
|||||||
return sortList;
|
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 )
|
async rollSort( sortID )
|
||||||
{
|
{
|
||||||
console.log("Loading TMR template!!!");
|
console.log("Loading TMR template!!!");
|
||||||
let data = {
|
let data = {
|
||||||
fatigueHTML:"<table class='table-fatigue'>" + RdDUtility.makeHTMLfatigueMatrix( this.data.data.sante.fatigue.value, this.data.data.sante.endurance.max ).html() + "</table>",
|
fatigueHTML:"<table class='table-fatigue'>" + RdDUtility.makeHTMLfatigueMatrix( this.data.data.sante.fatigue.value, this.data.data.sante.endurance.max ).html() + "</table>",
|
||||||
|
draconic: this.getDraconicList(),
|
||||||
sort: this.getSortList(),
|
sort: this.getSortList(),
|
||||||
caracReve: this.data.data.carac.reve.value
|
caracReve: this.data.data.carac.reve.value
|
||||||
}
|
}
|
||||||
|
@ -12,6 +12,7 @@ import { RdDActor } from "./actor.js";
|
|||||||
import { RdDItemSheet } from "./item-sheet.js";
|
import { RdDItemSheet } from "./item-sheet.js";
|
||||||
import { RdDActorSheet } from "./actor-sheet.js";
|
import { RdDActorSheet } from "./actor-sheet.js";
|
||||||
import { RdDUtility } from "./rdd-utility.js";
|
import { RdDUtility } from "./rdd-utility.js";
|
||||||
|
import { TMRUtility } from "./tmr-utility.js";
|
||||||
|
|
||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
/* Foundry VTT Initialization */
|
/* Foundry VTT Initialization */
|
||||||
@ -50,7 +51,32 @@ Hooks.once("init", async function() {
|
|||||||
Actors.registerSheet("foundryvtt-reve-de-dragon", RdDActorSheet, { makeDefault: true });
|
Actors.registerSheet("foundryvtt-reve-de-dragon", RdDActorSheet, { makeDefault: true });
|
||||||
Items.unregisterSheet("core", ItemSheet);
|
Items.unregisterSheet("core", ItemSheet);
|
||||||
Items.registerSheet("foundryvtt-reve-de-dragon", RdDItemSheet, {makeDefault: true});
|
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;
|
||||||
|
} );
|
||||||
|
@ -37,20 +37,51 @@ export class RdDTMRDialog extends Dialog {
|
|||||||
this.cellw = 55;
|
this.cellw = 55;
|
||||||
this.actor = actor;
|
this.actor = actor;
|
||||||
this.sort = sort;
|
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 } );
|
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() {
|
async derober() {
|
||||||
await this.maximize();
|
await this.actor.addTMRRencontre( this.currentRencontre );
|
||||||
let rencontre = duplicate(this.actor.data.data.reve.rencontre);
|
|
||||||
rencontre.list.push( {coord: this.actor.data.data.reve.tmrpos.coord, rencontre: this.currentRencontre} );
|
|
||||||
console.log("-> derober", 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) {
|
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);
|
let result = await this.actor.ajouterRefoulement(1);
|
||||||
|
this.updatePreviousRencontres();
|
||||||
if (result == "souffle") {
|
if (result == "souffle") {
|
||||||
let souffle = TMRUtility.getSouffle();
|
let souffle = TMRUtility.getSouffle();
|
||||||
}
|
}
|
||||||
@ -60,20 +91,24 @@ export class RdDTMRDialog extends Dialog {
|
|||||||
}
|
}
|
||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
async matriser(data) {
|
async matriser(data) {
|
||||||
|
this.actor.deleteTMRRencontreAtPosition( ); // Remove the stored rencontre if necessary
|
||||||
|
this.updatePreviousRencontres();
|
||||||
await this.maximize();
|
await this.maximize();
|
||||||
|
|
||||||
let draconic = this.actor.getBestDraconic();
|
let draconic = this.actor.getBestDraconic();
|
||||||
let carac = this.actor.getCurrentReve();
|
let carac = this.actor.getCurrentReve();
|
||||||
let level = draconic.data.niveau - this.currentRencontre.force;
|
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 scoreDef = CONFIG.RDD.resolutionTable[carac][level+10];
|
||||||
let myroll = new Roll("d100");
|
let myroll = new Roll("d100");
|
||||||
myroll.roll();
|
myroll.roll();
|
||||||
if ( myroll.total > scoreDef.score ) {
|
if ( myroll.total > scoreDef.score ) {
|
||||||
TMRUtility.processRencontreEchec( this.actor, this.rencontre);
|
TMRUtility.processRencontreEchec( this.actor, this.rencontre);
|
||||||
|
ChatMessage.create( { title: "TMR", content: game.user.name + " a perdu sa rencontre.", user: game.user._id, whisper: ChatMessage.getWhisperRecipients("GM") } );
|
||||||
this.close();
|
this.close();
|
||||||
} else {
|
} else {
|
||||||
TMRUtility.processRencontreReussite( this.actor, this.rencontre);
|
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);
|
console.log("-> matriser", this.currentRencontre);
|
||||||
this.updateValuesDisplay();
|
this.updateValuesDisplay();
|
||||||
@ -83,8 +118,13 @@ export class RdDTMRDialog extends Dialog {
|
|||||||
async manageRencontre(coordTMR, cellDescr)
|
async manageRencontre(coordTMR, cellDescr)
|
||||||
{
|
{
|
||||||
// Roll until diffent than '8'
|
// Roll until diffent than '8'
|
||||||
this.currentRencontre = undefined;
|
|
||||||
let rencontre
|
let rencontre
|
||||||
|
this.currentRencontre = undefined;
|
||||||
|
for (let previousRencontre of this.rencontresExistantes ) {
|
||||||
|
if ( previousRencontre.coord == coordTMR)
|
||||||
|
rencontre = previousRencontre.rencontre;
|
||||||
|
}
|
||||||
|
if ( rencontre == undefined ) {
|
||||||
let val = 8;
|
let val = 8;
|
||||||
while (val == 8) {
|
while (val == 8) {
|
||||||
let myroll = new Roll("d7");
|
let myroll = new Roll("d7");
|
||||||
@ -92,17 +132,16 @@ export class RdDTMRDialog extends Dialog {
|
|||||||
val = myroll.total;
|
val = myroll.total;
|
||||||
if ( val == 7 ) {
|
if ( val == 7 ) {
|
||||||
rencontre = TMRUtility.rencontreTMRRoll(coordTMR, cellDescr);
|
rencontre = TMRUtility.rencontreTMRRoll(coordTMR, cellDescr);
|
||||||
|
rencontre.force = new Roll(rencontre.data.force).roll().total;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (rencontre) { // Manages it
|
if (rencontre) { // Manages it
|
||||||
let myroll = new Roll(rencontre.data.force);
|
this.currentRencontre = duplicate(rencontre);
|
||||||
myroll.roll();
|
|
||||||
rencontre.force = myroll.total;
|
|
||||||
this.currentRencontre = rencontre;
|
|
||||||
await this.minimize();
|
await this.minimize();
|
||||||
let diag = new Dialog( { title: "Rencontre en TMR!",
|
let diag = new Dialog( { title: "Rencontre en TMR!",
|
||||||
content: "Vous recontrez un " + rencontre.name + " de force " + myroll.total + "<br>",
|
content: "Vous recontrez un " + rencontre.name + " de force " + rencontre.force + "<br>",
|
||||||
buttons: {
|
buttons: {
|
||||||
derober: {
|
derober: {
|
||||||
icon: '<i class="fas fa-check"></i>',
|
icon: '<i class="fas fa-check"></i>',
|
||||||
@ -251,7 +290,7 @@ export class RdDTMRDialog extends Dialog {
|
|||||||
cell1.append( this.pixiApp.view );
|
cell1.append( this.pixiApp.view );
|
||||||
|
|
||||||
// load the texture we need
|
// 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
|
// This creates a texture from a 'bunny.png' image
|
||||||
const mytmr = new PIXI.Sprite(resources.tmr.texture);
|
const mytmr = new PIXI.Sprite(resources.tmr.texture);
|
||||||
// Setup the position of the bunny
|
// Setup the position of the bunny
|
||||||
@ -276,7 +315,8 @@ export class RdDTMRDialog extends Dialog {
|
|||||||
// Add the bunny to the scene we are building
|
// Add the bunny to the scene we are building
|
||||||
this.pixiApp.stage.addChild(mytmr);
|
this.pixiApp.stage.addChild(mytmr);
|
||||||
this.pixiApp.stage.addChild(this.circle);
|
this.pixiApp.stage.addChild(this.circle);
|
||||||
//this.updateSprites();
|
|
||||||
|
this.displayPreviousRencontres();
|
||||||
} );
|
} );
|
||||||
|
|
||||||
await this.actor.santeIncDec("fatigue", 1); // 1 point defatigue
|
await this.actor.santeIncDec("fatigue", 1); // 1 point defatigue
|
||||||
|
@ -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"},
|
const TMRMapping = {
|
||||||
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"},
|
A1: { type: "cite", label: "Cité Vide"},
|
||||||
K1: { type: "cite", label: "Cité d'ONKAUS"}, L1: { type: "fleuve", label: "Fleuve de l'Oubli"}, M1: { type: "cite", label: "Cité JALOUSE"},
|
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:"monts", label: "Monts GLIGNANTS"}, D2: { type: "cite", label: "Cité de FROST"}, E2: { type: "plaines", label: "Plaines de FIASK"},
|
A2: { type: "desert", label: "Désert de Mieux"},
|
||||||
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"},
|
B2: { type: "collines", label: "Collines de Dawell"},
|
||||||
K2: { type: "foret", label: "Forêt TAMEE"}, L2: { type: "fleuve", label: "Fleuve de l'Oubli"}, M2: { type: "necropole", label: "Nécropole de LOGOS"}
|
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 = [
|
const rencontresTable = [
|
||||||
{name:"Messagers des Rêves", data: { force: "2d4", ignorer: true, derober: true, refoulement: 1,
|
{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",
|
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 )
|
static rencontreTMRRoll( coordTMR, cellDescr )
|
||||||
{
|
{
|
||||||
let myroll = new Roll("d100");
|
let val = new Roll("d100").roll().total;
|
||||||
myroll.roll();
|
|
||||||
let val = myroll.total;
|
|
||||||
//console.log("Rencontre !!!!", val, coordTMR, cellDescr);
|
//console.log("Rencontre !!!!", val, coordTMR, cellDescr);
|
||||||
|
|
||||||
for( let renc of rencontresTable) {
|
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 getQueue( ) {
|
static async getSouffle( toChat ) {
|
||||||
|
return TMRUtility.genericGetTableResult( "Souffles de Dragon", toChat);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
static getTete( ) {
|
static async getQueue( toChat = true) {
|
||||||
|
return TMRUtility.genericGetTableResult( "Queues de dragon", toChat);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
static getOmbre( ) {
|
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 async getOmbre( toChat = true ) {
|
||||||
|
return TMRUtility.genericGetTableResult( "Ombre de Thanatos", toChat);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -1,65 +0,0 @@
|
|||||||
{"name":"Comédie","permission":{"default":0,"Q4cUvqxCxMoTJXDL":3},"type":"competence","data":{"niveau":-8,"base":-8,"categorie":"particuliere","xp":0,"description":"<p>L’art de paraître sur une scène : jouer un rôle, déclamer des vers, mimer, conter. Peut aussi servir à simuler, mystifier.</p>\n<p> </p>","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":"<p>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.</p>\n<p> </p>","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":"<p>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.</p>\n<p> </p>","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":"<p>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.</p>\n<p> </p>","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":"<p>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.</p>\n<p> </p>","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":"<p>Se déplacer en silence, sans se faire remarquer, passer inaperçu, se fondre dans</p>\n<p>l’anonymat, se cacher.</p>\n<p> </p>","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":"<p>Sauter par-dessus un obstacle ou sauter en contrebas ; rattraper une chute en la transformant en saut.</p>\n<p> </p>","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":"<p>Connaissance des manœuvres à accomplir sur un voilier, connaissance de la mer, de ses courants (voir Navigation, p325).</p>\n<p> </p>","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":"<p>L’art d’être galant, de paraître attirant. Permet les conquêtes amoureuses.</p>\n<p> </p>","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":"<p>Ces compétences permettent l’utilisation des masses, gourdins, bâtons, pour attaquer, voire parer.</p>\n<p> </p>","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":"<p>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.</p>\n<p> </p>","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":"<p>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.</p>\n<p> </p>","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":"<p>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.</p>\n<p> </p>","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":"<p>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.</p>\n<p> </p>","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":"<p>C’est au sens large le travail du bois, charpenterie, menuiserie, ébénisterie. Évaluer la qualité, solidité, d’une structure de bois.</p>\n<p> </p>","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":"<p>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).</p>\n<p> </p>","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":"<p>Sprinter le plus vite possible, ou courir sur de longues distances en ménageant son souffle.</p>\n<p> </p>","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":"<p>Savoir chanter juste, se souvenir de mélodies, improviser.</p>\n<p> </p>","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":"<p>Être capable de danser en mesure, de danser harmonieusement avec une personne</p>\n<p>ou un groupe, de charmer un public par une exhibition.</p>\n<p> </p>","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":"<p>Ces compétences permettent l’utilisation des sept types d’épées de Rêve de Dragon pour attaquer ou parer.</p>\n<p> </p>\n<p> </p>","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":"<p>Avoir le sens des proportions. Savoir dessiner, faire le portrait de quelqu’un, mais</p>\n<p>également savoir faire un schéma, une carte, un plan, aux proportions exactes.</p>\n<p> </p>","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":"<p>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.</p>\n<p> </p>","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":"<p>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.</p>\n<p> </p>","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":"<p>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.</p>\n<p> </p>","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":"<p>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.</p>\n<p> </p>","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":"<p>Utilisation de toutes les sortes de bouclierpour parer.</p>\n<p> </p>","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":"<p>Connaissance des recettes et préparations alchimiques. Identification, élaboration, des solutions diverses, breuvages, poudres, onguents, crèmes, etc. (voir Principes d’alchimie, p357).</p>\n<p> </p>","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":"<p>Le talent d’être toujours sur ses gardes, prêt à déceler la moindre anomalie, de</p>\n<p>bruit, d’odeur, de mouvement, etc. Permet de ne pas être surpris en combat, par</p>\n<p>exemple. Indispensable pour monter sérieusement la garde.</p>\n<p> </p>","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":"<p>Diagnostic et soin des maladies. Connaissance des remèdes.</p>\n<p> </p>","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":"<p>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.</p>\n<p> </p>","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":"<p>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.</p>\n<p> </p>","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":"<p>Magie d’illusion, suggestion, invocation.</p>\n<p> </p>","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":"<p>Connaissance des espèces animales, de leurs mœurs, leur des habitat.</p>","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":"<p>Ces compétences permettent l’utilisation des masses, gourdins, bâtons, pour attaquer, voire parer.</p>\n<p> </p>","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":"<p>Magie noire des forces du cauchemar.</p>\n<p> </p>","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":"<p>Art extrêmement dangereux du vol à la tire.</p>","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":"<p>C’est au sens large le travail de la pierre. Évaluer la qualité, la solidité d’une struc-</p>\n<p>ture maçonnée.</p>\n<p> </p>","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":"<p>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.</p>\n<p> </p>","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":"<p>Escalader des obstacles, grimper à la corde, à un arbre, le long d’une paroi.</p>\n<p> </p>","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":"<p>Connaissance des légendes et des faits du passé. Légendes tient lieu d’histoire.</p>\n<p> </p>","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":"<p>Utilisation de la fronde giratoire.</p>\n<p> </p>","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":"<p>Utilisation de tous les types d’arbalètes.</p>","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":"<p>Utilisation de la lance courte ou de la javeline en lancer.</p>\n<p> </p>","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":"<p>Magie s’appliquant au monde inanimé.</p>\n<p> </p>","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":"<p>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.</p>\n<p> </p>","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":"<p>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.</p>\n<p> </p>","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":"<p>Balles, quilles, couteaux, torches enflammées : l’art traditionnel du jongleur.</p>\n<p> </p>","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":"<p>Nager, plonger.</p>\n<p> </p>","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":"<p>Lire et écrire. Savoir composer un texte, un poème. Connaissance générale des langues anciennes.</p>\n<p> </p>","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":"<p>Utilisation de tous les types de fléaux, pour attaquer.</p>\n<p> </p>","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":"<p>Utilisation de toutes les piques, vouges, hallebardes, toujours maniées à deux mains, pour attaquer.</p>\n<p> </p>","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":"<p>Utilisation de tous les types d’arcs.</p>\n<p> </p>","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":"<p>Utilisation de la dague en lancer.</p>","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":"<p>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.</p>\n<p> </p>","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":"<p>Magie d’enchantement.</p>","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":"<p>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.</p>\n<p> </p>","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":"<p>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.</p>","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":"<p>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.</p>\n<p> </p>","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":"<p>Utilisation du fouet.</p>","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":"<p>L’art de se déguiser, de se grimer, de se rendre méconnaissable.</p>\n<p> </p>","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":"<p>Ces deux compétences permettent l’utilisation des hachettes, cognées et haches de bataille, pour attaquer.</p>\n<p> </p>\n<p> </p>","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":"<p>Solfège et règles musicales, jeu d’un instrument. Musique donne droit à la connaissance d’un instrument de musique, un seul, à spécifier.</p>\n<p> </p>","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":"<p>Évaluer le prix d’une marchandise, la valeur d’une monnaie locale. Savoir</p>\n<p>jusqu’où l’on peut marchander (lequel marchandage doit être fait en jeu de rôle</p>\n<p>par le joueur lui-même).</p>\n<p> </p>","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":"<p>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.</p>\n<p> </p>","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":"<p>Pirouettes, sauts périlleux, art du funambule, et d’une manière générale, toutes les performances d’agilité spécialisées.</p>\n<p> </p>","defaut_carac":"agilite"},"flags":{},"img":"systems/foundryvtt-reve-de-dragon/icons/competence_acrobatie.png","_id":"zyNYa3hYtrOcF2jA"}
|
|
@ -1,16 +1,16 @@
|
|||||||
{"_id":"0ninnfcmwzrj7k1n","name":"Mauvaise rencontre en perspective","permission":{"default":0,"jOzRscDxoXZWpGS6":3},"folder":"","flags":{},"content":"<p>Tirer la prochaine rencontre dans les TMR sur la @RollTable[52ymSWISvXPUhRyQ]{Table spéciale de rencontres}</p>\n<p>@JournalEntry[pyyjQGx3Hz0R5a0Z]{Passeur fou}</p>\n<p>@JournalEntry[S6XCr67fUuUpLtRm]{Tourbillon rouge}</p>"}
|
{"name":"Mauvaise rencontre en perspective","permission":{"default":0,"jOzRscDxoXZWpGS6":3},"type":"queue","data":{"description":"<p>Tirer la prochaine rencontre dans les TMR sur la @RollTable[52ymSWISvXPUhRyQ]{Table spéciale de rencontres}</p>","refoulement":1},"flags":{},"img":"icons/svg/mystery-man.svg","_id":"0jrEZ62Q2Jz4kBGf"}
|
||||||
{"name":"Idée fixe","permission":{"default":0,"jOzRscDxoXZWpGS6":3},"flags":{},"content":"<p>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. <em>Les idées fixes peuvent être refoulées à tout moment au prix de 1 point de refoulement</em>.</p>","_id":"3SlglNScMS7nKQlx"}
|
{"name":"Souvenir obsessionnel de l'archétype","permission":{"default":0,"jOzRscDxoXZWpGS6":3},"type":"queue","data":{"description":"<p>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</p>","refoulement":1},"flags":{},"img":"icons/svg/mystery-man.svg","_id":"1gGVlZM0UyifL6RK"}
|
||||||
{"name":"Pélerinage","permission":{"default":0,"jOzRscDxoXZWpGS6":3},"flags":{},"content":"<p>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.</p>","_id":"5CeHIVMp1q4UInfA"}
|
{"name":"Coup de foudre fatal","permission":{"default":0,"jOzRscDxoXZWpGS6":3},"type":"queue","data":{"description":"<p>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. </p>","refoulement":2},"flags":{},"img":"icons/svg/mystery-man.svg","_id":"32LbwxxokC9Tn370"}
|
||||||
{"name":"Souvenir obsessionnel de l'archétype","permission":{"default":0,"jOzRscDxoXZWpGS6":3},"flags":{},"content":"<p>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).</p>","_id":"8luj4WAhdV94mr6l"}
|
{"name":"Montée laborieuse","permission":{"default":0,"jOzRscDxoXZWpGS6":3},"type":"queue","data":{"description":"<p>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é.</p>","refoulement":1},"flags":{},"img":"icons/svg/mystery-man.svg","_id":"5knw1NcnBsLIjHpr"}
|
||||||
{"name":"Coup de barre","permission":{"default":0,"jOzRscDxoXZWpGS6":3},"flags":{},"content":"<p>Prise immédiate de 3d6 points de fatigue.</p>","_id":"9zh3JAHw0AgS6B4v"}
|
{"name":"Inertie draconique","permission":{"default":0,"jOzRscDxoXZWpGS6":3},"type":"queue","data":{"description":"<p>Pendant un jour, la fatigue en TMR est doublée. Chaque case ou round coûte 2 points au lieu d’un.</p>","refoulement":1},"flags":{},"img":"icons/svg/mystery-man.svg","_id":"EUrxQGd7FuW628NS"}
|
||||||
{"name":"Dépouillement","permission":{"default":0,"jOzRscDxoXZWpGS6":3},"flags":{},"content":"<p>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. <em>Refoulable au prix de 2 points de refoulement</em>.</p>","_id":"FYzlFFtKbrrYwR49"}
|
{"name":"Idée fixe","permission":{"default":0,"jOzRscDxoXZWpGS6":3},"type":"queue","data":{"description":"<p>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.</p>","refoulement":1},"flags":{},"img":"icons/svg/mystery-man.svg","_id":"J3XtcVuQo846U1OT"}
|
||||||
{"name":"Désir lancinant","permission":{"default":0,"jOzRscDxoXZWpGS6":3},"flags":{},"content":"<p>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.</p>","_id":"I97dLVQibx8t5C0z"}
|
{"name":"Désir lancinant","permission":{"default":0,"jOzRscDxoXZWpGS6":3},"type":"queue","data":{"description":"<p>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.</p>","refoulement":1},"flags":{},"img":"icons/svg/mystery-man.svg","_id":"Ltgqj86rYQr8D8LW"}
|
||||||
{"name":"Montée laborieuse","permission":{"default":0,"jOzRscDxoXZWpGS6":3},"flags":{},"content":"<p>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é.</p>","_id":"K38bDmtyuVycJOqX"}
|
{"name":"Pélerinage","permission":{"default":0,"jOzRscDxoXZWpGS6":3},"type":"queue","data":{"description":"<p>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.</p>","refoulement":1},"flags":{},"img":"icons/svg/mystery-man.svg","_id":"NF4E7jTty1QGjaNj"}
|
||||||
{"name":"Urgence draconique","permission":{"default":0,"jOzRscDxoXZWpGS6":3},"flags":{},"content":"<p>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. <em>Refoulable au prix de 2 points de refoulement</em>.</p>","_id":"YCsytmWKopcm7HIv"}
|
{"name":"Urgence draconique","permission":{"default":0,"jOzRscDxoXZWpGS6":3},"type":"queue","data":{"description":"<p>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.</p>","refoulement":2},"flags":{},"img":"icons/svg/mystery-man.svg","_id":"OSV2b7bVWv2SCfUY"}
|
||||||
{"name":"Amnésie sélective","permission":{"default":0,"jOzRscDxoXZWpGS6":3},"flags":{},"content":"<p>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.</p>","_id":"a2J6ZIQv8GtWLzck"}
|
{"name":"Coup de barre","permission":{"default":0,"jOzRscDxoXZWpGS6":3},"type":"queue","data":{"description":"<p>Prise immédiate de 3d6 points de fatigue.</p>","refoulement":1},"flags":{},"img":"icons/svg/mystery-man.svg","_id":"Qgj5eSMpQ0IDHwZX"}
|
||||||
{"name":"Conquête","permission":{"default":0,"jOzRscDxoXZWpGS6":3},"flags":{},"content":"<p>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 <em>maîtriser</em>, 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.</p>","_id":"csgDcwgvW9KF9o17"}
|
{"name":"Masque de Narcos","permission":{"default":0,"jOzRscDxoXZWpGS6":3},"type":"queue","data":{"description":"<p>Pendant 1d7 jours à compter du lendemain, la caractéristique APPARENCE baisse de 1d6 points, de même que la Beauté.</p>","refoulement":1},"flags":{},"img":"icons/svg/mystery-man.svg","_id":"TmEeikWOQt6NZGVY"}
|
||||||
{"_id":"jBFgNBBewS49hVJU","name":"Inertie draconique","permission":{"default":0,"jOzRscDxoXZWpGS6":3},"folder":"","flags":{},"content":"<p>Pendant un jour, la fatigue en TMR est doublée. Chaque case ou round coûte 2 points au lieu d’un.</p>"}
|
{"name":"Réinsertion aléatoire","permission":{"default":0,"jOzRscDxoXZWpGS6":3},"type":"queue","data":{"description":"<p>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.</p>","refoulement":1},"flags":{},"img":"icons/svg/mystery-man.svg","_id":"iHuLw0I1Gc5mIucG"}
|
||||||
{"name":"Réinsertion aléatoire","permission":{"default":0,"jOzRscDxoXZWpGS6":3},"flags":{},"content":"<p>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.</p>","_id":"m0kzaruhTBXbXqEH"}
|
{"_id":"iJw6j7kuP1eAHIck","name":"Amnésie sélective","permission":{"default":0,"jOzRscDxoXZWpGS6":3},"type":"queue","data":{"description":"<p>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.</p>","refoulement":1},"flags":{},"img":"icons/svg/mystery-man.svg"}
|
||||||
{"name":"Insomnie","permission":{"default":0,"jOzRscDxoXZWpGS6":3},"flags":{},"content":"<p>Impossibilité totale de dormir, et donc de rêver, pendant un jour.</p>","_id":"n9LQh69JSlPin0CS"}
|
{"name":"Insomnie","permission":{"default":0,"jOzRscDxoXZWpGS6":3},"type":"queue","data":{"description":"<p>Impossibilité totale de dormir, et donc de rêver, pendant un jour.</p>","refoulement":1},"flags":{},"img":"icons/svg/mystery-man.svg","_id":"kHWwwxA0alcpDYpf"}
|
||||||
{"name":"Masque de Narcos","permission":{"default":0,"jOzRscDxoXZWpGS6":3},"flags":{},"content":"<p>Pendant 1d7 jours à compter du lendemain, la caractéristique APPARENCE baisse de 1d6 points, de même que la Beauté.</p>","_id":"ovEIUV4ZRBeQlhW7"}
|
{"name":"Conquête","permission":{"default":0,"jOzRscDxoXZWpGS6":3},"type":"queue","data":{"description":"<p>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 <em>maîtriser</em>, 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.</p>","refoulement":1},"flags":{},"img":"icons/svg/mystery-man.svg","_id":"lBkO8FvFqXoKNhvk"}
|
||||||
{"name":"Coup de foudre fatal","permission":{"default":0,"jOzRscDxoXZWpGS6":3},"flags":{},"content":"<p>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. <em>Refoulable au prix de 2 points de refoulement</em>.</p>","_id":"vaLh2NBnVo22rnpc"}
|
{"name":"Dépouillement","permission":{"default":0,"jOzRscDxoXZWpGS6":3},"type":"queue","data":{"description":"<p>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.</p>","refoulement":2},"flags":{},"img":"icons/svg/mystery-man.svg","_id":"vft88ioHpGxMzdML"}
|
||||||
|
@ -28,7 +28,9 @@
|
|||||||
Draconic : <span id="draconic-list">
|
Draconic : <span id="draconic-list">
|
||||||
<select name="draconic" id="draconic-list" data-dtype="String">
|
<select name="draconic" id="draconic-list" data-dtype="String">
|
||||||
{{#select draconic}}
|
{{#select draconic}}
|
||||||
{{>"systems/foundryvtt-reve-de-dragon/templates/sort-draconic.html"}}
|
{{#each draconic}}
|
||||||
|
<option value={{this.name}}>{{this.name}} - {{this.data.niveau}}</option>
|
||||||
|
{{/each}}
|
||||||
{{/select}}
|
{{/select}}
|
||||||
</select>
|
</select>
|
||||||
</span>
|
</span>
|
||||||
@ -38,7 +40,7 @@
|
|||||||
<div class="flex-group-center">
|
<div class="flex-group-center">
|
||||||
Sorts : <span id="sorts-list">
|
Sorts : <span id="sorts-list">
|
||||||
<select name="sort" id="sort-list" data-dtype="String">
|
<select name="sort" id="sort-list" data-dtype="String">
|
||||||
{{#select draconic}}
|
{{#select sort}}
|
||||||
{{#each sort}}
|
{{#each sort}}
|
||||||
<option value={{this.name}}>{{this.name}}</option>
|
<option value={{this.name}}>{{this.name}}</option>
|
||||||
{{/each}}
|
{{/each}}
|
||||||
|
@ -8,10 +8,6 @@
|
|||||||
|
|
||||||
{{!-- Sheet Body --}}
|
{{!-- Sheet Body --}}
|
||||||
<section class="sheet-body">
|
<section class="sheet-body">
|
||||||
<div class="form-group">
|
|
||||||
<label for="xp">Refoulement</label>
|
|
||||||
<input class="attribute-value" type="text" name="data.refoulement" value="{{data.refoulement}}" data-dtype="Number"/>
|
|
||||||
</div>
|
|
||||||
<header class="header-field">
|
<header class="header-field">
|
||||||
<span>Description : </span>
|
<span>Description : </span>
|
||||||
</header>
|
</header>
|
||||||
|
Loading…
Reference in New Issue
Block a user