Compare commits
238 Commits
foundryvtt
...
foundryvtt
| Author | SHA1 | Date | |
|---|---|---|---|
| 23af30a538 | |||
| 4e1b663dec | |||
| c9d98c57da | |||
| 0aef139cf8 | |||
| 9c85293714 | |||
| ab1c04ae17 | |||
| a585e0faba | |||
| 50c730ba72 | |||
| 928a60f092 | |||
| e5c2f52b0e | |||
| f9391523f8 | |||
| 55434762f4 | |||
| 5e6ffc7846 | |||
| 3344e20936 | |||
| 5a66e4e741 | |||
| d329724d63 | |||
| 8a5405c9f5 | |||
| ea992aae46 | |||
| 0bfcfec58f | |||
| 88e00c59bc | |||
| d314dc39a0 | |||
| 30bb803da2 | |||
| dd79e16ea5 | |||
| 83e2d56fd4 | |||
| afc23dfa7b | |||
| 3e189cbe5f | |||
| d0475e8677 | |||
| a3694c1673 | |||
| 9e6d5856b1 | |||
| acc880b53f | |||
| 2598ae3489 | |||
| 4f5fb63751 | |||
| d739a7993a | |||
| 41335cd433 | |||
| e470d76ea0 | |||
| ffccc819f1 | |||
| 45bfc69b39 | |||
| 79e9358072 | |||
| 5cab418e62 | |||
| 7809f7c21a | |||
| 1bac204071 | |||
| 3bf5beb67b | |||
| ac1da6e979 | |||
| 67735197bc | |||
| f81dc9a5f5 | |||
| a563233d6b | |||
| 0c11013694 | |||
| 77cf72a752 | |||
| 42ed5da2d4 | |||
| 5fd3a43b2a | |||
| 1bb710ce83 | |||
| 80579032ea | |||
| a810e20eca | |||
| c6f0aaeba0 | |||
| 3c3be7409d | |||
| f97345e407 | |||
| 4cc50fc190 | |||
| 26967fe1cd | |||
| b23dcaace5 | |||
| 045ee76013 | |||
| 7fed3844b5 | |||
| b5571e6c7a | |||
| b5eac8ccfa | |||
| 673196c644 | |||
| 9741028914 | |||
| 10daab2bcd | |||
| 99d2d38279 | |||
| e30825db6b | |||
| 10ed4d9382 | |||
| 2ffa0d8dc7 | |||
| f229537206 | |||
| 5c31c7bd7f | |||
| 4cf428f630 | |||
| 0c1b70f3f0 | |||
| b7ea857bb4 | |||
| 0238976ce8 | |||
| 31fd91336a | |||
| c70b6c9d5f | |||
| 07d0d92f57 | |||
| a2968697f4 | |||
| fb7dbe6ea0 | |||
| 59641bf5cf | |||
| 4ee4445836 | |||
| 1a346a21c3 | |||
| c6c0dd43fd | |||
| d69a07d4dd | |||
| 56379a9234 | |||
| fbcc167272 | |||
| 703ab2579d | |||
| 6b7e881bf2 | |||
| dc3ceb1732 | |||
| 7a0132cf8d | |||
| ca1ea5a854 | |||
| 9bdde92d61 | |||
| 74313b7fd3 | |||
| 9a9399a581 | |||
| 95a7ac73d0 | |||
| ab4c118d12 | |||
| 681358238d | |||
| 5511acc876 | |||
| 2e144851d4 | |||
| 9f24aee1f3 | |||
| e605ab405a | |||
| 86f69566a6 | |||
| 2561a658f2 | |||
| 8a1d1fd253 | |||
| e42f384d7f | |||
| d381191692 | |||
| 53a7230f1d | |||
| 4d5651c2d3 | |||
| 61474172a7 | |||
| 083806612b | |||
| 1c417d02a1 | |||
| ee9e7d2adb | |||
| fa3334273d | |||
| 05b73a41a5 | |||
| 842243485a | |||
| 1e53f2d9e8 | |||
| 792fcc1b39 | |||
| 3d914a29c3 | |||
| 7fe7c1e9bd | |||
| d86b81fbbc | |||
| 22da2807d8 | |||
| 76e03b07ed | |||
| e4098c813b | |||
| 90aecd6cc0 | |||
| 254709f55b | |||
| 064472dc11 | |||
| 7a67cb7cea | |||
| 7f051e76be | |||
| 38db7fb7c8 | |||
| c448f32bb8 | |||
| e194514965 | |||
| a790c36618 | |||
| f221bb31eb | |||
| bdc2d8db3a | |||
| 782dc38268 | |||
| 024e355586 | |||
| 37704558e0 | |||
| d816490839 | |||
| a4186da540 | |||
| b8b4a1ff14 | |||
| 8925a4979d | |||
| 851a208aee | |||
| 4df04fe06f | |||
| f4d074fa31 | |||
| f7595a1bfe | |||
| 86feb12811 | |||
| 2383094254 | |||
| 2a72f6ffea | |||
| 3cc56c615c | |||
| 948309bb4f | |||
| 40fdff4057 | |||
| c972913a67 | |||
| 0d5c8e5304 | |||
| 0aba6d2f0a | |||
| df3e181d7f | |||
| 8877939b9f | |||
| 7334f2d8e6 | |||
| ceff3d1b50 | |||
| a4802d1113 | |||
| 162a6a04b8 | |||
| 0c36cf3c47 | |||
| 969e5f6b2d | |||
| 306ecacc98 | |||
| 2dc86e6679 | |||
| 484530d67d | |||
| a08890dcb0 | |||
| 1956fdd755 | |||
| 651356159a | |||
| ca304109d5 | |||
| 9c0d08cb6f | |||
| f9fd8a1e24 | |||
| 03f84eb3f7 | |||
| 05e48b61ff | |||
| f20788d6d9 | |||
| 009639dd5f | |||
| 14542cf7cd | |||
| f4f2db68e0 | |||
| 7e75715d88 | |||
| d62d1c45bc | |||
| 62914c343f | |||
| 9349e81580 | |||
| 404539a004 | |||
| 9eaeceafc4 | |||
| 1cd3bdef25 | |||
| fa356bd7f8 | |||
| 771c8c9c8e | |||
| ca860a0243 | |||
| 2e36221018 | |||
| 07e203513a | |||
| 31960ce940 | |||
| 19118911b9 | |||
| 652ae4cf51 | |||
| cf340f73f1 | |||
| 3782ed9055 | |||
| c3076fdbfc | |||
| 739fcbdf09 | |||
| 19b3adc222 | |||
| 388629d36e | |||
| 912b1d3df3 | |||
| 11e4ad09d3 | |||
| 8844f76b65 | |||
| ec24126e75 | |||
| b3c6845e68 | |||
| cf8df182ba | |||
|
|
30cc8419c5 | ||
|
|
5ab6c5989e | ||
|
|
46df3d9f11 | ||
| 6a6759087c | |||
| a7ce1db7c5 | |||
| a0efefad3f | |||
| 8e0825b6b9 | |||
| 39d14c8496 | |||
| 89442ea6c6 | |||
| a66fe122c4 | |||
|
|
2e0abaa284 | ||
|
|
5bddc548de | ||
| 4acd0879b0 | |||
| 060943ee53 | |||
| 80be0490eb | |||
| ceacee8e6c | |||
| d5453c9b04 | |||
| 7ca3306c6f | |||
| aa5d175027 | |||
| d4ddc4e940 | |||
| 87f12019ac | |||
| 128d7adf89 | |||
| ee42bdcf83 | |||
| 5972db035d | |||
| 92388df5c7 | |||
| 274009d3fa | |||
| d7e5a09540 | |||
| 7f5b2e0abf | |||
| fbd3aa7121 | |||
| 2ca601b5f8 | |||
|
|
d77ecee9bd | ||
| c2a3b5e246 |
5
.gitignore
vendored
@@ -1,5 +1,10 @@
|
|||||||
.vscode/settings.json
|
.vscode/settings.json
|
||||||
.idea
|
.idea
|
||||||
|
.history
|
||||||
todo.md
|
todo.md
|
||||||
/.vscode
|
/.vscode
|
||||||
/ignored/
|
/ignored/
|
||||||
|
/node_modules/
|
||||||
|
/jsconfig.json
|
||||||
|
/package.json
|
||||||
|
/package-lock.json
|
||||||
|
|||||||
BIN
icons/sante/blessure-mort.webp
Normal file
|
After Width: | Height: | Size: 5.1 KiB |
BIN
icons/sante/blessure-soins.webp
Normal file
|
After Width: | Height: | Size: 5.5 KiB |
BIN
icons/sante/blessure.webp
Normal file
|
After Width: | Height: | Size: 6.6 KiB |
BIN
icons/sante/eraflure.webp
Normal file
|
After Width: | Height: | Size: 4.8 KiB |
BIN
icons/sante/mort.webp
Normal file
|
After Width: | Height: | Size: 7.6 KiB |
BIN
icons/services/bacquet-eau.webp
Normal file
|
After Width: | Height: | Size: 8.1 KiB |
BIN
icons/services/biere.webp
Normal file
|
After Width: | Height: | Size: 6.2 KiB |
BIN
icons/services/brandevin.webp
Normal file
|
After Width: | Height: | Size: 6.0 KiB |
|
Before Width: | Height: | Size: 6.2 KiB After Width: | Height: | Size: 6.2 KiB |
BIN
icons/services/compagnie.webp
Normal file
|
After Width: | Height: | Size: 6.4 KiB |
BIN
icons/services/lit.webp
Normal file
|
After Width: | Height: | Size: 7.0 KiB |
BIN
icons/services/paiement.webp
Normal file
|
After Width: | Height: | Size: 5.1 KiB |
BIN
icons/services/repas.webp
Normal file
|
After Width: | Height: | Size: 5.9 KiB |
BIN
icons/services/verre.webp
Normal file
|
After Width: | Height: | Size: 5.1 KiB |
BIN
icons/services/vin.webp
Normal file
|
After Width: | Height: | Size: 5.5 KiB |
65
lang/fr.json
@@ -3,49 +3,52 @@
|
|||||||
"TypePersonnage": "Personnage",
|
"TypePersonnage": "Personnage",
|
||||||
"TypeCreature": "Créature",
|
"TypeCreature": "Créature",
|
||||||
"TypeEntite": "Entité de cauchemar",
|
"TypeEntite": "Entité de cauchemar",
|
||||||
|
"TypeCommerce": "Commerce",
|
||||||
"TypeVehicule": "Véhicule"
|
"TypeVehicule": "Véhicule"
|
||||||
},
|
},
|
||||||
"ITEM": {
|
"ITEM": {
|
||||||
"TypeObjet": "Objet",
|
|
||||||
"TypeGemme": "Gemme",
|
|
||||||
"TypeCompetence": "Compétence",
|
|
||||||
"TypeCompetencecreature": "Compétence de créature",
|
|
||||||
"TypeMaladie": "Maladie",
|
|
||||||
"TypePoison": "Poison",
|
|
||||||
"TypeNombreastral": "Nombre astral",
|
|
||||||
"TypeTarot": "Carte de tarot",
|
|
||||||
"TypeCasetmr": "TMR spéciale",
|
|
||||||
"TypeRencontre": "Rencontre TMR",
|
|
||||||
"TypeMunition": "Munition",
|
|
||||||
"TypeMonnaie": "Monnaie",
|
|
||||||
"TypeHerbe": "Herbe ou plante",
|
|
||||||
"TypeIngredient": "Ingrédient",
|
|
||||||
"TypeFaune": "Faune",
|
|
||||||
"TypeLivre": "Livre",
|
|
||||||
"TypePotion": "Potion",
|
|
||||||
"TypeArme": "Arme",
|
"TypeArme": "Arme",
|
||||||
"TypeArmure": "Armure",
|
"TypeArmure": "Armure",
|
||||||
"TypeConteneur": "Conteneur",
|
"TypeBlessure": "Blessure",
|
||||||
"TypeNourritureboisson": "Nourriture & boisson",
|
"TypeCasetmr": "TMR spéciale",
|
||||||
"TypeService": "Services/Boutique",
|
|
||||||
"TypeChant": "Chant",
|
"TypeChant": "Chant",
|
||||||
|
"TypeCompetence": "Compétence",
|
||||||
|
"TypeCompetencecreature": "Compétence de créature",
|
||||||
|
"TypeConteneur": "Conteneur",
|
||||||
"TypeDanse": "Danse",
|
"TypeDanse": "Danse",
|
||||||
"TypeMusique": "Musique",
|
"TypeExtraitpoetique": "Extrait poetique",
|
||||||
"TypeOeuvre": "Oeuvre",
|
"TypeFaune": "Faune",
|
||||||
"TypeTache": "Tâche",
|
"TypeGemme": "Gemme",
|
||||||
|
"TypeHerbe": "Herbe",
|
||||||
|
"TypeIngredient": "Ingrédient",
|
||||||
"TypeJeu": "Jeu",
|
"TypeJeu": "Jeu",
|
||||||
|
"TypeLivre": "Livre",
|
||||||
|
"TypeMaladie": "Maladie",
|
||||||
|
"TypeMeditation": "Méditation",
|
||||||
|
"TypeMonnaie": "Monnaie",
|
||||||
|
"TypeMunition": "Munition",
|
||||||
|
"TypeMusique": "Musique",
|
||||||
|
"TypeNombreastral": "Nombre astral",
|
||||||
|
"TypeNourritureboisson": "Nourriture & boisson",
|
||||||
|
"TypeObjet": "Objet",
|
||||||
|
"TypeOeuvre": "Oeuvre",
|
||||||
|
"TypeOmbre": "Ombre de Thanatos",
|
||||||
|
"TypePlante": "Plante",
|
||||||
|
"TypePoison": "Poison",
|
||||||
|
"TypePossession": "Possession",
|
||||||
|
"TypePotion": "Potion",
|
||||||
|
"TypeQueue": "Queue de Dragon",
|
||||||
"TypeRecettealchimique": "Recette alchimique",
|
"TypeRecettealchimique": "Recette alchimique",
|
||||||
"TypeRecettecuisine": "Recette de cuisine",
|
"TypeRecettecuisine": "Recette de cuisine",
|
||||||
"TypeSort": "Sort",
|
"TypeRencontre": "Rencontre TMR",
|
||||||
"TypeMeditation": "Méditation",
|
"TypeService": "Service",
|
||||||
"TypeSignedraconique": "Signe draconique",
|
"TypeSignedraconique": "Signe draconique",
|
||||||
"TypeQueue": "Queue de Dragon",
|
"TypeSort": "Sort",
|
||||||
"TypeOmbre": "Ombre de Thanatos",
|
|
||||||
"TypeSouffle": "Souffle de Dragon",
|
|
||||||
"TypeTete": "Tête de Dragon",
|
|
||||||
"TypePossession": "Possession",
|
|
||||||
"TypeSortreserve": "Sort en réserve",
|
"TypeSortreserve": "Sort en réserve",
|
||||||
"TypeExtraitpoetique": "Extrait poetique"
|
"TypeSouffle": "Souffle de Dragon",
|
||||||
|
"TypeTache": "Tâche",
|
||||||
|
"TypeTarot": "Carte de tarot",
|
||||||
|
"TypeTete": "Tête de Dragon"
|
||||||
},
|
},
|
||||||
"EFFECT": {
|
"EFFECT": {
|
||||||
"StatusStunned": "Sonné",
|
"StatusStunned": "Sonné",
|
||||||
|
|||||||
@@ -10,10 +10,10 @@ import { DialogSplitItem } from "./dialog-split-item.js";
|
|||||||
import { ReglesOptionelles } from "./settings/regles-optionelles.js";
|
import { ReglesOptionelles } from "./settings/regles-optionelles.js";
|
||||||
import { RdDSheetUtility } from "./rdd-sheet-utility.js";
|
import { RdDSheetUtility } from "./rdd-sheet-utility.js";
|
||||||
import { STATUSES } from "./settings/status-effects.js";
|
import { STATUSES } from "./settings/status-effects.js";
|
||||||
import { Monnaie } from "./item-monnaie.js";
|
|
||||||
import { MAINS_DIRECTRICES } from "./actor.js";
|
import { MAINS_DIRECTRICES } from "./actor.js";
|
||||||
import { RdDBaseActorSheet } from "./actor/base-actor-sheet.js";
|
import { RdDBaseActorSheet } from "./actor/base-actor-sheet.js";
|
||||||
import { RdDItem } from "./item.js";
|
import { RdDItem } from "./item.js";
|
||||||
|
import { RdDItemBlessure } from "./item/blessure.js";
|
||||||
|
|
||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
/**
|
/**
|
||||||
@@ -46,10 +46,8 @@ export class RdDActorSheet extends RdDBaseActorSheet {
|
|||||||
effects: this.actor.effects.map(e => foundry.utils.deepClone(e)),
|
effects: this.actor.effects.map(e => foundry.utils.deepClone(e)),
|
||||||
limited: this.actor.limited,
|
limited: this.actor.limited,
|
||||||
owner: this.actor.isOwner,
|
owner: this.actor.isOwner,
|
||||||
description: await TextEditor.enrichHTML(this.object.system.description, { async: true }),
|
biographie: await TextEditor.enrichHTML(this.actor.system.biographie, { async: true }),
|
||||||
biographie: await TextEditor.enrichHTML(this.object.system.biographie, { async: true }),
|
notes: await TextEditor.enrichHTML(this.actor.system.notes, { async: true }),
|
||||||
notes: await TextEditor.enrichHTML(this.object.system.notes, { async: true }),
|
|
||||||
notesmj: await TextEditor.enrichHTML(this.object.system.notesmj, { async: true }),
|
|
||||||
});
|
});
|
||||||
mergeObject(formData.calc, {
|
mergeObject(formData.calc, {
|
||||||
surenc: this.actor.computeMalusSurEncombrement(),
|
surenc: this.actor.computeMalusSurEncombrement(),
|
||||||
@@ -69,9 +67,9 @@ export class RdDActorSheet extends RdDBaseActorSheet {
|
|||||||
formData.calc.fatigue = RdDUtility.calculFatigueHtml(formData.system.sante.fatigue.value, formData.system.sante.endurance.max);
|
formData.calc.fatigue = RdDUtility.calculFatigueHtml(formData.system.sante.fatigue.value, formData.system.sante.endurance.max);
|
||||||
|
|
||||||
formData.competences.forEach(item => {
|
formData.competences.forEach(item => {
|
||||||
item.system.isVisible = this.options.recherche
|
item.system.isHidden = this.options.recherche
|
||||||
? RdDItemCompetence.nomContientTexte(item, this.options.recherche.text)
|
? !item.isNomLike(this.options.recherche.text)
|
||||||
: (!this.options.showCompNiveauBase || !RdDItemCompetence.isNiveauBase(item));
|
: (this.options.showCompNiveauBase && RdDItemCompetence.isNiveauBase(item));
|
||||||
RdDItemCompetence.levelUp(item, formData.system.compteurs.experience.value);
|
RdDItemCompetence.levelUp(item, formData.system.compteurs.experience.value);
|
||||||
});
|
});
|
||||||
|
|
||||||
@@ -114,7 +112,7 @@ export class RdDActorSheet extends RdDBaseActorSheet {
|
|||||||
activateListeners(html) {
|
activateListeners(html) {
|
||||||
super.activateListeners(html);
|
super.activateListeners(html);
|
||||||
|
|
||||||
HtmlUtility._showControlWhen(this.html.find(".appliquerFatigue"), ReglesOptionelles.isUsing("appliquer-fatigue"));
|
HtmlUtility.showControlWhen(this.html.find(".appliquerFatigue"), ReglesOptionelles.isUsing("appliquer-fatigue"));
|
||||||
|
|
||||||
// Everything below here is only needed if the sheet is editable
|
// Everything below here is only needed if the sheet is editable
|
||||||
if (!this.options.editable) return;
|
if (!this.options.editable) return;
|
||||||
@@ -154,33 +152,31 @@ export class RdDActorSheet extends RdDBaseActorSheet {
|
|||||||
this.html.find('.creer-tache').click(async event => {
|
this.html.find('.creer-tache').click(async event => {
|
||||||
this.createEmptyTache();
|
this.createEmptyTache();
|
||||||
});
|
});
|
||||||
|
this.html.find('.creer-tache-blessure-legere').click(async event => RdDItemBlessure.createTacheSoinBlessure(this.actor, 2));
|
||||||
|
this.html.find('.creer-tache-blessure-grave').click(async event => RdDItemBlessure.createTacheSoinBlessure(this.actor, 4));
|
||||||
|
this.html.find('.creer-tache-blessure-critique').click(async event => RdDItemBlessure.createTacheSoinBlessure(this.actor, 6));
|
||||||
|
this.html.find('.creer-blessure-legere').click(async event => RdDItemBlessure.createBlessure(this.actor, 2));
|
||||||
|
this.html.find('.creer-blessure-grave').click(async event => RdDItemBlessure.createBlessure(this.actor, 4));
|
||||||
|
this.html.find('.creer-blessure-critique').click(async event => RdDItemBlessure.createBlessure(this.actor, 6));
|
||||||
this.html.find('.creer-une-oeuvre').click(async event => {
|
this.html.find('.creer-une-oeuvre').click(async event => {
|
||||||
this.selectTypeOeuvreToCreate();
|
this.selectTypeOeuvreToCreate();
|
||||||
});
|
});
|
||||||
|
|
||||||
// Blessure control
|
this.html.find('.blessure-premierssoins-done').change(async event => {
|
||||||
this.html.find('.blessure-control').click(async event => {
|
const blessure = this.getBlessure(event);
|
||||||
const tr = this.html.find(event.currentTarget).parents(".item");
|
await blessure?.setSoinsBlessure({ premierssoins: { done: event.currentTarget.checked } });
|
||||||
let btype = tr.data("blessure-type");
|
|
||||||
let index = tr.data('blessure-index');
|
|
||||||
let active = this.html.find(event.currentTarget).data('blessure-active');
|
|
||||||
//console.log(btype, index, active);
|
|
||||||
await this.actor.manageBlessureFromSheet(btype, index, active);
|
|
||||||
});
|
});
|
||||||
|
this.html.find('.blessure-soinscomplets-done').change(async event => {
|
||||||
// Blessure data
|
const blessure = this.getBlessure(event);
|
||||||
this.html.find('.blessure-soins').change(async event => {
|
await blessure?.setSoinsBlessure({ soinscomplets: { done: event.currentTarget.checked } })
|
||||||
const tr = this.html.find(event.currentTarget).parents(".item");
|
});
|
||||||
let btype = tr.data('blessure-type');
|
this.html.find('.blessure-premierssoins-bonus').change(async event => {
|
||||||
let index = tr.data('blessure-index');
|
const blessure = this.getBlessure(event);
|
||||||
let psoins = tr.find('.blessure-premiers_soins').val();
|
await blessure?.setSoinsBlessure({ premierssoins: { bonus: Number(event.currentTarget.value) } })
|
||||||
let pcomplets = tr.find('.blessure-soins_complets').val();
|
});
|
||||||
let jours = tr.find('.blessure-jours').val();
|
this.html.find('.blessure-soinscomplets-bonus').change(async event => {
|
||||||
let loc = tr.find('.blessure-localisation').val();
|
const blessure = this.getBlessure(event);
|
||||||
let psdone = tr.find('.blessure-psdone:checked').val();
|
await blessure?.setSoinsBlessure({ soinscomplets: { bonus: Number(event.currentTarget.value) } })
|
||||||
let scdone = tr.find('.blessure-scdone:checked').val();
|
|
||||||
console.log(btype, index, psoins, pcomplets, jours, loc, psdone, scdone);
|
|
||||||
await this.actor.setDataBlessureFromSheet(btype, index, psoins, pcomplets, jours, loc, psdone, scdone);
|
|
||||||
});
|
});
|
||||||
|
|
||||||
// Equip Inventory Item
|
// Equip Inventory Item
|
||||||
@@ -252,7 +248,7 @@ export class RdDActorSheet extends RdDBaseActorSheet {
|
|||||||
|
|
||||||
// Points de reve actuel
|
// Points de reve actuel
|
||||||
this.html.find('.ptreve-actuel a').click(async event => {
|
this.html.find('.ptreve-actuel a').click(async event => {
|
||||||
this.actor.rollCarac('reve-actuel');
|
this.actor.rollCarac('reve-actuel', true);
|
||||||
});
|
});
|
||||||
|
|
||||||
// Roll Weapon1
|
// Roll Weapon1
|
||||||
@@ -348,29 +344,6 @@ export class RdDActorSheet extends RdDBaseActorSheet {
|
|||||||
this.render(true);
|
this.render(true);
|
||||||
});
|
});
|
||||||
|
|
||||||
this.html.find('.recherche')
|
|
||||||
.each((index, field) => {
|
|
||||||
if (this.options.recherche) {
|
|
||||||
field.focus();
|
|
||||||
field.setSelectionRange(this.options.recherche.start, this.options.recherche.end);
|
|
||||||
}
|
|
||||||
})
|
|
||||||
.keyup(async event => {
|
|
||||||
const nouvelleRecherche = this._optionRecherche(event.currentTarget);
|
|
||||||
if (this.options.recherche?.text != nouvelleRecherche?.text) {
|
|
||||||
this.options.recherche = nouvelleRecherche;
|
|
||||||
if (this.timerRecherche) {
|
|
||||||
clearTimeout(this.timerRecherche);
|
|
||||||
}
|
|
||||||
this.timerRecherche = setTimeout(() => {
|
|
||||||
this.timerRecherche = undefined;
|
|
||||||
this.render(true);
|
|
||||||
}, 500);
|
|
||||||
}
|
|
||||||
})
|
|
||||||
.change(async event =>
|
|
||||||
this.options.recherche = this._optionRecherche(event.currentTarget)
|
|
||||||
);
|
|
||||||
this.html.find('.vue-detaillee').click(async event => {
|
this.html.find('.vue-detaillee').click(async event => {
|
||||||
this.options.vueDetaillee = !this.options.vueDetaillee;
|
this.options.vueDetaillee = !this.options.vueDetaillee;
|
||||||
this.render(true);
|
this.render(true);
|
||||||
@@ -443,6 +416,12 @@ export class RdDActorSheet extends RdDBaseActorSheet {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
getBlessure(event) {
|
||||||
|
const itemId = this.html.find(event.currentTarget).parents(".item-blessure").data('item-id');
|
||||||
|
const blessure = this.actor.getItem(itemId, 'blessure');
|
||||||
|
return blessure;
|
||||||
|
}
|
||||||
|
|
||||||
isCompetenceAffichable(competence) {
|
isCompetenceAffichable(competence) {
|
||||||
return !this.options.showCompNiveauBase || !RdDItemCompetence.isNiveauBase(competence);
|
return !this.options.showCompNiveauBase || !RdDItemCompetence.isNiveauBase(competence);
|
||||||
}
|
}
|
||||||
@@ -481,17 +460,6 @@ export class RdDActorSheet extends RdDBaseActorSheet {
|
|||||||
await this.actor.createItem('tache', 'Nouvelle tache');
|
await this.actor.createItem('tache', 'Nouvelle tache');
|
||||||
}
|
}
|
||||||
|
|
||||||
_optionRecherche(target) {
|
|
||||||
if (!target.value?.length) {
|
|
||||||
return undefined;
|
|
||||||
}
|
|
||||||
return {
|
|
||||||
text: target.value,
|
|
||||||
start: target.selectionStart,
|
|
||||||
end: target.selectionEnd,
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
||||||
_getEventArmeCombat(event) {
|
_getEventArmeCombat(event) {
|
||||||
const li = this.html.find(event.currentTarget)?.parents(".item");
|
const li = this.html.find(event.currentTarget)?.parents(".item");
|
||||||
let armeName = li.data("arme-name");
|
let armeName = li.data("arme-name");
|
||||||
|
|||||||
1483
module/actor.js
@@ -31,50 +31,54 @@ export class RdDBaseActorSheet extends ActorSheet {
|
|||||||
Monnaie.validerMonnaies(this.actor.itemTypes['monnaie']);
|
Monnaie.validerMonnaies(this.actor.itemTypes['monnaie']);
|
||||||
|
|
||||||
this.actor.recompute();
|
this.actor.recompute();
|
||||||
const userRightLevel = this.actor.getUserLevel(game.user)
|
|
||||||
const options = duplicate(this.options);
|
|
||||||
mergeObject(options, {
|
|
||||||
isGM: game.user.isGM,
|
|
||||||
editable: this.isEditable,
|
|
||||||
cssClass: this.isEditable ? "editable" : "locked",
|
|
||||||
isLimited: userRightLevel >= CONST.DOCUMENT_OWNERSHIP_LEVELS.LIMITED,
|
|
||||||
isObserver: userRightLevel >= CONST.DOCUMENT_OWNERSHIP_LEVELS.OBSERVER,
|
|
||||||
isOwner: userRightLevel >= CONST.DOCUMENT_OWNERSHIP_LEVELS.OWNER,
|
|
||||||
});
|
|
||||||
|
|
||||||
let formData = {
|
let formData = {
|
||||||
title: this.title,
|
title: this.title,
|
||||||
id: this.actor.id,
|
id: this.actor.id,
|
||||||
type: this.actor.type,
|
type: this.actor.type,
|
||||||
img: this.actor.img,
|
img: this.actor.img,
|
||||||
name: this.actor.name,
|
name: this.actor.name,
|
||||||
system: foundry.utils.deepClone(this.actor.system),
|
system: this.actor.system,
|
||||||
options: options,
|
description: await TextEditor.enrichHTML(this.actor.system.description, { async: true }),
|
||||||
|
notesmj: await TextEditor.enrichHTML(this.actor.system.notesmj, { async: true }),
|
||||||
|
options: RdDSheetUtility.mergeDocumentRights(this.options, this.actor, this.isEditable)
|
||||||
}
|
}
|
||||||
this.filterItemsPerTypeForSheet(formData, this.actor.itemTypes);
|
|
||||||
|
RdDBaseActorSheet.filterItemsPerTypeForSheet(formData, this.actor.itemTypes);
|
||||||
formData.calc = {
|
formData.calc = {
|
||||||
fortune: this.toSolsDeniers(this.actor.getFortune()),
|
fortune: Monnaie.toSolsDeniers(this.actor.getFortune()),
|
||||||
prixTotalEquipement: this.actor.computePrixTotalEquipement(),
|
prixTotalEquipement: this.actor.computePrixTotalEquipement(),
|
||||||
encTotal: await this.actor.computeEncombrementTotalEtMalusArmure(),
|
encTotal: await this.actor.computeEncTotal(),
|
||||||
}
|
}
|
||||||
|
|
||||||
this.objetVersConteneur = RdDUtility.buildArbreDeConteneurs(formData.conteneurs, formData.objets);
|
this.objetVersConteneur = RdDUtility.buildArbreDeConteneurs(formData.conteneurs, formData.objets);
|
||||||
|
this._appliquerRechercheObjets(formData.objets, formData.conteneurs);
|
||||||
formData.conteneurs = RdDUtility.conteneursRacine(formData.conteneurs);
|
formData.conteneurs = RdDUtility.conteneursRacine(formData.conteneurs);
|
||||||
|
|
||||||
|
|
||||||
return formData;
|
return formData;
|
||||||
}
|
}
|
||||||
|
|
||||||
toSolsDeniers(fortune) {
|
_appliquerRechercheObjets(objets, conteneurs) {
|
||||||
return {
|
if (this.options.recherche?.text) {
|
||||||
sols: Math.floor(fortune),
|
const recherche = this.options.recherche;
|
||||||
deniers: Math.round(100 * (fortune - Math.floor(fortune)))
|
const allVisible = objets.filter(it => it.isNomTypeLike(recherche.text)).map(it => it.id);
|
||||||
};
|
let addVisible = conteneurs.filter(it => it.isNomTypeLike(recherche.text)).map(it => it.id)
|
||||||
|
do {
|
||||||
|
allVisible.push(...addVisible)
|
||||||
|
const parentsIds = conteneurs.filter(it => it.system.contenu.find(id => allVisible.includes(id))).map(it => it.id)
|
||||||
|
addVisible = parentsIds.filter(id => !allVisible.includes(id))
|
||||||
|
}
|
||||||
|
while (addVisible.length > 0)
|
||||||
|
objets.forEach(it => it.system.isHidden = !allVisible.includes(it.id))
|
||||||
|
conteneurs.forEach(it => it.system.isHidden = !allVisible.includes(it.id))
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
objets.forEach(it => it.system.isHidden = false)
|
||||||
|
conteneurs.forEach(it => it.system.isHidden = false)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
filterItemsPerTypeForSheet(formData, itemTypes) {
|
static filterItemsPerTypeForSheet(formData, itemTypes) {
|
||||||
formData.services = Misc.arrayOrEmpty(itemTypes['service']);
|
formData.blessures = Misc.arrayOrEmpty(itemTypes['blessure']);
|
||||||
formData.recettescuisine = Misc.arrayOrEmpty(itemTypes['recettecuisine']);
|
formData.recettescuisine = Misc.arrayOrEmpty(itemTypes['recettecuisine']);
|
||||||
formData.recettesAlchimiques = Misc.arrayOrEmpty(itemTypes['recettealchimique']);
|
formData.recettesAlchimiques = Misc.arrayOrEmpty(itemTypes['recettealchimique']);
|
||||||
formData.maladies = Misc.arrayOrEmpty(itemTypes['maladie']);
|
formData.maladies = Misc.arrayOrEmpty(itemTypes['maladie']);
|
||||||
@@ -100,36 +104,26 @@ export class RdDBaseActorSheet extends ActorSheet {
|
|||||||
formData.oeuvres = Misc.arrayOrEmpty(itemTypes['oeuvre']);
|
formData.oeuvres = Misc.arrayOrEmpty(itemTypes['oeuvre']);
|
||||||
formData.jeux = Misc.arrayOrEmpty(itemTypes['jeu']);
|
formData.jeux = Misc.arrayOrEmpty(itemTypes['jeu']);
|
||||||
|
|
||||||
|
formData.services = Misc.arrayOrEmpty(itemTypes['service']);
|
||||||
formData.conteneurs = Misc.arrayOrEmpty(itemTypes['conteneur']);
|
formData.conteneurs = Misc.arrayOrEmpty(itemTypes['conteneur']);
|
||||||
|
|
||||||
formData.materiel = Misc.arrayOrEmpty(itemTypes['objet']);
|
formData.materiel = Misc.arrayOrEmpty(itemTypes['objet']);
|
||||||
formData.armes = Misc.arrayOrEmpty(itemTypes['arme']);
|
formData.armes = Misc.arrayOrEmpty(itemTypes['arme']);
|
||||||
formData.armures = Misc.arrayOrEmpty(itemTypes['armure']);
|
formData.armures = Misc.arrayOrEmpty(itemTypes['armure']);
|
||||||
formData.munitions = Misc.arrayOrEmpty(itemTypes['munition']);
|
formData.munitions = Misc.arrayOrEmpty(itemTypes['munition']);
|
||||||
formData.livres = Misc.arrayOrEmpty(itemTypes['livre']);
|
formData.livres = Misc.arrayOrEmpty(itemTypes['livre']);
|
||||||
formData.potions = Misc.arrayOrEmpty(itemTypes['potion']);
|
formData.potions = Misc.arrayOrEmpty(itemTypes['potion']);
|
||||||
|
formData.plantes = Misc.arrayOrEmpty(itemTypes['plante']);
|
||||||
formData.ingredients = Misc.arrayOrEmpty(itemTypes['ingredient']);
|
formData.ingredients = Misc.arrayOrEmpty(itemTypes['ingredient']);
|
||||||
formData.faunes = Misc.arrayOrEmpty(itemTypes['faune']);
|
formData.faunes = Misc.arrayOrEmpty(itemTypes['faune']);
|
||||||
formData.herbes = Misc.arrayOrEmpty(itemTypes['herbe']);
|
formData.herbes = Misc.arrayOrEmpty(itemTypes['herbe']);
|
||||||
formData.nourritureboissons = Misc.arrayOrEmpty(itemTypes['nourritureboisson']);
|
formData.nourritureboissons = Misc.arrayOrEmpty(itemTypes['nourritureboisson']);
|
||||||
formData.gemmes = Misc.arrayOrEmpty(itemTypes['gemme']);
|
formData.gemmes = Misc.arrayOrEmpty(itemTypes['gemme']);
|
||||||
|
|
||||||
formData.monnaie = Misc.arrayOrEmpty(itemTypes['monnaie']).sort(Monnaie.triValeurEntiere());
|
formData.monnaie = Misc.arrayOrEmpty(itemTypes['monnaie']).sort(Monnaie.triValeurEntiere());
|
||||||
|
|
||||||
formData.objets = formData.conteneurs
|
formData.objets = RdDItem.getItemTypesInventaire('all')
|
||||||
.concat(formData.materiel)
|
.map(t => Misc.arrayOrEmpty(itemTypes[t]))
|
||||||
.concat(formData.armes)
|
.reduce((a, b) => a.concat(b), [])
|
||||||
.concat(formData.armures)
|
.sort(Misc.ascending(it => it.name));
|
||||||
.concat(formData.munitions)
|
|
||||||
.concat(formData.livres)
|
|
||||||
.concat(formData.potions)
|
|
||||||
.concat(formData.ingredients)
|
|
||||||
.concat(formData.herbes)
|
|
||||||
.concat(formData.faunes)
|
|
||||||
.concat(formData.monnaie)
|
|
||||||
.concat(formData.nourritureboissons)
|
|
||||||
.concat(formData.gemmes);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/* -------------------------------------------- */ /** @override */
|
/* -------------------------------------------- */ /** @override */
|
||||||
@@ -138,22 +132,28 @@ export class RdDBaseActorSheet extends ActorSheet {
|
|||||||
this.html = html;
|
this.html = html;
|
||||||
|
|
||||||
this.html.find('.conteneur-name a').click(async event => {
|
this.html.find('.conteneur-name a').click(async event => {
|
||||||
RdDUtility.toggleAfficheContenu(RdDSheetUtility.getItemId(event));
|
RdDUtility.toggleAfficheContenu(this.getItemId(event));
|
||||||
this.render(true);
|
this.render(true);
|
||||||
});
|
});
|
||||||
this.html.find('.item-edit').click(async event => RdDSheetUtility.getItem(event, this.actor)?.sheet.render(true))
|
this.html.find('.item-edit').click(async event => this.getItem(event)?.sheet.render(true))
|
||||||
this.html.find('.item-montrer').click(async event => RdDSheetUtility.getItem(event, this.actor)?.postItemToChat());
|
this.html.find('.item-montrer').click(async event => this.getItem(event)?.postItemToChat());
|
||||||
this.html.find('.actor-montrer').click(async event => this.actor.postActorToChat());
|
this.html.find('.actor-montrer').click(async event => this.actor.postActorToChat());
|
||||||
|
this.html.find('.recherche')
|
||||||
|
.each((index, field) => {
|
||||||
|
this._rechercheSelectArea(field);
|
||||||
|
})
|
||||||
|
.keyup(async event => this._rechercherKeyup(event))
|
||||||
|
.change(async event => this._rechercherKeyup(event));
|
||||||
|
this.html.find('.recherche').prop( "disabled", false );
|
||||||
// Everything below here is only needed if the sheet is editable
|
// Everything below here is only needed if the sheet is editable
|
||||||
if (!this.options.editable) return;
|
if (!this.options.editable) return;
|
||||||
|
|
||||||
this.html.find('.item-split').click(async event => {
|
this.html.find('.item-split').click(async event => {
|
||||||
const item = RdDSheetUtility.getItem(event, this.actor);
|
const item = this.getItem(event);
|
||||||
RdDSheetUtility.splitItem(item, this.actor);
|
RdDSheetUtility.splitItem(item, this.actor);
|
||||||
});
|
});
|
||||||
this.html.find('.item-delete').click(async event => RdDUtility.confirmActorItemDelete(this, RdDSheetUtility.getItem(event, this.actor)));
|
this.html.find('.item-delete').click(async event => RdDUtility.confirmActorItemDelete(this, this.getItem(event)));
|
||||||
this.html.find('.item-vendre').click(async event => RdDSheetUtility.getItem(event, this.actor)?.proposerVente());
|
this.html.find('.item-vendre').click(async event => this.vendre(this.getItem(event)));
|
||||||
|
|
||||||
this.html.find('.creer-un-objet').click(async event => {
|
this.html.find('.creer-un-objet').click(async event => {
|
||||||
this.selectObjetTypeToCreate();
|
this.selectObjetTypeToCreate();
|
||||||
@@ -162,15 +162,53 @@ export class RdDBaseActorSheet extends ActorSheet {
|
|||||||
this.actor.nettoyerConteneurs();
|
this.actor.nettoyerConteneurs();
|
||||||
});
|
});
|
||||||
this.html.find('.monnaie-plus').click(async event => {
|
this.html.find('.monnaie-plus').click(async event => {
|
||||||
this.actor.monnaieIncDec(RdDSheetUtility.getItemId(event), 1);
|
this.actor.monnaieIncDec(this.getItemId(event), 1);
|
||||||
});
|
});
|
||||||
this.html.find('.monnaie-moins').click(async event => {
|
this.html.find('.monnaie-moins').click(async event => {
|
||||||
this.actor.monnaieIncDec(RdDSheetUtility.getItemId(event), -1);
|
this.actor.monnaieIncDec(this.getItemId(event), -1);
|
||||||
});
|
});
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
_rechercherKeyup(event) {
|
||||||
|
const currentTarget = event.currentTarget;
|
||||||
|
const nouvelleRecherche = this._optionRecherche(currentTarget);
|
||||||
|
if (this.options.recherche?.text != nouvelleRecherche?.text) {
|
||||||
|
this.options.recherche = nouvelleRecherche;
|
||||||
|
if (this.timerRecherche) {
|
||||||
|
clearTimeout(this.timerRecherche);
|
||||||
|
}
|
||||||
|
this.timerRecherche = setTimeout(() => {
|
||||||
|
this.timerRecherche = undefined;
|
||||||
|
this.render(true);
|
||||||
|
}, 500);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
_rechercheSelectArea(field) {
|
||||||
|
if (this.options.recherche) {
|
||||||
|
field.focus();
|
||||||
|
field.setSelectionRange(this.options.recherche.start, this.options.recherche.end);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
getItemId(event) {
|
||||||
|
return RdDSheetUtility.getItemId(event);
|
||||||
|
}
|
||||||
|
|
||||||
|
getItem(event) {
|
||||||
|
return RdDSheetUtility.getItem(event, this.actor);
|
||||||
|
}
|
||||||
|
|
||||||
|
_optionRecherche(target) {
|
||||||
|
if (!target.value?.length) {
|
||||||
|
return undefined;
|
||||||
|
}
|
||||||
|
return {
|
||||||
|
text: target.value,
|
||||||
|
start: target.selectionStart,
|
||||||
|
end: target.selectionEnd,
|
||||||
|
};
|
||||||
|
}
|
||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
_getHeaderButtons() {
|
_getHeaderButtons() {
|
||||||
let buttons = super._getHeaderButtons();
|
let buttons = super._getHeaderButtons();
|
||||||
@@ -185,7 +223,7 @@ export class RdDBaseActorSheet extends ActorSheet {
|
|||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
async _onDropItem(event, dragData) {
|
async _onDropItem(event, dragData) {
|
||||||
const destItemId = this.html.find(event.target)?.closest('.item').attr('data-item-id')
|
const destItemId = this.html.find(event.target)?.closest('.item').attr('data-item-id')
|
||||||
const dropParams = RdDSheetUtility.prepareItemDropParameters(destItemId, this.actor, dragData, this.objetVersConteneur)
|
const dropParams = await RdDSheetUtility.prepareItemDropParameters(destItemId, this.actor, dragData, this.objetVersConteneur)
|
||||||
if (dropParams) {
|
if (dropParams) {
|
||||||
const callSuper = await this.actor.processDropItem(dropParams)
|
const callSuper = await this.actor.processDropItem(dropParams)
|
||||||
if (callSuper) {
|
if (callSuper) {
|
||||||
@@ -194,10 +232,9 @@ export class RdDBaseActorSheet extends ActorSheet {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
async selectObjetTypeToCreate() {
|
async selectObjetTypeToCreate() {
|
||||||
let typeObjets = RdDItem.getItemTypesInventaire();
|
let typeObjets = this.getTypesInventaire().sort(Misc.ascending(type => Misc.typeName('Item', type)));
|
||||||
let content = `<span class="competence-label">Selectionnez le type d'équipement</span><select class="item-type">`;
|
let content = `<span class="competence-label">Selectionnez le type d'équipement</span><select class="item-type">`;
|
||||||
for (let typeName of typeObjets) {
|
for (let typeName of typeObjets) {
|
||||||
content += `<option value="${typeName}">${Misc.typeName('Item', typeName)}</option>`
|
content += `<option value="${typeName}">${Misc.typeName('Item', typeName)}</option>`
|
||||||
@@ -217,6 +254,10 @@ export class RdDBaseActorSheet extends ActorSheet {
|
|||||||
d.render(true);
|
d.render(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
getTypesInventaire() {
|
||||||
|
return RdDItem.getItemTypesInventaire();
|
||||||
|
}
|
||||||
|
|
||||||
/** @override */
|
/** @override */
|
||||||
setPosition(options = {}) {
|
setPosition(options = {}) {
|
||||||
const position = super.setPosition(options);
|
const position = super.setPosition(options);
|
||||||
@@ -253,4 +294,8 @@ export class RdDBaseActorSheet extends ActorSheet {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
vendre(item) {
|
||||||
|
item?.proposerVente(this.actor.getQuantiteDisponible(item));
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,8 +1,11 @@
|
|||||||
|
import { ChatUtility } from "../chat-utility.js";
|
||||||
import { SYSTEM_SOCKET_ID } from "../constants.js";
|
import { SYSTEM_SOCKET_ID } from "../constants.js";
|
||||||
import { Monnaie } from "../item-monnaie.js";
|
import { Monnaie } from "../item-monnaie.js";
|
||||||
import { Misc } from "../misc.js";
|
import { Misc } from "../misc.js";
|
||||||
|
import { RdDAudio } from "../rdd-audio.js";
|
||||||
import { RdDUtility } from "../rdd-utility.js";
|
import { RdDUtility } from "../rdd-utility.js";
|
||||||
import { SystemCompendiums } from "../settings/system-compendiums.js";
|
import { SystemCompendiums } from "../settings/system-compendiums.js";
|
||||||
|
import { APP_ASTROLOGIE_REFRESH } from "../sommeil/app-astrologie.js";
|
||||||
|
|
||||||
export class RdDBaseActor extends Actor {
|
export class RdDBaseActor extends Actor {
|
||||||
|
|
||||||
@@ -18,14 +21,16 @@ export class RdDBaseActor extends Actor {
|
|||||||
Hooks.on("updateActor", (actor, change, options, actorId) => actor.onUpdateActor(change, options, actorId));
|
Hooks.on("updateActor", (actor, change, options, actorId) => actor.onUpdateActor(change, options, actorId));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
static onSocketMessage(sockmsg) {
|
static onSocketMessage(sockmsg) {
|
||||||
switch (sockmsg.msg) {
|
switch (sockmsg.msg) {
|
||||||
case "msg_remote_actor_call":
|
case "msg_remote_actor_call":
|
||||||
return RdDBaseActor.onRemoteActorCall(sockmsg.data, sockmsg.userId);
|
return RdDBaseActor.onRemoteActorCall(sockmsg.data, sockmsg.userId);
|
||||||
case "msg_reset_nombre_astral":
|
case "msg_reset_nombre_astral":
|
||||||
console.log("RESET ASTRAL", game.user.character);
|
game.user.character.resetNombresAstraux();
|
||||||
game.user.character.resetNombreAstral();
|
game.system.rdd.calendrier.notifyChangeNombresAstraux();
|
||||||
|
return;
|
||||||
|
case "msg_refresh_nombre_astral":
|
||||||
|
Hooks.callAll(APP_ASTROLOGIE_REFRESH);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -73,14 +78,14 @@ export class RdDBaseActor extends Actor {
|
|||||||
if (actorData.items) {
|
if (actorData.items) {
|
||||||
return await super.create(actorData, options);
|
return await super.create(actorData, options);
|
||||||
}
|
}
|
||||||
|
actorData.items = [];
|
||||||
if (actorData.type == "personnage") {
|
if (actorData.type == "personnage") {
|
||||||
const competences = await SystemCompendiums.getCompetences(actorData.type);
|
const competences = await SystemCompendiums.getCompetences(actorData.type);
|
||||||
actorData.items = competences.map(i => i.toObject())
|
actorData.items = actorData.items.concat(competences.map(i => i.toObject()))
|
||||||
.concat(Monnaie.monnaiesStandard());
|
.concat(Monnaie.monnaiesStandard());
|
||||||
}
|
}
|
||||||
else {
|
else if (actorData.type == "commerce") {
|
||||||
actorData.items = [];
|
actorData.items = actorData.items.concat(Monnaie.monnaiesStandard());
|
||||||
}
|
}
|
||||||
return super.create(actorData, options);
|
return super.create(actorData, options);
|
||||||
}
|
}
|
||||||
@@ -120,9 +125,11 @@ export class RdDBaseActor extends Actor {
|
|||||||
?? Misc.findFirstLike(idOrName, this.listItems(type), { description: Misc.typeName('Item', type) });
|
?? Misc.findFirstLike(idOrName, this.listItems(type), { description: Misc.typeName('Item', type) });
|
||||||
}
|
}
|
||||||
|
|
||||||
|
getMonnaie(id) { return this.findItemLike(id, 'monnaie'); }
|
||||||
|
|
||||||
recompute() { }
|
recompute() { }
|
||||||
|
|
||||||
|
|
||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
async onPreUpdateItem(item, change, options, id) { }
|
async onPreUpdateItem(item, change, options, id) { }
|
||||||
|
|
||||||
@@ -132,11 +139,236 @@ export class RdDBaseActor extends Actor {
|
|||||||
|
|
||||||
async onUpdateActor(update, options, actorId) { }
|
async onUpdateActor(update, options, actorId) { }
|
||||||
|
|
||||||
|
async onTimeChanging(oldTimestamp, newTimestamp) {
|
||||||
|
this.items.filter(it => it.isFinPeriode(oldTimestamp, newTimestamp))
|
||||||
|
.forEach(async it => await it.onFinPeriodeTemporel(oldTimestamp, newTimestamp))
|
||||||
|
}
|
||||||
|
|
||||||
|
/* -------------------------------------------- */
|
||||||
getFortune() {
|
getFortune() {
|
||||||
return Monnaie.getFortune(this.itemTypes['monnaie']);
|
return Monnaie.getFortune(this.itemTypes['monnaie']);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* -------------------------------------------- */
|
||||||
|
async monnaieIncDec(id, value) {
|
||||||
|
let monnaie = this.getMonnaie(id);
|
||||||
|
if (monnaie) {
|
||||||
|
const quantite = Math.max(0, monnaie.system.quantite + value);
|
||||||
|
await this.updateEmbeddedDocuments('Item', [{ _id: monnaie.id, 'system.quantite': quantite }]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
computePrixTotalEquipement() {
|
||||||
|
return this.items.filter(it => it.isInventaire())
|
||||||
|
.filter(it => !it.isMonnaie())
|
||||||
|
.map(it => it.valeurTotale())
|
||||||
|
.reduce(Misc.sum(), 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
async payerSols(depense) {
|
||||||
|
depense = Number(depense);
|
||||||
|
if (depense == 0) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
let fortune = this.getFortune();
|
||||||
|
console.log("payer", game.user.character, depense, fortune);
|
||||||
|
let msg = "";
|
||||||
|
if (fortune >= depense) {
|
||||||
|
await Monnaie.optimiserFortune(this, fortune - depense);
|
||||||
|
msg = `Vous avez payé <strong>${depense} Sols</strong>, qui ont été soustraits de votre argent.`;
|
||||||
|
RdDAudio.PlayContextAudio("argent"); // Petit son
|
||||||
|
} else {
|
||||||
|
msg = "Vous n'avez pas assez d'argent pour payer cette somme !";
|
||||||
|
}
|
||||||
|
|
||||||
|
let message = {
|
||||||
|
whisper: ChatUtility.getWhisperRecipientsAndGMs(this.name),
|
||||||
|
content: msg
|
||||||
|
};
|
||||||
|
ChatMessage.create(message);
|
||||||
|
}
|
||||||
|
|
||||||
|
async depenserSols(sols) {
|
||||||
|
let reste = this.getFortune() - Number(sols);
|
||||||
|
if (reste >= 0) {
|
||||||
|
await Monnaie.optimiserFortune(this, reste);
|
||||||
|
}
|
||||||
|
return reste;
|
||||||
|
}
|
||||||
|
|
||||||
|
async ajouterSols(sols, fromActorId = undefined) {
|
||||||
|
sols = Number(sols);
|
||||||
|
if (sols == 0) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
if (sols < 0) {
|
||||||
|
ui.notifications.error(`Impossible d'ajouter un gain de ${sols} <0`);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
if (fromActorId && !game.user.isGM) {
|
||||||
|
RdDBaseActor.remoteActorCall({
|
||||||
|
userId: Misc.connectedGMOrUser(),
|
||||||
|
actorId: this.id,
|
||||||
|
method: 'ajouterSols', args: [sols, fromActorId]
|
||||||
|
});
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
const fromActor = game.actors.get(fromActorId)
|
||||||
|
await Monnaie.optimiserFortune(this, sols + this.getFortune());
|
||||||
|
|
||||||
|
RdDAudio.PlayContextAudio("argent"); // Petit son
|
||||||
|
ChatMessage.create({
|
||||||
|
whisper: ChatUtility.getWhisperRecipientsAndGMs(this.name),
|
||||||
|
content: `Vous avez reçu <strong>${sols} Sols</strong> ${fromActor ? " de " + fromActor.name : ''}, qui ont été ajoutés à votre argent.`
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/* -------------------------------------------- */
|
||||||
|
|
||||||
|
getQuantiteDisponible(item) {
|
||||||
|
return item?.isService() ? undefined : item?.getQuantite();
|
||||||
|
}
|
||||||
|
|
||||||
|
/* -------------------------------------------- */
|
||||||
|
async achatVente(achat) {
|
||||||
|
if (achat.vendeurId == achat.acheteurId) {
|
||||||
|
ui.notifications.info("Inutile de se vendre à soi-même");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
if (!Misc.isUniqueConnectedGM()) {
|
||||||
|
RdDBaseActor.remoteActorCall({
|
||||||
|
actorId: achat.vendeurId ?? achat.acheteurId,
|
||||||
|
method: 'achatVente',
|
||||||
|
args: [achat]
|
||||||
|
});
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
const cout = Number(achat.prixTotal ?? 0);
|
||||||
|
const vendeur = achat.vendeurId ? game.actors.get(achat.vendeurId) : undefined;
|
||||||
|
const acheteur = achat.acheteurId ? game.actors.get(achat.acheteurId) : undefined;
|
||||||
|
const vente = achat.vente;
|
||||||
|
const quantite = (achat.choix.nombreLots ?? 1) * (vente.tailleLot);
|
||||||
|
const itemVendu = vendeur?.getItem(vente.item._id);
|
||||||
|
if (!this.verifierQuantite(vendeur, itemVendu, quantite)) {
|
||||||
|
ChatUtility.notifyUser(achat.userId, 'warn', `Le vendeur n'a pas assez de ${itemVendu.name} !`);
|
||||||
|
return
|
||||||
|
}
|
||||||
|
if (acheteur && !acheteur.verifierFortune(cout)) {
|
||||||
|
ChatUtility.notifyUser(achat.userId, 'warn', `Vous n'avez pas assez d'argent pour payer ${Math.ceil(cout / 100)} sols !`);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
await this.decrementerVente(vendeur, itemVendu, quantite, cout);
|
||||||
|
if (acheteur) {
|
||||||
|
await acheteur.depenserSols(cout);
|
||||||
|
const createdItemId = await acheteur.creerQuantiteItem(vente.item, quantite);
|
||||||
|
await acheteur.consommerNourritureAchetee(achat, vente, createdItemId);
|
||||||
|
}
|
||||||
|
if (cout > 0) {
|
||||||
|
RdDAudio.PlayContextAudio("argent");
|
||||||
|
}
|
||||||
|
const chatAchatItem = duplicate(vente);
|
||||||
|
chatAchatItem.quantiteTotal = quantite;
|
||||||
|
ChatMessage.create({
|
||||||
|
user: achat.userId,
|
||||||
|
speaker: { alias: (acheteur ?? vendeur).name },
|
||||||
|
whisper: ChatUtility.getWhisperRecipientsAndGMs(this.name),
|
||||||
|
content: await renderTemplate('systems/foundryvtt-reve-de-dragon/templates/chat-achat-item.html', chatAchatItem)
|
||||||
|
});
|
||||||
|
|
||||||
|
if (!vente.quantiteIllimite) {
|
||||||
|
if (vente.quantiteNbLots <= achat.choix.nombreLots) {
|
||||||
|
ChatUtility.removeChatMessageId(achat.chatMessageIdVente);
|
||||||
|
}
|
||||||
|
else if (achat.chatMessageIdVente) {
|
||||||
|
vente["properties"] = itemVendu.getProprietes();
|
||||||
|
vente.quantiteNbLots -= achat.choix.nombreLots;
|
||||||
|
vente.jsondata = JSON.stringify(vente.item);
|
||||||
|
const messageVente = game.messages.get(achat.chatMessageIdVente);
|
||||||
|
messageVente.update({ content: await renderTemplate('systems/foundryvtt-reve-de-dragon/templates/chat-vente-item.html', vente) });
|
||||||
|
messageVente.render(true);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
async decrementerVente(vendeur, itemVendu, quantite, cout) {
|
||||||
|
if (vendeur) {
|
||||||
|
await vendeur.ajouterSols(cout);
|
||||||
|
await vendeur.decrementerQuantiteItem(itemVendu, quantite);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
verifierFortune(cout) {
|
||||||
|
return this.getFortune() >= cout;
|
||||||
|
}
|
||||||
|
|
||||||
|
verifierQuantite(vendeur, item, quantiteTotal) {
|
||||||
|
const disponible = vendeur?.getQuantiteDisponible(item);
|
||||||
|
return disponible == undefined || disponible >= quantiteTotal;
|
||||||
|
}
|
||||||
|
|
||||||
|
async consommerNourritureAchetee(achat, vente, createdItemId) {
|
||||||
|
if (achat.choix.consommer && vente.item.type == 'nourritureboisson' && createdItemId != undefined) {
|
||||||
|
achat.choix.doses = achat.choix.nombreLots;
|
||||||
|
await this.consommerNourritureboisson(createdItemId, achat.choix, vente.actingUserId);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
async decrementerQuantiteItem(item, quantite, options = { supprimerSiZero: true }) {
|
||||||
|
if (item.isService()) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
let resteQuantite = (item.system.quantite ?? 1) - quantite;
|
||||||
|
if (resteQuantite <= 0) {
|
||||||
|
if (options.supprimerSiZero) {
|
||||||
|
await this.deleteEmbeddedDocuments("Item", [item.id]);
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
await this.updateEmbeddedDocuments("Item", [{ _id: item.id, 'system.quantite': 0 }]);
|
||||||
|
}
|
||||||
|
if (resteQuantite < 0) {
|
||||||
|
ui.notifications.warn(`La quantité de ${item.name} était insuffisante, l'objet a donc été supprimé`)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else if (resteQuantite > 0) {
|
||||||
|
await this.updateEmbeddedDocuments("Item", [{ _id: item.id, 'system.quantite': resteQuantite }]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
async creerQuantiteItem(item, quantite) {
|
||||||
|
if (this.canReceive(item)) {
|
||||||
|
const isItemEmpilable = "quantite" in item.system;
|
||||||
|
const baseItem = {
|
||||||
|
type: item.type,
|
||||||
|
img: item.img,
|
||||||
|
name: item.name,
|
||||||
|
system: mergeObject(item.system, { quantite: isItemEmpilable ? quantite : undefined })
|
||||||
|
};
|
||||||
|
const newItems = isItemEmpilable ? [baseItem] : Array.from({ length: quantite }, (_, i) => baseItem);
|
||||||
|
const items = await this.createEmbeddedDocuments("Item", newItems);
|
||||||
|
return items.length > 0 ? items[0].id : undefined;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/* -------------------------------------------- */
|
||||||
|
computeMalusSurEncombrement() {
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
getEncombrementMax() {
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
async computeEncTotal() {
|
||||||
|
if (!this.pack) {
|
||||||
|
this.encTotal = this.items.map(it => it.getEncTotal()).reduce(Misc.sum(), 0);
|
||||||
|
return this.encTotal;
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
async createItem(type, name = undefined) {
|
async createItem(type, name = undefined) {
|
||||||
if (!name) {
|
if (!name) {
|
||||||
name = 'Nouveau ' + Misc.typeName('Item', type);
|
name = 'Nouveau ' + Misc.typeName('Item', type);
|
||||||
@@ -148,6 +380,237 @@ export class RdDBaseActor extends Actor {
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
async processDropItem(params) {
|
||||||
|
const targetActorId = this.id;
|
||||||
|
const sourceActorId = params.sourceActorId;
|
||||||
|
const itemId = params.itemId;
|
||||||
|
const destId = params.destId;
|
||||||
|
const srcId = params.srcId;
|
||||||
|
if (sourceActorId && sourceActorId != targetActorId) {
|
||||||
|
console.log("Moving objects", sourceActorId, targetActorId, itemId);
|
||||||
|
this.moveItemsBetweenActors(itemId, sourceActorId);
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
let result = true;
|
||||||
|
const item = this.getItem(itemId);
|
||||||
|
if (item?.isInventaire('all') && sourceActorId == targetActorId) {
|
||||||
|
// rangement
|
||||||
|
if (srcId != destId && itemId != destId) { // déplacement de l'objet
|
||||||
|
const src = this.getItem(srcId);
|
||||||
|
const dest = this.getItem(destId);
|
||||||
|
const cible = this.getContenantOrParent(dest);
|
||||||
|
const [empilable, message] = item.isInventaireEmpilable(dest);
|
||||||
|
if (empilable) {
|
||||||
|
await dest.empiler(item)
|
||||||
|
result = false;
|
||||||
|
}
|
||||||
|
// changer de conteneur
|
||||||
|
else if (!cible || this.conteneurPeutContenir(cible, item)) {
|
||||||
|
await this.enleverDeConteneur(item, src, params.onEnleverConteneur);
|
||||||
|
await this.ajouterDansConteneur(item, cible, params.onAjouterDansConteneur);
|
||||||
|
if (message && !dest.isConteneur()) {
|
||||||
|
ui.notifications.info(cible
|
||||||
|
? `${message}<br>${item.name} a été déplacé dans: ${cible.name}`
|
||||||
|
: `${message}<br>${item.name} a été sorti du conteneur`);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
await this.computeEncTotal();
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
getContenantOrParent(dest) {
|
||||||
|
if (!dest || dest.isConteneur()) {
|
||||||
|
return dest;
|
||||||
|
}
|
||||||
|
return this.getContenant(dest);
|
||||||
|
}
|
||||||
|
|
||||||
|
getContenant(item) {
|
||||||
|
return this.itemTypes['conteneur'].find(it => it.system.contenu.includes(item.id));
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/* -------------------------------------------- */
|
||||||
|
conteneurPeutContenir(dest, item) {
|
||||||
|
if (!dest) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
if (!dest.isConteneur()) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
const destData = dest
|
||||||
|
if (this._isConteneurContenu(item, dest)) {
|
||||||
|
ui.notifications.warn(`Impossible de déplacer un conteneur parent (${item.name}) dans un de ses contenus ${destData.name} !`);
|
||||||
|
return false; // Loop detected !
|
||||||
|
}
|
||||||
|
|
||||||
|
// Calculer le total actuel des contenus
|
||||||
|
let encContenu = this.getRecursiveEnc(dest) - Number(destData.system.encombrement);
|
||||||
|
let newEnc = this.getRecursiveEnc(item); // Calculer le total actuel du nouvel objet
|
||||||
|
|
||||||
|
// Teste si le conteneur de destination a suffisament de capacité pour recevoir le nouvel objet
|
||||||
|
if (Number(destData.system.capacite) < encContenu + newEnc) {
|
||||||
|
ui.notifications.warn(
|
||||||
|
`Le conteneur ${dest.name} a une capacité de ${destData.system.capacite}, et contient déjà ${encContenu}.
|
||||||
|
Impossible d'y ranger: ${item.name} d'encombrement ${newEnc}!`);
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* -------------------------------------------- */
|
||||||
|
_isConteneurContenu(item, conteneur) {
|
||||||
|
if (item?.isConteneur()) { // Si c'est un conteneur, il faut vérifier qu'on ne le déplace pas vers un sous-conteneur lui appartenant
|
||||||
|
for (let id of item.system.contenu) {
|
||||||
|
let subObjet = this.getItem(id);
|
||||||
|
if (subObjet?.id == conteneur.id) {
|
||||||
|
return true; // Loop detected !
|
||||||
|
}
|
||||||
|
if (subObjet?.isConteneur()) {
|
||||||
|
return this._isConteneurContenu(subObjet, conteneur);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
/* -------------------------------------------- */
|
||||||
|
getRecursiveEnc(objet) {
|
||||||
|
if (!objet) {
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
const tplData = objet.system;
|
||||||
|
if (objet.type != 'conteneur') {
|
||||||
|
return Number(tplData.encombrement) * Number(tplData.quantite);
|
||||||
|
}
|
||||||
|
const encContenus = tplData.contenu.map(idContenu => this.getRecursiveEnc(this.getItem(idContenu)));
|
||||||
|
return encContenus.reduce(Misc.sum(), 0)
|
||||||
|
+ Number(tplData.encombrement) /* TODO? Number(tplData.quantite) -- on pourrait avoir plusieurs conteneurs...*/
|
||||||
|
}
|
||||||
|
|
||||||
|
/* -------------------------------------------- */
|
||||||
|
/** Ajoute un item dans un conteneur, sur la base
|
||||||
|
* de leurs ID */
|
||||||
|
async ajouterDansConteneur(item, conteneur, onAjouterDansConteneur) {
|
||||||
|
if (!conteneur) {
|
||||||
|
// TODO: afficher
|
||||||
|
item.estContenu = false;
|
||||||
|
}
|
||||||
|
else if (conteneur.isConteneur()) {
|
||||||
|
item.estContenu = true;
|
||||||
|
await this.updateEmbeddedDocuments('Item', [{
|
||||||
|
_id: conteneur.id,
|
||||||
|
'system.contenu': [...conteneur.system.contenu, item.id]
|
||||||
|
}]);
|
||||||
|
onAjouterDansConteneur(item.id, conteneur.id);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/* -------------------------------------------- */
|
||||||
|
/** Fonction de remise à plat de l'équipement (ie vide les champs 'contenu') */
|
||||||
|
async nettoyerConteneurs() {
|
||||||
|
RdDConfirm.confirmer({
|
||||||
|
settingConfirmer: "confirmation-vider",
|
||||||
|
content: `<p>Etes vous certain de vouloir vider tous les conteneurs ?</p>`,
|
||||||
|
title: 'Vider les conteneurs',
|
||||||
|
buttonLabel: 'Vider',
|
||||||
|
onAction: async () => {
|
||||||
|
const corrections = [];
|
||||||
|
for (let item of this.items) {
|
||||||
|
if (item.estContenu) {
|
||||||
|
item.estContenu = undefined;
|
||||||
|
}
|
||||||
|
if (item.type == 'conteneur' && item.system.contenu.length > 0) {
|
||||||
|
corrections.push({ _id: item.id, 'system.contenu': [] });
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (corrections.length > 0) {
|
||||||
|
await this.updateEmbeddedDocuments('Item', corrections);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
/* -------------------------------------------- */
|
||||||
|
buildSubConteneurObjetList(conteneurId, deleteList) {
|
||||||
|
let conteneur = this.getItem(conteneurId);
|
||||||
|
if (conteneur?.type == 'conteneur') { // Si c'est un conteneur
|
||||||
|
for (let subId of conteneur.system.contenu) {
|
||||||
|
let subObj = this.getItem(subId);
|
||||||
|
if (subObj) {
|
||||||
|
if (subObj.type == 'conteneur') {
|
||||||
|
this.buildSubConteneurObjetList(subId, deleteList);
|
||||||
|
}
|
||||||
|
deleteList.push({ id: subId, conteneurId: conteneurId });
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/* -------------------------------------------- */
|
||||||
|
async deleteAllConteneur(itemId, options) {
|
||||||
|
let list = [];
|
||||||
|
list.push({ id: itemId, conteneurId: undefined }); // Init list
|
||||||
|
this.buildSubConteneurObjetList(itemId, list);
|
||||||
|
await this.deleteEmbeddedDocuments('Item', list.map(it => it.id), options);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* -------------------------------------------- */
|
||||||
|
/** Supprime un item d'un conteneur, sur la base
|
||||||
|
* de leurs ID */
|
||||||
|
async enleverDeConteneur(item, conteneur, onEnleverDeConteneur) {
|
||||||
|
if (conteneur?.isConteneur()) {
|
||||||
|
item.estContenu = false;
|
||||||
|
await this.updateEmbeddedDocuments('Item', [{
|
||||||
|
_id: conteneur.id,
|
||||||
|
'system.contenu': conteneur.system.contenu.filter(id => id != item.id)
|
||||||
|
}]);
|
||||||
|
onEnleverDeConteneur();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/* -------------------------------------------- */
|
||||||
|
async moveItemsBetweenActors(itemId, sourceActorId) {
|
||||||
|
let itemsList = []
|
||||||
|
let sourceActor = game.actors.get(sourceActorId);
|
||||||
|
itemsList.push({ id: itemId, conteneurId: undefined }); // Init list
|
||||||
|
sourceActor.buildSubConteneurObjetList(itemId, itemsList); // Get itemId list
|
||||||
|
|
||||||
|
const itemsDataToCreate = itemsList.map(it => sourceActor.getItem(it.id))
|
||||||
|
.map(it => duplicate(it))
|
||||||
|
.map(it => { it.system.contenu = []; return it; });
|
||||||
|
let newItems = await this.createEmbeddedDocuments('Item', itemsDataToCreate);
|
||||||
|
|
||||||
|
let itemMap = this._buildMapOldNewId(itemsList, newItems);
|
||||||
|
|
||||||
|
for (let item of itemsList) { // Second boucle pour traiter la remise en conteneurs
|
||||||
|
// gestion conteneur/contenu
|
||||||
|
if (item.conteneurId) { // l'Objet était dans un conteneur
|
||||||
|
let newConteneurId = itemMap[item.conteneurId]; // Get conteneur
|
||||||
|
let newConteneur = this.getItem(newConteneurId);
|
||||||
|
|
||||||
|
let newItemId = itemMap[item.id]; // Get newItem
|
||||||
|
|
||||||
|
console.log('New conteneur filling!', newConteneur, newItemId, item);
|
||||||
|
let contenu = duplicate(newConteneur.system.contenu);
|
||||||
|
contenu.push(newItemId);
|
||||||
|
await this.updateEmbeddedDocuments('Item', [{ _id: newConteneurId, 'system.contenu': contenu }]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
for (let item of itemsList) {
|
||||||
|
await sourceActor.deleteEmbeddedDocuments('Item', [item.id]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
_buildMapOldNewId(itemsList, newItems) {
|
||||||
|
let itemMap = {};
|
||||||
|
for (let i = 0; i < itemsList.length; i++) {
|
||||||
|
itemMap[itemsList[i].id] = newItems[i].id; // Pour garder le lien ancien / nouveau
|
||||||
|
}
|
||||||
|
return itemMap;
|
||||||
|
}
|
||||||
|
|
||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
async postActorToChat(modeOverride) {
|
async postActorToChat(modeOverride) {
|
||||||
let chatData = {
|
let chatData = {
|
||||||
|
|||||||
95
module/actor/commerce-sheet.js
Normal file
@@ -0,0 +1,95 @@
|
|||||||
|
import { DialogItemAchat } from "../dialog-item-achat.js";
|
||||||
|
import { RdDItem } from "../item.js";
|
||||||
|
import { RdDSheetUtility } from "../rdd-sheet-utility.js";
|
||||||
|
import { RdDUtility } from "../rdd-utility.js";
|
||||||
|
import { RdDBaseActorSheet } from "./base-actor-sheet.js";
|
||||||
|
import { RdDCommerce } from "./commerce.js";
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Extend the basic ActorSheet with some very simple modifications
|
||||||
|
* @extends {ActorSheet}
|
||||||
|
*/
|
||||||
|
export class RdDCommerceSheet extends RdDBaseActorSheet {
|
||||||
|
|
||||||
|
/** @override */
|
||||||
|
static get defaultOptions() {
|
||||||
|
return mergeObject(super.defaultOptions, {
|
||||||
|
classes: ["rdd", "sheet", "actor"],
|
||||||
|
template: "systems/foundryvtt-reve-de-dragon/templates/actor/commerce-actor-sheet.html",
|
||||||
|
width: 600,
|
||||||
|
height: 720,
|
||||||
|
tabs: [],
|
||||||
|
dragDrop: [{ dragSelector: ".item-list .item", dropSelector: undefined }]
|
||||||
|
});
|
||||||
|
}
|
||||||
|
get title() {
|
||||||
|
if (this.actor.token && this.actor.token != this.actor.prototypeToken) {
|
||||||
|
return this.actor.token.name;
|
||||||
|
}
|
||||||
|
return super.title
|
||||||
|
}
|
||||||
|
|
||||||
|
async getData() {
|
||||||
|
const formData = await super.getData();
|
||||||
|
if (this.actor.token && this.actor.token != this.actor.prototypeToken) {
|
||||||
|
mergeObject(formData,
|
||||||
|
{
|
||||||
|
title: this.actor.token.name,
|
||||||
|
token: {
|
||||||
|
img: this.actor.token.texture.src
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{ overwrite: true });
|
||||||
|
|
||||||
|
}
|
||||||
|
return formData;
|
||||||
|
}
|
||||||
|
/* -------------------------------------------- */
|
||||||
|
/** @override */
|
||||||
|
activateListeners(html) {
|
||||||
|
super.activateListeners(html);
|
||||||
|
|
||||||
|
this.html.find('a.item-acheter').click(async event => await this.vente(this.getItem(event)));
|
||||||
|
|
||||||
|
if (!this.options.editable) return;
|
||||||
|
|
||||||
|
this.html.find('a.item-quantite-moins').click(async event => await this.getItem(event)?.quantiteIncDec(-1, { supprimerSiZero: false }));
|
||||||
|
this.html.find('a.item-quantite-plus').click(async event => await this.getItem(event)?.quantiteIncDec(1));
|
||||||
|
this.html.find('input.item-quantite').change(async event => {
|
||||||
|
const newQuantite = Math.max(0, Number.parseInt(this.html.find(event.currentTarget).val()));
|
||||||
|
await this.getItem(event)?.update({ "system.quantite": newQuantite });
|
||||||
|
})
|
||||||
|
this.html.find('input.item-cout').change(async event => {
|
||||||
|
const newCout = Math.max(0, Number(this.html.find(event.currentTarget).val()));
|
||||||
|
await this.getItem(event)?.update({ "system.cout": newCout });
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
getTypesInventaire() {
|
||||||
|
return RdDItem.getItemTypesInventaire('all');
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
async vente(item) {
|
||||||
|
const acheteur = RdDUtility.getSelectedActor();
|
||||||
|
if (!acheteur) {
|
||||||
|
ui.notifications.warn(`Pas d'acheteur sélectionné`);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
const disponible = this.actor.getQuantiteDisponible(item)
|
||||||
|
if (disponible == 0) {
|
||||||
|
ui.notifications.warn(`${this.name} n'a plus de ${item.name} en vente`);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
await DialogItemAchat.onAcheter({
|
||||||
|
item,
|
||||||
|
vendeur: this.actor,
|
||||||
|
acheteur,
|
||||||
|
quantiteIllimite: disponible == undefined,
|
||||||
|
nbLots: disponible ?? 1,
|
||||||
|
tailleLot: 1,
|
||||||
|
prixLot: item.calculerPrixCommercant()
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
53
module/actor/commerce.js
Normal file
@@ -0,0 +1,53 @@
|
|||||||
|
import { Misc } from "../misc.js";
|
||||||
|
import { RdDBaseActor } from "./base-actor.js";
|
||||||
|
|
||||||
|
export class RdDCommerce extends RdDBaseActor {
|
||||||
|
|
||||||
|
static get defaultIcon() {
|
||||||
|
return "systems/foundryvtt-reve-de-dragon/icons/services/commerce.webp";
|
||||||
|
}
|
||||||
|
|
||||||
|
prepareData() {
|
||||||
|
super.prepareData();
|
||||||
|
}
|
||||||
|
prepareDerivedData() {
|
||||||
|
super.prepareDerivedData();
|
||||||
|
}
|
||||||
|
|
||||||
|
canReceive(item) {
|
||||||
|
if (item.isInventaire('all')) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
return super.canReceive(item);
|
||||||
|
}
|
||||||
|
|
||||||
|
getQuantiteDisponible(item) {
|
||||||
|
return this.system.illimite || item.isService() ? undefined : item.getQuantite();
|
||||||
|
}
|
||||||
|
|
||||||
|
verifierFortune(cout) {
|
||||||
|
return this.system.illimite || super.verifierFortune(cout);
|
||||||
|
}
|
||||||
|
async depenserSols(cout) {
|
||||||
|
if (this.system.illimite) {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
await super.depenserSols(cout)
|
||||||
|
}
|
||||||
|
|
||||||
|
async consommerNourritureAchetee(achat, vente, createdItemId) {
|
||||||
|
// ne pas consommer pour un commerce
|
||||||
|
}
|
||||||
|
|
||||||
|
async decrementerQuantiteItem(item, quantite) {
|
||||||
|
if (this.system.illimite) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
await super.decrementerQuantiteItem(item, quantite, { supprimerSiZero: false });
|
||||||
|
}
|
||||||
|
|
||||||
|
calculerPrix(item) {
|
||||||
|
const pourcentage = this.system.pourcentage ?? 100;
|
||||||
|
return Misc.keepDecimals(Math.ceil(item.system.cout * pourcentage) / 100, 2);
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -1,5 +1,7 @@
|
|||||||
import { SYSTEM_RDD } from "./constants.js";
|
import { SYSTEM_RDD } from "./constants.js";
|
||||||
import { Grammar } from "./grammar.js";
|
import { Grammar } from "./grammar.js";
|
||||||
|
import { HtmlUtility } from "./html-utility.js";
|
||||||
|
import { RdDTimestamp } from "./rdd-timestamp.js";
|
||||||
|
|
||||||
|
|
||||||
const LATEST_USED_JOURNAL_ID = "chronologie-dernier-journal";
|
const LATEST_USED_JOURNAL_ID = "chronologie-dernier-journal";
|
||||||
@@ -16,40 +18,20 @@ export class DialogChronologie extends Dialog {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
static async create() {
|
static async create() {
|
||||||
const dateRdD = game.system.rdd.calendrier.getCalendrier();
|
|
||||||
const dialogData = {
|
const dialogData = {
|
||||||
auteur: game.user.name,
|
auteur: game.user.name,
|
||||||
isGM: game.user.isGM,
|
isGM: game.user.isGM,
|
||||||
information: "",
|
information: "",
|
||||||
journalId: game.settings.get(SYSTEM_RDD, LATEST_USED_JOURNAL_ID),
|
journalId: game.settings.get(SYSTEM_RDD, LATEST_USED_JOURNAL_ID),
|
||||||
journaux: game.journal.filter(it => it.testUserPermission(game.user, CONST.DOCUMENT_OWNERSHIP_LEVELS.OWNER)),
|
journaux: game.journal.filter(it => it.testUserPermission(game.user, CONST.DOCUMENT_OWNERSHIP_LEVELS.OWNER)),
|
||||||
dateRdD: dateRdD,
|
timestamp: game.system.rdd.calendrier.timestamp,
|
||||||
jourRdD: dateRdD.jour +1,
|
|
||||||
heureRdD: game.system.rdd.calendrier.getCurrentHeure(),
|
|
||||||
dateReel: DialogChronologie.getCurrentDateTime()
|
dateReel: DialogChronologie.getCurrentDateTime()
|
||||||
};
|
};
|
||||||
const html = await renderTemplate("systems/foundryvtt-reve-de-dragon/templates/dialog-chronologie.html", dialogData);
|
const html = await renderTemplate("systems/foundryvtt-reve-de-dragon/templates/dialog-chronologie.html", dialogData);
|
||||||
const dialog = new DialogChronologie(html);
|
const dialog = new DialogChronologie(html, dialogData);
|
||||||
dialog.render(true);
|
dialog.render(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
constructor(html) {
|
|
||||||
const options = {
|
|
||||||
classes: ["DialogChronologie"],
|
|
||||||
width: 500,
|
|
||||||
height: 'fit-content',
|
|
||||||
'z-index': 99999
|
|
||||||
};
|
|
||||||
const conf = {
|
|
||||||
title: "Chronologie",
|
|
||||||
content: html,
|
|
||||||
buttons: {
|
|
||||||
ajout: { label: "Ajouter", callback: it => this.ajouter() },
|
|
||||||
}
|
|
||||||
};
|
|
||||||
super(conf, options);
|
|
||||||
}
|
|
||||||
|
|
||||||
static getCurrentDateTime() {
|
static getCurrentDateTime() {
|
||||||
return new Date().toLocaleString("sv-SE", {
|
return new Date().toLocaleString("sv-SE", {
|
||||||
year: "numeric",
|
year: "numeric",
|
||||||
@@ -60,18 +42,61 @@ export class DialogChronologie extends Dialog {
|
|||||||
}).replace(" ", "T");
|
}).replace(" ", "T");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
constructor(html, dialogData) {
|
||||||
|
const options = {
|
||||||
|
classes: ["DialogChronologie"],
|
||||||
|
width: 500,
|
||||||
|
height: 'fit-content',
|
||||||
|
'z-index': 99999
|
||||||
|
};
|
||||||
|
const timeData = dialogData.timestamp.toCalendrier()
|
||||||
|
const conf = {
|
||||||
|
title: `Chronologie - ${timeData.jourDuMois} ${timeData.mois.label} - Heure ${timeData.heure.label}`,
|
||||||
|
content: html,
|
||||||
|
buttons: {
|
||||||
|
}
|
||||||
|
};
|
||||||
|
super(conf, options);
|
||||||
|
this.dialogData = dialogData;
|
||||||
|
}
|
||||||
|
|
||||||
activateListeners(html) {
|
activateListeners(html) {
|
||||||
super.activateListeners(html);
|
|
||||||
this.html = html;
|
this.html = html;
|
||||||
|
super.activateListeners(html);
|
||||||
|
const journalPrecedent = game.journal.get(this.dialogData.journalId);
|
||||||
|
this.showChronologiePreset(!(journalPrecedent?.canUserModify(game.user)))
|
||||||
|
|
||||||
|
this.html.find("a.chronologie-preset-show").click(event => this.showChronologiePreset(true));
|
||||||
|
this.html.find("a.chronologie-preset-hide").click(event => this.showChronologiePreset(false));
|
||||||
|
this.html.find("button.chronologie-ajouter").click(event => this.ajouter());
|
||||||
|
}
|
||||||
|
|
||||||
|
showChronologiePreset(showPreset) {
|
||||||
|
HtmlUtility.showControlWhen(this.html.find(".chronologie-preset-show"), !showPreset);
|
||||||
|
HtmlUtility.showControlWhen(this.html.find(".chronologie-preset-hide"), showPreset);
|
||||||
|
HtmlUtility.showControlWhen(this.html.find(".chronologie-preset"), showPreset);
|
||||||
}
|
}
|
||||||
|
|
||||||
async ajouter() {
|
async ajouter() {
|
||||||
await this.forceValidation();
|
await this.forceValidation();
|
||||||
const { journalId, journalEntry } = this.findJournal();
|
const { journalId, journalEntry } = this.findJournal();
|
||||||
// ajouter à la page ou créer une page
|
if (journalEntry?.canUserModify(game.user)) {
|
||||||
this.addContentToJournal(journalEntry, await this.prepareChronologieEntry());
|
const journalParameters = this.extractJournalParameters();
|
||||||
|
|
||||||
|
const jour = journalParameters.dateRdD.jour;
|
||||||
|
const mois = journalParameters.dateRdD.mois.label;
|
||||||
|
const annee = journalParameters.dateRdD.annee;
|
||||||
|
const section = `${jour} ${mois} ${annee}`
|
||||||
|
const content = await this.prepareChronologieEntry(journalParameters);
|
||||||
|
// ajouter à la page ou créer une page
|
||||||
|
this.addContentToJournal(journalEntry, section, content);
|
||||||
this.storeLatestUsedJournalEntry(journalId);
|
this.storeLatestUsedJournalEntry(journalId);
|
||||||
|
this.close();
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
const journal = this.html.find("form.rdddialogchrono select[name='journalId']").val();
|
||||||
|
ui.notifications.warn(`Le journal ${journal} n'est pas accessible`);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
async forceValidation() {
|
async forceValidation() {
|
||||||
@@ -84,8 +109,8 @@ export class DialogChronologie extends Dialog {
|
|||||||
return { journalId, journalEntry };
|
return { journalId, journalEntry };
|
||||||
}
|
}
|
||||||
|
|
||||||
async prepareChronologieEntry() {
|
async prepareChronologieEntry(journalParameters) {
|
||||||
return await renderTemplate("systems/foundryvtt-reve-de-dragon/templates/chronologie-entry.html", this.extractJournalParameters());
|
return await renderTemplate("systems/foundryvtt-reve-de-dragon/templates/chronologie-entry.html", journalParameters);
|
||||||
}
|
}
|
||||||
|
|
||||||
extractJournalParameters() {
|
extractJournalParameters() {
|
||||||
@@ -93,28 +118,29 @@ export class DialogChronologie extends Dialog {
|
|||||||
auteur: this.html.find("form.rdddialogchrono :input[name='auteur']").val(),
|
auteur: this.html.find("form.rdddialogchrono :input[name='auteur']").val(),
|
||||||
information: this.html.find("form.rdddialogchrono :input[name='information']").val(),
|
information: this.html.find("form.rdddialogchrono :input[name='information']").val(),
|
||||||
dateRdD: {
|
dateRdD: {
|
||||||
jour: this.html.find("form.rdddialogchrono :input[name='jourRdD']").val(),
|
jour: this.html.find("form.rdddialogchrono :input[name='chronologie.jourDuMois']").val(),
|
||||||
moisRdD: this.html.find("form.rdddialogchrono :input[name='dateRdD.moisRdD.key']").val(),
|
mois: RdDTimestamp.definition(this.html.find("form.rdddialogchrono :input[name='chronologie.mois']").val()),
|
||||||
annee: this.html.find("form.rdddialogchrono :input[name='dateRdD.annee']").val()
|
annee: this.html.find("form.rdddialogchrono :input[name='chronologie.annee']").val(),
|
||||||
|
heure: RdDTimestamp.definition(this.html.find("form.rdddialogchrono :input[name='chronologie.heure']").val()),
|
||||||
|
minute: this.html.find("form.rdddialogchrono :input[name='chronologie.minute']").val(),
|
||||||
},
|
},
|
||||||
heureRdD: this.html.find("form.rdddialogchrono :input[name='heureRdD']").val(),
|
|
||||||
dateReel: this.html.find("form.rdddialogchrono :input[name='dateReel']").val().replace('T', ' ')
|
dateReel: this.html.find("form.rdddialogchrono :input[name='dateReel']").val().replace('T', ' ')
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
addContentToJournal(journalEntry, content) {
|
addContentToJournal(journalEntry, section, content) {
|
||||||
let page = journalEntry.pages.find(p => p.type == 'text' && Grammar.equalsInsensitive(p.name, 'Chronologie'));
|
let page = journalEntry.pages.find(p => p.type == 'text' && Grammar.equalsInsensitive(p.name, section));
|
||||||
if (page) {
|
if (page) {
|
||||||
page.update({ 'text.content': content + '\n' + page.text.content });
|
page.update({ 'text.content': page.text.content + '\n' + content });
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
journalEntry.createEmbeddedDocuments('JournalEntryPage', [this.newPageChronologie(content)]);
|
journalEntry.createEmbeddedDocuments('JournalEntryPage', [this.newPageChronologie(section, content)]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
newPageChronologie(content) {
|
newPageChronologie(section, content) {
|
||||||
return new JournalEntryPage({
|
return new JournalEntryPage({
|
||||||
name: 'Chronologie',
|
name: section,
|
||||||
type: 'text',
|
type: 'text',
|
||||||
title: { show: true, level: 1 },
|
title: { show: true, level: 1 },
|
||||||
text: { content: content, format: 1 }
|
text: { content: content, format: 1 }
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
import { ChatUtility } from "./chat-utility.js";
|
import { ChatUtility } from "./chat-utility.js";
|
||||||
import { HtmlUtility } from "./html-utility.js";
|
import { HtmlUtility } from "./html-utility.js";
|
||||||
import { RdDItemSigneDraconique } from "./item-signedraconique.js";
|
import { RdDItemSigneDraconique } from "./item/signedraconique.js";
|
||||||
import { TMRUtility } from "./tmr-utility.js";
|
import { TMRUtility } from "./tmr-utility.js";
|
||||||
|
|
||||||
export class DialogCreateSigneDraconique extends Dialog {
|
export class DialogCreateSigneDraconique extends Dialog {
|
||||||
@@ -98,7 +98,7 @@ export class DialogCreateSigneDraconique extends Dialog {
|
|||||||
|
|
||||||
async setEphemere(ephemere) {
|
async setEphemere(ephemere) {
|
||||||
this.dialogData.signe.system.ephemere = ephemere;
|
this.dialogData.signe.system.ephemere = ephemere;
|
||||||
HtmlUtility._showControlWhen(this.html.find(".signe-system-duree"), ephemere);
|
HtmlUtility.showControlWhen(this.html.find(".signe-system-duree"), ephemere);
|
||||||
}
|
}
|
||||||
|
|
||||||
async onSelectActor(event) {
|
async onSelectActor(event) {
|
||||||
|
|||||||
@@ -30,15 +30,13 @@ export class DialogItemAchat extends Dialog {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
static async onAcheter({ item, vendeur, acheteur, service, serviceSubItem, tailleLot, prixLot, nbLots, quantiteIllimite, chatMessageIdVente }) {
|
static async onAcheter({ item, vendeur, acheteur, tailleLot, prixLot, nbLots, quantiteIllimite, chatMessageIdVente }) {
|
||||||
const venteData = {
|
const venteData = {
|
||||||
item,
|
item,
|
||||||
actingUserId: game.user.id,
|
actingUserId: game.user.id,
|
||||||
vendeurId: vendeur?.id,
|
vendeurId: vendeur?.id,
|
||||||
vendeur,
|
vendeur,
|
||||||
acheteur,
|
acheteur,
|
||||||
serviceSubItem: serviceSubItem,
|
|
||||||
service,
|
|
||||||
tailleLot,
|
tailleLot,
|
||||||
quantiteIllimite,
|
quantiteIllimite,
|
||||||
quantiteNbLots: nbLots,
|
quantiteNbLots: nbLots,
|
||||||
@@ -77,7 +75,7 @@ export class DialogItemAchat extends Dialog {
|
|||||||
buttons[actionAchat] = { label: actionAchat, callback: it => { this.onAchat(); } };
|
buttons[actionAchat] = { label: actionAchat, callback: it => { this.onAchat(); } };
|
||||||
buttons["decliner"] = { label: "Décliner", callback: it => { } };
|
buttons["decliner"] = { label: "Décliner", callback: it => { } };
|
||||||
const acheteur = venteData.acheteur?.name ?? 'Un acheteur';
|
const acheteur = venteData.acheteur?.name ?? 'Un acheteur';
|
||||||
const vendeur = (venteData.service ?? venteData.vendeur)?.name ?? 'Un vendeur';
|
const vendeur = venteData.vendeur?.name ?? 'Un vendeur';
|
||||||
let conf = {
|
let conf = {
|
||||||
title: `${acheteur} - ${actionAchat} à ${vendeur}`,
|
title: `${acheteur} - ${actionAchat} à ${vendeur}`,
|
||||||
content: html,
|
content: html,
|
||||||
@@ -93,7 +91,6 @@ export class DialogItemAchat extends Dialog {
|
|||||||
await this.html.find(".nombreLots").change();
|
await this.html.find(".nombreLots").change();
|
||||||
(this.venteData.vendeur ?? this.venteData.acheteur).achatVente({
|
(this.venteData.vendeur ?? this.venteData.acheteur).achatVente({
|
||||||
userId: game.user.id,
|
userId: game.user.id,
|
||||||
serviceId: this.venteData.service?.id,
|
|
||||||
vendeurId: this.venteData.vendeur?.id,
|
vendeurId: this.venteData.vendeur?.id,
|
||||||
acheteurId: this.venteData.acheteur?.id,
|
acheteurId: this.venteData.acheteur?.id,
|
||||||
prixTotal: this.venteData.prixTotal,
|
prixTotal: this.venteData.prixTotal,
|
||||||
|
|||||||
@@ -2,23 +2,21 @@ import { HtmlUtility } from "./html-utility.js";
|
|||||||
|
|
||||||
export class DialogItemVente extends Dialog {
|
export class DialogItemVente extends Dialog {
|
||||||
|
|
||||||
static async display({ item, callback, service = undefined, quantiteMax = undefined }) {
|
static async display({ item, callback, quantiteMax = undefined }) {
|
||||||
const quantite = quantiteMax ?? item.getQuantite();
|
const quantite = quantiteMax ?? item.getQuantite() ?? 1;
|
||||||
const isOwned = item.isOwned;
|
const isOwned = item.parent;
|
||||||
// const isOwned = item.isOwned || service?.actor;
|
|
||||||
const venteData = {
|
const venteData = {
|
||||||
item: item,
|
item: item,
|
||||||
alias: item.actor?.name ?? service?.name ?? game.user.name,
|
alias: item.actor?.name ?? game.user.name,
|
||||||
serviceId: service?.id,
|
vendeurId: item.actor?.id,
|
||||||
vendeurId: item.actor?.id ?? service?.actor?.id,
|
prixOrigine: item.calculerPrixCommercant(),
|
||||||
prixOrigine: item.system.cout,
|
prixUnitaire: item.calculerPrixCommercant(),
|
||||||
prixUnitaire: item.system.cout,
|
prixLot: item.calculerPrixCommercant(),
|
||||||
prixLot: item.system.cout,
|
|
||||||
tailleLot: 1,
|
tailleLot: 1,
|
||||||
quantiteNbLots: quantite,
|
quantiteNbLots: quantite,
|
||||||
quantiteMaxLots: quantite,
|
quantiteMaxLots: quantite,
|
||||||
quantiteMax: quantite,
|
quantiteMax: quantite,
|
||||||
quantiteIllimite: service? service.system.illimite : !isOwned,
|
quantiteIllimite: item.isItemCommerce() ? quantiteMax == undefined : !isOwned,
|
||||||
isOwned: isOwned,
|
isOwned: isOwned,
|
||||||
};
|
};
|
||||||
const html = await renderTemplate(`systems/foundryvtt-reve-de-dragon/templates/dialog-item-vente.html`, venteData);
|
const html = await renderTemplate(`systems/foundryvtt-reve-de-dragon/templates/dialog-item-vente.html`, venteData);
|
||||||
@@ -42,53 +40,63 @@ export class DialogItemVente extends Dialog {
|
|||||||
|
|
||||||
activateListeners(html) {
|
activateListeners(html) {
|
||||||
super.activateListeners(html);
|
super.activateListeners(html);
|
||||||
this.html = html;
|
|
||||||
HtmlUtility._showControlWhen(this.html.find(".quantiteNbLots"), !this.venteData.quantiteIllimite)
|
|
||||||
|
|
||||||
|
this.html = html;
|
||||||
this.html.find(".tailleLot").change(event => this.setTailleLot(Number(event.currentTarget.value)));
|
this.html.find(".tailleLot").change(event => this.setTailleLot(Number(event.currentTarget.value)));
|
||||||
this.html.find(".quantiteNbLots").change(event => this.setNbLots(Number(event.currentTarget.value)));
|
this.html.find(".quantiteNbLots").change(event => this.setNbLots(Number(event.currentTarget.value)));
|
||||||
this.html.find(".quantiteIllimite").change(event => this.setQuantiteIllimite(event.currentTarget.checked));
|
this.html.find(".quantiteIllimite").change(event => this.setQuantiteIllimite(event.currentTarget.checked));
|
||||||
this.html.find(".prixLot").change(event => this.setPrixLot(Number(event.currentTarget.value)));
|
this.html.find(".prixLot").change(event => this.setPrixLot(Number(event.currentTarget.value)));
|
||||||
|
|
||||||
|
this.setQuantiteIllimite(this.venteData.quantiteIllimite);
|
||||||
}
|
}
|
||||||
|
|
||||||
async onProposer(it) {
|
async onProposer(it) {
|
||||||
await this.html.find(".tailleLot").change();
|
this.updateVente(this.getChoixVente());
|
||||||
await this.html.find(".quantiteNbLots").change();
|
|
||||||
await this.html.find(".quantiteIllimite").change();
|
|
||||||
await this.html.find(".prixLot").change();
|
|
||||||
this.callback(this.venteData);
|
this.callback(this.venteData);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
updateVente(update) {
|
||||||
|
mergeObject(this.venteData, update);
|
||||||
|
}
|
||||||
|
|
||||||
|
getChoixVente() {
|
||||||
|
return {
|
||||||
|
quantiteNbLots: Number(this.html.find(".quantiteNbLots").val()),
|
||||||
|
tailleLot: Number(this.html.find(".tailleLot").val()),
|
||||||
|
quantiteIllimite: this.html.find(".quantiteIllimite").is(':checked'),
|
||||||
|
prixLot: Number(this.html.find(".prixLot").val())
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
setPrixLot(prixLot) {
|
setPrixLot(prixLot) {
|
||||||
this.venteData.prixLot = prixLot;
|
this.venteData.prixLot = prixLot;
|
||||||
}
|
}
|
||||||
|
|
||||||
setTailleLot(tailleLot) {
|
setTailleLot(tailleLot) {
|
||||||
// recalculer le prix du lot
|
const maxLots = Math.floor(this.venteData.quantiteMax / tailleLot);
|
||||||
if (tailleLot != this.venteData.tailleLot) {
|
this.updateVente({
|
||||||
this.venteData.prixLot = (tailleLot * this.venteData.prixOrigine).toFixed(2);
|
tailleLot,
|
||||||
|
quantiteNbLots: Math.min(maxLots, this.venteData.quantiteNbLots),
|
||||||
|
quantiteMaxLots: maxLots,
|
||||||
|
prixLot: (tailleLot * this.venteData.prixOrigine).toFixed(2)
|
||||||
|
});
|
||||||
|
|
||||||
this.html.find(".prixLot").val(this.venteData.prixLot);
|
this.html.find(".prixLot").val(this.venteData.prixLot);
|
||||||
}
|
|
||||||
this.venteData.tailleLot = tailleLot;
|
|
||||||
// recalculer le nombre de lots max
|
|
||||||
this.venteData.quantiteMaxLots = Math.floor(this.venteData.quantiteMax / tailleLot);
|
|
||||||
this.venteData.quantiteNbLots = Math.min(this.venteData.quantiteMaxLots, this.venteData.quantiteNbLots);
|
|
||||||
this.html.find(".quantiteNbLots").val(this.venteData.quantiteNbLots);
|
this.html.find(".quantiteNbLots").val(this.venteData.quantiteNbLots);
|
||||||
this.html.find(".quantiteNbLots").attr("max", this.venteData.quantiteMaxLots)
|
this.html.find(".quantiteNbLots").attr("max", this.venteData.quantiteMaxLots)
|
||||||
}
|
}
|
||||||
|
|
||||||
setNbLots(nbLots) {
|
setNbLots(nbLots) {
|
||||||
if (this.venteData.isOwned) {
|
this.updateVente({
|
||||||
nbLots = Math.max(0, Math.min(nbLots, this.venteData.quantiteMaxLots));
|
quantiteNbLots: this.venteData.isOwned ? Math.max(0, Math.min(nbLots, this.venteData.quantiteMaxLots)) : nbLots
|
||||||
}
|
})
|
||||||
this.venteData.quantiteNbLots = nbLots;
|
|
||||||
this.html.find(".quantiteNbLots").val(this.venteData.quantiteNbLots);
|
this.html.find(".quantiteNbLots").val(this.venteData.quantiteNbLots);
|
||||||
}
|
}
|
||||||
|
|
||||||
setQuantiteIllimite(checked) {
|
setQuantiteIllimite(checked) {
|
||||||
this.venteData.quantiteIllimite = checked;
|
this.updateVente({ quantiteIllimite: checked })
|
||||||
this.html.find(".label-quantiteIllimite").text(this.venteData.quantiteIllimite ? "Illimités" : "disponibles");
|
this.html.find(".label-quantiteIllimite").text(this.venteData.quantiteIllimite ? "Illimités" : "disponibles");
|
||||||
HtmlUtility._showControlWhen(this.html.find(".quantiteNbLots"), !this.venteData.quantiteIllimite)
|
HtmlUtility.showControlWhen(this.html.find(".quantiteNbLots"), !this.venteData.quantiteIllimite)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1,57 +0,0 @@
|
|||||||
|
|
||||||
export class DialogRepos extends Dialog {
|
|
||||||
|
|
||||||
static async create(actor) {
|
|
||||||
const html = await renderTemplate("systems/foundryvtt-reve-de-dragon/templates/dialog-repos.html", actor);
|
|
||||||
const dialog = new DialogRepos(html, actor);
|
|
||||||
dialog.render(true);
|
|
||||||
}
|
|
||||||
|
|
||||||
constructor(html, actor) {
|
|
||||||
let options = { classes: ["DialogCreateSigneDraconiqueActorsActors"], width: 400, height: 'fit-content', 'z-index': 99999 };
|
|
||||||
let conf = {
|
|
||||||
title: "Se reposer",
|
|
||||||
content: html,
|
|
||||||
default: "repos",
|
|
||||||
buttons: {
|
|
||||||
"repos": { label: "Se reposer", callback: async it => { this.repos(); } }
|
|
||||||
}
|
|
||||||
};
|
|
||||||
super(conf, options);
|
|
||||||
this.actor = actor;
|
|
||||||
}
|
|
||||||
activateListeners(html) {
|
|
||||||
super.activateListeners(html);
|
|
||||||
this.html = html;
|
|
||||||
}
|
|
||||||
/* -------------------------------------------- */
|
|
||||||
|
|
||||||
async repos() {
|
|
||||||
await this.html.find("[name='nb-heures']").change();
|
|
||||||
await this.html.find("[name='nb-jours']").change();
|
|
||||||
const selection = await this.html.find("[name='repos']:checked").val();
|
|
||||||
const nbHeures = Number.parseInt(await this.html.find("[name='nb-heures']").val());
|
|
||||||
const nbJours = Number.parseInt(await this.html.find("[name='nb-jours']").val());
|
|
||||||
console.log("ACTOR", this.actor)
|
|
||||||
switch (selection) {
|
|
||||||
case "sieste": {
|
|
||||||
await this.actor.dormir(nbHeures);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
case "nuit": {
|
|
||||||
let heuresDormies = await this.actor.dormir(nbHeures);
|
|
||||||
if (heuresDormies == nbHeures) {
|
|
||||||
await this.actor.dormirChateauDormant();
|
|
||||||
}
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
case "chateau-dormant":
|
|
||||||
await this.actor.dormirChateauDormant();
|
|
||||||
return;
|
|
||||||
case "gris-reve": {
|
|
||||||
await this.actor.grisReve(nbJours);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,223 +1,78 @@
|
|||||||
import { SYSTEM_RDD } from "./constants.js";
|
import { SYSTEM_RDD } from "./constants.js";
|
||||||
import { Grammar } from "./grammar.js";
|
import { Grammar } from "./grammar.js";
|
||||||
import { Misc } from "./misc.js";
|
import { Misc } from "./misc.js";
|
||||||
import { CompendiumTableHelpers, CompendiumTable } from "./settings/system-compendiums.js";
|
import { CompendiumTableHelpers, CompendiumTable, SystemCompendiums } from "./settings/system-compendiums.js";
|
||||||
|
|
||||||
const RARETES = [
|
|
||||||
{ name: 'Commune', frequence: 54, min: 27, max: 108 },
|
|
||||||
{ name: 'Frequente', frequence: 18, min: 9, max: 36 },
|
|
||||||
{ name: 'Rare', frequence: 6, min: 3, max: 12 },
|
|
||||||
{ name: 'Rarissime', frequence: 2, min: 1, max: 4 }]
|
|
||||||
const DEFAULT_RARETE = 1;
|
|
||||||
|
|
||||||
const SETTINGS_LISTE_MILIEUX = "liste-milieux";
|
const COMPENDIUMS_RECHERCHE = 'compendiums-recherche';
|
||||||
const MILIEUX = [
|
|
||||||
"Collines",
|
|
||||||
"Cours d'eau",
|
|
||||||
"Déserts",
|
|
||||||
"Forêts",
|
|
||||||
"Marais",
|
|
||||||
"Maritimes",
|
|
||||||
"Montagnes",
|
|
||||||
"Plaines",
|
|
||||||
"Sous-sols"
|
|
||||||
]
|
|
||||||
const ITEM_ENVIRONNEMENT_TYPES = [
|
|
||||||
'herbe', 'ingredient', 'faune'
|
|
||||||
]
|
|
||||||
|
|
||||||
export class Environnement {
|
export class Environnement {
|
||||||
|
|
||||||
static init() {
|
static init() {
|
||||||
game.settings.register(SYSTEM_RDD, SETTINGS_LISTE_MILIEUX, {
|
game.settings.register(SYSTEM_RDD, COMPENDIUMS_RECHERCHE, {
|
||||||
name: "Liste des milieux proposés",
|
name: COMPENDIUMS_RECHERCHE,
|
||||||
hint: "Liste des milieux proposés pour la faune&flore, séparés par des virgules",
|
default: [
|
||||||
|
SystemCompendiums.getCompendium('faune-flore-mineraux'),
|
||||||
|
SystemCompendiums.getCompendium('meditations-et-ecrits'),
|
||||||
|
SystemCompendiums.getCompendium('equipement')
|
||||||
|
],
|
||||||
scope: "world",
|
scope: "world",
|
||||||
config: true,
|
config: false,
|
||||||
default: MILIEUX.reduce(Misc.joining(',')),
|
type: Object
|
||||||
type: String
|
|
||||||
});
|
});
|
||||||
|
|
||||||
game.system.rdd.environnement = new Environnement();
|
game.system.rdd.environnement = new Environnement();
|
||||||
|
Hooks.once('ready', () => game.system.rdd.environnement.onReady());
|
||||||
}
|
}
|
||||||
|
|
||||||
constructor() {
|
constructor() {
|
||||||
this.table = new CompendiumTable('faune-flore-mineraux', 'Item', ITEM_ENVIRONNEMENT_TYPES)
|
this.compendiums = [];
|
||||||
|
this.compendiumTables = [];
|
||||||
|
this.mapMilieux = {}
|
||||||
}
|
}
|
||||||
|
|
||||||
static getRarete(name = undefined) {
|
async onReady() {
|
||||||
return RARETES.find(it => it.name == name) ?? RARETES[DEFAULT_RARETE];
|
await this.$prepareCompendiums()
|
||||||
}
|
|
||||||
|
|
||||||
static getFrequenceRarete(rarete, field = undefined) {
|
|
||||||
const selected = this.getRarete(rarete);
|
|
||||||
return selected[field];
|
|
||||||
}
|
}
|
||||||
|
|
||||||
async milieux() {
|
async milieux() {
|
||||||
return Object.values(await this.mapMilieux());
|
return Object.values(this.mapMilieux);
|
||||||
}
|
}
|
||||||
|
|
||||||
async mapMilieux() {
|
async saveCompendiums(compendiumIds) {
|
||||||
const compendiumItems = await this.getElements(it => 1, it => ITEM_ENVIRONNEMENT_TYPES.includes(it.type));
|
game.settings.set(SYSTEM_RDD, COMPENDIUMS_RECHERCHE, compendiumIds);
|
||||||
return Misc.indexLowercase(this.getMilieuxSettings().concat(Environnement.listMilieux(compendiumItems)));
|
await this.$prepareCompendiums();
|
||||||
}
|
}
|
||||||
|
|
||||||
static listMilieux(items) {
|
async $prepareCompendiums() {
|
||||||
return Misc.concat(items.map(it => Environnement.$itemToMilieux(it).filter(m => m)));
|
this.compendiums = game.settings.get(SYSTEM_RDD, COMPENDIUMS_RECHERCHE).filter(c => SystemCompendiums.getPack(c));
|
||||||
|
|
||||||
|
this.compendiumTables = this.compendiums.map(it => new CompendiumTable(it, 'Item'));
|
||||||
|
const compendiumItems = await this.getElements(it => 1, it => it.isInventaire());
|
||||||
|
const fromCompendiums = Misc.concat(compendiumItems.map(it => it.getMilieux().filter(m => m)));
|
||||||
|
this.mapMilieux = Misc.indexLowercase(fromCompendiums);
|
||||||
}
|
}
|
||||||
|
|
||||||
async autresMilieux(item) {
|
async autresMilieux(item) {
|
||||||
const mapMilieux = await this.mapMilieux();
|
const milieuxExistants = item.getMilieux().map(it => Grammar.toLowerCaseNoAccent(it));
|
||||||
const milieuxExistants = Environnement.$itemToMilieux(item).map(it => Grammar.toLowerCaseNoAccent(it));
|
return Object.keys(this.mapMilieux)
|
||||||
return Object.keys(mapMilieux)
|
|
||||||
.filter(it => !milieuxExistants.includes(it))
|
.filter(it => !milieuxExistants.includes(it))
|
||||||
.map(it => mapMilieux[it]);
|
.map(it => this.mapMilieux[it]);
|
||||||
}
|
}
|
||||||
|
|
||||||
static $itemToMilieux(item) {
|
|
||||||
return item.system.environnement.map(env => env.milieu);
|
|
||||||
}
|
|
||||||
|
|
||||||
getMilieuxSettings() {
|
|
||||||
return game.settings.get(SYSTEM_RDD, SETTINGS_LISTE_MILIEUX).split(',').map(it => it.trim()).filter(it => it != '');
|
|
||||||
}
|
|
||||||
|
|
||||||
async findEnvironnementsLike(search) {
|
|
||||||
const milieux = await this.mapMilieux();
|
|
||||||
const searchLower = Grammar.toLowerCaseNoAccent(search);
|
|
||||||
const keys = Object.keys(milieux).filter(it => it.includes(searchLower));
|
|
||||||
if (keys.length > 1) {
|
|
||||||
const milieuExact = milieux[searchLower];
|
|
||||||
if (milieuExact) {
|
|
||||||
return [milieuExact];
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return keys.map(k => milieux[k]);
|
|
||||||
}
|
|
||||||
|
|
||||||
async searchToChatMessage(milieux, typeName) {
|
|
||||||
const table = await this.buildEnvironnementTable(milieux);
|
|
||||||
await CompendiumTableHelpers.tableToChatMessage(table, 'Item', ITEM_ENVIRONNEMENT_TYPES, typeName);
|
|
||||||
return true
|
|
||||||
}
|
|
||||||
|
|
||||||
async getRandom(milieux, typeName) {
|
|
||||||
const table = await this.buildEnvironnementTable(milieux);
|
|
||||||
return await CompendiumTableHelpers.getRandom(table, 'Item', ITEM_ENVIRONNEMENT_TYPES, undefined, typeName);
|
|
||||||
}
|
|
||||||
|
|
||||||
async buildEnvironnementTable(milieux) {
|
|
||||||
const filterMilieux = item => item.system?.environnement.filter(env => milieux.includes(env.milieu));
|
|
||||||
const itemRareteEnMilieu = item => {
|
|
||||||
const raretes = filterMilieux(item);
|
|
||||||
const frequenceMax = Math.max(raretes.map(env => env.frequence));
|
|
||||||
return raretes.find(env => env.frequence == frequenceMax);
|
|
||||||
}
|
|
||||||
const itemFrequenceEnMilieu = item => itemRareteEnMilieu(item)?.frequence ?? 0;
|
|
||||||
const isPresentEnMilieu = item => itemFrequenceEnMilieu(item) > 0;
|
|
||||||
return await this.table.buildTable(itemFrequenceEnMilieu, isPresentEnMilieu);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
async getElements(itemFrequence, filter) {
|
async getElements(itemFrequence, filter) {
|
||||||
return await this.table.getContent(itemFrequence, filter);
|
const compendiumsElement = await Promise.all(
|
||||||
}
|
this.compendiumTables.map(async compTable => await compTable.getContent(itemFrequence, filter))
|
||||||
|
);
|
||||||
|
const elements = compendiumsElement.reduce((a, b) => a.concat(b));
|
||||||
|
elements.sort(Misc.ascending(it => it.name))
|
||||||
|
return elements;
|
||||||
}
|
}
|
||||||
|
|
||||||
export class EnvironmentSheetHelper {
|
async buildTable(itemFrequence, filter = it => true) {
|
||||||
|
if (!itemFrequence) {
|
||||||
static defaultOptions(defaultOptions) {
|
itemFrequence = it => it.getFrequence()
|
||||||
return mergeObject(defaultOptions, {
|
|
||||||
tabs: [{ navSelector: ".sheet-tabs", contentSelector: ".sheet-body", initial: "informations" }]
|
|
||||||
});
|
|
||||||
}
|
}
|
||||||
|
const elements = await this.getElements(itemFrequence, filter);;
|
||||||
static setPosition(sheet, superPosition) {
|
return CompendiumTableHelpers.buildTable(elements, itemFrequence);
|
||||||
const position = superPosition;
|
|
||||||
const sheetHeader = sheet.element.find(".sheet-header");
|
|
||||||
const sheetBody = sheet.element.find(".sheet-body");
|
|
||||||
sheetBody.css("height", position.height - sheetHeader[0].clientHeight)
|
|
||||||
return position;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* -------------------------------------------- */
|
|
||||||
static async getData(sheet, formData) {
|
|
||||||
return mergeObject(formData, {
|
|
||||||
milieux: await game.system.rdd.environnement.autresMilieux(sheet.item)
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
static activateListeners(sheet) {
|
|
||||||
if (!sheet.options.editable) return;
|
|
||||||
|
|
||||||
sheet.html.find("input.input-selection-milieu").keypress(event => {
|
|
||||||
if (event.keyCode == '13') {
|
|
||||||
EnvironmentSheetHelper.onAddMilieu(sheet, event);
|
|
||||||
}
|
|
||||||
event.stopPropagation();
|
|
||||||
})
|
|
||||||
sheet.html.find("a.milieu-add").click(event => EnvironmentSheetHelper.onAddMilieu(sheet, event));
|
|
||||||
sheet.html.find("div.environnement-milieu a.milieu-delete").click(event => EnvironmentSheetHelper.onDeleteMilieu(sheet, event));
|
|
||||||
sheet.html.find("div.environnement-milieu select.environnement-rarete").change(event => EnvironmentSheetHelper.onChange(sheet, event,
|
|
||||||
updated => EnvironmentSheetHelper.$changeRarete(sheet, event, updated)));
|
|
||||||
sheet.html.find("div.environnement-milieu input[name='environnement-frequence']").change(event => EnvironmentSheetHelper.onChange(sheet, event,
|
|
||||||
updated => EnvironmentSheetHelper.$changeFrequence(sheet, event, updated)));
|
|
||||||
}
|
|
||||||
|
|
||||||
static $changeFrequence(sheet, event, updated) {
|
|
||||||
updated.frequence = Number(sheet.html.find(event.currentTarget).val());
|
|
||||||
}
|
|
||||||
|
|
||||||
static $changeRarete(sheet, event, updated) {
|
|
||||||
const name = sheet.html.find(event.currentTarget).val();
|
|
||||||
const rarete = Environnement.getRarete(name);
|
|
||||||
updated.rarete = rarete.name;
|
|
||||||
updated.frequence = rarete.frequence;
|
|
||||||
// updated.frequence = Math.min(
|
|
||||||
// Math.max(rarete.min, updated.frequence ?? rarete.frequence),
|
|
||||||
// rarete.max);
|
|
||||||
}
|
|
||||||
|
|
||||||
static async onAddMilieu(sheet, event) {
|
|
||||||
const milieu = sheet.html.find('input.input-selection-milieu').val();
|
|
||||||
if (!milieu) {
|
|
||||||
ui.notifications.warn(`Choisissez le milieu dans lequel se trouve le/la ${sheet.item.name}`);
|
|
||||||
return
|
|
||||||
}
|
|
||||||
const list = sheet.item.system.environnement;
|
|
||||||
const exists = list.find(it => it.milieu == milieu);
|
|
||||||
if (exists) {
|
|
||||||
ui.notifications.warn(`${sheet.item.name} a déjà une rareté ${exists.rarete} en ${milieu} (fréquence: ${exists.frequence})`);
|
|
||||||
return
|
|
||||||
}
|
|
||||||
const rarete = Environnement.getRarete();
|
|
||||||
const newList = [...list, { milieu, rarete: rarete.name, frequence: rarete.frequence }].sort(Misc.ascending(it => it.milieu))
|
|
||||||
await sheet.item.update({ 'system.environnement': newList })
|
|
||||||
}
|
|
||||||
|
|
||||||
static async onDeleteMilieu(sheet, event) {
|
|
||||||
const milieu = EnvironmentSheetHelper.$getEventMilieu(sheet, event);
|
|
||||||
if (milieu != undefined) {
|
|
||||||
const newList = sheet.item.system.environnement.filter(it => it.milieu != milieu)
|
|
||||||
.sort(Misc.ascending(it => it.milieu));
|
|
||||||
await sheet.item.update({ 'system.environnement': newList });
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static async onChange(sheet, event, doMutation) {
|
|
||||||
const list = sheet.item.system.environnement;
|
|
||||||
const milieu = EnvironmentSheetHelper.$getEventMilieu(sheet, event);
|
|
||||||
const updated = list.find(it => it.milieu == milieu);
|
|
||||||
if (updated) {
|
|
||||||
doMutation(updated);
|
|
||||||
const newList = [...list.filter(it => it.milieu != milieu), updated]
|
|
||||||
.sort(Misc.ascending(it => it.milieu));
|
|
||||||
await sheet.item.update({ 'system.environnement': newList });
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
static $getEventMilieu(sheet, event) {
|
|
||||||
return sheet.html.find(event.currentTarget)?.parents("div.environnement-milieu").data("milieu");
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
@@ -1,5 +1,5 @@
|
|||||||
export class HtmlUtility{
|
export class HtmlUtility{
|
||||||
static _showControlWhen(jQuerySelector, condition) {
|
static showControlWhen(jQuerySelector, condition) {
|
||||||
if (condition) {
|
if (condition) {
|
||||||
jQuerySelector.show();
|
jQuerySelector.show();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,5 +1,4 @@
|
|||||||
import { RdDItemCompetenceCreature } from "./item-competencecreature.js"
|
import { RdDItemCompetenceCreature } from "./item-competencecreature.js"
|
||||||
import { Misc } from "./misc.js";
|
|
||||||
import { RdDCombatManager } from "./rdd-combat.js";
|
import { RdDCombatManager } from "./rdd-combat.js";
|
||||||
|
|
||||||
const nomCategorieParade = {
|
const nomCategorieParade = {
|
||||||
|
|||||||
@@ -190,15 +190,6 @@ export class RdDItemCompetence extends Item {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/* -------------------------------------------- */
|
|
||||||
static isVisible(item) {
|
|
||||||
return Number(item.system.niveau) != RdDItemCompetence.getNiveauBase(item.system.categorie);
|
|
||||||
}
|
|
||||||
|
|
||||||
static nomContientTexte(item, texte) {
|
|
||||||
return Grammar.toLowerCaseNoAccent(item.name).includes(Grammar.toLowerCaseNoAccent(texte))
|
|
||||||
}
|
|
||||||
|
|
||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
static isNiveauBase(item) {
|
static isNiveauBase(item) {
|
||||||
return Number(item.system.niveau) == RdDItemCompetence.getNiveauBase(item.system.categorie);
|
return Number(item.system.niveau) == RdDItemCompetence.getNiveauBase(item.system.categorie);
|
||||||
@@ -279,7 +270,7 @@ export class RdDItemCompetence extends Item {
|
|||||||
|
|
||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
static triVisible(competences) {
|
static triVisible(competences) {
|
||||||
return competences.filter(it => it.system.isVisible)
|
return competences.filter(it => !it.system.isHidden)
|
||||||
.sort((a, b) => RdDItemCompetence.compare(a, b))
|
.sort((a, b) => RdDItemCompetence.compare(a, b))
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1,67 +0,0 @@
|
|||||||
import { EnvironmentSheetHelper } from "./environnement.js";
|
|
||||||
import { RdDItemSheet } from "./item-sheet.js";
|
|
||||||
import { RdDUtility } from "./rdd-utility.js";
|
|
||||||
|
|
||||||
export class RdDFauneItemSheet extends RdDItemSheet {
|
|
||||||
|
|
||||||
static get ITEM_TYPE() { return "faune" };
|
|
||||||
|
|
||||||
static get defaultOptions() {
|
|
||||||
return EnvironmentSheetHelper.defaultOptions(super.defaultOptions);
|
|
||||||
}
|
|
||||||
|
|
||||||
setPosition(options = {}) {
|
|
||||||
return EnvironmentSheetHelper.setPosition(this, super.setPosition(options));
|
|
||||||
}
|
|
||||||
|
|
||||||
async getData() {
|
|
||||||
const formData = await super.getData();
|
|
||||||
return await EnvironmentSheetHelper.getData(this, formData);
|
|
||||||
}
|
|
||||||
|
|
||||||
activateListeners(html) {
|
|
||||||
super.activateListeners(html);
|
|
||||||
if (!this.options.editable) return;
|
|
||||||
|
|
||||||
EnvironmentSheetHelper.activateListeners(this);
|
|
||||||
|
|
||||||
html.find("a.linked-actor-delete").click(event => this.onDeleteLinkedActor());
|
|
||||||
html.find("a.preparer-nourriture").click(event => this.preparerNourriture(event));
|
|
||||||
html.find("a.manger-nourriture").click(event => this.mangerNourriture(event));
|
|
||||||
}
|
|
||||||
|
|
||||||
async _onDropActor(event, dragData) {
|
|
||||||
console.log('faune:dropActor', event, dragData)
|
|
||||||
const linkedActor = fromUuidSync(dragData.uuid);
|
|
||||||
if (linkedActor?.pack) {
|
|
||||||
this.item.update({
|
|
||||||
'system.actor.pack': linkedActor.pack,
|
|
||||||
'system.actor.id': linkedActor._id,
|
|
||||||
'system.actor.name': linkedActor.name
|
|
||||||
});
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
ui.notifications.warn(`${linkedActor.name} ne provient pas d'un compendium.
|
|
||||||
<br>Choisissez une créature du compendium pour représenter un élément de faune générique`)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
async onDeleteLinkedActor() {
|
|
||||||
this.item.update({
|
|
||||||
'system.actor.pack': '',
|
|
||||||
'system.actor.id': '',
|
|
||||||
'system.actor.name': ''
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
async preparerNourriture(event) {
|
|
||||||
if (this.actor) {
|
|
||||||
await this.actor.preparerNourriture(this.item);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
async mangerNourriture(event) {
|
|
||||||
if (this.actor) {
|
|
||||||
await this.actor.mangerNourriture(this.item);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
@@ -1,25 +0,0 @@
|
|||||||
import { EnvironmentSheetHelper } from "./environnement.js";
|
|
||||||
import { RdDItemSheet } from "./item-sheet.js";
|
|
||||||
|
|
||||||
export class RdDHerbeItemSheet extends RdDItemSheet {
|
|
||||||
|
|
||||||
static get ITEM_TYPE() { return "herbe" };
|
|
||||||
|
|
||||||
static get defaultOptions() {
|
|
||||||
return EnvironmentSheetHelper.defaultOptions(super.defaultOptions);
|
|
||||||
}
|
|
||||||
|
|
||||||
setPosition(options = {}) {
|
|
||||||
return EnvironmentSheetHelper.setPosition(this, super.setPosition(options));
|
|
||||||
}
|
|
||||||
|
|
||||||
async getData() {
|
|
||||||
const formData = await super.getData();
|
|
||||||
return await EnvironmentSheetHelper.getData(this, formData);
|
|
||||||
}
|
|
||||||
|
|
||||||
activateListeners(html) {
|
|
||||||
super.activateListeners(html);
|
|
||||||
EnvironmentSheetHelper.activateListeners(this);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,25 +0,0 @@
|
|||||||
import { EnvironmentSheetHelper } from "./environnement.js";
|
|
||||||
import { RdDItemSheet } from "./item-sheet.js";
|
|
||||||
|
|
||||||
export class RdDIngredientItemSheet extends RdDItemSheet {
|
|
||||||
|
|
||||||
static get ITEM_TYPE() { return "ingredient" };
|
|
||||||
|
|
||||||
static get defaultOptions() {
|
|
||||||
return EnvironmentSheetHelper.defaultOptions(super.defaultOptions);
|
|
||||||
}
|
|
||||||
|
|
||||||
setPosition(options = {}) {
|
|
||||||
return EnvironmentSheetHelper.setPosition(this, super.setPosition(options));
|
|
||||||
}
|
|
||||||
|
|
||||||
async getData() {
|
|
||||||
const formData = await super.getData();
|
|
||||||
return await EnvironmentSheetHelper.getData(this, formData);
|
|
||||||
}
|
|
||||||
|
|
||||||
activateListeners(html) {
|
|
||||||
super.activateListeners(html);
|
|
||||||
EnvironmentSheetHelper.activateListeners(this);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -17,7 +17,7 @@ const MONNAIE_ARGENT = {
|
|||||||
system: { quantite: 0, cout: 1, encombrement: 0.003, description: "" }
|
system: { quantite: 0, cout: 1, encombrement: 0.003, description: "" }
|
||||||
};
|
};
|
||||||
const MONNAIE_OR = {
|
const MONNAIE_OR = {
|
||||||
name: "Dreagon (or)", type: 'monnaie',
|
name: "Dragon (or)", type: 'monnaie',
|
||||||
img: "systems/foundryvtt-reve-de-dragon/icons/objets/piece_or_sol.webp",
|
img: "systems/foundryvtt-reve-de-dragon/icons/objets/piece_or_sol.webp",
|
||||||
system: { quantite: 0, cout: 10, encombrement: 0.004, description: "" }
|
system: { quantite: 0, cout: 10, encombrement: 0.004, description: "" }
|
||||||
};
|
};
|
||||||
@@ -62,6 +62,13 @@ export class Monnaie {
|
|||||||
return deniers;
|
return deniers;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static toSolsDeniers(fortune) {
|
||||||
|
return {
|
||||||
|
sols: Math.floor(fortune),
|
||||||
|
deniers: Math.round(100 * (fortune - Math.floor(fortune)))
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
static getFortune(monnaies) {
|
static getFortune(monnaies) {
|
||||||
return (monnaies??[])
|
return (monnaies??[])
|
||||||
.map(m => Number(m.system.cout) * Number(m.system.quantite))
|
.map(m => Number(m.system.cout) * Number(m.system.quantite))
|
||||||
|
|||||||
@@ -1,81 +0,0 @@
|
|||||||
import { RdDItemSheet } from "./item-sheet.js";
|
|
||||||
import { Misc } from "./misc.js";
|
|
||||||
import { RdDUtility } from "./rdd-utility.js";
|
|
||||||
import { SystemCompendiums } from "./settings/system-compendiums.js";
|
|
||||||
import { DialogItemAchat } from "./dialog-item-achat.js";
|
|
||||||
import { RdDItem } from "./item.js";
|
|
||||||
import { RdDItemService } from "./item-service.js";
|
|
||||||
|
|
||||||
export class RdDServiceItemSheet extends RdDItemSheet {
|
|
||||||
|
|
||||||
static get ITEM_TYPE() { return "service" };
|
|
||||||
|
|
||||||
async getData() {
|
|
||||||
const formData = await super.getData();
|
|
||||||
formData.disabled = formData.isGM || formData.isOwned ? '' : 'disabled';
|
|
||||||
return formData;
|
|
||||||
}
|
|
||||||
|
|
||||||
activateListeners(html) {
|
|
||||||
super.activateListeners(html);
|
|
||||||
|
|
||||||
this.html.find('a.rdd-world-content-link').click(async event => {
|
|
||||||
const itemRef = this.getItemRef(event);
|
|
||||||
game.items.get(itemRef.id)?.sheet.render(true)
|
|
||||||
});
|
|
||||||
|
|
||||||
this.html.find('a.sub-item-acheter').click(async event => {
|
|
||||||
const subItem = this.item.findRefItem(this.getItemRef(event));
|
|
||||||
await this.item.acheter(RdDUtility.getSelectedActor(), subItem);
|
|
||||||
});
|
|
||||||
|
|
||||||
if (!this.options.editable) return;
|
|
||||||
|
|
||||||
this.html.find('a.sub-item-vendre').click(async event => {
|
|
||||||
const subItem = this.item.findRefItem(this.getItemRef(event));
|
|
||||||
await this.item.vendre(subItem);
|
|
||||||
});
|
|
||||||
|
|
||||||
this.html.find('a.sub-item-delete').click(async event => {
|
|
||||||
await this.item.removeRefItem(this.getItemRef(event));
|
|
||||||
});
|
|
||||||
|
|
||||||
this.html.find('a.sub-item-quantite-moins').click(async event => await this.item.increaseRefItemQuantite(this.getItemRef(event), -1))
|
|
||||||
this.html.find('a.sub-item-quantite-plus').click(async event => await this.item.increaseRefItemQuantite(this.getItemRef(event), 1))
|
|
||||||
this.html.find('input.sub-item-quantite').change(async event => {
|
|
||||||
const newQuantite = Math.max(0, Number.parseInt(this.html.find(event.currentTarget).val()));
|
|
||||||
await this.item.updateRefItem(this.getItemRef(event), it => it.system.quantite = newQuantite);
|
|
||||||
})
|
|
||||||
this.html.find('input.sub-item-cout').change(async event => {
|
|
||||||
const newCout = Math.max(0, Number(this.html.find(event.currentTarget).val()));
|
|
||||||
await this.item.updateRefItem(this.getItemRef(event), it => it.system.cout = newCout);
|
|
||||||
})
|
|
||||||
this.html.find('a.sub-item-info-add').click(__ =>
|
|
||||||
ui.notifications.info(`Utiliser le glisser-déposer pour ajouter des objets depuis un compendium ou les objets du monde`)
|
|
||||||
);
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
async _onDropItem(event, dragData) {
|
|
||||||
let linkedItem = fromUuidSync(dragData.uuid);
|
|
||||||
const existing = this.item.system.items.find(it => it.pack == linkedItem.pack && it.id == linkedItem.id && it.type == linkedItem.type);
|
|
||||||
if (existing) {
|
|
||||||
ui.notifications.warn(`${this.item.name} contient déjà un ${existing.name}`);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
if (linkedItem.pack) {
|
|
||||||
linkedItem = await SystemCompendiums.loadDocument(linkedItem);
|
|
||||||
}
|
|
||||||
if (linkedItem.isInventaire()) {
|
|
||||||
await this.item.addRefItem(RdDItemService.createSubItem(linkedItem));
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
ui.notifications.warn(`${this.item.name} ne peut pas proposer à la vente de ${Misc.typeName('Item', linkedItem.type)}: ${linkedItem.name}`);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
getItemRef(event) {
|
|
||||||
const itemRow = this.html.find(event.currentTarget)?.parents('.item.service-item');
|
|
||||||
return { id: itemRow?.data("item-id"), pack: itemRow?.data("pack") ?? undefined }
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,141 +0,0 @@
|
|||||||
import { DialogItemAchat } from "./dialog-item-achat.js";
|
|
||||||
import { RdDItem } from "./item.js";
|
|
||||||
import { Misc } from "./misc.js";
|
|
||||||
|
|
||||||
export class RdDItemService extends RdDItem {
|
|
||||||
|
|
||||||
static get defaultIcon() {
|
|
||||||
return "systems/foundryvtt-reve-de-dragon/icons/items/services.webp";
|
|
||||||
}
|
|
||||||
|
|
||||||
/** @override*/
|
|
||||||
getUserLevel(user) {
|
|
||||||
const level = super.getUserLevel(user);
|
|
||||||
if (level == CONST.DOCUMENT_OWNERSHIP_LEVELS.NONE) {
|
|
||||||
// si quelqu'un a accès au lien d'un service, il peut le voir
|
|
||||||
return CONST.DOCUMENT_OWNERSHIP_LEVELS.LIMITED;
|
|
||||||
}
|
|
||||||
return level;
|
|
||||||
}
|
|
||||||
|
|
||||||
isService() { return true; }
|
|
||||||
getChatItemTemplate() { return 'systems/foundryvtt-reve-de-dragon/templates/post-item-service.html'; }
|
|
||||||
getProprietes() { return []; }
|
|
||||||
|
|
||||||
getServiceItem(itemRef) {
|
|
||||||
if (itemRef && this.isService()) {
|
|
||||||
return this.system.items.find(it => it.id == itemRef.id && it.pack == itemRef.pack);
|
|
||||||
}
|
|
||||||
return undefined;
|
|
||||||
}
|
|
||||||
|
|
||||||
getQuantiteDisponible(itemRef, max) {
|
|
||||||
if (this.system.illimite) {
|
|
||||||
return max;
|
|
||||||
}
|
|
||||||
const subItem = this.getServiceItem(itemRef);
|
|
||||||
return subItem?.system.quantite ?? 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
async venteRefItem(ref, quantite, cout) {
|
|
||||||
if (this.actor) {
|
|
||||||
await this.actor.ajouterSols(cout);
|
|
||||||
}
|
|
||||||
await this.increaseRefItemQuantite(ref, -quantite);
|
|
||||||
}
|
|
||||||
|
|
||||||
async vendre(subItem) {
|
|
||||||
const item = await RdDItem.getCorrespondingItem(subItem);
|
|
||||||
const quantiteMax = this.system.illimite ? undefined : subItem.system.quantite;
|
|
||||||
await item.proposerVente({ service: this, quantiteMax });
|
|
||||||
}
|
|
||||||
|
|
||||||
async acheter(acheteur, subItem) {
|
|
||||||
if (!acheteur) {
|
|
||||||
ui.notifications.warn(`Pas d'acheteur sélectionné`);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
const nbLots = this.system.illimite ? 1 : subItem.system.quantite;
|
|
||||||
if (nbLots <= 0) {
|
|
||||||
ui.notifications.warn(`${this.name} n'a plus de ${subItem.name} en vente`);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
await DialogItemAchat.onAcheter({
|
|
||||||
item: await RdDItem.getCorrespondingItem(subItem),
|
|
||||||
acheteur,
|
|
||||||
serviceSubItem: subItem,
|
|
||||||
service: this,
|
|
||||||
quantiteIllimite: this.system.illimite,
|
|
||||||
nbLots,
|
|
||||||
tailleLot: 1,
|
|
||||||
prixLot: subItem.system.cout
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
static createSubItem(linkedItem) {
|
|
||||||
return {
|
|
||||||
id: linkedItem.id,
|
|
||||||
pack: linkedItem.pack,
|
|
||||||
name: linkedItem.name,
|
|
||||||
img: linkedItem.img,
|
|
||||||
system: {
|
|
||||||
quantite: 1,
|
|
||||||
cout: linkedItem.system.cout ?? 0
|
|
||||||
}
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
||||||
static matchRefItem({ id, pack }) {
|
|
||||||
return it => it.id == id && (pack ? (it.pack == pack) : (!it.pack));
|
|
||||||
}
|
|
||||||
|
|
||||||
findRefItem(ref) {
|
|
||||||
return this.system.items.find(RdDItemService.matchRefItem(ref));
|
|
||||||
}
|
|
||||||
|
|
||||||
async increaseRefItemQuantite(ref, quantite) {
|
|
||||||
await this.updateRefItem(ref,
|
|
||||||
it => it.system.quantite = Math.max(0, it.system.quantite + quantite)
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
async updateRefItem(ref, update = it => { }) {
|
|
||||||
await this.updateRefItems(RdDItemService.matchRefItem(ref), update);
|
|
||||||
}
|
|
||||||
|
|
||||||
async addRefItem(newItem) {
|
|
||||||
if (!newItem.id) {
|
|
||||||
ui.notifications.warn(`${newItem?.name ?? '??'} n'a pas d'identifiant`);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
if (this.system.items.find(RdDItemService.matchRefItem(newItem))) {
|
|
||||||
ui.notifications.warn(`${newItem?.name ?? newItem.id} est déjà présent ici`);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
await this.setRefItems([...this.system.items, newItem]);
|
|
||||||
}
|
|
||||||
|
|
||||||
async removeRefItem(ref) {
|
|
||||||
await this.removeRefItems(RdDItemService.matchRefItem(ref));
|
|
||||||
}
|
|
||||||
|
|
||||||
async removeRefItems(matcher = it => false) {
|
|
||||||
await this.setRefItems(this.system.items.filter(it => !matcher(it)));
|
|
||||||
}
|
|
||||||
|
|
||||||
async updateRefItems(matcher = it => false, update = it => { }) {
|
|
||||||
const updatedList = this.system.items.map(it => {
|
|
||||||
if (matcher(it)) {
|
|
||||||
update(it);
|
|
||||||
}
|
|
||||||
return it;
|
|
||||||
});
|
|
||||||
await this.setRefItems(updatedList);
|
|
||||||
}
|
|
||||||
|
|
||||||
async setRefItems(newItems) {
|
|
||||||
await this.update({ 'system.items': newItems.sort(Misc.ascending(it => it.type + ':' + it.name)) });
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
@@ -10,6 +10,7 @@ import { SYSTEM_RDD } from "./constants.js";
|
|||||||
import { RdDSheetUtility } from "./rdd-sheet-utility.js";
|
import { RdDSheetUtility } from "./rdd-sheet-utility.js";
|
||||||
import { SystemCompendiums } from "./settings/system-compendiums.js";
|
import { SystemCompendiums } from "./settings/system-compendiums.js";
|
||||||
import { Misc } from "./misc.js";
|
import { Misc } from "./misc.js";
|
||||||
|
import { RdDTimestamp } from "./rdd-timestamp.js";
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Extend the basic ItemSheet for RdD specific items
|
* Extend the basic ItemSheet for RdD specific items
|
||||||
@@ -60,7 +61,7 @@ export class RdDItemSheet extends ItemSheet {
|
|||||||
buttons.unshift({
|
buttons.unshift({
|
||||||
class: "vendre",
|
class: "vendre",
|
||||||
icon: "fas fa-comments-dollar",
|
icon: "fas fa-comments-dollar",
|
||||||
onclick: ev => this.item.proposerVente()
|
onclick: ev => this.item.proposerVente(1)
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
buttons.unshift({
|
buttons.unshift({
|
||||||
@@ -85,25 +86,20 @@ export class RdDItemSheet extends ItemSheet {
|
|||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
async getData() {
|
async getData() {
|
||||||
let formData = {
|
let formData = {
|
||||||
id: this.item.id,
|
|
||||||
title: this.item.name,
|
title: this.item.name,
|
||||||
|
id: this.item.id,
|
||||||
type: this.item.type,
|
type: this.item.type,
|
||||||
img: this.item.img,
|
img: this.item.img,
|
||||||
name: this.item.name,
|
name: this.item.name,
|
||||||
system: this.item.system,
|
system: this.item.system,
|
||||||
isGM: game.user.isGM,
|
|
||||||
actorId: this.actor?.id,
|
actorId: this.actor?.id,
|
||||||
isOwned: this.actor ? true : false,
|
|
||||||
owner: this.item.isOwner,
|
|
||||||
editable: this.isEditable,
|
|
||||||
cssClass: this.isEditable ? "editable" : "locked",
|
|
||||||
isSoins: false,
|
|
||||||
description: await TextEditor.enrichHTML(this.item.system.description, { async: true }),
|
description: await TextEditor.enrichHTML(this.item.system.description, { async: true }),
|
||||||
descriptionmj: await TextEditor.enrichHTML(this.item.system.descriptionmj, { async: true }),
|
descriptionmj: await TextEditor.enrichHTML(this.item.system.descriptionmj, { async: true }),
|
||||||
isComestible: this.item.isComestible()
|
isComestible: this.item.getUtilisationCuisine(),
|
||||||
|
options: RdDSheetUtility.mergeDocumentRights(this.options, this.item, this.isEditable)
|
||||||
}
|
}
|
||||||
|
|
||||||
const competences = await SystemCompendiums.getCompetences(this.actor?.type);
|
const competences = await SystemCompendiums.getCompetences('personnage');
|
||||||
formData.categorieCompetences = RdDItemCompetence.getCategorieCompetences()
|
formData.categorieCompetences = RdDItemCompetence.getCategorieCompetences()
|
||||||
if (this.item.type == 'tache' || this.item.type == 'livre' || this.item.type == 'meditation' || this.item.type == 'oeuvre') {
|
if (this.item.type == 'tache' || this.item.type == 'livre' || this.item.type == 'meditation' || this.item.type == 'oeuvre') {
|
||||||
formData.caracList = duplicate(game.system.model.Actor.personnage.carac)
|
formData.caracList = duplicate(game.system.model.Actor.personnage.carac)
|
||||||
@@ -111,7 +107,7 @@ export class RdDItemSheet extends ItemSheet {
|
|||||||
formData.competences = competences;
|
formData.competences = competences;
|
||||||
}
|
}
|
||||||
if (this.item.type == 'arme') {
|
if (this.item.type == 'arme') {
|
||||||
formData.competences = competences.filter(it => RdDItemCompetence.isCompetenceArme(it));
|
formData.competences = competences.filter(it => RdDItemCompetence.isCompetenceArme(it))
|
||||||
}
|
}
|
||||||
if (['sort', 'sortreserve'].includes(this.item.type)) {
|
if (['sort', 'sortreserve'].includes(this.item.type)) {
|
||||||
formData.competences = competences.filter(it => RdDItemCompetence.isDraconic(it));
|
formData.competences = competences.filter(it => RdDItemCompetence.isDraconic(it));
|
||||||
@@ -135,18 +131,14 @@ export class RdDItemSheet extends ItemSheet {
|
|||||||
RdDGemme.calculDataDerivees(this.item);
|
RdDGemme.calculDataDerivees(this.item);
|
||||||
}
|
}
|
||||||
if (this.item.type == 'potion') {
|
if (this.item.type == 'potion') {
|
||||||
if (this.dateUpdated) {
|
await RdDHerbes.addPotionFormData(formData);
|
||||||
formData.system.prdate = this.dateUpdated;
|
|
||||||
this.dateUpdated = undefined;
|
|
||||||
}
|
}
|
||||||
await RdDHerbes.updatePotionData(formData);
|
if (formData.options.isOwned && this.item.type == 'herbe' && (formData.system.categorie == 'Soin' || formData.system.categorie == 'Repos')) {
|
||||||
}
|
|
||||||
if (formData.isOwned && this.item.type == 'herbe' && (formData.system.categorie == 'Soin' || formData.system.categorie == 'Repos')) {
|
|
||||||
formData.isIngredientPotionBase = true;
|
formData.isIngredientPotionBase = true;
|
||||||
}
|
}
|
||||||
if (this.item.type == 'sortreserve') {
|
if (this.item.type == 'sortreserve') {
|
||||||
const sortId = this.item.system.sortid;
|
const sortId = this.item.system.sortid;
|
||||||
formData.sort = formData.isOwned ? this.item.actor.items.get(sortId) : game.items.get(sortId);
|
formData.sort = formData.options.isOwned ? this.item.actor.items.get(sortId) : game.items.get(sortId);
|
||||||
}
|
}
|
||||||
formData.bonusCaseList = RdDItemSort.getBonusCaseList(formData, true);
|
formData.bonusCaseList = RdDItemSort.getBonusCaseList(formData, true);
|
||||||
|
|
||||||
@@ -159,8 +151,10 @@ export class RdDItemSheet extends ItemSheet {
|
|||||||
super.activateListeners(html);
|
super.activateListeners(html);
|
||||||
this.html = html;
|
this.html = html;
|
||||||
|
|
||||||
HtmlUtility._showControlWhen(this.html.find(".item-cout"), ReglesOptionelles.isUsing('afficher-prix-joueurs') || game.user.isGM || !this.item.isOwned);
|
HtmlUtility.showControlWhen(this.html.find(".item-cout"), ReglesOptionelles.isUsing('afficher-prix-joueurs')
|
||||||
HtmlUtility._showControlWhen(this.html.find(".item-magique"), this.item.isMagique());
|
|| game.user.isGM
|
||||||
|
|| !this.item.isOwned);
|
||||||
|
HtmlUtility.showControlWhen(this.html.find(".item-magique"), this.item.isMagique());
|
||||||
|
|
||||||
// Everything below here is only needed if the sheet is editable
|
// Everything below here is only needed if the sheet is editable
|
||||||
if (!this.options.editable) return;
|
if (!this.options.editable) return;
|
||||||
@@ -185,10 +179,12 @@ export class RdDItemSheet extends ItemSheet {
|
|||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
this.html.find('.enchanteDate').change((event) => {
|
this.html.find('.date-enchantement').change((event) => {
|
||||||
let jour = Number(this.html.find('[name="splitDate.day"]').val());
|
const jour = Number(this.html.find('input.date-enchantement[name="enchantement.jour"]').val());
|
||||||
let mois = this.html.find('[name="splitDate.month"]').val();
|
const mois = RdDTimestamp.definition(this.html.find('select.date-enchantement[name="enchantement.mois"]').val());
|
||||||
this.dateUpdated = game.system.rdd.calendrier.getIndexFromDate(jour, mois);
|
const indexDate = game.system.rdd.calendrier.getIndexFromDate(jour, mois.heure);
|
||||||
|
this.item.update({ 'system.prdate': indexDate });
|
||||||
|
console.warn(`Date d'enchantement modifiée ${jour}/${mois.heure}: ${indexDate}`)
|
||||||
});
|
});
|
||||||
|
|
||||||
this.html.find('.creer-tache-livre').click((event) => this._getEventActor(event).creerTacheDepuisLivre(this.item));
|
this.html.find('.creer-tache-livre').click((event) => this._getEventActor(event).creerTacheDepuisLivre(this.item));
|
||||||
@@ -213,6 +209,11 @@ export class RdDItemSheet extends ItemSheet {
|
|||||||
this.html.find('.item-vendre').click(async event => RdDSheetUtility.getItem(event, this.actor)?.proposerVente());
|
this.html.find('.item-vendre').click(async event => RdDSheetUtility.getItem(event, this.actor)?.proposerVente());
|
||||||
this.html.find('.item-montrer').click(async event => RdDSheetUtility.getItem(event, this.actor)?.postItemToChat());
|
this.html.find('.item-montrer').click(async event => RdDSheetUtility.getItem(event, this.actor)?.postItemToChat());
|
||||||
this.html.find('.item-action').click(async event => RdDSheetUtility.getItem(event, this.actor)?.actionPrincipale(this.actor, async () => this.render(true)));
|
this.html.find('.item-action').click(async event => RdDSheetUtility.getItem(event, this.actor)?.actionPrincipale(this.actor, async () => this.render(true)));
|
||||||
|
|
||||||
|
const updateItemTimestamp = (path, timestamp) => this.item.update({ [path]: duplicate(timestamp) })
|
||||||
|
|
||||||
|
RdDTimestamp.handleTimestampEditor(this.html, 'system.temporel.debut', updateItemTimestamp);
|
||||||
|
RdDTimestamp.handleTimestampEditor(this.html, 'system.temporel.fin', updateItemTimestamp);
|
||||||
}
|
}
|
||||||
|
|
||||||
_getEventActor(event) {
|
_getEventActor(event) {
|
||||||
@@ -221,6 +222,7 @@ export class RdDItemSheet extends ItemSheet {
|
|||||||
return actor;
|
return actor;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
async _onSelectCategorie(event) {
|
async _onSelectCategorie(event) {
|
||||||
event.preventDefault();
|
event.preventDefault();
|
||||||
|
|||||||
@@ -1,4 +0,0 @@
|
|||||||
export class RdDItemTache extends Item {
|
|
||||||
|
|
||||||
|
|
||||||
}
|
|
||||||
214
module/item.js
@@ -2,17 +2,20 @@ import { DialogItemVente } from "./dialog-item-vente.js";
|
|||||||
import { Grammar } from "./grammar.js";
|
import { Grammar } from "./grammar.js";
|
||||||
import { Misc } from "./misc.js";
|
import { Misc } from "./misc.js";
|
||||||
import { RdDHerbes } from "./rdd-herbes.js";
|
import { RdDHerbes } from "./rdd-herbes.js";
|
||||||
|
import { RdDTimestamp } from "./rdd-timestamp.js";
|
||||||
import { RdDUtility } from "./rdd-utility.js";
|
import { RdDUtility } from "./rdd-utility.js";
|
||||||
import { SystemCompendiums } from "./settings/system-compendiums.js";
|
import { SystemCompendiums } from "./settings/system-compendiums.js";
|
||||||
|
import { RdDRaretes } from "./item/raretes.js";
|
||||||
|
|
||||||
const typesObjetsInventaire = [
|
const typesInventaireMateriel = [
|
||||||
"arme",
|
"arme",
|
||||||
"armure",
|
"armure",
|
||||||
"conteneur",
|
"conteneur",
|
||||||
|
"faune",
|
||||||
"gemme",
|
"gemme",
|
||||||
"herbe",
|
"herbe",
|
||||||
|
"plante",
|
||||||
"ingredient",
|
"ingredient",
|
||||||
"faune",
|
|
||||||
"livre",
|
"livre",
|
||||||
"monnaie",
|
"monnaie",
|
||||||
"munition",
|
"munition",
|
||||||
@@ -20,11 +23,18 @@ const typesObjetsInventaire = [
|
|||||||
"objet",
|
"objet",
|
||||||
"potion",
|
"potion",
|
||||||
]
|
]
|
||||||
|
const typesInventaire = {
|
||||||
|
materiel: typesInventaireMateriel,
|
||||||
|
all: ['service'].concat(typesInventaireMateriel),
|
||||||
|
}
|
||||||
|
|
||||||
const typesObjetsOeuvres = ["oeuvre", "recettecuisine", "musique", "chant", "danse", "jeu"]
|
const typesObjetsOeuvres = ["oeuvre", "recettecuisine", "musique", "chant", "danse", "jeu"]
|
||||||
const typesObjetsDraconiques = ["queue", "ombre", "souffle", "tete", "signedraconique", "sortreserve", "rencontre"]
|
const typesObjetsDraconiques = ["queue", "ombre", "souffle", "tete", "signedraconique", "sortreserve", "rencontre"]
|
||||||
const typesObjetsConnaissance = ["meditation", "recettealchimique", "sort"]
|
const typesObjetsConnaissance = ["meditation", "recettealchimique", "sort"]
|
||||||
const typesObjetsEffet = ["possession", "poison", "maladie"]
|
const typesObjetsEffet = ["possession", "poison", "maladie", "blessure"]
|
||||||
const typesObjetsCompetence = ["competence", "competencecreature"]
|
const typesObjetsCompetence = ["competence", "competencecreature"]
|
||||||
|
const typesObjetsTemporels = ["blessure", "poison", "maladie", "queue", "ombre", "souffle", "signedraconique", "rencontre"]
|
||||||
|
const typesEnvironnement = typesInventaireMateriel;
|
||||||
const encBrin = 0.00005; // un brin = 1 décigramme = 1/10g = 1/10000kg = 1/20000 enc
|
const encBrin = 0.00005; // un brin = 1 décigramme = 1/10g = 1/10000kg = 1/20000 enc
|
||||||
const encPepin = 0.0007; /* un pépin de gemme = 1/10 cm3 = 1/1000 l = 3.5/1000 kg = 7/2000 kg = 7/1000 enc
|
const encPepin = 0.0007; /* un pépin de gemme = 1/10 cm3 = 1/1000 l = 3.5/1000 kg = 7/2000 kg = 7/1000 enc
|
||||||
densité 3.5 (~2.3 à 4, parfois plus) -- https://www.juwelo.fr/guide-des-pierres/faits-et-chiffres/
|
densité 3.5 (~2.3 à 4, parfois plus) -- https://www.juwelo.fr/guide-des-pierres/faits-et-chiffres/
|
||||||
@@ -58,7 +68,7 @@ export const defaultItemImg = {
|
|||||||
poison: "systems/foundryvtt-reve-de-dragon/icons/maladies_venins/venin.webp",
|
poison: "systems/foundryvtt-reve-de-dragon/icons/maladies_venins/venin.webp",
|
||||||
oeuvre: "systems/foundryvtt-reve-de-dragon/icons/competence_comedie.webp",
|
oeuvre: "systems/foundryvtt-reve-de-dragon/icons/competence_comedie.webp",
|
||||||
nourritureboisson: "systems/foundryvtt-reve-de-dragon/icons/objets/provision_crue.webp",
|
nourritureboisson: "systems/foundryvtt-reve-de-dragon/icons/objets/provision_crue.webp",
|
||||||
service: "systems/foundryvtt-reve-de-dragon/icons/items/services.webp",
|
service: "systems/foundryvtt-reve-de-dragon/icons/services/lit.webp",
|
||||||
signedraconique: "systems/foundryvtt-reve-de-dragon/icons/tmr/signe_draconique.webp",
|
signedraconique: "systems/foundryvtt-reve-de-dragon/icons/tmr/signe_draconique.webp",
|
||||||
gemme: "systems/foundryvtt-reve-de-dragon/icons/gemmes/almaze.webp",
|
gemme: "systems/foundryvtt-reve-de-dragon/icons/gemmes/almaze.webp",
|
||||||
possession: "systems/foundryvtt-reve-de-dragon/icons/entites/possession2.webp",
|
possession: "systems/foundryvtt-reve-de-dragon/icons/entites/possession2.webp",
|
||||||
@@ -97,8 +107,14 @@ export class RdDItem extends Item {
|
|||||||
return game.items.get(itemRef.id ?? itemRef._id);
|
return game.items.get(itemRef.id ?? itemRef._id);
|
||||||
}
|
}
|
||||||
|
|
||||||
static getItemTypesInventaire() {
|
static getItemTypesInventaire(mode = 'materiel') {
|
||||||
return typesObjetsInventaire
|
return typesInventaire[mode ?? 'materiel']
|
||||||
|
}
|
||||||
|
static getItemTypesDraconiques() {
|
||||||
|
return typesObjetsDraconiques;
|
||||||
|
}
|
||||||
|
static getItemTypesEnvironnement() {
|
||||||
|
return typesEnvironnement;
|
||||||
}
|
}
|
||||||
|
|
||||||
static getTypesOeuvres() {
|
static getTypesOeuvres() {
|
||||||
@@ -145,27 +161,54 @@ export class RdDItem extends Item {
|
|||||||
isCompetenceCreature() { return this.type == 'competencecreature' }
|
isCompetenceCreature() { return this.type == 'competencecreature' }
|
||||||
isConteneur() { return this.type == 'conteneur'; }
|
isConteneur() { return this.type == 'conteneur'; }
|
||||||
isMonnaie() { return this.type == 'monnaie'; }
|
isMonnaie() { return this.type == 'monnaie'; }
|
||||||
|
isPotion() { return this.type == 'potion'; }
|
||||||
isNourritureBoisson() { return this.type == 'nourritureboisson'; }
|
isNourritureBoisson() { return this.type == 'nourritureboisson'; }
|
||||||
isService() { return this.type == 'service'; }
|
isService() { return this.type == 'service'; }
|
||||||
isCompetence() {
|
|
||||||
return typesObjetsCompetence.includes(this.type)
|
isCompetence() { return typesObjetsCompetence.includes(this.type) }
|
||||||
}
|
isTemporel() { return typesObjetsTemporels.includes(this.type) }
|
||||||
isInventaire() {
|
isOeuvre() { return typesObjetsOeuvres.includes(this.type) }
|
||||||
return typesObjetsInventaire.includes(this.type);
|
isDraconique() { return RdDItem.getItemTypesDraconiques().includes(this.type) }
|
||||||
}
|
isEffet() { return typesObjetsEffet.includes(this.type) }
|
||||||
isOeuvre() {
|
isConnaissance() { return typesObjetsConnaissance.includes(this.type) }
|
||||||
return typesObjetsOeuvres.includes(this.type)
|
|
||||||
}
|
isInventaire(mode = 'materiel') { return RdDItem.getItemTypesInventaire(mode).includes(this.type); }
|
||||||
isDraconique() {
|
isBoisson() { return this.isNourritureBoisson() && this.system.boisson; }
|
||||||
return typesObjetsDraconiques.includes(this.type)
|
isAlcool() { return this.isNourritureBoisson() && this.system.boisson && this.system.alcoolise; }
|
||||||
}
|
isHerbeAPotion() { return this.type == 'herbe' && (this.system.categorie == 'Soin' || this.system.categorie == 'Repos'); }
|
||||||
isEffet() {
|
isBlessure() { return this.type == 'blessure' }
|
||||||
return typesObjetsEffet.includes(this.type)
|
|
||||||
}
|
isPresentDansMilieux(milieux) {
|
||||||
isConnaissance() {
|
return this.getEnvironnements(milieux).length > 0
|
||||||
return typesObjetsConnaissance.includes(this.type)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
getEnvironnements(milieux = undefined) {
|
||||||
|
const environnements = this.isInventaire() ? this.system.environnement : undefined;
|
||||||
|
if (milieux == undefined || !environnements) {
|
||||||
|
return environnements ?? [];
|
||||||
|
}
|
||||||
|
return environnements.filter(env => milieux.includes(env.milieu))
|
||||||
|
}
|
||||||
|
|
||||||
|
getMilieux() {
|
||||||
|
return this.getEnvironnements().map(env => env.milieu);
|
||||||
|
}
|
||||||
|
|
||||||
|
getRaretes(milieux = undefined) {
|
||||||
|
if (this.isInventaire()) {
|
||||||
|
const raretes = this.getEnvironnements(milieux).map(env => RdDRaretes.byCode(env.rarete));
|
||||||
|
if (milieux == undefined && raretes.length == 0) {
|
||||||
|
return [RdDRaretes.rareteFrequente()];
|
||||||
|
}
|
||||||
|
return raretes;
|
||||||
|
}
|
||||||
|
return [RdDRaretes.rareteEgale()];
|
||||||
|
}
|
||||||
|
|
||||||
|
getFrequence(milieux = undefined) {
|
||||||
|
const frequences = this.getEnvironnements(milieux).map(it => it.frequence);
|
||||||
|
return frequences.length == 0 ? 0 : Math.max(...frequences);
|
||||||
|
}
|
||||||
|
|
||||||
getItemGroup() {
|
getItemGroup() {
|
||||||
if (this.isInventaire()) return "equipement";
|
if (this.isInventaire()) return "equipement";
|
||||||
@@ -177,39 +220,79 @@ export class RdDItem extends Item {
|
|||||||
return "autres";
|
return "autres";
|
||||||
}
|
}
|
||||||
|
|
||||||
isConteneurNonVide() {
|
isConteneurNonVide() { return this.isConteneur() && (this.system.contenu?.length ?? 0) > 0; }
|
||||||
return this.isConteneur() && (this.system.contenu?.length ?? 0) > 0;
|
isConteneurVide() { return this.isConteneur() && (this.system.contenu?.length ?? 0) == 0; }
|
||||||
|
isVideOuNonConteneur() { return !this.isConteneur() || (this.system.contenu?.length ?? 0) == 0; }
|
||||||
|
|
||||||
|
isFinPeriode(oldTimestamp, newTimestamp) {
|
||||||
|
if (!this.isTemporel()) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
const finPeriode = new RdDTimestamp(this.system.temporel.fin);
|
||||||
|
return oldTimestamp.compare(finPeriode) < 0 && finPeriode.compare(newTimestamp) <= 0
|
||||||
}
|
}
|
||||||
|
|
||||||
isConteneurVide() {
|
async onCreateItemTemporel(actor) {
|
||||||
return this.isConteneur() && (this.system.contenu?.length ?? 0) == 0;
|
if (this.isTemporel()) {
|
||||||
|
const timestampDebut = game.system.rdd.calendrier.timestamp;
|
||||||
|
const timestampFin = await this.calculerFinPeriodeTemporel(timestampDebut);
|
||||||
|
await actor.updateEmbeddedDocuments('Item', [{
|
||||||
|
_id: this.id,
|
||||||
|
'system.temporel.debut': duplicate(timestampDebut),
|
||||||
|
'system.temporel.fin': duplicate(timestampFin),
|
||||||
|
}])
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
isVideOuNonConteneur() {
|
async calculerFinPeriodeTemporel(timestampDebut) {
|
||||||
return !this.isConteneur() || (this.system.contenu?.length ?? 0) == 0;
|
return timestampDebut;
|
||||||
}
|
}
|
||||||
|
|
||||||
isComestible() {
|
async onFinPeriodeTemporel(oldTimestamp, newTimestamp) {
|
||||||
|
if (this.isTemporel() && this.actor) {
|
||||||
|
await this.onFinPeriode(oldTimestamp, newTimestamp);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
async onFinPeriode(oldTimestamp, newTimestamp) {
|
||||||
|
console.log(`${this.actor.name}: l'objet ${this.name} a expiré et été supprimé`);
|
||||||
|
await this.actor?.deleteEmbeddedDocuments('Item', [this.id]);
|
||||||
|
}
|
||||||
|
|
||||||
|
getUtilisation() {
|
||||||
switch (this.type) {
|
switch (this.type) {
|
||||||
case 'nourritureboisson': return 'pret';
|
case 'potion':
|
||||||
case 'herbe':
|
switch (this.system.categorie) {
|
||||||
return this.system.categorie == 'Cuisine' && this.system.sust > 0 ? 'brut' : '';
|
case 'Alchimie': case 'AlchimieEnchante': case 'AlchimieAutre': return 'alchimie'
|
||||||
case 'faune':
|
case 'Cuisine': return 'cuisine'
|
||||||
return this.system.sust > 0 ? 'brut' : '';
|
case 'Remede': case 'Repos': case 'ReposEnchante': case 'Soin': case 'SoinEnchante': return 'soins'
|
||||||
|
}
|
||||||
|
return '';
|
||||||
|
case 'nourritureboisson': return 'cuisine';
|
||||||
|
case 'herbe': case 'faune': case 'ingredient': case 'plante':
|
||||||
|
switch (this.system.categorie) {
|
||||||
|
case 'Cuisine': return 'cuisine';
|
||||||
|
case 'Toxique': case 'Poison': return 'poison';
|
||||||
|
case 'Alchimie': return 'alchimie'
|
||||||
|
case 'Soin': case 'Repos': return 'soins'
|
||||||
|
}
|
||||||
|
return this.system.sust > 0 ? 'cuisine' : '';
|
||||||
}
|
}
|
||||||
return '';
|
return '';
|
||||||
}
|
}
|
||||||
|
|
||||||
isAlcool() {
|
getUtilisationCuisine() {
|
||||||
return this.isNourritureBoisson() && this.system.boisson && this.system.alcoolise;
|
if (this.getUtilisation() == 'cuisine') {
|
||||||
|
switch (this.type) {
|
||||||
|
case 'nourritureboisson':
|
||||||
|
return 'pret';
|
||||||
|
case 'herbe': case 'faune': case 'ingredient': case 'plante':
|
||||||
|
return 'brut';
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return '';
|
||||||
}
|
}
|
||||||
|
|
||||||
isHerbeAPotion() {
|
|
||||||
return this.type == 'herbe' && (this.system.categorie == 'Soin' || this.system.categorie == 'Repos');
|
|
||||||
}
|
|
||||||
isPotion() {
|
|
||||||
return this.type == 'potion';
|
|
||||||
}
|
|
||||||
isCristalAlchimique() {
|
isCristalAlchimique() {
|
||||||
return this.type == 'objet' && Grammar.toLowerCaseNoAccent(this.name) == 'cristal alchimique' && this.system.quantite > 0;
|
return this.type == 'objet' && Grammar.toLowerCaseNoAccent(this.name) == 'cristal alchimique' && this.system.quantite > 0;
|
||||||
}
|
}
|
||||||
@@ -218,16 +301,29 @@ export class RdDItem extends Item {
|
|||||||
return this.system.magique
|
return this.system.magique
|
||||||
}
|
}
|
||||||
|
|
||||||
|
isItemCommerce() {
|
||||||
|
return this.parent?.type == 'commerce';
|
||||||
|
}
|
||||||
|
|
||||||
|
isNomLike(texte) {
|
||||||
|
return Grammar.includesLowerCaseNoAccent(this.name, texte)
|
||||||
|
}
|
||||||
|
isNomTypeLike(texte) {
|
||||||
|
return this.isNomLike(texte) || Grammar.includesLowerCaseNoAccent(Misc.typeName(this.type, 'Item'), texte)
|
||||||
|
}
|
||||||
|
|
||||||
getQuantite() {
|
getQuantite() {
|
||||||
return Math.round(this.system.quantite ?? 0)
|
return this.isService() ? undefined : Math.round(this.system.quantite ?? 0)
|
||||||
}
|
}
|
||||||
|
|
||||||
getEncTotal() {
|
getEncTotal() {
|
||||||
return this.getEnc() * this.getQuantite();
|
return (this.isService() ? 0 : this.getQuantite()) * this.getEnc();
|
||||||
}
|
}
|
||||||
|
|
||||||
getEnc() {
|
getEnc() {
|
||||||
switch (this.type) {
|
switch (this.type) {
|
||||||
|
case 'service':
|
||||||
|
return 0;
|
||||||
case 'herbe':
|
case 'herbe':
|
||||||
return this.getEncHerbe();
|
return this.getEncHerbe();
|
||||||
case 'gemme':
|
case 'gemme':
|
||||||
@@ -246,13 +342,21 @@ export class RdDItem extends Item {
|
|||||||
}
|
}
|
||||||
|
|
||||||
valeurTotale() {
|
valeurTotale() {
|
||||||
return this.getQuantite() * this.valeur()
|
return (this.isService() ? 1 : this.getQuantite()) * this.valeur()
|
||||||
}
|
}
|
||||||
|
|
||||||
valeur() {
|
valeur() {
|
||||||
return this.system.cout ?? 0
|
return this.system.cout ?? 0
|
||||||
}
|
}
|
||||||
|
|
||||||
|
calculerPrixCommercant() {
|
||||||
|
if (this.isItemCommerce()) {
|
||||||
|
// appliquer le pourcentage
|
||||||
|
return this.parent.calculerPrix(this);
|
||||||
|
}
|
||||||
|
return this.system.cout;
|
||||||
|
}
|
||||||
|
|
||||||
prepareDerivedData() {
|
prepareDerivedData() {
|
||||||
super.prepareDerivedData();
|
super.prepareDerivedData();
|
||||||
if (this.isInventaire()) {
|
if (this.isInventaire()) {
|
||||||
@@ -281,7 +385,7 @@ export class RdDItem extends Item {
|
|||||||
}
|
}
|
||||||
if (this.actor?.isPersonnage()) {
|
if (this.actor?.isPersonnage()) {
|
||||||
const warn = options.warnIfNot;
|
const warn = options.warnIfNot;
|
||||||
if (this.isComestible() == 'brut') {
|
if (this.getUtilisationCuisine() == 'brut') {
|
||||||
return 'Utiliser';
|
return 'Utiliser';
|
||||||
}
|
}
|
||||||
switch (this.type) {
|
switch (this.type) {
|
||||||
@@ -330,7 +434,7 @@ export class RdDItem extends Item {
|
|||||||
}
|
}
|
||||||
|
|
||||||
async onCreateDecoupeComestible(actor) {
|
async onCreateDecoupeComestible(actor) {
|
||||||
if (actor && this.isComestible() == 'brut' && this.system.sust != 1) {
|
if (actor && this.getUtilisationCuisine() == 'brut' && this.system.sust != 1) {
|
||||||
if (this.system.sust < 1) {
|
if (this.system.sust < 1) {
|
||||||
await actor.updateEmbeddedDocuments('Item', [{
|
await actor.updateEmbeddedDocuments('Item', [{
|
||||||
_id: this.id,
|
_id: this.id,
|
||||||
@@ -351,7 +455,7 @@ export class RdDItem extends Item {
|
|||||||
}
|
}
|
||||||
|
|
||||||
async empiler(item) {
|
async empiler(item) {
|
||||||
if (this.isComestible() == 'brut') {
|
if (this.getUtilisationCuisine() == 'brut') {
|
||||||
const sust = this.system.sust + item.system.sust;
|
const sust = this.system.sust + item.system.sust;
|
||||||
const encombrement = this.system.encombrement + item.system.encombrement;
|
const encombrement = this.system.encombrement + item.system.encombrement;
|
||||||
await this.update({
|
await this.update({
|
||||||
@@ -365,7 +469,7 @@ export class RdDItem extends Item {
|
|||||||
await item.delete();
|
await item.delete();
|
||||||
}
|
}
|
||||||
|
|
||||||
async quantiteIncDec(nombre, options = { diminuerQuantite: true, supprimerSiZero: false }) {
|
async quantiteIncDec(nombre, options = { supprimerSiZero: false }) {
|
||||||
const quantite = Number(this.system.quantite ?? -1);
|
const quantite = Number(this.system.quantite ?? -1);
|
||||||
if (quantite >= 0) {
|
if (quantite >= 0) {
|
||||||
const reste = Math.max(quantite + Number(nombre), 0);
|
const reste = Math.max(quantite + Number(nombre), 0);
|
||||||
@@ -402,8 +506,8 @@ export class RdDItem extends Item {
|
|||||||
return [false, `Impossible de regrouper ${this.name} avec ${other.name}`];
|
return [false, `Impossible de regrouper ${this.name} avec ${other.name}`];
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
const excludedProperties = ['quantite', 'cout', 'encTotal'];
|
const excludedProperties = ['quantite', 'cout', 'encTotal', 'environnement', 'contenu'];
|
||||||
if (this.isComestible()) {
|
if (this.getUtilisationCuisine()) {
|
||||||
excludedProperties.push('sust', 'encombrement');
|
excludedProperties.push('sust', 'encombrement');
|
||||||
}
|
}
|
||||||
let differences = Object.entries(this.system)
|
let differences = Object.entries(this.system)
|
||||||
@@ -420,7 +524,7 @@ export class RdDItem extends Item {
|
|||||||
return [true, undefined];
|
return [true, undefined];
|
||||||
}
|
}
|
||||||
|
|
||||||
async proposerVente({ service = undefined, quantiteMax = undefined }) {
|
async proposerVente(quantiteMax = undefined) {
|
||||||
console.log(this);
|
console.log(this);
|
||||||
if (this.isConteneurNonVide()) {
|
if (this.isConteneurNonVide()) {
|
||||||
ui.notifications.warn(`Votre ${this.name} n'est pas vide, pas possible de le proposer`);
|
ui.notifications.warn(`Votre ${this.name} n'est pas vide, pas possible de le proposer`);
|
||||||
@@ -428,7 +532,6 @@ export class RdDItem extends Item {
|
|||||||
}
|
}
|
||||||
await DialogItemVente.display({
|
await DialogItemVente.display({
|
||||||
item: this,
|
item: this,
|
||||||
service: service,
|
|
||||||
quantiteMax,
|
quantiteMax,
|
||||||
callback: async (vente) => {
|
callback: async (vente) => {
|
||||||
vente["properties"] = this.getProprietes();
|
vente["properties"] = this.getProprietes();
|
||||||
@@ -475,9 +578,6 @@ export class RdDItem extends Item {
|
|||||||
}
|
}
|
||||||
|
|
||||||
getChatItemTemplate() {
|
getChatItemTemplate() {
|
||||||
switch (this.type) {
|
|
||||||
case 'service': return 'systems/foundryvtt-reve-de-dragon/templates/post-item-service.html';
|
|
||||||
}
|
|
||||||
return 'systems/foundryvtt-reve-de-dragon/templates/post-item.html';
|
return 'systems/foundryvtt-reve-de-dragon/templates/post-item.html';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
181
module/item/blessure.js
Normal file
@@ -0,0 +1,181 @@
|
|||||||
|
import { RdDItem } from "../item.js";
|
||||||
|
import { Misc } from "../misc.js";
|
||||||
|
import { RdDTimestamp } from "../rdd-timestamp.js";
|
||||||
|
|
||||||
|
const BASE_TACHE_SOIN_BLESSURE = {
|
||||||
|
type: "tache",
|
||||||
|
img: 'systems/foundryvtt-reve-de-dragon/icons/competence_chirurgie.webp',
|
||||||
|
system: { carac: "dexterite", competence: "Chirurgie", periodicite: "1 round", fatigue: 0, }
|
||||||
|
}
|
||||||
|
const TACHES_SOIN_BLESSURE = {
|
||||||
|
6: { name: 'Blessure critique', system: { difficulte: -6, points_de_tache: 6 } },
|
||||||
|
4: { name: 'Blessure grave', system: { difficulte: -4, points_de_tache: 4 } },
|
||||||
|
2: { name: 'Blessure légère', system: { difficulte: -2, points_de_tache: 2 } },
|
||||||
|
}
|
||||||
|
|
||||||
|
const definitionsBlessures = [
|
||||||
|
{ type: "contusion", gravite: 0, labelGravite: 'Contusion/éraflure', max: 100, icon: "systems/foundryvtt-reve-de-dragon/icons/sante/eraflure.webp" },
|
||||||
|
{ type: "legere", gravite: 2, labelGravite: 'Légère', max: 5, icon: "systems/foundryvtt-reve-de-dragon/icons/sante/blessure.webp" },
|
||||||
|
{ type: "grave", gravite: 4, labelGravite: 'Grave', max: 2, icon: "systems/foundryvtt-reve-de-dragon/icons/sante/blessure.webp" },
|
||||||
|
{ type: "critique", gravite: 6, labelGravite: 'Critique', max: 1, icon: "systems/foundryvtt-reve-de-dragon/icons/sante/blessure.webp" },
|
||||||
|
{ type: "mort", gravite: 8, labelGravite: 'Mort', max: 1, icon: "systems/foundryvtt-reve-de-dragon/icons/sante/mort.webp" }
|
||||||
|
]
|
||||||
|
|
||||||
|
export class RdDItemBlessure extends RdDItem {
|
||||||
|
|
||||||
|
static get defaultIcon() {
|
||||||
|
return "systems/foundryvtt-reve-de-dragon/icons/sante/blessure.webp";
|
||||||
|
}
|
||||||
|
|
||||||
|
prepareDerivedData() {
|
||||||
|
super.prepareDerivedData();
|
||||||
|
this.system.labelGravite = this.getLabelGravite()
|
||||||
|
}
|
||||||
|
|
||||||
|
static prepareTacheSoin(gravite) {
|
||||||
|
const tache = TACHES_SOIN_BLESSURE[gravite]
|
||||||
|
if (!tache) {
|
||||||
|
ui.notifications.warn(`Pas de tâche de soins pour une blessure ${gravite}`)
|
||||||
|
return undefined;
|
||||||
|
}
|
||||||
|
return mergeObject(duplicate(BASE_TACHE_SOIN_BLESSURE), tache)
|
||||||
|
}
|
||||||
|
static async createBlessure(actor, gravite, localisation = '') {
|
||||||
|
const definition = RdDItemBlessure.getDefinition(gravite)
|
||||||
|
const blessure = {
|
||||||
|
name: definition.labelGravite,
|
||||||
|
type: 'blessure',
|
||||||
|
img: definition.icon,
|
||||||
|
system: {
|
||||||
|
gravite: gravite,
|
||||||
|
difficulte: - gravite,
|
||||||
|
localisation: localisation
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
const blessures = await actor.createEmbeddedDocuments('Item', [blessure])
|
||||||
|
return blessures[0]
|
||||||
|
}
|
||||||
|
|
||||||
|
static async createTacheSoinBlessure(actor, gravite) {
|
||||||
|
const tache = RdDItemBlessure.prepareTacheSoin(gravite)
|
||||||
|
if (tache) {
|
||||||
|
const taches = await actor.createEmbeddedDocuments('Item', [tache], { renderSheet: false });
|
||||||
|
return taches[0];
|
||||||
|
}
|
||||||
|
return undefined
|
||||||
|
}
|
||||||
|
|
||||||
|
async updateTacheSoinBlessure(tache) {
|
||||||
|
if (tache) {
|
||||||
|
await tache.update({
|
||||||
|
system: {
|
||||||
|
itemId: this.id,
|
||||||
|
difficulte: Math.min(this.system.difficulte, tache.system.difficulte),
|
||||||
|
points_de_tache_courant: Math.max(0, this.system.premierssoins.tache)
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
async setSoinsBlessure(systemUpdate = {}) {
|
||||||
|
systemUpdate = mergeObject(systemUpdate, this.system, { overwrite: false }),
|
||||||
|
systemUpdate.soinscomplets.done = systemUpdate.premierssoins.done && systemUpdate.soinscomplets.done
|
||||||
|
await this.update({
|
||||||
|
img: this.getImgSoins(systemUpdate.gravite, systemUpdate.soinscomplets.done),
|
||||||
|
system: systemUpdate
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
async recuperationBlessure({ actor, timestamp, message, isMaladeEmpoisonne, blessures }) {
|
||||||
|
if (this.parent != actor || actor == undefined) {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
if (new RdDTimestamp(this.system.temporel.fin).compare(timestamp) > 0) {
|
||||||
|
// attente periode
|
||||||
|
return
|
||||||
|
}
|
||||||
|
if (this.system.gravite > 0) {
|
||||||
|
const update = { system: { premierssoins: { bonus: 0 }, soinscomplets: { bonus: 0 } } }
|
||||||
|
const gravite = this.system.gravite;
|
||||||
|
const graviteMoindre = gravite - 2;
|
||||||
|
const moindres = blessures.filter(it => it.system.gravite == graviteMoindre, 'blessures').length
|
||||||
|
const labelGravite = this.getLabelGravite();
|
||||||
|
|
||||||
|
let rolled = await actor.jetRecuperationConstitution(this.system.soinscomplets.bonus, message);
|
||||||
|
|
||||||
|
if (rolled.isETotal) {
|
||||||
|
message.content += ` -- une blessure ${labelGravite} s'infecte (temps de guérison augmenté de ${gravite} jours, perte de vie)`;
|
||||||
|
await actor.santeIncDec("vie", -1);
|
||||||
|
mergeObject(update, {
|
||||||
|
system: { fin: { indexDate: timestamp.addJours(gravite).indexDate } }
|
||||||
|
});
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
if (!isMaladeEmpoisonne && rolled.isSuccess && this.peutRetrograder(graviteMoindre, moindres)) {
|
||||||
|
message.content += ` -- une blessure ${labelGravite} cicatrise`;
|
||||||
|
mergeObject(update, {
|
||||||
|
system: { gravite: graviteMoindre, fin: { indexDate: timestamp.addJours(graviteMoindre).indexDate } }
|
||||||
|
});
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
message.content += ` -- une blessure ${labelGravite} reste stable`;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
await this.update(update);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
peutRetrograder(graviteMoindre, moindres) {
|
||||||
|
return moindres < RdDItemBlessure.getDefinition(graviteMoindre).max
|
||||||
|
}
|
||||||
|
|
||||||
|
async calculerFinPeriodeTemporel(debut) {
|
||||||
|
return await debut.nouveauJour().addJours(this.system.gravite);
|
||||||
|
}
|
||||||
|
|
||||||
|
async onFinPeriode(oldTimestamp, newTimestamp) {
|
||||||
|
if (this.system.gravite <= 0) {
|
||||||
|
await super.onFinPeriode(oldTimestamp, newTimestamp)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
getImgSoins(gravite, soins) {
|
||||||
|
let img = 'blessure'
|
||||||
|
if (gravite > 6) {
|
||||||
|
img = 'mort'
|
||||||
|
}
|
||||||
|
if (gravite <= 0) {
|
||||||
|
img = 'eraflure'
|
||||||
|
}
|
||||||
|
return `systems/foundryvtt-reve-de-dragon/icons/sante/${soins ? 'blessure-soins' : img}.webp`
|
||||||
|
}
|
||||||
|
|
||||||
|
getLabelGravite() {
|
||||||
|
return RdDItemBlessure.getDefinition(this.system.gravite).labelGravite
|
||||||
|
}
|
||||||
|
|
||||||
|
static getDefinition(gravite) {
|
||||||
|
return definitionsBlessures.sort(Misc.ascending(it => it.gravite))
|
||||||
|
.find(it => it.gravite >= gravite);
|
||||||
|
}
|
||||||
|
static maxBlessures(gravite) {
|
||||||
|
return RdDItemBlessure.getDefinition(gravite).max
|
||||||
|
}
|
||||||
|
|
||||||
|
isContusion() {
|
||||||
|
return this.system.gravite <= 0
|
||||||
|
}
|
||||||
|
isLegere() {
|
||||||
|
return this.system.gravite > 0 && this.system.gravite <= 2
|
||||||
|
}
|
||||||
|
isGrave() {
|
||||||
|
return this.system.gravite > 2 && this.system.gravite <= 4
|
||||||
|
}
|
||||||
|
isCritique() {
|
||||||
|
return this.system.gravite > 4 && this.system.gravite <= 6
|
||||||
|
}
|
||||||
|
isMort() {
|
||||||
|
return this.system.gravite > 6
|
||||||
|
}
|
||||||
|
}
|
||||||
47
module/item/maladie.js
Normal file
@@ -0,0 +1,47 @@
|
|||||||
|
import { RdDItem } from "../item.js";
|
||||||
|
import { Misc } from "../misc.js";
|
||||||
|
import { RdDTimestamp } from "../rdd-timestamp.js";
|
||||||
|
|
||||||
|
export class RdDItemMaladie extends RdDItem {
|
||||||
|
|
||||||
|
static get defaultIcon() {
|
||||||
|
return "systems/foundryvtt-reve-de-dragon/icons/maladies_venins/maladie.webp";
|
||||||
|
}
|
||||||
|
|
||||||
|
async calculerFinPeriodeTemporel(debut) {
|
||||||
|
return await debut.addPeriode(this.system.periode.nombre, this.system.periode.unite);
|
||||||
|
}
|
||||||
|
|
||||||
|
async onFinPeriode(oldTimestamp, newTimestamp) {
|
||||||
|
await RdDItemMaladie.notifierMaladiePoison(this, oldTimestamp, newTimestamp)
|
||||||
|
}
|
||||||
|
|
||||||
|
static async notifierMaladiePoison(mal, oldTimestamp, newTimestamp) {
|
||||||
|
if (mal.actor) {
|
||||||
|
const souffrance = mal.system.identifie
|
||||||
|
? `de ${mal.name}`
|
||||||
|
: `d'un mal inconnu`
|
||||||
|
ChatMessage.create({ content: `${mal.actor.name} souffre ${souffrance} (${Misc.typeName('Item', mal.type)}): vérifiez que les effets ne se sont pas aggravés !` });
|
||||||
|
mal.postItemToChat('gmroll');
|
||||||
|
await RdDItemMaladie.prolongerPeriode(mal,oldTimestamp, newTimestamp);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
static async prolongerPeriode(mal, oldTimestamp, newTimestamp) {
|
||||||
|
if (mal.actor) {
|
||||||
|
// TODO: déterminer le nombre de périodes écoulées
|
||||||
|
console.log(`${mal.actor.name}: le mal ${mal.name} a atteint la fin de sa période et été prolongé`);
|
||||||
|
const current = newTimestamp;
|
||||||
|
const finPeriode = new RdDTimestamp(mal.system.temporel.fin)
|
||||||
|
const periodeSuivante = (finPeriode.compare(current) > 0 ? finPeriode : current);
|
||||||
|
const timestampFin = await mal.calculerFinPeriodeTemporel(periodeSuivante);
|
||||||
|
|
||||||
|
await mal.actor.updateEmbeddedDocuments('Item', [{
|
||||||
|
_id: mal.id,
|
||||||
|
'system.temporel.fin': duplicate(timestampFin),
|
||||||
|
}])
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
11
module/item/ombre.js
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
import { RdDItem } from "../item.js";
|
||||||
|
|
||||||
|
export class RdDItemOmbre extends RdDItem {
|
||||||
|
static get defaultIcon() {
|
||||||
|
return "systems/foundryvtt-reve-de-dragon/icons/queue_dragon.webp";
|
||||||
|
}
|
||||||
|
|
||||||
|
async calculerFinPeriodeTemporel(debut) {
|
||||||
|
return await debut.appliquerDuree(this.system.duree, this.parent);
|
||||||
|
}
|
||||||
|
}
|
||||||
17
module/item/poison.js
Normal file
@@ -0,0 +1,17 @@
|
|||||||
|
import { RdDItem } from "../item.js";
|
||||||
|
import { RdDItemMaladie } from "./maladie.js";
|
||||||
|
|
||||||
|
export class RdDItemPoison extends RdDItem {
|
||||||
|
|
||||||
|
static get defaultIcon() {
|
||||||
|
return "systems/foundryvtt-reve-de-dragon/icons/maladies_venins/venin.webp";
|
||||||
|
}
|
||||||
|
|
||||||
|
async calculerFinPeriodeTemporel(debut) {
|
||||||
|
return await debut.addPeriode(this.system.periode.nombre, this.system.periode.unite) ;
|
||||||
|
}
|
||||||
|
|
||||||
|
async onFinPeriode(oldTimestamp, newTimestamp) {
|
||||||
|
RdDItemMaladie.notifierMaladiePoison(this, oldTimestamp, newTimestamp)
|
||||||
|
}
|
||||||
|
}
|
||||||
13
module/item/queue.js
Normal file
@@ -0,0 +1,13 @@
|
|||||||
|
import { RdDItem } from "../item.js";
|
||||||
|
|
||||||
|
export class RdDItemQueue extends RdDItem {
|
||||||
|
|
||||||
|
static get defaultIcon() {
|
||||||
|
return "systems/foundryvtt-reve-de-dragon/icons/queue_dragon.webp";
|
||||||
|
}
|
||||||
|
|
||||||
|
async calculerFinPeriodeTemporel(debut) {
|
||||||
|
return await debut.appliquerDuree(this.system.duree, this.parent);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
31
module/item/raretes.js
Normal file
@@ -0,0 +1,31 @@
|
|||||||
|
|
||||||
|
const RARETE_COMMUNE = { code: 'Commune', label: 'Commune', frequence: 54, min: 27, max: 108 };
|
||||||
|
const RARETE_FREQUENTE = { code: 'Frequente', label: 'Fréquente', frequence: 18, min: 9, max: 36 };
|
||||||
|
const RARETE_RARE = { code: 'Rare', label: 'Rare', frequence: 6, min: 3, max: 12 };
|
||||||
|
const RARETE_RARISSIME = { code: 'Rarissime', label: 'Rarissime', frequence: 2, min: 1, max: 4 };
|
||||||
|
const RARETE_INEXISTANT = { code: 'Inexistant', label: 'Inexistant', frequence: 0, min: 0, max: 0 };
|
||||||
|
const RARETE_EGALE = { code: 'eqal', label: 'Egal', frequence: 1, min: 1, max: 1 };
|
||||||
|
|
||||||
|
const RARETES = [
|
||||||
|
RARETE_COMMUNE,
|
||||||
|
RARETE_FREQUENTE,
|
||||||
|
RARETE_RARE,
|
||||||
|
RARETE_RARISSIME,
|
||||||
|
RARETE_INEXISTANT,
|
||||||
|
]
|
||||||
|
|
||||||
|
export class RdDRaretes {
|
||||||
|
|
||||||
|
static rareteFrequente() { return RARETE_FREQUENTE; }
|
||||||
|
static rareteEgale() { return RARETE_EGALE; }
|
||||||
|
static raretes() { return RARETES; }
|
||||||
|
|
||||||
|
static byCode(code = undefined) {
|
||||||
|
return RARETES.find(it => it.code == code) ?? RARETE_FREQUENTE;
|
||||||
|
}
|
||||||
|
|
||||||
|
static getChamp(rarete, field = undefined) {
|
||||||
|
return RdDRaretes.byCode(rarete)[field ?? 'frequence'];
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@@ -1,4 +1,5 @@
|
|||||||
import { EffetsRencontre } from "./effets-rencontres.js";
|
import { EffetsRencontre } from "../tmr/effets-rencontres.js";
|
||||||
|
import { RdDItem } from "../item.js";
|
||||||
|
|
||||||
const tableEffets = [
|
const tableEffets = [
|
||||||
{ code: "messager", resultat: "succes", description: "Envoie un message à (force) cases", method: EffetsRencontre.messager },
|
{ code: "messager", resultat: "succes", description: "Envoie un message à (force) cases", method: EffetsRencontre.messager },
|
||||||
@@ -36,7 +37,11 @@ const tableEffets = [
|
|||||||
// { code: "epart-souffle", resultat: "echec", description: "Souffle de dragon sur échec particulier" },
|
// { code: "epart-souffle", resultat: "echec", description: "Souffle de dragon sur échec particulier" },
|
||||||
];
|
];
|
||||||
|
|
||||||
export class RdDRencontre {
|
export class RdDRencontre extends RdDItem {
|
||||||
|
|
||||||
|
static get defaultIcon() {
|
||||||
|
return "systems/foundryvtt-reve-de-dragon/icons/tete_dragon.webp";
|
||||||
|
}
|
||||||
|
|
||||||
static getEffetsSucces() { return RdDRencontre.getEffets("succes"); }
|
static getEffetsSucces() { return RdDRencontre.getEffets("succes"); }
|
||||||
static getEffetsEchec() { return RdDRencontre.getEffets("echec"); }
|
static getEffetsEchec() { return RdDRencontre.getEffets("echec"); }
|
||||||
@@ -68,4 +73,8 @@ export class RdDRencontre {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
async calculerFinPeriodeTemporel(debut) {
|
||||||
|
return await debut.nouvelleHeure().addHeures(12);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
17
module/item/service.js
Normal file
@@ -0,0 +1,17 @@
|
|||||||
|
import { RdDItem } from "../item.js";
|
||||||
|
|
||||||
|
export class RdDItemService extends RdDItem {
|
||||||
|
|
||||||
|
static get defaultIcon() {
|
||||||
|
return "systems/foundryvtt-reve-de-dragon/icons/services/lit.webp";
|
||||||
|
}
|
||||||
|
|
||||||
|
isService() { return true; }
|
||||||
|
getProprietes() {
|
||||||
|
return [
|
||||||
|
RdDItem.propertyIfDefined('Qualité', this.system.qualite, this.system.qualite != 0),
|
||||||
|
RdDItem.propertyIfDefined('Moral', 'Situation heureuse', this.system.moral),
|
||||||
|
RdDItem.propertyIfDefined('Coût', `${this.calculerPrixCommercant()} sols`),
|
||||||
|
];
|
||||||
|
}
|
||||||
|
}
|
||||||
120
module/item/sheet-base-inventaire.js
Normal file
@@ -0,0 +1,120 @@
|
|||||||
|
import { HtmlUtility } from "../html-utility.js";
|
||||||
|
import { RdDItemSheet } from "../item-sheet.js";
|
||||||
|
import { Misc } from "../misc.js";
|
||||||
|
import { RdDRaretes } from "./raretes.js";
|
||||||
|
|
||||||
|
const TYPE_ITEMS_NATURELS = ["faune", "herbe", "plante", "ingredient"];
|
||||||
|
|
||||||
|
export class RdDItemInventaireSheet extends RdDItemSheet {
|
||||||
|
|
||||||
|
static get defaultOptions() {
|
||||||
|
return mergeObject(RdDItemSheet.defaultOptions, {
|
||||||
|
tabs: [{ navSelector: ".sheet-tabs", contentSelector: ".sheet-body", initial: "informations" }]
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
setPosition(options = {}) {
|
||||||
|
const position = super.setPosition(options);
|
||||||
|
const sheetHeader = this.element.find(".sheet-header");
|
||||||
|
const sheetBody = this.element.find(".sheet-body");
|
||||||
|
sheetBody.css("height", position.height - sheetHeader[0].clientHeight)
|
||||||
|
return position;
|
||||||
|
}
|
||||||
|
|
||||||
|
async getData() {
|
||||||
|
const formData = await super.getData();
|
||||||
|
return mergeObject(formData, {
|
||||||
|
milieux: await game.system.rdd.environnement.autresMilieux(this.item)
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
activateListeners(html) {
|
||||||
|
super.activateListeners(html);
|
||||||
|
HtmlUtility.showControlWhen(this.html.find("div.description-milieu"), TYPE_ITEMS_NATURELS.includes(this.item.type));
|
||||||
|
|
||||||
|
if (!this.options.editable) return;
|
||||||
|
this.html.find("a.preparer-nourriture").click(event => this.preparerNourriture(event));
|
||||||
|
this.html.find("a.manger-nourriture").click(event => this.mangerNourriture(event));
|
||||||
|
|
||||||
|
this.html.find("input.input-selection-milieu").keypress(event => {
|
||||||
|
if (event.keyCode == '13') {
|
||||||
|
this.onAddMilieu(event);
|
||||||
|
}
|
||||||
|
event.stopPropagation();
|
||||||
|
})
|
||||||
|
this.html.find("a.milieu-add").click(event => this.onAddMilieu(event));
|
||||||
|
this.html.find("div.environnement-milieu a.milieu-delete").click(event => this.onDeleteMilieu(event));
|
||||||
|
this.html.find("div.environnement-milieu select.environnement-rarete").change(event => this.onChange(event,
|
||||||
|
updated => this.$changeRarete(event, updated)));
|
||||||
|
this.html.find("div.environnement-milieu input[name='environnement-frequence']").change(event => this.onChange(event,
|
||||||
|
updated => this.$changeFrequence(event, updated)));
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
async preparerNourriture(event) {
|
||||||
|
if (this.actor && this.item.getUtilisationCuisine() == 'brut') {
|
||||||
|
await this.actor.preparerNourriture(this.item);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
async mangerNourriture(event) {
|
||||||
|
if (this.actor && this.item.getUtilisation() == 'cuisine') {
|
||||||
|
await this.actor.mangerNourriture(this.item);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
$changeFrequence(event, updated) {
|
||||||
|
updated.frequence = Number(this.html.find(event.currentTarget).val());
|
||||||
|
}
|
||||||
|
|
||||||
|
$changeRarete(event, updated) {
|
||||||
|
const code = this.html.find(event.currentTarget).val();
|
||||||
|
const rarete = RdDRaretes.byCode(code);
|
||||||
|
updated.rarete = rarete.code;
|
||||||
|
updated.frequence = rarete.frequence;
|
||||||
|
}
|
||||||
|
|
||||||
|
async onAddMilieu(event) {
|
||||||
|
const milieu = this.html.find('input.input-selection-milieu').val();
|
||||||
|
if (!milieu) {
|
||||||
|
ui.notifications.warn(`Choisissez le milieu dans lequel se trouve le/la ${this.item.name}`);
|
||||||
|
return
|
||||||
|
}
|
||||||
|
const list = this.item.getEnvironnements();
|
||||||
|
const exists = list.find(it => it.milieu == milieu);
|
||||||
|
if (exists) {
|
||||||
|
ui.notifications.warn(`${this.item.name} a déjà une rareté ${exists.rarete} en ${milieu} (fréquence: ${exists.frequence})`);
|
||||||
|
return
|
||||||
|
}
|
||||||
|
const rarete = RdDRaretes.rareteFrequente();
|
||||||
|
const added = { milieu, rarete: rarete.code, frequence: rarete.frequence };
|
||||||
|
const newList = [added, ...list].sort(Misc.ascending(it => it.milieu))
|
||||||
|
await this.item.update({ 'system.environnement': newList })
|
||||||
|
}
|
||||||
|
|
||||||
|
async onDeleteMilieu(event) {
|
||||||
|
const milieu = this.$getEventMilieu(event);
|
||||||
|
if (milieu != undefined) {
|
||||||
|
const newList = this.item.getEnvironnements().filter(it => it.milieu != milieu)
|
||||||
|
.sort(Misc.ascending(it => it.milieu));
|
||||||
|
await this.item.update({ 'system.environnement': newList });
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
async onChange(event, doMutation) {
|
||||||
|
const list = this.item.system.environnement;
|
||||||
|
const milieu = this.$getEventMilieu(event);
|
||||||
|
const updated = list.find(it => it.milieu == milieu);
|
||||||
|
if (updated) {
|
||||||
|
doMutation(updated);
|
||||||
|
const newList = [...list.filter(it => it.milieu != milieu), updated]
|
||||||
|
.sort(Misc.ascending(it => it.milieu));
|
||||||
|
await this.item.update({ 'system.environnement': newList });
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
$getEventMilieu(event) {
|
||||||
|
return this.html.find(event.currentTarget)?.parents("div.environnement-milieu").data("milieu");
|
||||||
|
}
|
||||||
|
}
|
||||||
29
module/item/sheet-blessure.js
Normal file
@@ -0,0 +1,29 @@
|
|||||||
|
import { RdDItemSheet } from "../item-sheet.js";
|
||||||
|
|
||||||
|
export class RdDBlessureItemSheet extends RdDItemSheet {
|
||||||
|
|
||||||
|
static get ITEM_TYPE() { return "blessure" };
|
||||||
|
|
||||||
|
async getData() {
|
||||||
|
const formData = await super.getData();
|
||||||
|
formData.disabled = formData.options.isGM || formData.options.isOwned ? '' : 'disabled';
|
||||||
|
return formData;
|
||||||
|
}
|
||||||
|
|
||||||
|
activateListeners(html) {
|
||||||
|
super.activateListeners(html);
|
||||||
|
|
||||||
|
if (!this.options.editable) return;
|
||||||
|
|
||||||
|
this.html.find('[name="premierssoins-done"]').change(async event => {
|
||||||
|
await this.item.setSoinsBlessure({ premierssoins: { done: event.currentTarget.checked } });
|
||||||
|
});
|
||||||
|
this.html.find('[name="soinscomplets-done"]').change(async event => {
|
||||||
|
await this.item.setSoinsBlessure({ soinscomplets: { done: event.currentTarget.checked } })
|
||||||
|
});
|
||||||
|
this.html.find('[name="system-gravite"]').change(async event => {
|
||||||
|
const gravite = Number(event.currentTarget.value)
|
||||||
|
await this.item.setSoinsBlessure({ gravite: gravite, difficulte: - gravite })
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -1,8 +1,9 @@
|
|||||||
import { RdDItemSheet } from "./item-sheet.js";
|
import { RdDBaseActorSheet } from "../actor/base-actor-sheet.js";
|
||||||
import { RdDSheetUtility } from "./rdd-sheet-utility.js";
|
import { RdDSheetUtility } from "../rdd-sheet-utility.js";
|
||||||
import { RdDUtility } from "./rdd-utility.js";
|
import { RdDUtility } from "../rdd-utility.js";
|
||||||
|
import { RdDItemInventaireSheet } from "./sheet-base-inventaire.js";
|
||||||
|
|
||||||
export class RdDConteneurItemSheet extends RdDItemSheet {
|
export class RdDConteneurItemSheet extends RdDItemInventaireSheet {
|
||||||
|
|
||||||
static get ITEM_TYPE() { return "conteneur" };
|
static get ITEM_TYPE() { return "conteneur" };
|
||||||
|
|
||||||
@@ -27,8 +28,7 @@ export class RdDConteneurItemSheet extends RdDItemSheet {
|
|||||||
|
|
||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
prepareConteneurData(formData) {
|
prepareConteneurData(formData) {
|
||||||
RdDUtility.filterEquipementParType(formData, this.actor.itemTypes);
|
RdDBaseActorSheet.filterItemsPerTypeForSheet(formData, this.actor.itemTypes);
|
||||||
|
|
||||||
this.objetVersConteneur = RdDUtility.buildArbreDeConteneurs(formData.conteneurs, formData.objets);
|
this.objetVersConteneur = RdDUtility.buildArbreDeConteneurs(formData.conteneurs, formData.objets);
|
||||||
formData.subItems = formData.conteneurs.find(it => it._id == this.item.id)?.subItems;
|
formData.subItems = formData.conteneurs.find(it => it._id == this.item.id)?.subItems;
|
||||||
}
|
}
|
||||||
@@ -43,7 +43,8 @@ export class RdDConteneurItemSheet extends RdDItemSheet {
|
|||||||
const dragData = {
|
const dragData = {
|
||||||
actorId: this.actor.id,
|
actorId: this.actor.id,
|
||||||
type: "Item",
|
type: "Item",
|
||||||
data: item.system
|
data: item.system,
|
||||||
|
uuid: item.uuid
|
||||||
};
|
};
|
||||||
|
|
||||||
event.dataTransfer.setData("text/plain", JSON.stringify(dragData));
|
event.dataTransfer.setData("text/plain", JSON.stringify(dragData));
|
||||||
@@ -51,7 +52,8 @@ export class RdDConteneurItemSheet extends RdDItemSheet {
|
|||||||
|
|
||||||
async _onDropItem(event, dragData) {
|
async _onDropItem(event, dragData) {
|
||||||
if (this.actor) {
|
if (this.actor) {
|
||||||
const dropParams = RdDSheetUtility.prepareItemDropParameters(this.item.id, this.actor, dragData, this.objetVersConteneur);
|
const destItemId = this.html.find(event.target)?.closest('.item').attr('data-item-id') ?? this.item.id
|
||||||
|
const dropParams = await RdDSheetUtility.prepareItemDropParameters(destItemId, this.actor, dragData, this.objetVersConteneur);
|
||||||
await this.actor.processDropItem(dropParams);
|
await this.actor.processDropItem(dropParams);
|
||||||
await this.render(true);
|
await this.render(true);
|
||||||
}
|
}
|
||||||
38
module/item/sheet-faune.js
Normal file
@@ -0,0 +1,38 @@
|
|||||||
|
import { RdDItemInventaireSheet } from "./sheet-base-inventaire.js";
|
||||||
|
|
||||||
|
export class RdDFauneItemSheet extends RdDItemInventaireSheet {
|
||||||
|
|
||||||
|
static get ITEM_TYPE() { return "faune" };
|
||||||
|
|
||||||
|
activateListeners(html) {
|
||||||
|
super.activateListeners(html);
|
||||||
|
|
||||||
|
if (!this.options.editable) return;
|
||||||
|
|
||||||
|
html.find("a.linked-actor-delete").click(event => this.onDeleteLinkedActor());
|
||||||
|
}
|
||||||
|
|
||||||
|
async _onDropActor(event, dragData) {
|
||||||
|
console.log('faune:dropActor', event, dragData)
|
||||||
|
const linkedActor = fromUuidSync(dragData.uuid);
|
||||||
|
if (linkedActor?.pack) {
|
||||||
|
this.item.update({
|
||||||
|
'system.actor.pack': linkedActor.pack,
|
||||||
|
'system.actor.id': linkedActor._id,
|
||||||
|
'system.actor.name': linkedActor.name
|
||||||
|
});
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
ui.notifications.warn(`${linkedActor.name} ne provient pas d'un compendium.
|
||||||
|
<br>Choisissez une créature du compendium pour représenter un élément de faune générique`)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
async onDeleteLinkedActor() {
|
||||||
|
this.item.update({
|
||||||
|
'system.actor.pack': '',
|
||||||
|
'system.actor.id': '',
|
||||||
|
'system.actor.name': ''
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
6
module/item/sheet-herbe.js
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
import { RdDItemInventaireSheet } from "./sheet-base-inventaire.js";
|
||||||
|
|
||||||
|
export class RdDHerbeItemSheet extends RdDItemInventaireSheet {
|
||||||
|
|
||||||
|
static get ITEM_TYPE() { return "herbe" };
|
||||||
|
}
|
||||||
5
module/item/sheet-ingredient.js
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
import { RdDItemInventaireSheet } from "./sheet-base-inventaire.js";
|
||||||
|
|
||||||
|
export class RdDIngredientItemSheet extends RdDItemInventaireSheet {
|
||||||
|
static get ITEM_TYPE() { return "ingredient" };
|
||||||
|
}
|
||||||
7
module/item/sheet-plante.js
Normal file
@@ -0,0 +1,7 @@
|
|||||||
|
import { RdDItemInventaireSheet } from "./sheet-base-inventaire.js";
|
||||||
|
|
||||||
|
export class RdDPlanteItemSheet extends RdDItemInventaireSheet {
|
||||||
|
|
||||||
|
static get ITEM_TYPE() { return "plante" };
|
||||||
|
|
||||||
|
}
|
||||||
@@ -1,5 +1,5 @@
|
|||||||
import { RdDRencontre } from "./item-rencontre.js";
|
import { RdDRencontre } from "./rencontre.js";
|
||||||
import { RdDItemSheet } from "./item-sheet.js";
|
import { RdDItemSheet } from "../item-sheet.js";
|
||||||
|
|
||||||
export class RdDRencontreItemSheet extends RdDItemSheet {
|
export class RdDRencontreItemSheet extends RdDItemSheet {
|
||||||
|
|
||||||
16
module/item/sheet-service.js
Normal file
@@ -0,0 +1,16 @@
|
|||||||
|
import { RdDItemSheet } from "../item-sheet.js";
|
||||||
|
|
||||||
|
export class RdDServiceItemSheet extends RdDItemSheet {
|
||||||
|
|
||||||
|
static get ITEM_TYPE() { return "service" };
|
||||||
|
|
||||||
|
async getData() {
|
||||||
|
const formData = await super.getData();
|
||||||
|
formData.disabled = formData.options.isGM || formData.options.isOwned ? '' : 'disabled';
|
||||||
|
return formData;
|
||||||
|
}
|
||||||
|
|
||||||
|
activateListeners(html) {
|
||||||
|
super.activateListeners(html);
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -1,6 +1,6 @@
|
|||||||
import { RdDItemSheet } from "./item-sheet.js";
|
import { RdDItemSheet } from "../item-sheet.js";
|
||||||
import { RdDItemSigneDraconique } from "./item-signedraconique.js";
|
import { RdDItemSigneDraconique } from "./signedraconique.js";
|
||||||
import { TMRUtility } from "./tmr-utility.js";
|
import { TMRUtility } from "../tmr-utility.js";
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Item sheet pour signes draconiques
|
* Item sheet pour signes draconiques
|
||||||
@@ -1,8 +1,9 @@
|
|||||||
import { defaultItemImg } from "./item.js";
|
import { RdDItem, defaultItemImg } from "../item.js";
|
||||||
import { Misc } from "./misc.js";
|
import { Misc } from "../misc.js";
|
||||||
import { RdDDice } from "./rdd-dice.js";
|
import { RdDDice } from "../rdd-dice.js";
|
||||||
import { RdDRollTables } from "./rdd-rolltables.js";
|
import { RdDRollTables } from "../rdd-rolltables.js";
|
||||||
import { TMRType, TMRUtility } from "./tmr-utility.js";
|
import { RdDTimestamp } from "../rdd-timestamp.js";
|
||||||
|
import { TMRType, TMRUtility } from "../tmr-utility.js";
|
||||||
|
|
||||||
const tableSignesIndicatifs = [
|
const tableSignesIndicatifs = [
|
||||||
{ rarete: "Très facile", difficulte: 0, xp: 6, nbCases: 14 },
|
{ rarete: "Très facile", difficulte: 0, xp: 6, nbCases: 14 },
|
||||||
@@ -15,7 +16,17 @@ const tableSignesIndicatifs = [
|
|||||||
|
|
||||||
const DIFFICULTE_LECTURE_SIGNE_MANQUE = +11;
|
const DIFFICULTE_LECTURE_SIGNE_MANQUE = +11;
|
||||||
|
|
||||||
export class RdDItemSigneDraconique {
|
export class RdDItemSigneDraconique extends RdDItem {
|
||||||
|
|
||||||
|
static get defaultIcon() {
|
||||||
|
return "systems/foundryvtt-reve-de-dragon/icons/tmr/signe_draconique.webp";
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
async calculerFinPeriodeTemporel(debut) {
|
||||||
|
// TODO
|
||||||
|
return RdDTimestamp.formulesDuree().find(it => it.code == "").calcul(debut, this.actor);
|
||||||
|
}
|
||||||
|
|
||||||
static prepareSigneDraconiqueMeditation(meditation, rolled) {
|
static prepareSigneDraconiqueMeditation(meditation, rolled) {
|
||||||
return {
|
return {
|
||||||
13
module/item/souffle.js
Normal file
@@ -0,0 +1,13 @@
|
|||||||
|
import { RdDItem } from "../item.js";
|
||||||
|
|
||||||
|
export class RdDItemSouffle extends RdDItem {
|
||||||
|
|
||||||
|
static get defaultIcon() {
|
||||||
|
return "systems/foundryvtt-reve-de-dragon/icons/souffle_dragon.webp";
|
||||||
|
}
|
||||||
|
|
||||||
|
async calculerFinPeriodeTemporel(debut) {
|
||||||
|
return await debut.appliquerDuree(this.system.duree, this.parent);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@@ -1,6 +1,10 @@
|
|||||||
|
import { RdDBaseActor } from "./actor/base-actor.js";
|
||||||
import { LOG_HEAD, SYSTEM_RDD } from "./constants.js";
|
import { LOG_HEAD, SYSTEM_RDD } from "./constants.js";
|
||||||
import { Environnement } from "./environnement.js";
|
|
||||||
import { Grammar } from "./grammar.js";
|
import { Grammar } from "./grammar.js";
|
||||||
|
import { Monnaie } from "./item-monnaie.js";
|
||||||
|
import { RdDItem } from "./item.js";
|
||||||
|
import { RdDTimestamp } from "./rdd-timestamp.js";
|
||||||
|
import { RdDRaretes } from "./item/raretes.js";
|
||||||
|
|
||||||
class Migration {
|
class Migration {
|
||||||
get code() { return "sample"; }
|
get code() { return "sample"; }
|
||||||
@@ -284,10 +288,11 @@ class _10_3_0_FrequenceEnvironnement extends Migration {
|
|||||||
}
|
}
|
||||||
|
|
||||||
_updatesFrequences(it) {
|
_updatesFrequences(it) {
|
||||||
|
const rarete = RdDRaretes.byCode(it.system.rarete);
|
||||||
return {
|
return {
|
||||||
_id: it.id,
|
_id: it.id,
|
||||||
'system.rarete': undefined,
|
'system.rarete': undefined,
|
||||||
'system.environnement': [{ milieu: it.system.milieu, rarete: it.system.rarete, frequence: Environnement.getFrequenceRarete(it.system.rarete, 'frequence') }]
|
'system.environnement': [{ milieu: it.system.milieu, rarete: rarete.code, frequence: rarete.frequence }]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -325,6 +330,134 @@ class _10_3_17_Monnaies extends Migration {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
class _10_4_6_ServicesEnCommerces extends Migration {
|
||||||
|
|
||||||
|
get code() { return "migration-service-acteurs"; }
|
||||||
|
get version() { return "10.4.6"; }
|
||||||
|
|
||||||
|
async migrate() {
|
||||||
|
const servicesToMigrate = game.items.filter(it => it.type == 'service');
|
||||||
|
servicesToMigrate.forEach(async service => {
|
||||||
|
const commerce = await this.convertServiceToCommerce(service);
|
||||||
|
await RdDBaseActor.create(commerce, { renderSheet: false });
|
||||||
|
await service.delete();
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
async convertServiceToCommerce(service) {
|
||||||
|
return {
|
||||||
|
name: service.name, img: service.img, type: 'commerce',
|
||||||
|
system: {
|
||||||
|
description: service.system.description,
|
||||||
|
notesmj: service.system.descriptionmj,
|
||||||
|
illimite: service.system.illimite
|
||||||
|
},
|
||||||
|
items: await this.transformInventaireCommerce(service)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
async transformInventaireCommerce(service) {
|
||||||
|
const serviceItems = (service.system.items ?? []);
|
||||||
|
const commerceItems = await Promise.all(serviceItems.map(async (it) => { return await this.transformToItemBoutique(it); }));
|
||||||
|
return commerceItems.concat(Monnaie.monnaiesStandard());
|
||||||
|
}
|
||||||
|
|
||||||
|
async transformToItemBoutique(serviceRefItem) {
|
||||||
|
const item = await RdDItem.getCorrespondingItem(serviceRefItem);
|
||||||
|
const itemToCreate = {
|
||||||
|
name: item.name, img: item.img, type: item.type,
|
||||||
|
system: mergeObject({ cout: serviceRefItem.system.cout, quantite: serviceRefItem.system.quantite }, item.system, { overwrite: false })
|
||||||
|
};
|
||||||
|
return itemToCreate;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
class _10_5_0_UpdatePeriodicite extends Migration {
|
||||||
|
get code() { return "migration-periodicite-poisons-maladies"; }
|
||||||
|
get version() { return "10.5.0"; }
|
||||||
|
|
||||||
|
async migrate() {
|
||||||
|
await this.applyItemsUpdates(items => this._updatePeriodicite(items));
|
||||||
|
}
|
||||||
|
|
||||||
|
_updatePeriodicite(items) {
|
||||||
|
return items.filter(it => ['poison', 'maladie'].includes(it.type))
|
||||||
|
.filter(it => it.system.periodicite != "")
|
||||||
|
.map(it => {
|
||||||
|
let [incubation, periodicite] = this.getPeriodicite(it);
|
||||||
|
const periode = periodicite.split(' ');
|
||||||
|
let unite = periode.length == 2
|
||||||
|
? RdDTimestamp.formulesPeriode().find(it => Grammar.includesLowerCaseNoAccent(periode[1], it.code))?.code
|
||||||
|
: undefined
|
||||||
|
if (unite && Number(periode[0])) {
|
||||||
|
return {
|
||||||
|
_id: it.id,
|
||||||
|
'system.periodicite': undefined,
|
||||||
|
'system.incubation': incubation,
|
||||||
|
'system.periode.nombre': Number.parseInt(periode[0]),
|
||||||
|
'system.periode.unite': unite
|
||||||
|
};
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
return {
|
||||||
|
_id: it.id,
|
||||||
|
'system.periodicite': undefined,
|
||||||
|
'system.incubation': it.system.periodicite
|
||||||
|
};
|
||||||
|
}
|
||||||
|
}).filter(it => it != undefined);
|
||||||
|
}
|
||||||
|
|
||||||
|
getPeriodicite(it) {
|
||||||
|
let p = it.system.periodicite.split(/[\/\\]/);
|
||||||
|
switch (p.length) {
|
||||||
|
case 2: return [p[0].trim(), p[1].trim()];
|
||||||
|
case 1: return ["", it.system.periodicite.trim()];
|
||||||
|
default: return [it.system.periodicite.trim(), ""];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
class _10_7_0_MigrationBlessures extends Migration {
|
||||||
|
get code() { return "migration-blessures"; }
|
||||||
|
get version() { return "10.7.0"; }
|
||||||
|
|
||||||
|
async migrate() {
|
||||||
|
const timestamp = game.system.rdd.calendrier.getTimestamp()
|
||||||
|
await Promise.all(game.actors.filter(it => it.isPersonnage() || it.isCreature())
|
||||||
|
.map(async (actor) => {
|
||||||
|
const legeres = actor.system.blessures?.legeres.liste.filter(it => it.active).map(it => this.creerBlessure(2, 'légère', it, timestamp)) ?? [];
|
||||||
|
const graves = actor.system.blessures?.graves.liste.filter(it => it.active).map(it => this.creerBlessure(4, 'grave', it, timestamp)) ?? [];
|
||||||
|
const critiques = actor.system.blessures?.critiques.liste.filter(it => it.active).map(it => this.creerBlessure(6, 'critique', it, timestamp));
|
||||||
|
const blessures = legeres.concat(graves).concat(critiques);
|
||||||
|
if (blessures.length > 0) {
|
||||||
|
await actor.createEmbeddedDocuments("Item", blessures);
|
||||||
|
}
|
||||||
|
await actor.update({
|
||||||
|
'system.blessures.legeres.liste': [],
|
||||||
|
'system.blessures.graves.liste': [],
|
||||||
|
'system.blessures.critiques.liste': []
|
||||||
|
})
|
||||||
|
}));
|
||||||
|
}
|
||||||
|
creerBlessure(gravite, graviteTexte, blessure, timestamp) {
|
||||||
|
const dateBlessure = timestamp.addJours(-blessure.jours);
|
||||||
|
const datePremiereRecup = dateBlessure.addJours(gravite);
|
||||||
|
return {
|
||||||
|
name: `Blessure ${graviteTexte}`,
|
||||||
|
type: 'blessure',
|
||||||
|
img: `systems/foundryvtt-reve-de-dragon/icons/sante/blessure${blessure.psdone ? '-soins' : ''}.webp`,
|
||||||
|
system: {
|
||||||
|
gravite: gravite,
|
||||||
|
difficulte: -gravite,
|
||||||
|
debut: { indexDate: dateBlessure.indexDate, indexMinute: 0 },
|
||||||
|
fin: { indexDate: datePremiereRecup.indexDate, indexMinute: 0 },
|
||||||
|
premierssoins: { done: blessure.psdone, bonus: blessure.premiers_soins },
|
||||||
|
soinscomplets: { done: blessure.scdone, bonus: blessure.soins_complets },
|
||||||
|
localisation: blessure.localisation,
|
||||||
|
jours: blessure.jours
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
export class Migrations {
|
export class Migrations {
|
||||||
static getMigrations() {
|
static getMigrations() {
|
||||||
@@ -338,7 +471,10 @@ export class Migrations {
|
|||||||
new _10_2_10_DesirLancinant_IdeeFixe(),
|
new _10_2_10_DesirLancinant_IdeeFixe(),
|
||||||
new _10_3_0_Inventaire(),
|
new _10_3_0_Inventaire(),
|
||||||
new _10_3_0_FrequenceEnvironnement(),
|
new _10_3_0_FrequenceEnvironnement(),
|
||||||
new _10_3_17_Monnaies()
|
new _10_3_17_Monnaies(),
|
||||||
|
new _10_4_6_ServicesEnCommerces(),
|
||||||
|
new _10_5_0_UpdatePeriodicite(),
|
||||||
|
new _10_7_0_MigrationBlessures(),
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -358,13 +494,7 @@ export class Migrations {
|
|||||||
//if (true) { /* comment previous and uncomment here to test before upgrade */
|
//if (true) { /* comment previous and uncomment here to test before upgrade */
|
||||||
const migrations = Migrations.getMigrations().filter(m => isNewerVersion(m.version, currentVersion));
|
const migrations = Migrations.getMigrations().filter(m => isNewerVersion(m.version, currentVersion));
|
||||||
if (migrations.length > 0) {
|
if (migrations.length > 0) {
|
||||||
migrations.sort((a, b) =>
|
migrations.sort((a, b) => this.compareVersions(a, b));
|
||||||
isNewerVersion(a.version, b.version)
|
|
||||||
? 1
|
|
||||||
: isNewerVersion(b.version, a.version)
|
|
||||||
? -1
|
|
||||||
: 0
|
|
||||||
);
|
|
||||||
migrations.forEach(async (m) => {
|
migrations.forEach(async (m) => {
|
||||||
ui.notifications.info(
|
ui.notifications.info(
|
||||||
`Executing migration ${m.code}: version ${currentVersion} is lower than ${m.version}`
|
`Executing migration ${m.code}: version ${currentVersion} is lower than ${m.version}`
|
||||||
@@ -390,4 +520,8 @@ export class Migrations {
|
|||||||
console.log(LOG_HEAD + `No system version changed`);
|
console.log(LOG_HEAD + `No system version changed`);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
compareVersions(a, b) {
|
||||||
|
return isNewerVersion(a.version, b.version) ? 1 : isNewerVersion(b.version, a.version) ? -1 : 0;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -85,6 +85,7 @@ export class Misc {
|
|||||||
list.forEach(it => addToObj(obj, it))
|
list.forEach(it => addToObj(obj, it))
|
||||||
return obj;
|
return obj;
|
||||||
}
|
}
|
||||||
|
|
||||||
static concat(lists) {
|
static concat(lists) {
|
||||||
return lists.reduce((a, b) => a.concat(b), []);
|
return lists.reduce((a, b) => a.concat(b), []);
|
||||||
}
|
}
|
||||||
@@ -118,6 +119,17 @@ export class Misc {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @returns an array of incremental integers (including from / excluding to).
|
||||||
|
* if max<min, the array is decrementing integers
|
||||||
|
*/
|
||||||
|
static intArray(from, to) {
|
||||||
|
if (from > to) {
|
||||||
|
return Array.from(Array(from - to).keys()).map(i => from - i)
|
||||||
|
}
|
||||||
|
return Array.from(Array(to - from).keys()).map(i => from + i)
|
||||||
|
}
|
||||||
|
|
||||||
static distinct(array) {
|
static distinct(array) {
|
||||||
return [...new Set(array)];
|
return [...new Set(array)];
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -8,13 +8,11 @@ export class RdDAlchimie {
|
|||||||
|
|
||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
static processManipulation(recette, actorId = undefined) {
|
static processManipulation(recette, actorId = undefined) {
|
||||||
//console.log("CALLED", recette, recette.isOwned, actorId );
|
|
||||||
let manip = recette.system.manipulation;
|
let manip = recette.system.manipulation;
|
||||||
let matchArray = manip.match(matchOperations);
|
let matchArray = manip.match(matchOperations);
|
||||||
if (matchArray) {
|
if (matchArray) {
|
||||||
for (let matchStr of matchArray) {
|
for (let matchStr of matchArray) {
|
||||||
let result = matchStr.match(matchOperationTerms);
|
let result = matchStr.match(matchOperationTerms);
|
||||||
//console.log("RESULT ", result);
|
|
||||||
if (result[1] && result[2]) {
|
if (result[1] && result[2]) {
|
||||||
let commande = Misc.upperFirst(result[1]);
|
let commande = Misc.upperFirst(result[1]);
|
||||||
let replacement = this[`_alchimie${commande}`](recette, result[2], actorId);
|
let replacement = this[`_alchimie${commande}`](recette, result[2], actorId);
|
||||||
@@ -27,20 +25,19 @@ export class RdDAlchimie {
|
|||||||
|
|
||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
static _alchimieCouleur(recette, couleurs, actorId) {
|
static _alchimieCouleur(recette, couleurs, actorId) {
|
||||||
if (actorId) {
|
return RdDAlchimie._alchimieLink(recette, couleurs, actorId, 'couleur', 'Température');
|
||||||
return `<span class="alchimie-tache"><a data-recette-id="${recette._id}" data-actor-id="${actorId}" data-alchimie-tache="couleur" data-alchimie-data="${couleurs}">couleur ${couleurs}</a></span>`;
|
|
||||||
} else {
|
|
||||||
return `<span class="alchimie-tache">couleur ${couleurs} </span>`;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
static _alchimieConsistance(recette, consistances, actorId) {
|
static _alchimieConsistance(recette, consistances, actorId) {
|
||||||
if (actorId) {
|
return RdDAlchimie._alchimieLink(recette, consistances, actorId, 'consistance', 'Consistance');
|
||||||
return `<span class="alchimie-tache"><a data-recette-id="${recette._id}" data-actor-id="${actorId}" data-alchimie-tache="consistance" data-alchimie-data="${consistances}">consistance ${consistances}</a></span>`;
|
|
||||||
} else {
|
|
||||||
return `<span class="alchimie-tache">consistance ${consistances} </span>`;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static _alchimieLink(recette, termes, actorId, tacheAlchimie, labelTache) {
|
||||||
|
const difficulte = RdDAlchimie.getDifficulte(termes);
|
||||||
|
const link = actorId ? ` <a data-recette-id="${recette._id}" data-actor-id="${actorId}" data-alchimie-tache="${tacheAlchimie}" data-alchimie-data="${termes}">` : '';
|
||||||
|
const endLink = actorId ? '</a>' : '';
|
||||||
|
return `<span class="alchimie-tache">${link}${labelTache} ${termes} (${difficulte})${endLink}</span>`;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
|
|||||||
@@ -1,48 +0,0 @@
|
|||||||
|
|
||||||
/**
|
|
||||||
* Extend the base Dialog entity by defining a custom window to perform roll.
|
|
||||||
* @extends {Dialog}
|
|
||||||
*/
|
|
||||||
export class RdDAstrologieEditeur extends Dialog {
|
|
||||||
|
|
||||||
/* -------------------------------------------- */
|
|
||||||
constructor(html, calendrier, calendrierData) {
|
|
||||||
|
|
||||||
let myButtons = {
|
|
||||||
resetButton: { label: "Re-tirer les nombres astraux", callback: html => this.resetNombreAstraux() },
|
|
||||||
saveButton: { label: "Fermer", callback: html => this.fillData() }
|
|
||||||
};
|
|
||||||
|
|
||||||
// Common conf
|
|
||||||
let dialogConf = { content: html, title: "Editeur d'Astrologie", buttons: myButtons, default: "saveButton" };
|
|
||||||
let dialogOptions = { classes: ["rdd-roll-dialog"], width: 600, height: 300, 'z-index': 99999 }
|
|
||||||
super(dialogConf, dialogOptions)
|
|
||||||
|
|
||||||
this.calendrier = calendrier;
|
|
||||||
this.updateData( calendrierData );
|
|
||||||
}
|
|
||||||
|
|
||||||
activateListeners(html) {
|
|
||||||
super.activateListeners(html);
|
|
||||||
this.html = html;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/* -------------------------------------------- */
|
|
||||||
async resetNombreAstraux() {
|
|
||||||
game.system.rdd.calendrier.resetNombreAstral();
|
|
||||||
await game.system.rdd.calendrier.rebuildListeNombreAstral();
|
|
||||||
|
|
||||||
game.system.rdd.calendrier.showAstrologieEditor();
|
|
||||||
}
|
|
||||||
|
|
||||||
/* -------------------------------------------- */
|
|
||||||
fillData( ) {
|
|
||||||
}
|
|
||||||
|
|
||||||
/* -------------------------------------------- */
|
|
||||||
updateData( calendrierData ) {
|
|
||||||
this.calendrierData = duplicate(calendrierData);
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
@@ -1,100 +0,0 @@
|
|||||||
import { RdDItemCompetence } from "./item-competence.js";
|
|
||||||
import { Misc } from "./misc.js";
|
|
||||||
import { SYSTEM_SOCKET_ID } from "./constants.js";
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Extend the base Dialog entity by defining a custom window to perform roll.
|
|
||||||
* @extends {Dialog}
|
|
||||||
*/
|
|
||||||
export class RdDAstrologieJoueur extends Dialog {
|
|
||||||
|
|
||||||
/* -------------------------------------------- */
|
|
||||||
static async create(actor) {
|
|
||||||
|
|
||||||
let dialogData = {
|
|
||||||
nombres: this.organizeNombres(actor),
|
|
||||||
dates: game.system.rdd.calendrier.getJoursSuivants(10),
|
|
||||||
etat: actor.getEtatGeneral(),
|
|
||||||
ajustementsConditions: CONFIG.RDD.ajustementsConditions,
|
|
||||||
astrologie: RdDItemCompetence.findCompetence(actor.items, 'Astrologie')
|
|
||||||
}
|
|
||||||
const html = await renderTemplate('systems/foundryvtt-reve-de-dragon/templates/dialog-astrologie-joueur.html', dialogData);
|
|
||||||
|
|
||||||
const options = { classes: ["rdd-roll-dialog"], width: 600, height: 'fit-content', 'z-index': 99999 };
|
|
||||||
const dialog = new RdDAstrologieJoueur(html, actor, dialogData, options);
|
|
||||||
dialog.render(true);
|
|
||||||
}
|
|
||||||
|
|
||||||
/* -------------------------------------------- */
|
|
||||||
constructor(html, actor, dialogData, dialogOptions) {
|
|
||||||
const dialogConf = {
|
|
||||||
title: "Nombres Astraux",
|
|
||||||
content: html,
|
|
||||||
default: "saveButton",
|
|
||||||
buttons: {
|
|
||||||
saveButton: { label: "Fermer", callback: html => this.quitDialog() }
|
|
||||||
},
|
|
||||||
};
|
|
||||||
super(dialogConf, dialogOptions);
|
|
||||||
|
|
||||||
this.actor = actor;
|
|
||||||
this.dataNombreAstral = duplicate(dialogData);
|
|
||||||
}
|
|
||||||
|
|
||||||
/* -------------------------------------------- */
|
|
||||||
activateListeners(html) {
|
|
||||||
super.activateListeners(html);
|
|
||||||
this.html = html;
|
|
||||||
|
|
||||||
this.html.find("[name='diffConditions']").val(0);
|
|
||||||
|
|
||||||
this.html.find('[name="jet-astrologie"]').click((event) => {
|
|
||||||
this.requestJetAstrologie();
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
/* -------------------------------------------- */
|
|
||||||
static organizeNombres(actor) {
|
|
||||||
let itemNombres = actor.listItems('nombreastral');
|
|
||||||
let itemFiltered = {};
|
|
||||||
for (let item of itemNombres) {
|
|
||||||
if (itemFiltered[item.system.jourindex]) {
|
|
||||||
itemFiltered[item.system.jourindex].listValues.push(item.system.value);
|
|
||||||
} else {
|
|
||||||
itemFiltered[item.system.jourindex] = {
|
|
||||||
listValues: [item.system.value],
|
|
||||||
jourlabel: item.system.jourlabel
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return itemFiltered;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* -------------------------------------------- */
|
|
||||||
requestJetAstrologie() {
|
|
||||||
let socketData = {
|
|
||||||
id: this.actor.id,
|
|
||||||
carac_vue: this.actor.system.carac['vue'].value,
|
|
||||||
etat: this.dataNombreAstral.etat,
|
|
||||||
astrologie: this.dataNombreAstral.astrologie,
|
|
||||||
conditions: this.html.find('[name="diffConditions"]').val(),
|
|
||||||
date: this.html.find('[name="joursAstrologie"]').val(),
|
|
||||||
userId: game.user.id
|
|
||||||
}
|
|
||||||
if (Misc.isUniqueConnectedGM()) {
|
|
||||||
game.system.rdd.calendrier.requestNombreAstral(socketData);
|
|
||||||
} else {
|
|
||||||
game.socket.emit(SYSTEM_SOCKET_ID, {
|
|
||||||
msg: "msg_request_nombre_astral",
|
|
||||||
data: socketData
|
|
||||||
});
|
|
||||||
}
|
|
||||||
this.close();
|
|
||||||
}
|
|
||||||
|
|
||||||
/* -------------------------------------------- */
|
|
||||||
quitDialog() {
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
@@ -28,7 +28,7 @@ export class RdDBonus {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
static dmg(rollData, dmgActor, isCauchemar = false) {
|
static dmg(rollData, dmgActor, isEntiteIncarnee = false) {
|
||||||
let dmg = { total: 0 };
|
let dmg = { total: 0 };
|
||||||
if (rollData.arme && rollData.arme.name.toLowerCase() == "esquive") {
|
if (rollData.arme && rollData.arme.name.toLowerCase() == "esquive") {
|
||||||
// Specific case management
|
// Specific case management
|
||||||
@@ -41,7 +41,7 @@ export class RdDBonus {
|
|||||||
dmg.dmgSurprise = RdDBonus.dmgBonus(rollData.ajustements?.attaqueDefenseurSurpris.used);
|
dmg.dmgSurprise = RdDBonus.dmgBonus(rollData.ajustements?.attaqueDefenseurSurpris.used);
|
||||||
dmg.dmgActor = rollData.selectedCarac ? RdDBonus._dmgPerso(dmgActor, rollData.selectedCarac.label, dmg.dmgArme) : 0;
|
dmg.dmgActor = rollData.selectedCarac ? RdDBonus._dmgPerso(dmgActor, rollData.selectedCarac.label, dmg.dmgArme) : 0;
|
||||||
dmg.total = dmg.dmgSurprise + dmg.dmgTactique + dmg.dmgArme + dmg.dmgActor + dmg.dmgParticuliere;
|
dmg.total = dmg.dmgSurprise + dmg.dmgTactique + dmg.dmgArme + dmg.dmgActor + dmg.dmgParticuliere;
|
||||||
dmg.mortalite = RdDBonus._calculMortalite(rollData, isCauchemar)
|
dmg.mortalite = RdDBonus._calculMortalite(rollData, isEntiteIncarnee)
|
||||||
}
|
}
|
||||||
return dmg;
|
return dmg;
|
||||||
}
|
}
|
||||||
@@ -62,11 +62,8 @@ export class RdDBonus {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
static _calculMortalite(rollData, isCauchemar) {
|
static _calculMortalite(rollData, isEntiteIncarnee) {
|
||||||
if (isCauchemar) {
|
return isEntiteIncarnee ? "entiteincarnee"
|
||||||
return "cauchemar";
|
|
||||||
}
|
|
||||||
return isCauchemar ? "cauchemar"
|
|
||||||
: rollData.dmg?.mortalite
|
: rollData.dmg?.mortalite
|
||||||
?? rollData.arme?.system.mortalite
|
?? rollData.arme?.system.mortalite
|
||||||
?? "mortel";
|
?? "mortel";
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
import { Misc } from "./misc.js";
|
import { RdDTimestamp } from "./rdd-timestamp.js";
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Extend the base Dialog entity by defining a custom window to perform roll.
|
* Extend the base Dialog entity by defining a custom window to perform roll.
|
||||||
@@ -12,7 +12,7 @@ export class RdDCalendrierEditeur extends Dialog {
|
|||||||
content: html,
|
content: html,
|
||||||
title: "Editeur de date/heure",
|
title: "Editeur de date/heure",
|
||||||
buttons: {
|
buttons: {
|
||||||
save: { label: "Enregistrer", callback: html => this.fillData() }
|
save: { label: "Enregistrer", callback: html => this.saveCalendrier() }
|
||||||
},
|
},
|
||||||
default: "save"
|
default: "save"
|
||||||
};
|
};
|
||||||
@@ -26,22 +26,37 @@ export class RdDCalendrierEditeur extends Dialog {
|
|||||||
activateListeners(html) {
|
activateListeners(html) {
|
||||||
super.activateListeners(html);
|
super.activateListeners(html);
|
||||||
this.html = html;
|
this.html = html;
|
||||||
this.html.find("input[name='nomMois']").val(this.calendrierData.moisKey);
|
|
||||||
this.html.find("select[name='nomHeure']").val(this.calendrierData.heureKey);
|
this.html.find("input[name='calendar.annee']").val(this.calendrierData.annee);
|
||||||
this.html.find("select[name='jourMois']").val(this.calendrierData.jourMois);
|
this.html.find("select[name='calendar.mois']").val(this.calendrierData.mois.key);
|
||||||
this.html.find("select[name='minutesRelative']").val(this.calendrierData.minutesRelative);
|
this.html.find("select[name='calendar.heure']").val(this.calendrierData.heure.key);
|
||||||
this.html.find("select[name='annee']").val(this.calendrierData.annee);
|
RdDCalendrierEditeur.setLimited(this.html.find("input[name='calendar.jourDuMois']"), this.calendrierData.jourDuMois, 1, 28);
|
||||||
|
RdDCalendrierEditeur.setLimited(this.html.find("input[name='calendar.minute']"), this.calendrierData.minute, 0, 119);
|
||||||
|
}
|
||||||
|
|
||||||
|
static setLimited(input, init, min, max) {
|
||||||
|
input.val(init);
|
||||||
|
input.change(event => {
|
||||||
|
const val = Number.parseInt(input.val());
|
||||||
|
if (val < min) {
|
||||||
|
input.val(min);
|
||||||
|
}
|
||||||
|
if (val > max) {
|
||||||
|
input.val(max);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
fillData() {
|
saveCalendrier() {
|
||||||
this.calendrierData.annee = this.html.find("input[name='annee']").val();
|
const annee = Number.parseInt(this.html.find("input[name='calendar.annee']").val());
|
||||||
this.calendrierData.moisKey = this.html.find("select[name='nomMois']").val();
|
const mois = this.html.find("select[name='calendar.mois']").val();
|
||||||
this.calendrierData.heureKey = this.html.find("select[name='nomHeure']").val();
|
const jour = Number.parseInt(this.html.find("input[name='calendar.jourDuMois']").val());
|
||||||
this.calendrierData.jourMois = this.html.find("select[name='jourMois']").val();
|
const heure = this.html.find("select[name='calendar.heure']").val();
|
||||||
this.calendrierData.minutesRelative = this.html.find("select[name='minutesRelative']").val();
|
const minute = Number.parseInt(this.html.find("input[name='calendar.minute']").val());
|
||||||
|
|
||||||
this.calendrier.saveEditeur(this.calendrierData)
|
this.calendrier.setNewTimestamp(RdDTimestamp.timestamp(annee, mois, jour, heure, minute))
|
||||||
}
|
}
|
||||||
|
|
||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
|
|||||||
@@ -1,44 +1,14 @@
|
|||||||
/* -------------------------------------------- */
|
|
||||||
import { RdDCalendrierEditeur } from "./rdd-calendrier-editeur.js";
|
import { RdDCalendrierEditeur } from "./rdd-calendrier-editeur.js";
|
||||||
import { RdDAstrologieEditeur } from "./rdd-astrologie-editeur.js";
|
|
||||||
import { HtmlUtility } from "./html-utility.js";
|
|
||||||
import { RdDResolutionTable } from "./rdd-resolution-table.js";
|
import { RdDResolutionTable } from "./rdd-resolution-table.js";
|
||||||
import { RdDUtility } from "./rdd-utility.js";
|
import { RdDUtility } from "./rdd-utility.js";
|
||||||
import { Grammar } from "./grammar.js";
|
|
||||||
import { RdDDice } from "./rdd-dice.js";
|
import { RdDDice } from "./rdd-dice.js";
|
||||||
import { Misc } from "./misc.js";
|
import { Misc } from "./misc.js";
|
||||||
import { HIDE_DICE, SHOW_DICE, SYSTEM_RDD, SYSTEM_SOCKET_ID } from "./constants.js";
|
import { HIDE_DICE, SHOW_DICE, SYSTEM_RDD, SYSTEM_SOCKET_ID } from "./constants.js";
|
||||||
import { DialogChronologie } from "./dialog-chronologie.js";
|
import { DialogChronologie } from "./dialog-chronologie.js";
|
||||||
|
import { MAX_NOMBRE_ASTRAL, RdDTimestamp, WORLD_TIMESTAMP_SETTING } from "./rdd-timestamp.js";
|
||||||
/* -------------------------------------------- */
|
import { DialogChateauDormant } from "./sommeil/dialog-chateau-dormant.js";
|
||||||
const dossierIconesHeures = 'systems/foundryvtt-reve-de-dragon/icons/heures/'
|
import { ReglesOptionelles } from "./settings/regles-optionelles.js";
|
||||||
const heuresList = ["vaisseau", "sirene", "faucon", "couronne", "dragon", "epees", "lyre", "serpent", "poissonacrobate", "araignee", "roseau", "chateaudormant"];
|
import { APP_ASTROLOGIE_REFRESH, AppAstrologie } from "./sommeil/app-astrologie.js";
|
||||||
const heuresDef = {
|
|
||||||
"vaisseau": { key: "vaisseau", label: "Vaisseau", lettreFont: 'v', saison: "printemps", heure: 0, icon: 'hd01.svg' },
|
|
||||||
"sirene": { key: "sirene", label: "Sirène", lettreFont: 'i', saison: "printemps", heure: 1, icon: 'hd02.svg' },
|
|
||||||
"faucon": { key: "faucon", label: "Faucon", lettreFont: 'f', saison: "printemps", heure: 2, icon: 'hd03.svg' },
|
|
||||||
"couronne": { key: "couronne", label: "Couronne", lettreFont: '', saison: "ete", heure: 3, icon: 'hd04.svg' },
|
|
||||||
"dragon": { key: "dragon", label: "Dragon", lettreFont: 'd', saison: "ete", heure: 4, icon: 'hd05.svg' },
|
|
||||||
"epees": { key: "epees", label: "Epées", lettreFont: 'e', saison: "ete", heure: 5, icon: 'hd06.svg' },
|
|
||||||
"lyre": { key: "lyre", label: "Lyre", lettreFont: 'l', saison: "automne", heure: 6, icon: 'hd07.svg' },
|
|
||||||
"serpent": { key: "serpent", label: "Serpent", lettreFont: 's', saison: "automne", heure: 7, icon: 'hd08.svg' },
|
|
||||||
"poissonacrobate": { key: "poissonacrobate", label: "Poisson Acrobate", lettreFont: 'p', saison: "automne", heure: 8, icon: 'hd09.svg' },
|
|
||||||
"araignee": { key: "araignee", label: "Araignée", lettreFont: 'a', saison: "hiver", heure: 9, icon: 'hd10.svg' },
|
|
||||||
"roseau": { key: "roseau", label: "Roseau", lettreFont: 'r', saison: "hiver", heure: 10, icon: 'hd11.svg' },
|
|
||||||
"chateaudormant": { key: "chateaudormant", label: "Château Dormant", lettreFont: 'c', saison: "hiver", heure: 11, icon: 'hd12.svg' }
|
|
||||||
};
|
|
||||||
const saisonsDef = {
|
|
||||||
"printemps": { label: "Printemps" },
|
|
||||||
"ete": { label: "Eté" },
|
|
||||||
"automne": { label: "Automne" },
|
|
||||||
"hiver": { label: "Hiver" }
|
|
||||||
};
|
|
||||||
|
|
||||||
const RDD_MOIS_PAR_AN = 12;
|
|
||||||
export const RDD_JOUR_PAR_MOIS = 28;
|
|
||||||
const RDD_HEURES_PAR_JOUR = 12;
|
|
||||||
const RDD_MINUTES_PAR_HEURES = 120;
|
|
||||||
const MAX_NOMBRE_ASTRAL = 12;
|
|
||||||
|
|
||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
export class RdDCalendrier extends Application {
|
export class RdDCalendrier extends Application {
|
||||||
@@ -55,57 +25,6 @@ export class RdDCalendrier extends Application {
|
|||||||
return { top: 200, left: 200 };
|
return { top: 200, left: 200 };
|
||||||
}
|
}
|
||||||
|
|
||||||
static getDefSigne(chiffre) {
|
|
||||||
chiffre = chiffre % RDD_MOIS_PAR_AN;
|
|
||||||
return Object.values(heuresDef).find(h => h.heure == chiffre);
|
|
||||||
}
|
|
||||||
|
|
||||||
static getSigneAs(key, value) {
|
|
||||||
const heure = (typeof value == 'string' || typeof value == 'number') && Number.isInteger(Number(value))
|
|
||||||
? Number(value)
|
|
||||||
: (typeof value == 'string') ? RdDCalendrier.getChiffreFromSigne(value)
|
|
||||||
: undefined
|
|
||||||
|
|
||||||
if (heure != undefined && ['key', 'label', 'lettreFont', 'saison', 'heure', 'icon'].includes(key)) {
|
|
||||||
return RdDCalendrier.getDefSigne(heure)[key]
|
|
||||||
}
|
|
||||||
if (heure != undefined && ['webp'].includes(key)) {
|
|
||||||
return RdDCalendrier.getDefSigne(heure)['icon'].replace('svg', 'webp');
|
|
||||||
}
|
|
||||||
console.error(`Appel à getSigneAs('${key}', ${value}) avec une clé/heure incorrects`);
|
|
||||||
return value;
|
|
||||||
|
|
||||||
}
|
|
||||||
static getChiffreFromSigne(signe) {
|
|
||||||
return heuresList.indexOf(signe);
|
|
||||||
}
|
|
||||||
|
|
||||||
static createCalendrierInitial() {
|
|
||||||
return {
|
|
||||||
heureRdD: 0,
|
|
||||||
minutesRelative: 0,
|
|
||||||
indexJour: 0,
|
|
||||||
annee: 0,
|
|
||||||
moisRdD: 0,
|
|
||||||
moisLabel: heuresDef["vaisseau"].label,
|
|
||||||
jour: 0
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
getCalendrier(index) {
|
|
||||||
index = index ?? this.getCurrentDayIndex();
|
|
||||||
const mois = Math.floor(index / RDD_JOUR_PAR_MOIS) % RDD_MOIS_PAR_AN;
|
|
||||||
return {
|
|
||||||
heureRdD: 0, // Index dans heuresList / heuresDef[x].heure
|
|
||||||
minutesRelative: 0,
|
|
||||||
indexJour: index,
|
|
||||||
annee: Math.floor(index / (RDD_JOUR_PAR_MOIS * RDD_MOIS_PAR_AN)),
|
|
||||||
moisRdD: RdDCalendrier.getDefSigne(mois).heure,
|
|
||||||
moisLabel: RdDCalendrier.getDefSigne(mois).label,
|
|
||||||
jour: (index % RDD_JOUR_PAR_MOIS) // Le calendrier stocke le jour en 0-27, mais en 1-28 à l'affichage
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
constructor() {
|
constructor() {
|
||||||
super();
|
super();
|
||||||
// position
|
// position
|
||||||
@@ -114,19 +33,32 @@ export class RdDCalendrier extends Application {
|
|||||||
this.calendrierPos = RdDCalendrier.createCalendrierPos();
|
this.calendrierPos = RdDCalendrier.createCalendrierPos();
|
||||||
game.settings.set(SYSTEM_RDD, "calendrier-pos", this.calendrierPos);
|
game.settings.set(SYSTEM_RDD, "calendrier-pos", this.calendrierPos);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Calendrier
|
// Calendrier
|
||||||
this.calendrier = duplicate(game.settings.get(SYSTEM_RDD, "calendrier") ?? RdDCalendrier.createCalendrierInitial());
|
this.timestamp = RdDTimestamp.getWorldTime();
|
||||||
this.calendrier.annee = this.calendrier.annee ?? Math.floor((this.calendrier.moisRdD ?? 0) / RDD_MOIS_PAR_AN);
|
|
||||||
this.calendrier.moisRdD = (this.calendrier.moisRdD ?? 0) % RDD_MOIS_PAR_AN;
|
|
||||||
|
|
||||||
if (Misc.isUniqueConnectedGM()) { // Uniquement si GM
|
if (Misc.isUniqueConnectedGM()) { // Uniquement si GM
|
||||||
game.settings.set(SYSTEM_RDD, "calendrier", this.calendrier);
|
RdDTimestamp.setWorldTime(this.timestamp);
|
||||||
|
this.nombresAstraux = this.getNombresAstraux();
|
||||||
this.listeNombreAstral = this.getListeNombreAstral();
|
this.rebuildNombresAstraux(HIDE_DICE); // Ensure always up-to-date
|
||||||
this.rebuildListeNombreAstral(HIDE_DICE); // Ensure always up-to-date
|
}
|
||||||
|
console.log('RdDCalendrier.constructor()', this.timestamp, this.timestamp.toCalendrier(), this.calendrierPos, this.nombresAstraux);
|
||||||
|
Hooks.on('updateSetting', async (setting, update, options, id) => this.onUpdateSetting(setting, update, options, id));
|
||||||
|
}
|
||||||
|
|
||||||
|
display() {
|
||||||
|
let templatePath = "systems/foundryvtt-reve-de-dragon/templates/calendar-template.html";
|
||||||
|
renderTemplate(templatePath, {}).then(html => {
|
||||||
|
this.render(true);
|
||||||
|
});
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
async onUpdateSetting(setting, update, options, id) {
|
||||||
|
if (setting.key == SYSTEM_RDD + '.' + WORLD_TIMESTAMP_SETTING) {
|
||||||
|
this.timestamp = RdDTimestamp.getWorldTime();
|
||||||
|
this.updateDisplay();
|
||||||
|
Hooks.callAll(APP_ASTROLOGIE_REFRESH);
|
||||||
}
|
}
|
||||||
console.log('RdDCalendrier.constructor()', this.calendrier, this.calendrierPos, this.listeNombreAstral);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
@@ -141,17 +73,17 @@ export class RdDCalendrier extends Application {
|
|||||||
|
|
||||||
this.html.find('.calendar-btn').click(ev => this.onCalendarButton(ev));
|
this.html.find('.calendar-btn').click(ev => this.onCalendarButton(ev));
|
||||||
|
|
||||||
this.html.find('.calendar-btn-edit').click(ev => {
|
this.html.find('.calendar-set-datetime').click(ev => {
|
||||||
ev.preventDefault();
|
ev.preventDefault();
|
||||||
this.showCalendarEditor();
|
this.showCalendarEditor();
|
||||||
});
|
});
|
||||||
|
|
||||||
this.html.find('.astrologie-btn-edit').click(ev => {
|
this.html.find('.calendar-astrologie').click(ev => {
|
||||||
ev.preventDefault();
|
ev.preventDefault();
|
||||||
this.showAstrologieEditor();
|
this.showAstrologieEditor();
|
||||||
});
|
});
|
||||||
|
|
||||||
this.html.find('#calendar-move-handle').mousedown(ev => {
|
this.html.find('.calendar-title').mousedown(ev => {
|
||||||
ev.preventDefault();
|
ev.preventDefault();
|
||||||
ev = ev || window.event;
|
ev = ev || window.event;
|
||||||
let isRightMB = false;
|
let isRightMB = false;
|
||||||
@@ -222,53 +154,54 @@ export class RdDCalendrier extends Application {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
getListeNombreAstral() {
|
getNombresAstraux() {
|
||||||
return game.settings.get(SYSTEM_RDD, "liste-nombre-astral") ?? [];
|
return game.settings.get(SYSTEM_RDD, "liste-nombre-astral") ?? [];
|
||||||
}
|
}
|
||||||
|
|
||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
getDateFromIndex(index) {
|
dateCourante() {
|
||||||
const dateRdD = this.getCalendrier(index);
|
return this.timestamp.formatDate();
|
||||||
return (dateRdD.jour + 1) + ' ' + dateRdD.moisLabel;
|
}
|
||||||
|
|
||||||
|
isAfterIndexDate(indexDate) {
|
||||||
|
// TODO: standardize
|
||||||
|
return indexDate < this.timestamp.indexDate;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
getDayMonthFromIndex(index = undefined) {
|
heureCourante() { return RdDTimestamp.definition(this.timestamp.heure); }
|
||||||
const dateRdD = this.getCalendrier(index);
|
|
||||||
return {
|
|
||||||
day: dateRdD.jour + 1,
|
|
||||||
month: heuresList[dateRdD.moisRdD]
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
getCurrentHeure() {
|
getCurrentMinute() { return this.timestamp.indexMinute; }
|
||||||
return heuresList[this.calendrier.heureRdD];
|
|
||||||
|
getTimestamp() {
|
||||||
|
return this.timestamp;
|
||||||
|
}
|
||||||
|
getTimestampFinChateauDormant(nbJours = 0) {
|
||||||
|
return this.timestamp.nouveauJour().addJours(nbJours);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* -------------------------------------------- */
|
getTimestampFinHeure(nbHeures = 0) {
|
||||||
getCurrentDayIndex() {
|
return this.timestamp.nouvelleHeure().addHeures(nbHeures);
|
||||||
return (((this.calendrier.annee ?? 0) * RDD_MOIS_PAR_AN + (this.calendrier.moisRdD ?? 0)) * RDD_JOUR_PAR_MOIS) + (this.calendrier.jour ?? 0);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
getIndexFromDate(jour, mois) {
|
getIndexFromDate(jour, mois) {
|
||||||
return (heuresDef[mois].heure * RDD_JOUR_PAR_MOIS) + jour - 1;
|
const addYear = mois < this.timestamp.mois || (mois == this.timestamp.mois && jour < this.timestamp.jour)
|
||||||
}
|
const time = RdDTimestamp.timestamp(this.timestamp.annee + (addYear ? 1 : 0), mois, jour);
|
||||||
/* -------------------------------------------- */
|
return time.indexDate;
|
||||||
getJoursSuivants(num) {
|
|
||||||
let jours = [];
|
|
||||||
let index = this.getCurrentDayIndex();
|
|
||||||
for (let i = 0; i < num; i++) {
|
|
||||||
jours[i] = { label: this.getDateFromIndex(index + i), index: index + i };
|
|
||||||
}
|
|
||||||
return jours;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
async ajouterNombreAstral(index, showDice = SHOW_DICE) {
|
getJoursSuivants(count) {
|
||||||
|
return Misc.intArray(this.timestamp.indexDate, this.timestamp.indexDate + count)
|
||||||
|
.map(i => { return { label: RdDTimestamp.formatIndexDate(i), index: i } })
|
||||||
|
}
|
||||||
|
|
||||||
|
/* -------------------------------------------- */
|
||||||
|
async ajouterNombreAstral(indexDate, showDice = SHOW_DICE) {
|
||||||
const nombreAstral = await RdDDice.rollTotal("1dh", { showDice: showDice, rollMode: "selfroll" });
|
const nombreAstral = await RdDDice.rollTotal("1dh", { showDice: showDice, rollMode: "selfroll" });
|
||||||
const dateFuture = this.getDateFromIndex(index);
|
const dateFuture = RdDTimestamp.formatIndexDate(indexDate);
|
||||||
if (showDice != HIDE_DICE) {
|
if (showDice != HIDE_DICE) {
|
||||||
ChatMessage.create({
|
ChatMessage.create({
|
||||||
whisper: ChatMessage.getWhisperRecipients("GM"),
|
whisper: ChatMessage.getWhisperRecipients("GM"),
|
||||||
@@ -278,20 +211,14 @@ export class RdDCalendrier extends Application {
|
|||||||
return {
|
return {
|
||||||
nombreAstral: nombreAstral,
|
nombreAstral: nombreAstral,
|
||||||
valeursFausses: [],
|
valeursFausses: [],
|
||||||
index: index
|
index: indexDate
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
getCurrentNombreAstral() {
|
resetNombresAstraux() {
|
||||||
let indexDate = this.getCurrentDayIndex();
|
this.nombresAstraux = [];
|
||||||
return this.getNombreAstral(indexDate);
|
game.settings.set(SYSTEM_RDD, "liste-nombre-astral", []);
|
||||||
}
|
|
||||||
|
|
||||||
/* -------------------------------------------- */
|
|
||||||
resetNombreAstral() {
|
|
||||||
this.listeNombreAstral = [];
|
|
||||||
game.settings.set(SYSTEM_RDD, "liste-nombre-astral", this.listeNombreAstral);
|
|
||||||
|
|
||||||
game.socket.emit(SYSTEM_SOCKET_ID, {
|
game.socket.emit(SYSTEM_SOCKET_ID, {
|
||||||
msg: "msg_reset_nombre_astral",
|
msg: "msg_reset_nombre_astral",
|
||||||
@@ -300,31 +227,62 @@ export class RdDCalendrier extends Application {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
getNombreAstral(indexDate) {
|
/**
|
||||||
const listNombreAstral = this.getListeNombreAstral();
|
*
|
||||||
let astralData = listNombreAstral.find((nombreAstral, i) => nombreAstral.index == indexDate);
|
* @param {*} indexDate la date pour laquelle obtenir le nombre astral. Si undefined, on prend la date du jour
|
||||||
return astralData?.nombreAstral;
|
* @returns le nombre astral pour la date, ou pour la date du jour si la date n'est pas fournie.
|
||||||
|
* Si aucun nombre astral n'est trouvé, retourne 0 (cas où l'on demanderait un nombre astral en dehors des 12 jours courant et à venir)
|
||||||
|
*/
|
||||||
|
getNombreAstral(indexDate = undefined) {
|
||||||
|
if (indexDate == undefined) {
|
||||||
|
indexDate = this.timestamp.indexDate;
|
||||||
|
}
|
||||||
|
this.nombresAstraux = this.getNombresAstraux();
|
||||||
|
let astralData = this.nombresAstraux.find((nombreAstral, i) => nombreAstral.index == indexDate);
|
||||||
|
return astralData?.nombreAstral ?? 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
async rebuildListeNombreAstral(showDice = HIDE_DICE) {
|
async rebuildNombresAstraux(showDice = HIDE_DICE) {
|
||||||
if (Misc.isUniqueConnectedGM()) {
|
if (Misc.isUniqueConnectedGM()) {
|
||||||
let jourCourant = this.getCurrentDayIndex();
|
|
||||||
let newList = [];
|
let newList = [];
|
||||||
for (let i = 0; i < MAX_NOMBRE_ASTRAL; i++) {
|
for (let i = 0; i < MAX_NOMBRE_ASTRAL; i++) {
|
||||||
let dayIndex = jourCourant + i;
|
let dayIndex = this.timestamp.indexDate + i;
|
||||||
let na = this.listeNombreAstral.find(n => n.index == dayIndex);
|
let na = this.nombresAstraux.find(n => n.index == dayIndex);
|
||||||
if (na) {
|
if (na) {
|
||||||
newList[i] = na;
|
newList[i] = na;
|
||||||
} else {
|
} else {
|
||||||
newList[i] = await this.ajouterNombreAstral(dayIndex, showDice);
|
newList[i] = await this.ajouterNombreAstral(dayIndex, showDice);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
this.nombresAstraux = newList;
|
||||||
game.settings.set(SYSTEM_RDD, "liste-nombre-astral", newList);
|
game.settings.set(SYSTEM_RDD, "liste-nombre-astral", newList);
|
||||||
this.listeNombreAstral = newList;
|
game.actors.filter(it => it.isPersonnage()).forEach(actor => actor.supprimerAnciensNombresAstraux());
|
||||||
|
this.notifyChangeNombresAstraux();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
notifyChangeNombresAstraux() {
|
||||||
|
Hooks.callAll(APP_ASTROLOGIE_REFRESH);
|
||||||
|
game.socket.emit(SYSTEM_SOCKET_ID, {
|
||||||
|
msg: "msg_refresh_nombre_astral",
|
||||||
|
data: {}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
/* -------------------------------------------- */
|
||||||
|
async setNewTimestamp(newTimestamp) {
|
||||||
|
const oldTimestamp = this.timestamp;
|
||||||
|
await Promise.all(game.actors.map(async actor => await actor.onTimeChanging(oldTimestamp, newTimestamp)));
|
||||||
|
RdDTimestamp.setWorldTime(newTimestamp);
|
||||||
|
if (oldTimestamp.indexDate + 1 == newTimestamp.indexDate && ReglesOptionelles.isUsing("chateau-dormant-gardien")) {
|
||||||
|
await DialogChateauDormant.create();
|
||||||
|
}
|
||||||
|
this.timestamp = newTimestamp;
|
||||||
|
await this.rebuildNombresAstraux();
|
||||||
|
this.updateDisplay();
|
||||||
|
}
|
||||||
|
|
||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
async onCalendarButton(ev) {
|
async onCalendarButton(ev) {
|
||||||
ev.preventDefault();
|
ev.preventDefault();
|
||||||
@@ -337,97 +295,37 @@ export class RdDCalendrier extends Application {
|
|||||||
this.positionnerHeure(Number(calendarSet.value));
|
this.positionnerHeure(Number(calendarSet.value));
|
||||||
}
|
}
|
||||||
this.updateDisplay();
|
this.updateDisplay();
|
||||||
}
|
Hooks.callAll(APP_ASTROLOGIE_REFRESH);
|
||||||
|
|
||||||
/* -------------------------------------------- */
|
|
||||||
checkMaladie(periode) {
|
|
||||||
for (let actor of game.actors) {
|
|
||||||
if (actor.type == 'personnage') {
|
|
||||||
let maladies = actor.items.filter(item => (item.type == 'maladie' || (item.type == 'poison' && item.system.active)) && item.system.periodicite.toLowerCase().includes(periode));
|
|
||||||
for (let maladie of maladies) {
|
|
||||||
if (maladie.system.identifie) {
|
|
||||||
ChatMessage.create({ content: `${actor.name} souffre de ${maladie.name} (${maladie.type}): vérifiez que les effets ne se sont pas aggravés !` });
|
|
||||||
} else {
|
|
||||||
ChatMessage.create({ content: `${actor.name} souffre d'un mal inconnu (${maladie.type}): vérifiez que les effets ne se sont pas aggravés !` });
|
|
||||||
}
|
|
||||||
let itemMaladie = actor.getItem(maladie.id)
|
|
||||||
itemMaladie.postItem('gmroll');
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
async incrementTime(minutes = 0) {
|
async incrementTime(minutes = 0) {
|
||||||
this.calendrier.minutesRelative += minutes;
|
await this.setNewTimestamp(this.timestamp.addMinutes(minutes));
|
||||||
this.checkMaladie("round");
|
|
||||||
this.checkMaladie("minute");
|
|
||||||
if (this.calendrier.minutesRelative >= RDD_MINUTES_PAR_HEURES) {
|
|
||||||
this.calendrier.minutesRelative -= RDD_MINUTES_PAR_HEURES;
|
|
||||||
this.calendrier.heureRdD += 1;
|
|
||||||
this.checkMaladie("heure");
|
|
||||||
}
|
|
||||||
if (this.calendrier.heureRdD >= RDD_HEURES_PAR_JOUR) {
|
|
||||||
this.calendrier.heureRdD -= RDD_HEURES_PAR_JOUR;
|
|
||||||
await this.incrementerJour();
|
|
||||||
this.checkMaladie("heure");
|
|
||||||
this.checkMaladie("jour");
|
|
||||||
}
|
|
||||||
game.settings.set(SYSTEM_RDD, "calendrier", duplicate(this.calendrier));
|
|
||||||
// Notification aux joueurs // TODO: replace with Hook on game settings update
|
|
||||||
game.socket.emit(SYSTEM_SOCKET_ID, {
|
|
||||||
msg: "msg_sync_time",
|
|
||||||
data: duplicate(this.calendrier)
|
|
||||||
});
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
async incrementerJour() {
|
async incrementerJour() {
|
||||||
const index = this.getCurrentDayIndex() + 1;
|
await this.setNewTimestamp(this.timestamp.nouveauJour());
|
||||||
this.calendrier = this.getCalendrier(index);
|
|
||||||
await this.rebuildListeNombreAstral();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
syncPlayerTime(calendrier) {
|
async positionnerHeure(heure) {
|
||||||
this.calendrier = duplicate(calendrier); // Local copy update
|
const indexDate = this.timestamp.indexDate;
|
||||||
this.updateDisplay();
|
const addDay = this.timestamp.heure < heure ? 0 : 1;
|
||||||
}
|
const newTimestamp = new RdDTimestamp({ indexDate: indexDate + addDay }).addHeures(heure);
|
||||||
|
await this.setNewTimestamp(newTimestamp)
|
||||||
/* -------------------------------------------- */
|
|
||||||
async positionnerHeure(indexHeure) {
|
|
||||||
if (indexHeure <= this.calendrier.heureRdD) {
|
|
||||||
await this.incrementerJour();
|
|
||||||
}
|
|
||||||
this.calendrier.heureRdD = indexHeure;
|
|
||||||
this.calendrier.minutesRelative = 0;
|
|
||||||
game.settings.set(SYSTEM_RDD, "calendrier", duplicate(this.calendrier));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
fillCalendrierData(formData = {}) {
|
fillCalendrierData(formData = {}) {
|
||||||
const mois = RdDCalendrier.getDefSigne(this.calendrier.moisRdD);
|
mergeObject(formData, this.timestamp.toCalendrier());
|
||||||
const heure = RdDCalendrier.getDefSigne(this.calendrier.heureRdD);
|
|
||||||
console.log('fillCalendrierData', this.calendrier, mois, heure);
|
|
||||||
|
|
||||||
formData.heureKey = heure.key;
|
|
||||||
formData.moisKey = mois.key;
|
|
||||||
formData.jourMois = this.calendrier.jour + 1;
|
|
||||||
formData.nomMois = mois.label; // heures et mois nommés identiques
|
|
||||||
formData.annee = this.calendrier.annee;
|
|
||||||
formData.iconMois = dossierIconesHeures + mois.icon;
|
|
||||||
formData.nomHeure = heure.label;
|
|
||||||
formData.iconHeure = dossierIconesHeures + heure.icon;
|
|
||||||
formData.nomSaison = saisonsDef[mois.saison].label;
|
|
||||||
formData.heureRdD = this.calendrier.heureRdD;
|
|
||||||
formData.minutesRelative = this.calendrier.minutesRelative;
|
|
||||||
formData.isGM = game.user.isGM;
|
formData.isGM = game.user.isGM;
|
||||||
return formData;
|
return formData;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
getLectureAstrologieDifficulte(dateIndex) {
|
getLectureAstrologieDifficulte(dateIndex) {
|
||||||
let indexNow = this.getCurrentDayIndex();
|
let indexNow = this.timestamp.indexDate;
|
||||||
let diffDay = dateIndex - indexNow;
|
let diffDay = dateIndex - indexNow;
|
||||||
return - Math.floor(diffDay / 2);
|
return - Math.floor(diffDay / 2);
|
||||||
}
|
}
|
||||||
@@ -478,66 +376,16 @@ export class RdDCalendrier extends Application {
|
|||||||
}
|
}
|
||||||
|
|
||||||
addNbAstralIncorect(actorId, date, nbAstral) {
|
addNbAstralIncorect(actorId, date, nbAstral) {
|
||||||
let astralData = this.listeNombreAstral.find((nombreAstral, i) => nombreAstral.index == date);
|
let astralData = this.nombresAstraux.find((nombreAstral, i) => nombreAstral.index == date);
|
||||||
astralData.valeursFausses.push({ actorId: actorId, nombreAstral: nbAstral });
|
astralData.valeursFausses.push({ actorId: actorId, nombreAstral: nbAstral });
|
||||||
game.settings.set(SYSTEM_RDD, "liste-nombre-astral", this.listeNombreAstral);
|
game.settings.set(SYSTEM_RDD, "liste-nombre-astral", this.nombresAstraux);
|
||||||
}
|
|
||||||
|
|
||||||
/* -------------------------------------------- */
|
|
||||||
findHeure(heure) {
|
|
||||||
heure = Grammar.toLowerCaseNoAccentNoSpace(heure);
|
|
||||||
let parHeureOuLabel = Object.values(heuresDef).filter(it => (it.heure + 1) == parseInt(heure) || Grammar.toLowerCaseNoAccentNoSpace(it.label) == heure);
|
|
||||||
if (parHeureOuLabel.length == 1) {
|
|
||||||
return parHeureOuLabel[0];
|
|
||||||
}
|
|
||||||
let parLabelPartiel = Object.values(heuresDef).filter(it => Grammar.toLowerCaseNoAccentNoSpace(it.label).includes(heure));
|
|
||||||
if (parLabelPartiel.length > 0) {
|
|
||||||
parLabelPartiel.sort(Misc.ascending(h => h.label.length));
|
|
||||||
return parLabelPartiel[0];
|
|
||||||
}
|
|
||||||
return undefined;
|
|
||||||
}
|
|
||||||
/* -------------------------------------------- */
|
|
||||||
getHeureNumber(hNum) {
|
|
||||||
let heure = Object.values(heuresDef).find(it => (it.heure) == hNum);
|
|
||||||
return heure
|
|
||||||
}
|
|
||||||
|
|
||||||
/* -------------------------------------------- */
|
|
||||||
getHeuresChanceMalchance(heureNaissance) {
|
|
||||||
let heuresChancesMalchances = [];
|
|
||||||
let defHeure = this.findHeure(heureNaissance);
|
|
||||||
if (defHeure) {
|
|
||||||
let hn = defHeure.heure;
|
|
||||||
let chiffreAstral = this.getCurrentNombreAstral() ?? 0;
|
|
||||||
heuresChancesMalchances[0] = { value: "+4", heures: [this.getHeureNumber((hn + chiffreAstral) % RDD_HEURES_PAR_JOUR).label] };
|
|
||||||
heuresChancesMalchances[1] = {
|
|
||||||
value: "+2", heures: [this.getHeureNumber((hn + chiffreAstral + 4) % RDD_HEURES_PAR_JOUR).label,
|
|
||||||
this.getHeureNumber((hn + chiffreAstral + 8) % RDD_HEURES_PAR_JOUR).label]
|
|
||||||
};
|
|
||||||
heuresChancesMalchances[2] = { value: "-4", heures: [this.getHeureNumber((hn + chiffreAstral + 6) % RDD_HEURES_PAR_JOUR).label] };
|
|
||||||
heuresChancesMalchances[3] = {
|
|
||||||
value: "-2", heures: [this.getHeureNumber((hn + chiffreAstral + 3) % RDD_HEURES_PAR_JOUR).label,
|
|
||||||
this.getHeureNumber((hn + chiffreAstral + 9) % RDD_HEURES_PAR_JOUR).label]
|
|
||||||
};
|
|
||||||
}
|
|
||||||
return heuresChancesMalchances;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
getAjustementAstrologique(heureNaissance, name = undefined) {
|
getAjustementAstrologique(heureNaissance, name = undefined) {
|
||||||
let defHeure = this.findHeure(heureNaissance);
|
let defHeure = RdDTimestamp.findHeure(heureNaissance);
|
||||||
if (defHeure) {
|
if (defHeure) {
|
||||||
let hn = defHeure.heure;
|
return RdDTimestamp.ajustementAstrologiqueHeure(defHeure.heure, this.getNombreAstral(), this.timestamp.heure);
|
||||||
let chiffreAstral = this.getCurrentNombreAstral() ?? 0;
|
|
||||||
let heureCourante = this.calendrier.heureRdD;
|
|
||||||
let ecartChance = (hn + chiffreAstral - heureCourante) % RDD_HEURES_PAR_JOUR;
|
|
||||||
switch (ecartChance) {
|
|
||||||
case 0: return 4;
|
|
||||||
case 4: case 8: return 2;
|
|
||||||
case 6: return -4;
|
|
||||||
case 3: case 9: return -2;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
else if (name) {
|
else if (name) {
|
||||||
ui.notifications.warn(name + " n'a pas d'heure de naissance, ou elle est incorrecte : " + heureNaissance);
|
ui.notifications.warn(name + " n'a pas d'heure de naissance, ou elle est incorrecte : " + heureNaissance);
|
||||||
@@ -551,9 +399,7 @@ export class RdDCalendrier extends Application {
|
|||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
getData() {
|
getData() {
|
||||||
let formData = super.getData();
|
let formData = super.getData();
|
||||||
|
|
||||||
this.fillCalendrierData(formData);
|
this.fillCalendrierData(formData);
|
||||||
|
|
||||||
this.setPos(this.calendrierPos);
|
this.setPos(this.calendrierPos);
|
||||||
return formData;
|
return formData;
|
||||||
}
|
}
|
||||||
@@ -582,50 +428,40 @@ export class RdDCalendrier extends Application {
|
|||||||
updateDisplay() {
|
updateDisplay() {
|
||||||
let calendrier = this.fillCalendrierData();
|
let calendrier = this.fillCalendrierData();
|
||||||
// Rebuild text du calendrier
|
// Rebuild text du calendrier
|
||||||
let dateHTML = `${calendrier.jourMois} ${calendrier.nomMois} ${calendrier.annee} (${calendrier.nomSaison})`
|
let dateHTML = `${calendrier.jourDuMois} ${calendrier.mois.label} (${calendrier.mois.saison}) de l'année ${calendrier.annee}`
|
||||||
if (game.user.isGM) {
|
if (game.user.isGM) {
|
||||||
dateHTML = dateHTML + " - NA: " + (this.getCurrentNombreAstral() ?? "indéterminé");
|
dateHTML = dateHTML + "<br>Nombre Astral: " + (this.getNombreAstral() ?? "?");
|
||||||
}
|
}
|
||||||
for (let handle of document.getElementsByClassName("calendar-date-rdd")) {
|
for (let handle of document.getElementsByClassName("calendar-title")) {
|
||||||
handle.innerHTML = dateHTML;
|
handle.innerHTML = dateHTML;
|
||||||
}
|
}
|
||||||
for (let heure of document.getElementsByClassName("calendar-heure-texte")) {
|
for (let heure of document.getElementsByClassName("calendar-heure-texte")) {
|
||||||
heure.innerHTML = calendrier.nomHeure;
|
heure.innerHTML = calendrier.heure.label;
|
||||||
}
|
}
|
||||||
for (const minute of document.getElementsByClassName("calendar-time-disp")) {
|
for (const minute of document.getElementsByClassName("calendar-minute-texte")) {
|
||||||
minute.innerHTML = `${calendrier.minutesRelative} minutes`;
|
minute.innerHTML = `${calendrier.minute} minutes`;
|
||||||
}
|
}
|
||||||
for (const heureImg of document.getElementsByClassName("calendar-heure-img")) {
|
for (const heureImg of document.getElementsByClassName("calendar-heure-img")) {
|
||||||
heureImg.src = calendrier.iconHeure;
|
heureImg.src = calendrier.heure.icon;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
async saveEditeur(calendrierData) {
|
async saveEditeur(calendrierData) {
|
||||||
this.calendrier.minutesRelative = Number(calendrierData.minutesRelative);
|
const newTimestamp = RdDTimestamp.timestamp(
|
||||||
this.calendrier.jour = Number(calendrierData.jourMois) - 1;
|
Number.parseInt(calendrierData.annee),
|
||||||
this.calendrier.moisRdD = RdDCalendrier.getChiffreFromSigne(calendrierData.moisKey);
|
calendrierData.mois.heure,
|
||||||
this.calendrier.annee = Number(calendrierData.annee);
|
Number.parseInt(calendrierData.jourMois),
|
||||||
this.calendrier.heureRdD = RdDCalendrier.getChiffreFromSigne(calendrierData.heureKey);
|
calendrierData.heure.heure,
|
||||||
game.settings.set(SYSTEM_RDD, "calendrier", duplicate(this.calendrier));
|
Number.parseInt(calendrierData.minutes)
|
||||||
|
);
|
||||||
await this.rebuildListeNombreAstral();
|
await this.setNewTimestamp(newTimestamp);
|
||||||
|
|
||||||
game.socket.emit(SYSTEM_SOCKET_ID, {
|
|
||||||
msg: "msg_sync_time",
|
|
||||||
data: duplicate(this.calendrier)
|
|
||||||
});
|
|
||||||
|
|
||||||
this.updateDisplay();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
async showCalendarEditor() {
|
async showCalendarEditor() {
|
||||||
let calendrierData = duplicate(this.fillCalendrierData());
|
let calendrierData = this.fillCalendrierData();
|
||||||
if (this.editeur == undefined) {
|
if (this.editeur == undefined) {
|
||||||
calendrierData.jourMoisOptions = RdDCalendrier.buildJoursMois();
|
|
||||||
calendrierData.heuresOptions = [0, 1];
|
|
||||||
calendrierData.minutesOptions = Array(RDD_MINUTES_PAR_HEURES).fill().map((item, index) => 0 + index);
|
|
||||||
let html = await renderTemplate('systems/foundryvtt-reve-de-dragon/templates/calendar-editor-template.html', calendrierData);
|
let html = await renderTemplate('systems/foundryvtt-reve-de-dragon/templates/calendar-editor-template.html', calendrierData);
|
||||||
this.editeur = new RdDCalendrierEditeur(html, this, calendrierData)
|
this.editeur = new RdDCalendrierEditeur(html, this, calendrierData)
|
||||||
}
|
}
|
||||||
@@ -633,36 +469,8 @@ export class RdDCalendrier extends Application {
|
|||||||
this.editeur.render(true);
|
this.editeur.render(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
static buildJoursMois() {
|
|
||||||
return Array(RDD_JOUR_PAR_MOIS).fill().map((item, index) => 1 + index);
|
|
||||||
}
|
|
||||||
|
|
||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
async showAstrologieEditor() {
|
async showAstrologieEditor() {
|
||||||
let calendrierData = duplicate(this.fillCalendrierData());
|
await AppAstrologie.create();
|
||||||
let astrologieArray = [];
|
|
||||||
this.listeNombreAstral = this.listeNombreAstral || [];
|
|
||||||
for (let astralData of this.listeNombreAstral) {
|
|
||||||
astralData.humanDate = this.getDateFromIndex(astralData.index);
|
|
||||||
for (let vf of astralData.valeursFausses) {
|
|
||||||
let actor = game.actors.get(vf.actorId);
|
|
||||||
vf.actorName = (actor) ? actor.name : "Inconnu";
|
|
||||||
}
|
|
||||||
astrologieArray.push(duplicate(astralData));
|
|
||||||
}
|
|
||||||
let heuresParActeur = {};
|
|
||||||
for (let actor of game.actors) {
|
|
||||||
let heureNaissance = actor.getHeureNaissance();
|
|
||||||
if (heureNaissance) {
|
|
||||||
heuresParActeur[actor.name] = this.getHeuresChanceMalchance(heureNaissance);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
//console.log("ASTRO", astrologieArray);
|
|
||||||
calendrierData.astrologieData = astrologieArray;
|
|
||||||
calendrierData.heuresParActeur = heuresParActeur;
|
|
||||||
let html = await renderTemplate('systems/foundryvtt-reve-de-dragon/templates/calendar-astrologie-template.html', calendrierData);
|
|
||||||
let astrologieEditeur = new RdDAstrologieEditeur(html, this, calendrierData)
|
|
||||||
astrologieEditeur.updateData(calendrierData);
|
|
||||||
astrologieEditeur.render(true);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -39,9 +39,10 @@ const tableCaracDerivee = {
|
|||||||
|
|
||||||
export class RdDCarac {
|
export class RdDCarac {
|
||||||
|
|
||||||
static isAgiliteOuDerivee(selectedCarac) {
|
static isAgiliteOuDerobee(selectedCarac) {
|
||||||
return selectedCarac?.label.match(/(Agilité|Dérobée)/);
|
return selectedCarac?.label.match(/(Agilité|Dérobée)/);
|
||||||
}
|
}
|
||||||
|
|
||||||
static isVolonte(selectedCarac) {
|
static isVolonte(selectedCarac) {
|
||||||
return selectedCarac?.label == 'Volonté';
|
return selectedCarac?.label == 'Volonté';
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,6 +1,5 @@
|
|||||||
import { ChatUtility } from "./chat-utility.js";
|
import { ChatUtility } from "./chat-utility.js";
|
||||||
import { ENTITE_BLURETTE, ENTITE_INCARNE, ENTITE_NONINCARNE, HIDE_DICE, SYSTEM_RDD, SYSTEM_SOCKET_ID } from "./constants.js";
|
import { ENTITE_BLURETTE, HIDE_DICE, SYSTEM_RDD, SYSTEM_SOCKET_ID } from "./constants.js";
|
||||||
import { DialogSelectTarget } from "./dialog-select-target.js";
|
|
||||||
import { Grammar } from "./grammar.js";
|
import { Grammar } from "./grammar.js";
|
||||||
import { RdDItemArme } from "./item-arme.js";
|
import { RdDItemArme } from "./item-arme.js";
|
||||||
import { RdDItemCompetence } from "./item-competence.js";
|
import { RdDItemCompetence } from "./item-competence.js";
|
||||||
@@ -40,35 +39,31 @@ export class RdDCombatManager extends Combat {
|
|||||||
|
|
||||||
static init() {
|
static init() {
|
||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
Hooks.on("getCombatTrackerEntryContext", (html, options) => {
|
Hooks.on("getCombatTrackerEntryContext", (html, options) => { RdDCombatManager.pushInitiativeOptions(html, options); });
|
||||||
RdDCombatManager.pushInitiativeOptions(html, options);
|
Hooks.on("updateCombat", (combat, change, options, userId) => { RdDCombat.onUpdateCombat(combat, change, options, userId) });
|
||||||
});
|
Hooks.on("preDeleteCombat", (combat, html, id) => { combat.onPreDeleteCombat() });
|
||||||
Hooks.on("preDeleteCombat", (combat, html, id) => {
|
|
||||||
combat.onPreDeleteCombat()
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
/* -------------------------------------------- */
|
|
||||||
cleanItemUse() {
|
|
||||||
for (let turn of this.turns) {
|
|
||||||
turn.actor.resetItemUse()
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
async nextRound() {
|
async nextRound() {
|
||||||
this.cleanItemUse();
|
|
||||||
await this.finDeRound();
|
await this.finDeRound();
|
||||||
return await super.nextRound();
|
return await super.nextRound();
|
||||||
}
|
}
|
||||||
|
|
||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
async onPreDeleteCombat() {
|
async onPreDeleteCombat() {
|
||||||
|
if (Misc.isUniqueConnectedGM()) {
|
||||||
await this.finDeRound({ terminer: true });
|
await this.finDeRound({ terminer: true });
|
||||||
|
ChatUtility.removeChatMessageContaining(`<div data-combatid="${this.id}" data-combatmessage="actor-turn-summary">`)
|
||||||
|
game.messages.filter(m => ChatUtility.getMessageData(m, 'attacker-roll') != undefined && ChatUtility.getMessageData(m, 'defender-roll') != undefined)
|
||||||
|
.forEach(it => it.delete());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
async finDeRound(options = { terminer: false }) {
|
async finDeRound(options = { terminer: false }) {
|
||||||
|
this.turns.forEach(turn => turn.actor.resetItemUse());
|
||||||
|
|
||||||
for (let combatant of this.combatants) {
|
for (let combatant of this.combatants) {
|
||||||
if (combatant.actor) {
|
if (combatant.actor) {
|
||||||
await combatant.actor.finDeRound(options);
|
await combatant.actor.finDeRound(options);
|
||||||
@@ -111,10 +106,10 @@ export class RdDCombatManager extends Combat {
|
|||||||
if (!roll.total) {
|
if (!roll.total) {
|
||||||
roll.evaluate({ async: false });
|
roll.evaluate({ async: false });
|
||||||
}
|
}
|
||||||
if (roll.total <= 0) roll.total = 0.00;
|
const total = Math.max(roll.total, 0.00);
|
||||||
console.log("Compute init for", rollFormula, roll.total, combatant);
|
console.log("Compute init for", rollFormula, roll, total, combatant);
|
||||||
let id = combatant._id || combatant.id;
|
let id = combatant._id || combatant.id;
|
||||||
await this.updateEmbeddedDocuments("Combatant", [{ _id: id, initiative: roll.total }]);
|
await this.updateEmbeddedDocuments("Combatant", [{ _id: id, initiative: total }]);
|
||||||
|
|
||||||
// Send a chat message
|
// Send a chat message
|
||||||
let rollMode = messageOptions.rollMode || game.settings.get("core", "rollMode");
|
let rollMode = messageOptions.rollMode || game.settings.get("core", "rollMode");
|
||||||
@@ -145,9 +140,8 @@ export class RdDCombatManager extends Combat {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
static calculInitiative(niveau, caracValue, bonusEcaille = 0) {
|
static calculInitiative(niveau, caracValue, bonus = 0) {
|
||||||
let base = niveau + Math.floor(caracValue / 2);
|
let base = niveau + Math.floor(caracValue / 2) + bonus;
|
||||||
base += bonusEcaille;
|
|
||||||
return "1d6" + (base >= 0 ? "+" : "") + base;
|
return "1d6" + (base >= 0 ? "+" : "") + base;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -421,18 +415,11 @@ export class RdDCombatManager extends Combat {
|
|||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
export class RdDCombat {
|
export class RdDCombat {
|
||||||
|
|
||||||
static init() {
|
|
||||||
Hooks.on("updateCombat", (combat, change, options, userId) => { RdDCombat.onUpdateCombat(combat, change, options, userId) });
|
|
||||||
Hooks.on("preDeleteCombat", (combat, options, userId) => { RdDCombat.onPreDeleteCombat(combat, options, userId); });
|
|
||||||
}
|
|
||||||
|
|
||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
static onSocketMessage(sockmsg) {
|
static onSocketMessage(sockmsg) {
|
||||||
switch (sockmsg.msg) {
|
switch (sockmsg.msg) {
|
||||||
case "msg_encaisser":
|
case "msg_encaisser": return RdDCombat.onMsgEncaisser(sockmsg.data);
|
||||||
return RdDCombat.onMsgEncaisser(sockmsg.data);
|
case "msg_defense": return RdDCombat.onMsgDefense(sockmsg.data);
|
||||||
case "msg_defense":
|
|
||||||
return RdDCombat.onMsgDefense(sockmsg.data);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -443,16 +430,6 @@ export class RdDCombat {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/* -------------------------------------------- */
|
|
||||||
static onPreDeleteCombat(combat, options, userId) {
|
|
||||||
if (Misc.isUniqueConnectedGM()) {
|
|
||||||
combat.cleanItemUse();
|
|
||||||
ChatUtility.removeChatMessageContaining(`<div data-combatid="${combat.id}" data-combatmessage="actor-turn-summary">`)
|
|
||||||
game.messages.filter(m => ChatUtility.getMessageData(m, 'attacker-roll') != undefined && ChatUtility.getMessageData(m, 'defender-roll') != undefined)
|
|
||||||
.forEach(it => it.delete());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
static combatNouveauTour(combat) {
|
static combatNouveauTour(combat) {
|
||||||
if (Misc.isUniqueConnectedGM()) {
|
if (Misc.isUniqueConnectedGM()) {
|
||||||
@@ -757,15 +734,6 @@ export class RdDCombat {
|
|||||||
|
|
||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
async attaque(competence, arme) {
|
async attaque(competence, arme) {
|
||||||
// const nonIncarnee = this.defender.isEntite([ENTITE_NONINCARNE])
|
|
||||||
// const blurette = this.defender.isEntite([ENTITE_BLURETTE])
|
|
||||||
// if (nonIncarnee || blurette) {
|
|
||||||
// ChatMessage.create( {
|
|
||||||
// content: `<strong>La cible est ${nonIncarnee ? 'non incarnée' : 'une blurette'}.
|
|
||||||
// Il est impossible de l'atteindre.`,
|
|
||||||
// whisper: ChatMessage.getWhisperRecipients("GM")})
|
|
||||||
// }
|
|
||||||
|
|
||||||
if (!await this.attacker.accorder(this.defender, 'avant-attaque')) {
|
if (!await this.attacker.accorder(this.defender, 'avant-attaque')) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@@ -971,9 +939,8 @@ export class RdDCombat {
|
|||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
_filterArmesParade(defender, competence) {
|
_filterArmesParade(defender, competence) {
|
||||||
let items = defender.items.filter(it => RdDItemArme.isArmeUtilisable(it) || RdDItemCompetenceCreature.isCompetenceParade(it))
|
let items = defender.items.filter(it => RdDItemArme.isArmeUtilisable(it) || RdDItemCompetenceCreature.isCompetenceParade(it))
|
||||||
for (let item of items) {
|
items.forEach(item => item.system.nbUsage = defender.getItemUse(item.id)); // Ajout du # d'utilisation ce round
|
||||||
item.system.nbUsage = defender.getItemUse(item.id); // Ajout du # d'utilisation ce round
|
|
||||||
}
|
|
||||||
switch (competence.system.categorie) {
|
switch (competence.system.categorie) {
|
||||||
case 'tir':
|
case 'tir':
|
||||||
case 'lancer':
|
case 'lancer':
|
||||||
@@ -1328,13 +1295,8 @@ export class RdDCombat {
|
|||||||
blessuresStatus: actor.computeResumeBlessure(),
|
blessuresStatus: actor.computeResumeBlessure(),
|
||||||
SConst: actor.getSConst(),
|
SConst: actor.getSConst(),
|
||||||
actorId: actor.id,
|
actorId: actor.id,
|
||||||
isGrave: false,
|
isGrave: actor.countBlessures(it => it.isGrave()) > 0,
|
||||||
isCritique: false
|
isCritique: actor.countBlessures(it => it.isCritique()) > 0
|
||||||
}
|
|
||||||
if (actor.countBlessuresNonSoigneeByName("critiques") > 0) { // Pour éviter le cumul grave + critique
|
|
||||||
formData.isCritique = true;
|
|
||||||
} else if (actor.countBlessuresNonSoigneeByName("graves") > 0) {
|
|
||||||
formData.isGrave = true;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
ChatUtility.createChatWithRollMode(actor.name, {
|
ChatUtility.createChatWithRollMode(actor.name, {
|
||||||
|
|||||||
@@ -2,7 +2,8 @@
|
|||||||
|
|
||||||
import { DialogChronologie } from "./dialog-chronologie.js";
|
import { DialogChronologie } from "./dialog-chronologie.js";
|
||||||
import { DialogCreateSigneDraconique } from "./dialog-create-signedraconique.js";
|
import { DialogCreateSigneDraconique } from "./dialog-create-signedraconique.js";
|
||||||
import { DialogStress } from "./dialog-stress.js";
|
import { DialogChateauDormant } from "./sommeil/dialog-chateau-dormant.js";
|
||||||
|
import { DialogStress } from "./sommeil/dialog-stress.js";
|
||||||
import { RdDItemCompetence } from "./item-competence.js";
|
import { RdDItemCompetence } from "./item-competence.js";
|
||||||
import { Misc } from "./misc.js";
|
import { Misc } from "./misc.js";
|
||||||
import { RdDCarac } from "./rdd-carac.js";
|
import { RdDCarac } from "./rdd-carac.js";
|
||||||
@@ -13,7 +14,7 @@ import { RdDResolutionTable } from "./rdd-resolution-table.js";
|
|||||||
import { RdDRollResolutionTable } from "./rdd-roll-resolution-table.js";
|
import { RdDRollResolutionTable } from "./rdd-roll-resolution-table.js";
|
||||||
import { RdDRollTables } from "./rdd-rolltables.js";
|
import { RdDRollTables } from "./rdd-rolltables.js";
|
||||||
import { RdDUtility } from "./rdd-utility.js";
|
import { RdDUtility } from "./rdd-utility.js";
|
||||||
import { CompendiumTableHelpers } from "./settings/system-compendiums.js";
|
import { FenetreRechercheTirage } from "./tirage/fenetre-recherche-tirage.js";
|
||||||
import { TMRUtility } from "./tmr-utility.js";
|
import { TMRUtility } from "./tmr-utility.js";
|
||||||
|
|
||||||
const rddRollNumeric = /^(\d+)\s*([\+\-]?\d+)?\s*(s)?/;
|
const rddRollNumeric = /^(\d+)\s*([\+\-]?\d+)?\s*(s)?/;
|
||||||
@@ -23,6 +24,7 @@ export class RdDCommands {
|
|||||||
|
|
||||||
static init() {
|
static init() {
|
||||||
const rddCommands = new RdDCommands();
|
const rddCommands = new RdDCommands();
|
||||||
|
game.system.rdd.commands = rddCommands;
|
||||||
|
|
||||||
Hooks.on("chatMessage", (html, content, msg) => {
|
Hooks.on("chatMessage", (html, content, msg) => {
|
||||||
if (content[0] == '/') {
|
if (content[0] == '/') {
|
||||||
@@ -35,7 +37,6 @@ export class RdDCommands {
|
|||||||
return true;
|
return true;
|
||||||
});
|
});
|
||||||
|
|
||||||
game.system.rdd.commands = rddCommands;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
constructor() {
|
constructor() {
|
||||||
@@ -63,7 +64,6 @@ export class RdDCommands {
|
|||||||
<br><strong>/table rencontre deso</strong> affiche la table des rencontres en Désolation
|
<br><strong>/table rencontre deso</strong> affiche la table des rencontres en Désolation
|
||||||
<br><strong>/table rencontre mauvaise</strong> affiche la table des mauvaises rencontres`
|
<br><strong>/table rencontre mauvaise</strong> affiche la table des mauvaises rencontres`
|
||||||
});
|
});
|
||||||
this.registerCommand({ path: ["/table", "milieu"], func: (content, msg, params) => this.tableMilieu(msg, params, 'liste'), descr: "Affiche la table des ressource naturelles pour un milieu donné" });
|
|
||||||
|
|
||||||
this.registerCommand({ path: ["/tirer", "comp"], func: (content, msg, params) => RdDRollTables.getCompetence('chat'), descr: "Tire une compétence au hasard" });
|
this.registerCommand({ path: ["/tirer", "comp"], func: (content, msg, params) => RdDRollTables.getCompetence('chat'), descr: "Tire une compétence au hasard" });
|
||||||
this.registerCommand({ path: ["/tirer", "queue"], func: (content, msg, params) => RdDRollTables.getQueue('chat'), descr: "Tire une Queue de Dragon" });
|
this.registerCommand({ path: ["/tirer", "queue"], func: (content, msg, params) => RdDRollTables.getQueue('chat'), descr: "Tire une Queue de Dragon" });
|
||||||
@@ -75,8 +75,9 @@ export class RdDCommands {
|
|||||||
this.registerCommand({ path: ["/tirer", "ideefixe"], func: (content, msg, params) => RdDRollTables.getIdeeFixe('chat'), descr: "Tire une Idée fixe" });
|
this.registerCommand({ path: ["/tirer", "ideefixe"], func: (content, msg, params) => RdDRollTables.getIdeeFixe('chat'), descr: "Tire une Idée fixe" });
|
||||||
this.registerCommand({ path: ["/tirer", "desir"], func: (content, msg, params) => RdDRollTables.getDesirLancinant('chat'), descr: "Tire un Désir Lancinant" });
|
this.registerCommand({ path: ["/tirer", "desir"], func: (content, msg, params) => RdDRollTables.getDesirLancinant('chat'), descr: "Tire un Désir Lancinant" });
|
||||||
this.registerCommand({ path: ["/tirer", "rencontre"], func: (content, msg, params) => this.getRencontreTMR(params), descr: `Détermine une rencontre dans les TMR (synonyme de "/tmrr")` });
|
this.registerCommand({ path: ["/tirer", "rencontre"], func: (content, msg, params) => this.getRencontreTMR(params), descr: `Détermine une rencontre dans les TMR (synonyme de "/tmrr")` });
|
||||||
this.registerCommand({ path: ["/tirer", "milieu"], func: (content, msg, params) => this.tableMilieu(msg, params, 'chat'), descr: "Effectue un tirage dans la table desressource naturelles pour un milieu donné" });
|
this.registerCommand({ path: ["/tirage"], func: (content, msg, params) => this.tirage(), descr: "Ouvre la fenêtre de recherche et tirage" });
|
||||||
|
|
||||||
|
this.registerCommand({ path: ["/sommeil"], func: (content, msg, params) => this.sommeil(msg, params), descr: "Prépare le passage de journée pour chateau dormant" });
|
||||||
this.registerCommand({ path: ["/meteo"], func: (content, msg, params) => this.getMeteo(msg, params), descr: "Propose une météo marine" });
|
this.registerCommand({ path: ["/meteo"], func: (content, msg, params) => this.getMeteo(msg, params), descr: "Propose une météo marine" });
|
||||||
this.registerCommand({ path: ["/nom"], func: (content, msg, params) => RdDNameGen.getName(msg, params), descr: "Génère un nom aléatoire" });
|
this.registerCommand({ path: ["/nom"], func: (content, msg, params) => RdDNameGen.getName(msg, params), descr: "Génère un nom aléatoire" });
|
||||||
|
|
||||||
@@ -254,10 +255,7 @@ export class RdDCommands {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
async help(msg) {
|
async help(msg, table = undefined) {
|
||||||
this.help(msg, undefined);
|
|
||||||
}
|
|
||||||
async help(msg, table) {
|
|
||||||
let commands = []
|
let commands = []
|
||||||
this._buildSubTableHelp(commands, table ?? this.commandsTable);
|
this._buildSubTableHelp(commands, table ?? this.commandsTable);
|
||||||
|
|
||||||
@@ -334,7 +332,7 @@ export class RdDCommands {
|
|||||||
let competence = length > 1 ? actors[0].getCompetence(Misc.join(params.slice(1, length), ' ')) : { name: undefined };
|
let competence = length > 1 ? actors[0].getCompetence(Misc.join(params.slice(1, length), ' ')) : { name: undefined };
|
||||||
if (competence) {
|
if (competence) {
|
||||||
for (let actor of actors) {
|
for (let actor of actors) {
|
||||||
await actor.rollCaracCompetence(caracName, competence.name, diff);
|
await actor.doRollCaracCompetence(caracName, competence.name, diff);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return;
|
return;
|
||||||
@@ -398,32 +396,6 @@ export class RdDCommands {
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
async tableMilieu(msg, params, toChat) {
|
|
||||||
if (params && params.length > 0) {
|
|
||||||
const search = Misc.join(params, ' ');
|
|
||||||
const milieux = await game.system.rdd.environnement.findEnvironnementsLike(search);
|
|
||||||
if (milieux.length == 0) {
|
|
||||||
const tous = Object.values(await game.system.rdd.environnement.milieux());
|
|
||||||
return RdDCommands._chatAnswer(msg, `<strong>Aucun milieu correspondant à '${search}'.</strong>
|
|
||||||
<br>Milieux disponibles:
|
|
||||||
<br><ul class="chat-list"><li>${tous.reduce(Misc.joining('</li><li>'))}</li></ul>`);
|
|
||||||
}
|
|
||||||
if (milieux.length > 1) {
|
|
||||||
ui.notifications.warn(`<strong>Plusieurs milieux correspondent à '${search}'</strong>:
|
|
||||||
<br><ul class="chat-list"><li>${milieux.reduce(Misc.joining('</li><li>'))}</li></ul>`);
|
|
||||||
}
|
|
||||||
const tableName = `ressources en ${milieux.reduce(Misc.joining(', '))}`;
|
|
||||||
if (toChat == 'liste') {
|
|
||||||
return await game.system.rdd.environnement.searchToChatMessage(milieux, tableName);
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
const row = await game.system.rdd.environnement.getRandom(milieux, tableName);
|
|
||||||
await CompendiumTableHelpers.tableRowToChatMessage(row, 'Item');
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
getCoutXpComp(msg, params) {
|
getCoutXpComp(msg, params) {
|
||||||
if (params && (params.length == 1 || params.length == 2)) {
|
if (params && (params.length == 1 || params.length == 2)) {
|
||||||
@@ -448,17 +420,27 @@ export class RdDCommands {
|
|||||||
}
|
}
|
||||||
|
|
||||||
async creerSignesDraconiques() {
|
async creerSignesDraconiques() {
|
||||||
|
if (game.user.isGM) {
|
||||||
DialogCreateSigneDraconique.createSigneForActors();
|
DialogCreateSigneDraconique.createSigneForActors();
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
ui.notifications.warn("Seul le MJ est autorisé à utiliser la commande /signe");
|
||||||
|
}
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
async supprimerSignesDraconiquesEphemeres() {
|
async supprimerSignesDraconiquesEphemeres() {
|
||||||
|
if (game.user.isGM) {
|
||||||
game.actors.forEach(actor => {
|
game.actors.forEach(actor => {
|
||||||
const ephemeres = actor.items.filter(item => item.type = 'signedraconique' && item.system.ephemere);
|
const ephemeres = actor.items.filter(item => item.type = 'signedraconique' && item.system.ephemere);
|
||||||
if (ephemeres.length > 0) {
|
if (ephemeres.length > 0) {
|
||||||
actor.deleteEmbeddedDocuments("Item", ephemeres.map(item => item.id));
|
actor.deleteEmbeddedDocuments("Item", ephemeres.map(item => item.id));
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
ui.notifications.warn("Seul le MJ est autorisé à utiliser la commande /signe");
|
||||||
|
}
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -481,13 +463,14 @@ export class RdDCommands {
|
|||||||
let name = params[params.length - 1];
|
let name = params[params.length - 1];
|
||||||
if (name == undefined) {
|
if (name == undefined) {
|
||||||
for (let actor of game.actors) {
|
for (let actor of game.actors) {
|
||||||
actor.distribuerStress('stress', stress, motif);
|
// TODO: ne plus stresser les entités de cauchemar!
|
||||||
|
await actor.distribuerStress('stress', stress, motif);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
//console.log(stressValue, nomJoueur);
|
//console.log(stressValue, nomJoueur);
|
||||||
let actor = Misc.findActor(name, game.actors.filter(it => it.hasPlayerOwner)) ?? Misc.findPlayer(name)?.character
|
let actor = Misc.findActor(name, game.actors.filter(it => it.hasPlayerOwner)) ?? Misc.findPlayer(name)?.character
|
||||||
if (actor) {
|
if (actor) {
|
||||||
actor.distribuerStress('stress', stress, motif);
|
await actor.distribuerStress('stress', stress, motif);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
ui.notifications.warn(`Pas de personnage ou de joueur correspondant à ${name}!`);
|
ui.notifications.warn(`Pas de personnage ou de joueur correspondant à ${name}!`);
|
||||||
@@ -501,5 +484,11 @@ export class RdDCommands {
|
|||||||
return await RdDMeteo.getMeteo();
|
return await RdDMeteo.getMeteo();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
async tirage() {
|
||||||
|
FenetreRechercheTirage.create();
|
||||||
|
}
|
||||||
|
async sommeil() {
|
||||||
|
DialogChateauDormant.create();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1,8 +1,8 @@
|
|||||||
import { SYSTEM_RDD } from "./constants.js";
|
import { SYSTEM_RDD } from "./constants.js";
|
||||||
|
|
||||||
export class RddCompendiumOrganiser {
|
export class RdDCompendiumOrganiser {
|
||||||
static init() {
|
static init() {
|
||||||
Hooks.on('renderCompendium', async (pack, html, compendiumData) => RddCompendiumOrganiser.onRenderCompendium(pack, html, compendiumData))
|
Hooks.on('renderCompendium', async (pack, html, compendiumData) => RdDCompendiumOrganiser.onRenderCompendium(pack, html, compendiumData))
|
||||||
}
|
}
|
||||||
|
|
||||||
static async onRenderCompendium(compendium, html, compendiumData) {
|
static async onRenderCompendium(compendium, html, compendiumData) {
|
||||||
@@ -10,14 +10,14 @@ export class RddCompendiumOrganiser {
|
|||||||
const pack = compendium.collection
|
const pack = compendium.collection
|
||||||
if (pack.metadata.system === SYSTEM_RDD) {
|
if (pack.metadata.system === SYSTEM_RDD) {
|
||||||
html.find('.directory-item').each((i, element) => {
|
html.find('.directory-item').each((i, element) => {
|
||||||
RddCompendiumOrganiser.setEntityTypeName(pack, element);
|
RdDCompendiumOrganiser.setEntityTypeName(pack, element);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static async setEntityTypeName(pack, element) {
|
static async setEntityTypeName(pack, element) {
|
||||||
const label = RddCompendiumOrganiser.getEntityTypeLabel(await pack.getDocument(element.dataset.documentId));
|
const label = RdDCompendiumOrganiser.getEntityTypeLabel(await pack.getDocument(element.dataset.documentId));
|
||||||
RddCompendiumOrganiser.insertEntityType(element, label);
|
RdDCompendiumOrganiser.insertEntityType(element, label);
|
||||||
}
|
}
|
||||||
|
|
||||||
static insertEntityType(element, label) {
|
static insertEntityType(element, label) {
|
||||||
|
|||||||
@@ -1,7 +1,6 @@
|
|||||||
import { RdDUtility } from "./rdd-utility.js";
|
|
||||||
import { RdDCalendrier } from "./rdd-calendrier.js";
|
|
||||||
import { Grammar } from "./grammar.js";
|
import { Grammar } from "./grammar.js";
|
||||||
import { SystemCompendiums } from "./settings/system-compendiums.js";
|
import { SystemCompendiums } from "./settings/system-compendiums.js";
|
||||||
|
import { RdDTimestamp } from "./rdd-timestamp.js";
|
||||||
|
|
||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
export class RdDHerbes extends Item {
|
export class RdDHerbes extends Item {
|
||||||
@@ -29,7 +28,7 @@ export class RdDHerbes extends Item {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
static async updatePotionData(formData) {
|
static async addPotionFormData(formData) {
|
||||||
formData.isSoins = formData.system.categorie.includes('Soin');
|
formData.isSoins = formData.system.categorie.includes('Soin');
|
||||||
formData.isRepos = formData.system.categorie.includes('Repos');
|
formData.isRepos = formData.system.categorie.includes('Repos');
|
||||||
if (formData.isSoins) {
|
if (formData.isSoins) {
|
||||||
@@ -40,9 +39,8 @@ export class RdDHerbes extends Item {
|
|||||||
}
|
}
|
||||||
formData.herbesSoins = RdDHerbes.buildHerbesList(this.herbesSoins, 12);
|
formData.herbesSoins = RdDHerbes.buildHerbesList(this.herbesSoins, 12);
|
||||||
formData.herbesRepos = RdDHerbes.buildHerbesList(this.herbesRepos, 7);
|
formData.herbesRepos = RdDHerbes.buildHerbesList(this.herbesRepos, 7);
|
||||||
formData.jourMoisOptions = RdDCalendrier.buildJoursMois();
|
formData.dateActuelle = game.system.rdd.calendrier.dateCourante();
|
||||||
formData.dateActuelle = game.system.rdd.calendrier.getDateFromIndex();
|
formData.enchantement = RdDTimestamp.splitIndexDate(formData.system.prdate);
|
||||||
formData.splitDate = game.system.rdd.calendrier.getDayMonthFromIndex(formData.system.prdate);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
|
|||||||
@@ -1,42 +1,63 @@
|
|||||||
import { SYSTEM_RDD, SYSTEM_SOCKET_ID } from "./constants.js";
|
import { SYSTEM_RDD, SYSTEM_SOCKET_ID } from "./constants.js";
|
||||||
import { RdDActor } from "./actor.js";
|
import { Migrations } from './migrations.js';
|
||||||
import { RdDItemSheet } from "./item-sheet.js";
|
|
||||||
import { RdDActorSheet } from "./actor-sheet.js";
|
|
||||||
import { RdDActorCreatureSheet } from "./actor-creature-sheet.js";
|
|
||||||
import { RdDActorVehiculeSheet } from "./actor-vehicule-sheet.js";
|
|
||||||
import { RdDActorEntiteSheet } from "./actor-entite-sheet.js";
|
|
||||||
import { RdDUtility } from "./rdd-utility.js";
|
import { RdDUtility } from "./rdd-utility.js";
|
||||||
import { TMRUtility } from "./tmr-utility.js";
|
import { TMRUtility } from "./tmr-utility.js";
|
||||||
|
import { TMRRencontres } from "./tmr-rencontres.js";
|
||||||
import { RdDCalendrier } from "./rdd-calendrier.js";
|
import { RdDCalendrier } from "./rdd-calendrier.js";
|
||||||
|
import { RdDTimestamp } from "./rdd-timestamp.js";
|
||||||
|
import { DialogChronologie } from "./dialog-chronologie.js";
|
||||||
|
|
||||||
import { RdDResolutionTable } from "./rdd-resolution-table.js";
|
import { RdDResolutionTable } from "./rdd-resolution-table.js";
|
||||||
import { RdDTokenHud } from "./rdd-token-hud.js";
|
import { RdDTokenHud } from "./rdd-token-hud.js";
|
||||||
import { RdDCommands } from "./rdd-commands.js";
|
import { RdDCommands } from "./rdd-commands.js";
|
||||||
import { RdDCombatManager, RdDCombat } from "./rdd-combat.js";
|
import { RdDCombatManager, RdDCombat } from "./rdd-combat.js";
|
||||||
import { ChatUtility } from "./chat-utility.js";
|
import { ChatUtility } from "./chat-utility.js";
|
||||||
import { StatusEffects } from "./settings/status-effects.js";
|
import { StatusEffects } from "./settings/status-effects.js";
|
||||||
import { RddCompendiumOrganiser } from "./rdd-compendium-organiser.js";
|
import { RdDCompendiumOrganiser } from "./rdd-compendium-organiser.js";
|
||||||
import { ReglesOptionelles } from "./settings/regles-optionelles.js";
|
import { ReglesOptionelles } from "./settings/regles-optionelles.js";
|
||||||
import { RdDHotbar } from "./rdd-hotbar-drop.js"
|
import { RdDHotbar } from "./rdd-hotbar-drop.js"
|
||||||
import { EffetsDraconiques } from "./tmr/effets-draconiques.js";
|
import { EffetsDraconiques } from "./tmr/effets-draconiques.js";
|
||||||
import { RdDHerbes } from "./rdd-herbes.js";
|
import { RdDHerbes } from "./rdd-herbes.js";
|
||||||
import { RdDItem } from "./item.js";
|
|
||||||
import { RdDDice } from "./rdd-dice.js";
|
import { RdDDice } from "./rdd-dice.js";
|
||||||
import { RdDPossession } from "./rdd-possession.js";
|
import { RdDPossession } from "./rdd-possession.js";
|
||||||
import { RdDSigneDraconiqueItemSheet } from "./item-signedraconique-sheet.js";
|
|
||||||
import { Misc } from "./misc.js";
|
import { Misc } from "./misc.js";
|
||||||
import { Migrations } from './migrations.js';
|
|
||||||
import { DialogChronologie } from "./dialog-chronologie.js";
|
|
||||||
import { SystemCompendiums } from "./settings/system-compendiums.js";
|
import { SystemCompendiums } from "./settings/system-compendiums.js";
|
||||||
import { RdDRencontreItemSheet } from "./item-rencontre-sheet.js";
|
|
||||||
import { TMRRencontres } from "./tmr-rencontres.js";
|
|
||||||
import { RdDHerbeItemSheet } from "./item-herbe-sheet.js";
|
|
||||||
import { Environnement } from "./environnement.js";
|
import { Environnement } from "./environnement.js";
|
||||||
import { RdDIngredientItemSheet } from "./item-ingredient-sheet.js";
|
|
||||||
import { RdDFauneItemSheet } from "./item-faune-sheet.js";
|
import { RdDActor } from "./actor.js";
|
||||||
import { RdDConteneurItemSheet } from "./item-conteneur-sheet.js";
|
|
||||||
import { RdDServiceItemSheet } from "./item-service-sheet.js";
|
|
||||||
import { RdDItemService } from "./item-service.js";
|
|
||||||
import { RdDBaseActor } from "./actor/base-actor.js";
|
import { RdDBaseActor } from "./actor/base-actor.js";
|
||||||
|
import { RdDCommerce } from "./actor/commerce.js";
|
||||||
|
import { RdDActorSheet } from "./actor-sheet.js";
|
||||||
|
import { RdDCommerceSheet } from "./actor/commerce-sheet.js";
|
||||||
|
import { RdDActorCreatureSheet } from "./actor-creature-sheet.js";
|
||||||
|
import { RdDActorVehiculeSheet } from "./actor-vehicule-sheet.js";
|
||||||
|
import { RdDActorEntiteSheet } from "./actor-entite-sheet.js";
|
||||||
|
|
||||||
|
import { RdDItem } from "./item.js";
|
||||||
|
import { RdDItemBlessure } from "./item/blessure.js";
|
||||||
|
import { RdDItemService } from "./item/service.js";
|
||||||
|
import { RdDItemMaladie } from "./item/maladie.js";
|
||||||
|
import { RdDItemPoison } from "./item/poison.js";
|
||||||
|
import { RdDItemSigneDraconique } from "./item/signedraconique.js";
|
||||||
|
import { RdDItemQueue } from "./item/queue.js";
|
||||||
|
import { RdDItemOmbre } from "./item/ombre.js";
|
||||||
|
import { RdDItemSouffle } from "./item/souffle.js";
|
||||||
|
import { RdDRencontre } from "./item/rencontre.js";
|
||||||
|
|
||||||
|
import { RdDItemSheet } from "./item-sheet.js";
|
||||||
|
import { RdDBlessureItemSheet } from "./item/sheet-blessure.js";
|
||||||
|
import { RdDServiceItemSheet } from "./item/sheet-service.js";
|
||||||
|
import { RdDRencontreItemSheet } from "./item/sheet-rencontre.js";
|
||||||
|
import { RdDHerbeItemSheet } from "./item/sheet-herbe.js";
|
||||||
|
import { RdDPlanteItemSheet } from "./item/sheet-plante.js";
|
||||||
|
import { RdDIngredientItemSheet } from "./item/sheet-ingredient.js";
|
||||||
|
import { RdDFauneItemSheet } from "./item/sheet-faune.js";
|
||||||
|
import { RdDConteneurItemSheet } from "./item/sheet-conteneur.js";
|
||||||
|
import { RdDSigneDraconiqueItemSheet } from "./item/sheet-signedraconique.js";
|
||||||
|
import { RdDItemInventaireSheet } from "./item/sheet-base-inventaire.js";
|
||||||
|
import { AppAstrologie } from "./sommeil/app-astrologie.js";
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* RdD system
|
* RdD system
|
||||||
@@ -55,9 +76,18 @@ export class SystemReveDeDragon {
|
|||||||
this.RdDUtility = RdDUtility;
|
this.RdDUtility = RdDUtility;
|
||||||
this.RdDHotbar = RdDHotbar;
|
this.RdDHotbar = RdDHotbar;
|
||||||
this.itemClasses = {
|
this.itemClasses = {
|
||||||
service: RdDItemService
|
blessure: RdDItemBlessure,
|
||||||
|
maladie: RdDItemMaladie,
|
||||||
|
ombre: RdDItemOmbre,
|
||||||
|
poison: RdDItemPoison,
|
||||||
|
queue: RdDItemQueue,
|
||||||
|
rencontre: RdDRencontre,
|
||||||
|
service: RdDItemService,
|
||||||
|
signedraconique: RdDItemSigneDraconique,
|
||||||
|
souffle: RdDItemSouffle,
|
||||||
}
|
}
|
||||||
this.actorClasses = {
|
this.actorClasses = {
|
||||||
|
commerce: RdDCommerce,
|
||||||
creature: RdDActor,
|
creature: RdDActor,
|
||||||
entite: RdDActor,
|
entite: RdDActor,
|
||||||
personnage: RdDActor,
|
personnage: RdDActor,
|
||||||
@@ -70,6 +100,8 @@ export class SystemReveDeDragon {
|
|||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
async onInit() {
|
async onInit() {
|
||||||
game.system.rdd = this;
|
game.system.rdd = this;
|
||||||
|
this.AppAstrologie = AppAstrologie;
|
||||||
|
|
||||||
|
|
||||||
console.log(`Initializing Reve de Dragon System`);
|
console.log(`Initializing Reve de Dragon System`);
|
||||||
|
|
||||||
@@ -77,13 +109,106 @@ export class SystemReveDeDragon {
|
|||||||
RdDUtility.preloadHandlebarsTemplates();
|
RdDUtility.preloadHandlebarsTemplates();
|
||||||
|
|
||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
|
this.initSystemSettings();
|
||||||
|
|
||||||
|
/* -------------------------------------------- */
|
||||||
|
// Set an initiative formula for the system
|
||||||
|
CONFIG.Combat.initiative = {
|
||||||
|
formula: "1+(1d6/10)",
|
||||||
|
decimals: 2
|
||||||
|
};
|
||||||
|
|
||||||
|
/* -------------------------------------------- */
|
||||||
|
game.socket.on(SYSTEM_SOCKET_ID, async (sockmsg) => {
|
||||||
|
console.log(">>>>> MSG RECV", sockmsg);
|
||||||
|
try {
|
||||||
|
RdDUtility.onSocketMessage(sockmsg);
|
||||||
|
RdDCombat.onSocketMessage(sockmsg);
|
||||||
|
ChatUtility.onSocketMessage(sockmsg);
|
||||||
|
RdDBaseActor.onSocketMessage(sockmsg);
|
||||||
|
} catch (e) {
|
||||||
|
console.error('game.socket.on(SYSTEM_SOCKET_ID) Exception: ', sockmsg, ' => ', e)
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
/* -------------------------------------------- */
|
||||||
|
// Define custom Entity classes
|
||||||
|
CONFIG.Actor.documentClass = RdDBaseActor;
|
||||||
|
CONFIG.Item.documentClass = RdDItem;
|
||||||
|
CONFIG.RDD = {
|
||||||
|
resolutionTable: RdDResolutionTable.resolutionTable,
|
||||||
|
carac_array: RdDUtility.getCaracArray(),
|
||||||
|
ajustementsConditions: RdDUtility.getAjustementsConditions(),
|
||||||
|
difficultesLibres: RdDUtility.getDifficultesLibres()
|
||||||
|
}
|
||||||
|
|
||||||
|
/* -------------------------------------------- */
|
||||||
|
// Register sheet application classes
|
||||||
|
Actors.unregisterSheet("core", ActorSheet);
|
||||||
|
Actors.registerSheet(SYSTEM_RDD, RdDCommerceSheet, { types: ["commerce"], makeDefault: true });
|
||||||
|
Actors.registerSheet(SYSTEM_RDD, RdDActorSheet, { types: ["personnage"], makeDefault: true });
|
||||||
|
Actors.registerSheet(SYSTEM_RDD, RdDActorCreatureSheet, { types: ["creature"], makeDefault: true });
|
||||||
|
Actors.registerSheet(SYSTEM_RDD, RdDActorVehiculeSheet, { types: ["vehicule"], makeDefault: true });
|
||||||
|
Actors.registerSheet(SYSTEM_RDD, RdDActorEntiteSheet, { types: ["entite"], makeDefault: true });
|
||||||
|
Items.unregisterSheet("core", ItemSheet);
|
||||||
|
|
||||||
|
RdDItemSheet.register(RdDSigneDraconiqueItemSheet);
|
||||||
|
RdDItemSheet.register(RdDRencontreItemSheet);
|
||||||
|
RdDItemSheet.register(RdDConteneurItemSheet);
|
||||||
|
RdDItemSheet.register(RdDHerbeItemSheet);
|
||||||
|
RdDItemSheet.register(RdDFauneItemSheet);
|
||||||
|
RdDItemSheet.register(RdDPlanteItemSheet);
|
||||||
|
RdDItemSheet.register(RdDIngredientItemSheet);
|
||||||
|
RdDItemSheet.register(RdDServiceItemSheet);
|
||||||
|
RdDItemSheet.register(RdDBlessureItemSheet);
|
||||||
|
|
||||||
|
Items.registerSheet(SYSTEM_RDD, RdDItemInventaireSheet, {
|
||||||
|
types: [
|
||||||
|
"objet", "arme", "armure", "livre", "potion", "munition",
|
||||||
|
"monnaie", "nourritureboisson", "gemme",
|
||||||
|
], makeDefault: true
|
||||||
|
});
|
||||||
|
Items.registerSheet(SYSTEM_RDD, RdDItemSheet, {
|
||||||
|
types: [
|
||||||
|
"competence", "competencecreature",
|
||||||
|
"recettealchimique", "musique", "chant", "danse", "jeu", "recettecuisine", "oeuvre",
|
||||||
|
"meditation", "queue", "ombre", "souffle", "tete", "casetmr", "sort", "sortreserve",
|
||||||
|
"nombreastral", "tache", "maladie", "poison", "possession",
|
||||||
|
"tarot", "extraitpoetique"
|
||||||
|
], makeDefault: true
|
||||||
|
});
|
||||||
|
CONFIG.Combat.documentClass = RdDCombatManager;
|
||||||
|
|
||||||
|
// préparation des différents modules
|
||||||
|
RdDTimestamp.init();
|
||||||
|
SystemCompendiums.init();
|
||||||
|
DialogChronologie.init();
|
||||||
|
ReglesOptionelles.init();
|
||||||
|
RdDUtility.init();
|
||||||
|
RdDDice.init();
|
||||||
|
RdDCommands.init();
|
||||||
|
RdDCombatManager.init();
|
||||||
|
RdDTokenHud.init();
|
||||||
|
RdDBaseActor.init();
|
||||||
|
RdDCompendiumOrganiser.init();
|
||||||
|
EffetsDraconiques.init()
|
||||||
|
TMRUtility.init();
|
||||||
|
RdDHotbar.initDropbar();
|
||||||
|
RdDPossession.init();
|
||||||
|
TMRRencontres.init();
|
||||||
|
Environnement.init();
|
||||||
|
|
||||||
|
Hooks.once('ready', () => this.onReady());
|
||||||
|
}
|
||||||
|
|
||||||
|
initSystemSettings() {
|
||||||
game.settings.register(SYSTEM_RDD, "accorder-entite-cauchemar", {
|
game.settings.register(SYSTEM_RDD, "accorder-entite-cauchemar", {
|
||||||
name: "Accorder le rêve aux entités",
|
name: "Accorder le rêve aux entités",
|
||||||
hint: "A quel moment les personnages doivent accorder leur rêve aux entités de cauchemar",
|
hint: "A quel moment les personnages doivent accorder leur rêve aux entités de cauchemar",
|
||||||
scope: "world",
|
scope: "world",
|
||||||
config: true,
|
config: true,
|
||||||
type: String,
|
type: String,
|
||||||
choices: { // If choices are defined, the resulting setting will be a select menu
|
choices: {
|
||||||
"avant-attaque": "Avant l'attaque",
|
"avant-attaque": "Avant l'attaque",
|
||||||
"avant-defense": "Avant la défense",
|
"avant-defense": "Avant la défense",
|
||||||
"avant-encaissement": "Avant l'encaissement",
|
"avant-encaissement": "Avant l'encaissement",
|
||||||
@@ -91,15 +216,6 @@ export class SystemReveDeDragon {
|
|||||||
default: "avant-encaissement"
|
default: "avant-encaissement"
|
||||||
});
|
});
|
||||||
|
|
||||||
/* -------------------------------------------- */
|
|
||||||
game.settings.register(SYSTEM_RDD, "calendrier", {
|
|
||||||
name: "calendrier",
|
|
||||||
scope: "world",
|
|
||||||
config: false,
|
|
||||||
default: RdDCalendrier.createCalendrierInitial(),
|
|
||||||
type: Object
|
|
||||||
});
|
|
||||||
|
|
||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
game.settings.register(SYSTEM_RDD, "liste-nombre-astral", {
|
game.settings.register(SYSTEM_RDD, "liste-nombre-astral", {
|
||||||
name: "liste-nombre-astral",
|
name: "liste-nombre-astral",
|
||||||
@@ -128,6 +244,7 @@ export class SystemReveDeDragon {
|
|||||||
default: true,
|
default: true,
|
||||||
type: Boolean
|
type: Boolean
|
||||||
});
|
});
|
||||||
|
|
||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
game.settings.register(SYSTEM_RDD, "activer-sons-audio", {
|
game.settings.register(SYSTEM_RDD, "activer-sons-audio", {
|
||||||
name: "Activer les bruitages intégrés",
|
name: "Activer les bruitages intégrés",
|
||||||
@@ -151,88 +268,6 @@ export class SystemReveDeDragon {
|
|||||||
},
|
},
|
||||||
default: "aucun"
|
default: "aucun"
|
||||||
});
|
});
|
||||||
|
|
||||||
/* -------------------------------------------- */
|
|
||||||
// Set an initiative formula for the system
|
|
||||||
CONFIG.Combat.initiative = {
|
|
||||||
formula: "1+(1d6/10)",
|
|
||||||
decimals: 2
|
|
||||||
};
|
|
||||||
|
|
||||||
/* -------------------------------------------- */
|
|
||||||
game.socket.on(SYSTEM_SOCKET_ID, async (sockmsg) => {
|
|
||||||
console.log(">>>>> MSG RECV", sockmsg);
|
|
||||||
try {
|
|
||||||
RdDUtility.onSocketMessage(sockmsg);
|
|
||||||
RdDCombat.onSocketMessage(sockmsg);
|
|
||||||
ChatUtility.onSocketMessage(sockmsg);
|
|
||||||
RdDBaseActor.onSocketMessage(sockmsg);
|
|
||||||
} catch (e) {
|
|
||||||
console.error('game.socket.on(SYSTEM_SOCKET_ID) Exception: ', sockmsg, ' => ', e)
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
/* -------------------------------------------- */
|
|
||||||
// Define custom Entity classes
|
|
||||||
CONFIG.Actor.documentClass = RdDActor;
|
|
||||||
CONFIG.Item.documentClass = RdDItem;
|
|
||||||
CONFIG.RDD = {
|
|
||||||
resolutionTable: RdDResolutionTable.resolutionTable,
|
|
||||||
carac_array: RdDUtility.getCaracArray(),
|
|
||||||
ajustementsConditions: RdDUtility.getAjustementsConditions(),
|
|
||||||
difficultesLibres: RdDUtility.getDifficultesLibres()
|
|
||||||
}
|
|
||||||
|
|
||||||
/* -------------------------------------------- */
|
|
||||||
// Register sheet application classes
|
|
||||||
Actors.unregisterSheet("core", ActorSheet);
|
|
||||||
Actors.registerSheet(SYSTEM_RDD, RdDActorSheet, { types: ["personnage"], makeDefault: true });
|
|
||||||
Actors.registerSheet(SYSTEM_RDD, RdDActorCreatureSheet, { types: ["creature"], makeDefault: true });
|
|
||||||
Actors.registerSheet(SYSTEM_RDD, RdDActorVehiculeSheet, { types: ["vehicule"], makeDefault: true });
|
|
||||||
Actors.registerSheet(SYSTEM_RDD, RdDActorEntiteSheet, { types: ["entite"], makeDefault: true });
|
|
||||||
Items.unregisterSheet("core", ItemSheet);
|
|
||||||
|
|
||||||
RdDItemSheet.register(RdDSigneDraconiqueItemSheet);
|
|
||||||
RdDItemSheet.register(RdDRencontreItemSheet);
|
|
||||||
RdDItemSheet.register(RdDConteneurItemSheet);
|
|
||||||
RdDItemSheet.register(RdDHerbeItemSheet);
|
|
||||||
RdDItemSheet.register(RdDFauneItemSheet);
|
|
||||||
RdDItemSheet.register(RdDIngredientItemSheet);
|
|
||||||
RdDItemSheet.register(RdDServiceItemSheet);
|
|
||||||
|
|
||||||
Items.registerSheet(SYSTEM_RDD, RdDItemSheet, {
|
|
||||||
types: [
|
|
||||||
"competence", "competencecreature",
|
|
||||||
"recettealchimique", "musique", "chant", "danse", "jeu", "recettecuisine", "oeuvre",
|
|
||||||
"objet", "arme", "armure", "livre", "potion", "munition",
|
|
||||||
"monnaie", "nourritureboisson", "gemme",
|
|
||||||
"meditation", "queue", "ombre", "souffle", "tete", "casetmr", "sort", "sortreserve",
|
|
||||||
"nombreastral", "tache", "maladie", "poison", "possession",
|
|
||||||
"tarot", "extraitpoetique"
|
|
||||||
], makeDefault: true
|
|
||||||
});
|
|
||||||
CONFIG.Combat.documentClass = RdDCombatManager;
|
|
||||||
|
|
||||||
// préparation des différents modules
|
|
||||||
SystemCompendiums.init();
|
|
||||||
DialogChronologie.init();
|
|
||||||
ReglesOptionelles.init();
|
|
||||||
RdDUtility.init();
|
|
||||||
RdDDice.init();
|
|
||||||
RdDCommands.init();
|
|
||||||
RdDCombat.init();
|
|
||||||
RdDCombatManager.init();
|
|
||||||
RdDTokenHud.init();
|
|
||||||
RdDBaseActor.init();
|
|
||||||
RddCompendiumOrganiser.init();
|
|
||||||
EffetsDraconiques.init()
|
|
||||||
TMRUtility.init();
|
|
||||||
RdDHotbar.initDropbar();
|
|
||||||
RdDPossession.init();
|
|
||||||
TMRRencontres.init();
|
|
||||||
Environnement.init();
|
|
||||||
|
|
||||||
Hooks.once('ready', () => this.onReady());
|
|
||||||
}
|
}
|
||||||
|
|
||||||
async onReady() {
|
async onReady() {
|
||||||
@@ -245,8 +280,8 @@ export class SystemReveDeDragon {
|
|||||||
let sidebar = document.getElementById("sidebar");
|
let sidebar = document.getElementById("sidebar");
|
||||||
sidebar.style.width = "min-content";
|
sidebar.style.width = "min-content";
|
||||||
}
|
}
|
||||||
|
|
||||||
if (Misc.isUniqueConnectedGM()) {
|
if (Misc.isUniqueConnectedGM()) {
|
||||||
|
game.system.rdd.calendrier = new RdDCalendrier();
|
||||||
new Migrations().migrate();
|
new Migrations().migrate();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -255,13 +290,7 @@ export class SystemReveDeDragon {
|
|||||||
RdDDice.onReady();
|
RdDDice.onReady();
|
||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
/* Affiche/Init le calendrier */
|
/* Affiche/Init le calendrier */
|
||||||
let calendrier = new RdDCalendrier();
|
game.system.rdd.calendrier = new RdDCalendrier().display();
|
||||||
let templatePath = "systems/foundryvtt-reve-de-dragon/templates/calendar-template.html";
|
|
||||||
let templateData = {};
|
|
||||||
renderTemplate(templatePath, templateData).then(html => {
|
|
||||||
calendrier.render(true);
|
|
||||||
});
|
|
||||||
game.system.rdd.calendrier = calendrier; // Reference;
|
|
||||||
|
|
||||||
// Avertissement si joueur sans personnage
|
// Avertissement si joueur sans personnage
|
||||||
if (!game.user.isGM && game.user.character == undefined) {
|
if (!game.user.isGM && game.user.character == undefined) {
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
import { RdDActor } from "./actor.js";
|
import { RdDBaseActor } from "./actor/base-actor.js";
|
||||||
import { Misc } from "./misc.js";
|
import { Misc } from "./misc.js";
|
||||||
import { RdDDice } from "./rdd-dice.js";
|
import { RdDDice } from "./rdd-dice.js";
|
||||||
|
|
||||||
@@ -20,7 +20,7 @@ export class RdDNameGen {
|
|||||||
|
|
||||||
static async onCreerActeur(event) {
|
static async onCreerActeur(event) {
|
||||||
const button = event.currentTarget;
|
const button = event.currentTarget;
|
||||||
await RdDActor.create({
|
await RdDBaseActor.create({
|
||||||
name: button.attributes['data-nom'].value,
|
name: button.attributes['data-nom'].value,
|
||||||
type: button.attributes['data-type'].value
|
type: button.attributes['data-type'].value
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -195,17 +195,6 @@ export class RdDResolutionTable {
|
|||||||
return Math.max(Math.floor(carac * (diff + 10) / 2), 1);
|
return Math.max(Math.floor(carac * (diff + 10) / 2), 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* -------------------------------------------- */
|
|
||||||
static isAjustementAstrologique(rollData) {
|
|
||||||
if (rollData.selectedCarac?.label.toLowerCase().includes('chance')) {
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
if (rollData.selectedSort?.system.isrituel) {
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
static isEchec(rollData) {
|
static isEchec(rollData) {
|
||||||
switch (rollData.surprise) {
|
switch (rollData.surprise) {
|
||||||
@@ -294,12 +283,9 @@ export class RdDResolutionTable {
|
|||||||
carac: carac,
|
carac: carac,
|
||||||
difficulte: level,
|
difficulte: level,
|
||||||
min: minLevel,
|
min: minLevel,
|
||||||
rows: RdDResolutionTable.incrementalArray(minCarac, maxCarac),
|
rows: Misc.intArray(minCarac, maxCarac+1),
|
||||||
cols: RdDResolutionTable.incrementalArray(minLevel, maxLevel)
|
cols: Misc.intArray(minLevel, maxLevel+1)
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
static incrementalArray(min, max) {
|
|
||||||
return Array.from(Array(max-min+1).keys()).map(i=>i+min)
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -30,9 +30,9 @@ export class RdDEncaisser extends Dialog {
|
|||||||
};
|
};
|
||||||
}
|
}
|
||||||
else if (actor.isEntite([ENTITE_BLURETTE, ENTITE_INCARNE])) {
|
else if (actor.isEntite([ENTITE_BLURETTE, ENTITE_INCARNE])) {
|
||||||
dialogConf.default = "cauchemar"
|
dialogConf.default = "entiteincarnee"
|
||||||
dialogConf.buttons = {
|
dialogConf.buttons = {
|
||||||
"cauchemar": { label: "Cauchemar", callback: html => this.performEncaisser("cauchemar") }
|
"entiteincarnee": { label: "Entité incarnée", callback: html => this.performEncaisser("entiteincarnee") }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -70,7 +70,6 @@ export class RdDEncaisser extends Dialog {
|
|||||||
total: Number(this.modifier),
|
total: Number(this.modifier),
|
||||||
ajustement: Number(this.modifier),
|
ajustement: Number(this.modifier),
|
||||||
encaisserSpecial: this.encaisserSpecial,
|
encaisserSpecial: this.encaisserSpecial,
|
||||||
loc: { result: 0, label: "" },
|
|
||||||
mortalite: mortalite
|
mortalite: mortalite
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -276,11 +276,11 @@ export class RdDRoll extends Dialog {
|
|||||||
const diffVariable = RdDItemSort.isDifficulteVariable(sort);
|
const diffVariable = RdDItemSort.isDifficulteVariable(sort);
|
||||||
const coutVariable = RdDItemSort.isCoutVariable(sort);
|
const coutVariable = RdDItemSort.isCoutVariable(sort);
|
||||||
|
|
||||||
HtmlUtility._showControlWhen(this.html.find(".div-sort-non-rituel"), !sort.system.isrituel);
|
HtmlUtility.showControlWhen(this.html.find(".div-sort-non-rituel"), !sort.system.isrituel);
|
||||||
HtmlUtility._showControlWhen(this.html.find(".div-sort-difficulte-var"), diffVariable);
|
HtmlUtility.showControlWhen(this.html.find(".div-sort-difficulte-var"), diffVariable);
|
||||||
HtmlUtility._showControlWhen(this.html.find(".div-sort-difficulte-fixe"), !diffVariable);
|
HtmlUtility.showControlWhen(this.html.find(".div-sort-difficulte-fixe"), !diffVariable);
|
||||||
HtmlUtility._showControlWhen(this.html.find(".div-sort-ptreve-var"), coutVariable);
|
HtmlUtility.showControlWhen(this.html.find(".div-sort-ptreve-var"), coutVariable);
|
||||||
HtmlUtility._showControlWhen(this.html.find(".div-sort-ptreve-fixe"), !coutVariable);
|
HtmlUtility.showControlWhen(this.html.find(".div-sort-ptreve-fixe"), !coutVariable);
|
||||||
}
|
}
|
||||||
|
|
||||||
async setSelectedSigneDraconique(signe) {
|
async setSelectedSigneDraconique(signe) {
|
||||||
@@ -311,11 +311,11 @@ export class RdDRoll extends Dialog {
|
|||||||
const resolutionTable = await RdDResolutionTable.buildHTMLTable(RdDResolutionTable.subTable(rollData.caracValue, rollData.finalLevel))
|
const resolutionTable = await RdDResolutionTable.buildHTMLTable(RdDResolutionTable.subTable(rollData.caracValue, rollData.finalLevel))
|
||||||
const adjustements = await this.buildAjustements(rollData);
|
const adjustements = await this.buildAjustements(rollData);
|
||||||
|
|
||||||
HtmlUtility._showControlWhen(this.html.find(".use-encTotal"), rollData.ajustements.encTotal.visible && RdDCarac.isAgiliteOuDerivee(rollData.selectedCarac));
|
HtmlUtility.showControlWhen(this.html.find(".use-encTotal"), rollData.ajustements.encTotal.visible && RdDCarac.isAgiliteOuDerobee(rollData.selectedCarac));
|
||||||
HtmlUtility._showControlWhen(this.html.find(".use-surenc"), rollData.ajustements.surenc.visible && RdDCarac.isActionPhysique(rollData.selectedCarac));
|
HtmlUtility.showControlWhen(this.html.find(".use-surenc"), rollData.ajustements.surenc.visible && RdDCarac.isActionPhysique(rollData.selectedCarac));
|
||||||
HtmlUtility._showControlWhen(this.html.find(".utilisation-moral"), rollData.use.appelAuMoral);
|
HtmlUtility.showControlWhen(this.html.find(".utilisation-moral"), rollData.use.appelAuMoral);
|
||||||
HtmlUtility._showControlWhen(this.html.find(".diffMoral"), rollData.ajustements.moralTotal.used);
|
HtmlUtility.showControlWhen(this.html.find(".diffMoral"), rollData.ajustements.moralTotal.used);
|
||||||
HtmlUtility._showControlWhen(this.html.find(".divAppelAuMoral"), rollData.use.appelAuMoral);
|
HtmlUtility.showControlWhen(this.html.find(".divAppelAuMoral"), rollData.use.appelAuMoral);
|
||||||
|
|
||||||
// Mise à jour valeurs
|
// Mise à jour valeurs
|
||||||
this.html.find(".dialog-roll-title").text(this._getTitle(rollData));
|
this.html.find(".dialog-roll-title").text(this._getTitle(rollData));
|
||||||
|
|||||||
@@ -1,7 +1,25 @@
|
|||||||
import { DialogSplitItem } from "./dialog-split-item.js";
|
import { DialogSplitItem } from "./dialog-split-item.js";
|
||||||
|
import { RdDItem } from "./item.js";
|
||||||
|
|
||||||
export class RdDSheetUtility {
|
export class RdDSheetUtility {
|
||||||
|
|
||||||
|
static mergeDocumentRights(options, document, editable) {
|
||||||
|
const userRightLevel = game.user.isGM
|
||||||
|
? CONST.DOCUMENT_OWNERSHIP_LEVELS.OWNER
|
||||||
|
: document.getUserLevel(game.user);
|
||||||
|
let newOptions = {
|
||||||
|
isGM: game.user.isGM,
|
||||||
|
isOwned: document.parent ? true : false,
|
||||||
|
editable: editable,
|
||||||
|
cssClass: editable ? "editable" : "locked",
|
||||||
|
isLimited: userRightLevel >= CONST.DOCUMENT_OWNERSHIP_LEVELS.LIMITED,
|
||||||
|
isObserver: userRightLevel >= CONST.DOCUMENT_OWNERSHIP_LEVELS.OBSERVER,
|
||||||
|
isOwner: userRightLevel >= CONST.DOCUMENT_OWNERSHIP_LEVELS.OWNER
|
||||||
|
}
|
||||||
|
mergeObject(options, newOptions);
|
||||||
|
return options;
|
||||||
|
}
|
||||||
|
|
||||||
static getItem(event, actor) {
|
static getItem(event, actor) {
|
||||||
return actor.items.get(RdDSheetUtility.getItemId(event))
|
return actor.items.get(RdDSheetUtility.getItemId(event))
|
||||||
}
|
}
|
||||||
@@ -19,8 +37,11 @@ export class RdDSheetUtility {
|
|||||||
return $(event.currentTarget)?.parents(".item");
|
return $(event.currentTarget)?.parents(".item");
|
||||||
}
|
}
|
||||||
|
|
||||||
static prepareItemDropParameters(destItemId, actor, dragData, objetVersConteneur) {
|
static async prepareItemDropParameters(destItemId, actor, dragData, objetVersConteneur) {
|
||||||
const item = fromUuidSync(dragData.uuid)
|
let item = fromUuidSync(dragData.uuid);
|
||||||
|
if (item.pack && !item.system) {
|
||||||
|
item = await RdDItem.getCorrespondingItem(item);
|
||||||
|
}
|
||||||
if (actor.canReceive(item)) {
|
if (actor.canReceive(item)) {
|
||||||
return {
|
return {
|
||||||
destId: destItemId,
|
destId: destItemId,
|
||||||
|
|||||||
341
module/rdd-timestamp.js
Normal file
@@ -0,0 +1,341 @@
|
|||||||
|
import { SHOW_DICE, SYSTEM_RDD, SYSTEM_SOCKET_ID } from "./constants.js";
|
||||||
|
import { Grammar } from "./grammar.js";
|
||||||
|
import { Misc } from "./misc.js";
|
||||||
|
import { RdDDice } from "./rdd-dice.js";
|
||||||
|
|
||||||
|
export const WORLD_TIMESTAMP_SETTING = "calendrier";
|
||||||
|
|
||||||
|
const RDD_JOURS_PAR_AN = 336; //RDD_JOURS_PAR_MOIS * RDD_MOIS_PAR_AN;
|
||||||
|
const RDD_MOIS_PAR_AN = 12;
|
||||||
|
export const RDD_JOURS_PAR_MOIS = 28;
|
||||||
|
export const RDD_HEURES_PAR_JOUR = 12;
|
||||||
|
export const MAX_NOMBRE_ASTRAL = 12;
|
||||||
|
export const RDD_MINUTES_PAR_HEURES = 120;
|
||||||
|
export const RDD_MINUTES_PAR_JOUR = 1440; //RDD_HEURES_PAR_JOUR * RDD_MINUTES_PAR_HEURES;
|
||||||
|
const ROUNDS_PAR_MINUTE = 10;
|
||||||
|
|
||||||
|
const DEFINITION_HEURES = [
|
||||||
|
{ key: "vaisseau", label: "Vaisseau", lettreFont: 'v', saison: "Printemps" },
|
||||||
|
{ key: "sirene", label: "Sirène", lettreFont: 'i', saison: "Printemps" },
|
||||||
|
{ key: "faucon", label: "Faucon", lettreFont: 'f', saison: "Printemps" },
|
||||||
|
{ key: "couronne", label: "Couronne", lettreFont: '', saison: "Eté" },
|
||||||
|
{ key: "dragon", label: "Dragon", lettreFont: 'd', saison: "Eté" },
|
||||||
|
{ key: "epees", label: "Epées", lettreFont: 'e', saison: "Eté" },
|
||||||
|
{ key: "lyre", label: "Lyre", lettreFont: 'l', saison: "Automne" },
|
||||||
|
{ key: "serpent", label: "Serpent", lettreFont: 's', saison: "Automne" },
|
||||||
|
{ key: "poissonacrobate", label: "Poisson Acrobate", lettreFont: 'p', saison: "Automne" },
|
||||||
|
{ key: "araignee", label: "Araignée", lettreFont: 'a', saison: "Hiver" },
|
||||||
|
{ key: "roseau", label: "Roseau", lettreFont: 'r', saison: "Hiver" },
|
||||||
|
{ key: "chateaudormant", label: "Château Dormant", lettreFont: 'c', saison: "Hiver" },
|
||||||
|
]
|
||||||
|
|
||||||
|
const FORMULES_DUREE = [
|
||||||
|
{ code: "", label: "", calcul: async (t, actor) => t.addJours(100 * RDD_JOURS_PAR_AN) },
|
||||||
|
{ code: "jour", label: "1 jour", calcul: async (t, actor) => t.nouveauJour().addJours(1) },
|
||||||
|
{ code: "1d7jours", label: "1d7 jour", calcul: async (t, actor) => t.nouveauJour().addJours(await RdDDice.rollTotal('1d7', { showDice: SHOW_DICE })) },
|
||||||
|
{ code: "1ddr", label: "Un dé draconique jours", calcul: async (t, actor) => t.nouveauJour().addJours(await RdDDice.rollTotal('1dr+7', { showDice: SHOW_DICE })) },
|
||||||
|
{ code: "hn", label: "Fin de l'Heure de Naissance", calcul: async (t, actor) => t.finHeure(actor.getHeureNaissance()) },
|
||||||
|
// { code: "1h", label: "Une heure", calcul: async (t, actor) => t.nouvelleHeure().addHeures(1) },
|
||||||
|
// { code: "12h", label: "12 heures", calcul: async (t, actor) => t.nouvelleHeure().addHeures(12) },
|
||||||
|
// { code: "chateaudormant", label: "Fin Chateau dormant", calcul: async (t, actor) => t.nouveauJour() },
|
||||||
|
// { code: "special", label: "Spéciale", calcul: async (t, actor) => t.addJours(100 * RDD_JOURS_PAR_AN) },
|
||||||
|
]
|
||||||
|
const FORMULES_PERIODE = [
|
||||||
|
{ code: 'round', label: "Rounds", calcul: async (t, nombre) => t.addMinutes(nombre / 10) },
|
||||||
|
{ code: 'minute', label: "Minutes", calcul: async (t, nombre) => t.addMinutes(nombre) },
|
||||||
|
{ code: 'heure', label: "Heures", calcul: async (t, nombre) => t.addHeures(nombre) },
|
||||||
|
{ code: 'jour', label: "Jours", calcul: async (t, nombre) => t.addJours(nombre) },
|
||||||
|
]
|
||||||
|
|
||||||
|
|
||||||
|
export class RdDTimestamp {
|
||||||
|
|
||||||
|
static init() {
|
||||||
|
game.settings.register(SYSTEM_RDD, WORLD_TIMESTAMP_SETTING, {
|
||||||
|
name: WORLD_TIMESTAMP_SETTING,
|
||||||
|
scope: "world",
|
||||||
|
config: false,
|
||||||
|
default: { indexDate: 0, indexMinute: 0 },
|
||||||
|
type: Object
|
||||||
|
});
|
||||||
|
|
||||||
|
for (let i = 0; i < DEFINITION_HEURES.length; i++) {
|
||||||
|
DEFINITION_HEURES[i].heure = i;
|
||||||
|
DEFINITION_HEURES[i].hh = RdDTimestamp.hh(i);
|
||||||
|
DEFINITION_HEURES[i].icon = RdDTimestamp.iconeHeure(i);
|
||||||
|
DEFINITION_HEURES[i].webp = DEFINITION_HEURES[i].icon.replace(".svg", ".webp");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
static hh(heure) {
|
||||||
|
return heure < 9 ? `0${heure + 1}` : `${heure + 1}`;
|
||||||
|
}
|
||||||
|
|
||||||
|
static iconeHeure(heure) {
|
||||||
|
return `systems/foundryvtt-reve-de-dragon/icons/heures/hd${RdDTimestamp.hh(heure)}.svg`;
|
||||||
|
}
|
||||||
|
|
||||||
|
static definitions() {
|
||||||
|
return DEFINITION_HEURES
|
||||||
|
}
|
||||||
|
|
||||||
|
static formulesDuree() {
|
||||||
|
return FORMULES_DUREE
|
||||||
|
}
|
||||||
|
|
||||||
|
static formulesPeriode() {
|
||||||
|
return FORMULES_PERIODE
|
||||||
|
}
|
||||||
|
|
||||||
|
static heures() {
|
||||||
|
return Misc.intArray(0, RDD_HEURES_PAR_JOUR)
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param signe
|
||||||
|
* @returns L'entrée de DEFINITION_HEURES correspondant au signe
|
||||||
|
*/
|
||||||
|
static definition(signe) {
|
||||||
|
if (signe == undefined) {
|
||||||
|
signe = 0;
|
||||||
|
}
|
||||||
|
if (Number.isInteger(signe)) {
|
||||||
|
return DEFINITION_HEURES[signe % RDD_HEURES_PAR_JOUR];
|
||||||
|
}
|
||||||
|
let definition = DEFINITION_HEURES.find(it => it.key == signe);
|
||||||
|
if (!definition) {
|
||||||
|
definition = Misc.findFirstLike(signe, DEFINITION_HEURES, { mapper: it => it.label, description: 'signe' });
|
||||||
|
}
|
||||||
|
return definition
|
||||||
|
}
|
||||||
|
|
||||||
|
static imgSigneHeure(heure) {
|
||||||
|
return RdDTimestamp.imgSigne(RdDTimestamp.definition(heure));
|
||||||
|
}
|
||||||
|
|
||||||
|
static imgSigne(signe) {
|
||||||
|
return signe == undefined ? '' : `<img class="img-signe-heure" src="${signe.webp}" alt="${signe.label}" title="${signe.label}"/>`
|
||||||
|
}
|
||||||
|
|
||||||
|
static ajustementAstrologiqueHeure(hn, nbAstral, heure) {
|
||||||
|
let ecart = (hn + nbAstral - heure) % RDD_HEURES_PAR_JOUR;
|
||||||
|
if (ecart < 0) {
|
||||||
|
ecart = (ecart + RDD_HEURES_PAR_JOUR) % RDD_HEURES_PAR_JOUR;
|
||||||
|
}
|
||||||
|
switch (ecart) {
|
||||||
|
case 0: return 4;
|
||||||
|
case 4: case 8: return 2;
|
||||||
|
case 6: return -4;
|
||||||
|
case 3: case 9: return -2;
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
static handleTimestampEditor(html, path, consumeTimestamp = async (path, timestamp) => { }) {
|
||||||
|
const fields = {
|
||||||
|
annee: html.find(`input[name="${path}.annee"]`),
|
||||||
|
mois: html.find(`select[name="${path}.mois"]`),
|
||||||
|
jourDuMois: html.find(`input[name="${path}.jourDuMois"]`),
|
||||||
|
heure: html.find(`select[name="${path}.heure"]`),
|
||||||
|
minute: html.find(`input[name="${path}.minute"]`)
|
||||||
|
};
|
||||||
|
|
||||||
|
async function onChangeTimestamp(fields, path) {
|
||||||
|
const annee = Number(fields.annee.val());
|
||||||
|
const mois = fields.mois.val();
|
||||||
|
const jour = Number(fields.jourDuMois.val());
|
||||||
|
const heure = fields.heure.val();
|
||||||
|
const minute = Number(fields.minute.val());
|
||||||
|
await consumeTimestamp(path, RdDTimestamp.timestamp(annee, mois, jour, heure, minute));
|
||||||
|
}
|
||||||
|
|
||||||
|
fields.annee.change(async (event) => await onChangeTimestamp(fields, path));
|
||||||
|
fields.mois.change(async (event) => await onChangeTimestamp(fields, path));
|
||||||
|
fields.jourDuMois.change(async (event) => await onChangeTimestamp(fields, path));
|
||||||
|
fields.heure.change(async (event) => await onChangeTimestamp(fields, path));
|
||||||
|
fields.minute.change(async (event) => await onChangeTimestamp(fields, path));
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
static findHeure(heure) {
|
||||||
|
heure = Grammar.toLowerCaseNoAccentNoSpace(heure);
|
||||||
|
let parHeureOuLabel = DEFINITION_HEURES.filter(it => (it.heure) == parseInt(heure) % RDD_HEURES_PAR_JOUR || Grammar.toLowerCaseNoAccentNoSpace(it.label) == heure);
|
||||||
|
if (parHeureOuLabel.length == 1) {
|
||||||
|
return parHeureOuLabel[0];
|
||||||
|
}
|
||||||
|
let parLabelPartiel = DEFINITION_HEURES.filter(it => Grammar.toLowerCaseNoAccentNoSpace(it.label).includes(heure));
|
||||||
|
if (parLabelPartiel.length > 0) {
|
||||||
|
parLabelPartiel.sort(Misc.ascending(h => h.label.length));
|
||||||
|
return parLabelPartiel[0];
|
||||||
|
}
|
||||||
|
return undefined;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param indexDate: la date (depuis le jour 0)
|
||||||
|
* @return la version formattée de la date
|
||||||
|
*/
|
||||||
|
static formatIndexDate(indexDate) {
|
||||||
|
return new RdDTimestamp({ indexDate }).formatDate()
|
||||||
|
}
|
||||||
|
|
||||||
|
static splitIndexDate(indexDate) {
|
||||||
|
const timestamp = new RdDTimestamp({ indexDate });
|
||||||
|
return {
|
||||||
|
jour: timestamp.jour + 1,
|
||||||
|
mois: RdDTimestamp.definition(timestamp.mois).key
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
static getWorldTime() {
|
||||||
|
let worldTime = game.settings.get(SYSTEM_RDD, WORLD_TIMESTAMP_SETTING);
|
||||||
|
if (worldTime.indexJour != undefined && worldTime.heureRdD != undefined) {
|
||||||
|
// Migration
|
||||||
|
worldTime = {
|
||||||
|
indexDate: worldTime.indexJour,
|
||||||
|
indexMinute: worldTime.heureRdD * 120 + worldTime.minutesRelative
|
||||||
|
};
|
||||||
|
RdDTimestamp.setWorldTime(new RdDTimestamp(worldTime))
|
||||||
|
}
|
||||||
|
return new RdDTimestamp(worldTime);
|
||||||
|
}
|
||||||
|
|
||||||
|
static setWorldTime(timestamp) {
|
||||||
|
game.settings.set(SYSTEM_RDD, WORLD_TIMESTAMP_SETTING, duplicate(timestamp));
|
||||||
|
}
|
||||||
|
|
||||||
|
/** construit un RdDTimestamp à partir de l'année/mois/jour/heure?/minute? */
|
||||||
|
static timestamp(annee, mois, jour, heure = 0, minute = 0) {
|
||||||
|
mois = this.definition(mois)?.heure
|
||||||
|
heure = this.definition(heure)?.heure
|
||||||
|
return new RdDTimestamp({
|
||||||
|
indexDate: (jour - 1) + (mois + annee * RDD_MOIS_PAR_AN) * RDD_JOURS_PAR_MOIS,
|
||||||
|
indexMinute: heure * RDD_MINUTES_PAR_HEURES + minute
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Constructeur d'un timestamp.
|
||||||
|
* Selon les paramètres, l'objet construit se base su:
|
||||||
|
* - le timestamp
|
||||||
|
* - la date numérique + minute (dans la journée)
|
||||||
|
* @param indexDate: la date à utiliser pour ce timestamp
|
||||||
|
* @param indexMinute: la minute de la journée à utiliser pour ce timestamp
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
constructor({ indexDate, indexMinute = undefined }) {
|
||||||
|
this.indexDate = indexDate
|
||||||
|
this.indexMinute = indexMinute ?? 0
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Convertit le timestamp en une structure avec les informations utiles
|
||||||
|
* pour afficher la date et l'heure
|
||||||
|
*/
|
||||||
|
toCalendrier() {
|
||||||
|
return {
|
||||||
|
timestamp: this,
|
||||||
|
annee: this.annee,
|
||||||
|
mois: RdDTimestamp.definition(this.mois),
|
||||||
|
jour: this.jour,
|
||||||
|
jourDuMois: this.jour + 1,
|
||||||
|
heure: RdDTimestamp.definition(this.heure),
|
||||||
|
minute: this.minute
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
get annee() { return Math.floor(this.indexDate / RDD_JOURS_PAR_AN) }
|
||||||
|
get mois() { return Math.floor((this.indexDate % RDD_JOURS_PAR_AN) / RDD_JOURS_PAR_MOIS) }
|
||||||
|
get jour() { return (this.indexDate % RDD_JOURS_PAR_AN) % RDD_JOURS_PAR_MOIS }
|
||||||
|
get heure() { return Math.floor(this.indexMinute / RDD_MINUTES_PAR_HEURES) }
|
||||||
|
get minute() { return this.indexMinute % RDD_MINUTES_PAR_HEURES }
|
||||||
|
get round() { return ROUNDS_PAR_MINUTE * (this.indexMinute - Math.floor(this.indexMinute)) }
|
||||||
|
get angleHeure() { return this.indexMinute / RDD_MINUTES_PAR_JOUR * 360 - 45 }
|
||||||
|
get angleMinute() { return this.indexMinute / RDD_MINUTES_PAR_HEURES * 360 + 45}
|
||||||
|
|
||||||
|
formatDate() {
|
||||||
|
const jour = this.jour + 1;
|
||||||
|
const mois = RdDTimestamp.definition(this.mois).label;
|
||||||
|
const annee = this.annee ?? '';
|
||||||
|
return `${jour} ${mois}` + (annee ? ' ' + annee : '');
|
||||||
|
}
|
||||||
|
|
||||||
|
nouveauJour() { return new RdDTimestamp({ indexDate: this.indexDate + 1, indexMinute: 0 }) }
|
||||||
|
|
||||||
|
nouvelleHeure() {
|
||||||
|
return this.heure >= RDD_HEURES_PAR_JOUR ? this.nouveauJour() : new RdDTimestamp({
|
||||||
|
indexDate: this.indexDate,
|
||||||
|
indexMinute: (this.heure + 1) * RDD_MINUTES_PAR_HEURES
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
addJours(jours) {
|
||||||
|
return jours == 0 ? this : new RdDTimestamp({
|
||||||
|
indexDate: this.indexDate + jours,
|
||||||
|
indexMinute: this.indexMinute
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
addHeures(heures) {
|
||||||
|
if (heures == 0) {
|
||||||
|
return this
|
||||||
|
}
|
||||||
|
const heure = this.heure + heures;
|
||||||
|
return new RdDTimestamp({
|
||||||
|
indexDate: this.indexDate + Math.floor(heure / RDD_HEURES_PAR_JOUR),
|
||||||
|
indexMinute: this.indexMinute + (heure % RDD_HEURES_PAR_JOUR) * RDD_MINUTES_PAR_HEURES
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
addMinutes(minutes) {
|
||||||
|
if (minutes == 0) {
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
const indexMinute = this.indexMinute + minutes;
|
||||||
|
const jours = Math.floor(indexMinute / RDD_MINUTES_PAR_JOUR)
|
||||||
|
return new RdDTimestamp({
|
||||||
|
indexDate: this.indexDate + jours,
|
||||||
|
indexMinute: indexMinute - (jours * RDD_MINUTES_PAR_JOUR)
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
addPeriode(nombre, unite) {
|
||||||
|
const formule = FORMULES_PERIODE.find(it => it.code == unite);
|
||||||
|
if (formule) {
|
||||||
|
return formule.calcul(this, nombre);
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
ui.notifications.info(`Pas de période pour ${unite ?? 'Aucune uinité définie'}`)
|
||||||
|
}
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
finHeure(heure) {
|
||||||
|
return this.nouvelleHeure().addHeures((12 + heure - this.heure) % 12);
|
||||||
|
}
|
||||||
|
|
||||||
|
async appliquerDuree(duree, actor) {
|
||||||
|
const formule = FORMULES_DUREE.find(it => it.code == duree) ?? FORMULES_DUREE.find(it => it.code == "");
|
||||||
|
return await formule.calcul(this, actor);
|
||||||
|
}
|
||||||
|
|
||||||
|
compare(timestamp) {
|
||||||
|
let diff = this.indexDate - timestamp.indexDate
|
||||||
|
if (diff == 0) {
|
||||||
|
diff = this.indexMinute - timestamp.indexMinute
|
||||||
|
}
|
||||||
|
return diff < 0 ? -1 : diff > 0 ? 1 : 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
difference(timestamp) {
|
||||||
|
const jours = this.indexDate - timestamp.indexDate;
|
||||||
|
const minutes = this.indexMinute - timestamp.indexMinute;
|
||||||
|
return {
|
||||||
|
jours: jours,
|
||||||
|
heures: Math.floor(minutes / RDD_MINUTES_PAR_HEURES),
|
||||||
|
minutes: minutes % RDD_MINUTES_PAR_HEURES
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -15,8 +15,9 @@ import { HtmlUtility } from "./html-utility.js";
|
|||||||
import { ReglesOptionelles } from "./settings/regles-optionelles.js";
|
import { ReglesOptionelles } from "./settings/regles-optionelles.js";
|
||||||
import { RdDDice } from "./rdd-dice.js";
|
import { RdDDice } from "./rdd-dice.js";
|
||||||
import { STATUSES } from "./settings/status-effects.js";
|
import { STATUSES } from "./settings/status-effects.js";
|
||||||
import { RdDRencontre } from "./item-rencontre.js";
|
import { RdDRencontre } from "./item/rencontre.js";
|
||||||
import { RdDCalendrier } from "./rdd-calendrier.js";
|
import { RdDCalendrier } from "./rdd-calendrier.js";
|
||||||
|
import { RdDTimestamp } from "./rdd-timestamp.js";
|
||||||
|
|
||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
|
|
||||||
@@ -207,8 +208,8 @@ export class RdDTMRDialog extends Dialog {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
HtmlUtility._showControlWhen(this.html.find(".appliquerFatigue"), ReglesOptionelles.isUsing("appliquer-fatigue"));
|
HtmlUtility.showControlWhen(this.html.find(".appliquerFatigue"), ReglesOptionelles.isUsing("appliquer-fatigue"));
|
||||||
HtmlUtility._showControlWhen(this.html.find(".lire-signe-draconique"), this.actor.isResonanceSigneDraconique(this._getActorCoord()));
|
HtmlUtility.showControlWhen(this.html.find(".lire-signe-draconique"), this.actor.isResonanceSigneDraconique(this._getActorCoord()));
|
||||||
|
|
||||||
// Roll Sort
|
// Roll Sort
|
||||||
this.html.find('.lancer-sort').click((event) => {
|
this.html.find('.lancer-sort').click((event) => {
|
||||||
@@ -245,7 +246,7 @@ export class RdDTMRDialog extends Dialog {
|
|||||||
}
|
}
|
||||||
const coord = this._getActorCoord();
|
const coord = this._getActorCoord();
|
||||||
|
|
||||||
HtmlUtility._showControlWhen(this.html.find(".lire-signe-draconique"), this.actor.isResonanceSigneDraconique(coord));
|
HtmlUtility.showControlWhen(this.html.find(".lire-signe-draconique"), this.actor.isResonanceSigneDraconique(coord));
|
||||||
|
|
||||||
let ptsreve = document.getElementById("tmr-pointsreve-value");
|
let ptsreve = document.getElementById("tmr-pointsreve-value");
|
||||||
ptsreve.innerHTML = this.actor.system.reve.reve.value;
|
ptsreve.innerHTML = this.actor.system.reve.reve.value;
|
||||||
@@ -284,7 +285,12 @@ export class RdDTMRDialog extends Dialog {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
async onActionRencontre(action, tmr) {
|
async onActionRencontre(action, tmr, rencontre) {
|
||||||
|
if (!this.currentRencontre) {
|
||||||
|
ui.notifications.warn("#612 Rencontre perdue, récupération en cours. Vous pouvez contacter l'équipe avec les logs pour aider à résoudre ce problème")
|
||||||
|
console.error("#612 Rencontre perdue", action, tmr, rencontre, this);
|
||||||
|
this.currentRencontre = rencontre;
|
||||||
|
}
|
||||||
switch (action) {
|
switch (action) {
|
||||||
case 'derober':
|
case 'derober':
|
||||||
await this.derober();
|
await this.derober();
|
||||||
@@ -588,6 +594,7 @@ export class RdDTMRDialog extends Dialog {
|
|||||||
return await game.system.rdd.rencontresTMR.getRencontreAleatoire(tmr, this.actor.isMauvaiseRencontre())
|
return await game.system.rdd.rencontresTMR.getRencontreAleatoire(tmr, this.actor.isMauvaiseRencontre())
|
||||||
} else {
|
} else {
|
||||||
this._tellToUser(myRoll + ": Pas de rencontre en " + locTMR);
|
this._tellToUser(myRoll + ": Pas de rencontre en " + locTMR);
|
||||||
|
return undefined;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -798,19 +805,21 @@ export class RdDTMRDialog extends Dialog {
|
|||||||
|
|
||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
async declencheSortEnReserve(coord) {
|
async declencheSortEnReserve(coord) {
|
||||||
let sorts = this.getSortsReserve(coord);
|
const sorts = this.getSortsReserve(coord);
|
||||||
if (sorts.length > 0) {
|
if (sorts.length > 0) {
|
||||||
if (EffetsDraconiques.isSortReserveImpossible(this.actor)) {
|
if (EffetsDraconiques.isSortReserveImpossible(this.actor)) {
|
||||||
ui.notifications.error("Une queue ou un souffle vous empèche de déclencher de sort!");
|
ui.notifications.error("Une queue ou un souffle vous empèche de déclencher de sort!");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (!EffetsDraconiques.isUrgenceDraconique(this.actor) &&
|
const reserveSecurite = EffetsDraconiques.isReserveEnSecurite(this.actor);
|
||||||
(EffetsDraconiques.isReserveEnSecurite(this.actor) || this.isReserveExtensible(coord))) {
|
const reserveExtensible = this.isReserveExtensible(coord);
|
||||||
let msg = "Vous êtes sur une case avec un Sort en Réserve. Grâce à votre Tête <strong>Reserve en Sécurité</strong> ou <strong>Réserve Exensible</strong>, vous pouvez contrôler le déclenchement. Cliquez si vous souhaitez le déclencher : <ul>";
|
if (!EffetsDraconiques.isUrgenceDraconique(this.actor) && (reserveSecurite || reserveExtensible)) {
|
||||||
for (let sort of sorts) {
|
const msg = await renderTemplate(`systems/foundryvtt-reve-de-dragon/templates/chat-demande-declencher-sort.hbs`, {
|
||||||
msg += `<li><a class="chat-card-button declencher-sort-reserve" data-actor-id="${this.actor.id}" data-tmr-coord="${coord}" data-sort-id='${sort.id}">${sort.name}</a></li>`;
|
actor: this.actor,
|
||||||
}
|
sorts: sorts,
|
||||||
msg += "</ol>";
|
coord: coord,
|
||||||
|
tete: { reserveSecurite: reserveSecurite, reserveExtensible: reserveExtensible }
|
||||||
|
})
|
||||||
ChatMessage.create({
|
ChatMessage.create({
|
||||||
content: msg,
|
content: msg,
|
||||||
whisper: ChatMessage.getWhisperRecipients(game.user.name)
|
whisper: ChatMessage.getWhisperRecipients(game.user.name)
|
||||||
@@ -840,7 +849,7 @@ export class RdDTMRDialog extends Dialog {
|
|||||||
async processSortReserve(sortReserve) {
|
async processSortReserve(sortReserve) {
|
||||||
await this.actor.deleteEmbeddedDocuments('Item', [sortReserve.id]);
|
await this.actor.deleteEmbeddedDocuments('Item', [sortReserve.id]);
|
||||||
console.log("declencheSortEnReserve", sortReserve);
|
console.log("declencheSortEnReserve", sortReserve);
|
||||||
const heureCible = RdDCalendrier.getSigneAs('label', sortReserve.system.heurecible);
|
const heureCible = RdDTimestamp.definition(sortReserve.system.heurecible).label;
|
||||||
this._tellToUserAndGM(`Vous avez déclenché
|
this._tellToUserAndGM(`Vous avez déclenché
|
||||||
${sortReserve.system.echectotal ? "<strong>l'échec total!</strong>" : "le sort"}
|
${sortReserve.system.echectotal ? "<strong>l'échec total!</strong>" : "le sort"}
|
||||||
en réserve <strong>${sortReserve.name}</strong>
|
en réserve <strong>${sortReserve.name}</strong>
|
||||||
|
|||||||
@@ -29,12 +29,13 @@ export class RdDTMRRencontreDialog extends Dialog {
|
|||||||
this.toClose = false;
|
this.toClose = false;
|
||||||
this.tmr = tmr;
|
this.tmr = tmr;
|
||||||
this.tmrApp = tmrApp;
|
this.tmrApp = tmrApp;
|
||||||
|
this.rencontre = rencontre;
|
||||||
this.tmrApp.minimize();
|
this.tmrApp.minimize();
|
||||||
}
|
}
|
||||||
|
|
||||||
async onButtonAction(action) {
|
async onButtonAction(action) {
|
||||||
this.toClose = true;
|
this.toClose = true;
|
||||||
this.tmrApp.onActionRencontre(action, this.tmr)
|
this.tmrApp.onActionRencontre(action, this.tmr, this.rencontre)
|
||||||
}
|
}
|
||||||
|
|
||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
|
|||||||
@@ -2,6 +2,7 @@
|
|||||||
import { HtmlUtility } from "./html-utility.js";
|
import { HtmlUtility } from "./html-utility.js";
|
||||||
import { Misc } from "./misc.js";
|
import { Misc } from "./misc.js";
|
||||||
import { RdDCombatManager } from "./rdd-combat.js";
|
import { RdDCombatManager } from "./rdd-combat.js";
|
||||||
|
import { Targets } from "./targets.js";
|
||||||
|
|
||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
export class RdDTokenHud {
|
export class RdDTokenHud {
|
||||||
@@ -18,29 +19,39 @@ export class RdDTokenHud {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
static async addExtensionHud(app, html, tokenId) {
|
static async addExtensionHud(app, html, tokenId, isCombat) {
|
||||||
|
|
||||||
let token = canvas.tokens.get(tokenId);
|
let token = canvas.tokens.get(tokenId);
|
||||||
let actor = token.actor;
|
let actor = token.actor;
|
||||||
|
app.hasExtension = true;
|
||||||
|
// soins
|
||||||
|
await RdDTokenHud.addExtensionHudSoins(html, actor);
|
||||||
|
|
||||||
|
if (isCombat) {
|
||||||
let combatant = game.combat.combatants.find(c => c.tokenId == tokenId);
|
let combatant = game.combat.combatants.find(c => c.tokenId == tokenId);
|
||||||
if (!(combatant?.actor)) {
|
if (!(combatant?.actor)) {
|
||||||
ui.notifications.warn(`Le combatant ${token.name} n'est pas associé à un acteur, impossible de déterminer ses actions de combat!`)
|
ui.notifications.warn(`Le combatant ${token.name} n'est pas associé à un acteur, impossible de déterminer ses actions de combat!`)
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
app.hasExtension = true;
|
let actions = RdDCombatManager.listActionsCombat(combatant);
|
||||||
|
// initiative
|
||||||
|
await RdDTokenHud.addExtensionHudInit(html, combatant, actions);
|
||||||
|
// combat
|
||||||
|
await RdDTokenHud.addExtensionHudCombat(html, combatant, actions);
|
||||||
|
}
|
||||||
|
|
||||||
let actionsCombat = RdDCombatManager.listActionsCombat(combatant);
|
|
||||||
|
}
|
||||||
|
|
||||||
|
static async addExtensionHudInit(html, combatant, actions) {
|
||||||
const hudData = {
|
const hudData = {
|
||||||
combatant: combatant,
|
combatant, actions,
|
||||||
actions: actionsCombat,
|
|
||||||
commandes: [
|
commandes: [
|
||||||
{ name: "Autre action", command: 'autre' },
|
{ name: "Autre action", command: 'autre' },
|
||||||
{ name: 'Initiative +1', command: 'inc', value: 0.01 },
|
{ name: 'Initiative +1', command: 'inc', value: 0.01 },
|
||||||
{ name: 'Initiative -1', command: 'dec', value: -0.01 }]
|
{ name: 'Initiative -1', command: 'dec', value: -0.01 }]
|
||||||
};
|
};
|
||||||
|
|
||||||
const controlIconCombat = html.find('.control-icon[data-action=combat]');
|
const controlIconCombat = html.find('.control-icon[data-action=combat]');
|
||||||
// initiative
|
|
||||||
await RdDTokenHud._configureSubMenu(controlIconCombat,
|
await RdDTokenHud._configureSubMenu(controlIconCombat,
|
||||||
'systems/foundryvtt-reve-de-dragon/templates/hud-actor-init.html',
|
'systems/foundryvtt-reve-de-dragon/templates/hud-actor-init.html',
|
||||||
hudData,
|
hudData,
|
||||||
@@ -51,26 +62,47 @@ export class RdDTokenHud {
|
|||||||
RdDTokenHud._initiativeCommand(initCommand, combatantId);
|
RdDTokenHud._initiativeCommand(initCommand, combatantId);
|
||||||
} else {
|
} else {
|
||||||
let index = event.currentTarget.attributes['data-action-index'].value;
|
let index = event.currentTarget.attributes['data-action-index'].value;
|
||||||
let action = actionsCombat[index];
|
let action = hudData.actions[index];
|
||||||
RdDCombatManager.rollInitiativeAction(combatantId, action);
|
RdDCombatManager.rollInitiativeAction(combatantId, action);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
static async addExtensionHudCombat(html, combatant, actions) {
|
||||||
|
const hudData = { combatant, actions, commandes: [] };
|
||||||
const controlIconTarget = html.find('.control-icon[data-action=target]');
|
const controlIconTarget = html.find('.control-icon[data-action=target]');
|
||||||
// combat
|
|
||||||
await RdDTokenHud._configureSubMenu(controlIconTarget, 'systems/foundryvtt-reve-de-dragon/templates/hud-actor-attaque.html', hudData,
|
await RdDTokenHud._configureSubMenu(controlIconTarget, 'systems/foundryvtt-reve-de-dragon/templates/hud-actor-attaque.html', hudData,
|
||||||
(event) => {
|
(event) => {
|
||||||
const actionIndex = event.currentTarget.attributes['data-action-index']?.value;
|
const actionIndex = event.currentTarget.attributes['data-action-index']?.value;
|
||||||
const action = actionsCombat[actionIndex];
|
const action = hudData.actions[actionIndex];
|
||||||
if (action.action == 'conjurer') {
|
if (action.action == 'conjurer') {
|
||||||
actor.conjurerPossession(actor.getPossession(action.system.possessionid));
|
const possession = combatant.actor.getPossession(action.system.possessionid);
|
||||||
|
combatant.actor.conjurerPossession(possession);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
actor.rollArme(action);
|
combatant.actor.rollArme(action);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static async addExtensionHudSoins(html, sourceActor) {
|
||||||
|
const target = Targets.getTarget({ warn: false });
|
||||||
|
if (target?.actor) {
|
||||||
|
const hudSoins = { blessures: target.actor.blessuresASoigner() ?? [] };
|
||||||
|
if (hudSoins.blessures.length > 0) {
|
||||||
|
// soins
|
||||||
|
const controlIconTarget = html.find('.control-icon[data-action=combat]');
|
||||||
|
await RdDTokenHud._configureSubMenu(controlIconTarget,
|
||||||
|
'systems/foundryvtt-reve-de-dragon/templates/hud-actor-soins.hbs',
|
||||||
|
hudSoins,
|
||||||
|
(event) => {
|
||||||
|
const blessureId = event.currentTarget.attributes['data-blessure-id']?.value;
|
||||||
|
sourceActor.rollSoins(target.actor, blessureId)
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
static _initiativeCommand(initCommand, combatantId) {
|
static _initiativeCommand(initCommand, combatantId) {
|
||||||
switch (initCommand) {
|
switch (initCommand) {
|
||||||
case 'inc': return RdDCombatManager.incDecInit(combatantId, 0.01);
|
case 'inc': return RdDCombatManager.incDecInit(combatantId, 0.01);
|
||||||
@@ -83,16 +115,17 @@ export class RdDTokenHud {
|
|||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
static async addTokenHudExtensions(app, html, tokenId) {
|
static async addTokenHudExtensions(app, html, tokenId) {
|
||||||
const controlIconCombat = html.find('.control-icon[data-action=combat]');
|
const controlIconCombat = html.find('.control-icon[data-action=combat]');
|
||||||
|
if (controlIconCombat.length > 0) {
|
||||||
controlIconCombat.click(event => {
|
controlIconCombat.click(event => {
|
||||||
if (event.currentTarget.className.includes('active')) {
|
if (event.currentTarget.className.includes('active')) {
|
||||||
RdDTokenHud.removeExtensionHud(app, html, tokenId);
|
RdDTokenHud.removeExtensionHud(app, html, tokenId);
|
||||||
} else {
|
} else {
|
||||||
setTimeout(function () { RdDTokenHud.addExtensionHud(app, html, tokenId) }, 200);
|
setTimeout(() => RdDTokenHud.addExtensionHud(app, html, tokenId), 200);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
if (controlIconCombat.length>0 && controlIconCombat[0].className.includes('active')) {
|
const isCombat = controlIconCombat[0].className.includes('active');
|
||||||
RdDTokenHud.addExtensionHud(app, html, tokenId);
|
RdDTokenHud.addExtensionHud(app, html, tokenId, isCombat);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -111,6 +144,6 @@ export class RdDTokenHud {
|
|||||||
|
|
||||||
static _toggleHudListActive(hud, list) {
|
static _toggleHudListActive(hud, list) {
|
||||||
hud.toggleClass('active');
|
hud.toggleClass('active');
|
||||||
HtmlUtility._showControlWhen(list, hud.hasClass('active'));
|
HtmlUtility.showControlWhen(list, hud.hasClass('active'));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -8,21 +8,20 @@ import { DialogItemAchat } from "./dialog-item-achat.js";
|
|||||||
import { ReglesOptionelles } from "./settings/regles-optionelles.js";
|
import { ReglesOptionelles } from "./settings/regles-optionelles.js";
|
||||||
import { RdDDice } from "./rdd-dice.js";
|
import { RdDDice } from "./rdd-dice.js";
|
||||||
import { RdDItem } from "./item.js";
|
import { RdDItem } from "./item.js";
|
||||||
import { Monnaie } from "./item-monnaie.js";
|
|
||||||
import { RdDPossession } from "./rdd-possession.js";
|
import { RdDPossession } from "./rdd-possession.js";
|
||||||
import { RdDNameGen } from "./rdd-namegen.js";
|
import { RdDNameGen } from "./rdd-namegen.js";
|
||||||
import { RdDConfirm } from "./rdd-confirm.js";
|
import { RdDConfirm } from "./rdd-confirm.js";
|
||||||
import { RdDCalendrier } from "./rdd-calendrier.js";
|
|
||||||
import { Environnement } from "./environnement.js";
|
|
||||||
import { RdDItemCompetence } from "./item-competence.js";
|
import { RdDItemCompetence } from "./item-competence.js";
|
||||||
import { RdDResolutionTable } from "./rdd-resolution-table.js";
|
import { RdDResolutionTable } from "./rdd-resolution-table.js";
|
||||||
|
import { RdDTimestamp } from "./rdd-timestamp.js";
|
||||||
|
import { RdDRaretes } from "./item/raretes.js";
|
||||||
|
|
||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
// This table starts at 0 -> niveau -10
|
// This table starts at 0 -> niveau -10
|
||||||
const carac_array = ["taille", "apparence", "constitution", "force", "agilite", "dexterite", "vue", "ouie", "odoratgout", "volonte", "intellect", "empathie", "reve", "chance", "melee", "tir", "lancer", "derobee"];
|
const carac_array = ["taille", "apparence", "constitution", "force", "agilite", "dexterite", "vue", "ouie", "odoratgout", "volonte", "intellect", "empathie", "reve", "chance", "melee", "tir", "lancer", "derobee"];
|
||||||
const difficultesLibres = [0, -1, -2, -3, -4, -5, -6, -7, -8, -9, -10];
|
const difficultesLibres = Misc.intArray(0, -11);
|
||||||
const ajustementsConditions = [-10, -9, -8, -7, -6, -5, -4, -3, -2, -1, 0, +1, +2, +3, +4, +5, +6, +7, +8, +9, +10];
|
const ajustementsConditions = Misc.intArray(-10, 11);
|
||||||
const ajustementsEncaissement = [-10, -9, -8, -7, -6, -5, -4, -3, -2, -1, 0, +1, +2, +3, +4, +5, +6, +7, +8, +9, +10, +11, +12, +13, +14, +15, +16, +17, +18, +19, +20, +21, +22, +23, +24, +25];
|
const ajustementsEncaissement = Misc.intArray(-10, 26);
|
||||||
|
|
||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
function _buildAllSegmentsFatigue(max) {
|
function _buildAllSegmentsFatigue(max) {
|
||||||
@@ -67,38 +66,31 @@ const fatigueMarche = {
|
|||||||
"tresdifficile": { "4": 4, "6": 6 }
|
"tresdifficile": { "4": 4, "6": 6 }
|
||||||
}
|
}
|
||||||
|
|
||||||
/* -------------------------------------------- */
|
|
||||||
const definitionsBlessures = [
|
|
||||||
{ type: "legere", facteur: 2 },
|
|
||||||
{ type: "grave", facteur: 4 },
|
|
||||||
{ type: "critique", facteur: 6 }
|
|
||||||
]
|
|
||||||
|
|
||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
const nomEthylisme = ["Emeché", "Gris", "Pinté", "Pas frais", "Ivre", "Bu", "Complètement fait", "Ivre mort"];
|
const nomEthylisme = ["Emeché", "Gris", "Pinté", "Pas frais", "Ivre", "Bu", "Complètement fait", "Ivre mort"];
|
||||||
|
|
||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
const definitionsEncaissement = {
|
const definitionsEncaissement = {
|
||||||
"mortel": [
|
"mortel": [
|
||||||
{ minimum: undefined, maximum: 0, endurance: "0", vie: "0", eraflures: 0, legeres: 0, graves: 0, critiques: 0 },
|
{ minimum: undefined, maximum: 0, endurance: "0", vie: "0", gravite: -1},
|
||||||
{ minimum: 1, maximum: 10, endurance: "1d4", vie: "0", eraflures: 1, legeres: 0, graves: 0, critiques: 0 },
|
{ minimum: 1, maximum: 10, endurance: "1d4", vie: "0", gravite: 0},
|
||||||
{ minimum: 11, maximum: 15, endurance: "1d6", vie: "0", eraflures: 0, legeres: 1, graves: 0, critiques: 0 },
|
{ minimum: 11, maximum: 15, endurance: "1d6", vie: "0", gravite: 2},
|
||||||
{ minimum: 16, maximum: 19, endurance: "2d6", vie: "2", eraflures: 0, legeres: 0, graves: 1, critiques: 0 },
|
{ minimum: 16, maximum: 19, endurance: "2d6", vie: "2", gravite: 4},
|
||||||
{ minimum: 20, maximum: undefined, endurance: "100", vie: "4 + @over20", eraflures: 0, legeres: 0, graves: 0, critiques: 1 },
|
{ minimum: 20, maximum: undefined, endurance: "100", vie: "4 + @over20", gravite: 6},
|
||||||
],
|
],
|
||||||
"non-mortel": [
|
"non-mortel": [
|
||||||
{ minimum: undefined, maximum: 0, endurance: "0", vie: "0", eraflures: 0, legeres: 0, graves: 0, critiques: 0 },
|
{ minimum: undefined, maximum: 0, endurance: "0", vie: "0", gravite: -1},
|
||||||
{ minimum: 1, maximum: 10, endurance: "1d4", vie: "0", eraflures: 1, legeres: 0, graves: 0, critiques: 0 },
|
{ minimum: 1, maximum: 10, endurance: "1d4", vie: "0", gravite: 0 },
|
||||||
{ minimum: 11, maximum: 15, endurance: "1d6", vie: "0", eraflures: 1, legeres: 0, graves: 0, critiques: 0 },
|
{ minimum: 11, maximum: 15, endurance: "1d6", vie: "0", gravite: 0 },
|
||||||
{ minimum: 16, maximum: 19, endurance: "2d6", vie: "0", eraflures: 0, legeres: 1, graves: 0, critiques: 0 },
|
{ minimum: 16, maximum: 19, endurance: "2d6", vie: "0", gravite: 2 },
|
||||||
{ minimum: 20, maximum: undefined, endurance: "100", vie: "0", eraflures: 0, legeres: 1, graves: 0, critiques: 0 },
|
{ minimum: 20, maximum: undefined, endurance: "100", vie: "0", gravite: 2 },
|
||||||
],
|
],
|
||||||
"cauchemar": [
|
"entiteincarnee": [
|
||||||
{ minimum: undefined, maximum: 0, endurance: "0", vie: "0", eraflures: 0, legeres: 0, graves: 0, critiques: 0 },
|
{ minimum: undefined, maximum: 0, endurance: "0", vie: "0", gravite: -1},
|
||||||
{ minimum: 1, maximum: 10, endurance: "1d4", vie: "0", eraflures: 1, legeres: 0, graves: 0, critiques: 0 },
|
{ minimum: 1, maximum: 10, endurance: "1d4", vie: "0", gravite: 0},
|
||||||
{ minimum: 11, maximum: 15, endurance: "1d6", vie: "0", eraflures: 1, legeres: 0, graves: 0, critiques: 0 },
|
{ minimum: 11, maximum: 15, endurance: "1d6", vie: "0", gravite: 0 },
|
||||||
{ minimum: 16, maximum: 19, endurance: "2d6", vie: "0", eraflures: 1, legeres: 0, graves: 0, critiques: 0 },
|
{ minimum: 16, maximum: 19, endurance: "2d6", vie: "0", gravite: 0 },
|
||||||
{ minimum: 20, maximum: undefined, endurance: "3d6 + @over20", vie: "0", eraflures: 1, legeres: 0, graves: 0, critiques: 0 },
|
{ minimum: 20, maximum: undefined, endurance: "3d6 + @over20", vie: "0", gravite: 0 },
|
||||||
]
|
]
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -140,7 +132,7 @@ export class RdDUtility {
|
|||||||
'systems/foundryvtt-reve-de-dragon/templates/actor/xp-competences.html',
|
'systems/foundryvtt-reve-de-dragon/templates/actor/xp-competences.html',
|
||||||
'systems/foundryvtt-reve-de-dragon/templates/actor/combat.html',
|
'systems/foundryvtt-reve-de-dragon/templates/actor/combat.html',
|
||||||
'systems/foundryvtt-reve-de-dragon/templates/actor/blessures.html',
|
'systems/foundryvtt-reve-de-dragon/templates/actor/blessures.html',
|
||||||
'systems/foundryvtt-reve-de-dragon/templates/actor/blessure.html',
|
'systems/foundryvtt-reve-de-dragon/templates/actor/blessure.hbs',
|
||||||
'systems/foundryvtt-reve-de-dragon/templates/actor/maladies-poisons.html',
|
'systems/foundryvtt-reve-de-dragon/templates/actor/maladies-poisons.html',
|
||||||
'systems/foundryvtt-reve-de-dragon/templates/actor/possessions.html',
|
'systems/foundryvtt-reve-de-dragon/templates/actor/possessions.html',
|
||||||
'systems/foundryvtt-reve-de-dragon/templates/actor/taches.html',
|
'systems/foundryvtt-reve-de-dragon/templates/actor/taches.html',
|
||||||
@@ -150,6 +142,7 @@ export class RdDUtility {
|
|||||||
'systems/foundryvtt-reve-de-dragon/templates/actor/jeux.html',
|
'systems/foundryvtt-reve-de-dragon/templates/actor/jeux.html',
|
||||||
'systems/foundryvtt-reve-de-dragon/templates/actor/alchimie.html',
|
'systems/foundryvtt-reve-de-dragon/templates/actor/alchimie.html',
|
||||||
'systems/foundryvtt-reve-de-dragon/templates/actor/astrologie.html',
|
'systems/foundryvtt-reve-de-dragon/templates/actor/astrologie.html',
|
||||||
|
'systems/foundryvtt-reve-de-dragon/templates/actor/chirurgie.html',
|
||||||
'systems/foundryvtt-reve-de-dragon/templates/actor/non-haut-revant.html',
|
'systems/foundryvtt-reve-de-dragon/templates/actor/non-haut-revant.html',
|
||||||
'systems/foundryvtt-reve-de-dragon/templates/actor/haut-revant.html',
|
'systems/foundryvtt-reve-de-dragon/templates/actor/haut-revant.html',
|
||||||
'systems/foundryvtt-reve-de-dragon/templates/actor/dragon-queues.html',
|
'systems/foundryvtt-reve-de-dragon/templates/actor/dragon-queues.html',
|
||||||
@@ -170,40 +163,18 @@ export class RdDUtility {
|
|||||||
'systems/foundryvtt-reve-de-dragon/templates/actor/liens-animaux.html',
|
'systems/foundryvtt-reve-de-dragon/templates/actor/liens-animaux.html',
|
||||||
'systems/foundryvtt-reve-de-dragon/templates/actor/liens-suivants.html',
|
'systems/foundryvtt-reve-de-dragon/templates/actor/liens-suivants.html',
|
||||||
'systems/foundryvtt-reve-de-dragon/templates/actor/liens-vehicules.html',
|
'systems/foundryvtt-reve-de-dragon/templates/actor/liens-vehicules.html',
|
||||||
|
'systems/foundryvtt-reve-de-dragon/templates/actor/commerce-inventaire.html',
|
||||||
|
'systems/foundryvtt-reve-de-dragon/templates/actor/commerce-inventaire-item.html',
|
||||||
//Items
|
//Items
|
||||||
'systems/foundryvtt-reve-de-dragon/templates/scripts/autocomplete-script.hbs',
|
'systems/foundryvtt-reve-de-dragon/templates/scripts/autocomplete-script.hbs',
|
||||||
'systems/foundryvtt-reve-de-dragon/templates/scripts/autocomplete.hbs',
|
'systems/foundryvtt-reve-de-dragon/templates/scripts/autocomplete.hbs',
|
||||||
'systems/foundryvtt-reve-de-dragon/templates/item/boutons-comestible.html',
|
'systems/foundryvtt-reve-de-dragon/templates/item/boutons-comestible.html',
|
||||||
|
'systems/foundryvtt-reve-de-dragon/templates/item/temporel.hbs',
|
||||||
'systems/foundryvtt-reve-de-dragon/templates/item/partial-inventaire.html',
|
'systems/foundryvtt-reve-de-dragon/templates/item/partial-inventaire.html',
|
||||||
'systems/foundryvtt-reve-de-dragon/templates/item/partial-environnement.html',
|
'systems/foundryvtt-reve-de-dragon/templates/item/partial-environnement.html',
|
||||||
'systems/foundryvtt-reve-de-dragon/templates/item/partial-tab-environnement.html',
|
'systems/foundryvtt-reve-de-dragon/templates/item/partial-tab-environnement.html',
|
||||||
'systems/foundryvtt-reve-de-dragon/templates/header-item.html',
|
|
||||||
'systems/foundryvtt-reve-de-dragon/templates/item-competence-sheet.html',
|
|
||||||
'systems/foundryvtt-reve-de-dragon/templates/item-competencecreature-sheet.html',
|
|
||||||
'systems/foundryvtt-reve-de-dragon/templates/item-arme-sheet.html',
|
|
||||||
'systems/foundryvtt-reve-de-dragon/templates/item-armure-sheet.html',
|
|
||||||
'systems/foundryvtt-reve-de-dragon/templates/item-objet-sheet.html',
|
|
||||||
'systems/foundryvtt-reve-de-dragon/templates/item-conteneur-sheet.html',
|
|
||||||
'systems/foundryvtt-reve-de-dragon/templates/item-sort-sheet.html',
|
|
||||||
'systems/foundryvtt-reve-de-dragon/templates/item-herbe-sheet.html',
|
|
||||||
'systems/foundryvtt-reve-de-dragon/templates/item-ingredient-sheet.html',
|
|
||||||
'systems/foundryvtt-reve-de-dragon/templates/item-faune-sheet.html',
|
|
||||||
'systems/foundryvtt-reve-de-dragon/templates/item-livre-sheet.html',
|
|
||||||
'systems/foundryvtt-reve-de-dragon/templates/item-tache-sheet.html',
|
|
||||||
'systems/foundryvtt-reve-de-dragon/templates/item-potion-sheet.html',
|
|
||||||
'systems/foundryvtt-reve-de-dragon/templates/item-rencontre-sheet.html',
|
|
||||||
'systems/foundryvtt-reve-de-dragon/templates/item-queue-sheet.html',
|
'systems/foundryvtt-reve-de-dragon/templates/item-queue-sheet.html',
|
||||||
'systems/foundryvtt-reve-de-dragon/templates/item-souffle-sheet.html',
|
'systems/foundryvtt-reve-de-dragon/templates/header-item.html',
|
||||||
'systems/foundryvtt-reve-de-dragon/templates/item-tarot-sheet.html',
|
|
||||||
'systems/foundryvtt-reve-de-dragon/templates/item-tete-sheet.html',
|
|
||||||
'systems/foundryvtt-reve-de-dragon/templates/item-ombre-sheet.html',
|
|
||||||
'systems/foundryvtt-reve-de-dragon/templates/item-monnaie-sheet.html',
|
|
||||||
'systems/foundryvtt-reve-de-dragon/templates/item-meditation-sheet.html',
|
|
||||||
'systems/foundryvtt-reve-de-dragon/templates/item-nourritureboisson-sheet.html',
|
|
||||||
'systems/foundryvtt-reve-de-dragon/templates/item-signedraconique-sheet.html',
|
|
||||||
'systems/foundryvtt-reve-de-dragon/templates/item-possession-sheet.html',
|
|
||||||
'systems/foundryvtt-reve-de-dragon/templates/item-extraitpoetique-sheet.html',
|
|
||||||
'systems/foundryvtt-reve-de-dragon/templates/item-service-sheet.html',
|
|
||||||
// partial enums
|
// partial enums
|
||||||
'systems/foundryvtt-reve-de-dragon/templates/enum-caracteristiques.html',
|
'systems/foundryvtt-reve-de-dragon/templates/enum-caracteristiques.html',
|
||||||
'systems/foundryvtt-reve-de-dragon/templates/enum-base-competence.html',
|
'systems/foundryvtt-reve-de-dragon/templates/enum-base-competence.html',
|
||||||
@@ -214,7 +185,6 @@ export class RdDUtility {
|
|||||||
'systems/foundryvtt-reve-de-dragon/templates/enum-categorie-potion.html',
|
'systems/foundryvtt-reve-de-dragon/templates/enum-categorie-potion.html',
|
||||||
'systems/foundryvtt-reve-de-dragon/templates/enum-categorie-vehicule.html',
|
'systems/foundryvtt-reve-de-dragon/templates/enum-categorie-vehicule.html',
|
||||||
'systems/foundryvtt-reve-de-dragon/templates/enum-competence.html',
|
'systems/foundryvtt-reve-de-dragon/templates/enum-competence.html',
|
||||||
'systems/foundryvtt-reve-de-dragon/templates/enum-herbesoin-ingredient.html',
|
|
||||||
'systems/foundryvtt-reve-de-dragon/templates/enum-heures.html',
|
'systems/foundryvtt-reve-de-dragon/templates/enum-heures.html',
|
||||||
'systems/foundryvtt-reve-de-dragon/templates/enum-initpremierround.html',
|
'systems/foundryvtt-reve-de-dragon/templates/enum-initpremierround.html',
|
||||||
'systems/foundryvtt-reve-de-dragon/templates/enum-niveau-ethylisme.html',
|
'systems/foundryvtt-reve-de-dragon/templates/enum-niveau-ethylisme.html',
|
||||||
@@ -222,8 +192,13 @@ export class RdDUtility {
|
|||||||
'systems/foundryvtt-reve-de-dragon/templates/enum-categorie-queue.html',
|
'systems/foundryvtt-reve-de-dragon/templates/enum-categorie-queue.html',
|
||||||
'systems/foundryvtt-reve-de-dragon/templates/enum-draconic.html',
|
'systems/foundryvtt-reve-de-dragon/templates/enum-draconic.html',
|
||||||
'systems/foundryvtt-reve-de-dragon/templates/enum-tmr-type.html',
|
'systems/foundryvtt-reve-de-dragon/templates/enum-tmr-type.html',
|
||||||
|
'systems/foundryvtt-reve-de-dragon/templates/enum-periode.html',
|
||||||
'systems/foundryvtt-reve-de-dragon/templates/enum-tmr-effet.html',
|
'systems/foundryvtt-reve-de-dragon/templates/enum-tmr-effet.html',
|
||||||
// Partials
|
// Partials
|
||||||
|
'systems/foundryvtt-reve-de-dragon/templates/tirage/liste-resultats-recherche.hbs',
|
||||||
|
'systems/foundryvtt-reve-de-dragon/templates/common/timestamp.hbs',
|
||||||
|
'systems/foundryvtt-reve-de-dragon/templates/common/periodicite.hbs',
|
||||||
|
'systems/foundryvtt-reve-de-dragon/templates/common/enum-duree.hbs',
|
||||||
'systems/foundryvtt-reve-de-dragon/templates/common/compendium-link.hbs',
|
'systems/foundryvtt-reve-de-dragon/templates/common/compendium-link.hbs',
|
||||||
'systems/foundryvtt-reve-de-dragon/templates/partial-description-overflow.html',
|
'systems/foundryvtt-reve-de-dragon/templates/partial-description-overflow.html',
|
||||||
'systems/foundryvtt-reve-de-dragon/templates/partial-description-sort.html',
|
'systems/foundryvtt-reve-de-dragon/templates/partial-description-sort.html',
|
||||||
@@ -252,7 +227,10 @@ export class RdDUtility {
|
|||||||
'systems/foundryvtt-reve-de-dragon/templates/dialog-roll-meditation.html',
|
'systems/foundryvtt-reve-de-dragon/templates/dialog-roll-meditation.html',
|
||||||
'systems/foundryvtt-reve-de-dragon/templates/dialog-tmr.html',
|
'systems/foundryvtt-reve-de-dragon/templates/dialog-tmr.html',
|
||||||
'systems/foundryvtt-reve-de-dragon/templates/dialog-roll-alchimie.html',
|
'systems/foundryvtt-reve-de-dragon/templates/dialog-roll-alchimie.html',
|
||||||
'systems/foundryvtt-reve-de-dragon/templates/dialog-astrologie-joueur.html',
|
'systems/foundryvtt-reve-de-dragon/templates/sommeil/sommeil-actor-moral.hbs',
|
||||||
|
'systems/foundryvtt-reve-de-dragon/templates/sommeil/astrologie-gardien.hbs',
|
||||||
|
'systems/foundryvtt-reve-de-dragon/templates/sommeil/astrologie-joueur.hbs',
|
||||||
|
'systems/foundryvtt-reve-de-dragon/templates/sommeil/astrologie-theme.hbs',
|
||||||
// Calendrier
|
// Calendrier
|
||||||
'systems/foundryvtt-reve-de-dragon/templates/calendar-template.html',
|
'systems/foundryvtt-reve-de-dragon/templates/calendar-template.html',
|
||||||
'systems/foundryvtt-reve-de-dragon/templates/calendar-editor-template.html',
|
'systems/foundryvtt-reve-de-dragon/templates/calendar-editor-template.html',
|
||||||
@@ -264,20 +242,6 @@ export class RdDUtility {
|
|||||||
'systems/foundryvtt-reve-de-dragon/templates/chat-description.html',
|
'systems/foundryvtt-reve-de-dragon/templates/chat-description.html',
|
||||||
'systems/foundryvtt-reve-de-dragon/templates/chat-info-appel-au-moral.html',
|
'systems/foundryvtt-reve-de-dragon/templates/chat-info-appel-au-moral.html',
|
||||||
'systems/foundryvtt-reve-de-dragon/templates/chat-info-distance.html',
|
'systems/foundryvtt-reve-de-dragon/templates/chat-info-distance.html',
|
||||||
'systems/foundryvtt-reve-de-dragon/templates/chat-demande-defense.html',
|
|
||||||
'systems/foundryvtt-reve-de-dragon/templates/chat-demande-attaque-particuliere.html',
|
|
||||||
'systems/foundryvtt-reve-de-dragon/templates/chat-demande-attaque-etotal.html',
|
|
||||||
'systems/foundryvtt-reve-de-dragon/templates/chat-resultat-appelchance.html',
|
|
||||||
'systems/foundryvtt-reve-de-dragon/templates/chat-resultat-attaque.html',
|
|
||||||
'systems/foundryvtt-reve-de-dragon/templates/chat-resultat-encaissement.html',
|
|
||||||
'systems/foundryvtt-reve-de-dragon/templates/chat-resultat-parade.html',
|
|
||||||
'systems/foundryvtt-reve-de-dragon/templates/chat-resultat-esquive.html',
|
|
||||||
'systems/foundryvtt-reve-de-dragon/templates/chat-resultat-competence.html',
|
|
||||||
'systems/foundryvtt-reve-de-dragon/templates/chat-resultat-general.html',
|
|
||||||
'systems/foundryvtt-reve-de-dragon/templates/chat-resultat-tache.html',
|
|
||||||
'systems/foundryvtt-reve-de-dragon/templates/chat-resultat-sort.html',
|
|
||||||
'systems/foundryvtt-reve-de-dragon/templates/chat-resultat-alchimie.html',
|
|
||||||
'systems/foundryvtt-reve-de-dragon/templates/chat-resultat-possession.html',
|
|
||||||
'systems/foundryvtt-reve-de-dragon/templates/chat-actor-turn-summary.html',
|
'systems/foundryvtt-reve-de-dragon/templates/chat-actor-turn-summary.html',
|
||||||
'systems/foundryvtt-reve-de-dragon/templates/chat-actor-competence-xp.html',
|
'systems/foundryvtt-reve-de-dragon/templates/chat-actor-competence-xp.html',
|
||||||
'systems/foundryvtt-reve-de-dragon/templates/chat-actor-carac-xp.html',
|
'systems/foundryvtt-reve-de-dragon/templates/chat-actor-carac-xp.html',
|
||||||
@@ -291,18 +255,27 @@ export class RdDUtility {
|
|||||||
Handlebars.registerHelper('computeResolutionChances', (row, col) => RdDResolutionTable.computeChances(row, col));
|
Handlebars.registerHelper('computeResolutionChances', (row, col) => RdDResolutionTable.computeChances(row, col));
|
||||||
Handlebars.registerHelper('upperFirst', str => Misc.upperFirst(str ?? 'Null'));
|
Handlebars.registerHelper('upperFirst', str => Misc.upperFirst(str ?? 'Null'));
|
||||||
Handlebars.registerHelper('lowerFirst', str => Misc.lowerFirst(str ?? 'Null'));
|
Handlebars.registerHelper('lowerFirst', str => Misc.lowerFirst(str ?? 'Null'));
|
||||||
Handlebars.registerHelper('upper', str => str?.toUpperCase() ?? 'NULL');
|
Handlebars.registerHelper('upper', str => str?.toUpperCase() ?? '');
|
||||||
|
Handlebars.registerHelper('lowercase', str => str?.toLowerCase() ?? '');
|
||||||
Handlebars.registerHelper('le', str => Grammar.articleDetermine(str));
|
Handlebars.registerHelper('le', str => Grammar.articleDetermine(str));
|
||||||
Handlebars.registerHelper('apostrophe', (article, str) => Grammar.apostrophe(article, str));
|
Handlebars.registerHelper('apostrophe', (article, str) => Grammar.apostrophe(article, str));
|
||||||
Handlebars.registerHelper('un', str => Grammar.articleIndetermine(str));
|
Handlebars.registerHelper('un', str => Grammar.articleIndetermine(str));
|
||||||
Handlebars.registerHelper('accord', (genre, ...args) => Grammar.accord(genre, args));
|
Handlebars.registerHelper('accord', (genre, ...args) => Grammar.accord(genre, args));
|
||||||
Handlebars.registerHelper('buildConteneur', (objet) => { return new Handlebars.SafeString(RdDUtility.buildConteneur(objet)); });
|
Handlebars.registerHelper('buildLigneInventaire', (item, options) => { return new Handlebars.SafeString(RdDUtility.buildLigneInventaire(item, options)); });
|
||||||
Handlebars.registerHelper('buildContenu', (objet) => { return new Handlebars.SafeString(RdDUtility.buildContenu(objet, 1, true)); });
|
Handlebars.registerHelper('buildInventaireConteneur', (actorId, itemId, options) => { return new Handlebars.SafeString(RdDUtility.buildInventaireConteneur(actorId, itemId, options)); });
|
||||||
|
Handlebars.registerHelper('buildContenuConteneur', (item, options) => { return new Handlebars.SafeString(RdDUtility.buildContenuConteneur(item, options)); });
|
||||||
|
Handlebars.registerHelper('calculerPrixCommercant', item => item.calculerPrixCommercant());
|
||||||
Handlebars.registerHelper('caseTmr-label', coord => TMRUtility.getTMRLabel(coord));
|
Handlebars.registerHelper('caseTmr-label', coord => TMRUtility.getTMRLabel(coord));
|
||||||
Handlebars.registerHelper('caseTmr-type', coord => TMRUtility.getTMRType(coord));
|
Handlebars.registerHelper('caseTmr-type', coord => TMRUtility.getTMRType(coord));
|
||||||
Handlebars.registerHelper('typeTmr-name', type => TMRUtility.typeTmrName(type));
|
Handlebars.registerHelper('typeTmr-name', type => TMRUtility.typeTmrName(type));
|
||||||
Handlebars.registerHelper('effetRencontre-name', coord => TMRUtility.typeTmrName(coord));
|
Handlebars.registerHelper('effetRencontre-name', coord => TMRUtility.typeTmrName(coord));
|
||||||
Handlebars.registerHelper('signeHeure', (key, heure) => RdDCalendrier.getSigneAs(key, heure));
|
|
||||||
|
Handlebars.registerHelper('timestamp-imgSigneHeure', (heure) => { return new Handlebars.SafeString(RdDTimestamp.imgSigneHeure(heure)) });
|
||||||
|
Handlebars.registerHelper('timestamp-imgSigne', (heure) => { return new Handlebars.SafeString(RdDTimestamp.imgSigne(heure)) });
|
||||||
|
Handlebars.registerHelper('timestamp-extract', timestamp => new RdDTimestamp(timestamp).toCalendrier());
|
||||||
|
Handlebars.registerHelper('timestamp-formulesDuree', () => RdDTimestamp.formulesDuree());
|
||||||
|
Handlebars.registerHelper('timestamp-formulesPeriode', () => RdDTimestamp.formulesPeriode());
|
||||||
|
|
||||||
Handlebars.registerHelper('min', (...args) => Math.min(...args.slice(0, -1)));
|
Handlebars.registerHelper('min', (...args) => Math.min(...args.slice(0, -1)));
|
||||||
Handlebars.registerHelper('regle-optionnelle', (option) => ReglesOptionelles.isUsing(option));
|
Handlebars.registerHelper('regle-optionnelle', (option) => ReglesOptionelles.isUsing(option));
|
||||||
Handlebars.registerHelper('trier', list => list.sort((a, b) => a.name.localeCompare(b.name)));
|
Handlebars.registerHelper('trier', list => list.sort((a, b) => a.name.localeCompare(b.name)));
|
||||||
@@ -310,7 +283,7 @@ export class RdDUtility {
|
|||||||
Handlebars.registerHelper('linkCompendium', (pack, id, name) => RdDUtility.linkCompendium(pack, id, name));
|
Handlebars.registerHelper('linkCompendium', (pack, id, name) => RdDUtility.linkCompendium(pack, id, name));
|
||||||
Handlebars.registerHelper('uniteQuantite', (itemId, actorId) => RdDUtility.getItem(itemId, actorId)?.getUniteQuantite());
|
Handlebars.registerHelper('uniteQuantite', (itemId, actorId) => RdDUtility.getItem(itemId, actorId)?.getUniteQuantite());
|
||||||
Handlebars.registerHelper('isFieldInventaireModifiable', (type, field) => RdDItem.isFieldInventaireModifiable(type, field));
|
Handlebars.registerHelper('isFieldInventaireModifiable', (type, field) => RdDItem.isFieldInventaireModifiable(type, field));
|
||||||
Handlebars.registerHelper('getFrequenceRarete', (rarete, field) => Environnement.getFrequenceRarete(rarete, field));
|
Handlebars.registerHelper('rarete-getChamp', (rarete, field) => RdDRaretes.getChamp(rarete, field));
|
||||||
return loadTemplates(templatePaths);
|
return loadTemplates(templatePaths);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -361,69 +334,6 @@ export class RdDUtility {
|
|||||||
return undefined;
|
return undefined;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* -------------------------------------------- */
|
|
||||||
static filterItemsPerTypeForSheet(formData, itemTypes) {
|
|
||||||
|
|
||||||
RdDUtility.filterEquipementParType(formData, itemTypes);
|
|
||||||
|
|
||||||
formData.sorts = this.arrayOrEmpty(itemTypes['sort']);
|
|
||||||
formData.rencontres = this.arrayOrEmpty(itemTypes['rencontre']);
|
|
||||||
formData.casestmr = this.arrayOrEmpty(itemTypes['casetmr']);
|
|
||||||
formData.signesdraconiques = this.arrayOrEmpty(itemTypes['signedraconique']);
|
|
||||||
formData.queues = this.arrayOrEmpty(itemTypes['queue']);
|
|
||||||
formData.souffles = this.arrayOrEmpty(itemTypes['souffle']);
|
|
||||||
formData.ombres = this.arrayOrEmpty(itemTypes['ombre']);
|
|
||||||
formData.tetes = this.arrayOrEmpty(itemTypes['tete']);
|
|
||||||
formData.taches = this.arrayOrEmpty(itemTypes['tache']);
|
|
||||||
formData.meditations = this.arrayOrEmpty(itemTypes['meditation']);
|
|
||||||
formData.chants = this.arrayOrEmpty(itemTypes['chant']);
|
|
||||||
formData.danses = this.arrayOrEmpty(itemTypes['danse']);
|
|
||||||
formData.musiques = this.arrayOrEmpty(itemTypes['musique']);
|
|
||||||
formData.oeuvres = this.arrayOrEmpty(itemTypes['oeuvre']);
|
|
||||||
formData.jeux = this.arrayOrEmpty(itemTypes['jeu']);
|
|
||||||
|
|
||||||
formData.services = this.arrayOrEmpty(itemTypes['service']);
|
|
||||||
formData.recettescuisine = this.arrayOrEmpty(itemTypes['recettecuisine']);
|
|
||||||
formData.recettesAlchimiques = this.arrayOrEmpty(itemTypes['recettealchimique']);
|
|
||||||
formData.maladies = this.arrayOrEmpty(itemTypes['maladie']);
|
|
||||||
formData.poisons = this.arrayOrEmpty(itemTypes['poison']);
|
|
||||||
formData.possessions = this.arrayOrEmpty(itemTypes['possession']);
|
|
||||||
formData.maladiesPoisons = formData.maladies.concat(formData.poisons);
|
|
||||||
formData.competences = (itemTypes['competence'] ?? []).concat(itemTypes['competencecreature'] ?? []);
|
|
||||||
formData.sortsReserve = this.arrayOrEmpty(itemTypes['sortreserve']);
|
|
||||||
}
|
|
||||||
|
|
||||||
static filterEquipementParType(formData, itemTypes) {
|
|
||||||
formData.conteneurs = this.arrayOrEmpty(itemTypes['conteneur']);
|
|
||||||
|
|
||||||
formData.materiel = this.arrayOrEmpty(itemTypes['objet']);
|
|
||||||
formData.armes = this.arrayOrEmpty(itemTypes['arme']);
|
|
||||||
formData.armures = this.arrayOrEmpty(itemTypes['armure']);
|
|
||||||
formData.munitions = this.arrayOrEmpty(itemTypes['munition']);
|
|
||||||
formData.livres = this.arrayOrEmpty(itemTypes['livre']);
|
|
||||||
formData.potions = this.arrayOrEmpty(itemTypes['potion']);
|
|
||||||
formData.ingredients = this.arrayOrEmpty(itemTypes['ingredient']);
|
|
||||||
formData.faunes = this.arrayOrEmpty(itemTypes['faune']);
|
|
||||||
formData.herbes = this.arrayOrEmpty(itemTypes['herbe']);
|
|
||||||
formData.monnaie = this.arrayOrEmpty(itemTypes['monnaie']).sort(Monnaie.triValeurEntiere());
|
|
||||||
formData.nourritureboissons = this.arrayOrEmpty(itemTypes['nourritureboisson']);
|
|
||||||
formData.gemmes = this.arrayOrEmpty(itemTypes['gemme']);
|
|
||||||
|
|
||||||
formData.objets = formData.conteneurs
|
|
||||||
.concat(formData.materiel)
|
|
||||||
.concat(formData.armes)
|
|
||||||
.concat(formData.armures)
|
|
||||||
.concat(formData.munitions)
|
|
||||||
.concat(formData.livres)
|
|
||||||
.concat(formData.potions)
|
|
||||||
.concat(formData.ingredients)
|
|
||||||
.concat(formData.herbes)
|
|
||||||
.concat(formData.faunes)
|
|
||||||
.concat(formData.monnaie)
|
|
||||||
.concat(formData.nourritureboissons)
|
|
||||||
.concat(formData.gemmes);
|
|
||||||
}
|
|
||||||
|
|
||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
static buildArbreDeConteneurs(conteneurs, objets) {
|
static buildArbreDeConteneurs(conteneurs, objets) {
|
||||||
let objetVersConteneur = {};
|
let objetVersConteneur = {};
|
||||||
@@ -468,35 +378,64 @@ export class RdDUtility {
|
|||||||
return conteneurs.filter((conteneur, index, arr) => !conteneur.estContenu);
|
return conteneurs.filter((conteneur, index, arr) => !conteneur.estContenu);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* -------------------------------------------- */
|
static prepareOptionsArbreInventaire(item, optionsArbre) {
|
||||||
/** Construit la structure récursive des conteneurs, avec imbrication potentielle
|
if (!optionsArbre.profondeur) {
|
||||||
*
|
optionsArbre.profondeur = 1
|
||||||
*/
|
};
|
||||||
static buildConteneur(objet, profondeur) {
|
if (!optionsArbre.templateItem) {
|
||||||
if (!profondeur) profondeur = 1;
|
optionsArbre.templateItem = item.parent?.type == 'commerce'
|
||||||
objet.niveau = profondeur;
|
? "systems/foundryvtt-reve-de-dragon/templates/actor/commerce-inventaire-item.html"
|
||||||
const isConteneur = objet.type == 'conteneur';
|
: "systems/foundryvtt-reve-de-dragon/templates/actor/inventaire-item.html";
|
||||||
const isOuvert = isConteneur && this.getAfficheContenu(objet._id);
|
}
|
||||||
const isVide = isConteneur && objet.system.contenu.length == 0;
|
item.niveau = optionsArbre.profondeur;
|
||||||
const conteneur = Handlebars.partials['systems/foundryvtt-reve-de-dragon/templates/actor/inventaire-item.html']({
|
|
||||||
item: objet,
|
|
||||||
vide: isVide,
|
|
||||||
ouvert: isOuvert
|
|
||||||
});
|
|
||||||
const contenu = isConteneur ? RdDUtility.buildContenu(objet, profondeur, isOuvert) : '';
|
|
||||||
return conteneur + contenu;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
static buildContenu(objet, profondeur, afficherContenu) {
|
|
||||||
if (!profondeur) profondeur = 1;
|
/**
|
||||||
objet.niveau = profondeur;
|
* Construit la structure récursive des conteneurs, avec imbrication potentielle
|
||||||
const display = afficherContenu ? 'item-display-show' : 'item-display-hide';
|
*/
|
||||||
let strContenu = `<ul class='item-list alterne-list ${display} list-item-margin${Math.min(profondeur,6)}'>`;
|
static buildLigneInventaire(item, options = {}, optionsArbre = { ouvert: false, profondeur: 1 }) {
|
||||||
for (let subItem of objet.subItems) {
|
RdDUtility.prepareOptionsArbreInventaire(item, optionsArbre);
|
||||||
strContenu += this.buildConteneur(subItem, profondeur + 1);
|
|
||||||
|
const isConteneur = item.type == 'conteneur';
|
||||||
|
const inventaire = {
|
||||||
|
item: item,
|
||||||
|
vide: isConteneur && item.system.contenu.length == 0,
|
||||||
|
ouvert: isConteneur && RdDUtility.getAfficheContenu(item._id),
|
||||||
|
options: options
|
||||||
|
};
|
||||||
|
optionsArbre.ouvert = inventaire.ouvert
|
||||||
|
const ligneObjet = Handlebars.partials[optionsArbre.templateItem](inventaire);
|
||||||
|
if (isConteneur) {
|
||||||
|
return ligneObjet + RdDUtility.buildContenuConteneur(item, options, optionsArbre);
|
||||||
}
|
}
|
||||||
return strContenu + "</ul>";
|
return ligneObjet;
|
||||||
|
}
|
||||||
|
|
||||||
|
static buildInventaireConteneur(actorId, itemId, options) {
|
||||||
|
const actor = game.actors.get(actorId)
|
||||||
|
const item = actor?.items.get(itemId)
|
||||||
|
if (item) {
|
||||||
|
return RdDUtility.buildContenuConteneur(item, options, { ouvert: true, profondeur: 1 });
|
||||||
|
}
|
||||||
|
return '';
|
||||||
|
}
|
||||||
|
|
||||||
|
/* -------------------------------------------- */
|
||||||
|
static buildContenuConteneur(conteneur, options = {}, optionsArbre = {}) {
|
||||||
|
RdDUtility.prepareOptionsArbreInventaire(conteneur, optionsArbre);
|
||||||
|
const display = optionsArbre.ouvert ? 'item-display-show' : 'item-display-hide';
|
||||||
|
const profondeur = optionsArbre.profondeur;
|
||||||
|
|
||||||
|
optionsArbre.profondeur++;
|
||||||
|
const lignesContenu = conteneur.subItems.sort(Misc.ascending(it => it.name))
|
||||||
|
.map(contenu => this.buildLigneInventaire(contenu, options, optionsArbre));
|
||||||
|
|
||||||
|
return `<ul class='item-list alterne-list ${display} list-item-margin${Math.min(profondeur, 6)}'>`
|
||||||
|
+ lignesContenu.reduce(Misc.joining(''), '')
|
||||||
|
+ "</ul>";
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
@@ -513,10 +452,6 @@ export class RdDUtility {
|
|||||||
return ajustementsEncaissement;
|
return ajustementsEncaissement;
|
||||||
}
|
}
|
||||||
|
|
||||||
static getDefinitionsBlessures() {
|
|
||||||
return definitionsBlessures;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
static getSegmentsFatigue(maxEnd) {
|
static getSegmentsFatigue(maxEnd) {
|
||||||
maxEnd = Math.max(maxEnd, 1);
|
maxEnd = Math.max(maxEnd, 1);
|
||||||
@@ -657,17 +592,10 @@ export class RdDUtility {
|
|||||||
encaissement.dmg.loc.label = encaissement.dmg.loc.label ?? 'Corps;';
|
encaissement.dmg.loc.label = encaissement.dmg.loc.label ?? 'Corps;';
|
||||||
encaissement.roll = roll;
|
encaissement.roll = roll;
|
||||||
encaissement.armure = armure;
|
encaissement.armure = armure;
|
||||||
|
encaissement.penetration = rollData.arme?.system.penetration ?? 0;
|
||||||
encaissement.total = jetTotal;
|
encaissement.total = jetTotal;
|
||||||
encaissement.vie = await RdDUtility._evaluatePerte(encaissement.vie, over20);
|
encaissement.vie = await RdDUtility._evaluatePerte(encaissement.vie, over20);
|
||||||
encaissement.endurance = await RdDUtility._evaluatePerte(encaissement.endurance, over20);
|
encaissement.endurance = await RdDUtility._evaluatePerte(encaissement.endurance, over20);
|
||||||
encaissement.penetration = rollData.arme?.system.penetration ?? 0;
|
|
||||||
encaissement.blessures = (
|
|
||||||
encaissement.critiques> 0 ? "Critique":
|
|
||||||
encaissement.graves> 0 ? "Grave":
|
|
||||||
encaissement.legeres> 0 ? "Légère":
|
|
||||||
encaissement.eraflures>0 ? "Contusions/Eraflures":
|
|
||||||
'Aucune'
|
|
||||||
);
|
|
||||||
return encaissement;
|
return encaissement;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -720,8 +648,6 @@ export class RdDUtility {
|
|||||||
switch (sockmsg.msg) {
|
switch (sockmsg.msg) {
|
||||||
case "msg_gm_chat_message":
|
case "msg_gm_chat_message":
|
||||||
return ChatUtility.handleGMChatMessage(sockmsg.data);
|
return ChatUtility.handleGMChatMessage(sockmsg.data);
|
||||||
case "msg_sync_time":
|
|
||||||
return game.system.rdd.calendrier.syncPlayerTime(sockmsg.data);
|
|
||||||
case "msg_request_nombre_astral":
|
case "msg_request_nombre_astral":
|
||||||
return game.system.rdd.calendrier.requestNombreAstral(sockmsg.data);
|
return game.system.rdd.calendrier.requestNombreAstral(sockmsg.data);
|
||||||
case "msg_response_nombre_astral":
|
case "msg_response_nombre_astral":
|
||||||
@@ -952,10 +878,10 @@ export class RdDUtility {
|
|||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
static afficherHeuresChanceMalchance(heureNaissance) {
|
static afficherHeuresChanceMalchance(heureNaissance) {
|
||||||
if (game.user.isGM) {
|
if (game.user.isGM) {
|
||||||
let heure = game.system.rdd.calendrier.findHeure(heureNaissance);
|
const heure = RdDTimestamp.findHeure(heureNaissance - 1);
|
||||||
if (heureNaissance && heure) {
|
if (heureNaissance && heure) {
|
||||||
let ajustement = game.system.rdd.calendrier.getAjustementAstrologique(heureNaissance);
|
let ajustement = game.system.rdd.calendrier.getAjustementAstrologique(heureNaissance);
|
||||||
const current = game.system.rdd.calendrier.findHeure(game.system.rdd.calendrier.getCurrentHeure());
|
const current = game.system.rdd.calendrier.heureCourante();
|
||||||
ChatMessage.create({
|
ChatMessage.create({
|
||||||
content: `A l'heure de <strong>${current.label}</strong>, le modificateur de Chance/Malchance est de <strong>${Misc.toSignedString(ajustement)}</strong> pour l'heure de naissance <strong>${heure.label}</strong>.`,
|
content: `A l'heure de <strong>${current.label}</strong>, le modificateur de Chance/Malchance est de <strong>${Misc.toSignedString(ajustement)}</strong> pour l'heure de naissance <strong>${heure.label}</strong>.`,
|
||||||
whisper: ChatMessage.getWhisperRecipients("GM")
|
whisper: ChatMessage.getWhisperRecipients("GM")
|
||||||
|
|||||||
@@ -56,14 +56,14 @@ export const referenceAjustements = {
|
|||||||
getValue: (rollData, actor) => actor.getEtatGeneral({ ethylisme: rollData.forceAlcool != undefined })
|
getValue: (rollData, actor) => actor.getEtatGeneral({ ethylisme: rollData.forceAlcool != undefined })
|
||||||
},
|
},
|
||||||
malusArmure: {
|
malusArmure: {
|
||||||
isVisible: (rollData, actor) => RdDCarac.isAgiliteOuDerivee(rollData.selectedCarac),
|
isVisible: (rollData, actor) => RdDCarac.isAgiliteOuDerobee(rollData.selectedCarac),
|
||||||
isUsed: (rollData, actor) => RdDCarac.isAgiliteOuDerivee(rollData.selectedCarac),
|
isUsed: (rollData, actor) => RdDCarac.isAgiliteOuDerobee(rollData.selectedCarac),
|
||||||
getLabel: (rollData, actor) => 'Malus armure',
|
getLabel: (rollData, actor) => 'Malus armure',
|
||||||
getValue: (rollData, actor) => actor.getMalusArmure()
|
getValue: (rollData, actor) => actor.getMalusArmure()
|
||||||
},
|
},
|
||||||
encTotal: {
|
encTotal: {
|
||||||
isVisible: (rollData, actor) => RdDCarac.isAgiliteOuDerivee(rollData.selectedCarac) && RdDItemCompetence.isMalusEncombrementTotal(rollData.competence),
|
isVisible: (rollData, actor) => RdDCarac.isAgiliteOuDerobee(rollData.selectedCarac) && RdDItemCompetence.isMalusEncombrementTotal(rollData.competence),
|
||||||
isUsed: (rollData, actor) => !rollData.oeuvre && RdDCarac.isAgiliteOuDerivee(rollData.selectedCarac) && RdDItemCompetence.isMalusEncombrementTotal(rollData.competence) && rollData.use.encTotal,
|
isUsed: (rollData, actor) => !rollData.oeuvre && RdDCarac.isAgiliteOuDerobee(rollData.selectedCarac) && RdDItemCompetence.isMalusEncombrementTotal(rollData.competence) && rollData.use.encTotal,
|
||||||
getLabel: (rollData, actor) => 'Encombrement total',
|
getLabel: (rollData, actor) => 'Encombrement total',
|
||||||
getValue: (rollData, actor) => -actor.getEncTotal()
|
getValue: (rollData, actor) => -actor.getEncTotal()
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -17,6 +17,7 @@ const listeReglesOptionelles = [
|
|||||||
{ group: 'Règles générales', name: 'afficher-prix-joueurs', descr: "Afficher le prix de l'équipement des joueurs", uniquementJoueur: true},
|
{ group: 'Règles générales', name: 'afficher-prix-joueurs', descr: "Afficher le prix de l'équipement des joueurs", uniquementJoueur: true},
|
||||||
{ group: 'Règles générales', name: 'appliquer-fatigue', descr: "Appliquer les règles de fatigue"},
|
{ group: 'Règles générales', name: 'appliquer-fatigue', descr: "Appliquer les règles de fatigue"},
|
||||||
{ group: 'Règles générales', name: 'afficher-colonnes-reussite', descr: "Afficher le nombre de colonnes de réussite ou d'échec", default: false },
|
{ group: 'Règles générales', name: 'afficher-colonnes-reussite', descr: "Afficher le nombre de colonnes de réussite ou d'échec", default: false },
|
||||||
|
{ group: 'Règles générales', name: 'chateau-dormant-gardien', descr: "Saisie des heures de sommeil/jets de moral par le gardien des rêves", default: true },
|
||||||
|
|
||||||
{ group: 'Confirmations', name: 'confirmer-combat-sans-cible', descr: "Confirmer avant une attaque sans cible", scope: "client"},
|
{ group: 'Confirmations', name: 'confirmer-combat-sans-cible', descr: "Confirmer avant une attaque sans cible", scope: "client"},
|
||||||
{ group: 'Confirmations', name: 'confirmation-tmr', descr: "Confirmer pour monter dans les TMR", scope: "client"},
|
{ group: 'Confirmations', name: 'confirmation-tmr', descr: "Confirmer pour monter dans les TMR", scope: "client"},
|
||||||
|
|||||||
@@ -52,12 +52,16 @@ export class SystemCompendiums extends FormApplication {
|
|||||||
}
|
}
|
||||||
|
|
||||||
static getPack(compendium) {
|
static getPack(compendium) {
|
||||||
|
const pack = game.packs.get(compendium);
|
||||||
|
if (pack) {
|
||||||
|
return pack;
|
||||||
|
}
|
||||||
return game.packs.get(SystemCompendiums.getCompendium(compendium)) ?? game.packs.get(SystemCompendiums._getDefaultCompendium(compendium));
|
return game.packs.get(SystemCompendiums.getCompendium(compendium)) ?? game.packs.get(SystemCompendiums._getDefaultCompendium(compendium));
|
||||||
}
|
}
|
||||||
|
|
||||||
static async getPackContent(compendium, docType) {
|
static async getPackContent(compendium, docType) {
|
||||||
const pack = SystemCompendiums.getPack(compendium);
|
const pack = SystemCompendiums.getPack(compendium);
|
||||||
if (pack.metadata.type == docType) {
|
if (pack?.metadata.type == docType) {
|
||||||
return await pack.getDocuments();
|
return await pack.getDocuments();
|
||||||
}
|
}
|
||||||
return [];
|
return [];
|
||||||
@@ -177,7 +181,7 @@ export class SystemCompendiums extends FormApplication {
|
|||||||
*/
|
*/
|
||||||
export class CompendiumTable {
|
export class CompendiumTable {
|
||||||
|
|
||||||
constructor(compendium, type, subTypes, sorting = undefined) {
|
constructor(compendium, type, subTypes = undefined, sorting = undefined) {
|
||||||
this.compendium = compendium;
|
this.compendium = compendium;
|
||||||
this.type = type;
|
this.type = type;
|
||||||
this.subTypes = subTypes;
|
this.subTypes = subTypes;
|
||||||
@@ -187,13 +191,13 @@ export class CompendiumTable {
|
|||||||
async getContent(itemFrequence = it => it.system.frequence, filter = it => true) {
|
async getContent(itemFrequence = it => it.system.frequence, filter = it => true) {
|
||||||
return await SystemCompendiums.getContent(this.compendium,
|
return await SystemCompendiums.getContent(this.compendium,
|
||||||
this.type,
|
this.type,
|
||||||
it => this.subTypes.includes(it.type) && filter(it),
|
it => (!this.subTypes || this.subTypes.includes(it.type)) && itemFrequence(it) > 0 && filter(it),
|
||||||
itemFrequence,
|
itemFrequence,
|
||||||
this.sorting);
|
this.sorting);
|
||||||
}
|
}
|
||||||
|
|
||||||
async buildTable(itemFrequence = it => it.system.frequence, filter = it => true) {
|
async buildTable(itemFrequence = it => it.system.frequence, filter = it => true) {
|
||||||
const elements = await this.getContent(filter, itemFrequence);
|
const elements = await this.getContent(itemFrequence, filter);
|
||||||
return CompendiumTableHelpers.buildTable(elements, itemFrequence);
|
return CompendiumTableHelpers.buildTable(elements, itemFrequence);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -225,9 +229,23 @@ export class CompendiumTableHelpers {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
static async getRandom(table, type, subTypes, forcedRoll = undefined, localisation = undefined) {
|
static concatTables(...tables) {
|
||||||
|
const rows = tables.reduce((a, b) => a.concat(b));
|
||||||
|
let max = 0;
|
||||||
|
const total = rows.map(it => it.frequence).reduce(Misc.sum(), 0);
|
||||||
|
return rows.map(row => {
|
||||||
|
const frequence = row.frequence;
|
||||||
|
row.min = max + 1;
|
||||||
|
row.max = max + frequence;
|
||||||
|
row.total = total
|
||||||
|
max += frequence;
|
||||||
|
return row;
|
||||||
|
})
|
||||||
|
}
|
||||||
|
static async getRandom(table, type, subTypes = ['objet'], forcedRoll = undefined, localisation = undefined) {
|
||||||
if (table.length == 0) {
|
if (table.length == 0) {
|
||||||
ui.notifications.warn(`Aucun ${Misc.typeName(type, subTypes[0])} trouvé dans ${localisation ?? ' les compendiums'}`);
|
const typeName = Misc.typeName(type, subTypes[0]);
|
||||||
|
ui.notifications.warn(`Aucun ${typeName} trouvé dans ${localisation ?? ' les compendiums'}`);
|
||||||
return undefined;
|
return undefined;
|
||||||
}
|
}
|
||||||
return await CompendiumTableHelpers.selectRow(table, forcedRoll);
|
return await CompendiumTableHelpers.selectRow(table, forcedRoll);
|
||||||
@@ -260,7 +278,7 @@ export class CompendiumTableHelpers {
|
|||||||
roll: row.roll,
|
roll: row.roll,
|
||||||
document: row.document,
|
document: row.document,
|
||||||
percentages,
|
percentages,
|
||||||
typeName: Misc.typeName(type, row.document.type),
|
typeName: Misc.typeName(type, row.document?.type ?? 'objet'),
|
||||||
isGM: game.user.isGM,
|
isGM: game.user.isGM,
|
||||||
});
|
});
|
||||||
const messageData = {
|
const messageData = {
|
||||||
|
|||||||
216
module/sommeil/app-astrologie.js
Normal file
@@ -0,0 +1,216 @@
|
|||||||
|
import { SYSTEM_RDD } from "../constants.js";
|
||||||
|
import { Misc } from "../misc.js";
|
||||||
|
import { RDD_MINUTES_PAR_HEURES, RDD_MINUTES_PAR_JOUR, RdDTimestamp } from "../rdd-timestamp.js";
|
||||||
|
|
||||||
|
export const APP_ASTROLOGIE_REFRESH = `${SYSTEM_RDD}-refresh-astrologie`
|
||||||
|
|
||||||
|
export class AppAstrologie extends Application {
|
||||||
|
static async create(actor = undefined, options = {}) {
|
||||||
|
if (actor == undefined && !game.user.isGM) {
|
||||||
|
actor = game.user.character
|
||||||
|
}
|
||||||
|
if (!actor && !game.user.isGM) {
|
||||||
|
console.error("AppAstrologie uniquement accessible pour le MJ, ou depuis un personnage pour un joueur")
|
||||||
|
}
|
||||||
|
new AppAstrologie(actor, options).render(true);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
static get defaultOptions() {
|
||||||
|
return mergeObject(super.defaultOptions, {
|
||||||
|
template: "systems/foundryvtt-reve-de-dragon/templates/sommeil/app-astrologie.hbs",
|
||||||
|
title: "Astrologie",
|
||||||
|
width: 'fit-content',
|
||||||
|
height: 'fit-content',
|
||||||
|
popOut: true,
|
||||||
|
resizable: false
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
constructor(actor, options = {}) {
|
||||||
|
super(options);
|
||||||
|
this.actor = actor;
|
||||||
|
this.hookReference = Hooks.on(APP_ASTROLOGIE_REFRESH, () => this.refreshAstrologie());
|
||||||
|
}
|
||||||
|
|
||||||
|
getData(options) {
|
||||||
|
this.appData = super.getData(options)
|
||||||
|
const calendrier = game.system.rdd.calendrier;
|
||||||
|
mergeObject(this.appData, {
|
||||||
|
isGM: game.user.isGM,
|
||||||
|
isActor: this.actor != undefined,
|
||||||
|
calendrier: calendrier.getTimestamp().toCalendrier(),
|
||||||
|
dates: calendrier.getJoursSuivants(10),
|
||||||
|
heures: RdDTimestamp.definitions(),
|
||||||
|
actorAstrologie: this.getActorAstrologie(),
|
||||||
|
gmAstrologie: this.getGMAstrologie(calendrier),
|
||||||
|
theme: {
|
||||||
|
signeAstral: RdDTimestamp.definition(0),
|
||||||
|
signeNaissance: RdDTimestamp.definition(0)
|
||||||
|
}
|
||||||
|
})
|
||||||
|
return this.appData;
|
||||||
|
}
|
||||||
|
|
||||||
|
getActorAstrologie() {
|
||||||
|
if (this.actor) {
|
||||||
|
return {
|
||||||
|
actor: this.actor,
|
||||||
|
nombres: this._organizeNombresAstraux(this.actor.listItems('nombreastral')),
|
||||||
|
ajustements: CONFIG.RDD.difficultesLibres,
|
||||||
|
etat: this.actor.getEtatGeneral(),
|
||||||
|
astrologie: this.actor.getCompetence('Astrologie')
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return {}
|
||||||
|
}
|
||||||
|
|
||||||
|
_organizeNombresAstraux(nombresAstraux) {
|
||||||
|
let organized = {};
|
||||||
|
nombresAstraux.forEach(na => {
|
||||||
|
if (!organized[na.system.jourindex]) {
|
||||||
|
organized[na.system.jourindex] = {
|
||||||
|
listValues: [],
|
||||||
|
jourlabel: na.system.jourlabel
|
||||||
|
}
|
||||||
|
}
|
||||||
|
organized[na.system.jourindex].listValues.push(na.system.value);
|
||||||
|
})
|
||||||
|
return organized;
|
||||||
|
}
|
||||||
|
|
||||||
|
getGMAstrologie(calendrier) {
|
||||||
|
if (game.user.isGM) {
|
||||||
|
const nbAstral = calendrier.getNombreAstral()
|
||||||
|
const heures = RdDTimestamp.heures();
|
||||||
|
return {
|
||||||
|
ajustementsActors: game.actors.filter(it => it.isPersonnage() && it.hasPlayerOwner)
|
||||||
|
.map(actor => this.getAjustementActor(actor, nbAstral, heures)),
|
||||||
|
nombresAstraux: calendrier.getNombresAstraux().map(na => this.getDetailNombreAstral(na))
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return {}
|
||||||
|
}
|
||||||
|
|
||||||
|
getAjustementActor(actor, nbAstral, heures) {
|
||||||
|
const hn = RdDTimestamp.findHeure(actor.getHeureNaissance())?.heure ?? 0;
|
||||||
|
return {
|
||||||
|
actor,
|
||||||
|
ajustements: heures.map(heure => {
|
||||||
|
return { heure, ajustement: RdDTimestamp.ajustementAstrologiqueHeure(hn, nbAstral, heure) };
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
getDetailNombreAstral(nombreAstral) {
|
||||||
|
const detail = duplicate(nombreAstral);
|
||||||
|
const timestamp = new RdDTimestamp({ indexDate: nombreAstral.index });
|
||||||
|
detail.date = { mois: timestamp.mois, jour: timestamp.jour + 1 };
|
||||||
|
detail.valeursFausses.forEach(fausse => fausse.actorName = game.actors.get(fausse.actorId).name ?? "Inconnu");
|
||||||
|
return detail;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* -------------------------------------------- */
|
||||||
|
activateListeners(html) {
|
||||||
|
super.activateListeners(html);
|
||||||
|
this.html = html;
|
||||||
|
this.html.find('select[name="signe-astral"]').change(event => {
|
||||||
|
this.selectNombreAstral(this.html.find('select[name="signe-astral"]').val());
|
||||||
|
})
|
||||||
|
this.html.find('select[name="signe-naissance"]').change(event => {
|
||||||
|
this.selectHeureNaissance(this.html.find('select[name="signe-naissance"]').val());
|
||||||
|
})
|
||||||
|
this.html.find('td.nombre-astral').click(event => {
|
||||||
|
this.selectNombreAstral(Number.parseInt(event.currentTarget.attributes['data-nombre-astral'].value) - 1);
|
||||||
|
})
|
||||||
|
this.html.find('tr.heure-naissance').click(event => {
|
||||||
|
this.selectHeureNaissance(event.currentTarget.attributes['data-heure-naissance'].value);
|
||||||
|
})
|
||||||
|
this.html.find('[name="jet-astrologie"]').click(event => this.requestJetAstrologie());
|
||||||
|
this.html.find('[name="rebuild-nombres-astraux"]').click(event => this.rebuildNombresAstraux());
|
||||||
|
|
||||||
|
this.onCalculThemeAstral();
|
||||||
|
}
|
||||||
|
|
||||||
|
selectHeureNaissance(heureNaissance) {
|
||||||
|
this.appData.theme.signeNaissance = RdDTimestamp.definition(heureNaissance);
|
||||||
|
this.onCalculThemeAstral();
|
||||||
|
}
|
||||||
|
|
||||||
|
selectNombreAstral(nombreAstral) {
|
||||||
|
this.appData.theme.signeAstral = RdDTimestamp.definition(nombreAstral);
|
||||||
|
this.onCalculThemeAstral();
|
||||||
|
}
|
||||||
|
|
||||||
|
/* -------------------------------------------- */
|
||||||
|
async rebuildNombresAstraux() {
|
||||||
|
game.system.rdd.calendrier.resetNombresAstraux();
|
||||||
|
|
||||||
|
await game.system.rdd.calendrier.rebuildNombresAstraux();
|
||||||
|
}
|
||||||
|
|
||||||
|
onCalculThemeAstral() {
|
||||||
|
const chiffreAstral = this.appData.theme.signeAstral.heure + 1;
|
||||||
|
const heureNaissance = this.appData.theme.signeNaissance.heure + 1;
|
||||||
|
RdDTimestamp.definitions().forEach(dh => {
|
||||||
|
const ajustement = RdDTimestamp.ajustementAstrologiqueHeure(heureNaissance, chiffreAstral, dh.heure + 1);
|
||||||
|
const txtAjustement = ajustement == 0 ? '' : Misc.toSignedString(ajustement);
|
||||||
|
this.html.find(`div.astro-ajustement.heure-${dh.hh}`).text(txtAjustement)
|
||||||
|
});
|
||||||
|
|
||||||
|
this.html.find(`select[name="signe-astral"]`).val(this.appData.theme.signeAstral.key)
|
||||||
|
this.html.find(`select[name="signe-naissance"]`).val(this.appData.theme.signeNaissance.key)
|
||||||
|
|
||||||
|
const angleAstrologie = ((chiffreAstral + heureNaissance) * 30) % 360 - 45;
|
||||||
|
this.html.find(`div.astro-roue div.astro-disque img`).css(this.cssRotation(angleAstrologie));
|
||||||
|
|
||||||
|
const timestamp = game.system.rdd.calendrier.getTimestamp();
|
||||||
|
|
||||||
|
this.html.find(`div.astro-roue div.astro-horloge-heure img`).css(this.cssRotation(timestamp.angleHeure));
|
||||||
|
this.html.find(`div.astro-roue div.astro-horloge-minute img`).css(this.cssRotation(timestamp.angleMinute));
|
||||||
|
}
|
||||||
|
|
||||||
|
cssRotation(angleAstrologie) {
|
||||||
|
const rotation = `rotate(${angleAstrologie}deg)`;
|
||||||
|
return {
|
||||||
|
'transform': rotation,
|
||||||
|
'-ms-transform': rotation,
|
||||||
|
'-moz-transform': rotation,
|
||||||
|
'-webkit-transform': rotation,
|
||||||
|
'-o-transform': rotation
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
requestJetAstrologie() {
|
||||||
|
if (!this.appData?.isActor) {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
let socketData = {
|
||||||
|
id: this.appData.actorAstrologie.actor.id,
|
||||||
|
carac_vue: this.actor.system.carac['vue'].value,
|
||||||
|
etat: this.actor.getEtatGeneral(),
|
||||||
|
astrologie: this.actor.getCompetence('Astrologie'),
|
||||||
|
conditions: this.html.find('[name="diffConditions"]').val(),
|
||||||
|
date: this.html.find('[name="joursAstrologie"]').val(),
|
||||||
|
userId: game.user.id
|
||||||
|
}
|
||||||
|
if (Misc.isUniqueConnectedGM()) {
|
||||||
|
game.system.rdd.calendrier.requestNombreAstral(socketData);
|
||||||
|
} else {
|
||||||
|
game.socket.emit(SYSTEM_SOCKET_ID, {
|
||||||
|
msg: "msg_request_nombre_astral",
|
||||||
|
data: socketData
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
refreshAstrologie() {
|
||||||
|
this.render(true)
|
||||||
|
}
|
||||||
|
|
||||||
|
async close(options) {
|
||||||
|
Hooks.off(APP_ASTROLOGIE_REFRESH, this.hookReference);
|
||||||
|
this.hookReference = undefined
|
||||||
|
await super.close(options)
|
||||||
|
}
|
||||||
|
}
|
||||||
105
module/sommeil/dialog-chateau-dormant.js
Normal file
@@ -0,0 +1,105 @@
|
|||||||
|
|
||||||
|
export class DialogChateauDormant extends Dialog {
|
||||||
|
|
||||||
|
static async create() {
|
||||||
|
const date = game.system.rdd.calendrier.dateCourante();
|
||||||
|
const actors = game.actors.filter(actor => actor.hasPlayerOwner && actor.isPersonnage());
|
||||||
|
|
||||||
|
const dialogData = {
|
||||||
|
actors: actors,
|
||||||
|
date: date,
|
||||||
|
motifStress: `Nuit du ${date}`,
|
||||||
|
finChateauDormant: game.system.rdd.calendrier.getTimestampFinChateauDormant()
|
||||||
|
};
|
||||||
|
const html = await renderTemplate("systems/foundryvtt-reve-de-dragon/templates/sommeil/dialog-chateau-dormant.hbs",
|
||||||
|
dialogData);
|
||||||
|
|
||||||
|
new DialogChateauDormant(dialogData, html)
|
||||||
|
.render(true);
|
||||||
|
}
|
||||||
|
|
||||||
|
constructor(dialogData, html) {
|
||||||
|
const options = {
|
||||||
|
classes: ["rdd-dialog-chateau-dormant"],
|
||||||
|
width: 600,
|
||||||
|
height: 'fit-content',
|
||||||
|
'z-index': 99999
|
||||||
|
};
|
||||||
|
const conf = {
|
||||||
|
title: "De Chateau dormant à Vaisseau",
|
||||||
|
content: html,
|
||||||
|
buttons: {
|
||||||
|
chateauDormant: { label: "Passer à Vaisseau!", callback: it => { this.onChateauDormant(); } }
|
||||||
|
}
|
||||||
|
};
|
||||||
|
super(conf, options);
|
||||||
|
this.dialogData = dialogData;
|
||||||
|
}
|
||||||
|
|
||||||
|
activateListeners(html) {
|
||||||
|
super.activateListeners(html);
|
||||||
|
this.html = html;
|
||||||
|
this.html.find('input.sommeil-insomnie').change(event => this.onInsomnie(event));
|
||||||
|
this._activateListenerOnActorMoral(this.html);
|
||||||
|
}
|
||||||
|
|
||||||
|
_activateListenerOnActorMoral(html) {
|
||||||
|
html.find(`span.sommeil-actor-moral a`).click(event => this.onActorMoral(event));
|
||||||
|
}
|
||||||
|
|
||||||
|
onInsomnie(event) {
|
||||||
|
const sommeilInsomnie = this.html.find(event.currentTarget);
|
||||||
|
const isInsomnie = sommeilInsomnie.is(':checked');
|
||||||
|
const sommeilHeures = sommeilInsomnie.parents('.set-sommeil-actor').find('input.sommeil-heures');
|
||||||
|
sommeilHeures.prop('disabled', isInsomnie);
|
||||||
|
if (isInsomnie) {
|
||||||
|
sommeilHeures.val('0');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
async onActorMoral(event) {
|
||||||
|
const selected = this.html.find(event.currentTarget);
|
||||||
|
const actorRow = selected.parents('.set-sommeil-actor');
|
||||||
|
const actorId = actorRow.data('actor-id');
|
||||||
|
const actor = this.getActor(actorId);
|
||||||
|
actor.system.sommeil.moral = selected.data('moral');
|
||||||
|
const htmlMoral = await renderTemplate('systems/foundryvtt-reve-de-dragon/templates/sommeil/sommeil-actor-moral.hbs', actor.system.sommeil)
|
||||||
|
actorRow.find('.sommeil-actor-moral').html(htmlMoral);
|
||||||
|
// re-attach listeners for actor row
|
||||||
|
this._activateListenerOnActorMoral(actorRow);
|
||||||
|
}
|
||||||
|
|
||||||
|
getActor(actorId) {
|
||||||
|
return this.dialogData.actors.find(it => it.id == actorId);
|
||||||
|
}
|
||||||
|
|
||||||
|
async onChateauDormant() {
|
||||||
|
const motifStress = this.html.find("form input[name='motifStress']").val();
|
||||||
|
jQuery.map(
|
||||||
|
this.html.find('li.set-sommeil-actor'),
|
||||||
|
it => this.extractConsigneActor(this.html.find(it), motifStress)
|
||||||
|
).forEach(async consigne => await consigne.actor.prepareChateauDormant(consigne))
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
extractConsigneActor(actorRow, motifStress) {
|
||||||
|
const actorId = actorRow.data('actor-id');
|
||||||
|
const actor = this.getActor(actorId);
|
||||||
|
const insomnie = actorRow.find('input.sommeil-insomnie').is(':checked');
|
||||||
|
return {
|
||||||
|
actor,
|
||||||
|
ignorer: actorRow.find('input.sommeil-ignorer').is(':checked'),
|
||||||
|
stress: {
|
||||||
|
motif: motifStress,
|
||||||
|
valeur: Number.parseInt(actorRow.find('input.sommeil-stress').val()),
|
||||||
|
},
|
||||||
|
sommeil: {
|
||||||
|
nouveaujour: true,
|
||||||
|
date: this.dialogData.finChateauDormant,
|
||||||
|
insomnie: insomnie,
|
||||||
|
heures: insomnie ? 0 : Number.parseInt(actorRow.find('input.sommeil-heures').val()),
|
||||||
|
moral: actor.system.sommeil.moral ?? 'neutre',
|
||||||
|
}
|
||||||
|
};
|
||||||
|
}
|
||||||
|
}
|
||||||
87
module/sommeil/dialog-repos.js
Normal file
@@ -0,0 +1,87 @@
|
|||||||
|
import { ReglesOptionelles } from "../settings/regles-optionelles.js";
|
||||||
|
import { EffetsDraconiques } from "../tmr/effets-draconiques.js";
|
||||||
|
|
||||||
|
export class DialogRepos extends Dialog {
|
||||||
|
|
||||||
|
static async create(actor) {
|
||||||
|
if (!actor.isPersonnage()) {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
if (!ReglesOptionelles.isUsing("chateau-dormant-gardien") || !actor.hasPlayerOwner) {
|
||||||
|
actor.system.sommeil = {
|
||||||
|
"nouveaujour": true,
|
||||||
|
"insomnie": EffetsDraconiques.isSujetInsomnie(actor),
|
||||||
|
"moral": "neutre",
|
||||||
|
"heures": 4
|
||||||
|
}
|
||||||
|
}
|
||||||
|
const html = await renderTemplate("systems/foundryvtt-reve-de-dragon/templates/sommeil/dialog-repos.html", actor);
|
||||||
|
const dialog = new DialogRepos(html, actor);
|
||||||
|
dialog.render(true);
|
||||||
|
}
|
||||||
|
|
||||||
|
constructor(html, actor) {
|
||||||
|
let options = { classes: ["DialogCreateSigneDraconiqueActorsActors"], width: 400, height: 'fit-content', 'z-index': 99999 };
|
||||||
|
let conf = {
|
||||||
|
title: "Se reposer",
|
||||||
|
content: html,
|
||||||
|
default: "repos",
|
||||||
|
buttons: {
|
||||||
|
"repos": { label: "Se reposer", callback: async it => { this.repos(); } }
|
||||||
|
}
|
||||||
|
};
|
||||||
|
super(conf, options);
|
||||||
|
this.actor = actor;
|
||||||
|
}
|
||||||
|
activateListeners(html) {
|
||||||
|
super.activateListeners(html);
|
||||||
|
this.html = html;
|
||||||
|
this.html.find(`.sommeil-actor-moral a`).click(event => this.onActorMoral(event));
|
||||||
|
}
|
||||||
|
/* -------------------------------------------- */
|
||||||
|
|
||||||
|
async repos() {
|
||||||
|
const selection = await this.html.find("[name='repos']:checked").val();
|
||||||
|
switch (selection) {
|
||||||
|
case "sieste": return await this.sieste();
|
||||||
|
case "nuit": return await this.nuit();
|
||||||
|
case "chateau-dormant": return await this.chateauDormant();
|
||||||
|
case "gris-reve": return await this.grisReve();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
async grisReve() {
|
||||||
|
await this.html.find("[name='nb-jours']").change();
|
||||||
|
const nbJours = Number.parseInt(await this.html.find("[name='nb-jours']").val());
|
||||||
|
await this.actor.grisReve(nbJours);
|
||||||
|
}
|
||||||
|
|
||||||
|
async chateauDormant() {
|
||||||
|
await this.actor.dormirChateauDormant();
|
||||||
|
}
|
||||||
|
|
||||||
|
async nuit() {
|
||||||
|
await this.html.find("[name='sommeil.heures']").change();
|
||||||
|
const val = await this.html.find("[name='sommeil.heures']").val();
|
||||||
|
const sommeilHeures = Number.parseInt(val ?? '0');
|
||||||
|
await this.actor.dormir(sommeilHeures, { chateauDormant: true });
|
||||||
|
}
|
||||||
|
|
||||||
|
async sieste() {
|
||||||
|
await this.html.find("[name='sieste.heures']").change();
|
||||||
|
const siesteHeures = Number.parseInt(await this.html.find("[name='sieste.heures']").val());
|
||||||
|
await this.actor.dormir(siesteHeures);
|
||||||
|
}
|
||||||
|
|
||||||
|
async onActorMoral(event) {
|
||||||
|
const selected = this.html.find(event.currentTarget);
|
||||||
|
const parentDiv = selected.parents().find('.sommeil-actor-moral');
|
||||||
|
const situationMoral = selected.data('moral');
|
||||||
|
await this.actor.setInfoSommeilMoral(situationMoral);
|
||||||
|
const htmlMoral = await renderTemplate('systems/foundryvtt-reve-de-dragon/templates/sommeil/sommeil-actor-moral.hbs', {
|
||||||
|
moral: situationMoral
|
||||||
|
});
|
||||||
|
parentDiv.html(htmlMoral);
|
||||||
|
this.html.find(`.sommeil-actor-moral a`).click(event => this.onActorMoral(event));
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -15,7 +15,7 @@ export class DialogStress extends Dialog {
|
|||||||
)
|
)
|
||||||
};
|
};
|
||||||
|
|
||||||
const html = await renderTemplate("systems/foundryvtt-reve-de-dragon/templates/dialog-stress.html", dialogData);
|
const html = await renderTemplate("systems/foundryvtt-reve-de-dragon/templates/sommeil/dialog-stress.html", dialogData);
|
||||||
new DialogStress(dialogData, html)
|
new DialogStress(dialogData, html)
|
||||||
.render(true);
|
.render(true);
|
||||||
}
|
}
|
||||||
@@ -50,7 +50,7 @@ export class DialogStress extends Dialog {
|
|||||||
|
|
||||||
this.dialogData.actors.filter(it => it.selected)
|
this.dialogData.actors.filter(it => it.selected)
|
||||||
.map(it => game.actors.get(it.id))
|
.map(it => game.actors.get(it.id))
|
||||||
.forEach(actor => actor.distribuerStress(compteur, stress, motif));
|
.forEach(async actor => await actor.distribuerStress(compteur, stress, motif));
|
||||||
}
|
}
|
||||||
|
|
||||||
async onSelectActor(event) {
|
async onSelectActor(event) {
|
||||||
@@ -39,18 +39,18 @@ export class Targets {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static getTarget() {
|
static getTarget(options = { warn: true }) {
|
||||||
const targets = Targets.listTargets();
|
const targets = Targets.listTargets();
|
||||||
switch (targets.length) {
|
switch (targets.length) {
|
||||||
case 1:
|
case 1:
|
||||||
return targets[0];
|
return targets[0];
|
||||||
case 0:
|
case 0:
|
||||||
ui.notifications.warn("Vous devez choisir une cible à attaquer!");
|
if (options.warn) ui.notifications.warn("Vous devez choisir une cible à attaquer!");
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
ui.notifications.warn("Vous devez choisir une cible (et <strong>une seule</strong>) à attaquer!");
|
if (options.warn) ui.notifications.warn("Vous devez choisir une cible (et <strong>une seule</strong>) à attaquer!");
|
||||||
return;
|
|
||||||
}
|
}
|
||||||
|
return undefined;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
335
module/tirage/fenetre-recherche-tirage.js
Normal file
@@ -0,0 +1,335 @@
|
|||||||
|
import { RdDItem } from '../item.js';
|
||||||
|
import { HtmlUtility } from '../html-utility.js';
|
||||||
|
import { Misc } from "../misc.js";
|
||||||
|
import { CompendiumTableHelpers } from '../settings/system-compendiums.js';
|
||||||
|
import { RdDRaretes } from '../item/raretes.js';
|
||||||
|
import { Grammar } from '../grammar.js';
|
||||||
|
|
||||||
|
const FILTER_GROUPS = [
|
||||||
|
{ group: 'type', label: "Type d'objet" },
|
||||||
|
{ group: 'comestible', label: 'Alimentaire' },
|
||||||
|
{ group: 'utilisation', label: 'Utilisation' },
|
||||||
|
{ group: 'rarete', label: 'Rarete' },
|
||||||
|
{ group: 'qualite', label: 'Qualité' },
|
||||||
|
{ group: 'enc', label: 'Encombrement' },
|
||||||
|
{ group: 'prix', label: 'Prix' },
|
||||||
|
]
|
||||||
|
|
||||||
|
const FILTERS = [
|
||||||
|
{ group: 'comestible', code: 'comestible', label: 'Comestible', check: (item, milieux) => item.getUtilisation() == 'cuisine' },
|
||||||
|
{ group: 'comestible', code: 'pret', label: 'Préparé', check: (item, milieux) => item.getUtilisationCuisine() == 'pret' },
|
||||||
|
{ group: 'comestible', code: 'brut', label: 'A préparer', check: (item, milieux) => item.getUtilisationCuisine() == 'brut' },
|
||||||
|
{ group: 'comestible', code: 'boisson', label: 'Boisson', check: (item, milieux) => item.isBoisson() },
|
||||||
|
{ group: 'comestible', code: 'alcool', label: 'Alcool', check: (item, milieux) => item.isAlcool() },
|
||||||
|
{ group: 'comestible', code: 'immangeable', label: 'Immangeable', check: (item, milieux) => item.isInventaire() && item.getUtilisation() != 'cuisine' },
|
||||||
|
|
||||||
|
{ group: 'utilisation', code: 'alchimie', label: 'Alchimique', check: (item, milieux) => item.isInventaire() && item.getUtilisation() == 'alchimie' },
|
||||||
|
{ group: 'utilisation', code: 'soins', label: 'Médical', check: (item, milieux) => item.isInventaire() && item.getUtilisation() == 'soins' },
|
||||||
|
{ group: 'utilisation', code: 'poison', label: 'Toxique', check: (item, milieux) => item.isInventaire() && item.getUtilisation() == 'poison' },
|
||||||
|
{ group: 'utilisation', code: 'cuisine', label: 'Cuisine', check: (item, milieux) => item.isInventaire() && item.getUtilisation() == 'cuisine' },
|
||||||
|
{ group: 'utilisation', code: 'autres', label: 'Autres/inconnu', check: (item, milieux) => !item.isInventaire() || item.getUtilisation() == '' },
|
||||||
|
|
||||||
|
{ group: "qualite", code: "mauvaise", label: "Mauvaise (négative)", check: (item, milieux) => item.isInventaire() && item.system.qualite < 0 },
|
||||||
|
{ group: "qualite", code: "quelconque", label: "Quelconque (0)", check: (item, milieux) => item.isInventaire() && item.system.qualite == 0 },
|
||||||
|
{ group: "qualite", code: "correcte", label: "Correcte (1-3)", check: (item, milieux) => item.isInventaire() && 1 <= item.system.qualite && item.system.qualite <= 3 },
|
||||||
|
{ group: "qualite", code: "bonne", label: "Bonne (4-6)", check: (item, milieux) => item.isInventaire() && 4 <= item.system.qualite && item.system.qualite <= 6 },
|
||||||
|
{ group: "qualite", code: "excellente", label: "Excellente (7-9)", check: (item, milieux) => item.isInventaire() && 7 <= item.system.qualite && item.system.qualite <= 9 },
|
||||||
|
{ group: "qualite", code: "mythique", label: "Mythique (10+)", check: (item, milieux) => item.isInventaire() && 10 <= item.system.qualite },
|
||||||
|
|
||||||
|
{ group: "enc", code: "negligeable", label: "Négligeable (jusqu'à 0.1)", check: (item, milieux) => item.isInventaire() && item.system.encombrement <= 0.1 },
|
||||||
|
{ group: "enc", code: "leger", label: "Léger (0.1 à 0.5)", check: (item, milieux) => item.isInventaire() && 0.1 < item.system.encombrement && item.system.encombrement <= 0.5 },
|
||||||
|
{ group: "enc", code: "moyen", label: "Moyen (0.5 à 1.5)", check: (item, milieux) => item.isInventaire() && 0.5 < item.system.encombrement && item.system.encombrement <= 1.5 },
|
||||||
|
{ group: "enc", code: "lourd", label: "Lourd (1.5 à 3)", check: (item, milieux) => item.isInventaire() && 1.5 < item.system.encombrement && item.system.encombrement <= 3 },
|
||||||
|
{ group: "enc", code: "massif", label: "Massif (3 à 10)", check: (item, milieux) => item.isInventaire() && 3 < item.system.encombrement && item.system.encombrement <= 10 },
|
||||||
|
{ group: "enc", code: "anemort", label: "Un âne mort (plus de 10)", check: (item, milieux) => item.isInventaire() && 10 < item.system.encombrement },
|
||||||
|
|
||||||
|
{ group: "prix", code: "gratuit", label: "Gratuit", check: (item, milieux) => item.isInventaire() && item.system.cout == 0 },
|
||||||
|
{ group: "prix", code: "deniers", label: "Deniers (étain)", check: (item, milieux) => item.isInventaire() && 0 < item.system.cout && item.system.cout < 0.1 },
|
||||||
|
{ group: "prix", code: "bronze", label: "Sous (bronze)", check: (item, milieux) => item.isInventaire() && 0.1 <= item.system.cout && item.system.cout < 1 },
|
||||||
|
{ group: "prix", code: "sols", label: "Sols (argent)", check: (item, milieux) => item.isInventaire() && 1 <= item.system.cout && item.system.cout < 10 },
|
||||||
|
{ group: "prix", code: "dragons", label: "Dragons (or)", check: (item, milieux) => item.isInventaire() && 10 <= item.system.cout },
|
||||||
|
]
|
||||||
|
|
||||||
|
|
||||||
|
function $filterMilieux(milieux) {
|
||||||
|
return milieux.map(m => {
|
||||||
|
return {
|
||||||
|
code: m,
|
||||||
|
label: m,
|
||||||
|
check: (item, milieux) => item.isPresentDansMilieux(m)
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
function $filterRarete() {
|
||||||
|
return RdDRaretes.raretes()
|
||||||
|
.filter(it => it.frequence > 0)
|
||||||
|
.map(r => {
|
||||||
|
return {
|
||||||
|
group: 'rarete',
|
||||||
|
code: r.code,
|
||||||
|
label: r.label,
|
||||||
|
check: (item, milieux) => item.getRaretes(milieux).map(it => it.code).includes(r.code)
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
function $filterTypes() {
|
||||||
|
return RdDItem.getItemTypesInventaire().map(type => {
|
||||||
|
return {
|
||||||
|
group: 'type',
|
||||||
|
code: type,
|
||||||
|
label: Misc.typeName('Item', type),
|
||||||
|
check: (item, milieux) => item.type == type
|
||||||
|
};
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
function $getAllFilters() {
|
||||||
|
return FILTERS
|
||||||
|
.concat($filterTypes())
|
||||||
|
.concat($filterRarete());
|
||||||
|
}
|
||||||
|
|
||||||
|
function $addFilterToGroup(groups, filter) {
|
||||||
|
if (filter.group && filter.code && filter.label) {
|
||||||
|
let fg = groups.find(g => g.group == filter.group);
|
||||||
|
if (fg == undefined) {
|
||||||
|
groups.push({ group: filter.group, label: filter.group, filters: [filter] })
|
||||||
|
}
|
||||||
|
else if (fg.filters == undefined) {
|
||||||
|
fg.filters = [filter];
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
fg.filters.push(filter);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
console.warn("Filtre incorrect, pas de groupe/code/label", filter);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function $loadFilters(parameters) {
|
||||||
|
$getAllFilters(parameters.milieux).forEach(f => $addFilterToGroup(parameters.filterGroups, f));
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
export class FenetreRechercheTirage extends Application {
|
||||||
|
static get defaultOptions() {
|
||||||
|
return mergeObject(super.defaultOptions, {
|
||||||
|
template: "systems/foundryvtt-reve-de-dragon/templates/tirage/fenetre-recherche-tirage.hbs",
|
||||||
|
title: `Recherches et tirages`,
|
||||||
|
width: 600,
|
||||||
|
height: 600,
|
||||||
|
popOut: true,
|
||||||
|
dragDrop: [{ dragSelector: "a.content-link" }],
|
||||||
|
resizable: true
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
static async create() {
|
||||||
|
const milieux = await game.system.rdd.environnement.milieux();
|
||||||
|
const parameters = {
|
||||||
|
milieux: milieux,
|
||||||
|
filterMilieux: $filterMilieux(milieux),
|
||||||
|
filterGroups: duplicate(FILTER_GROUPS).filter(it => it.group),
|
||||||
|
}
|
||||||
|
const options = {}
|
||||||
|
$loadFilters(parameters);
|
||||||
|
|
||||||
|
new FenetreRechercheTirage(parameters, options).render(true);
|
||||||
|
}
|
||||||
|
|
||||||
|
constructor(parameters, options) {
|
||||||
|
super(options);
|
||||||
|
this.parameters = parameters;
|
||||||
|
}
|
||||||
|
|
||||||
|
async getData() {
|
||||||
|
return mergeObject(await super.getData(), this.parameters)
|
||||||
|
}
|
||||||
|
|
||||||
|
_canDragStart() { return true; }
|
||||||
|
_onDragStart(event) { }
|
||||||
|
|
||||||
|
_getHeaderButtons() {
|
||||||
|
let buttons = super._getHeaderButtons();
|
||||||
|
if (game.user.isGM) {
|
||||||
|
buttons.unshift({
|
||||||
|
class: "configurer",
|
||||||
|
label: "Configurer",
|
||||||
|
icon: "fas fa-cogs",
|
||||||
|
onclick: ev => this.configurer()
|
||||||
|
});
|
||||||
|
}
|
||||||
|
return buttons
|
||||||
|
}
|
||||||
|
|
||||||
|
activateListeners(html) {
|
||||||
|
super.activateListeners(html);
|
||||||
|
this.html = html;
|
||||||
|
|
||||||
|
this.showFilterGroup(this.html, false);
|
||||||
|
|
||||||
|
this.html.find("a.section-filters-toggle").click(event => {
|
||||||
|
const groupDiv = this.html.find(event.currentTarget)?.parents('div.section-filters-root').first();
|
||||||
|
const visible = groupDiv.find('div.section-filters-content').first().is(":visible");
|
||||||
|
this.showFilterGroup(groupDiv, !visible)
|
||||||
|
});
|
||||||
|
|
||||||
|
this.html.find("input:is(.activate-filter-group,.activate-filter-milieu)").change(event => this.changeListeFiltresActifs())
|
||||||
|
|
||||||
|
this.html.find("a.supprimer-filtres").click(async event => this.supprimerFiltres())
|
||||||
|
|
||||||
|
this.html.find("a.recherche-filtres").click(async event => await this.recherche())
|
||||||
|
|
||||||
|
this.html.find("a.tirage-filtres").click(async event => {
|
||||||
|
const table = await this.buildTable();
|
||||||
|
const row = await CompendiumTableHelpers.getRandom(table, 'Item')
|
||||||
|
await CompendiumTableHelpers.tableRowToChatMessage(row, 'Item');
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
showFilterGroup(groupDiv, show) {
|
||||||
|
if (groupDiv) {
|
||||||
|
HtmlUtility.showControlWhen(groupDiv.find('div.section-filters-content'), show);
|
||||||
|
HtmlUtility.showControlWhen(groupDiv.find('i.section-filters-hide'), show);
|
||||||
|
HtmlUtility.showControlWhen(groupDiv.find('i.section-filters-show'), !show);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
supprimerFiltres() {
|
||||||
|
this.html.find('input:is(.activate-filter-group,.activate-filter-milieu)').prop("checked", false);
|
||||||
|
this.html.find('div.liste-resultats-recherche').html('');
|
||||||
|
this.html.find('.section-filters-text input.recherche').val('');
|
||||||
|
}
|
||||||
|
|
||||||
|
async recherche() {
|
||||||
|
const table = await this.buildTable();
|
||||||
|
const htmlResultats = await renderTemplate(`systems/foundryvtt-reve-de-dragon/templates/tirage/liste-resultats-recherche.hbs`, { resultats: table });
|
||||||
|
this.html.find('div.liste-resultats-recherche').html(htmlResultats);
|
||||||
|
this._dragDrop.forEach(dragDropHandler => dragDropHandler.bind(this.element[0]))
|
||||||
|
}
|
||||||
|
|
||||||
|
async buildTable() {
|
||||||
|
const milieux = this.getSelectedMilieux();
|
||||||
|
const filterItemMilieux = this.buildCheckedGroupFilter(milieux);
|
||||||
|
const filter = it => filterItemMilieux(it, milieux);
|
||||||
|
const itemFrequence = it => it.getFrequence(milieux);
|
||||||
|
return await game.system.rdd.environnement.buildTable(itemFrequence, filter)
|
||||||
|
}
|
||||||
|
|
||||||
|
buildMilieuxFilter(milieux) {
|
||||||
|
if (milieux) {
|
||||||
|
return this.buildOrFilter(this.parameters.filterMilieux.filter(it => milieux.includes(it.code)).map(f => f.check));
|
||||||
|
}
|
||||||
|
return (it, mi) => true;
|
||||||
|
}
|
||||||
|
buildFilterRechercheName() {
|
||||||
|
const recherche = this.html.find('.section-filters-text input.recherche').val();
|
||||||
|
if (recherche) {
|
||||||
|
return (it, mi) => Grammar.includesLowerCaseNoAccent(it.name, recherche);
|
||||||
|
}
|
||||||
|
return (it, mi) => true;
|
||||||
|
}
|
||||||
|
|
||||||
|
buildCheckedGroupFilter(milieux) {
|
||||||
|
const filtersList = this.getGroupCheckedFilters()
|
||||||
|
.map(gf => this.buildOrFilter(gf.filters.map(f => f.check)));
|
||||||
|
filtersList.push(this.buildMilieuxFilter(milieux));
|
||||||
|
filtersList.push(this.buildFilterRechercheName());
|
||||||
|
return this.buildAndFilter(filtersList)
|
||||||
|
}
|
||||||
|
|
||||||
|
buildAndFilter(filters) { return filters.reduce((f1, f2) => { return (it, mi) => f1(it, mi) && f2(it, mi); }); }
|
||||||
|
buildOrFilter(filters) { return filters.reduce((f1, f2) => { return (it, mi) => f1(it, mi) || f2(it, mi); }); }
|
||||||
|
|
||||||
|
changeListeFiltresActifs() {
|
||||||
|
const milieux = this.getSelectedMilieux();
|
||||||
|
const summariesList = this.getGroupCheckedFilters()
|
||||||
|
.map(gf => {
|
||||||
|
return gf.group.label + ': ' + gf.filters
|
||||||
|
.map(f => f.label)
|
||||||
|
.reduce(Misc.joining(', '))
|
||||||
|
});
|
||||||
|
if (milieux) {
|
||||||
|
summariesList.push('Milieux: ' + this.parameters.filterMilieux.filter(f => milieux.includes(f.code)).map(f => f.label).reduce(Misc.joining(', ')))
|
||||||
|
}
|
||||||
|
const fullText = summariesList.length == 0 ? "" : summariesList.reduce(Misc.joining(' - '));
|
||||||
|
this.html.find('span.liste-filtres-actifs').text(fullText);
|
||||||
|
}
|
||||||
|
|
||||||
|
getGroupCheckedFilters() {
|
||||||
|
const checkedGroupFilters = jQuery.map(this.html.find('input.activate-filter-group:checked'), it => this.html.find(it))
|
||||||
|
.map(element => {
|
||||||
|
return {
|
||||||
|
group: element.data('group'),
|
||||||
|
code: element.data('code')
|
||||||
|
};
|
||||||
|
}).filter(it => it.group);
|
||||||
|
|
||||||
|
const entries = Object.entries(Misc.classify(checkedGroupFilters, it => it.group));
|
||||||
|
return entries.map(([key, list]) => {
|
||||||
|
const group = this.parameters.filterGroups.find(g => g.group == key);
|
||||||
|
const filters = list.map(it => group.filters.find(f => it.code == f.code));
|
||||||
|
return { group, filters };
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
getSelectedMilieux() {
|
||||||
|
const milieux = jQuery.map(this.html.find('input.activate-filter-milieu:checked'), it => {
|
||||||
|
return this.html.find(it).data('code');
|
||||||
|
});
|
||||||
|
return milieux.length == 0 ? undefined : milieux
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
async configurer() {
|
||||||
|
FenetreRechercheConfiguration.create();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
class FenetreRechercheConfiguration extends Dialog {
|
||||||
|
static async create() {
|
||||||
|
const configuration = {
|
||||||
|
compendiums: game.packs.filter(it => it.metadata.type == 'Item').map(it => it.metadata)
|
||||||
|
.map(it => mergeObject({ selected: game.system.rdd.environnement.compendiums.includes(it.id) }, it))
|
||||||
|
}
|
||||||
|
const html = await renderTemplate("systems/foundryvtt-reve-de-dragon/templates/tirage/fenetre-recherche-configuration.hbs", configuration);
|
||||||
|
new FenetreRechercheConfiguration(html).render(true);
|
||||||
|
}
|
||||||
|
|
||||||
|
constructor(html) {
|
||||||
|
const options = {
|
||||||
|
classes: ["fenetre-recherche-configuration"],
|
||||||
|
width: 600,
|
||||||
|
height: 'fit-content',
|
||||||
|
'max-height': 600,
|
||||||
|
height: 'fit-content',
|
||||||
|
'z-index': 99999
|
||||||
|
};
|
||||||
|
const conf = {
|
||||||
|
title: 'Configuration de la recherche',
|
||||||
|
content: html,
|
||||||
|
buttons: {
|
||||||
|
"Sauvegarder": { label: "Sauvegarder", callback: async it => { await this.sauvegarder(); } }
|
||||||
|
}
|
||||||
|
};
|
||||||
|
super(conf, options)
|
||||||
|
}
|
||||||
|
|
||||||
|
activateListeners(html) {
|
||||||
|
this.html = html;
|
||||||
|
super.activateListeners(html);
|
||||||
|
this.html.find("button.configuration-save").click(event => this.sauvegarder())
|
||||||
|
}
|
||||||
|
|
||||||
|
async sauvegarder() {
|
||||||
|
const compendiumIds = jQuery.map(this.html.find("input.select-compendium:checked"), it => {
|
||||||
|
return this.html.find(it).data('id');
|
||||||
|
});
|
||||||
|
await game.system.rdd.environnement.saveCompendiums(compendiumIds);
|
||||||
|
this.close();
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -59,24 +59,16 @@ export class TMRRencontres {
|
|||||||
return rencontre.clone({
|
return rencontre.clone({
|
||||||
'system.force': await RdDDice.rollTotal(rencontre.system.formule),
|
'system.force': await RdDDice.rollTotal(rencontre.system.formule),
|
||||||
'system.coord': tmr?.coord,
|
'system.coord': tmr?.coord,
|
||||||
'system.date': game.system.rdd.calendrier.getDateFromIndex(),
|
'system.date': game.system.rdd.calendrier.dateCourante(),
|
||||||
'system.heure': game.system.rdd.calendrier.getCurrentHeure()
|
'system.heure': game.system.rdd.calendrier.heureCourante().key
|
||||||
}, { save: false });
|
}, { save: false });
|
||||||
}
|
}
|
||||||
|
|
||||||
async calculRencontre(rencontre, tmr = undefined) {
|
async calculRencontre(rencontre, tmr = undefined) {
|
||||||
if (rencontre.system.coord == "") {
|
rencontre.system.coord = rencontre.system.coord ?? tmr?.coord;
|
||||||
rencontre.system.coord = tmr?.coord;
|
rencontre.system.force = rencontre.system.force ?? await RdDDice.rollTotal(rencontre.system.formule);
|
||||||
}
|
rencontre.system.date = rencontre.system.date ?? game.system.rdd.calendrier.dateCourante();
|
||||||
if (rencontre.system.force == 0) {
|
rencontre.system.heure = rencontre.system.heure ?? game.system.rdd.calendrier.heureCourante().key;
|
||||||
rencontre.system.force = await RdDDice.rollTotal(rencontre.system.formule);
|
|
||||||
}
|
|
||||||
if (rencontre.system.date == "") {
|
|
||||||
rencontre.system.date = game.system.rdd.calendrier.getDateFromIndex();
|
|
||||||
}
|
|
||||||
if (rencontre.system.heure == "") {
|
|
||||||
rencontre.system.heure = game.system.rdd.calendrier.getCurrentHeure();
|
|
||||||
}
|
|
||||||
return rencontre;
|
return rencontre;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -164,6 +164,10 @@ export class EffetsDraconiques {
|
|||||||
return actor.items.find(it => EffetsDraconiques.urgenceDraconique.match(it));
|
return actor.items.find(it => EffetsDraconiques.urgenceDraconique.match(it));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static isSujetInsomnie(actor) {
|
||||||
|
return actor.items.find(it => ['queue', 'ombre'].includes(it.type) && Grammar.includesLowerCaseNoAccent(it.name, 'Insomnie')) ? true : false;
|
||||||
|
}
|
||||||
|
|
||||||
static isPeage(actor) {
|
static isPeage(actor) {
|
||||||
return EffetsDraconiques.filterItems(actor, Draconique.isSouffleDragon, 'péage').length > 0;
|
return EffetsDraconiques.filterItems(actor, Draconique.isSouffleDragon, 'péage').length > 0;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
import { ChatUtility } from "./chat-utility.js";
|
import { ChatUtility } from "../chat-utility.js";
|
||||||
import { Poetique } from "./poetique.js";
|
import { Poetique } from "../poetique.js";
|
||||||
import { RdDDice } from "./rdd-dice.js";
|
import { RdDDice } from "../rdd-dice.js";
|
||||||
import { TMRUtility } from "./tmr-utility.js";
|
import { TMRUtility } from "../tmr-utility.js";
|
||||||
|
|
||||||
export class EffetsRencontre {
|
export class EffetsRencontre {
|
||||||
|
|
||||||
@@ -1,198 +1,206 @@
|
|||||||
{"name":"Argent (1 sol)","type":"monnaie","img":"systems/foundryvtt-reve-de-dragon/icons/objets/piece_argent_sol.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Item.6M7WG9ciKuoYtN9i"}},"_id":"0I30m9qcYJk6UR6o","system":{"description":"","descriptionmj":"","encombrement":null,"quantite":null,"qualite":0,"cout":1},"ownership":{"default":0,"jtRmvSuwkwMmIMf0":3},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.3.13","coreVersion":"10.291","createdTime":1668808206013,"modifiedTime":1671050477120,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
{"name":"Argent (1 sol)","type":"monnaie","img":"systems/foundryvtt-reve-de-dragon/icons/objets/piece_argent_sol.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Item.6M7WG9ciKuoYtN9i"}},"_id":"0I30m9qcYJk6UR6o","system":{"description":"","descriptionmj":"","encombrement":null,"quantite":null,"qualite":0,"cout":1,"milieu":"","environnement":[{"milieu":"Villages","rarete":"Frequente","frequence":18},{"milieu":"Villes","rarete":"Commune","frequence":54}]},"ownership":{"default":0,"jtRmvSuwkwMmIMf0":3},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.6.15","coreVersion":"10.291","createdTime":1668808206013,"modifiedTime":1676074487962,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
||||||
{"_id":"0Vgscex1VV4ybSUQ","name":"Bonnet de laine","type":"objet","img":"systems/foundryvtt-reve-de-dragon/icons/objets/bonnet_laine.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.equipement.0Vgscex1VV4ybSUQ"}},"system":{"description":"","descriptionmj":"","encombrement":0.05,"quantite":1,"qualite":0,"cout":0.06,"equipe":false,"resistance":0},"ownership":{"default":0,"rYShh2P1DNavdoBD":3},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.3.13","coreVersion":"10.291","createdTime":1668808206013,"modifiedTime":1671050477120,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
{"_id":"0Vgscex1VV4ybSUQ","name":"Bonnet de laine","type":"objet","img":"systems/foundryvtt-reve-de-dragon/icons/objets/bonnet_laine.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.equipement.0Vgscex1VV4ybSUQ"}},"system":{"description":"","descriptionmj":"","encombrement":0.05,"quantite":1,"qualite":0,"cout":0.06,"milieu":"","environnement":[{"milieu":"Villages","rarete":"Commune","frequence":54},{"milieu":"Villes","rarete":"Commune","frequence":54}],"equipe":false,"resistance":0},"ownership":{"default":0,"rYShh2P1DNavdoBD":3},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.6.15","coreVersion":"10.291","createdTime":1668808206013,"modifiedTime":1676074487962,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
||||||
{"_id":"1Dc4KzZageae7lhI","name":"Balles de jongleur","type":"objet","img":"systems/foundryvtt-reve-de-dragon/icons/objets/balle_jongleur.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.equipement.1Dc4KzZageae7lhI"}},"system":{"description":"","descriptionmj":"","encombrement":0.1,"quantite":4,"qualite":0,"cout":0.32,"equipe":false,"resistance":0},"ownership":{"default":0,"rYShh2P1DNavdoBD":3},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.3.13","coreVersion":"10.291","createdTime":1668808206013,"modifiedTime":1671050477120,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
{"_id":"1Dc4KzZageae7lhI","name":"Balles de jongleur","type":"objet","img":"systems/foundryvtt-reve-de-dragon/icons/objets/balle_jongleur.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.equipement.1Dc4KzZageae7lhI"}},"system":{"description":"","descriptionmj":"","encombrement":0.1,"quantite":4,"qualite":0,"cout":0.32,"milieu":"","environnement":[{"milieu":"Villages","rarete":"Rare","frequence":6},{"milieu":"Villes","rarete":"Frequente","frequence":18}],"equipe":false,"resistance":0},"ownership":{"default":0,"rYShh2P1DNavdoBD":3},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.6.15","coreVersion":"10.291","createdTime":1668808206013,"modifiedTime":1676074487962,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
||||||
{"_id":"1O7IJiQSDYxJ5VsD","name":"Bouclier moyen","type":"arme","img":"systems/foundryvtt-reve-de-dragon/icons/armes_armures/bouclier_moyen.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.equipement.1O7IJiQSDYxJ5VsD"}},"system":{"description":"","descriptionmj":"","equipe":false,"encombrement":2,"quantite":1,"qualite":0,"cout":6,"resistance":15,"categorie_parade":"boucliers","dommages":"0","penetration":0,"force":"11","competence":"Bouclier","lancer":"","tir":"","portee_courte":0,"portee_moyenne":0,"portee_extreme":0,"magique":false,"ecaille_efficacite":null,"resistance_magique":null,"rapide":false,"deuxmains":false,"unemain":false,"initpremierround":"hast"},"ownership":{"default":0,"rYShh2P1DNavdoBD":3},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.3.13","coreVersion":"10.291","createdTime":1668808206014,"modifiedTime":1671050477120,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
{"_id":"1O7IJiQSDYxJ5VsD","name":"Bouclier moyen","type":"arme","img":"systems/foundryvtt-reve-de-dragon/icons/armes_armures/bouclier_moyen.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.equipement.1O7IJiQSDYxJ5VsD"}},"system":{"description":"","descriptionmj":"","equipe":false,"encombrement":2,"quantite":1,"qualite":0,"cout":6,"milieu":"","environnement":[{"milieu":"Villages","rarete":"Frequente","frequence":18},{"milieu":"Villes","rarete":"Frequente","frequence":18}],"resistance":15,"categorie_parade":"boucliers","dommages":"0","penetration":0,"force":"11","competence":"Bouclier","lancer":"","tir":"","portee_courte":0,"portee_moyenne":0,"portee_extreme":0,"magique":false,"ecaille_efficacite":null,"resistance_magique":null,"rapide":false,"deuxmains":false,"unemain":false,"initpremierround":"hast"},"ownership":{"default":0,"rYShh2P1DNavdoBD":3},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.6.15","coreVersion":"10.291","createdTime":1668808206014,"modifiedTime":1676074487962,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
||||||
{"name":"Provisions cuites","type":"nourritureboisson","img":"systems/foundryvtt-reve-de-dragon/icons/objets/provision_cuite.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.equipement.1keQMXTZ2iriOuJh"}},"_id":"1keQMXTZ2iriOuJh","system":{"description":"<p>pain, fromage, viande séchée...</p>","descriptionmj":"","encombrement":0.1,"quantite":1,"qualite":0,"cout":0.02,"sust":1,"exotisme":0,"cuisinier":"","boisson":false,"desaltere":0,"alcoolise":false,"force":0},"ownership":{"default":0,"wYnBx3HmLfGzsj7P":3},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.3.13","coreVersion":"10.291","createdTime":1668808206014,"modifiedTime":1671050477120,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
{"name":"Provisions cuites","type":"nourritureboisson","img":"systems/foundryvtt-reve-de-dragon/icons/objets/provision_cuite.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.equipement.1keQMXTZ2iriOuJh"}},"_id":"1keQMXTZ2iriOuJh","system":{"description":"<p>pain, fromage, viande séchée...</p>","descriptionmj":"","encombrement":0.1,"quantite":1,"qualite":0,"cout":0.02,"milieu":"","environnement":[{"milieu":"Villages","rarete":"Commune","frequence":54},{"milieu":"Villes","rarete":"Commune","frequence":54}],"sust":1,"exotisme":0,"cuisinier":"","boisson":false,"desaltere":0,"alcoolise":false,"force":0},"ownership":{"default":0,"wYnBx3HmLfGzsj7P":3},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.6.15","coreVersion":"10.291","createdTime":1668808206014,"modifiedTime":1676074487962,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
||||||
{"_id":"2y61gBIFbATQaKDl","name":"1 m2 de laine","type":"objet","img":"systems/foundryvtt-reve-de-dragon/icons/objets/tissu_laine.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.equipement.2y61gBIFbATQaKDl"}},"system":{"description":"","descriptionmj":"","encombrement":0.2,"quantite":1,"qualite":0,"cout":0.1,"equipe":false,"resistance":0},"ownership":{"default":0,"rYShh2P1DNavdoBD":3},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.3.13","coreVersion":"10.291","createdTime":1668808206014,"modifiedTime":1671050477120,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
{"_id":"2y61gBIFbATQaKDl","name":"1 m2 de laine","type":"objet","img":"systems/foundryvtt-reve-de-dragon/icons/objets/tissu_laine.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.equipement.2y61gBIFbATQaKDl"}},"system":{"description":"","descriptionmj":"","encombrement":0.2,"quantite":1,"qualite":0,"cout":0.1,"milieu":"","environnement":[{"milieu":"Villages","rarete":"Commune","frequence":54},{"milieu":"Villes","rarete":"Commune","frequence":54}],"equipe":false,"resistance":0},"ownership":{"default":0,"rYShh2P1DNavdoBD":3},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.6.15","coreVersion":"10.291","createdTime":1668808206014,"modifiedTime":1676074487962,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
||||||
{"_id":"3DJePXhrDWQxbUeM","name":"Dé à jouer en os","type":"objet","img":"systems/foundryvtt-reve-de-dragon/icons/objets/des_en_os.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.equipement.3DJePXhrDWQxbUeM"}},"system":{"description":"","descriptionmj":"","encombrement":0.01,"quantite":1,"qualite":0,"cout":0.1,"equipe":false,"resistance":0},"ownership":{"default":0,"rYShh2P1DNavdoBD":3},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.3.13","coreVersion":"10.291","createdTime":1668808206015,"modifiedTime":1671050477120,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
{"name":"Poinçon","type":"objet","img":"systems/foundryvtt-reve-de-dragon/icons/objets/poincon_2.webp","effects":[],"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.equipement.F6ZHJth4t0PA5PMB"}},"system":{"description":"","descriptionmj":"","encombrement":0.05,"quantite":1,"qualite":0,"cout":0.1,"milieu":"","environnement":[{"milieu":"Villages","rarete":"Frequente","frequence":18},{"milieu":"Villes","rarete":"Frequente","frequence":18}],"equipe":false,"resistance":0},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.6.15","coreVersion":"10.291","createdTime":1668808206019,"modifiedTime":1676074352881,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"},"_id":"39iYJ6mJuy3Kno1C","folder":null,"sort":0,"ownership":{"default":0,"Hp9ImM4o9YRTSdfu":3}}
|
||||||
{"_id":"3cn9nWtY0Vb1PLTx","name":"Dague de jet","type":"arme","img":"systems/foundryvtt-reve-de-dragon/icons/objets/dagues.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.equipement.3cn9nWtY0Vb1PLTx"}},"system":{"description":"<p>Chaque point de force au dessus de 10 augmente les portées de 1m.</p>\n<p>Chaque point de force en dessous de 9 diminue les portées de 1m.</p>","descriptionmj":"","equipe":false,"encombrement":0.5,"quantite":1,"qualite":0,"cout":3,"resistance":0,"categorie_parade":"","dommages":"1","penetration":0,"force":"0","competence":"Dague","lancer":"Dague de jet","tir":"","portee_courte":3,"portee_moyenne":8,"portee_extreme":15,"magique":false,"ecaille_efficacite":0,"resistance_magique":0,"rapide":true,"deuxmains":false,"unemain":true,"initpremierround":"dague"},"ownership":{"default":0,"rYShh2P1DNavdoBD":3},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.3.13","coreVersion":"10.291","createdTime":1668808206015,"modifiedTime":1671050477120,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
{"_id":"3DJePXhrDWQxbUeM","name":"Dé à jouer en os","type":"objet","img":"systems/foundryvtt-reve-de-dragon/icons/objets/des_en_os.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.equipement.3DJePXhrDWQxbUeM"}},"system":{"description":"","descriptionmj":"","encombrement":0.01,"quantite":1,"qualite":0,"cout":0.1,"milieu":"","environnement":[{"milieu":"Villages","rarete":"Frequente","frequence":18},{"milieu":"Villes","rarete":"Frequente","frequence":18}],"equipe":false,"resistance":0},"ownership":{"default":0,"rYShh2P1DNavdoBD":3},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.6.15","coreVersion":"10.291","createdTime":1668808206015,"modifiedTime":1676074487962,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
||||||
{"_id":"3t0NhMC0cFQyCZGH","name":"Soufflet","type":"objet","img":"systems/foundryvtt-reve-de-dragon/icons/objets/soufflet.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.equipement.3t0NhMC0cFQyCZGH"}},"system":{"description":"","descriptionmj":"","encombrement":0.2,"quantite":1,"qualite":0,"cout":0.4,"equipe":false,"resistance":0},"ownership":{"default":0,"rYShh2P1DNavdoBD":3},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.3.13","coreVersion":"10.291","createdTime":1668808206015,"modifiedTime":1671050477120,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
{"name":"Lime","type":"objet","img":"systems/foundryvtt-reve-de-dragon/icons/objets/lime.webp","effects":[],"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.equipement.Lz4dA2NwxdSZ3FZK"}},"system":{"description":"","descriptionmj":"","encombrement":0.2,"quantite":1,"qualite":0,"cout":0.5,"milieu":"","environnement":[{"milieu":"Villages","rarete":"Frequente","frequence":18},{"milieu":"Villes","rarete":"Frequente","frequence":18}],"equipe":false,"resistance":0},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.6.15","coreVersion":"10.291","createdTime":1668808206022,"modifiedTime":1676074352882,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"},"_id":"3WpH3WZk0dPzvhiu","folder":null,"sort":0,"ownership":{"default":0,"Hp9ImM4o9YRTSdfu":3}}
|
||||||
{"_id":"3uWCDH1NOjHJpVo1","name":"Maillet","type":"arme","img":"systems/foundryvtt-reve-de-dragon/icons/objets/maillet.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.equipement.3uWCDH1NOjHJpVo1"}},"system":{"description":"","descriptionmj":"","equipe":false,"encombrement":0.1,"quantite":1,"qualite":0,"cout":0.05,"resistance":7,"categorie_parade":"","dommages":"1","penetration":0,"force":"7","competence":"Masse à 1 main","lancer":"","tir":"","portee_courte":0,"portee_moyenne":0,"portee_extreme":0,"magique":false,"ecaille_efficacite":0,"resistance_magique":0,"rapide":false,"deuxmains":false,"unemain":false,"initpremierround":"masse"},"ownership":{"default":0,"Q4cUvqxCxMoTJXDL":3},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.3.13","coreVersion":"10.291","createdTime":1668808206015,"modifiedTime":1671050477120,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
{"_id":"3cn9nWtY0Vb1PLTx","name":"Dague de jet","type":"arme","img":"systems/foundryvtt-reve-de-dragon/icons/objets/dagues.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.equipement.3cn9nWtY0Vb1PLTx"}},"system":{"description":"<p>Chaque point de force au dessus de 10 augmente les portées de 1m.</p>\n<p>Chaque point de force en dessous de 9 diminue les portées de 1m.</p>","descriptionmj":"","equipe":false,"encombrement":0.5,"quantite":1,"qualite":0,"cout":3,"milieu":"","environnement":[{"milieu":"Villages","rarete":"Rare","frequence":6},{"milieu":"Villes","rarete":"Frequente","frequence":18}],"resistance":0,"categorie_parade":"","dommages":"1","penetration":0,"force":"0","competence":"Dague","lancer":"Dague de jet","tir":"","portee_courte":3,"portee_moyenne":8,"portee_extreme":15,"magique":false,"ecaille_efficacite":0,"resistance_magique":0,"rapide":true,"deuxmains":false,"unemain":true,"initpremierround":"dague"},"ownership":{"default":0,"rYShh2P1DNavdoBD":3},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.6.15","coreVersion":"10.291","createdTime":1668808206015,"modifiedTime":1676074487962,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
||||||
{"_id":"4GeV81qoJrjHIgzR","name":"Tournegraisse","type":"potion","img":"systems/foundryvtt-reve-de-dragon/icons/objets/tournegraisse.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.equipement.4GeV81qoJrjHIgzR"}},"system":{"description":"<p>Crème sirupeuse blanchâtre.</p>","descriptionmj":"","encombrement":0.1,"quantite":1,"qualite":0,"cout":2,"rarete":"","categorie":"AlchimieAutre","herbe":"","herbebrins":0,"herbebonus":0,"reposalchimique":false,"pr":0,"prpermanent":false,"prdate":0,"soinherbe":"","soinherbebonus":0},"ownership":{"default":0,"rYShh2P1DNavdoBD":3},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.3.13","coreVersion":"10.291","createdTime":1668808206015,"modifiedTime":1671050477121,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
{"_id":"3t0NhMC0cFQyCZGH","name":"Soufflet","type":"objet","img":"systems/foundryvtt-reve-de-dragon/icons/objets/soufflet.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.equipement.3t0NhMC0cFQyCZGH"}},"system":{"description":"","descriptionmj":"","encombrement":0.2,"quantite":1,"qualite":0,"cout":0.4,"milieu":"","environnement":[{"milieu":"Villages","rarete":"Rare","frequence":6},{"milieu":"Villes","rarete":"Frequente","frequence":18}],"equipe":false,"resistance":0},"ownership":{"default":0,"rYShh2P1DNavdoBD":3},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.6.15","coreVersion":"10.291","createdTime":1668808206015,"modifiedTime":1676074487963,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
||||||
{"_id":"4LFXefT0HFpaXQLx","name":"Briquet à silex","type":"objet","img":"systems/foundryvtt-reve-de-dragon/icons/objets/briquet.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.equipement.4LFXefT0HFpaXQLx"}},"system":{"description":"","descriptionmj":"","encombrement":0.08,"quantite":1,"qualite":0,"cout":0.4,"equipe":false,"resistance":0},"ownership":{"default":0,"rYShh2P1DNavdoBD":3},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.3.13","coreVersion":"10.291","createdTime":1668808206015,"modifiedTime":1671050477121,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
{"_id":"3uWCDH1NOjHJpVo1","name":"Maillet","type":"arme","img":"systems/foundryvtt-reve-de-dragon/icons/objets/maillet.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.equipement.3uWCDH1NOjHJpVo1"}},"system":{"description":"","descriptionmj":"","equipe":false,"encombrement":0.1,"quantite":1,"qualite":0,"cout":0.05,"milieu":"","environnement":[{"milieu":"Villages","rarete":"Frequente","frequence":18},{"milieu":"Villes","rarete":"Frequente","frequence":18}],"resistance":7,"categorie_parade":"","dommages":"1","penetration":0,"force":"7","competence":"Masse à 1 main","lancer":"","tir":"","portee_courte":0,"portee_moyenne":0,"portee_extreme":0,"magique":false,"ecaille_efficacite":0,"resistance_magique":0,"rapide":false,"deuxmains":false,"unemain":true,"initpremierround":"masse"},"ownership":{"default":0,"Q4cUvqxCxMoTJXDL":3},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.6.15","coreVersion":"10.291","createdTime":1668808206015,"modifiedTime":1676074487963,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
||||||
{"_id":"4qPaCKONcrsK6JbQ","name":"Pichet de grès (1 litre)","type":"conteneur","img":"systems/foundryvtt-reve-de-dragon/icons/objets/pichet.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.equipement.4qPaCKONcrsK6JbQ"}},"system":{"description":"","descriptionmj":"","encombrement":0.3,"quantite":1,"qualite":0,"cout":0.3,"contenu":[],"capacite":0.5,"equipe":false},"ownership":{"default":0,"rYShh2P1DNavdoBD":3},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.3.13","coreVersion":"10.291","createdTime":1668808206016,"modifiedTime":1671050477121,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
{"_id":"4GeV81qoJrjHIgzR","name":"Tournegraisse","type":"potion","img":"systems/foundryvtt-reve-de-dragon/icons/objets/tournegraisse.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.equipement.4GeV81qoJrjHIgzR"}},"system":{"description":"<p>Crème sirupeuse blanchâtre.</p>","descriptionmj":"","encombrement":0.1,"quantite":1,"qualite":0,"cout":2,"milieu":"","environnement":[{"milieu":"Villages","rarete":"Rarissime","frequence":2},{"milieu":"Villes","rarete":"Rare","frequence":6}],"temporel":{"debut":{"indexDate":-1,"indexMinute":0},"fin":{"indexDate":-1,"indexMinute":0}},"rarete":"","categorie":"Remede","herbe":"","herbebrins":0,"herbebonus":0,"reposalchimique":false,"pr":0,"prpermanent":false,"prdate":0,"soinherbe":"","soinherbebonus":0},"ownership":{"default":0,"rYShh2P1DNavdoBD":3},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.6.15","coreVersion":"10.291","createdTime":1668808206015,"modifiedTime":1676074487963,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
||||||
{"_id":"4qoLpa4shvkgDZRy","name":"Culottes de velours","type":"objet","img":"systems/foundryvtt-reve-de-dragon/icons/objets/culottes_velours.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.equipement.4qoLpa4shvkgDZRy"}},"system":{"description":"","descriptionmj":"","encombrement":0.2,"quantite":1,"qualite":0,"cout":6,"equipe":false,"resistance":0},"ownership":{"default":0,"rYShh2P1DNavdoBD":3},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.3.13","coreVersion":"10.291","createdTime":1668808206016,"modifiedTime":1671050477121,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
{"_id":"4LFXefT0HFpaXQLx","name":"Briquet à silex","type":"objet","img":"systems/foundryvtt-reve-de-dragon/icons/objets/briquet.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.equipement.4LFXefT0HFpaXQLx"}},"system":{"description":"","descriptionmj":"","encombrement":0.08,"quantite":1,"qualite":0,"cout":0.4,"milieu":"","environnement":[{"milieu":"Villages","rarete":"Frequente","frequence":18},{"milieu":"Villes","rarete":"Frequente","frequence":18}],"equipe":false,"resistance":0},"ownership":{"default":0,"rYShh2P1DNavdoBD":3},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.6.15","coreVersion":"10.291","createdTime":1668808206015,"modifiedTime":1676074487963,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
||||||
{"_id":"5GOk9cMApM4dBcIU","name":"Casserole de fer (1 litre)","type":"conteneur","img":"systems/foundryvtt-reve-de-dragon/icons/objets/casserole.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.equipement.5GOk9cMApM4dBcIU"}},"system":{"description":"","descriptionmj":"","encombrement":0.2,"quantite":1,"qualite":0,"cout":0.3,"contenu":[],"capacite":0.5,"equipe":false},"ownership":{"default":0,"rYShh2P1DNavdoBD":3},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.3.13","coreVersion":"10.291","createdTime":1668808206016,"modifiedTime":1671050477121,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
{"_id":"4qPaCKONcrsK6JbQ","name":"Pichet de grès (1 litre)","type":"conteneur","img":"systems/foundryvtt-reve-de-dragon/icons/objets/pichet.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.equipement.4qPaCKONcrsK6JbQ"}},"system":{"description":"","descriptionmj":"","encombrement":0.3,"quantite":1,"qualite":0,"cout":0.3,"milieu":"","environnement":[{"milieu":"Villages","rarete":"Frequente","frequence":18},{"milieu":"Villes","rarete":"Frequente","frequence":18}],"contenu":[],"capacite":0.5,"equipe":false},"ownership":{"default":0,"rYShh2P1DNavdoBD":3},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.6.15","coreVersion":"10.291","createdTime":1668808206016,"modifiedTime":1676074487963,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
||||||
{"_id":"65SRmXVcyiG5ZW9l","name":"Cuillère de fer","type":"objet","img":"systems/foundryvtt-reve-de-dragon/icons/objets/cuillere_fer.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.equipement.65SRmXVcyiG5ZW9l"}},"system":{"description":"","descriptionmj":"","encombrement":0.05,"quantite":1,"qualite":0,"cout":0.1,"equipe":false,"resistance":0},"ownership":{"default":0,"rYShh2P1DNavdoBD":3},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.3.13","coreVersion":"10.291","createdTime":1668808206016,"modifiedTime":1671050477121,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
{"_id":"4qoLpa4shvkgDZRy","name":"Culottes de velours","type":"objet","img":"systems/foundryvtt-reve-de-dragon/icons/objets/culottes_velours.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.equipement.4qoLpa4shvkgDZRy"}},"system":{"description":"","descriptionmj":"","encombrement":0.2,"quantite":1,"qualite":0,"cout":6,"milieu":"","environnement":[{"milieu":"Villages","rarete":"Rare","frequence":6},{"milieu":"Villes","rarete":"Frequente","frequence":18}],"equipe":false,"resistance":0},"ownership":{"default":0,"rYShh2P1DNavdoBD":3},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.6.15","coreVersion":"10.291","createdTime":1668808206016,"modifiedTime":1676074487963,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
||||||
{"_id":"6MVWA3DYbpw8122A","name":"Entonnoir de fer","type":"objet","img":"systems/foundryvtt-reve-de-dragon/icons/objets/entonnoir.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.equipement.6MVWA3DYbpw8122A"}},"system":{"description":"","descriptionmj":"","encombrement":0.1,"quantite":1,"qualite":0,"cout":0.15,"equipe":false,"resistance":0},"ownership":{"default":0,"rYShh2P1DNavdoBD":3},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.3.13","coreVersion":"10.291","createdTime":1668808206016,"modifiedTime":1671050477121,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
{"_id":"5GOk9cMApM4dBcIU","name":"Casserole de fer (1 litre)","type":"conteneur","img":"systems/foundryvtt-reve-de-dragon/icons/objets/casserole.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.equipement.5GOk9cMApM4dBcIU"}},"system":{"description":"","descriptionmj":"","encombrement":0.2,"quantite":1,"qualite":0,"cout":0.3,"milieu":"","environnement":[{"milieu":"Villages","rarete":"Rare","frequence":6},{"milieu":"Villes","rarete":"Frequente","frequence":18}],"contenu":[],"capacite":0.5,"equipe":false},"ownership":{"default":0,"rYShh2P1DNavdoBD":3},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.6.15","coreVersion":"10.291","createdTime":1668808206016,"modifiedTime":1676074487963,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
||||||
{"_id":"6s5QjArwz9w9JIGL","name":"Double dragonne","type":"arme","img":"systems/foundryvtt-reve-de-dragon/icons/armes_armures/double_dragonne.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.equipement.6s5QjArwz9w9JIGL"}},"system":{"description":"<p>Apparue vers la fin du Second Âge, c’était<em> une grande épée à deux mains</em>. Encombrante et prohibant le bouclier, c’était avant tout une épée de duel et de frime.</p>","descriptionmj":"","equipe":false,"encombrement":4,"quantite":1,"qualite":0,"cout":50,"resistance":13,"categorie_parade":"epees-lourdes","dommages":"5","penetration":0,"force":"13","competence":"Epée à 2 mains","lancer":"","tir":"","portee_courte":0,"portee_moyenne":0,"portee_extreme":0,"magique":false,"ecaille_efficacite":null,"resistance_magique":null,"rapide":false,"deuxmains":true,"unemain":false,"initpremierround":"hast"},"ownership":{"default":0,"rYShh2P1DNavdoBD":3},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.3.13","coreVersion":"10.291","createdTime":1668808206017,"modifiedTime":1671050477121,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
{"_id":"65SRmXVcyiG5ZW9l","name":"Cuillère de fer","type":"objet","img":"systems/foundryvtt-reve-de-dragon/icons/objets/cuillere_fer.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.equipement.65SRmXVcyiG5ZW9l"}},"system":{"description":"","descriptionmj":"","encombrement":0.05,"quantite":1,"qualite":0,"cout":0.1,"milieu":"","environnement":[{"milieu":"Villages","rarete":"Frequente","frequence":18},{"milieu":"Villes","rarete":"Commune","frequence":54}],"equipe":false,"resistance":0},"ownership":{"default":0,"rYShh2P1DNavdoBD":3},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.6.15","coreVersion":"10.291","createdTime":1668808206016,"modifiedTime":1676074487963,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
||||||
{"_id":"7B9sKLf4ipRyyEjF","name":"Bouclier lourd","type":"arme","img":"systems/foundryvtt-reve-de-dragon/icons/armes_armures/bouclier_grand.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.equipement.7B9sKLf4ipRyyEjF"}},"system":{"description":"","descriptionmj":"","equipe":false,"encombrement":3,"quantite":1,"qualite":0,"cout":8,"resistance":20,"categorie_parade":"boucliers","dommages":"0","penetration":0,"force":"13","competence":"Bouclier","lancer":"","tir":"","portee_courte":0,"portee_moyenne":0,"portee_extreme":0,"magique":false,"ecaille_efficacite":null,"resistance_magique":null,"rapide":false,"deuxmains":false,"unemain":false,"initpremierround":"hast"},"ownership":{"default":0,"rYShh2P1DNavdoBD":3},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.3.13","coreVersion":"10.291","createdTime":1668808206017,"modifiedTime":1671050477121,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
{"_id":"6MVWA3DYbpw8122A","name":"Entonnoir de fer","type":"objet","img":"systems/foundryvtt-reve-de-dragon/icons/objets/entonnoir.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.equipement.6MVWA3DYbpw8122A"}},"system":{"description":"","descriptionmj":"","encombrement":0.1,"quantite":1,"qualite":0,"cout":0.15,"milieu":"","environnement":[{"milieu":"Villages","rarete":"Rare","frequence":6},{"milieu":"Villes","rarete":"Frequente","frequence":18}],"equipe":false,"resistance":0},"ownership":{"default":0,"rYShh2P1DNavdoBD":3},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.6.15","coreVersion":"10.291","createdTime":1668808206016,"modifiedTime":1676074487963,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
||||||
{"_id":"7YuWWsFIuZgakGUS","name":"Mortier en marbre","type":"objet","img":"systems/foundryvtt-reve-de-dragon/icons/objets/mortier.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.equipement.7YuWWsFIuZgakGUS"}},"system":{"description":"","descriptionmj":"","encombrement":0.3,"quantite":1,"qualite":0,"cout":0.2,"equipe":false,"resistance":0},"ownership":{"default":0,"rYShh2P1DNavdoBD":3},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.3.13","coreVersion":"10.291","createdTime":1668808206017,"modifiedTime":1671050477121,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
{"_id":"6s5QjArwz9w9JIGL","name":"Double dragonne","type":"arme","img":"systems/foundryvtt-reve-de-dragon/icons/armes_armures/double_dragonne.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.equipement.6s5QjArwz9w9JIGL"}},"system":{"description":"<p>Apparue vers la fin du Second Âge, c’était<em> une grande épée à deux mains</em>. Encombrante et prohibant le bouclier, c’était avant tout une épée de duel et de frime.</p>","descriptionmj":"","equipe":false,"encombrement":4,"quantite":1,"qualite":0,"cout":50,"milieu":"","environnement":[{"milieu":"Villages","rarete":"Rarissime","frequence":2},{"milieu":"Villes","rarete":"Rare","frequence":6}],"resistance":13,"categorie_parade":"epees-lourdes","dommages":"5","penetration":0,"force":"13","competence":"Epée à 2 mains","lancer":"","tir":"","portee_courte":0,"portee_moyenne":0,"portee_extreme":0,"magique":false,"ecaille_efficacite":null,"resistance_magique":null,"rapide":false,"deuxmains":true,"unemain":false,"initpremierround":"hast"},"ownership":{"default":0,"rYShh2P1DNavdoBD":3},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.6.15","coreVersion":"10.291","createdTime":1668808206017,"modifiedTime":1676074487963,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
||||||
{"_id":"7c7CO626TCo4lg8b","name":"Petite scie cadre","type":"objet","img":"systems/foundryvtt-reve-de-dragon/icons/objets/scie.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.equipement.7c7CO626TCo4lg8b"}},"system":{"description":"","descriptionmj":"","encombrement":1,"quantite":1,"qualite":0,"cout":6,"equipe":false,"resistance":0},"ownership":{"default":0,"rYShh2P1DNavdoBD":3},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.3.13","coreVersion":"10.291","createdTime":1668808206017,"modifiedTime":1671050477121,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
{"name":"Luth","type":"objet","img":"systems/foundryvtt-reve-de-dragon/icons/objets/luth.webp","effects":[],"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.equipement.bgkEBYUEFLvAaeVf"}},"system":{"description":"","descriptionmj":"","encombrement":1,"quantite":1,"qualite":0,"cout":7,"milieu":"","environnement":[{"milieu":"Villages","rarete":"Rare","frequence":6},{"milieu":"Villes","rarete":"Rare","frequence":6}],"equipe":false,"resistance":0},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.6.15","coreVersion":"10.291","createdTime":1668808206109,"modifiedTime":1676074487919,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"},"folder":null,"sort":0,"ownership":{"default":0,"Hp9ImM4o9YRTSdfu":3},"_id":"72CKhDHc22VSnDX1"}
|
||||||
{"_id":"7u9yAlaFhKcVdEC6","name":"Matériel de chirurgie","type":"objet","img":"systems/foundryvtt-reve-de-dragon/icons/objets/materiel_chirurgie.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.equipement.7u9yAlaFhKcVdEC6"}},"system":{"description":"<p>(pincettes, lancette, crin, aiguille)</p>","descriptionmj":"","encombrement":0.06,"quantite":1,"qualite":0,"cout":1,"equipe":false,"resistance":0},"ownership":{"default":0,"rYShh2P1DNavdoBD":3},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.3.13","coreVersion":"10.291","createdTime":1668808206017,"modifiedTime":1671050477121,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
{"_id":"7B9sKLf4ipRyyEjF","name":"Bouclier lourd","type":"arme","img":"systems/foundryvtt-reve-de-dragon/icons/armes_armures/bouclier_grand.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.equipement.7B9sKLf4ipRyyEjF"}},"system":{"description":"","descriptionmj":"","equipe":false,"encombrement":3,"quantite":1,"qualite":0,"cout":8,"milieu":"","environnement":[{"milieu":"Villages","rarete":"Rare","frequence":6},{"milieu":"Villes","rarete":"Frequente","frequence":18}],"resistance":20,"categorie_parade":"boucliers","dommages":"0","penetration":0,"force":"13","competence":"Bouclier","lancer":"","tir":"","portee_courte":0,"portee_moyenne":0,"portee_extreme":0,"magique":false,"ecaille_efficacite":null,"resistance_magique":null,"rapide":false,"deuxmains":false,"unemain":false,"initpremierround":"hast"},"ownership":{"default":0,"rYShh2P1DNavdoBD":3},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.6.15","coreVersion":"10.291","createdTime":1668808206017,"modifiedTime":1676074487963,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
||||||
{"_id":"8bwP6zncdFP0O9ew","name":"Corde (10 m)","type":"objet","img":"systems/foundryvtt-reve-de-dragon/icons/objets/corde.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.equipement.8bwP6zncdFP0O9ew"}},"system":{"description":"","descriptionmj":"","encombrement":1,"quantite":1,"qualite":0,"cout":0.3,"equipe":false,"resistance":0},"ownership":{"default":0,"rYShh2P1DNavdoBD":3},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.3.13","coreVersion":"10.291","createdTime":1668808206017,"modifiedTime":1671050477121,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
{"_id":"7YuWWsFIuZgakGUS","name":"Mortier en marbre","type":"objet","img":"systems/foundryvtt-reve-de-dragon/icons/objets/mortier.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.equipement.7YuWWsFIuZgakGUS"}},"system":{"description":"","descriptionmj":"","encombrement":0.3,"quantite":1,"qualite":0,"cout":0.2,"milieu":"","environnement":[{"milieu":"Villages","rarete":"Rare","frequence":6},{"milieu":"Villes","rarete":"Frequente","frequence":18}],"equipe":false,"resistance":0},"ownership":{"default":0,"rYShh2P1DNavdoBD":3},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.6.15","coreVersion":"10.291","createdTime":1668808206017,"modifiedTime":1676074487963,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
||||||
{"_id":"92GDNmNVa2u0gzpx","name":"Massette","type":"arme","img":"systems/foundryvtt-reve-de-dragon/icons/armes_armures/massette.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.equipement.92GDNmNVa2u0gzpx"}},"system":{"description":"","descriptionmj":"","equipe":false,"encombrement":1,"quantite":1,"qualite":0,"cout":2,"resistance":8,"categorie_parade":"","dommages":"2","penetration":0,"force":"9","competence":"Masse à 1 main","lancer":"","tir":"","portee_courte":0,"portee_moyenne":0,"portee_extreme":0,"magique":false,"ecaille_efficacite":0,"resistance_magique":0,"rapide":true,"deuxmains":false,"unemain":true,"initpremierround":"masse"},"ownership":{"default":0,"Q4cUvqxCxMoTJXDL":3},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.3.13","coreVersion":"10.291","createdTime":1668808206017,"modifiedTime":1671050477121,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
{"_id":"7c7CO626TCo4lg8b","name":"Petite scie cadre","type":"objet","img":"systems/foundryvtt-reve-de-dragon/icons/objets/scie.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.equipement.7c7CO626TCo4lg8b"}},"system":{"description":"","descriptionmj":"","encombrement":1,"quantite":1,"qualite":0,"cout":6,"milieu":"","environnement":[{"milieu":"Villages","rarete":"Frequente","frequence":18},{"milieu":"Villes","rarete":"Frequente","frequence":18}],"equipe":false,"resistance":0},"ownership":{"default":0,"rYShh2P1DNavdoBD":3},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.6.15","coreVersion":"10.291","createdTime":1668808206017,"modifiedTime":1676074487963,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
||||||
{"_id":"9cLkTDugz84gpHUB","name":"Bitume de Camphre","type":"potion","img":"systems/foundryvtt-reve-de-dragon/icons/objets/bitume_de_camphre.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.equipement.9cLkTDugz84gpHUB"}},"system":{"description":"<p>Crème sirupeuse grisâtre.</p>","descriptionmj":"","encombrement":0.1,"quantite":1,"qualite":0,"cout":2,"rarete":"","categorie":"AlchimieAutre","herbe":"","herbebrins":0,"herbebonus":0,"reposalchimique":false,"pr":0,"prpermanent":false,"prdate":0,"soinherbe":"","soinherbebonus":0},"ownership":{"default":0,"rYShh2P1DNavdoBD":3},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.3.13","coreVersion":"10.291","createdTime":1668808206018,"modifiedTime":1671050477122,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
{"_id":"7u9yAlaFhKcVdEC6","name":"Matériel de chirurgie","type":"objet","img":"systems/foundryvtt-reve-de-dragon/icons/objets/materiel_chirurgie.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.equipement.7u9yAlaFhKcVdEC6"}},"system":{"description":"<p>(pincettes, lancette, crin, aiguille)</p>","descriptionmj":"","encombrement":0.06,"quantite":1,"qualite":0,"cout":1,"milieu":"","environnement":[{"milieu":"Villages","rarete":"Rare","frequence":6},{"milieu":"Villes","rarete":"Rare","frequence":6}],"equipe":false,"resistance":0},"ownership":{"default":0,"rYShh2P1DNavdoBD":3},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.6.15","coreVersion":"10.291","createdTime":1668808206017,"modifiedTime":1676074487963,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
||||||
{"_id":"A3jx5dPkk5IeXSXn","name":"Lait de lune","type":"potion","img":"systems/foundryvtt-reve-de-dragon/icons/objets/lait_de_lune.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.equipement.A3jx5dPkk5IeXSXn"}},"system":{"description":"<p>Fluide.</p>\n<p>Lait de laie.</p>","descriptionmj":"","encombrement":0.1,"quantite":1,"qualite":0,"cout":1,"rarete":"","categorie":"Alchimie","herbe":"","herbebrins":0,"herbebonus":0,"reposalchimique":false,"pr":0,"prpermanent":false,"prdate":0,"soinherbe":"","soinherbebonus":0},"ownership":{"default":0,"rYShh2P1DNavdoBD":3},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.3.13","coreVersion":"10.291","createdTime":1668808206018,"modifiedTime":1671050477122,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
{"_id":"8bwP6zncdFP0O9ew","name":"Corde (10 m)","type":"objet","img":"systems/foundryvtt-reve-de-dragon/icons/objets/corde.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.equipement.8bwP6zncdFP0O9ew"}},"system":{"description":"","descriptionmj":"","encombrement":1,"quantite":1,"qualite":0,"cout":0.3,"milieu":"","environnement":[{"milieu":"Villages","rarete":"Commune","frequence":54},{"milieu":"Villes","rarete":"Frequente","frequence":18}],"equipe":false,"resistance":0},"ownership":{"default":0,"rYShh2P1DNavdoBD":3},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.6.15","coreVersion":"10.291","createdTime":1668808206017,"modifiedTime":1676074487964,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
||||||
{"name":"Bronze (10 deniers)","type":"monnaie","img":"systems/foundryvtt-reve-de-dragon/icons/objets/piece_bronze_epees.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Item.hifMbbRrRdQxflsx"}},"_id":"A8UcYUIIlb6YfczN","system":{"description":"","descriptionmj":"","encombrement":0.01,"quantite":1,"qualite":0,"cout":0.1},"ownership":{"default":0,"jtRmvSuwkwMmIMf0":3},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.3.13","coreVersion":"10.291","createdTime":1668808206018,"modifiedTime":1671050477122,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
{"_id":"92GDNmNVa2u0gzpx","name":"Massette","type":"arme","img":"systems/foundryvtt-reve-de-dragon/icons/armes_armures/massette.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.equipement.92GDNmNVa2u0gzpx"}},"system":{"description":"","descriptionmj":"","equipe":false,"encombrement":1,"quantite":1,"qualite":0,"cout":2,"milieu":"","environnement":[{"milieu":"Villages","rarete":"Frequente","frequence":18},{"milieu":"Villes","rarete":"Frequente","frequence":18}],"resistance":8,"categorie_parade":"","dommages":"2","penetration":0,"force":"9","competence":"Masse à 1 main","lancer":"","tir":"","portee_courte":0,"portee_moyenne":0,"portee_extreme":0,"magique":false,"ecaille_efficacite":0,"resistance_magique":0,"rapide":true,"deuxmains":false,"unemain":true,"initpremierround":"masse"},"ownership":{"default":0,"Q4cUvqxCxMoTJXDL":3},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.6.15","coreVersion":"10.291","createdTime":1668808206017,"modifiedTime":1676074487964,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
||||||
{"_id":"A9nMgTyEwYzdA0zT","name":"Manteau de velours","type":"objet","img":"systems/foundryvtt-reve-de-dragon/icons/objets/manteau_velours.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.equipement.A9nMgTyEwYzdA0zT"}},"system":{"description":"","descriptionmj":"","encombrement":1,"quantite":1,"qualite":0,"cout":10,"equipe":false,"resistance":0},"ownership":{"default":0,"rYShh2P1DNavdoBD":3},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.3.13","coreVersion":"10.291","createdTime":1668808206018,"modifiedTime":1671050477122,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
{"_id":"9cLkTDugz84gpHUB","name":"Bitume de Camphre","type":"potion","img":"systems/foundryvtt-reve-de-dragon/icons/objets/bitume_de_camphre.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.equipement.9cLkTDugz84gpHUB"}},"system":{"description":"<p>Crème sirupeuse grisâtre.</p>","descriptionmj":"","encombrement":0.1,"quantite":1,"qualite":0,"cout":2,"milieu":"","environnement":[{"milieu":"Villages","rarete":"Rarissime","frequence":2},{"milieu":"Villes","rarete":"Rare","frequence":6}],"temporel":{"debut":{"indexDate":-1,"indexMinute":0},"fin":{"indexDate":-1,"indexMinute":0}},"rarete":"","categorie":"Remede","herbe":"","herbebrins":0,"herbebonus":0,"reposalchimique":false,"pr":0,"prpermanent":false,"prdate":0,"soinherbe":"","soinherbebonus":0},"ownership":{"default":0,"rYShh2P1DNavdoBD":3},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.6.15","coreVersion":"10.291","createdTime":1668808206018,"modifiedTime":1676074487964,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
||||||
{"_id":"AOQsKTjIbcy8NV9t","name":"Pierre à aiguiser","type":"objet","img":"systems/foundryvtt-reve-de-dragon/icons/objets/pierre_a_aiguiser.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.equipement.AOQsKTjIbcy8NV9t"}},"system":{"description":"","descriptionmj":"","encombrement":0.2,"quantite":1,"qualite":0,"cout":0.3,"equipe":false,"resistance":0},"ownership":{"default":0,"rYShh2P1DNavdoBD":3},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.3.13","coreVersion":"10.291","createdTime":1668808206018,"modifiedTime":1671050477122,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
{"_id":"A3jx5dPkk5IeXSXn","name":"Lait de lune","type":"potion","img":"systems/foundryvtt-reve-de-dragon/icons/objets/lait_de_lune.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.equipement.A3jx5dPkk5IeXSXn"}},"system":{"description":"<p>Fluide.</p>\n<p>Lait de laie.</p>","descriptionmj":"","encombrement":0.1,"quantite":1,"qualite":0,"cout":1,"milieu":"","environnement":[{"milieu":"Villages","rarete":"Rarissime","frequence":2},{"milieu":"Villes","rarete":"Rare","frequence":6}],"temporel":{"debut":{"indexDate":-1,"indexMinute":0},"fin":{"indexDate":-1,"indexMinute":0}},"rarete":"","categorie":"Remede","herbe":"","herbebrins":0,"herbebonus":0,"reposalchimique":false,"pr":0,"prpermanent":false,"prdate":0,"soinherbe":"","soinherbebonus":0},"ownership":{"default":0,"rYShh2P1DNavdoBD":3},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.6.15","coreVersion":"10.291","createdTime":1668808206018,"modifiedTime":1676074487964,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
||||||
{"_id":"As5kYvyOrWrr8KJm","name":"Etui à luth de cuir","type":"conteneur","img":"systems/foundryvtt-reve-de-dragon/icons/objets/etui_luth.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.equipement.As5kYvyOrWrr8KJm"}},"system":{"description":"","descriptionmj":"","encombrement":0.2,"quantite":1,"qualite":0,"cout":1,"contenu":[],"capacite":1,"equipe":false},"ownership":{"default":0,"rYShh2P1DNavdoBD":3},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.3.13","coreVersion":"10.291","createdTime":1668808206018,"modifiedTime":1671050477122,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
{"name":"Bronze (10 deniers)","type":"monnaie","img":"systems/foundryvtt-reve-de-dragon/icons/objets/piece_bronze_epees.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Item.hifMbbRrRdQxflsx"}},"_id":"A8UcYUIIlb6YfczN","system":{"description":"","descriptionmj":"","encombrement":0.01,"quantite":1,"qualite":0,"cout":0.1,"milieu":"","environnement":[{"milieu":"Villages","rarete":"Commune","frequence":54},{"milieu":"Villes","rarete":"Commune","frequence":54}]},"ownership":{"default":0,"jtRmvSuwkwMmIMf0":3},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.6.15","coreVersion":"10.291","createdTime":1668808206018,"modifiedTime":1676074487964,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
||||||
{"_id":"B2BhuxveVKMnD8fe","name":"Bottes de cuir souple","type":"objet","img":"systems/foundryvtt-reve-de-dragon/icons/objets/bottes_de_cuir.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.equipement.B2BhuxveVKMnD8fe"}},"system":{"description":"","descriptionmj":"","encombrement":0.4,"quantite":1,"qualite":0,"cout":2,"equipe":false,"resistance":0},"ownership":{"default":0,"rYShh2P1DNavdoBD":3},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.3.13","coreVersion":"10.291","createdTime":1668808206018,"modifiedTime":1671050477122,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
{"_id":"A9nMgTyEwYzdA0zT","name":"Manteau de velours","type":"objet","img":"systems/foundryvtt-reve-de-dragon/icons/objets/manteau_velours.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.equipement.A9nMgTyEwYzdA0zT"}},"system":{"description":"","descriptionmj":"","encombrement":1,"quantite":1,"qualite":0,"cout":10,"milieu":"","environnement":[{"milieu":"Villages","rarete":"Rarissime","frequence":2},{"milieu":"Villes","rarete":"Rare","frequence":6}],"equipe":false,"resistance":0},"ownership":{"default":0,"rYShh2P1DNavdoBD":3},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.6.15","coreVersion":"10.291","createdTime":1668808206018,"modifiedTime":1676074487964,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
||||||
{"_id":"BQPhNy9AUCpEGgFg","name":"Couteau de cuisine","type":"arme","img":"systems/foundryvtt-reve-de-dragon/icons/objets/couteau-cuisine.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.equipement.BQPhNy9AUCpEGgFg"}},"system":{"description":"","descriptionmj":"","equipe":false,"encombrement":0.2,"quantite":1,"qualite":0,"cout":1,"resistance":6,"categorie_parade":"dagues","dommages":"1","penetration":0,"force":"0","competence":"Dague","lancer":"Dague de jet","tir":"","portee_courte":3,"portee_moyenne":8,"portee_extreme":15,"magique":false,"ecaille_efficacite":null,"resistance_magique":null,"rapide":false,"deuxmains":false,"unemain":false,"initpremierround":"dague"},"ownership":{"default":0,"Q4cUvqxCxMoTJXDL":3},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.3.13","coreVersion":"10.291","createdTime":1668808206018,"modifiedTime":1671050477122,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
{"_id":"AOQsKTjIbcy8NV9t","name":"Pierre à aiguiser","type":"objet","img":"systems/foundryvtt-reve-de-dragon/icons/objets/pierre_a_aiguiser.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.equipement.AOQsKTjIbcy8NV9t"}},"system":{"description":"","descriptionmj":"","encombrement":0.2,"quantite":1,"qualite":0,"cout":0.3,"milieu":"","environnement":[{"milieu":"Villages","rarete":"Frequente","frequence":18},{"milieu":"Villes","rarete":"Frequente","frequence":18}],"equipe":false,"resistance":0},"ownership":{"default":0,"rYShh2P1DNavdoBD":3},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.6.15","coreVersion":"10.291","createdTime":1668808206018,"modifiedTime":1676074487964,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
||||||
{"_id":"CMtQM06J3BZsHHxH","name":"Sandales","type":"objet","img":"systems/foundryvtt-reve-de-dragon/icons/objets/sandales.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.equipement.CMtQM06J3BZsHHxH"}},"system":{"description":"","descriptionmj":"","encombrement":0.1,"quantite":1,"qualite":0,"cout":0.3,"equipe":false,"resistance":0},"ownership":{"default":0,"rYShh2P1DNavdoBD":3},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.3.13","coreVersion":"10.291","createdTime":1668808206018,"modifiedTime":1671050477122,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
{"name":"Alêne","type":"objet","img":"systems/foundryvtt-reve-de-dragon/icons/objets/poincon_2.webp","effects":[],"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.equipement.F6ZHJth4t0PA5PMB"}},"system":{"description":"","descriptionmj":"","encombrement":0.05,"quantite":1,"qualite":0,"cout":0.1,"milieu":"","environnement":[{"milieu":"Villages","rarete":"Frequente","frequence":18},{"milieu":"Villes","rarete":"Frequente","frequence":18}],"equipe":false,"resistance":0},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.6.15","coreVersion":"10.291","createdTime":1668808206019,"modifiedTime":1676074487919,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"},"folder":null,"sort":0,"ownership":{"default":0,"Hp9ImM4o9YRTSdfu":3},"_id":"AWQTOfz3HoidgUOf"}
|
||||||
{"_id":"CQSxJv1mgmIeMCbM","name":"Grappin","type":"objet","img":"systems/foundryvtt-reve-de-dragon/icons/objets/grappin.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.equipement.CQSxJv1mgmIeMCbM"}},"system":{"description":"","descriptionmj":"","encombrement":0.5,"quantite":1,"qualite":0,"cout":2,"equipe":false,"resistance":0},"ownership":{"default":0,"rYShh2P1DNavdoBD":3},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.3.13","coreVersion":"10.291","createdTime":1668808206018,"modifiedTime":1671050477122,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
{"_id":"As5kYvyOrWrr8KJm","name":"Etui à luth de cuir","type":"conteneur","img":"systems/foundryvtt-reve-de-dragon/icons/objets/etui_luth.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.equipement.As5kYvyOrWrr8KJm"}},"system":{"description":"","descriptionmj":"","encombrement":0.2,"quantite":1,"qualite":0,"cout":1,"milieu":"","environnement":[{"milieu":"Villages","rarete":"Rare","frequence":6},{"milieu":"Villes","rarete":"Frequente","frequence":18}],"contenu":[],"capacite":1,"equipe":false},"ownership":{"default":0,"rYShh2P1DNavdoBD":3},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.6.15","coreVersion":"10.291","createdTime":1668808206018,"modifiedTime":1676074487964,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
||||||
{"_id":"ElweMV283IUpqaik","name":"Sable-Poudre","type":"potion","img":"systems/foundryvtt-reve-de-dragon/icons/objets/sable_poudre.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.equipement.ElweMV283IUpqaik"}},"system":{"description":"<p>Granulés. Poudre blanche.</p>","descriptionmj":"","encombrement":0.1,"quantite":1,"qualite":0,"cout":2,"rarete":"","categorie":"AlchimieAutre","herbe":"","herbebrins":0,"herbebonus":0,"reposalchimique":false,"pr":0,"prpermanent":false,"prdate":0,"soinherbe":"","soinherbebonus":0},"ownership":{"default":0,"rYShh2P1DNavdoBD":3},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.3.13","coreVersion":"10.291","createdTime":1668808206019,"modifiedTime":1671050477123,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
{"_id":"B2BhuxveVKMnD8fe","name":"Bottes de cuir souple","type":"objet","img":"systems/foundryvtt-reve-de-dragon/icons/objets/bottes_de_cuir.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.equipement.B2BhuxveVKMnD8fe"}},"system":{"description":"","descriptionmj":"","encombrement":0.4,"quantite":1,"qualite":0,"cout":2,"milieu":"","environnement":[{"milieu":"Villages","rarete":"Frequente","frequence":18},{"milieu":"Villes","rarete":"Commune","frequence":54}],"equipe":false,"resistance":0},"ownership":{"default":0,"rYShh2P1DNavdoBD":3},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.6.15","coreVersion":"10.291","createdTime":1668808206018,"modifiedTime":1676074487964,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
||||||
{"_id":"Eospy1EFNlhgOyXc","name":"Lacet de cuir (1 m)","type":"objet","img":"systems/foundryvtt-reve-de-dragon/icons/objets/lacet.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.equipement.Eospy1EFNlhgOyXc"}},"system":{"description":"","descriptionmj":"","encombrement":0.01,"quantite":1,"qualite":0,"cout":0.06,"equipe":false,"resistance":0},"ownership":{"default":0,"rYShh2P1DNavdoBD":3},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.3.13","coreVersion":"10.291","createdTime":1668808206019,"modifiedTime":1671050477123,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
{"_id":"BQPhNy9AUCpEGgFg","name":"Couteau de cuisine","type":"arme","img":"systems/foundryvtt-reve-de-dragon/icons/objets/couteau-cuisine.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.equipement.BQPhNy9AUCpEGgFg"}},"system":{"description":"","descriptionmj":"","equipe":false,"encombrement":0.2,"quantite":1,"qualite":0,"cout":1,"milieu":"","environnement":[{"milieu":"Villages","rarete":"Frequente","frequence":18},{"milieu":"Villes","rarete":"Frequente","frequence":18}],"resistance":6,"categorie_parade":"dagues","dommages":"1","penetration":0,"force":"0","competence":"Dague","lancer":"Dague de jet","tir":"","portee_courte":3,"portee_moyenne":8,"portee_extreme":15,"magique":false,"ecaille_efficacite":null,"resistance_magique":null,"rapide":true,"deuxmains":false,"unemain":true,"initpremierround":"dague"},"ownership":{"default":0,"Q4cUvqxCxMoTJXDL":3},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.6.15","coreVersion":"10.291","createdTime":1668808206018,"modifiedTime":1676074487964,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
||||||
{"_id":"F6ZHJth4t0PA5PMB","name":"Alêne, poinçon","type":"objet","img":"systems/foundryvtt-reve-de-dragon/icons/objets/poincon_2.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.equipement.F6ZHJth4t0PA5PMB"}},"system":{"description":"","descriptionmj":"","encombrement":0.05,"quantite":1,"qualite":0,"cout":0.1,"equipe":false,"resistance":0},"ownership":{"default":0,"rYShh2P1DNavdoBD":3},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.3.13","coreVersion":"10.291","createdTime":1668808206019,"modifiedTime":1671050477123,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
{"_id":"CMtQM06J3BZsHHxH","name":"Sandales","type":"objet","img":"systems/foundryvtt-reve-de-dragon/icons/objets/sandales.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.equipement.CMtQM06J3BZsHHxH"}},"system":{"description":"","descriptionmj":"","encombrement":0.1,"quantite":1,"qualite":0,"cout":0.3,"milieu":"","environnement":[{"milieu":"Villages","rarete":"Frequente","frequence":18},{"milieu":"Villes","rarete":"Frequente","frequence":18}],"equipe":false,"resistance":0},"ownership":{"default":0,"rYShh2P1DNavdoBD":3},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.6.15","coreVersion":"10.291","createdTime":1668808206018,"modifiedTime":1676074487964,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
||||||
{"_id":"FH3mSvdebfhIL2Af","name":"Topazoïne","type":"potion","img":"systems/foundryvtt-reve-de-dragon/icons/objets/topazoine.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.equipement.FH3mSvdebfhIL2Af"}},"system":{"description":"<p>Granulés. Coquille d'oeuf de cane broyé.</p>","descriptionmj":"","encombrement":0.1,"quantite":1,"qualite":0,"cout":2,"rarete":"","categorie":"AlchimieAutre","herbe":"","herbebrins":0,"herbebonus":0,"reposalchimique":false,"pr":0,"prpermanent":false,"prdate":0,"soinherbe":"","soinherbebonus":0},"ownership":{"default":0,"rYShh2P1DNavdoBD":3},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.3.13","coreVersion":"10.291","createdTime":1668808206019,"modifiedTime":1671050477123,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
{"_id":"CQSxJv1mgmIeMCbM","name":"Grappin","type":"objet","img":"systems/foundryvtt-reve-de-dragon/icons/objets/grappin.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.equipement.CQSxJv1mgmIeMCbM"}},"system":{"description":"","descriptionmj":"","encombrement":0.5,"quantite":1,"qualite":0,"cout":2,"milieu":"","environnement":[{"milieu":"Villages","rarete":"Rare","frequence":6},{"milieu":"Villes","rarete":"Rare","frequence":6}],"equipe":false,"resistance":0},"ownership":{"default":0,"rYShh2P1DNavdoBD":3},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.6.15","coreVersion":"10.291","createdTime":1668808206018,"modifiedTime":1676074487964,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
||||||
{"_id":"FaNRC7YQzibSdqZU","name":"Plume de fer","type":"objet","img":"systems/foundryvtt-reve-de-dragon/icons/objets/plume_de_fer.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.equipement.FaNRC7YQzibSdqZU"}},"system":{"description":"","descriptionmj":"","encombrement":0.01,"quantite":1,"qualite":0,"cout":0.1,"equipe":false,"resistance":0},"ownership":{"default":0,"rYShh2P1DNavdoBD":3},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.3.13","coreVersion":"10.291","createdTime":1668808206019,"modifiedTime":1671050477123,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
{"name":"Râpe","type":"objet","img":"systems/foundryvtt-reve-de-dragon/icons/objets/lime.webp","effects":[],"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.equipement.Lz4dA2NwxdSZ3FZK"}},"system":{"description":"","descriptionmj":"","encombrement":0.2,"quantite":1,"qualite":0,"cout":0.5,"milieu":"","environnement":[{"milieu":"Villages","rarete":"Frequente","frequence":18},{"milieu":"Villes","rarete":"Frequente","frequence":18}],"equipe":false,"resistance":0},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.6.15","coreVersion":"10.291","createdTime":1668808206022,"modifiedTime":1676074487919,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"},"folder":null,"sort":0,"ownership":{"default":0,"Hp9ImM4o9YRTSdfu":3},"_id":"DJIvE20bU09h4YXw"}
|
||||||
{"_id":"Flx5inKGs1GQKoYq","name":"Tube à parchemins","type":"conteneur","img":"systems/foundryvtt-reve-de-dragon/icons/objets/tube_parchemin.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.equipement.Flx5inKGs1GQKoYq"}},"system":{"description":"","descriptionmj":"","encombrement":0.1,"quantite":1,"qualite":0,"cout":0.5,"contenu":[],"capacite":1.3,"equipe":false},"ownership":{"default":0,"rYShh2P1DNavdoBD":3},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.3.13","coreVersion":"10.291","createdTime":1668808206019,"modifiedTime":1671050477123,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
{"_id":"ElweMV283IUpqaik","name":"Sable-Poudre","type":"potion","img":"systems/foundryvtt-reve-de-dragon/icons/objets/sable_poudre.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.equipement.ElweMV283IUpqaik"}},"system":{"description":"<p>Granulés. Poudre blanche.</p>","descriptionmj":"","encombrement":0.1,"quantite":1,"qualite":0,"cout":2,"milieu":"","environnement":[{"milieu":"Villages","rarete":"Rarissime","frequence":2},{"milieu":"Villes","rarete":"Rare","frequence":6}],"temporel":{"debut":{"indexDate":-1,"indexMinute":0},"fin":{"indexDate":-1,"indexMinute":0}},"rarete":"","categorie":"Remede","herbe":"","herbebrins":0,"herbebonus":0,"reposalchimique":false,"pr":0,"prpermanent":false,"prdate":0,"soinherbe":"","soinherbebonus":0},"ownership":{"default":0,"rYShh2P1DNavdoBD":3},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.6.15","coreVersion":"10.291","createdTime":1668808206019,"modifiedTime":1676074487964,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
||||||
{"_id":"GAJIShPe7WugrIVO","name":"Manteau de fourrure","type":"objet","img":"systems/foundryvtt-reve-de-dragon/icons/objets/manteau_fourrure.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.equipement.GAJIShPe7WugrIVO"}},"system":{"description":"<p>En fonction de la qualité de la fourrure, le prix d'un tel manteau peut varier de 1 à 20 sols.</p>","descriptionmj":"","encombrement":1,"quantite":1,"qualite":0,"cout":0,"equipe":false,"resistance":0},"ownership":{"default":0,"rYShh2P1DNavdoBD":3},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.3.13","coreVersion":"10.291","createdTime":1668808206020,"modifiedTime":1671050477123,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
{"_id":"Eospy1EFNlhgOyXc","name":"Lacet de cuir (1 m)","type":"objet","img":"systems/foundryvtt-reve-de-dragon/icons/objets/lacet.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.equipement.Eospy1EFNlhgOyXc"}},"system":{"description":"","descriptionmj":"","encombrement":0.01,"quantite":1,"qualite":0,"cout":0.06,"milieu":"","environnement":[{"milieu":"Villages","rarete":"Frequente","frequence":18},{"milieu":"Villes","rarete":"Frequente","frequence":18}],"equipe":false,"resistance":0},"ownership":{"default":0,"rYShh2P1DNavdoBD":3},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.6.15","coreVersion":"10.291","createdTime":1668808206019,"modifiedTime":1676074487964,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
||||||
{"_id":"GiquTnEsiVZn7m6Y","name":"Bas de soie","type":"objet","img":"systems/foundryvtt-reve-de-dragon/icons/objets/bas_soie.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.equipement.GiquTnEsiVZn7m6Y"}},"system":{"description":"","descriptionmj":"","encombrement":0,"quantite":1,"qualite":0,"cout":3,"equipe":false,"resistance":0},"ownership":{"default":0,"rYShh2P1DNavdoBD":3},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.3.13","coreVersion":"10.291","createdTime":1668808206020,"modifiedTime":1671050477123,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
{"_id":"FH3mSvdebfhIL2Af","name":"Topazoïne","type":"potion","img":"systems/foundryvtt-reve-de-dragon/icons/objets/topazoine.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.equipement.FH3mSvdebfhIL2Af"}},"system":{"description":"<p>Granulés. Coquille d'oeuf de cane broyé.</p>","descriptionmj":"","encombrement":0.1,"quantite":1,"qualite":0,"cout":2,"milieu":"","environnement":[{"milieu":"Villages","rarete":"Rarissime","frequence":2},{"milieu":"Villes","rarete":"Rare","frequence":6}],"temporel":{"debut":{"indexDate":-1,"indexMinute":0},"fin":{"indexDate":-1,"indexMinute":0}},"rarete":"","categorie":"Remede","herbe":"","herbebrins":0,"herbebonus":0,"reposalchimique":false,"pr":0,"prpermanent":false,"prdate":0,"soinherbe":"","soinherbebonus":0},"ownership":{"default":0,"rYShh2P1DNavdoBD":3},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.6.15","coreVersion":"10.291","createdTime":1668808206019,"modifiedTime":1676074487964,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
||||||
{"_id":"Gp9ZrwXkqZbJoVVT","name":"1 m² de toile de voile","type":"objet","img":"systems/foundryvtt-reve-de-dragon/icons/objets/voile.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.equipement.Gp9ZrwXkqZbJoVVT"}},"system":{"description":"","descriptionmj":"","encombrement":0.2,"quantite":1,"qualite":0,"cout":0.1,"equipe":false,"resistance":0},"ownership":{"default":0,"rYShh2P1DNavdoBD":3},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.3.13","coreVersion":"10.291","createdTime":1668808206020,"modifiedTime":1671050477123,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
{"_id":"FaNRC7YQzibSdqZU","name":"Plume de fer","type":"objet","img":"systems/foundryvtt-reve-de-dragon/icons/objets/plume_de_fer.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.equipement.FaNRC7YQzibSdqZU"}},"system":{"description":"","descriptionmj":"","encombrement":0.01,"quantite":1,"qualite":0,"cout":0.1,"milieu":"","environnement":[{"milieu":"Villages","rarete":"Rarissime","frequence":2},{"milieu":"Villes","rarete":"Rare","frequence":6}],"equipe":false,"resistance":0},"ownership":{"default":0,"rYShh2P1DNavdoBD":3},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.6.15","coreVersion":"10.291","createdTime":1668808206019,"modifiedTime":1676074487964,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
||||||
{"_id":"HdciYu5J2SrJO8e3","name":"Épée gnome","type":"arme","img":"systems/foundryvtt-reve-de-dragon/icons/armes_armures/epee_gnome.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.equipement.HdciYu5J2SrJO8e3"}},"system":{"description":"<p>C’est une épée <em>courte</em>, essentiellement fabriquée et portée par les Gnomes au Second Âge.</p>","descriptionmj":"","equipe":false,"encombrement":1,"quantite":1,"qualite":0,"cout":12,"resistance":12,"categorie_parade":"epees-courtes","dommages":"2","penetration":0,"force":"8","competence":"Epée à 1 main","lancer":"","tir":"","portee_courte":0,"portee_moyenne":0,"portee_extreme":0,"magique":false,"ecaille_efficacite":null,"resistance_magique":null,"rapide":true,"deuxmains":false,"unemain":true,"initpremierround":"epeegnome"},"ownership":{"default":0,"Q4cUvqxCxMoTJXDL":3},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.3.13","coreVersion":"10.291","createdTime":1668808206020,"modifiedTime":1671050477123,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
{"_id":"Flx5inKGs1GQKoYq","name":"Tube à parchemins","type":"conteneur","img":"systems/foundryvtt-reve-de-dragon/icons/objets/tube_parchemin.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.equipement.Flx5inKGs1GQKoYq"}},"system":{"description":"","descriptionmj":"","encombrement":0.1,"quantite":1,"qualite":0,"cout":0.5,"milieu":"","environnement":[{"milieu":"Villages","rarete":"Rare","frequence":6},{"milieu":"Villes","rarete":"Frequente","frequence":18}],"contenu":[],"capacite":1.3,"equipe":false},"ownership":{"default":0,"rYShh2P1DNavdoBD":3},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.6.15","coreVersion":"10.291","createdTime":1668808206019,"modifiedTime":1676074487964,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
||||||
{"_id":"HjbB4f1CDz96Hv88","name":"Rasoir","type":"arme","img":"systems/foundryvtt-reve-de-dragon/icons/objets/rasoir.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.equipement.HjbB4f1CDz96Hv88"}},"system":{"description":"","descriptionmj":"","equipe":false,"encombrement":0.1,"quantite":1,"qualite":0,"cout":2,"resistance":0,"categorie_parade":"dagues","dommages":"1","penetration":0,"force":"0","competence":"Dague","lancer":"Dague de jet","tir":"","portee_courte":3,"portee_moyenne":8,"portee_extreme":15,"magique":false,"ecaille_efficacite":0,"resistance_magique":0,"rapide":false,"deuxmains":false,"unemain":false,"initpremierround":"dague"},"ownership":{"default":0,"Q4cUvqxCxMoTJXDL":3},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.3.13","coreVersion":"10.291","createdTime":1668808206021,"modifiedTime":1671050477123,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
{"_id":"GAJIShPe7WugrIVO","name":"Manteau de fourrure","type":"objet","img":"systems/foundryvtt-reve-de-dragon/icons/objets/manteau_fourrure.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.equipement.GAJIShPe7WugrIVO"}},"system":{"description":"<p>En fonction de la qualité de la fourrure, le prix d'un tel manteau peut varier de 1 à 20 sols.</p>","descriptionmj":"","encombrement":1,"quantite":1,"qualite":0,"cout":0,"milieu":"","environnement":[{"milieu":"Villages","rarete":"Frequente","frequence":18},{"milieu":"Villes","rarete":"Rare","frequence":6}],"equipe":false,"resistance":0},"ownership":{"default":0,"rYShh2P1DNavdoBD":3},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.6.15","coreVersion":"10.291","createdTime":1668808206020,"modifiedTime":1676074487964,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
||||||
{"_id":"HsIJSPQ46cec22Y2","name":"Couverture de laine","type":"objet","img":"systems/foundryvtt-reve-de-dragon/icons/objets/couverture_laine.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.equipement.HsIJSPQ46cec22Y2"}},"system":{"description":"","descriptionmj":"","encombrement":0.6,"quantite":1,"qualite":0,"cout":0.3,"equipe":false,"resistance":0},"ownership":{"default":0,"rYShh2P1DNavdoBD":3},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.3.13","coreVersion":"10.291","createdTime":1668808206021,"modifiedTime":1671050477123,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
{"_id":"GiquTnEsiVZn7m6Y","name":"Bas de soie","type":"objet","img":"systems/foundryvtt-reve-de-dragon/icons/objets/bas_soie.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.equipement.GiquTnEsiVZn7m6Y"}},"system":{"description":"","descriptionmj":"","encombrement":0,"quantite":1,"qualite":0,"cout":3,"milieu":"","environnement":[{"milieu":"Villages","rarete":"Frequente","frequence":18},{"milieu":"Villes","rarete":"Rare","frequence":6}],"equipe":false,"resistance":0},"ownership":{"default":0,"rYShh2P1DNavdoBD":3},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.6.15","coreVersion":"10.291","createdTime":1668808206020,"modifiedTime":1676074487965,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
||||||
{"_id":"Ig9qIzaZ5SveXLF7","name":"Pelle","type":"objet","img":"systems/foundryvtt-reve-de-dragon/icons/objets/pelle.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.equipement.Ig9qIzaZ5SveXLF7"}},"system":{"description":"","descriptionmj":"","encombrement":1,"quantite":1,"qualite":0,"cout":1,"equipe":false,"resistance":0},"ownership":{"default":0,"rYShh2P1DNavdoBD":3},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.3.13","coreVersion":"10.291","createdTime":1668808206021,"modifiedTime":1671050477123,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
{"_id":"Gp9ZrwXkqZbJoVVT","name":"1 m² de toile de voile","type":"objet","img":"systems/foundryvtt-reve-de-dragon/icons/objets/voile.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.equipement.Gp9ZrwXkqZbJoVVT"}},"system":{"description":"","descriptionmj":"","encombrement":0.2,"quantite":1,"qualite":0,"cout":0.1,"milieu":"","environnement":[{"milieu":"Villages","rarete":"Rare","frequence":6},{"milieu":"Villes","rarete":"Frequente","frequence":18}],"equipe":false,"resistance":0},"ownership":{"default":0,"rYShh2P1DNavdoBD":3},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.6.15","coreVersion":"10.291","createdTime":1668808206020,"modifiedTime":1676074487965,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
||||||
{"_id":"InTxnjInfBYHsqcR","name":"Poêle à frire (40 cm)","type":"conteneur","img":"systems/foundryvtt-reve-de-dragon/icons/objets/poele.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.equipement.InTxnjInfBYHsqcR"}},"system":{"description":"","descriptionmj":"","encombrement":0.3,"quantite":1,"qualite":0,"cout":0.5,"contenu":[],"capacite":0.5,"equipe":false},"ownership":{"default":0,"rYShh2P1DNavdoBD":3},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.3.13","coreVersion":"10.291","createdTime":1668808206021,"modifiedTime":1671050477123,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
{"_id":"HdciYu5J2SrJO8e3","name":"Épée gnome","type":"arme","img":"systems/foundryvtt-reve-de-dragon/icons/armes_armures/epee_gnome.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.equipement.HdciYu5J2SrJO8e3"}},"system":{"description":"<p>C’est une épée <em>courte</em>, essentiellement fabriquée et portée par les Gnomes au Second Âge.</p>","descriptionmj":"","equipe":false,"encombrement":1,"quantite":1,"qualite":0,"cout":12,"milieu":"","environnement":[{"milieu":"Villages","rarete":"Frequente","frequence":18},{"milieu":"Villes","rarete":"Frequente","frequence":18}],"resistance":12,"categorie_parade":"epees-courtes","dommages":"2","penetration":0,"force":"8","competence":"Epée à 1 main","lancer":"","tir":"","portee_courte":0,"portee_moyenne":0,"portee_extreme":0,"magique":false,"ecaille_efficacite":null,"resistance_magique":null,"rapide":true,"deuxmains":false,"unemain":true,"initpremierround":"epeegnome"},"ownership":{"default":0,"Q4cUvqxCxMoTJXDL":3},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.6.15","coreVersion":"10.291","createdTime":1668808206020,"modifiedTime":1676074487965,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
||||||
{"_id":"JXMef7FXVOG1XYWO","name":"Elixir des gnomes","type":"potion","img":"systems/foundryvtt-reve-de-dragon/icons/objets/elixir_des_gnomes.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.equipement.JXMef7FXVOG1XYWO"}},"system":{"description":"<p>Fluide.</p>\n<p>Liqueur violette.</p>","descriptionmj":"","encombrement":0.1,"quantite":1,"qualite":0,"cout":1,"rarete":"","categorie":"Alchimie","herbe":"","herbebrins":0,"herbebonus":0,"reposalchimique":false,"pr":0,"prpermanent":false,"prdate":0,"soinherbe":"","soinherbebonus":0},"ownership":{"default":0,"rYShh2P1DNavdoBD":3},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.3.13","coreVersion":"10.291","createdTime":1668808206021,"modifiedTime":1671050477123,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
{"_id":"HjbB4f1CDz96Hv88","name":"Rasoir","type":"arme","img":"systems/foundryvtt-reve-de-dragon/icons/objets/rasoir.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.equipement.HjbB4f1CDz96Hv88"}},"system":{"description":"","descriptionmj":"","equipe":false,"encombrement":0.1,"quantite":1,"qualite":0,"cout":2,"milieu":"","environnement":[{"milieu":"Villages","rarete":"Rare","frequence":6},{"milieu":"Villes","rarete":"Frequente","frequence":18}],"resistance":0,"categorie_parade":"dagues","dommages":"1","penetration":0,"force":"0","competence":"Dague","lancer":"Dague de jet","tir":"","portee_courte":3,"portee_moyenne":8,"portee_extreme":15,"magique":false,"ecaille_efficacite":0,"resistance_magique":0,"rapide":false,"deuxmains":false,"unemain":false,"initpremierround":"dague"},"ownership":{"default":0,"Q4cUvqxCxMoTJXDL":3},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.6.15","coreVersion":"10.291","createdTime":1668808206021,"modifiedTime":1676074487965,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
||||||
{"_id":"JfxFBlokIegRWTDo","name":"Torche 1/2 heure (60 min)","type":"objet","img":"systems/foundryvtt-reve-de-dragon/icons/objets/torche.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.equipement.JfxFBlokIegRWTDo"}},"system":{"description":"","descriptionmj":"","encombrement":0.3,"quantite":1,"qualite":0,"cout":0.02,"equipe":false,"resistance":0},"ownership":{"default":0,"rYShh2P1DNavdoBD":3},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.3.13","coreVersion":"10.291","createdTime":1668808206021,"modifiedTime":1671050477124,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
{"_id":"HsIJSPQ46cec22Y2","name":"Couverture de laine","type":"objet","img":"systems/foundryvtt-reve-de-dragon/icons/objets/couverture_laine.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.equipement.HsIJSPQ46cec22Y2"}},"system":{"description":"","descriptionmj":"","encombrement":0.6,"quantite":1,"qualite":0,"cout":0.3,"milieu":"","environnement":[{"milieu":"Villages","rarete":"Commune","frequence":54},{"milieu":"Villes","rarete":"Commune","frequence":54}],"equipe":false,"resistance":0},"ownership":{"default":0,"rYShh2P1DNavdoBD":3},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.6.15","coreVersion":"10.291","createdTime":1668808206021,"modifiedTime":1676074487965,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
||||||
{"_id":"JhQZDbsmFZBLRcln","name":"Sac en jute (20 litres)","type":"conteneur","img":"systems/foundryvtt-reve-de-dragon/icons/objets/sac_jute_20.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.equipement.JhQZDbsmFZBLRcln"}},"system":{"description":"","descriptionmj":"","encombrement":0.05,"quantite":1,"qualite":0,"cout":0.04,"contenu":[],"capacite":10,"equipe":false},"ownership":{"default":0,"rYShh2P1DNavdoBD":3},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.3.13","coreVersion":"10.291","createdTime":1668808206021,"modifiedTime":1671050477124,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
{"_id":"Ig9qIzaZ5SveXLF7","name":"Pelle","type":"objet","img":"systems/foundryvtt-reve-de-dragon/icons/objets/pelle.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.equipement.Ig9qIzaZ5SveXLF7"}},"system":{"description":"","descriptionmj":"","encombrement":1,"quantite":1,"qualite":0,"cout":1,"milieu":"","environnement":[{"milieu":"Villages","rarete":"Frequente","frequence":18},{"milieu":"Villes","rarete":"Frequente","frequence":18}],"equipe":false,"resistance":0},"ownership":{"default":0,"rYShh2P1DNavdoBD":3},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.6.15","coreVersion":"10.291","createdTime":1668808206021,"modifiedTime":1676074487965,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
||||||
{"_id":"K4n2JuDnoHDUPCZG","name":"Bouilloire de fer (2 litres)","type":"conteneur","img":"systems/foundryvtt-reve-de-dragon/icons/objets/bouilloire.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.equipement.K4n2JuDnoHDUPCZG"}},"system":{"description":"","descriptionmj":"","encombrement":0.5,"quantite":1,"qualite":0,"cout":0.5,"contenu":[],"capacite":1,"equipe":false},"ownership":{"default":0,"rYShh2P1DNavdoBD":3},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.3.13","coreVersion":"10.291","createdTime":1668808206022,"modifiedTime":1671050477124,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
{"_id":"InTxnjInfBYHsqcR","name":"Poêle à frire (40 cm)","type":"conteneur","img":"systems/foundryvtt-reve-de-dragon/icons/objets/poele.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.equipement.InTxnjInfBYHsqcR"}},"system":{"description":"","descriptionmj":"","encombrement":0.3,"quantite":1,"qualite":0,"cout":0.5,"milieu":"","environnement":[{"milieu":"Villages","rarete":"Rare","frequence":6},{"milieu":"Villes","rarete":"Frequente","frequence":18}],"contenu":[],"capacite":0.5,"equipe":false},"ownership":{"default":0,"rYShh2P1DNavdoBD":3},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.6.15","coreVersion":"10.291","createdTime":1668808206021,"modifiedTime":1676074487965,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
||||||
{"_id":"KQZIK8ltQ3sQiDGe","name":"Mailles de Fer","type":"armure","img":"systems/foundryvtt-reve-de-dragon/icons/armes_armures/mailles.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.equipement.KQZIK8ltQ3sQiDGe"}},"system":{"description":"<p>Grand haubert de mailles avec capuche À enfiler sur une cotte de cuir souple ou de drap matelassé) + bottes de cuir / métal.</p>\n<p> </p>","descriptionmj":"","equipe":false,"encombrement":6,"quantite":1,"qualite":0,"cout":50,"protection":5,"deterioration":null,"malus":-4},"ownership":{"default":0,"rYShh2P1DNavdoBD":3},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.3.13","coreVersion":"10.291","createdTime":1668808206022,"modifiedTime":1671050477124,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
{"_id":"JXMef7FXVOG1XYWO","name":"Elixir des gnomes","type":"potion","img":"systems/foundryvtt-reve-de-dragon/icons/objets/elixir_des_gnomes.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.equipement.JXMef7FXVOG1XYWO"}},"system":{"description":"<p>Fluide.</p>\n<p>Liqueur violette.</p>","descriptionmj":"","encombrement":0.1,"quantite":1,"qualite":0,"cout":1,"milieu":"","environnement":[{"milieu":"Villages","rarete":"Rarissime","frequence":2},{"milieu":"Villes","rarete":"Rare","frequence":6}],"temporel":{"debut":{"indexDate":-1,"indexMinute":0},"fin":{"indexDate":-1,"indexMinute":0}},"rarete":"","categorie":"Remede","herbe":"","herbebrins":0,"herbebonus":0,"reposalchimique":false,"pr":0,"prpermanent":false,"prdate":0,"soinherbe":"","soinherbebonus":0},"ownership":{"default":0,"rYShh2P1DNavdoBD":3},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.6.15","coreVersion":"10.291","createdTime":1668808206021,"modifiedTime":1676074487965,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
||||||
{"_id":"KlydiUbayqBgJB6J","name":"Tablette de cire","type":"objet","img":"systems/foundryvtt-reve-de-dragon/icons/objets/tablette_cire.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.equipement.KlydiUbayqBgJB6J"}},"system":{"description":"","descriptionmj":"","encombrement":0.1,"quantite":1,"qualite":0,"cout":0.2,"equipe":false,"resistance":0},"ownership":{"default":0,"rYShh2P1DNavdoBD":3},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.3.13","coreVersion":"10.291","createdTime":1668808206022,"modifiedTime":1671050477124,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
{"_id":"JfxFBlokIegRWTDo","name":"Torche 1/2 heure (60 min)","type":"objet","img":"systems/foundryvtt-reve-de-dragon/icons/objets/torche.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.equipement.JfxFBlokIegRWTDo"}},"system":{"description":"","descriptionmj":"","encombrement":0.3,"quantite":1,"qualite":0,"cout":0.02,"milieu":"","environnement":[{"milieu":"Villages","rarete":"Commune","frequence":54},{"milieu":"Villes","rarete":"Commune","frequence":54}],"equipe":false,"resistance":0},"ownership":{"default":0,"rYShh2P1DNavdoBD":3},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.6.15","coreVersion":"10.291","createdTime":1668808206021,"modifiedTime":1676074487965,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
||||||
{"_id":"KvzSNxISkWDoilO8","name":"Gemme Inconnue","type":"objet","flags":{"core":{"sourceId":"Item.V3V3wUXNCG6gzJFB"}},"img":"systems/foundryvtt-reve-de-dragon/icons/gemmes/seliphane.webp","effects":[],"system":{"description":"","descriptionmj":"","encombrement":null,"quantite":1,"qualite":0,"cout":0,"equipe":false,"resistance":0},"ownership":{"default":0,"Q4cUvqxCxMoTJXDL":3},"folder":null,"sort":0,"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.3.13","coreVersion":"10.291","createdTime":1668808206022,"modifiedTime":1671050477124,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
{"_id":"JhQZDbsmFZBLRcln","name":"Sac en jute (20 litres)","type":"conteneur","img":"systems/foundryvtt-reve-de-dragon/icons/objets/sac_jute_20.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.equipement.JhQZDbsmFZBLRcln"}},"system":{"description":"","descriptionmj":"","encombrement":0.05,"quantite":1,"qualite":0,"cout":0.04,"milieu":"","environnement":[{"milieu":"Villages","rarete":"Frequente","frequence":18},{"milieu":"Villes","rarete":"Frequente","frequence":18}],"contenu":[],"capacite":10,"equipe":false},"ownership":{"default":0,"rYShh2P1DNavdoBD":3},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.6.15","coreVersion":"10.291","createdTime":1668808206021,"modifiedTime":1676074487965,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
||||||
{"_id":"LZPEdSIv3KywCwdk","name":"Liquide","type":"munition","img":"systems/foundryvtt-reve-de-dragon/icons/liquides/liquide_neutre.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.equipement.LZPEdSIv3KywCwdk"}},"system":{"description":"<p>1 mesure (20cl) d'un liquide.</p>\n<p><em>(à modifier/compléter)</em></p>","descriptionmj":"","encombrement":0.1,"quantite":1,"qualite":0,"cout":0,"equipe":false},"ownership":{"default":0,"rYShh2P1DNavdoBD":3},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.3.13","coreVersion":"10.291","createdTime":1668808206022,"modifiedTime":1671050477124,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
{"_id":"K4n2JuDnoHDUPCZG","name":"Bouilloire de fer (2 litres)","type":"conteneur","img":"systems/foundryvtt-reve-de-dragon/icons/objets/bouilloire.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.equipement.K4n2JuDnoHDUPCZG"}},"system":{"description":"","descriptionmj":"","encombrement":0.5,"quantite":1,"qualite":0,"cout":0.5,"milieu":"","environnement":[{"milieu":"Villages","rarete":"Rare","frequence":6},{"milieu":"Villes","rarete":"Frequente","frequence":18}],"contenu":[],"capacite":1,"equipe":false},"ownership":{"default":0,"rYShh2P1DNavdoBD":3},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.6.15","coreVersion":"10.291","createdTime":1668808206022,"modifiedTime":1676074487965,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
||||||
{"_id":"LaAP5tsP1Sc43hKO","name":"Lanterne à huile","type":"conteneur","img":"systems/foundryvtt-reve-de-dragon/icons/objets/lanterne_huile.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.equipement.LaAP5tsP1Sc43hKO"}},"system":{"description":"","descriptionmj":"","encombrement":1,"quantite":1,"qualite":0,"cout":5,"contenu":[],"capacite":0.3,"equipe":false},"ownership":{"default":0,"rYShh2P1DNavdoBD":3},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.3.13","coreVersion":"10.291","createdTime":1668808206022,"modifiedTime":1671050477124,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
{"_id":"KQZIK8ltQ3sQiDGe","name":"Mailles de Fer","type":"armure","img":"systems/foundryvtt-reve-de-dragon/icons/armes_armures/mailles.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.equipement.KQZIK8ltQ3sQiDGe"}},"system":{"description":"<p>Grand haubert de mailles avec capuche À enfiler sur une cotte de cuir souple ou de drap matelassé) + bottes de cuir / métal.</p>\n<p> </p>","descriptionmj":"","equipe":false,"encombrement":6,"quantite":1,"qualite":0,"cout":50,"milieu":"","environnement":[{"milieu":"Villages","rarete":"Rarissime","frequence":2},{"milieu":"Villes","rarete":"Rare","frequence":6}],"protection":"5","deterioration":null,"malus":-4},"ownership":{"default":0,"rYShh2P1DNavdoBD":3},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.6.15","coreVersion":"10.291","createdTime":1668808206022,"modifiedTime":1676074487965,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
||||||
{"_id":"LkE8EjPfao9m6Rn7","name":"Huile de Sélikanthe","type":"potion","img":"systems/foundryvtt-reve-de-dragon/icons/objets/huile_de_selikanthe.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.equipement.LkE8EjPfao9m6Rn7"}},"system":{"description":"<p>Fluide.</p>\n<p>Liquide légèrement huileux.</p>","descriptionmj":"","encombrement":0.1,"quantite":1,"qualite":0,"cout":1,"rarete":"","categorie":"Alchimie","herbe":"","herbebrins":0,"herbebonus":0,"reposalchimique":false,"pr":0,"prpermanent":false,"prdate":0,"soinherbe":"","soinherbebonus":0},"ownership":{"default":0,"rYShh2P1DNavdoBD":3},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.3.13","coreVersion":"10.291","createdTime":1668808206022,"modifiedTime":1671050477124,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
{"_id":"KlydiUbayqBgJB6J","name":"Tablette de cire","type":"objet","img":"systems/foundryvtt-reve-de-dragon/icons/objets/tablette_cire.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.equipement.KlydiUbayqBgJB6J"}},"system":{"description":"","descriptionmj":"","encombrement":0.1,"quantite":1,"qualite":0,"cout":0.2,"milieu":"","environnement":[{"milieu":"Villages","rarete":"Frequente","frequence":18},{"milieu":"Villes","rarete":"Rare","frequence":6}],"equipe":false,"resistance":0},"ownership":{"default":0,"rYShh2P1DNavdoBD":3},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.6.15","coreVersion":"10.291","createdTime":1668808206022,"modifiedTime":1676074487965,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
||||||
{"_id":"Lz4dA2NwxdSZ3FZK","name":"Lime, Râpe","type":"objet","img":"systems/foundryvtt-reve-de-dragon/icons/objets/lime.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.equipement.Lz4dA2NwxdSZ3FZK"}},"system":{"description":"","descriptionmj":"","encombrement":0.2,"quantite":1,"qualite":0,"cout":0.5,"equipe":false,"resistance":0},"ownership":{"default":0,"rYShh2P1DNavdoBD":3},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.3.13","coreVersion":"10.291","createdTime":1668808206022,"modifiedTime":1671050477125,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
{"_id":"KvzSNxISkWDoilO8","name":"Gemme Inconnue","type":"objet","flags":{"core":{"sourceId":"Item.V3V3wUXNCG6gzJFB"}},"img":"systems/foundryvtt-reve-de-dragon/icons/gemmes/seliphane.webp","effects":[],"system":{"description":"","descriptionmj":"","encombrement":null,"quantite":1,"qualite":0,"cout":0,"milieu":"","environnement":[{"milieu":"Villages","rarete":"Rarissime","frequence":2},{"milieu":"Villes","rarete":"Rare","frequence":6}],"equipe":false,"resistance":0},"ownership":{"default":0,"Q4cUvqxCxMoTJXDL":3},"folder":null,"sort":0,"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.6.15","coreVersion":"10.291","createdTime":1668808206022,"modifiedTime":1676074487965,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
||||||
{"_id":"M1RgJDuQUvxjqJVV","name":"Chandelle de suif (1 heure)","type":"objet","img":"systems/foundryvtt-reve-de-dragon/icons/objets/chandelle.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.equipement.M1RgJDuQUvxjqJVV"}},"system":{"description":"","descriptionmj":"","encombrement":0.1,"quantite":1,"qualite":0,"cout":0.02,"equipe":false,"resistance":0},"ownership":{"default":0,"rYShh2P1DNavdoBD":3},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.3.13","coreVersion":"10.291","createdTime":1668808206022,"modifiedTime":1671050477125,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
{"_id":"LZPEdSIv3KywCwdk","name":"Liquide","type":"munition","img":"systems/foundryvtt-reve-de-dragon/icons/liquides/liquide_neutre.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.equipement.LZPEdSIv3KywCwdk"}},"system":{"description":"<p>1 mesure (20cl) d'un liquide.</p>\n<p><em>(à modifier/compléter)</em></p>","descriptionmj":"","encombrement":0.1,"quantite":1,"qualite":0,"cout":0,"milieu":"","environnement":[{"milieu":"Villages","rarete":"Frequente","frequence":18},{"milieu":"Villes","rarete":"Frequente","frequence":18}],"equipe":false},"ownership":{"default":0,"rYShh2P1DNavdoBD":3},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.6.15","coreVersion":"10.291","createdTime":1668808206022,"modifiedTime":1676074487965,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
||||||
{"_id":"MGvyXFQJpv6nNynl","name":"Masse lourde","type":"arme","img":"systems/foundryvtt-reve-de-dragon/icons/armes_armures/masse_lourde.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.equipement.MGvyXFQJpv6nNynl"}},"system":{"description":"","descriptionmj":"","equipe":false,"encombrement":3,"quantite":1,"qualite":0,"cout":4,"resistance":10,"categorie_parade":"","dommages":"3/4","penetration":0,"force":"12/11","competence":"Masse à 1 main","lancer":"","tir":"","portee_courte":0,"portee_moyenne":0,"portee_extreme":0,"magique":false,"ecaille_efficacite":0,"resistance_magique":0,"rapide":false,"deuxmains":true,"unemain":true,"initpremierround":"masse"},"ownership":{"default":0,"Q4cUvqxCxMoTJXDL":3},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.3.13","coreVersion":"10.291","createdTime":1668808206023,"modifiedTime":1671050477125,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
{"_id":"LaAP5tsP1Sc43hKO","name":"Lanterne à huile","type":"conteneur","img":"systems/foundryvtt-reve-de-dragon/icons/objets/lanterne_huile.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.equipement.LaAP5tsP1Sc43hKO"}},"system":{"description":"","descriptionmj":"","encombrement":1,"quantite":1,"qualite":0,"cout":5,"milieu":"","environnement":[{"milieu":"Villages","rarete":"Rare","frequence":6},{"milieu":"Villes","rarete":"Frequente","frequence":18}],"contenu":[],"capacite":0.3,"equipe":false},"ownership":{"default":0,"rYShh2P1DNavdoBD":3},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.6.15","coreVersion":"10.291","createdTime":1668808206022,"modifiedTime":1676074487965,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
||||||
{"_id":"MQxgfYTEQEUhG116","name":"Épée bâtarde","type":"arme","img":"systems/foundryvtt-reve-de-dragon/icons/armes_armures/epee_batarde.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.equipement.MQxgfYTEQEUhG116"}},"system":{"description":"<p>Comme son nom l’indique, c’est une <em>bâtarde </em>de l'épée longue et de l'épée sorde, à la fois longue et large, pouvant s’utiliser à une ou deux mains.</p>","descriptionmj":"","equipe":false,"encombrement":3,"quantite":1,"qualite":0,"cout":30,"resistance":14,"categorie_parade":"epees-lourdes","dommages":"4/5","penetration":0,"force":"13/12","competence":"Epée à 1 main","lancer":"","tir":"","portee_courte":0,"portee_moyenne":0,"portee_extreme":0,"magique":false,"ecaille_efficacite":null,"resistance_magique":null,"rapide":false,"deuxmains":true,"unemain":true,"initpremierround":"epeebatarde"},"ownership":{"default":0,"Q4cUvqxCxMoTJXDL":3},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.3.13","coreVersion":"10.291","createdTime":1668808206023,"modifiedTime":1671050477125,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
{"_id":"LkE8EjPfao9m6Rn7","name":"Huile de Sélikanthe","type":"potion","img":"systems/foundryvtt-reve-de-dragon/icons/objets/huile_de_selikanthe.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.equipement.LkE8EjPfao9m6Rn7"}},"system":{"description":"<p>Fluide.</p>\n<p>Liquide légèrement huileux.</p>","descriptionmj":"","encombrement":0.1,"quantite":1,"qualite":0,"cout":1,"milieu":"","environnement":[{"milieu":"Villages","rarete":"Rarissime","frequence":2},{"milieu":"Villes","rarete":"Rare","frequence":6}],"temporel":{"debut":{"indexDate":-1,"indexMinute":0},"fin":{"indexDate":-1,"indexMinute":0}},"rarete":"","categorie":"Remede","herbe":"","herbebrins":0,"herbebonus":0,"reposalchimique":false,"pr":0,"prpermanent":false,"prdate":0,"soinherbe":"","soinherbebonus":0},"ownership":{"default":0,"rYShh2P1DNavdoBD":3},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.6.15","coreVersion":"10.291","createdTime":1668808206022,"modifiedTime":1676074487965,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
||||||
{"_id":"Mbh2M8JS1Rf0vxEX","name":"Harpe","type":"objet","img":"systems/foundryvtt-reve-de-dragon/icons/objets/harpe.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.equipement.Mbh2M8JS1Rf0vxEX"}},"system":{"description":"","descriptionmj":"","encombrement":1,"quantite":1,"qualite":0,"cout":5,"equipe":false,"resistance":0},"ownership":{"default":0,"rYShh2P1DNavdoBD":3},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.3.13","coreVersion":"10.291","createdTime":1668808206023,"modifiedTime":1671050477125,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
{"_id":"M1RgJDuQUvxjqJVV","name":"Chandelle de suif (1 heure)","type":"objet","img":"systems/foundryvtt-reve-de-dragon/icons/objets/chandelle.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.equipement.M1RgJDuQUvxjqJVV"}},"system":{"description":"","descriptionmj":"","encombrement":0.1,"quantite":1,"qualite":0,"cout":0.02,"milieu":"","environnement":[{"milieu":"Villages","rarete":"Frequente","frequence":18},{"milieu":"Villes","rarete":"Frequente","frequence":18}],"equipe":false,"resistance":0},"ownership":{"default":0,"rYShh2P1DNavdoBD":3},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.6.15","coreVersion":"10.291","createdTime":1668808206022,"modifiedTime":1676074487966,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
||||||
{"_id":"NCp2kdTKmQGyAh1U","name":"Dague","type":"arme","img":"systems/foundryvtt-reve-de-dragon/icons/armes_armures/dague.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sheetClass":"","sourceId":"Compendium.foundryvtt-reve-de-dragon.equipement.NCp2kdTKmQGyAh1U"}},"system":{"description":"","descriptionmj":"","equipe":false,"encombrement":0.5,"quantite":1,"qualite":0,"cout":3,"resistance":8,"categorie_parade":"dagues","dommages":"1","penetration":0,"force":"7","competence":"Dague","lancer":"Dague de jet","tir":"","portee_courte":3,"portee_moyenne":8,"portee_extreme":15,"magique":false,"ecaille_efficacite":null,"resistance_magique":null,"rapide":true,"deuxmains":false,"unemain":true,"initpremierround":"dague"},"ownership":{"default":0,"Q4cUvqxCxMoTJXDL":3},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.3.13","coreVersion":"10.291","createdTime":1668808206023,"modifiedTime":1671050477125,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
{"_id":"MGvyXFQJpv6nNynl","name":"Masse lourde","type":"arme","img":"systems/foundryvtt-reve-de-dragon/icons/armes_armures/masse_lourde.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.equipement.MGvyXFQJpv6nNynl"}},"system":{"description":"","descriptionmj":"","equipe":false,"encombrement":3,"quantite":1,"qualite":0,"cout":4,"milieu":"","environnement":[{"milieu":"Villages","rarete":"Rare","frequence":6},{"milieu":"Villes","rarete":"Frequente","frequence":18}],"resistance":10,"categorie_parade":"","dommages":"3/4","penetration":0,"force":"12/11","competence":"Masse à 1 main","lancer":"","tir":"","portee_courte":0,"portee_moyenne":0,"portee_extreme":0,"magique":false,"ecaille_efficacite":0,"resistance_magique":0,"rapide":false,"deuxmains":true,"unemain":true,"initpremierround":"masse"},"ownership":{"default":0,"Q4cUvqxCxMoTJXDL":3},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.6.15","coreVersion":"10.291","createdTime":1668808206023,"modifiedTime":1676074487966,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
||||||
{"_id":"NNLhxjFsoJVdFuit","name":"Bouteille de verre (1 litre)","type":"conteneur","img":"systems/foundryvtt-reve-de-dragon/icons/objets/bouteille_verre.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.equipement.NNLhxjFsoJVdFuit"}},"system":{"description":"","descriptionmj":"","encombrement":0.2,"quantite":1,"qualite":0,"cout":0.7,"contenu":[],"capacite":0.5,"equipe":false},"ownership":{"default":0,"rYShh2P1DNavdoBD":3},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.3.13","coreVersion":"10.291","createdTime":1668808206023,"modifiedTime":1671050477125,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
{"_id":"MQxgfYTEQEUhG116","name":"Épée bâtarde","type":"arme","img":"systems/foundryvtt-reve-de-dragon/icons/armes_armures/epee_batarde.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.equipement.MQxgfYTEQEUhG116"}},"system":{"description":"<p>Comme son nom l’indique, c’est une <em>bâtarde </em>de l'épée longue et de l'épée sorde, à la fois longue et large, pouvant s’utiliser à une ou deux mains.</p>","descriptionmj":"","equipe":false,"encombrement":3,"quantite":1,"qualite":0,"cout":30,"milieu":"","environnement":[{"milieu":"Villages","rarete":"Rarissime","frequence":2},{"milieu":"Villes","rarete":"Rare","frequence":6}],"resistance":14,"categorie_parade":"epees-lourdes","dommages":"4/5","penetration":0,"force":"13/12","competence":"Epée à 1 main","lancer":"","tir":"","portee_courte":0,"portee_moyenne":0,"portee_extreme":0,"magique":false,"ecaille_efficacite":null,"resistance_magique":null,"rapide":false,"deuxmains":true,"unemain":true,"initpremierround":"epeebatarde"},"ownership":{"default":0,"Q4cUvqxCxMoTJXDL":3},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.6.15","coreVersion":"10.291","createdTime":1668808206023,"modifiedTime":1676074487966,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
||||||
{"_id":"OXFFRZOqlhZDJas3","name":"Béret de velours","type":"objet","img":"systems/foundryvtt-reve-de-dragon/icons/objets/beret_velours.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.equipement.OXFFRZOqlhZDJas3"}},"system":{"description":"","descriptionmj":"","encombrement":0.05,"quantite":1,"qualite":0,"cout":3,"equipe":false,"resistance":0},"ownership":{"default":0,"rYShh2P1DNavdoBD":3},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.3.13","coreVersion":"10.291","createdTime":1668808206023,"modifiedTime":1671050477125,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
{"_id":"Mbh2M8JS1Rf0vxEX","name":"Harpe","type":"objet","img":"systems/foundryvtt-reve-de-dragon/icons/objets/harpe.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.equipement.Mbh2M8JS1Rf0vxEX"}},"system":{"description":"","descriptionmj":"","encombrement":1,"quantite":1,"qualite":0,"cout":5,"milieu":"","environnement":[{"milieu":"Villages","rarete":"Rarissime","frequence":2},{"milieu":"Villes","rarete":"Rare","frequence":6}],"equipe":false,"resistance":0},"ownership":{"default":0,"rYShh2P1DNavdoBD":3},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.6.15","coreVersion":"10.291","createdTime":1668808206023,"modifiedTime":1676074487966,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
||||||
{"_id":"OYWzXiQUFsjU5AF2","name":"Perles de Bjwal","type":"potion","img":"systems/foundryvtt-reve-de-dragon/icons/objets/perles_bjwal.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.equipement.OYWzXiQUFsjU5AF2"}},"system":{"description":"<p>Petits granulés translucides.</p>","descriptionmj":"","encombrement":0.1,"quantite":1,"qualite":0,"cout":1,"rarete":"","categorie":"AlchimieAutre","herbe":"","herbebrins":0,"herbebonus":0,"reposalchimique":false,"pr":0,"prpermanent":false,"prdate":0,"soinherbe":"","soinherbebonus":0},"ownership":{"default":0,"rYShh2P1DNavdoBD":3},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.3.13","coreVersion":"10.291","createdTime":1668808206023,"modifiedTime":1671050477125,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
{"_id":"NCp2kdTKmQGyAh1U","name":"Dague","type":"arme","img":"systems/foundryvtt-reve-de-dragon/icons/armes_armures/dague.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sheetClass":"","sourceId":"Compendium.foundryvtt-reve-de-dragon.equipement.NCp2kdTKmQGyAh1U"}},"system":{"description":"","descriptionmj":"","equipe":false,"encombrement":0.5,"quantite":1,"qualite":0,"cout":3,"milieu":"","environnement":[{"milieu":"Villages","rarete":"Frequente","frequence":18},{"milieu":"Villes","rarete":"Frequente","frequence":18}],"resistance":8,"categorie_parade":"dagues","dommages":"1","penetration":0,"force":"7","competence":"Dague","lancer":"Dague de jet","tir":"","portee_courte":3,"portee_moyenne":8,"portee_extreme":15,"magique":false,"ecaille_efficacite":null,"resistance_magique":null,"rapide":true,"deuxmains":false,"unemain":true,"initpremierround":"dague"},"ownership":{"default":0,"Q4cUvqxCxMoTJXDL":3},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.6.15","coreVersion":"10.291","createdTime":1668808206023,"modifiedTime":1676074487966,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
||||||
{"_id":"P0yc6QfgKVmM0fpu","name":"Ecuelle de grès","type":"objet","img":"systems/foundryvtt-reve-de-dragon/icons/objets/ecuelle_gres.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.equipement.P0yc6QfgKVmM0fpu"}},"system":{"description":"","descriptionmj":"","encombrement":0.1,"quantite":1,"qualite":0,"cout":0.1,"equipe":false,"resistance":0},"ownership":{"default":0,"rYShh2P1DNavdoBD":3},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.3.13","coreVersion":"10.291","createdTime":1668808206023,"modifiedTime":1671050477125,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
{"_id":"NNLhxjFsoJVdFuit","name":"Bouteille de verre (1 litre)","type":"conteneur","img":"systems/foundryvtt-reve-de-dragon/icons/objets/bouteille_verre.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.equipement.NNLhxjFsoJVdFuit"}},"system":{"description":"","descriptionmj":"","encombrement":0.2,"quantite":1,"qualite":0,"cout":0.7,"milieu":"","environnement":[{"milieu":"Villages","rarete":"Rare","frequence":6},{"milieu":"Villes","rarete":"Frequente","frequence":18}],"contenu":[],"capacite":0.5,"equipe":false},"ownership":{"default":0,"rYShh2P1DNavdoBD":3},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.6.15","coreVersion":"10.291","createdTime":1668808206023,"modifiedTime":1676074487966,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
||||||
{"_id":"PAqV7Fj8AFEpfEpy","name":"Provisions non-cuites","type":"nourritureboisson","img":"systems/foundryvtt-reve-de-dragon/icons/objets/provision_crue.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Item.2P30CKBRVIPiTf3Z"}},"system":{"description":"","descriptionmj":"","encombrement":0.1,"quantite":1,"qualite":0,"cout":0.01,"sust":1,"exotisme":0,"cuisinier":"","boisson":false,"desaltere":0,"alcoolise":false,"force":0},"ownership":{"default":0,"wYnBx3HmLfGzsj7P":3},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.3.13","coreVersion":"10.291","createdTime":1668808206023,"modifiedTime":1671050477125,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
{"_id":"OXFFRZOqlhZDJas3","name":"Béret de velours","type":"objet","img":"systems/foundryvtt-reve-de-dragon/icons/objets/beret_velours.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.equipement.OXFFRZOqlhZDJas3"}},"system":{"description":"","descriptionmj":"","encombrement":0.05,"quantite":1,"qualite":0,"cout":3,"milieu":"","environnement":[{"milieu":"Villages","rarete":"Rare","frequence":6},{"milieu":"Villes","rarete":"Frequente","frequence":18}],"equipe":false,"resistance":0},"ownership":{"default":0,"rYShh2P1DNavdoBD":3},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.6.15","coreVersion":"10.291","createdTime":1668808206023,"modifiedTime":1676074487966,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
||||||
{"_id":"PH2J4zR0hwXSg0vc","name":"Charbon de bois 1 kg","type":"objet","img":"systems/foundryvtt-reve-de-dragon/icons/objets/charbon.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.equipement.PH2J4zR0hwXSg0vc"}},"system":{"description":"","descriptionmj":"","encombrement":0.04,"quantite":1,"qualite":0,"cout":0.06,"equipe":false,"resistance":0},"ownership":{"default":0,"rYShh2P1DNavdoBD":3},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.3.13","coreVersion":"10.291","createdTime":1668808206023,"modifiedTime":1671050477125,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
{"_id":"OYWzXiQUFsjU5AF2","name":"Perles de Bjwal","type":"potion","img":"systems/foundryvtt-reve-de-dragon/icons/objets/perles_bjwal.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.equipement.OYWzXiQUFsjU5AF2"}},"system":{"description":"<p>Petits granulés translucides.</p>","descriptionmj":"","encombrement":0.1,"quantite":1,"qualite":0,"cout":1,"milieu":"","environnement":[{"milieu":"Villages","rarete":"Rarissime","frequence":2},{"milieu":"Villes","rarete":"Rare","frequence":6}],"temporel":{"debut":{"indexDate":-1,"indexMinute":0},"fin":{"indexDate":-1,"indexMinute":0}},"rarete":"","categorie":"Remede","herbe":"","herbebrins":0,"herbebonus":0,"reposalchimique":false,"pr":0,"prpermanent":false,"prdate":0,"soinherbe":"","soinherbebonus":0},"ownership":{"default":0,"rYShh2P1DNavdoBD":3},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.6.15","coreVersion":"10.291","createdTime":1668808206023,"modifiedTime":1676074487966,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
||||||
{"_id":"PSc92VlQCdNnbPlg","name":"Lance courte","type":"arme","img":"systems/foundryvtt-reve-de-dragon/icons/armes_armures/lance.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.equipement.PSc92VlQCdNnbPlg"}},"system":{"description":"","descriptionmj":"","equipe":false,"encombrement":2,"quantite":1,"qualite":0,"cout":3,"resistance":5,"categorie_parade":"lances","dommages":"2","penetration":0,"force":"8","competence":"Lance","lancer":"","tir":"","portee_courte":0,"portee_moyenne":0,"portee_extreme":0,"magique":false,"ecaille_efficacite":null,"resistance_magique":null,"rapide":true,"deuxmains":false,"unemain":true,"initpremierround":"lance"},"ownership":{"default":0,"Q4cUvqxCxMoTJXDL":3},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.3.13","coreVersion":"10.291","createdTime":1668808206024,"modifiedTime":1671050477125,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
{"_id":"P0yc6QfgKVmM0fpu","name":"Ecuelle de grès","type":"objet","img":"systems/foundryvtt-reve-de-dragon/icons/objets/ecuelle_gres.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.equipement.P0yc6QfgKVmM0fpu"}},"system":{"description":"","descriptionmj":"","encombrement":0.1,"quantite":1,"qualite":0,"cout":0.1,"milieu":"","environnement":[{"milieu":"Villages","rarete":"Frequente","frequence":18},{"milieu":"Villes","rarete":"Frequente","frequence":18}],"equipe":false,"resistance":0},"ownership":{"default":0,"rYShh2P1DNavdoBD":3},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.6.15","coreVersion":"10.291","createdTime":1668808206023,"modifiedTime":1676074487966,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
||||||
{"_id":"PaJoTirnA6h4F3pH","name":"Hameçon","type":"objet","img":"systems/foundryvtt-reve-de-dragon/icons/objets/hame%C3%A7on.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.equipement.PaJoTirnA6h4F3pH"}},"system":{"description":"","descriptionmj":"","encombrement":0.01,"quantite":1,"qualite":0,"cout":0.1,"equipe":false,"resistance":0},"ownership":{"default":0,"rYShh2P1DNavdoBD":3},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.3.13","coreVersion":"10.291","createdTime":1668808206024,"modifiedTime":1671050477125,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
{"_id":"PAqV7Fj8AFEpfEpy","name":"Provisions non-cuites","type":"nourritureboisson","img":"systems/foundryvtt-reve-de-dragon/icons/objets/provision_crue.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Item.2P30CKBRVIPiTf3Z"}},"system":{"description":"","descriptionmj":"","encombrement":0.1,"quantite":1,"qualite":0,"cout":0.01,"milieu":"","environnement":[{"milieu":"Villages","rarete":"Commune","frequence":54},{"milieu":"Villes","rarete":"Commune","frequence":54}],"sust":1,"exotisme":0,"cuisinier":"","boisson":false,"desaltere":0,"alcoolise":false,"force":0},"ownership":{"default":0,"wYnBx3HmLfGzsj7P":3},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.6.15","coreVersion":"10.291","createdTime":1668808206023,"modifiedTime":1676074487966,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
||||||
{"_id":"PkDJ36j7mS3Kfetp","name":"Bouteille de grès (1 litre)","type":"conteneur","img":"systems/foundryvtt-reve-de-dragon/icons/objets/bouteille_gres.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.equipement.PkDJ36j7mS3Kfetp"}},"system":{"description":"","descriptionmj":"","encombrement":0.3,"quantite":1,"qualite":0,"cout":0.4,"contenu":[],"capacite":0.5,"equipe":false},"ownership":{"default":0,"rYShh2P1DNavdoBD":3},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.3.13","coreVersion":"10.291","createdTime":1668808206024,"modifiedTime":1671050477125,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
{"_id":"PH2J4zR0hwXSg0vc","name":"Charbon de bois 1 kg","type":"objet","img":"systems/foundryvtt-reve-de-dragon/icons/objets/charbon.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.equipement.PH2J4zR0hwXSg0vc"}},"system":{"description":"","descriptionmj":"","encombrement":0.04,"quantite":1,"qualite":0,"cout":0.06,"milieu":"","environnement":[{"milieu":"Villages","rarete":"Frequente","frequence":18},{"milieu":"Villes","rarete":"Frequente","frequence":18}],"equipe":false,"resistance":0},"ownership":{"default":0,"rYShh2P1DNavdoBD":3},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.6.15","coreVersion":"10.291","createdTime":1668808206023,"modifiedTime":1676074487966,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
||||||
{"_id":"PrnJrG50u1UPdlJN","name":"Liqueur de Bagdol","type":"potion","img":"systems/foundryvtt-reve-de-dragon/icons/objets/liqueur_de_bagdol.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.equipement.PrnJrG50u1UPdlJN"}},"system":{"description":"<p>Fluide. Liquide noir et odorant.</p>","descriptionmj":"","encombrement":0.1,"quantite":1,"qualite":0,"cout":0.5,"rarete":"","categorie":"Alchimie","herbe":"","herbebrins":0,"herbebonus":0,"reposalchimique":false,"pr":0,"prpermanent":false,"prdate":0,"soinherbe":"","soinherbebonus":0},"ownership":{"default":0,"rYShh2P1DNavdoBD":3},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.3.13","coreVersion":"10.291","createdTime":1668808206024,"modifiedTime":1671050477125,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
{"_id":"PSc92VlQCdNnbPlg","name":"Lance courte","type":"arme","img":"systems/foundryvtt-reve-de-dragon/icons/armes_armures/lance.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.equipement.PSc92VlQCdNnbPlg"}},"system":{"description":"","descriptionmj":"","equipe":false,"encombrement":2,"quantite":1,"qualite":0,"cout":3,"milieu":"","environnement":[{"milieu":"Villages","rarete":"Frequente","frequence":18},{"milieu":"Villes","rarete":"Rare","frequence":6}],"resistance":5,"categorie_parade":"lances","dommages":"2","penetration":0,"force":"8","competence":"Lance","lancer":"","tir":"","portee_courte":0,"portee_moyenne":0,"portee_extreme":0,"magique":false,"ecaille_efficacite":null,"resistance_magique":null,"rapide":true,"deuxmains":false,"unemain":true,"initpremierround":"lance"},"ownership":{"default":0,"Q4cUvqxCxMoTJXDL":3},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.6.15","coreVersion":"10.291","createdTime":1668808206024,"modifiedTime":1676074487966,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
||||||
{"_id":"PuuPn6WGfU8uBAyb","name":"Robe de soie","type":"objet","img":"systems/foundryvtt-reve-de-dragon/icons/objets/robe_soie.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.equipement.PuuPn6WGfU8uBAyb"}},"system":{"description":"","descriptionmj":"","encombrement":0,"quantite":1,"qualite":0,"cout":10,"equipe":false,"resistance":0},"ownership":{"default":0,"jOzRscDxoXZWpGS6":3},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.3.13","coreVersion":"10.291","createdTime":1668808206024,"modifiedTime":1671050477126,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
{"_id":"PaJoTirnA6h4F3pH","name":"Hameçon","type":"objet","img":"systems/foundryvtt-reve-de-dragon/icons/objets/hame%C3%A7on.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.equipement.PaJoTirnA6h4F3pH"}},"system":{"description":"","descriptionmj":"","encombrement":0.01,"quantite":1,"qualite":0,"cout":0.1,"milieu":"","environnement":[{"milieu":"Villages","rarete":"Frequente","frequence":18},{"milieu":"Villes","rarete":"Rare","frequence":6}],"equipe":false,"resistance":0},"ownership":{"default":0,"rYShh2P1DNavdoBD":3},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.6.15","coreVersion":"10.291","createdTime":1668808206024,"modifiedTime":1676074487966,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
||||||
{"_id":"Qh4Tp7lZ6wLnX4w0","name":"Bâton","type":"arme","img":"systems/foundryvtt-reve-de-dragon/icons/armes_armures/baton.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.equipement.Qh4Tp7lZ6wLnX4w0"}},"system":{"description":"","descriptionmj":"","equipe":false,"encombrement":2,"quantite":1,"qualite":0,"cout":0.5,"resistance":8,"categorie_parade":"","dommages":"1","penetration":0,"force":"9","competence":"Masse à 2 mains","lancer":"","tir":"","portee_courte":0,"portee_moyenne":0,"portee_extreme":0,"magique":false,"ecaille_efficacite":null,"resistance_magique":null,"rapide":false,"deuxmains":true,"unemain":false,"initpremierround":"baton"},"ownership":{"default":0,"Q4cUvqxCxMoTJXDL":3},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.3.13","coreVersion":"10.291","createdTime":1668808206024,"modifiedTime":1671050477126,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
{"_id":"PkDJ36j7mS3Kfetp","name":"Bouteille de grès (1 litre)","type":"conteneur","img":"systems/foundryvtt-reve-de-dragon/icons/objets/bouteille_gres.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.equipement.PkDJ36j7mS3Kfetp"}},"system":{"description":"","descriptionmj":"","encombrement":0.3,"quantite":1,"qualite":0,"cout":0.4,"milieu":"","environnement":[{"milieu":"Villages","rarete":"Rare","frequence":6},{"milieu":"Villes","rarete":"Frequente","frequence":18}],"contenu":[],"capacite":0.5,"equipe":false},"ownership":{"default":0,"rYShh2P1DNavdoBD":3},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.6.15","coreVersion":"10.291","createdTime":1668808206024,"modifiedTime":1676074487967,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
||||||
{"_id":"RKr1ZhTvC6poiNa1","name":"Gros Clou","type":"objet","img":"systems/foundryvtt-reve-de-dragon/icons/objets/gros_clou.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.equipement.RKr1ZhTvC6poiNa1"}},"system":{"description":"","descriptionmj":"","encombrement":0.1,"quantite":1,"qualite":0,"cout":0.05,"equipe":false,"resistance":0},"ownership":{"default":0,"rYShh2P1DNavdoBD":3},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.3.13","coreVersion":"10.291","createdTime":1668808206024,"modifiedTime":1671050477126,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
{"_id":"PrnJrG50u1UPdlJN","name":"Liqueur de Bagdol","type":"potion","img":"systems/foundryvtt-reve-de-dragon/icons/objets/liqueur_de_bagdol.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.equipement.PrnJrG50u1UPdlJN"}},"system":{"description":"<p>Fluide. Liquide noir et odorant.</p>","descriptionmj":"","encombrement":0.1,"quantite":1,"qualite":0,"cout":0.5,"milieu":"","environnement":[{"milieu":"Villages","rarete":"Rarissime","frequence":2},{"milieu":"Villes","rarete":"Rare","frequence":6}],"temporel":{"debut":{"indexDate":-1,"indexMinute":0},"fin":{"indexDate":-1,"indexMinute":0}},"rarete":"","categorie":"Remede","herbe":"","herbebrins":0,"herbebonus":0,"reposalchimique":false,"pr":0,"prpermanent":false,"prdate":0,"soinherbe":"","soinherbebonus":0},"ownership":{"default":0,"rYShh2P1DNavdoBD":3},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.6.15","coreVersion":"10.291","createdTime":1668808206024,"modifiedTime":1676074487967,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
||||||
{"_id":"RNxCQWMDy06uQ8uj","name":"Ecuelle de fer","type":"objet","img":"systems/foundryvtt-reve-de-dragon/icons/objets/ecuelle_fer.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.equipement.RNxCQWMDy06uQ8uj"}},"system":{"description":"","descriptionmj":"","encombrement":0.1,"quantite":1,"qualite":0,"cout":0.15,"equipe":false,"resistance":0},"ownership":{"default":0,"rYShh2P1DNavdoBD":3},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.3.13","coreVersion":"10.291","createdTime":1668808206024,"modifiedTime":1671050477126,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
{"_id":"PuuPn6WGfU8uBAyb","name":"Robe de soie","type":"objet","img":"systems/foundryvtt-reve-de-dragon/icons/objets/robe_soie.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.equipement.PuuPn6WGfU8uBAyb"}},"system":{"description":"","descriptionmj":"","encombrement":0,"quantite":1,"qualite":0,"cout":10,"milieu":"","environnement":[{"milieu":"Villages","rarete":"Rarissime","frequence":2},{"milieu":"Villes","rarete":"Rare","frequence":6}],"equipe":false,"resistance":0},"ownership":{"default":0,"jOzRscDxoXZWpGS6":3},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.6.15","coreVersion":"10.291","createdTime":1668808206024,"modifiedTime":1676074487967,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
||||||
{"_id":"RSni2r8jLccvkc9i","name":"Cristal alchimique","type":"objet","img":"systems/foundryvtt-reve-de-dragon/icons/objets/cristal_alchimique.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.equipement.RSni2r8jLccvkc9i"}},"system":{"description":"","descriptionmj":"","encombrement":0.09,"quantite":1,"qualite":0,"cout":4,"equipe":false,"resistance":0},"ownership":{"default":0,"rYShh2P1DNavdoBD":3},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.3.13","coreVersion":"10.291","createdTime":1668808206024,"modifiedTime":1671050477126,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
{"_id":"Qh4Tp7lZ6wLnX4w0","name":"Bâton","type":"arme","img":"systems/foundryvtt-reve-de-dragon/icons/armes_armures/baton.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.equipement.Qh4Tp7lZ6wLnX4w0"}},"system":{"description":"","descriptionmj":"","equipe":false,"encombrement":2,"quantite":1,"qualite":0,"cout":0.5,"milieu":"","environnement":[{"milieu":"Villages","rarete":"Commune","frequence":54},{"milieu":"Villes","rarete":"Frequente","frequence":18}],"resistance":8,"categorie_parade":"","dommages":"1","penetration":0,"force":"9","competence":"Masse à 2 mains","lancer":"","tir":"","portee_courte":0,"portee_moyenne":0,"portee_extreme":0,"magique":false,"ecaille_efficacite":null,"resistance_magique":null,"rapide":false,"deuxmains":true,"unemain":false,"initpremierround":"baton"},"ownership":{"default":0,"Q4cUvqxCxMoTJXDL":3},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.6.15","coreVersion":"10.291","createdTime":1668808206024,"modifiedTime":1676074487967,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
||||||
{"_id":"RWYaq8tnpgrkh5ED","name":"Flacon de grès (40 cl)","type":"conteneur","img":"systems/foundryvtt-reve-de-dragon/icons/objets/flacon_gres1.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.equipement.RWYaq8tnpgrkh5ED"}},"system":{"description":"","descriptionmj":"","encombrement":0.2,"quantite":1,"qualite":0,"cout":0.15,"contenu":[],"capacite":0.2,"equipe":false},"ownership":{"default":0,"rYShh2P1DNavdoBD":3},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.3.13","coreVersion":"10.291","createdTime":1668808206025,"modifiedTime":1671050477126,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
{"_id":"RKr1ZhTvC6poiNa1","name":"Gros Clou","type":"objet","img":"systems/foundryvtt-reve-de-dragon/icons/objets/gros_clou.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.equipement.RKr1ZhTvC6poiNa1"}},"system":{"description":"","descriptionmj":"","encombrement":0.1,"quantite":1,"qualite":0,"cout":0.05,"milieu":"","environnement":[{"milieu":"Villages","rarete":"Rare","frequence":6},{"milieu":"Villes","rarete":"Frequente","frequence":18}],"equipe":false,"resistance":0},"ownership":{"default":0,"rYShh2P1DNavdoBD":3},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.6.15","coreVersion":"10.291","createdTime":1668808206024,"modifiedTime":1676074487967,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
||||||
{"_id":"Reqo8GC9p7GI9k9N","name":"Chope de grès (20 cl)","type":"conteneur","img":"systems/foundryvtt-reve-de-dragon/icons/objets/chope_gres.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.equipement.Reqo8GC9p7GI9k9N"}},"system":{"description":"","descriptionmj":"","encombrement":0.1,"quantite":1,"qualite":0,"cout":0.1,"contenu":[],"capacite":0.1,"equipe":false},"ownership":{"default":0,"rYShh2P1DNavdoBD":3},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.3.13","coreVersion":"10.291","createdTime":1668808206025,"modifiedTime":1671050477126,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
{"_id":"RNxCQWMDy06uQ8uj","name":"Ecuelle de fer","type":"objet","img":"systems/foundryvtt-reve-de-dragon/icons/objets/ecuelle_fer.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.equipement.RNxCQWMDy06uQ8uj"}},"system":{"description":"","descriptionmj":"","encombrement":0.1,"quantite":1,"qualite":0,"cout":0.15,"milieu":"","environnement":[{"milieu":"Villages","rarete":"Rare","frequence":6},{"milieu":"Villes","rarete":"Frequente","frequence":18}],"equipe":false,"resistance":0},"ownership":{"default":0,"rYShh2P1DNavdoBD":3},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.6.15","coreVersion":"10.291","createdTime":1668808206024,"modifiedTime":1676074487967,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
||||||
{"_id":"Ri5QtS98FTfgHk2N","name":"Javeline","type":"arme","img":"systems/foundryvtt-reve-de-dragon/icons/armes_armures/javeline.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.equipement.Ri5QtS98FTfgHk2N"}},"system":{"description":"","descriptionmj":"","equipe":false,"encombrement":1,"quantite":1,"qualite":0,"cout":1,"resistance":5,"categorie_parade":"lances","dommages":"1","penetration":0,"force":"7","competence":"Lance","lancer":"Javelot","tir":"","portee_courte":6,"portee_moyenne":12,"portee_extreme":20,"magique":false,"ecaille_efficacite":0,"resistance_magique":0,"rapide":true,"deuxmains":false,"unemain":true,"initpremierround":"hast"},"ownership":{"default":0,"rYShh2P1DNavdoBD":3},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.3.13","coreVersion":"10.291","createdTime":1668808206025,"modifiedTime":1671050477126,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
{"_id":"RSni2r8jLccvkc9i","name":"Cristal alchimique","type":"objet","img":"systems/foundryvtt-reve-de-dragon/icons/objets/cristal_alchimique.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.equipement.RSni2r8jLccvkc9i"}},"system":{"description":"","descriptionmj":"","encombrement":0.09,"quantite":1,"qualite":0,"cout":4,"milieu":"","environnement":[{"milieu":"Villages","rarete":"Rarissime","frequence":2},{"milieu":"Villes","rarete":"Rare","frequence":6}],"equipe":false,"resistance":0},"ownership":{"default":0,"rYShh2P1DNavdoBD":3},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.6.15","coreVersion":"10.291","createdTime":1668808206024,"modifiedTime":1676074487967,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
||||||
{"_id":"Ro5cOOtLLB0lMlzl","name":"Javelot","type":"arme","img":"systems/foundryvtt-reve-de-dragon/icons/objets/javelot.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.equipement.Ro5cOOtLLB0lMlzl"}},"system":{"description":"<p>Chaque point de force au dessus de 10 augmente les portées de 1m.</p>\n<p>Chaque point de force en dessous de 9 diminue les portées de 1m.</p>","descriptionmj":"","equipe":false,"encombrement":1,"quantite":1,"qualite":0,"cout":1,"resistance":0,"categorie_parade":"lances","dommages":"1","penetration":0,"force":"0","competence":"Lance","lancer":"Javelot","tir":"","portee_courte":6,"portee_moyenne":12,"portee_extreme":20,"magique":false,"ecaille_efficacite":0,"resistance_magique":0,"rapide":true,"deuxmains":false,"unemain":true,"initpremierround":"hast"},"ownership":{"default":0,"rYShh2P1DNavdoBD":3},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.3.13","coreVersion":"10.291","createdTime":1668808206025,"modifiedTime":1671050477126,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
{"_id":"RWYaq8tnpgrkh5ED","name":"Flacon de grès (40 cl)","type":"conteneur","img":"systems/foundryvtt-reve-de-dragon/icons/objets/flacon_gres1.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.equipement.RWYaq8tnpgrkh5ED"}},"system":{"description":"","descriptionmj":"","encombrement":0.2,"quantite":1,"qualite":0,"cout":0.15,"milieu":"","environnement":[{"milieu":"Villages","rarete":"Frequente","frequence":18},{"milieu":"Villes","rarete":"Frequente","frequence":18}],"contenu":[],"capacite":0.2,"equipe":false},"ownership":{"default":0,"rYShh2P1DNavdoBD":3},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.6.15","coreVersion":"10.291","createdTime":1668808206025,"modifiedTime":1676074487967,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
||||||
{"_id":"RyW0z9Y5UeZSYjFZ","name":"Savon 500g","type":"objet","img":"systems/foundryvtt-reve-de-dragon/icons/objets/savon.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.equipement.RyW0z9Y5UeZSYjFZ"}},"system":{"description":"","descriptionmj":"","encombrement":0.2,"quantite":1,"qualite":0,"cout":0.2,"equipe":false,"resistance":0},"ownership":{"default":0,"rYShh2P1DNavdoBD":3},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.3.13","coreVersion":"10.291","createdTime":1668808206025,"modifiedTime":1671050477126,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
{"name":"Herbe à pipe","type":"herbe","img":"systems/foundryvtt-reve-de-dragon/icons/botanique/Endorlotte.webp","system":{"description":"","descriptionmj":"","encombrement":0,"quantite":1,"qualite":0.01,"cout":0.01,"milieu":"","environnement":[],"sust":0,"exotisme":0,"niveau":0,"base":0,"categorie":"Autre"},"effects":[],"flags":{"core":{"sourceId":"Item.wxmHkhTTzPNepN4d"}},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.6.15","coreVersion":"10.291","createdTime":1676073283027,"modifiedTime":1676074487920,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"},"folder":null,"sort":0,"ownership":{"default":0,"Hp9ImM4o9YRTSdfu":3},"_id":"RcfER27g7gX4YGFd"}
|
||||||
{"_id":"S3bLtbXe6BzEFCjt","name":"Plaques de Fer","type":"armure","img":"systems/foundryvtt-reve-de-dragon/icons/armes_armures/armure_plaques.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.equipement.S3bLtbXe6BzEFCjt"}},"system":{"description":"<p>L'armure classique du chevalier. Armure complète de plaques (heaume, cuirasse, épaulières, cubitières, ventrière, cuissards, jambières).</p>\n<p> </p>","descriptionmj":"","equipe":false,"encombrement":8,"quantite":1,"qualite":0,"cout":100,"protection":6,"deterioration":0,"malus":-6},"ownership":{"default":0,"rYShh2P1DNavdoBD":3},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.3.13","coreVersion":"10.291","createdTime":1668808206026,"modifiedTime":1671050477127,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
{"_id":"Reqo8GC9p7GI9k9N","name":"Chope de grès (20 cl)","type":"conteneur","img":"systems/foundryvtt-reve-de-dragon/icons/objets/chope_gres.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.equipement.Reqo8GC9p7GI9k9N"}},"system":{"description":"","descriptionmj":"","encombrement":0.1,"quantite":1,"qualite":0,"cout":0.1,"milieu":"","environnement":[{"milieu":"Villages","rarete":"Commune","frequence":54},{"milieu":"Villes","rarete":"Commune","frequence":54}],"contenu":[],"capacite":0.1,"equipe":false},"ownership":{"default":0,"rYShh2P1DNavdoBD":3},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.6.15","coreVersion":"10.291","createdTime":1668808206025,"modifiedTime":1676074487967,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
||||||
{"_id":"SZyBQbInuUGASlGb","name":"Tambourin","type":"objet","img":"systems/foundryvtt-reve-de-dragon/icons/objets/tambourin.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.equipement.SZyBQbInuUGASlGb"}},"system":{"description":"","descriptionmj":"","encombrement":0.1,"quantite":1,"qualite":0,"cout":0.5,"equipe":false,"resistance":0},"ownership":{"default":0,"rYShh2P1DNavdoBD":3},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.3.13","coreVersion":"10.291","createdTime":1668808206026,"modifiedTime":1671050477127,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
{"_id":"Ri5QtS98FTfgHk2N","name":"Javeline","type":"arme","img":"systems/foundryvtt-reve-de-dragon/icons/armes_armures/javeline.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.equipement.Ri5QtS98FTfgHk2N"}},"system":{"description":"","descriptionmj":"","equipe":false,"encombrement":1,"quantite":1,"qualite":0,"cout":1,"milieu":"","environnement":[{"milieu":"Villages","rarete":"Frequente","frequence":18},{"milieu":"Villes","rarete":"Rare","frequence":6}],"resistance":5,"categorie_parade":"lances","dommages":"1","penetration":0,"force":"7","competence":"Lance","lancer":"Javelot","tir":"","portee_courte":6,"portee_moyenne":12,"portee_extreme":20,"magique":false,"ecaille_efficacite":0,"resistance_magique":0,"rapide":true,"deuxmains":false,"unemain":true,"initpremierround":"hast"},"ownership":{"default":0,"rYShh2P1DNavdoBD":3},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.6.15","coreVersion":"10.291","createdTime":1668808206025,"modifiedTime":1676074487967,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
||||||
{"_id":"Sm28dG9isppoQzPQ","name":"Bas de lin","type":"objet","img":"systems/foundryvtt-reve-de-dragon/icons/objets/bas_lin.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.equipement.Sm28dG9isppoQzPQ"}},"system":{"description":"","descriptionmj":"","encombrement":0,"quantite":1,"qualite":0,"cout":0.3,"equipe":false,"resistance":0},"ownership":{"default":0,"jOzRscDxoXZWpGS6":3},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.3.13","coreVersion":"10.291","createdTime":1668808206026,"modifiedTime":1671050477127,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
{"_id":"Ro5cOOtLLB0lMlzl","name":"Javelot","type":"arme","img":"systems/foundryvtt-reve-de-dragon/icons/objets/javelot.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.equipement.Ro5cOOtLLB0lMlzl"}},"system":{"description":"<p>Chaque point de force au dessus de 10 augmente les portées de 1m.</p>\n<p>Chaque point de force en dessous de 9 diminue les portées de 1m.</p>","descriptionmj":"","equipe":false,"encombrement":1,"quantite":1,"qualite":0,"cout":1,"milieu":"","environnement":[{"milieu":"Villages","rarete":"Frequente","frequence":18},{"milieu":"Villes","rarete":"Rare","frequence":6}],"resistance":0,"categorie_parade":"lances","dommages":"1","penetration":0,"force":"0","competence":"Lance","lancer":"Javelot","tir":"","portee_courte":6,"portee_moyenne":12,"portee_extreme":20,"magique":false,"ecaille_efficacite":0,"resistance_magique":0,"rapide":true,"deuxmains":false,"unemain":true,"initpremierround":"hast"},"ownership":{"default":0,"rYShh2P1DNavdoBD":3},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.6.15","coreVersion":"10.291","createdTime":1668808206025,"modifiedTime":1676074487967,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
||||||
{"_id":"SrV0r5hnGdKeSIHR","name":"Cuillère de bois","type":"objet","img":"systems/foundryvtt-reve-de-dragon/icons/objets/cuillere_bois.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.equipement.SrV0r5hnGdKeSIHR"}},"system":{"description":"","descriptionmj":"","encombrement":0.03,"quantite":1,"qualite":0,"cout":0.03,"equipe":false,"resistance":0},"ownership":{"default":0,"rYShh2P1DNavdoBD":3},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.3.13","coreVersion":"10.291","createdTime":1668808206026,"modifiedTime":1671050477127,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
{"_id":"RyW0z9Y5UeZSYjFZ","name":"Savon 500g","type":"objet","img":"systems/foundryvtt-reve-de-dragon/icons/objets/savon.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.equipement.RyW0z9Y5UeZSYjFZ"}},"system":{"description":"","descriptionmj":"","encombrement":0.2,"quantite":1,"qualite":0,"cout":0.2,"milieu":"","environnement":[{"milieu":"Villages","rarete":"Frequente","frequence":18},{"milieu":"Villes","rarete":"Frequente","frequence":18}],"equipe":false,"resistance":0},"ownership":{"default":0,"rYShh2P1DNavdoBD":3},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.6.15","coreVersion":"10.291","createdTime":1668808206025,"modifiedTime":1676074487967,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
||||||
{"_id":"SsnGNjTekvB50uWa","name":"Chapeau de cuir souple","type":"objet","img":"systems/foundryvtt-reve-de-dragon/icons/objets/chapeau_cuir.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.equipement.SsnGNjTekvB50uWa"}},"system":{"description":"","descriptionmj":"","encombrement":0.08,"quantite":1,"qualite":0,"cout":0.5,"equipe":false,"resistance":0},"ownership":{"default":0,"rYShh2P1DNavdoBD":3},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.3.13","coreVersion":"10.291","createdTime":1668808206026,"modifiedTime":1671050477127,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
{"_id":"S3bLtbXe6BzEFCjt","name":"Plaques de Fer","type":"armure","img":"systems/foundryvtt-reve-de-dragon/icons/armes_armures/armure_plaques.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.equipement.S3bLtbXe6BzEFCjt"}},"system":{"description":"<p>L'armure classique du chevalier. Armure complète de plaques (heaume, cuirasse, épaulières, cubitières, ventrière, cuissards, jambières).</p>\n<p> </p>","descriptionmj":"","equipe":false,"encombrement":8,"quantite":1,"qualite":0,"cout":100,"milieu":"","environnement":[{"milieu":"Villages","rarete":"Rarissime","frequence":2},{"milieu":"Villes","rarete":"Rare","frequence":6}],"protection":"6","deterioration":0,"malus":-6},"ownership":{"default":0,"rYShh2P1DNavdoBD":3},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.6.15","coreVersion":"10.291","createdTime":1668808206026,"modifiedTime":1676074487967,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
||||||
{"_id":"TKsUXJq9w7ezcFGQ","name":"Hache de bataille","type":"arme","img":"systems/foundryvtt-reve-de-dragon/icons/armes_armures/hache_bataille.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.equipement.TKsUXJq9w7ezcFGQ"}},"system":{"description":"","descriptionmj":"","equipe":false,"encombrement":2,"quantite":1,"qualite":0,"cout":15,"resistance":8,"categorie_parade":"haches","dommages":"3/4","penetration":0,"force":"12/11","competence":"Hache à 1 main","lancer":"","tir":"","portee_courte":0,"portee_moyenne":0,"portee_extreme":0,"magique":false,"ecaille_efficacite":0,"resistance_magique":0,"rapide":false,"deuxmains":true,"unemain":true,"initpremierround":"hachebataille"},"ownership":{"default":0,"Q4cUvqxCxMoTJXDL":3},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.3.13","coreVersion":"10.291","createdTime":1668808206026,"modifiedTime":1671050477127,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
{"name":"Carreau d'arbalète","type":"munition","img":"systems/foundryvtt-reve-de-dragon/icons/objets/fleche.webp","system":{"description":"","descriptionmj":"","encombrement":0.1,"quantite":1,"qualite":0,"cout":0.1,"milieu":"","environnement":[{"milieu":"Villages","rarete":"Frequente","frequence":18},{"milieu":"Villes","rarete":"Rare","frequence":6}]},"effects":[],"flags":{"core":{"sourceId":"Item.SHsq6zY7THX0pF0r"}},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.6.15","coreVersion":"10.291","createdTime":1676067642744,"modifiedTime":1676074487967,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"},"_id":"SHsq6zY7THX0pF0r","folder":null,"sort":0,"ownership":{"default":0,"Hp9ImM4o9YRTSdfu":3}}
|
||||||
{"_id":"TY6Ft8a6WfxD6pD9","name":"Bobineau de fil","type":"objet","img":"systems/foundryvtt-reve-de-dragon/icons/objets/bobineau.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.equipement.TY6Ft8a6WfxD6pD9"}},"system":{"description":"","descriptionmj":"","encombrement":0.01,"quantite":1,"qualite":0,"cout":0.1,"equipe":false,"resistance":0},"ownership":{"default":0,"rYShh2P1DNavdoBD":3},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.3.13","coreVersion":"10.291","createdTime":1668808206026,"modifiedTime":1671050477127,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
{"_id":"SZyBQbInuUGASlGb","name":"Tambourin","type":"objet","img":"systems/foundryvtt-reve-de-dragon/icons/objets/tambourin.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.equipement.SZyBQbInuUGASlGb"}},"system":{"description":"","descriptionmj":"","encombrement":0.1,"quantite":1,"qualite":0,"cout":0.5,"milieu":"","environnement":[{"milieu":"Villages","rarete":"Frequente","frequence":18},{"milieu":"Villes","rarete":"Frequente","frequence":18}],"equipe":false,"resistance":0},"ownership":{"default":0,"rYShh2P1DNavdoBD":3},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.6.15","coreVersion":"10.291","createdTime":1668808206026,"modifiedTime":1676074487967,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
||||||
{"_id":"UDmq6CY3NsttcHe4","name":"Peigne en corne","type":"objet","img":"systems/foundryvtt-reve-de-dragon/icons/objets/peigne.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.equipement.UDmq6CY3NsttcHe4"}},"system":{"description":"","descriptionmj":"","encombrement":0.04,"quantite":1,"qualite":0,"cout":0.4,"equipe":false,"resistance":0},"ownership":{"default":0,"rYShh2P1DNavdoBD":3},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.3.13","coreVersion":"10.291","createdTime":1668808206026,"modifiedTime":1671050477128,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
{"_id":"Sm28dG9isppoQzPQ","name":"Bas de lin","type":"objet","img":"systems/foundryvtt-reve-de-dragon/icons/objets/bas_lin.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.equipement.Sm28dG9isppoQzPQ"}},"system":{"description":"","descriptionmj":"","encombrement":0,"quantite":1,"qualite":0,"cout":0.3,"milieu":"","environnement":[{"milieu":"Villages","rarete":"Commune","frequence":54},{"milieu":"Villes","rarete":"Commune","frequence":54}],"equipe":false,"resistance":0},"ownership":{"default":0,"jOzRscDxoXZWpGS6":3},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.6.15","coreVersion":"10.291","createdTime":1668808206026,"modifiedTime":1676074487967,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
||||||
{"_id":"UE79xKWXTwYAn70K","name":"Arme d’hast","type":"arme","img":"systems/foundryvtt-reve-de-dragon/icons/armes_armures/hast.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.equipement.UE79xKWXTwYAn70K"}},"system":{"description":"","descriptionmj":"","equipe":false,"encombrement":4,"quantite":1,"qualite":0,"cout":10,"resistance":8,"categorie_parade":"hast","dommages":"4","penetration":0,"force":"12","competence":"Armes d'hast","lancer":"","tir":"","portee_courte":0,"portee_moyenne":0,"portee_extreme":0,"magique":false,"ecaille_efficacite":null,"resistance_magique":null,"rapide":false,"deuxmains":true,"unemain":false,"initpremierround":"hast"},"ownership":{"default":0,"Q4cUvqxCxMoTJXDL":3},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.3.13","coreVersion":"10.291","createdTime":1668808206026,"modifiedTime":1671050477128,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
{"_id":"SrV0r5hnGdKeSIHR","name":"Cuillère de bois","type":"objet","img":"systems/foundryvtt-reve-de-dragon/icons/objets/cuillere_bois.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.equipement.SrV0r5hnGdKeSIHR"}},"system":{"description":"","descriptionmj":"","encombrement":0.03,"quantite":1,"qualite":0,"cout":0.03,"milieu":"","environnement":[{"milieu":"Villages","rarete":"Commune","frequence":54},{"milieu":"Villes","rarete":"Commune","frequence":54}],"equipe":false,"resistance":0},"ownership":{"default":0,"rYShh2P1DNavdoBD":3},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.6.15","coreVersion":"10.291","createdTime":1668808206026,"modifiedTime":1676074487967,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
||||||
{"_id":"UICiMF3wBeLsqm8L","name":"Pipe en bois","type":"objet","img":"systems/foundryvtt-reve-de-dragon/icons/objets/pipe.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.equipement.UICiMF3wBeLsqm8L"}},"system":{"description":"","descriptionmj":"","encombrement":0.04,"quantite":1,"qualite":0,"cout":0.1,"equipe":false,"resistance":0},"ownership":{"default":0,"rYShh2P1DNavdoBD":3},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.3.13","coreVersion":"10.291","createdTime":1668808206026,"modifiedTime":1671050477128,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
{"_id":"SsnGNjTekvB50uWa","name":"Chapeau de cuir souple","type":"objet","img":"systems/foundryvtt-reve-de-dragon/icons/objets/chapeau_cuir.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.equipement.SsnGNjTekvB50uWa"}},"system":{"description":"","descriptionmj":"","encombrement":0.08,"quantite":1,"qualite":0,"cout":0.5,"milieu":"","environnement":[{"milieu":"Villages","rarete":"Frequente","frequence":18},{"milieu":"Villes","rarete":"Frequente","frequence":18}],"equipe":false,"resistance":0},"ownership":{"default":0,"rYShh2P1DNavdoBD":3},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.6.15","coreVersion":"10.291","createdTime":1668808206026,"modifiedTime":1676074487967,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
||||||
{"_id":"UMfXFhVhdoVQVEKy","name":"Fronde","type":"arme","img":"systems/foundryvtt-reve-de-dragon/icons/objets/fronde.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.equipement.UMfXFhVhdoVQVEKy"}},"system":{"description":"<p>Peut tirer tous les rounds.</p>","descriptionmj":"","equipe":false,"encombrement":0.08,"quantite":1,"qualite":0,"cout":0.6,"resistance":0,"categorie_parade":"","dommages":"1","penetration":0,"force":"0","competence":"","lancer":"","tir":"Fronde","portee_courte":8,"portee_moyenne":15,"portee_extreme":25,"magique":false,"ecaille_efficacite":0,"resistance_magique":0,"rapide":false,"deuxmains":false,"unemain":false,"initpremierround":""},"ownership":{"default":0,"rYShh2P1DNavdoBD":3},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.3.13","coreVersion":"10.291","createdTime":1668808206026,"modifiedTime":1671050477128,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
{"_id":"TKsUXJq9w7ezcFGQ","name":"Hache de bataille","type":"arme","img":"systems/foundryvtt-reve-de-dragon/icons/armes_armures/hache_bataille.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.equipement.TKsUXJq9w7ezcFGQ"}},"system":{"description":"","descriptionmj":"","equipe":false,"encombrement":2,"quantite":1,"qualite":0,"cout":15,"milieu":"","environnement":[{"milieu":"Villages","rarete":"Frequente","frequence":18},{"milieu":"Villes","rarete":"Rare","frequence":6}],"resistance":8,"categorie_parade":"haches","dommages":"3/4","penetration":0,"force":"12/11","competence":"Hache à 1 main","lancer":"","tir":"","portee_courte":0,"portee_moyenne":0,"portee_extreme":0,"magique":false,"ecaille_efficacite":0,"resistance_magique":0,"rapide":false,"deuxmains":true,"unemain":true,"initpremierround":"hachebataille"},"ownership":{"default":0,"Q4cUvqxCxMoTJXDL":3},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.6.15","coreVersion":"10.291","createdTime":1668808206026,"modifiedTime":1676074487968,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
||||||
{"_id":"UYXXggulNwnodaOt","name":"Chope de fer (20 cl)","type":"conteneur","img":"systems/foundryvtt-reve-de-dragon/icons/objets/chope_fer.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.equipement.UYXXggulNwnodaOt"}},"system":{"description":"","descriptionmj":"","encombrement":0.08,"quantite":1,"qualite":0,"cout":0.15,"contenu":[],"capacite":0.1,"equipe":false},"ownership":{"default":0,"rYShh2P1DNavdoBD":3},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.3.13","coreVersion":"10.291","createdTime":1668808206027,"modifiedTime":1671050477128,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
{"_id":"TY6Ft8a6WfxD6pD9","name":"Bobineau de fil","type":"objet","img":"systems/foundryvtt-reve-de-dragon/icons/objets/bobineau.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.equipement.TY6Ft8a6WfxD6pD9"}},"system":{"description":"","descriptionmj":"","encombrement":0.01,"quantite":1,"qualite":0,"cout":0.1,"milieu":"","environnement":[{"milieu":"Villages","rarete":"Commune","frequence":54},{"milieu":"Villes","rarete":"Commune","frequence":54}],"equipe":false,"resistance":0},"ownership":{"default":0,"rYShh2P1DNavdoBD":3},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.6.15","coreVersion":"10.291","createdTime":1668808206026,"modifiedTime":1676074487968,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
||||||
{"_id":"UczsYTAoP9koA2SL","name":"Bourse, sachet de tissu","type":"conteneur","img":"systems/foundryvtt-reve-de-dragon/icons/objets/bourse_sachet.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.equipement.UczsYTAoP9koA2SL"}},"system":{"description":"","descriptionmj":"","encombrement":0.01,"quantite":1,"qualite":0,"cout":0.05,"contenu":[],"capacite":0.3,"equipe":false},"ownership":{"default":0,"rYShh2P1DNavdoBD":3},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.3.13","coreVersion":"10.291","createdTime":1668808206107,"modifiedTime":1671050477128,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
{"_id":"UDmq6CY3NsttcHe4","name":"Peigne en corne","type":"objet","img":"systems/foundryvtt-reve-de-dragon/icons/objets/peigne.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.equipement.UDmq6CY3NsttcHe4"}},"system":{"description":"","descriptionmj":"","encombrement":0.04,"quantite":1,"qualite":0,"cout":0.4,"milieu":"","environnement":[{"milieu":"Villages","rarete":"Frequente","frequence":18},{"milieu":"Villes","rarete":"Frequente","frequence":18}],"equipe":false,"resistance":0},"ownership":{"default":0,"rYShh2P1DNavdoBD":3},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.6.15","coreVersion":"10.291","createdTime":1668808206026,"modifiedTime":1676074487968,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
||||||
{"_id":"UsyV9n0byCeYirNC","name":"Esparlongue","type":"arme","img":"systems/foundryvtt-reve-de-dragon/icons/armes_armures/esparlongue.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.equipement.UsyV9n0byCeYirNC"}},"system":{"description":"<p>C’est une épée semblable à la <em>rapière</em>, longue et ne frappant uniquement d’estoc. Elle doit son nom à ce qu’elle était particulièrement en vogue, au Second Âge, dans la cité d’Esparlongue. En ce début du Troisième Âge, toutefois, on lui substitue le plus souvent la <strong>demi-dragonne</strong>, épée très voisine, ne frappant pareillement que d’estoc, mais plus résistante (résistance 10) et moins coûteuse (15 sols) ; son bonus aux dommages (+2) est identique.</p>","descriptionmj":"","equipe":false,"encombrement":1.5,"quantite":1,"qualite":0,"cout":20,"resistance":9,"categorie_parade":"epees-longues","dommages":"2","penetration":0,"force":"10","competence":"Epée à 1 main","lancer":"","tir":"","portee_courte":0,"portee_moyenne":0,"portee_extreme":0,"magique":false,"ecaille_efficacite":0,"resistance_magique":0,"rapide":true,"deuxmains":false,"unemain":true,"initpremierround":"esparlongue"},"ownership":{"default":0,"Q4cUvqxCxMoTJXDL":3},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.3.13","coreVersion":"10.291","createdTime":1668808206107,"modifiedTime":1671050477129,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
{"_id":"UE79xKWXTwYAn70K","name":"Arme d’hast","type":"arme","img":"systems/foundryvtt-reve-de-dragon/icons/armes_armures/hast.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.equipement.UE79xKWXTwYAn70K"}},"system":{"description":"","descriptionmj":"","equipe":false,"encombrement":4,"quantite":1,"qualite":0,"cout":10,"milieu":"","environnement":[{"milieu":"Villages","rarete":"Rare","frequence":6},{"milieu":"Villes","rarete":"Frequente","frequence":18}],"resistance":8,"categorie_parade":"hast","dommages":"4","penetration":0,"force":"12","competence":"Armes d'hast","lancer":"","tir":"","portee_courte":0,"portee_moyenne":0,"portee_extreme":0,"magique":false,"ecaille_efficacite":null,"resistance_magique":null,"rapide":false,"deuxmains":true,"unemain":false,"initpremierround":"hast"},"ownership":{"default":0,"Q4cUvqxCxMoTJXDL":3},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.6.15","coreVersion":"10.291","createdTime":1668808206026,"modifiedTime":1676074487968,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
||||||
{"_id":"Uxk2tvEqtrmYScjK","name":"Pot à braise","type":"objet","img":"systems/foundryvtt-reve-de-dragon/icons/objets/pot_a_braise.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.equipement.Uxk2tvEqtrmYScjK"}},"system":{"description":"","descriptionmj":"","encombrement":0.1,"quantite":1,"qualite":0,"cout":0.2,"equipe":false,"resistance":0},"ownership":{"default":0,"rYShh2P1DNavdoBD":3},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.3.13","coreVersion":"10.291","createdTime":1668808206107,"modifiedTime":1671050477129,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
{"_id":"UICiMF3wBeLsqm8L","name":"Pipe en bois","type":"objet","img":"systems/foundryvtt-reve-de-dragon/icons/objets/pipe.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.equipement.UICiMF3wBeLsqm8L"}},"system":{"description":"","descriptionmj":"","encombrement":0.04,"quantite":1,"qualite":0,"cout":0.1,"milieu":"","environnement":[{"milieu":"Villages","rarete":"Frequente","frequence":18},{"milieu":"Villes","rarete":"Frequente","frequence":18}],"equipe":false,"resistance":0},"ownership":{"default":0,"rYShh2P1DNavdoBD":3},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.6.15","coreVersion":"10.291","createdTime":1668808206026,"modifiedTime":1676074487968,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
||||||
{"_id":"VsjRwh9Z9PMpFKdI","name":"Craie 1 bâton","type":"objet","img":"systems/foundryvtt-reve-de-dragon/icons/objets/craie.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.equipement.VsjRwh9Z9PMpFKdI"}},"system":{"description":"","descriptionmj":"","encombrement":0.01,"quantite":1,"qualite":0,"cout":0.01,"equipe":false,"resistance":0},"ownership":{"default":0,"rYShh2P1DNavdoBD":3},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.3.13","coreVersion":"10.291","createdTime":1668808206107,"modifiedTime":1671050477129,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
{"_id":"UMfXFhVhdoVQVEKy","name":"Fronde","type":"arme","img":"systems/foundryvtt-reve-de-dragon/icons/objets/fronde.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.equipement.UMfXFhVhdoVQVEKy"}},"system":{"description":"<p>Peut tirer tous les rounds.</p>","descriptionmj":"","equipe":false,"encombrement":0.08,"quantite":1,"qualite":0,"cout":0.6,"milieu":"","environnement":[{"milieu":"Villages","rarete":"Frequente","frequence":18},{"milieu":"Villes","rarete":"Frequente","frequence":18}],"resistance":0,"categorie_parade":"","dommages":"1","penetration":0,"force":"0","competence":"","lancer":"","tir":"Fronde","portee_courte":8,"portee_moyenne":15,"portee_extreme":25,"magique":false,"ecaille_efficacite":0,"resistance_magique":0,"rapide":false,"deuxmains":false,"unemain":false,"initpremierround":"hast"},"ownership":{"default":0,"rYShh2P1DNavdoBD":3},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.6.15","coreVersion":"10.291","createdTime":1668808206026,"modifiedTime":1676074487968,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
||||||
{"_id":"WC1jMDKcxEJQWGOR","name":"Burette de fer blanc (40 cl)","type":"conteneur","img":"systems/foundryvtt-reve-de-dragon/icons/objets/burette.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.equipement.WC1jMDKcxEJQWGOR"}},"system":{"description":"","descriptionmj":"","encombrement":0.2,"quantite":1,"qualite":0,"cout":0.5,"contenu":[],"capacite":0.2,"equipe":false},"ownership":{"default":0,"rYShh2P1DNavdoBD":3},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.3.13","coreVersion":"10.291","createdTime":1668808206107,"modifiedTime":1671050477129,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
{"_id":"UYXXggulNwnodaOt","name":"Chope de fer (20 cl)","type":"conteneur","img":"systems/foundryvtt-reve-de-dragon/icons/objets/chope_fer.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.equipement.UYXXggulNwnodaOt"}},"system":{"description":"","descriptionmj":"","encombrement":0.08,"quantite":1,"qualite":0,"cout":0.15,"milieu":"","environnement":[{"milieu":"Villages","rarete":"Rare","frequence":6},{"milieu":"Villes","rarete":"Frequente","frequence":18}],"contenu":[],"capacite":0.1,"equipe":false},"ownership":{"default":0,"rYShh2P1DNavdoBD":3},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.6.15","coreVersion":"10.291","createdTime":1668808206027,"modifiedTime":1676074487968,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
||||||
{"_id":"WTHZdtgf6lHUSKDx","name":"Fouet","type":"arme","img":"systems/foundryvtt-reve-de-dragon/icons/objets/fouet.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.equipement.WTHZdtgf6lHUSKDx"}},"system":{"description":"<p>Provoque des dégâts \"non mortels\".</p>\n<p>Les armures sont majorées de 2.</p>\n<p>Si la protection atteint une valeur de 5 ou plus, le fouet ne peut causer de dégât.</p>","descriptionmj":"","equipe":false,"encombrement":0.5,"quantite":1,"qualite":0,"cout":1,"resistance":0,"categorie_parade":"","dommages":"1","penetration":-1,"force":"0","competence":"","lancer":"Fouet","tir":"","portee_courte":2,"portee_moyenne":2,"portee_extreme":3,"magique":false,"ecaille_efficacite":0,"resistance_magique":0,"rapide":false,"deuxmains":false,"unemain":false,"initpremierround":"hast"},"ownership":{"default":0,"rYShh2P1DNavdoBD":3},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.3.13","coreVersion":"10.291","createdTime":1668808206107,"modifiedTime":1671050477129,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
{"_id":"UczsYTAoP9koA2SL","name":"Bourse, sachet de tissu","type":"conteneur","img":"systems/foundryvtt-reve-de-dragon/icons/objets/bourse_sachet.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.equipement.UczsYTAoP9koA2SL"}},"system":{"description":"","descriptionmj":"","encombrement":0.01,"quantite":1,"qualite":0,"cout":0.05,"milieu":"","environnement":[{"milieu":"Villages","rarete":"Commune","frequence":54},{"milieu":"Villes","rarete":"Commune","frequence":54}],"contenu":[],"capacite":0.3,"equipe":false},"ownership":{"default":0,"rYShh2P1DNavdoBD":3},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.6.15","coreVersion":"10.291","createdTime":1668808206107,"modifiedTime":1676074487968,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
||||||
{"_id":"WTWXZeoK5HpCrGFy","name":"Hachette","type":"arme","img":"systems/foundryvtt-reve-de-dragon/icons/objets/hachette.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.equipement.WTWXZeoK5HpCrGFy"}},"system":{"description":"","descriptionmj":"","equipe":false,"encombrement":1,"quantite":1,"qualite":0,"cout":4,"resistance":6,"categorie_parade":"haches","dommages":"2","penetration":0,"force":"8","competence":"Hache à 1 main","lancer":"","tir":"","portee_courte":0,"portee_moyenne":0,"portee_extreme":0,"magique":false,"ecaille_efficacite":null,"resistance_magique":null,"rapide":false,"deuxmains":false,"unemain":false,"initpremierround":"dague"},"ownership":{"default":0,"Q4cUvqxCxMoTJXDL":3},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.3.13","coreVersion":"10.291","createdTime":1668808206107,"modifiedTime":1671050477129,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
{"_id":"UsyV9n0byCeYirNC","name":"Esparlongue","type":"arme","img":"systems/foundryvtt-reve-de-dragon/icons/armes_armures/esparlongue.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.equipement.UsyV9n0byCeYirNC"}},"system":{"description":"<p>C’est une épée semblable à la <em>rapière</em>, longue et ne frappant uniquement d’estoc. Elle doit son nom à ce qu’elle était particulièrement en vogue, au Second Âge, dans la cité d’Esparlongue. En ce début du Troisième Âge, toutefois, on lui substitue le plus souvent la <strong>demi-dragonne</strong>, épée très voisine, ne frappant pareillement que d’estoc, mais plus résistante (résistance 10) et moins coûteuse (15 sols) ; son bonus aux dommages (+2) est identique.</p>","descriptionmj":"","equipe":false,"encombrement":1.5,"quantite":1,"qualite":0,"cout":20,"milieu":"","environnement":[{"milieu":"Villages","rarete":"Rare","frequence":6},{"milieu":"Villes","rarete":"Frequente","frequence":18}],"resistance":9,"categorie_parade":"epees-longues","dommages":"2","penetration":0,"force":"10","competence":"Epée à 1 main","lancer":"","tir":"","portee_courte":0,"portee_moyenne":0,"portee_extreme":0,"magique":false,"ecaille_efficacite":0,"resistance_magique":0,"rapide":true,"deuxmains":false,"unemain":true,"initpremierround":"esparlongue"},"ownership":{"default":0,"Q4cUvqxCxMoTJXDL":3},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.6.15","coreVersion":"10.291","createdTime":1668808206107,"modifiedTime":1676074487968,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
||||||
{"_id":"XTZVrcMNofAviP63","name":"Cire d'abeille 500g","type":"objet","img":"systems/foundryvtt-reve-de-dragon/icons/objets/cire.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.equipement.XTZVrcMNofAviP63"}},"system":{"description":"","descriptionmj":"","encombrement":0.2,"quantite":1,"qualite":0,"cout":0.15,"equipe":false,"resistance":0},"ownership":{"default":0,"rYShh2P1DNavdoBD":3},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.3.13","coreVersion":"10.291","createdTime":1668808206108,"modifiedTime":1671050477129,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
{"_id":"Uxk2tvEqtrmYScjK","name":"Pot à braise","type":"objet","img":"systems/foundryvtt-reve-de-dragon/icons/objets/pot_a_braise.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.equipement.Uxk2tvEqtrmYScjK"}},"system":{"description":"","descriptionmj":"","encombrement":0.1,"quantite":1,"qualite":0,"cout":0.2,"milieu":"","environnement":[{"milieu":"Villages","rarete":"Frequente","frequence":18},{"milieu":"Villes","rarete":"Rare","frequence":6}],"equipe":false,"resistance":0},"ownership":{"default":0,"rYShh2P1DNavdoBD":3},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.6.15","coreVersion":"10.291","createdTime":1668808206107,"modifiedTime":1676074487968,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
||||||
{"_id":"XlKp5BvZX8A03fUg","name":"Sac à dos de cuir","type":"conteneur","img":"systems/foundryvtt-reve-de-dragon/icons/objets/sac_a_dos.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.equipement.XlKp5BvZX8A03fUg"}},"system":{"description":"","descriptionmj":"","encombrement":0.4,"quantite":1,"qualite":0,"cout":1,"contenu":[],"capacite":25,"equipe":false},"ownership":{"default":0,"rYShh2P1DNavdoBD":3},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.3.13","coreVersion":"10.291","createdTime":1668808206108,"modifiedTime":1671050477129,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
{"_id":"VsjRwh9Z9PMpFKdI","name":"Craie 1 bâton","type":"objet","img":"systems/foundryvtt-reve-de-dragon/icons/objets/craie.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.equipement.VsjRwh9Z9PMpFKdI"}},"system":{"description":"","descriptionmj":"","encombrement":0.01,"quantite":1,"qualite":0,"cout":0.01,"milieu":"","environnement":[{"milieu":"Villages","rarete":"Frequente","frequence":18},{"milieu":"Villes","rarete":"Frequente","frequence":18}],"equipe":false,"resistance":0},"ownership":{"default":0,"rYShh2P1DNavdoBD":3},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.6.15","coreVersion":"10.291","createdTime":1668808206107,"modifiedTime":1676074487968,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
||||||
{"_id":"XoslLyWIJYY2RGzz","name":"Fiole de verre (20 cl)","type":"conteneur","img":"systems/foundryvtt-reve-de-dragon/icons/objets/fiole_verre.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.equipement.XoslLyWIJYY2RGzz"}},"system":{"description":"","descriptionmj":"","encombrement":0.06,"quantite":1,"qualite":0,"cout":0.2,"contenu":[],"capacite":0.1,"equipe":false},"ownership":{"default":0,"rYShh2P1DNavdoBD":3},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.3.13","coreVersion":"10.291","createdTime":1668808206108,"modifiedTime":1671050477129,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
{"_id":"WC1jMDKcxEJQWGOR","name":"Burette de fer blanc (40 cl)","type":"conteneur","img":"systems/foundryvtt-reve-de-dragon/icons/objets/burette.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.equipement.WC1jMDKcxEJQWGOR"}},"system":{"description":"","descriptionmj":"","encombrement":0.2,"quantite":1,"qualite":0,"cout":0.5,"milieu":"","environnement":[{"milieu":"Villages","rarete":"Rare","frequence":6},{"milieu":"Villes","rarete":"Frequente","frequence":18}],"contenu":[],"capacite":0.2,"equipe":false},"ownership":{"default":0,"rYShh2P1DNavdoBD":3},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.6.15","coreVersion":"10.291","createdTime":1668808206107,"modifiedTime":1676074487968,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
||||||
{"_id":"XwuLVGasPJXzvC09","name":"Encre 20 cl","type":"objet","img":"systems/foundryvtt-reve-de-dragon/icons/objets/encre_20cl.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.equipement.XwuLVGasPJXzvC09"}},"system":{"description":"","descriptionmj":"","encombrement":0.1,"quantite":1,"qualite":0,"cout":0.1,"equipe":false,"resistance":0},"ownership":{"default":0,"rYShh2P1DNavdoBD":3},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.3.13","coreVersion":"10.291","createdTime":1668808206108,"modifiedTime":1671050477129,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
{"_id":"WTHZdtgf6lHUSKDx","name":"Fouet","type":"arme","img":"systems/foundryvtt-reve-de-dragon/icons/objets/fouet.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.equipement.WTHZdtgf6lHUSKDx"}},"system":{"description":"<p>Provoque des dégâts \"non mortels\".</p>\n<p>Les armures sont majorées de 2.</p>\n<p>Si la protection atteint une valeur de 5 ou plus, le fouet ne peut causer de dégât.</p>","descriptionmj":"","equipe":false,"encombrement":0.5,"quantite":1,"qualite":0,"cout":1,"milieu":"","environnement":[{"milieu":"Villages","rarete":"Frequente","frequence":18},{"milieu":"Villes","rarete":"Rare","frequence":6}],"resistance":0,"categorie_parade":"","dommages":"1","penetration":-1,"force":"0","competence":"","lancer":"Fouet","tir":"","portee_courte":2,"portee_moyenne":2,"portee_extreme":3,"magique":false,"ecaille_efficacite":0,"resistance_magique":0,"rapide":false,"deuxmains":false,"unemain":false,"initpremierround":"hast"},"ownership":{"default":0,"rYShh2P1DNavdoBD":3},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.6.15","coreVersion":"10.291","createdTime":1668808206107,"modifiedTime":1676074487968,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
||||||
{"_id":"YHPrUuGGGTGZMNAg","name":"Bière","type":"nourritureboisson","img":"systems/foundryvtt-reve-de-dragon/icons/liquides/liquide_biere.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Item.u7lMLkVlFCXBj8Bc"}},"system":{"description":"<p>1 mesure (20cl) de bière.</p>","descriptionmj":"","encombrement":0.1,"quantite":1,"qualite":0,"cout":0.01,"sust":0,"exotisme":0,"cuisinier":"","boisson":true,"desaltere":0.8,"alcoolise":true,"force":-1,"equipe":false},"ownership":{"default":0,"rYShh2P1DNavdoBD":3},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.3.13","coreVersion":"10.291","createdTime":1668808206108,"modifiedTime":1671050477129,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
{"_id":"WTWXZeoK5HpCrGFy","name":"Hachette","type":"arme","img":"systems/foundryvtt-reve-de-dragon/icons/objets/hachette.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.equipement.WTWXZeoK5HpCrGFy"}},"system":{"description":"","descriptionmj":"","equipe":false,"encombrement":1,"quantite":1,"qualite":0,"cout":4,"milieu":"","environnement":[{"milieu":"Villages","rarete":"Commune","frequence":54},{"milieu":"Villes","rarete":"Frequente","frequence":18}],"resistance":6,"categorie_parade":"haches","dommages":"2","penetration":0,"force":"8","competence":"Hache à 1 main","lancer":"","tir":"","portee_courte":0,"portee_moyenne":0,"portee_extreme":0,"magique":false,"ecaille_efficacite":null,"resistance_magique":null,"rapide":true,"deuxmains":false,"unemain":true,"initpremierround":"dague"},"ownership":{"default":0,"Q4cUvqxCxMoTJXDL":3},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.6.15","coreVersion":"10.291","createdTime":1668808206107,"modifiedTime":1676074487968,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
||||||
{"_id":"YNbbSGLnexiXNyXU","name":"Manteau de laine","type":"objet","img":"systems/foundryvtt-reve-de-dragon/icons/objets/manteau_laine.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.equipement.YNbbSGLnexiXNyXU"}},"system":{"description":"","descriptionmj":"","encombrement":0.8,"quantite":1,"qualite":0,"cout":0.6,"equipe":false,"resistance":0},"ownership":{"default":0,"rYShh2P1DNavdoBD":3},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.3.13","coreVersion":"10.291","createdTime":1668808206108,"modifiedTime":1671050477129,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
{"name":"Ciseau à bois","type":"objet","img":"systems/foundryvtt-reve-de-dragon/icons/objets/gouge.webp","effects":[],"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.equipement.cVZbnh5cYxBx6P5b"}},"system":{"description":"","descriptionmj":"","encombrement":0.2,"quantite":1,"qualite":0,"cout":0.3,"milieu":"","environnement":[{"milieu":"Villages","rarete":"Frequente","frequence":18},{"milieu":"Villes","rarete":"Frequente","frequence":18}],"equipe":false,"resistance":0},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.6.15","coreVersion":"10.291","createdTime":1668808206109,"modifiedTime":1676074352882,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"},"_id":"XEMiC8DxAZFjBj6g","folder":null,"sort":0,"ownership":{"default":0,"Hp9ImM4o9YRTSdfu":3}}
|
||||||
{"_id":"Yh7VGX3BikmIjVQH","name":"Gourdin","type":"arme","img":"systems/foundryvtt-reve-de-dragon/icons/armes_armures/gourdin.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.equipement.Yh7VGX3BikmIjVQH"}},"system":{"description":"","descriptionmj":"","equipe":false,"encombrement":1,"quantite":1,"qualite":0,"cout":0,"resistance":8,"categorie_parade":"","dommages":"1","penetration":0,"force":"7","competence":"Masse à 1 main","lancer":"","tir":"","portee_courte":0,"portee_moyenne":0,"portee_extreme":0,"magique":false,"ecaille_efficacite":0,"resistance_magique":0,"rapide":true,"deuxmains":false,"unemain":true,"initpremierround":"gourdin"},"ownership":{"default":0,"Q4cUvqxCxMoTJXDL":3},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.3.13","coreVersion":"10.291","createdTime":1668808206108,"modifiedTime":1671050477129,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
{"_id":"XTZVrcMNofAviP63","name":"Cire d'abeille 500g","type":"objet","img":"systems/foundryvtt-reve-de-dragon/icons/objets/cire.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.equipement.XTZVrcMNofAviP63"}},"system":{"description":"","descriptionmj":"","encombrement":0.2,"quantite":1,"qualite":0,"cout":0.15,"milieu":"","environnement":[{"milieu":"Villages","rarete":"Frequente","frequence":18},{"milieu":"Villes","rarete":"Frequente","frequence":18}],"equipe":false,"resistance":0},"ownership":{"default":0,"rYShh2P1DNavdoBD":3},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.6.15","coreVersion":"10.291","createdTime":1668808206108,"modifiedTime":1676074487968,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
||||||
{"_id":"Yyn39VDRnO6oA3Uq","name":"Echecs draconics en bois","type":"objet","img":"systems/foundryvtt-reve-de-dragon/icons/objets/echecs.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.equipement.Yyn39VDRnO6oA3Uq"}},"system":{"description":"","descriptionmj":"","encombrement":0.5,"quantite":1,"qualite":0,"cout":2,"equipe":false,"resistance":0},"ownership":{"default":0,"rYShh2P1DNavdoBD":3},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.3.13","coreVersion":"10.291","createdTime":1668808206108,"modifiedTime":1671050477129,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
{"_id":"XlKp5BvZX8A03fUg","name":"Sac à dos de cuir","type":"conteneur","img":"systems/foundryvtt-reve-de-dragon/icons/objets/sac_a_dos.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.equipement.XlKp5BvZX8A03fUg"}},"system":{"description":"","descriptionmj":"","encombrement":0.4,"quantite":1,"qualite":0,"cout":1,"milieu":"","environnement":[{"milieu":"Villages","rarete":"Frequente","frequence":18},{"milieu":"Villes","rarete":"Frequente","frequence":18}],"contenu":[],"capacite":25,"equipe":false},"ownership":{"default":0,"rYShh2P1DNavdoBD":3},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.6.15","coreVersion":"10.291","createdTime":1668808206108,"modifiedTime":1676074487968,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
||||||
{"_id":"Z0ij7qpoYeWMVocP","name":"Ceinturon de cuir","type":"conteneur","img":"systems/foundryvtt-reve-de-dragon/icons/objets/ceinturon.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.equipement.Z0ij7qpoYeWMVocP"}},"system":{"description":"","descriptionmj":"","encombrement":0.1,"quantite":1,"qualite":0,"cout":0.5,"contenu":[],"capacite":6,"equipe":false},"ownership":{"default":0,"rYShh2P1DNavdoBD":3},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.3.13","coreVersion":"10.291","createdTime":1668808206108,"modifiedTime":1671050477129,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
{"_id":"XoslLyWIJYY2RGzz","name":"Fiole de verre (20 cl)","type":"conteneur","img":"systems/foundryvtt-reve-de-dragon/icons/objets/fiole_verre.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.equipement.XoslLyWIJYY2RGzz"}},"system":{"description":"","descriptionmj":"","encombrement":0.06,"quantite":1,"qualite":0,"cout":0.2,"milieu":"","environnement":[{"milieu":"Villages","rarete":"Rare","frequence":6},{"milieu":"Villes","rarete":"Frequente","frequence":18}],"contenu":[],"capacite":0.1,"equipe":false},"ownership":{"default":0,"rYShh2P1DNavdoBD":3},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.6.15","coreVersion":"10.291","createdTime":1668808206108,"modifiedTime":1676074487968,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
||||||
{"_id":"ZLda3pfrbiKucSea","name":"Cornebouffe","type":"nourritureboisson","img":"systems/foundryvtt-reve-de-dragon/icons/objets/cornebouffe.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Item.NuwD0kiJyoqevKib"}},"system":{"description":"<p><span class=\"fontstyle0\">La cornebouffe est une préparation à base de gibier, élaborée dans les forêts proches de la mer par des chasseurs spécialisés : les </span><span class=\"fontstyle2\">cornebouffiers</span><span class=\"fontstyle0\">. Acheminée vers les ports, principaux consommateurs, elle constitue l’aliment de base de la plupart des marins.</span></p>\n<p><span class=\"fontstyle0\">Certains voyageurs qui l’ont expérimentée et en ont accepté l’exotisme, en transportent parfois en cas de disette. Pratiquement, il s’agit de gibier référentiellement cornu (bramart, cornicochon, mercureuil), que l’on cuit et recuit dans de l’eau de mer avec des herbes, jusqu’à obtenir une pâte, sorte de mastic, que l’on façonne en forme de galettes, puis que l’on laisse longuement sécher au soleil. On aboutit au final à des sortes de petites briques plates, de la taille d’une demi-main, de couleur vert-de-gris, et à peu près aussi dures que les briques véritables. La meilleure façon de consommer ces galettes est de les réhydrater avec de l’eau chaude, c’est la façon dite </span><span class=\"fontstyle2\">soupée </span><span class=\"fontstyle0\">: on obtient une sorte de soupe ou de bouillie gluante. L’autre façon, dite sèche, consiste à les grignoter telles quelles comme des biscuits, mais il est impératif de boire beaucoup par dessus, sous peine d’une soif torride accompagnée de maux d’estomac.</span></p>\n<p><span class=\"fontstyle0\">Légère, peu encombrante, et surtout nourrissante, une galette de cornebouffe suffit pour un repas. Quant au goût, eh bien... ceux qui disent que, tant qu’à y aller, autant manger directement des crottes de chien à la croque-au-sel, ne sont probablement que des enfants gâtés et difficiles.</span></p>\n<p><span class=\"fontstyle0\">Aliment de longue conservation (pratiquement inaltérable), la cornebouffe possède un des meilleurs rapports sustentation/encombrement.</span></p>","descriptionmj":"","encombrement":0.1,"quantite":1,"qualite":0,"cout":0.02,"sust":3,"exotisme":-2,"cuisinier":"","boisson":false,"desaltere":0,"alcoolise":false,"force":0,"equipe":false,"resistance":0},"ownership":{"default":0,"Q4cUvqxCxMoTJXDL":3},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.3.13","coreVersion":"10.291","createdTime":1668808206108,"modifiedTime":1671050477130,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
{"_id":"XwuLVGasPJXzvC09","name":"Encre 20 cl","type":"objet","img":"systems/foundryvtt-reve-de-dragon/icons/objets/encre_20cl.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.equipement.XwuLVGasPJXzvC09"}},"system":{"description":"","descriptionmj":"","encombrement":0.1,"quantite":1,"qualite":0,"cout":0.1,"milieu":"","environnement":[{"milieu":"Villages","rarete":"Rare","frequence":6},{"milieu":"Villes","rarete":"Frequente","frequence":18}],"equipe":false,"resistance":0},"ownership":{"default":0,"rYShh2P1DNavdoBD":3},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.6.15","coreVersion":"10.291","createdTime":1668808206108,"modifiedTime":1676074487968,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
||||||
{"_id":"ZaAKf4n8mtevbMM0","name":"Hydromel","type":"nourritureboisson","img":"systems/foundryvtt-reve-de-dragon/icons/liquides/liquide_biere.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.equipement.ZaAKf4n8mtevbMM0"}},"system":{"description":"","descriptionmj":"","encombrement":0.1,"quantite":1,"qualite":0,"cout":0.04,"sust":0,"exotisme":0,"cuisinier":"","boisson":true,"desaltere":0.6,"alcoolise":true,"force":-4},"ownership":{"default":0,"wYnBx3HmLfGzsj7P":3},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.3.13","coreVersion":"10.291","createdTime":1668808206109,"modifiedTime":1671050477130,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
{"_id":"YHPrUuGGGTGZMNAg","name":"Bière","type":"nourritureboisson","img":"systems/foundryvtt-reve-de-dragon/icons/liquides/liquide_biere.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Item.u7lMLkVlFCXBj8Bc"}},"system":{"description":"<p>1 mesure (20cl) de bière.</p>","descriptionmj":"","encombrement":0.1,"quantite":1,"qualite":0,"cout":0.01,"milieu":"","environnement":[{"milieu":"Villages","rarete":"Commune","frequence":54},{"milieu":"Villes","rarete":"Commune","frequence":54}],"sust":0,"exotisme":0,"cuisinier":"","boisson":true,"desaltere":0.8,"alcoolise":true,"force":-1,"equipe":false},"ownership":{"default":0,"rYShh2P1DNavdoBD":3},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.6.15","coreVersion":"10.291","createdTime":1668808206108,"modifiedTime":1676074487968,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
||||||
{"_id":"a3Wj2WNKFrzqRGVG","name":"Chemise de soie","type":"objet","img":"systems/foundryvtt-reve-de-dragon/icons/objets/chemise_soie.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.equipement.a3Wj2WNKFrzqRGVG"}},"system":{"description":"","descriptionmj":"","encombrement":0,"quantite":1,"qualite":0,"cout":6,"equipe":false,"resistance":0},"ownership":{"default":0,"rYShh2P1DNavdoBD":3},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.3.13","coreVersion":"10.291","createdTime":1668808206109,"modifiedTime":1671050477130,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
{"_id":"YNbbSGLnexiXNyXU","name":"Manteau de laine","type":"objet","img":"systems/foundryvtt-reve-de-dragon/icons/objets/manteau_laine.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.equipement.YNbbSGLnexiXNyXU"}},"system":{"description":"","descriptionmj":"","encombrement":0.8,"quantite":1,"qualite":0,"cout":0.6,"milieu":"","environnement":[{"milieu":"Villages","rarete":"Frequente","frequence":18},{"milieu":"Villes","rarete":"Frequente","frequence":18}],"equipe":false,"resistance":0},"ownership":{"default":0,"rYShh2P1DNavdoBD":3},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.6.15","coreVersion":"10.291","createdTime":1668808206108,"modifiedTime":1676074487969,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
||||||
{"_id":"b0f08L5CDeFIMluC","name":"Cuir Souple","type":"armure","img":"systems/foundryvtt-reve-de-dragon/icons/armes_armures/cuir_souple.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.equipement.b0f08L5CDeFIMluC"}},"system":{"description":"<p>Même épaisseur que nos modernes blousons de cuir. Pourpoint ou cotte de cuir souple + culottes de cuir souple + bottes de cuir souple.</p>\n<p> </p>","descriptionmj":"","equipe":false,"encombrement":0,"quantite":1,"qualite":0,"cout":6,"protection":2,"deterioration":0,"malus":0},"ownership":{"default":0,"rYShh2P1DNavdoBD":3},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.3.13","coreVersion":"10.291","createdTime":1668808206109,"modifiedTime":1671050477130,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
{"_id":"Yh7VGX3BikmIjVQH","name":"Gourdin","type":"arme","img":"systems/foundryvtt-reve-de-dragon/icons/armes_armures/gourdin.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.equipement.Yh7VGX3BikmIjVQH"}},"system":{"description":"","descriptionmj":"","equipe":false,"encombrement":1,"quantite":1,"qualite":0,"cout":0,"milieu":"","environnement":[{"milieu":"Villages","rarete":"Commune","frequence":54},{"milieu":"Villes","rarete":"Frequente","frequence":18}],"resistance":8,"categorie_parade":"","dommages":"1","penetration":0,"force":"7","competence":"Masse à 1 main","lancer":"","tir":"","portee_courte":0,"portee_moyenne":0,"portee_extreme":0,"magique":false,"ecaille_efficacite":0,"resistance_magique":0,"rapide":true,"deuxmains":false,"unemain":true,"initpremierround":"gourdin"},"ownership":{"default":0,"Q4cUvqxCxMoTJXDL":3},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.6.15","coreVersion":"10.291","createdTime":1668808206108,"modifiedTime":1676074487969,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
||||||
{"_id":"bA0JDA7awoWhu0vO","name":"Teinture d'Erozonne","type":"potion","img":"systems/foundryvtt-reve-de-dragon/icons/objets/teinture_erozonne.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.equipement.bA0JDA7awoWhu0vO"}},"system":{"description":"<p>Fluide. </p>\n<p>Liquide rosâtre.</p>","descriptionmj":"","encombrement":0.1,"quantite":1,"qualite":0,"cout":2,"rarete":"","categorie":"Alchimie","herbe":"","herbebrins":0,"herbebonus":0,"reposalchimique":false,"pr":0,"prpermanent":false,"prdate":0,"soinherbe":"","soinherbebonus":0},"ownership":{"default":0,"rYShh2P1DNavdoBD":3},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.3.13","coreVersion":"10.291","createdTime":1668808206109,"modifiedTime":1671050477130,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
{"_id":"Yyn39VDRnO6oA3Uq","name":"Echecs draconics en bois","type":"objet","img":"systems/foundryvtt-reve-de-dragon/icons/objets/echecs.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.equipement.Yyn39VDRnO6oA3Uq"}},"system":{"description":"","descriptionmj":"","encombrement":0.5,"quantite":1,"qualite":0,"cout":2,"milieu":"","environnement":[{"milieu":"Villages","rarete":"Rare","frequence":6},{"milieu":"Villes","rarete":"Frequente","frequence":18}],"equipe":false,"resistance":0},"ownership":{"default":0,"rYShh2P1DNavdoBD":3},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.6.15","coreVersion":"10.291","createdTime":1668808206108,"modifiedTime":1676074487969,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
||||||
{"_id":"beQ9d4QQwZDQl5NA","name":"Flûte à bec","type":"objet","img":"systems/foundryvtt-reve-de-dragon/icons/objets/flute_bec.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.equipement.beQ9d4QQwZDQl5NA"}},"system":{"description":"","descriptionmj":"","encombrement":0.09,"quantite":1,"qualite":0,"cout":1,"equipe":false,"resistance":0},"ownership":{"default":0,"rYShh2P1DNavdoBD":3},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.3.13","coreVersion":"10.291","createdTime":1668808206109,"modifiedTime":1671050477130,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
{"_id":"Z0ij7qpoYeWMVocP","name":"Ceinturon de cuir","type":"conteneur","img":"systems/foundryvtt-reve-de-dragon/icons/objets/ceinturon.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.equipement.Z0ij7qpoYeWMVocP"}},"system":{"description":"","descriptionmj":"","encombrement":0.1,"quantite":1,"qualite":0,"cout":0.5,"milieu":"","environnement":[{"milieu":"Villages","rarete":"Frequente","frequence":18},{"milieu":"Villes","rarete":"Frequente","frequence":18}],"contenu":[],"capacite":6,"equipe":false},"ownership":{"default":0,"rYShh2P1DNavdoBD":3},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.6.15","coreVersion":"10.291","createdTime":1668808206108,"modifiedTime":1676074487969,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
||||||
{"_id":"bgkEBYUEFLvAaeVf","name":"Luth, viole","type":"objet","img":"systems/foundryvtt-reve-de-dragon/icons/objets/luth.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.equipement.bgkEBYUEFLvAaeVf"}},"system":{"description":"","descriptionmj":"","encombrement":1,"quantite":1,"qualite":0,"cout":7,"equipe":false,"resistance":0},"ownership":{"default":0,"rYShh2P1DNavdoBD":3},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.3.13","coreVersion":"10.291","createdTime":1668808206109,"modifiedTime":1671050477130,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
{"_id":"ZLda3pfrbiKucSea","name":"Cornebouffe","type":"nourritureboisson","img":"systems/foundryvtt-reve-de-dragon/icons/objets/cornebouffe.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Item.NuwD0kiJyoqevKib"}},"system":{"description":"<p><span class=\"fontstyle0\">La cornebouffe est une préparation à base de gibier, élaborée dans les forêts proches de la mer par des chasseurs spécialisés : les </span><span class=\"fontstyle2\">cornebouffiers</span><span class=\"fontstyle0\">. Acheminée vers les ports, principaux consommateurs, elle constitue l’aliment de base de la plupart des marins.</span></p>\n<p><span class=\"fontstyle0\">Certains voyageurs qui l’ont expérimentée et en ont accepté l’exotisme, en transportent parfois en cas de disette. Pratiquement, il s’agit de gibier référentiellement cornu (bramart, cornicochon, mercureuil), que l’on cuit et recuit dans de l’eau de mer avec des herbes, jusqu’à obtenir une pâte, sorte de mastic, que l’on façonne en forme de galettes, puis que l’on laisse longuement sécher au soleil. On aboutit au final à des sortes de petites briques plates, de la taille d’une demi-main, de couleur vert-de-gris, et à peu près aussi dures que les briques véritables. La meilleure façon de consommer ces galettes est de les réhydrater avec de l’eau chaude, c’est la façon dite </span><span class=\"fontstyle2\">soupée </span><span class=\"fontstyle0\">: on obtient une sorte de soupe ou de bouillie gluante. L’autre façon, dite sèche, consiste à les grignoter telles quelles comme des biscuits, mais il est impératif de boire beaucoup par dessus, sous peine d’une soif torride accompagnée de maux d’estomac.</span></p>\n<p><span class=\"fontstyle0\">Légère, peu encombrante, et surtout nourrissante, une galette de cornebouffe suffit pour un repas. Quant au goût, eh bien... ceux qui disent que, tant qu’à y aller, autant manger directement des crottes de chien à la croque-au-sel, ne sont probablement que des enfants gâtés et difficiles.</span></p>\n<p><span class=\"fontstyle0\">Aliment de longue conservation (pratiquement inaltérable), la cornebouffe possède un des meilleurs rapports sustentation/encombrement.</span></p>","descriptionmj":"","encombrement":0.1,"quantite":1,"qualite":0,"cout":0.02,"milieu":"","environnement":[{"milieu":"Villages","rarete":"Rare","frequence":6},{"milieu":"Villes","rarete":"Frequente","frequence":18}],"sust":3,"exotisme":-2,"cuisinier":"","boisson":false,"desaltere":0,"alcoolise":false,"force":0,"equipe":false,"resistance":0},"ownership":{"default":0,"Q4cUvqxCxMoTJXDL":3},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.6.15","coreVersion":"10.291","createdTime":1668808206108,"modifiedTime":1676074487969,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
||||||
{"_id":"cVZbnh5cYxBx6P5b","name":"Burin, gouge, ciseau","type":"objet","img":"systems/foundryvtt-reve-de-dragon/icons/objets/gouge.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.equipement.cVZbnh5cYxBx6P5b"}},"system":{"description":"","descriptionmj":"","encombrement":0.2,"quantite":1,"qualite":0,"cout":0.3,"equipe":false,"resistance":0},"ownership":{"default":0,"rYShh2P1DNavdoBD":3},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.3.13","coreVersion":"10.291","createdTime":1668808206109,"modifiedTime":1671050477130,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
{"_id":"ZaAKf4n8mtevbMM0","name":"Hydromel","type":"nourritureboisson","img":"systems/foundryvtt-reve-de-dragon/icons/liquides/liquide_biere.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.equipement.ZaAKf4n8mtevbMM0"}},"system":{"description":"","descriptionmj":"","encombrement":0.1,"quantite":1,"qualite":0,"cout":0.04,"milieu":"","environnement":[{"milieu":"Villages","rarete":"Frequente","frequence":18},{"milieu":"Villes","rarete":"Frequente","frequence":18}],"sust":0,"exotisme":0,"cuisinier":"","boisson":true,"desaltere":0.6,"alcoolise":true,"force":-4},"ownership":{"default":0,"wYnBx3HmLfGzsj7P":3},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.6.15","coreVersion":"10.291","createdTime":1668808206109,"modifiedTime":1676074487969,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
||||||
{"_id":"ckKnviu9SHvWgya0","name":"Bougie de cire (2 heures)","type":"objet","img":"systems/foundryvtt-reve-de-dragon/icons/objets/bougie.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.equipement.ckKnviu9SHvWgya0"}},"system":{"description":"","descriptionmj":"","encombrement":0.1,"quantite":1,"qualite":0,"cout":0.05,"equipe":false,"resistance":0},"ownership":{"default":0,"rYShh2P1DNavdoBD":3},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.3.13","coreVersion":"10.291","createdTime":1668808206109,"modifiedTime":1671050477130,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
{"_id":"a3Wj2WNKFrzqRGVG","name":"Chemise de soie","type":"objet","img":"systems/foundryvtt-reve-de-dragon/icons/objets/chemise_soie.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.equipement.a3Wj2WNKFrzqRGVG"}},"system":{"description":"","descriptionmj":"","encombrement":0,"quantite":1,"qualite":0,"cout":6,"milieu":"","environnement":[{"milieu":"Villages","rarete":"Rarissime","frequence":2},{"milieu":"Villes","rarete":"Rare","frequence":6}],"equipe":false,"resistance":0},"ownership":{"default":0,"rYShh2P1DNavdoBD":3},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.6.15","coreVersion":"10.291","createdTime":1668808206109,"modifiedTime":1676074487969,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
||||||
{"_id":"cobfvOmFpti5lJuK","name":"Chemise de lin","type":"objet","img":"systems/foundryvtt-reve-de-dragon/icons/objets/chemise_lin.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.equipement.cobfvOmFpti5lJuK"}},"system":{"description":"","descriptionmj":"","encombrement":0,"quantite":1,"qualite":0,"cout":0.3,"equipe":false,"resistance":0},"ownership":{"default":0,"rYShh2P1DNavdoBD":3},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.3.13","coreVersion":"10.291","createdTime":1668808206109,"modifiedTime":1671050477130,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
{"_id":"b0f08L5CDeFIMluC","name":"Cuir Souple","type":"armure","img":"systems/foundryvtt-reve-de-dragon/icons/armes_armures/cuir_souple.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.equipement.b0f08L5CDeFIMluC"}},"system":{"description":"<p>Même épaisseur que nos modernes blousons de cuir. Pourpoint ou cotte de cuir souple + culottes de cuir souple + bottes de cuir souple.</p>\n<p> </p>","descriptionmj":"","equipe":false,"encombrement":0,"quantite":1,"qualite":0,"cout":6,"milieu":"","environnement":[{"milieu":"Villages","rarete":"Frequente","frequence":18},{"milieu":"Villes","rarete":"Frequente","frequence":18}],"protection":2,"deterioration":0,"malus":0},"ownership":{"default":0,"rYShh2P1DNavdoBD":3},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.6.15","coreVersion":"10.291","createdTime":1668808206109,"modifiedTime":1676074487969,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
||||||
{"_id":"dBR6KXvfmjjIcwsc","name":"Pilon en marbre","type":"objet","img":"systems/foundryvtt-reve-de-dragon/icons/objets/pilon.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.equipement.dBR6KXvfmjjIcwsc"}},"system":{"description":"","descriptionmj":"","encombrement":0.1,"quantite":1,"qualite":0,"cout":0.2,"equipe":false,"resistance":0},"ownership":{"default":0,"rYShh2P1DNavdoBD":3},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.3.13","coreVersion":"10.291","createdTime":1668808206110,"modifiedTime":1671050477130,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
{"_id":"bA0JDA7awoWhu0vO","name":"Teinture d'Erozonne","type":"potion","img":"systems/foundryvtt-reve-de-dragon/icons/objets/teinture_erozonne.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.equipement.bA0JDA7awoWhu0vO"}},"system":{"description":"<p>Fluide. </p>\n<p>Liquide rosâtre.</p>","descriptionmj":"","encombrement":0.1,"quantite":1,"qualite":0,"cout":2,"milieu":"","environnement":[{"milieu":"Villages","rarete":"Rarissime","frequence":2},{"milieu":"Villes","rarete":"Rare","frequence":6}],"temporel":{"debut":{"indexDate":-1,"indexMinute":0},"fin":{"indexDate":-1,"indexMinute":0}},"rarete":"","categorie":"Remede","herbe":"","herbebrins":0,"herbebonus":0,"reposalchimique":false,"pr":0,"prpermanent":false,"prdate":0,"soinherbe":"","soinherbebonus":0},"ownership":{"default":0,"rYShh2P1DNavdoBD":3},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.6.15","coreVersion":"10.291","createdTime":1668808206109,"modifiedTime":1676074487969,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
||||||
{"_id":"dLiMJO6aUkh0EuIZ","name":"Épée dragonne","type":"arme","img":"systems/foundryvtt-reve-de-dragon/icons/armes_armures/epee_dragonne.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.equipement.dLiMJO6aUkh0EuIZ"}},"system":{"description":"<p>C’est une épée <em>longue</em>, plus robuste que l’esparlongue, pouvant également frapper de taille.</p>","descriptionmj":"","equipe":false,"encombrement":2,"quantite":1,"qualite":0,"cout":20,"resistance":12,"categorie_parade":"epees-longues","dommages":"3","penetration":0,"force":"11","competence":"Epée à 1 main","lancer":"","tir":"","portee_courte":0,"portee_moyenne":0,"portee_extreme":0,"magique":false,"ecaille_efficacite":null,"resistance_magique":null,"rapide":true,"deuxmains":false,"unemain":true,"initpremierround":"epeedragonne"},"ownership":{"default":0,"Q4cUvqxCxMoTJXDL":3},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.3.13","coreVersion":"10.291","createdTime":1668808206110,"modifiedTime":1671050477130,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
{"_id":"beQ9d4QQwZDQl5NA","name":"Flûte à bec","type":"objet","img":"systems/foundryvtt-reve-de-dragon/icons/objets/flute_bec.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.equipement.beQ9d4QQwZDQl5NA"}},"system":{"description":"","descriptionmj":"","encombrement":0.09,"quantite":1,"qualite":0,"cout":1,"milieu":"","environnement":[{"milieu":"Villages","rarete":"Commune","frequence":54},{"milieu":"Villes","rarete":"Frequente","frequence":18}],"equipe":false,"resistance":0},"ownership":{"default":0,"rYShh2P1DNavdoBD":3},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.6.15","coreVersion":"10.291","createdTime":1668808206109,"modifiedTime":1676074487969,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
||||||
{"_id":"eK28jEeQiJdd93L3","name":"Bouclier léger","type":"arme","img":"systems/foundryvtt-reve-de-dragon/icons/armes_armures/bouclier_petit.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.equipement.eK28jEeQiJdd93L3"}},"system":{"description":"","descriptionmj":"","equipe":false,"encombrement":1,"quantite":1,"qualite":0,"cout":4,"resistance":13,"categorie_parade":"boucliers","dommages":"0","penetration":0,"force":"8","competence":"Bouclier","lancer":"","tir":"","portee_courte":0,"portee_moyenne":0,"portee_extreme":0,"magique":false,"ecaille_efficacite":null,"resistance_magique":null,"rapide":false,"deuxmains":false,"unemain":false,"initpremierround":"hast"},"ownership":{"default":0,"rYShh2P1DNavdoBD":3},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.3.13","coreVersion":"10.291","createdTime":1668808206110,"modifiedTime":1671050477130,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
{"_id":"cVZbnh5cYxBx6P5b","name":"Burin","type":"objet","img":"systems/foundryvtt-reve-de-dragon/icons/objets/gouge.webp","effects":[],"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.equipement.cVZbnh5cYxBx6P5b"}},"system":{"description":"","descriptionmj":"","encombrement":0.2,"quantite":1,"qualite":0,"cout":0.3,"milieu":"","environnement":[{"milieu":"Villages","rarete":"Frequente","frequence":18},{"milieu":"Villes","rarete":"Frequente","frequence":18}],"equipe":false,"resistance":0},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.6.15","coreVersion":"10.291","createdTime":1668808206109,"modifiedTime":1676074398967,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"},"folder":null,"sort":0,"ownership":{"default":0,"Hp9ImM4o9YRTSdfu":3}}
|
||||||
{"_id":"fAzYb7kkW6QxG6i6","name":"Graisse à Bottes 500g","type":"objet","img":"systems/foundryvtt-reve-de-dragon/icons/objets/graisse_a_cuir.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.equipement.fAzYb7kkW6QxG6i6"}},"system":{"description":"","descriptionmj":"","encombrement":0.2,"quantite":1,"qualite":0,"cout":0.3,"equipe":false,"resistance":0},"ownership":{"default":0,"rYShh2P1DNavdoBD":3},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.3.13","coreVersion":"10.291","createdTime":1668808206110,"modifiedTime":1671050477130,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
{"name":"Viole","type":"objet","img":"systems/foundryvtt-reve-de-dragon/icons/objets/luth.webp","effects":[],"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.equipement.bgkEBYUEFLvAaeVf"}},"system":{"description":"","descriptionmj":"","encombrement":1,"quantite":1,"qualite":0,"cout":7,"milieu":"","environnement":[{"milieu":"Villages","rarete":"Rare","frequence":6},{"milieu":"Villes","rarete":"Rare","frequence":6}],"equipe":false,"resistance":0},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.6.15","coreVersion":"10.291","createdTime":1668808206109,"modifiedTime":1676074487920,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"},"folder":null,"sort":0,"ownership":{"default":0,"Hp9ImM4o9YRTSdfu":3},"_id":"cbwLXpLTEtywFT6b"}
|
||||||
{"_id":"fDwsTMuug0Z5BdaA","name":"Cuir / Metal","type":"armure","img":"systems/foundryvtt-reve-de-dragon/icons/armes_armures/cuir_metal.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.equipement.fDwsTMuug0Z5BdaA"}},"system":{"description":"<p>Cuir épais clouté, ou petites plaquettes, écailles ou anneaux de fer cousus sur le cuir. Pectoral ou cotte de cuir/métal + jupon ou cuissards de cuir / métal sur culottes de cuir souple + bottes de cuir / métal + casque de métal.</p>\n<p> </p>","descriptionmj":"","equipe":false,"encombrement":4,"quantite":1,"qualite":0,"cout":20,"protection":"4","deterioration":0,"malus":-2},"ownership":{"default":0,"rYShh2P1DNavdoBD":3},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.3.13","coreVersion":"10.291","createdTime":1668808206110,"modifiedTime":1671050477130,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
{"_id":"ckKnviu9SHvWgya0","name":"Bougie de cire (2 heures)","type":"objet","img":"systems/foundryvtt-reve-de-dragon/icons/objets/bougie.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.equipement.ckKnviu9SHvWgya0"}},"system":{"description":"","descriptionmj":"","encombrement":0.1,"quantite":1,"qualite":0,"cout":0.05,"milieu":"","environnement":[{"milieu":"Villages","rarete":"Commune","frequence":54},{"milieu":"Villes","rarete":"Commune","frequence":54}],"equipe":false,"resistance":0},"ownership":{"default":0,"rYShh2P1DNavdoBD":3},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.6.15","coreVersion":"10.291","createdTime":1668808206109,"modifiedTime":1676074487969,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
||||||
{"_id":"fLKFTvLWoj7juxQE","name":"Flèche, carreau","type":"objet","img":"systems/foundryvtt-reve-de-dragon/icons/objets/fleche.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.equipement.fLKFTvLWoj7juxQE"}},"system":{"description":"","descriptionmj":"","encombrement":0.1,"quantite":1,"qualite":0,"cout":0.1,"equipe":false,"resistance":0},"ownership":{"default":0,"rYShh2P1DNavdoBD":3},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.3.13","coreVersion":"10.291","createdTime":1668808206110,"modifiedTime":1671050477131,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
{"_id":"cobfvOmFpti5lJuK","name":"Chemise de lin","type":"objet","img":"systems/foundryvtt-reve-de-dragon/icons/objets/chemise_lin.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.equipement.cobfvOmFpti5lJuK"}},"system":{"description":"","descriptionmj":"","encombrement":0,"quantite":1,"qualite":0,"cout":0.3,"milieu":"","environnement":[{"milieu":"Villages","rarete":"Commune","frequence":54},{"milieu":"Villes","rarete":"Commune","frequence":54}],"equipe":false,"resistance":0},"ownership":{"default":0,"rYShh2P1DNavdoBD":3},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.6.15","coreVersion":"10.291","createdTime":1668808206109,"modifiedTime":1676074487969,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
||||||
{"_id":"fOfVLKBacNEsDBn1","name":"Brandevin","type":"nourritureboisson","img":"systems/foundryvtt-reve-de-dragon/icons/liquides/liquide_sang.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.equipement.fOfVLKBacNEsDBn1"}},"system":{"description":"<p>Dose de 10cl de Brandevin</p>","descriptionmj":"","encombrement":0.05,"quantite":1,"qualite":0,"cout":0.1,"sust":0,"exotisme":0,"cuisinier":"","boisson":true,"desaltere":0.2,"alcoolise":true,"force":-5},"ownership":{"default":0,"wYnBx3HmLfGzsj7P":3},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.3.13","coreVersion":"10.291","createdTime":1668808206110,"modifiedTime":1671050477131,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
{"_id":"dBR6KXvfmjjIcwsc","name":"Pilon en marbre","type":"objet","img":"systems/foundryvtt-reve-de-dragon/icons/objets/pilon.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.equipement.dBR6KXvfmjjIcwsc"}},"system":{"description":"","descriptionmj":"","encombrement":0.1,"quantite":1,"qualite":0,"cout":0.2,"milieu":"","environnement":[{"milieu":"Villages","rarete":"Rare","frequence":6},{"milieu":"Villes","rarete":"Frequente","frequence":18}],"equipe":false,"resistance":0},"ownership":{"default":0,"rYShh2P1DNavdoBD":3},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.6.15","coreVersion":"10.291","createdTime":1668808206110,"modifiedTime":1676074487969,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
||||||
{"name":"Etain (1 denier)","type":"monnaie","img":"systems/foundryvtt-reve-de-dragon/icons/objets/piece_etain_poisson.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Item.UFCII7LUClrCWElV"}},"_id":"fhP2azbUBfmpF441","system":{"description":"","descriptionmj":"","encombrement":0.01,"quantite":0,"qualite":0,"cout":0.01},"ownership":{"default":0,"jtRmvSuwkwMmIMf0":3},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.3.13","coreVersion":"10.291","createdTime":1668808206110,"modifiedTime":1671050477131,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
{"_id":"dLiMJO6aUkh0EuIZ","name":"Épée dragonne","type":"arme","img":"systems/foundryvtt-reve-de-dragon/icons/armes_armures/epee_dragonne.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.equipement.dLiMJO6aUkh0EuIZ"}},"system":{"description":"<p>C’est une épée <em>longue</em>, plus robuste que l’esparlongue, pouvant également frapper de taille.</p>","descriptionmj":"","equipe":false,"encombrement":2,"quantite":1,"qualite":0,"cout":20,"milieu":"","environnement":[{"milieu":"Villages","rarete":"Rare","frequence":6},{"milieu":"Villes","rarete":"Frequente","frequence":18}],"resistance":12,"categorie_parade":"epees-longues","dommages":"3","penetration":0,"force":"11","competence":"Epée à 1 main","lancer":"","tir":"","portee_courte":0,"portee_moyenne":0,"portee_extreme":0,"magique":false,"ecaille_efficacite":null,"resistance_magique":null,"rapide":true,"deuxmains":false,"unemain":true,"initpremierround":"epeedragonne"},"ownership":{"default":0,"Q4cUvqxCxMoTJXDL":3},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.6.15","coreVersion":"10.291","createdTime":1668808206110,"modifiedTime":1676074487969,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
||||||
{"_id":"gfU7oZL1JYqF3lAW","name":"Robe de lin","type":"objet","img":"systems/foundryvtt-reve-de-dragon/icons/objets/robe_lin.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.equipement.gfU7oZL1JYqF3lAW"}},"system":{"description":"","descriptionmj":"","encombrement":0.1,"quantite":1,"qualite":0,"cout":0.6,"equipe":false,"resistance":0},"ownership":{"default":0,"jOzRscDxoXZWpGS6":3},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.3.13","coreVersion":"10.291","createdTime":1668808206111,"modifiedTime":1671050477131,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
{"_id":"eK28jEeQiJdd93L3","name":"Bouclier léger","type":"arme","img":"systems/foundryvtt-reve-de-dragon/icons/armes_armures/bouclier_petit.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.equipement.eK28jEeQiJdd93L3"}},"system":{"description":"","descriptionmj":"","equipe":false,"encombrement":1,"quantite":1,"qualite":0,"cout":4,"milieu":"","environnement":[{"milieu":"Villages","rarete":"Frequente","frequence":18},{"milieu":"Villes","rarete":"Frequente","frequence":18}],"resistance":13,"categorie_parade":"boucliers","dommages":"0","penetration":0,"force":"8","competence":"Bouclier","lancer":"","tir":"","portee_courte":0,"portee_moyenne":0,"portee_extreme":0,"magique":false,"ecaille_efficacite":null,"resistance_magique":null,"rapide":false,"deuxmains":false,"unemain":false,"initpremierround":"hast"},"ownership":{"default":0,"rYShh2P1DNavdoBD":3},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.6.15","coreVersion":"10.291","createdTime":1668808206110,"modifiedTime":1676074487969,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
||||||
{"_id":"gmBC6SO3F5d64Vpl","name":"Miroir en cuivre poli 20 cm","type":"objet","img":"systems/foundryvtt-reve-de-dragon/icons/objets/miroir.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.equipement.gmBC6SO3F5d64Vpl"}},"system":{"description":"","descriptionmj":"","encombrement":0.2,"quantite":1,"qualite":0,"cout":1,"equipe":false,"resistance":0},"ownership":{"default":0,"rYShh2P1DNavdoBD":3},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.3.13","coreVersion":"10.291","createdTime":1668808206111,"modifiedTime":1671050477131,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
{"_id":"fAzYb7kkW6QxG6i6","name":"Graisse à Bottes 500g","type":"objet","img":"systems/foundryvtt-reve-de-dragon/icons/objets/graisse_a_cuir.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.equipement.fAzYb7kkW6QxG6i6"}},"system":{"description":"","descriptionmj":"","encombrement":0.2,"quantite":1,"qualite":0,"cout":0.3,"milieu":"","environnement":[{"milieu":"Villages","rarete":"Frequente","frequence":18},{"milieu":"Villes","rarete":"Frequente","frequence":18}],"equipe":false,"resistance":0},"ownership":{"default":0,"rYShh2P1DNavdoBD":3},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.6.15","coreVersion":"10.291","createdTime":1668808206110,"modifiedTime":1676074487969,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
||||||
{"name":"Or (10 sols)","type":"monnaie","img":"systems/foundryvtt-reve-de-dragon/icons/objets/piece_or_sol.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Item.CmqfrDQgL61XIAqt"}},"_id":"gmbvvEx7hPrAy3zh","system":{"description":"","descriptionmj":"","encombrement":0.01,"quantite":0,"qualite":0,"cout":10},"ownership":{"default":0,"jtRmvSuwkwMmIMf0":3},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.3.13","coreVersion":"10.291","createdTime":1668808206111,"modifiedTime":1671050477131,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
{"_id":"fDwsTMuug0Z5BdaA","name":"Cuir / Metal","type":"armure","img":"systems/foundryvtt-reve-de-dragon/icons/armes_armures/cuir_metal.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.equipement.fDwsTMuug0Z5BdaA"}},"system":{"description":"<p>Cuir épais clouté, ou petites plaquettes, écailles ou anneaux de fer cousus sur le cuir. Pectoral ou cotte de cuir/métal + jupon ou cuissards de cuir / métal sur culottes de cuir souple + bottes de cuir / métal + casque de métal.</p>\n<p> </p>","descriptionmj":"","equipe":false,"encombrement":4,"quantite":1,"qualite":0,"cout":20,"milieu":"","environnement":[{"milieu":"Villages","rarete":"Rare","frequence":6},{"milieu":"Villes","rarete":"Frequente","frequence":18}],"protection":"4","deterioration":0,"malus":-2},"ownership":{"default":0,"rYShh2P1DNavdoBD":3},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.6.15","coreVersion":"10.291","createdTime":1668808206110,"modifiedTime":1676074487969,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
||||||
{"_id":"godMVR796aSUVjLu","name":"Fléau léger","type":"arme","img":"systems/foundryvtt-reve-de-dragon/icons/armes_armures/fleau_leger.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.equipement.godMVR796aSUVjLu"}},"system":{"description":"","descriptionmj":"","equipe":false,"encombrement":2,"quantite":1,"qualite":0,"cout":12,"resistance":10,"categorie_parade":"","dommages":"3","penetration":0,"force":"12","competence":"Fléau","lancer":"","tir":"","portee_courte":0,"portee_moyenne":0,"portee_extreme":0,"magique":false,"ecaille_efficacite":0,"resistance_magique":0,"rapide":false,"deuxmains":false,"unemain":true,"initpremierround":"fleau"},"ownership":{"default":0,"Q4cUvqxCxMoTJXDL":3},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.3.13","coreVersion":"10.291","createdTime":1668808206111,"modifiedTime":1671050477131,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
{"_id":"fLKFTvLWoj7juxQE","name":"Flèche","type":"munition","img":"systems/foundryvtt-reve-de-dragon/icons/objets/fleche.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Item.X4mih6UN2mWf7Ndr"}},"system":{"description":"","descriptionmj":"","encombrement":0.1,"quantite":1,"qualite":0,"cout":0.1,"milieu":"","environnement":[]},"ownership":{"default":0,"rYShh2P1DNavdoBD":3},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.6.15","coreVersion":"10.291","createdTime":1676067642744,"modifiedTime":1676074487970,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
||||||
{"_id":"hEPimS3H8jihDuUS","name":"Crayon à mine de plomb","type":"objet","img":"systems/foundryvtt-reve-de-dragon/icons/objets/crayon_plomb.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.equipement.hEPimS3H8jihDuUS"}},"system":{"description":"","descriptionmj":"","encombrement":0.02,"quantite":1,"qualite":0,"cout":0.3,"equipe":false,"resistance":0},"ownership":{"default":0,"rYShh2P1DNavdoBD":3},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.3.13","coreVersion":"10.291","createdTime":1668808206111,"modifiedTime":1671050477131,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
{"_id":"fOfVLKBacNEsDBn1","name":"Brandevin","type":"nourritureboisson","img":"systems/foundryvtt-reve-de-dragon/icons/liquides/liquide_sang.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.equipement.fOfVLKBacNEsDBn1"}},"system":{"description":"<p>Dose de 10cl de Brandevin</p>","descriptionmj":"","encombrement":0.05,"quantite":1,"qualite":0,"cout":0.1,"milieu":"","environnement":[{"milieu":"Villages","rarete":"Frequente","frequence":18},{"milieu":"Villes","rarete":"Frequente","frequence":18}],"sust":0,"exotisme":0,"cuisinier":"","boisson":true,"desaltere":0.2,"alcoolise":true,"force":-5},"ownership":{"default":0,"wYnBx3HmLfGzsj7P":3},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.6.15","coreVersion":"10.291","createdTime":1668808206110,"modifiedTime":1676074487970,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
||||||
{"_id":"hVgd4APvAW8sbXf0","name":"Grande hache","type":"arme","img":"systems/foundryvtt-reve-de-dragon/icons/armes_armures/grande_hache.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.equipement.hVgd4APvAW8sbXf0"}},"system":{"description":"","descriptionmj":"","equipe":false,"encombrement":3,"quantite":1,"qualite":0,"cout":15,"resistance":8,"categorie_parade":"haches","dommages":"4","penetration":0,"force":"13","competence":"Hache à 2 mains","lancer":"","tir":"","portee_courte":0,"portee_moyenne":0,"portee_extreme":0,"magique":false,"ecaille_efficacite":0,"resistance_magique":0,"rapide":false,"deuxmains":true,"unemain":false,"initpremierround":""},"ownership":{"default":0,"rYShh2P1DNavdoBD":3},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.3.13","coreVersion":"10.291","createdTime":1668808206111,"modifiedTime":1671050477131,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
{"name":"Etain (1 denier)","type":"monnaie","img":"systems/foundryvtt-reve-de-dragon/icons/objets/piece_etain_poisson.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Item.UFCII7LUClrCWElV"}},"_id":"fhP2azbUBfmpF441","system":{"description":"","descriptionmj":"","encombrement":0.01,"quantite":0,"qualite":0,"cout":0.01,"milieu":"","environnement":[{"milieu":"Villages","rarete":"Commune","frequence":54},{"milieu":"Villes","rarete":"Commune","frequence":54}]},"ownership":{"default":0,"jtRmvSuwkwMmIMf0":3},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.6.15","coreVersion":"10.291","createdTime":1668808206110,"modifiedTime":1676074487970,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
||||||
{"_id":"hjsIxUmanyz5otLJ","name":"Marmite de fer (3 litres)","type":"conteneur","img":"systems/foundryvtt-reve-de-dragon/icons/objets/marmite.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.equipement.hjsIxUmanyz5otLJ"}},"system":{"description":"","descriptionmj":"","encombrement":0.6,"quantite":1,"qualite":0,"cout":0.6,"contenu":[],"capacite":1.5,"equipe":false},"ownership":{"default":0,"rYShh2P1DNavdoBD":3},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.3.13","coreVersion":"10.291","createdTime":1668808206111,"modifiedTime":1671050477131,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
{"_id":"gfU7oZL1JYqF3lAW","name":"Robe de lin","type":"objet","img":"systems/foundryvtt-reve-de-dragon/icons/objets/robe_lin.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.equipement.gfU7oZL1JYqF3lAW"}},"system":{"description":"","descriptionmj":"","encombrement":0.1,"quantite":1,"qualite":0,"cout":0.6,"milieu":"","environnement":[{"milieu":"Villages","rarete":"Frequente","frequence":18},{"milieu":"Villes","rarete":"Frequente","frequence":18}],"equipe":false,"resistance":0},"ownership":{"default":0,"jOzRscDxoXZWpGS6":3},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.6.15","coreVersion":"10.291","createdTime":1668808206111,"modifiedTime":1676074487970,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
||||||
{"_id":"htaHjhHwVhlBnZjv","name":"Fléau lourd","type":"arme","img":"systems/foundryvtt-reve-de-dragon/icons/armes_armures/fleau_lourd.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.equipement.htaHjhHwVhlBnZjv"}},"system":{"description":"","descriptionmj":"","equipe":false,"encombrement":3,"quantite":1,"qualite":0,"cout":15,"resistance":10,"categorie_parade":"","dommages":"4","penetration":0,"force":"13","competence":"Fléau","lancer":"","tir":"","portee_courte":0,"portee_moyenne":0,"portee_extreme":0,"magique":false,"ecaille_efficacite":0,"resistance_magique":0,"rapide":false,"deuxmains":false,"unemain":true,"initpremierround":"fleau"},"ownership":{"default":0,"Q4cUvqxCxMoTJXDL":3},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.3.13","coreVersion":"10.291","createdTime":1668808206111,"modifiedTime":1671050477131,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
{"_id":"gmBC6SO3F5d64Vpl","name":"Miroir en cuivre poli 20 cm","type":"objet","img":"systems/foundryvtt-reve-de-dragon/icons/objets/miroir.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.equipement.gmBC6SO3F5d64Vpl"}},"system":{"description":"","descriptionmj":"","encombrement":0.2,"quantite":1,"qualite":0,"cout":1,"milieu":"","environnement":[{"milieu":"Villages","rarete":"Rare","frequence":6},{"milieu":"Villes","rarete":"Frequente","frequence":18}],"equipe":false,"resistance":0},"ownership":{"default":0,"rYShh2P1DNavdoBD":3},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.6.15","coreVersion":"10.291","createdTime":1668808206111,"modifiedTime":1676074487970,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
||||||
{"_id":"huvZ4dMPpn9gk9km","name":"Sel","type":"objet","flags":{"core":{"sourceId":"Item.fLEyryhRi8Nw37SP"}},"img":"systems/foundryvtt-reve-de-dragon/icons/objets/sel.webp","effects":[],"system":{"description":"","descriptionmj":"","encombrement":0.01,"quantite":1,"qualite":0,"cout":null,"equipe":false,"resistance":0},"ownership":{"default":0,"Q4cUvqxCxMoTJXDL":3},"folder":null,"sort":0,"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.3.13","coreVersion":"10.291","createdTime":1668808206111,"modifiedTime":1671050477131,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
{"name":"Or (10 sols)","type":"monnaie","img":"systems/foundryvtt-reve-de-dragon/icons/objets/piece_or_sol.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Item.CmqfrDQgL61XIAqt"}},"_id":"gmbvvEx7hPrAy3zh","system":{"description":"","descriptionmj":"","encombrement":0.01,"quantite":0,"qualite":0,"cout":10,"milieu":"","environnement":[{"milieu":"Villages","rarete":"Rare","frequence":6},{"milieu":"Villes","rarete":"Rare","frequence":6}]},"ownership":{"default":0,"jtRmvSuwkwMmIMf0":3},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.6.15","coreVersion":"10.291","createdTime":1668808206111,"modifiedTime":1676074487970,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
||||||
{"_id":"iCvphbPdxUcfqetd","name":"Aumônière","type":"conteneur","img":"systems/foundryvtt-reve-de-dragon/icons/objets/aumoniere.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.equipement.iCvphbPdxUcfqetd"}},"system":{"description":"<p>Comme une bourse, mais sous forme d'une coque en cuir rigide.</p>","descriptionmj":"","encombrement":0,"quantite":1,"qualite":0,"cout":0.2,"contenu":[],"capacite":0.25,"equipe":false},"ownership":{"default":0,"jOzRscDxoXZWpGS6":3},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.3.13","coreVersion":"10.291","createdTime":1668808206112,"modifiedTime":1671050477131,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
{"_id":"godMVR796aSUVjLu","name":"Fléau léger","type":"arme","img":"systems/foundryvtt-reve-de-dragon/icons/armes_armures/fleau_leger.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.equipement.godMVR796aSUVjLu"}},"system":{"description":"","descriptionmj":"","equipe":false,"encombrement":2,"quantite":1,"qualite":0,"cout":12,"milieu":"","environnement":[{"milieu":"Villages","rarete":"Rare","frequence":6},{"milieu":"Villes","rarete":"Rare","frequence":6}],"resistance":10,"categorie_parade":"","dommages":"3","penetration":0,"force":"12","competence":"Fléau","lancer":"","tir":"","portee_courte":0,"portee_moyenne":0,"portee_extreme":0,"magique":false,"ecaille_efficacite":0,"resistance_magique":0,"rapide":false,"deuxmains":false,"unemain":true,"initpremierround":"fleau"},"ownership":{"default":0,"Q4cUvqxCxMoTJXDL":3},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.6.15","coreVersion":"10.291","createdTime":1668808206111,"modifiedTime":1676074487970,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
||||||
{"_id":"iGHudg5kBOfYWgwV","name":"Arc","type":"arme","img":"systems/foundryvtt-reve-de-dragon/icons/objets/arc.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.equipement.iGHudg5kBOfYWgwV"}},"system":{"description":"<p>Nie jusqu'à 2 points d'armure.</p>\n<p>Rechargement 1/2 round (s'il tire en début de round, il pourra recharger durant le reste du round pour tirer de nouveau au début du round suivant).</p>","descriptionmj":"","equipe":false,"encombrement":1,"quantite":1,"qualite":0,"cout":10,"resistance":0,"categorie_parade":"","dommages":"2","penetration":2,"force":"0","competence":"","lancer":"","tir":"Arc","portee_courte":10,"portee_moyenne":20,"portee_extreme":50,"magique":false,"ecaille_efficacite":0,"resistance_magique":0,"rapide":false,"deuxmains":false,"unemain":false,"initpremierround":"hast"},"ownership":{"default":0,"rYShh2P1DNavdoBD":3},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.3.13","coreVersion":"10.291","createdTime":1668808206112,"modifiedTime":1671050477131,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
{"_id":"hEPimS3H8jihDuUS","name":"Crayon à mine de plomb","type":"objet","img":"systems/foundryvtt-reve-de-dragon/icons/objets/crayon_plomb.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.equipement.hEPimS3H8jihDuUS"}},"system":{"description":"","descriptionmj":"","encombrement":0.02,"quantite":1,"qualite":0,"cout":0.3,"milieu":"","environnement":[{"milieu":"Villages","rarete":"Rare","frequence":6},{"milieu":"Villes","rarete":"Frequente","frequence":18}],"equipe":false,"resistance":0},"ownership":{"default":0,"rYShh2P1DNavdoBD":3},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.6.15","coreVersion":"10.291","createdTime":1668808206111,"modifiedTime":1676074487970,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
||||||
{"_id":"iq8ZZgphxOUgC1bi","name":"Flûte traversière de roseau","type":"objet","img":"systems/foundryvtt-reve-de-dragon/icons/objets/flute_traversiere.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.equipement.iq8ZZgphxOUgC1bi"}},"system":{"description":"","descriptionmj":"","encombrement":0.08,"quantite":1,"qualite":0,"cout":0.12,"equipe":false,"resistance":0},"ownership":{"default":0,"rYShh2P1DNavdoBD":3},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.3.13","coreVersion":"10.291","createdTime":1668808206112,"modifiedTime":1671050477131,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
{"_id":"hVgd4APvAW8sbXf0","name":"Grande hache","type":"arme","img":"systems/foundryvtt-reve-de-dragon/icons/armes_armures/grande_hache.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.equipement.hVgd4APvAW8sbXf0"}},"system":{"description":"","descriptionmj":"","equipe":false,"encombrement":3,"quantite":1,"qualite":0,"cout":15,"milieu":"","environnement":[{"milieu":"Villages","rarete":"Rare","frequence":6},{"milieu":"Villes","rarete":"Rare","frequence":6}],"resistance":8,"categorie_parade":"haches","dommages":"4","penetration":0,"force":"13","competence":"Hache à 2 mains","lancer":"","tir":"","portee_courte":0,"portee_moyenne":0,"portee_extreme":0,"magique":false,"ecaille_efficacite":0,"resistance_magique":0,"rapide":false,"deuxmains":true,"unemain":false,"initpremierround":"hast"},"ownership":{"default":0,"rYShh2P1DNavdoBD":3},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.6.15","coreVersion":"10.291","createdTime":1668808206111,"modifiedTime":1676074487970,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
||||||
{"_id":"iss7ARW8oRoe1umi","name":"Eau","type":"nourritureboisson","img":"systems/foundryvtt-reve-de-dragon/icons/liquides/liquide_eau.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Item.DAFP7z5gzl1O3rCV"}},"system":{"description":"<p><span style=\"color: #191813; font-family: CaslonAntique; font-size: 16px; letter-spacing: 1px; text-align: justify; background-color: #f5f5f0;\">1 mesure (20cl) d'eau.</span></p>","descriptionmj":"","encombrement":0.1,"quantite":1,"qualite":0,"cout":0,"sust":0,"exotisme":0,"cuisinier":"","boisson":true,"desaltere":1,"alcoolise":false,"force":0,"equipe":false},"ownership":{"default":0,"rYShh2P1DNavdoBD":3},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.3.13","coreVersion":"10.291","createdTime":1668808206112,"modifiedTime":1671050477131,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
{"_id":"hjsIxUmanyz5otLJ","name":"Marmite de fer (3 litres)","type":"conteneur","img":"systems/foundryvtt-reve-de-dragon/icons/objets/marmite.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.equipement.hjsIxUmanyz5otLJ"}},"system":{"description":"","descriptionmj":"","encombrement":0.6,"quantite":1,"qualite":0,"cout":0.6,"milieu":"","environnement":[{"milieu":"Villages","rarete":"Rare","frequence":6},{"milieu":"Villes","rarete":"Frequente","frequence":18}],"contenu":[],"capacite":1.5,"equipe":false},"ownership":{"default":0,"rYShh2P1DNavdoBD":3},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.6.15","coreVersion":"10.291","createdTime":1668808206111,"modifiedTime":1676074487970,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
||||||
{"_id":"iuSOVPBsK8Zg6hoY","name":"1 m² de bâche","type":"objet","img":"systems/foundryvtt-reve-de-dragon/icons/objets/bache.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.equipement.iuSOVPBsK8Zg6hoY"}},"system":{"description":null,"descriptionmj":"","encombrement":0.5,"quantite":1,"qualite":0,"cout":0.2,"equipe":false,"resistance":0},"ownership":{"default":0,"rYShh2P1DNavdoBD":3},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.3.13","coreVersion":"10.291","createdTime":1668808206112,"modifiedTime":1671050477132,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
{"_id":"htaHjhHwVhlBnZjv","name":"Fléau lourd","type":"arme","img":"systems/foundryvtt-reve-de-dragon/icons/armes_armures/fleau_lourd.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.equipement.htaHjhHwVhlBnZjv"}},"system":{"description":"","descriptionmj":"","equipe":false,"encombrement":3,"quantite":1,"qualite":0,"cout":15,"milieu":"","environnement":[{"milieu":"Villages","rarete":"Rarissime","frequence":2},{"milieu":"Villes","rarete":"Rare","frequence":6}],"resistance":10,"categorie_parade":"","dommages":"4","penetration":0,"force":"13","competence":"Fléau","lancer":"","tir":"","portee_courte":0,"portee_moyenne":0,"portee_extreme":0,"magique":false,"ecaille_efficacite":0,"resistance_magique":0,"rapide":false,"deuxmains":false,"unemain":true,"initpremierround":"fleau"},"ownership":{"default":0,"Q4cUvqxCxMoTJXDL":3},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.6.15","coreVersion":"10.291","createdTime":1668808206111,"modifiedTime":1676074487970,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
||||||
{"_id":"j9WpAl1SwHEovg3b","name":"Tresse de crin","type":"objet","img":"systems/foundryvtt-reve-de-dragon/icons/objets/tresse.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.equipement.j9WpAl1SwHEovg3b"}},"system":{"description":"","descriptionmj":"","encombrement":0.02,"quantite":1,"qualite":0,"cout":0.1,"equipe":false,"resistance":0},"ownership":{"default":0,"rYShh2P1DNavdoBD":3},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.3.13","coreVersion":"10.291","createdTime":1668808206112,"modifiedTime":1671050477132,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
{"_id":"huvZ4dMPpn9gk9km","name":"Sel","type":"objet","flags":{"core":{"sourceId":"Item.fLEyryhRi8Nw37SP"}},"img":"systems/foundryvtt-reve-de-dragon/icons/objets/sel.webp","effects":[],"system":{"description":"","descriptionmj":"","encombrement":0.01,"quantite":1,"qualite":0,"cout":null,"milieu":"","environnement":[{"milieu":"Villages","rarete":"Frequente","frequence":18},{"milieu":"Villes","rarete":"Frequente","frequence":18}],"equipe":false,"resistance":0},"ownership":{"default":0,"Q4cUvqxCxMoTJXDL":3},"folder":null,"sort":0,"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.6.15","coreVersion":"10.291","createdTime":1668808206111,"modifiedTime":1676074487970,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
||||||
{"_id":"jHxnzdBSVzr7Z7wH","name":"Robe de velours","type":"objet","img":"systems/foundryvtt-reve-de-dragon/icons/objets/robe_velours.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.equipement.jHxnzdBSVzr7Z7wH"}},"system":{"description":"","descriptionmj":"","encombrement":0.3,"quantite":1,"qualite":0,"cout":10,"equipe":false,"resistance":0},"ownership":{"default":0,"jOzRscDxoXZWpGS6":3},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.3.13","coreVersion":"10.291","createdTime":1668808206112,"modifiedTime":1671050477132,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
{"_id":"iCvphbPdxUcfqetd","name":"Aumônière","type":"conteneur","img":"systems/foundryvtt-reve-de-dragon/icons/objets/aumoniere.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.equipement.iCvphbPdxUcfqetd"}},"system":{"description":"<p>Comme une bourse, mais sous forme d'une coque en cuir rigide.</p>","descriptionmj":"","encombrement":0,"quantite":1,"qualite":0,"cout":0.2,"milieu":"","environnement":[{"milieu":"Villages","rarete":"Frequente","frequence":18},{"milieu":"Villes","rarete":"Commune","frequence":54}],"contenu":[],"capacite":0.25,"equipe":false},"ownership":{"default":0,"jOzRscDxoXZWpGS6":3},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.6.15","coreVersion":"10.291","createdTime":1668808206112,"modifiedTime":1676074487970,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
||||||
{"_id":"jKWA5NjsjH0kIZzK","name":"Chaudron de fer (5 litres)","type":"conteneur","img":"systems/foundryvtt-reve-de-dragon/icons/objets/chaudron.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.equipement.jKWA5NjsjH0kIZzK"}},"system":{"description":"","descriptionmj":"","encombrement":1,"quantite":1,"qualite":0,"cout":1,"contenu":[],"capacite":2.5,"equipe":false},"ownership":{"default":0,"rYShh2P1DNavdoBD":3},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.3.13","coreVersion":"10.291","createdTime":1668808206112,"modifiedTime":1671050477132,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
{"_id":"iGHudg5kBOfYWgwV","name":"Arc","type":"arme","img":"systems/foundryvtt-reve-de-dragon/icons/objets/arc.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.equipement.iGHudg5kBOfYWgwV"}},"system":{"description":"<p>Nie jusqu'à 2 points d'armure.</p>\n<p>Rechargement 1/2 round (s'il tire en début de round, il pourra recharger durant le reste du round pour tirer de nouveau au début du round suivant).</p>","descriptionmj":"","equipe":false,"encombrement":1,"quantite":1,"qualite":0,"cout":10,"milieu":"","environnement":[{"milieu":"Villages","rarete":"Frequente","frequence":18},{"milieu":"Villes","rarete":"Frequente","frequence":18}],"resistance":0,"categorie_parade":"","dommages":"2","penetration":2,"force":"0","competence":"","lancer":"","tir":"Arc","portee_courte":10,"portee_moyenne":20,"portee_extreme":50,"magique":false,"ecaille_efficacite":0,"resistance_magique":0,"rapide":false,"deuxmains":false,"unemain":false,"initpremierround":"hast"},"ownership":{"default":0,"rYShh2P1DNavdoBD":3},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.6.15","coreVersion":"10.291","createdTime":1668808206112,"modifiedTime":1676074487971,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
||||||
{"_id":"jZMfiBnBXwW91drM","name":"Sablier 15 minutes","type":"objet","img":"systems/foundryvtt-reve-de-dragon/icons/objets/sablier.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.equipement.jZMfiBnBXwW91drM"}},"system":{"description":"","descriptionmj":"","encombrement":0.1,"quantite":1,"qualite":0,"cout":2,"equipe":false,"resistance":0},"ownership":{"default":0,"rYShh2P1DNavdoBD":3},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.3.13","coreVersion":"10.291","createdTime":1668808206112,"modifiedTime":1671050477132,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
{"_id":"iq8ZZgphxOUgC1bi","name":"Flûte traversière de roseau","type":"objet","img":"systems/foundryvtt-reve-de-dragon/icons/objets/flute_traversiere.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.equipement.iq8ZZgphxOUgC1bi"}},"system":{"description":"","descriptionmj":"","encombrement":0.08,"quantite":1,"qualite":0,"cout":0.12,"milieu":"","environnement":[{"milieu":"Villages","rarete":"Commune","frequence":54},{"milieu":"Villes","rarete":"Frequente","frequence":18}],"equipe":false,"resistance":0},"ownership":{"default":0,"rYShh2P1DNavdoBD":3},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.6.15","coreVersion":"10.291","createdTime":1668808206112,"modifiedTime":1676074487971,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
||||||
{"_id":"jchAu828fr8TLtwi","name":"Lait","type":"nourritureboisson","img":"systems/foundryvtt-reve-de-dragon/icons/liquides/liquide_lait.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Item.6i90SWaq5Me0us8X"}},"system":{"description":"","descriptionmj":"","encombrement":0.1,"quantite":1,"qualite":0,"cout":0.01,"sust":0.2,"exotisme":0,"cuisinier":"","boisson":true,"desaltere":1,"alcoolise":false,"force":0,"equipe":false},"ownership":{"default":0,"rYShh2P1DNavdoBD":3},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.3.13","coreVersion":"10.291","createdTime":1668808206113,"modifiedTime":1671050477132,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
{"_id":"iss7ARW8oRoe1umi","name":"Eau","type":"nourritureboisson","img":"systems/foundryvtt-reve-de-dragon/icons/liquides/liquide_eau.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Item.DAFP7z5gzl1O3rCV"}},"system":{"description":"<p><span style=\"color: #191813; font-family: CaslonAntique; font-size: 16px; letter-spacing: 1px; text-align: justify; background-color: #f5f5f0;\">1 mesure (20cl) d'eau.</span></p>","descriptionmj":"","encombrement":0.1,"quantite":1,"qualite":0,"cout":0,"milieu":"","environnement":[{"milieu":"Cours d'eau","rarete":"Commune","frequence":54},{"milieu":"Villages","rarete":"Commune","frequence":54},{"milieu":"Villes","rarete":"Commune","frequence":54}],"sust":0,"exotisme":0,"cuisinier":"","boisson":true,"desaltere":1,"alcoolise":false,"force":0,"equipe":false},"ownership":{"default":0,"rYShh2P1DNavdoBD":3},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.6.15","coreVersion":"10.291","createdTime":1668808206112,"modifiedTime":1676074487971,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
||||||
{"_id":"jyBy6mDAGvJb9k0l","name":"1 m2 de lin","type":"objet","img":"systems/foundryvtt-reve-de-dragon/icons/objets/tissu_lin.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.equipement.jyBy6mDAGvJb9k0l"}},"system":{"description":"","descriptionmj":"","encombrement":0,"quantite":1,"qualite":0,"cout":0.15,"equipe":false,"resistance":0},"ownership":{"default":0,"rYShh2P1DNavdoBD":3},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.3.13","coreVersion":"10.291","createdTime":1668808206113,"modifiedTime":1671050477132,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
{"_id":"iuSOVPBsK8Zg6hoY","name":"1 m² de bâche","type":"objet","img":"systems/foundryvtt-reve-de-dragon/icons/objets/bache.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.equipement.iuSOVPBsK8Zg6hoY"}},"system":{"description":null,"descriptionmj":"","encombrement":0.5,"quantite":1,"qualite":0,"cout":0.2,"milieu":"","environnement":[{"milieu":"Villages","rarete":"Frequente","frequence":18},{"milieu":"Villes","rarete":"Frequente","frequence":18}],"equipe":false,"resistance":0},"ownership":{"default":0,"rYShh2P1DNavdoBD":3},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.6.15","coreVersion":"10.291","createdTime":1668808206112,"modifiedTime":1676074487971,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
||||||
{"_id":"kFUh4027jnAdqbyK","name":"Gelée royale","type":"potion","img":"systems/foundryvtt-reve-de-dragon/icons/objets/gelee_royale.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.equipement.kFUh4027jnAdqbyK"}},"system":{"description":"<p>Crème sirupeuse.</p>","descriptionmj":"","encombrement":0.1,"quantite":1,"qualite":0,"cout":0.2,"rarete":"","categorie":"AlchimieAutre","herbe":"","herbebrins":0,"herbebonus":0,"reposalchimique":false,"pr":0,"prpermanent":false,"prdate":0,"soinherbe":"","soinherbebonus":0},"ownership":{"default":0,"rYShh2P1DNavdoBD":3},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.3.13","coreVersion":"10.291","createdTime":1668808206113,"modifiedTime":1671050477132,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
{"_id":"j9WpAl1SwHEovg3b","name":"Tresse de crin","type":"objet","img":"systems/foundryvtt-reve-de-dragon/icons/objets/tresse.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.equipement.j9WpAl1SwHEovg3b"}},"system":{"description":"","descriptionmj":"","encombrement":0.02,"quantite":1,"qualite":0,"cout":0.1,"milieu":"","environnement":[{"milieu":"Villages","rarete":"Commune","frequence":54},{"milieu":"Villes","rarete":"Frequente","frequence":18}],"equipe":false,"resistance":0},"ownership":{"default":0,"rYShh2P1DNavdoBD":3},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.6.15","coreVersion":"10.291","createdTime":1668808206112,"modifiedTime":1676074487971,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
||||||
{"_id":"keLCmhsbxHK39UIy","name":"Mirobolant","type":"potion","img":"systems/foundryvtt-reve-de-dragon/icons/objets/mirobolant.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.equipement.keLCmhsbxHK39UIy"}},"system":{"description":"<p>Fluide.</p>\n<p>Liquide rougeâtre clair et sans dépot.</p>","descriptionmj":"","encombrement":0.1,"quantite":1,"qualite":0,"cout":2,"rarete":"","categorie":"Alchimie","herbe":"","herbebrins":0,"herbebonus":0,"reposalchimique":false,"pr":0,"prpermanent":false,"prdate":0,"soinherbe":"","soinherbebonus":0},"ownership":{"default":0,"rYShh2P1DNavdoBD":3},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.3.13","coreVersion":"10.291","createdTime":1668808206113,"modifiedTime":1671050477132,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
{"_id":"jHxnzdBSVzr7Z7wH","name":"Robe de velours","type":"objet","img":"systems/foundryvtt-reve-de-dragon/icons/objets/robe_velours.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.equipement.jHxnzdBSVzr7Z7wH"}},"system":{"description":"","descriptionmj":"","encombrement":0.3,"quantite":1,"qualite":0,"cout":10,"milieu":"","environnement":[{"milieu":"Villages","rarete":"Rarissime","frequence":2},{"milieu":"Villes","rarete":"Rare","frequence":6}],"equipe":false,"resistance":0},"ownership":{"default":0,"jOzRscDxoXZWpGS6":3},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.6.15","coreVersion":"10.291","createdTime":1668808206112,"modifiedTime":1676074487971,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
||||||
{"_id":"lJMKVPB5zlG9UqMD","name":"Pourpoint de velours","type":"objet","img":"systems/foundryvtt-reve-de-dragon/icons/objets/pourpoint_velours.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.equipement.lJMKVPB5zlG9UqMD"}},"system":{"description":"","descriptionmj":"","encombrement":0.2,"quantite":1,"qualite":0,"cout":8,"equipe":false,"resistance":0},"ownership":{"default":0,"rYShh2P1DNavdoBD":3},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.3.13","coreVersion":"10.291","createdTime":1668808206113,"modifiedTime":1671050477132,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
{"_id":"jKWA5NjsjH0kIZzK","name":"Chaudron de fer (5 litres)","type":"conteneur","img":"systems/foundryvtt-reve-de-dragon/icons/objets/chaudron.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.equipement.jKWA5NjsjH0kIZzK"}},"system":{"description":"","descriptionmj":"","encombrement":1,"quantite":1,"qualite":0,"cout":1,"milieu":"","environnement":[{"milieu":"Villages","rarete":"Frequente","frequence":18},{"milieu":"Villes","rarete":"Frequente","frequence":18}],"contenu":[],"capacite":2.5,"equipe":false},"ownership":{"default":0,"rYShh2P1DNavdoBD":3},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.6.15","coreVersion":"10.291","createdTime":1668808206112,"modifiedTime":1676074487971,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
||||||
{"_id":"lKkYFkzWVs2TZDZP","name":"Petit pot de fard","type":"objet","img":"systems/foundryvtt-reve-de-dragon/icons/objets/fard.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.equipement.lKkYFkzWVs2TZDZP"}},"system":{"description":"","descriptionmj":"","encombrement":0.04,"quantite":1,"qualite":0,"cout":0.3,"equipe":false,"resistance":0},"ownership":{"default":0,"rYShh2P1DNavdoBD":3},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.3.13","coreVersion":"10.291","createdTime":1668808206113,"modifiedTime":1671050477132,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
{"_id":"jZMfiBnBXwW91drM","name":"Sablier 15 minutes","type":"objet","img":"systems/foundryvtt-reve-de-dragon/icons/objets/sablier.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.equipement.jZMfiBnBXwW91drM"}},"system":{"description":"","descriptionmj":"","encombrement":0.1,"quantite":1,"qualite":0,"cout":2,"milieu":"","environnement":[{"milieu":"Villages","rarete":"Rarissime","frequence":2},{"milieu":"Villes","rarete":"Rare","frequence":6}],"equipe":false,"resistance":0},"ownership":{"default":0,"rYShh2P1DNavdoBD":3},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.6.15","coreVersion":"10.291","createdTime":1668808206112,"modifiedTime":1676074487971,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
||||||
{"_id":"lOI2HVu3B6EDY4sE","name":"Arbalète","type":"arme","img":"systems/foundryvtt-reve-de-dragon/icons/objets/arbalete.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.equipement.lOI2HVu3B6EDY4sE"}},"system":{"description":"<p>Nie jusqu'à 2 points d'armure.</p>\n<p>Rechargement 1 round.</p>","descriptionmj":"","equipe":false,"encombrement":3,"quantite":1,"qualite":0,"cout":30,"resistance":0,"categorie_parade":"","dommages":"3","penetration":2,"force":"0","competence":"","lancer":"","tir":"Arbalète","portee_courte":15,"portee_moyenne":30,"portee_extreme":70,"magique":false,"ecaille_efficacite":0,"resistance_magique":0,"rapide":false,"deuxmains":false,"unemain":false,"initpremierround":""},"ownership":{"default":0,"rYShh2P1DNavdoBD":3},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.3.13","coreVersion":"10.291","createdTime":1668808206114,"modifiedTime":1671050477132,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
{"_id":"jchAu828fr8TLtwi","name":"Lait","type":"nourritureboisson","img":"systems/foundryvtt-reve-de-dragon/icons/liquides/liquide_lait.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Item.6i90SWaq5Me0us8X"}},"system":{"description":"","descriptionmj":"","encombrement":0.1,"quantite":1,"qualite":0,"cout":0.01,"milieu":"","environnement":[{"milieu":"Villages","rarete":"Frequente","frequence":18},{"milieu":"Villes","rarete":"Frequente","frequence":18}],"sust":0.2,"exotisme":0,"cuisinier":"","boisson":true,"desaltere":1,"alcoolise":false,"force":0,"equipe":false},"ownership":{"default":0,"rYShh2P1DNavdoBD":3},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.6.15","coreVersion":"10.291","createdTime":1668808206113,"modifiedTime":1676074487971,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
||||||
{"_id":"lq7pjDQESNbZOQ3n","name":"1 m2 de soie ou de velours","type":"objet","img":"systems/foundryvtt-reve-de-dragon/icons/objets/tissu_velours.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.equipement.lq7pjDQESNbZOQ3n"}},"system":{"description":"","descriptionmj":"","encombrement":0,"quantite":1,"qualite":0,"cout":3,"equipe":false,"resistance":0},"ownership":{"default":0,"rYShh2P1DNavdoBD":3},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.3.13","coreVersion":"10.291","createdTime":1668808206114,"modifiedTime":1671050477132,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
{"_id":"jyBy6mDAGvJb9k0l","name":"1 m2 de lin","type":"objet","img":"systems/foundryvtt-reve-de-dragon/icons/objets/tissu_lin.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.equipement.jyBy6mDAGvJb9k0l"}},"system":{"description":"","descriptionmj":"","encombrement":0,"quantite":1,"qualite":0,"cout":0.15,"milieu":"","environnement":[{"milieu":"Villages","rarete":"Commune","frequence":54},{"milieu":"Villes","rarete":"Commune","frequence":54}],"equipe":false,"resistance":0},"ownership":{"default":0,"rYShh2P1DNavdoBD":3},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.6.15","coreVersion":"10.291","createdTime":1668808206113,"modifiedTime":1676074487971,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
||||||
{"_id":"m9yuZjp9DK7pSqPK","name":"Lanterne à bougie","type":"conteneur","img":"systems/foundryvtt-reve-de-dragon/icons/objets/lanterne_bougie.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.equipement.m9yuZjp9DK7pSqPK"}},"system":{"description":"","descriptionmj":"","encombrement":1,"quantite":1,"qualite":0,"cout":3,"contenu":[],"capacite":0.1,"equipe":false},"ownership":{"default":0,"rYShh2P1DNavdoBD":3},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.3.13","coreVersion":"10.291","createdTime":1668808206114,"modifiedTime":1671050477132,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
{"_id":"kFUh4027jnAdqbyK","name":"Gelée royale","type":"potion","img":"systems/foundryvtt-reve-de-dragon/icons/objets/gelee_royale.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.equipement.kFUh4027jnAdqbyK"}},"system":{"description":"<p>Crème sirupeuse.</p>","descriptionmj":"","encombrement":0.1,"quantite":1,"qualite":0,"cout":0.2,"milieu":"","environnement":[{"milieu":"Villages","rarete":"Rare","frequence":6},{"milieu":"Villes","rarete":"Rare","frequence":6}],"temporel":{"debut":{"indexDate":-1,"indexMinute":0},"fin":{"indexDate":-1,"indexMinute":0}},"rarete":"","categorie":"Remede","herbe":"","herbebrins":0,"herbebonus":0,"reposalchimique":false,"pr":0,"prpermanent":false,"prdate":0,"soinherbe":"","soinherbebonus":0},"ownership":{"default":0,"rYShh2P1DNavdoBD":3},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.6.15","coreVersion":"10.291","createdTime":1668808206113,"modifiedTime":1676074487971,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
||||||
{"_id":"n2HMv0xv0MFpuiKp","name":"Parchemin 1 feuille","type":"objet","img":"systems/foundryvtt-reve-de-dragon/icons/objets/parchemin_1_feuille.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.equipement.n2HMv0xv0MFpuiKp"}},"system":{"description":"","descriptionmj":"","encombrement":0.02,"quantite":1,"qualite":0,"cout":0.2,"equipe":false,"resistance":0},"ownership":{"default":0,"rYShh2P1DNavdoBD":3},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.3.13","coreVersion":"10.291","createdTime":1668808206114,"modifiedTime":1671050477132,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
{"_id":"keLCmhsbxHK39UIy","name":"Mirobolant","type":"potion","img":"systems/foundryvtt-reve-de-dragon/icons/objets/mirobolant.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.equipement.keLCmhsbxHK39UIy"}},"system":{"description":"<p>Fluide.</p>\n<p>Liquide rougeâtre clair et sans dépot.</p>","descriptionmj":"","encombrement":0.1,"quantite":1,"qualite":0,"cout":2,"milieu":"","environnement":[{"milieu":"Villages","rarete":"Rarissime","frequence":2},{"milieu":"Villes","rarete":"Rare","frequence":6}],"temporel":{"debut":{"indexDate":-1,"indexMinute":0},"fin":{"indexDate":-1,"indexMinute":0}},"rarete":"","categorie":"Remede","herbe":"","herbebrins":0,"herbebonus":0,"reposalchimique":false,"pr":0,"prpermanent":false,"prdate":0,"soinherbe":"","soinherbebonus":0},"ownership":{"default":0,"rYShh2P1DNavdoBD":3},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.6.15","coreVersion":"10.291","createdTime":1668808206113,"modifiedTime":1676074487971,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
||||||
{"_id":"nBhYyPbRwcWswiyC","name":"Tonnelet (10 litres)","type":"conteneur","img":"systems/foundryvtt-reve-de-dragon/icons/objets/tonnelet.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.equipement.nBhYyPbRwcWswiyC"}},"system":{"description":"","descriptionmj":"","encombrement":1,"quantite":1,"qualite":0,"cout":0.25,"contenu":[],"capacite":5,"equipe":false},"ownership":{"default":0,"rYShh2P1DNavdoBD":3},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.3.13","coreVersion":"10.291","createdTime":1668808206114,"modifiedTime":1671050477132,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
{"_id":"lJMKVPB5zlG9UqMD","name":"Pourpoint de velours","type":"objet","img":"systems/foundryvtt-reve-de-dragon/icons/objets/pourpoint_velours.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.equipement.lJMKVPB5zlG9UqMD"}},"system":{"description":"","descriptionmj":"","encombrement":0.2,"quantite":1,"qualite":0,"cout":8,"milieu":"","environnement":[{"milieu":"Villages","rarete":"Rarissime","frequence":2},{"milieu":"Villes","rarete":"Rare","frequence":6}],"equipe":false,"resistance":0},"ownership":{"default":0,"rYShh2P1DNavdoBD":3},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.6.15","coreVersion":"10.291","createdTime":1668808206113,"modifiedTime":1676074487971,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
||||||
{"_id":"nPczxZ7yylpmGSyO","name":"Crochet de serrurier","type":"objet","img":"systems/foundryvtt-reve-de-dragon/icons/objets/crochet.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.equipement.nPczxZ7yylpmGSyO"}},"system":{"description":"","descriptionmj":"","encombrement":0.2,"quantite":1,"qualite":0,"cout":0.3,"equipe":false,"resistance":0},"ownership":{"default":0,"rYShh2P1DNavdoBD":3},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.3.13","coreVersion":"10.291","createdTime":1668808206114,"modifiedTime":1671050477132,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
{"_id":"lKkYFkzWVs2TZDZP","name":"Petit pot de fard","type":"objet","img":"systems/foundryvtt-reve-de-dragon/icons/objets/fard.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.equipement.lKkYFkzWVs2TZDZP"}},"system":{"description":"","descriptionmj":"","encombrement":0.04,"quantite":1,"qualite":0,"cout":0.3,"milieu":"","environnement":[{"milieu":"Villages","rarete":"Rare","frequence":6},{"milieu":"Villes","rarete":"Frequente","frequence":18}],"equipe":false,"resistance":0},"ownership":{"default":0,"rYShh2P1DNavdoBD":3},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.6.15","coreVersion":"10.291","createdTime":1668808206113,"modifiedTime":1676074487971,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
||||||
{"_id":"nl9cICrauIOEXwFP","name":"Cordelette (10 m)","type":"objet","img":"systems/foundryvtt-reve-de-dragon/icons/objets/cordelette.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.equipement.nl9cICrauIOEXwFP"}},"system":{"description":"","descriptionmj":"","encombrement":0.2,"quantite":1,"qualite":0,"cout":0.2,"equipe":false,"resistance":0},"ownership":{"default":0,"rYShh2P1DNavdoBD":3},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.3.13","coreVersion":"10.291","createdTime":1668808206114,"modifiedTime":1671050477132,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
{"_id":"lOI2HVu3B6EDY4sE","name":"Arbalète","type":"arme","img":"systems/foundryvtt-reve-de-dragon/icons/objets/arbalete.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.equipement.lOI2HVu3B6EDY4sE"}},"system":{"description":"<p>Nie jusqu'à 2 points d'armure.</p>\n<p>Rechargement 1 round.</p>","descriptionmj":"","equipe":false,"encombrement":3,"quantite":1,"qualite":0,"cout":30,"milieu":"","environnement":[{"milieu":"Villages","rarete":"Rare","frequence":6},{"milieu":"Villes","rarete":"Frequente","frequence":18}],"resistance":0,"categorie_parade":"","dommages":"3","penetration":2,"force":"0","competence":"","lancer":"","tir":"Arbalète","portee_courte":15,"portee_moyenne":30,"portee_extreme":70,"magique":false,"ecaille_efficacite":0,"resistance_magique":0,"rapide":false,"deuxmains":false,"unemain":false,"initpremierround":"hast"},"ownership":{"default":0,"rYShh2P1DNavdoBD":3},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.6.15","coreVersion":"10.291","createdTime":1668808206114,"modifiedTime":1676074487971,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
||||||
{"_id":"nqMyaOqBfTxdP9tg","name":"Cor en corne","type":"objet","img":"systems/foundryvtt-reve-de-dragon/icons/objets/cor_corne.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.equipement.nqMyaOqBfTxdP9tg"}},"system":{"description":"","descriptionmj":"","encombrement":0.1,"quantite":1,"qualite":0,"cout":0.6,"equipe":false,"resistance":0},"ownership":{"default":0,"rYShh2P1DNavdoBD":3},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.3.13","coreVersion":"10.291","createdTime":1668808206114,"modifiedTime":1671050477132,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
{"_id":"lq7pjDQESNbZOQ3n","name":"1 m2 de soie ou de velours","type":"objet","img":"systems/foundryvtt-reve-de-dragon/icons/objets/tissu_velours.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.equipement.lq7pjDQESNbZOQ3n"}},"system":{"description":"","descriptionmj":"","encombrement":0,"quantite":1,"qualite":0,"cout":3,"milieu":"","environnement":[{"milieu":"Villages","rarete":"Rare","frequence":6},{"milieu":"Villes","rarete":"Frequente","frequence":18}],"equipe":false,"resistance":0},"ownership":{"default":0,"rYShh2P1DNavdoBD":3},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.6.15","coreVersion":"10.291","createdTime":1668808206114,"modifiedTime":1676074487971,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
||||||
{"_id":"oXpPZ9LS1nsU0nGT","name":"Épée sorde","type":"arme","img":"systems/foundryvtt-reve-de-dragon/icons/armes_armures/epee_sord.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.equipement.oXpPZ9LS1nsU0nGT"}},"system":{"description":"<p>C’est une épée plus courte que la dragonne, mais plus <em>large</em>. Elle peut s’utiliser à une ou deux mains. Sa grande solidité en fait l’épée de prédilection des gardes et des soldats.</p>\n<p>C’est probablement à elle que le <em>Guerrier Sorde</em> doit son nom (à moins que ce ne soit l’inverse).</p>","descriptionmj":"","equipe":false,"encombrement":2,"quantite":1,"qualite":0,"cout":20,"resistance":15,"categorie_parade":"epees-lourdes","dommages":"3/4","penetration":null,"force":"12/11","competence":"Epée à 1 main","lancer":"","tir":"","portee_courte":0,"portee_moyenne":0,"portee_extreme":0,"magique":false,"ecaille_efficacite":null,"resistance_magique":null,"rapide":false,"deuxmains":true,"unemain":true,"initpremierround":"epeesorde"},"ownership":{"default":0,"Q4cUvqxCxMoTJXDL":3},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.3.13","coreVersion":"10.291","createdTime":1668808206115,"modifiedTime":1671050477133,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
{"_id":"m9yuZjp9DK7pSqPK","name":"Lanterne à bougie","type":"conteneur","img":"systems/foundryvtt-reve-de-dragon/icons/objets/lanterne_bougie.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.equipement.m9yuZjp9DK7pSqPK"}},"system":{"description":"","descriptionmj":"","encombrement":1,"quantite":1,"qualite":0,"cout":3,"milieu":"","environnement":[{"milieu":"Villages","rarete":"Rare","frequence":6},{"milieu":"Villes","rarete":"Frequente","frequence":18}],"contenu":[],"capacite":0.1,"equipe":false},"ownership":{"default":0,"rYShh2P1DNavdoBD":3},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.6.15","coreVersion":"10.291","createdTime":1668808206114,"modifiedTime":1676074487971,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
||||||
{"_id":"of2LbmmB4EtlSwte","name":"Sac en jute (50 litres)","type":"conteneur","img":"systems/foundryvtt-reve-de-dragon/icons/objets/sac_jute_50.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.equipement.of2LbmmB4EtlSwte"}},"system":{"description":"","descriptionmj":"","encombrement":0.1,"quantite":1,"qualite":0,"cout":0.08,"contenu":[],"capacite":25,"equipe":false},"ownership":{"default":0,"rYShh2P1DNavdoBD":3},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.3.13","coreVersion":"10.291","createdTime":1668808206115,"modifiedTime":1671050477133,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
{"_id":"n2HMv0xv0MFpuiKp","name":"Parchemin 1 feuille","type":"objet","img":"systems/foundryvtt-reve-de-dragon/icons/objets/parchemin_1_feuille.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.equipement.n2HMv0xv0MFpuiKp"}},"system":{"description":"","descriptionmj":"","encombrement":0.02,"quantite":1,"qualite":0,"cout":0.2,"milieu":"","environnement":[{"milieu":"Villages","rarete":"Rare","frequence":6},{"milieu":"Villes","rarete":"Frequente","frequence":18}],"equipe":false,"resistance":0},"ownership":{"default":0,"rYShh2P1DNavdoBD":3},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.6.15","coreVersion":"10.291","createdTime":1668808206114,"modifiedTime":1676074487971,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
||||||
{"_id":"orpj8CumQ39xMOHy","name":"Brosse à cheveux","type":"objet","img":"systems/foundryvtt-reve-de-dragon/icons/objets/Brosse.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.equipement.orpj8CumQ39xMOHy"}},"system":{"description":"","descriptionmj":"","encombrement":0.06,"quantite":1,"qualite":0,"cout":1,"equipe":false,"resistance":0},"ownership":{"default":0,"rYShh2P1DNavdoBD":3},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.3.13","coreVersion":"10.291","createdTime":1668808206115,"modifiedTime":1671050477133,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
{"_id":"nBhYyPbRwcWswiyC","name":"Tonnelet (10 litres)","type":"conteneur","img":"systems/foundryvtt-reve-de-dragon/icons/objets/tonnelet.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.equipement.nBhYyPbRwcWswiyC"}},"system":{"description":"","descriptionmj":"","encombrement":1,"quantite":1,"qualite":0,"cout":0.25,"milieu":"","environnement":[{"milieu":"Villages","rarete":"Frequente","frequence":18},{"milieu":"Villes","rarete":"Frequente","frequence":18}],"contenu":[],"capacite":5,"equipe":false},"ownership":{"default":0,"rYShh2P1DNavdoBD":3},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.6.15","coreVersion":"10.291","createdTime":1668808206114,"modifiedTime":1676074487971,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
||||||
{"_id":"phfgVizT4ekUwqFq","name":"Selle et harnais","type":"conteneur","img":"systems/foundryvtt-reve-de-dragon/icons/objets/selle.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.equipement.phfgVizT4ekUwqFq"}},"system":{"description":"","descriptionmj":"","encombrement":4,"quantite":1,"qualite":0,"cout":5,"contenu":[],"capacite":25,"equipe":false},"ownership":{"default":0,"rYShh2P1DNavdoBD":3},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.3.13","coreVersion":"10.291","createdTime":1668808206115,"modifiedTime":1671050477133,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
{"_id":"nPczxZ7yylpmGSyO","name":"Crochet de serrurier","type":"objet","img":"systems/foundryvtt-reve-de-dragon/icons/objets/crochet.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.equipement.nPczxZ7yylpmGSyO"}},"system":{"description":"","descriptionmj":"","encombrement":0.2,"quantite":1,"qualite":0,"cout":0.3,"milieu":"","environnement":[{"milieu":"Villages","rarete":"Rarissime","frequence":2},{"milieu":"Villes","rarete":"Rare","frequence":6}],"equipe":false,"resistance":0},"ownership":{"default":0,"rYShh2P1DNavdoBD":3},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.6.15","coreVersion":"10.291","createdTime":1668808206114,"modifiedTime":1676074487971,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
||||||
{"_id":"q5zaNnlmNZZChi31","name":"Miel","type":"nourritureboisson","img":"systems/foundryvtt-reve-de-dragon/icons/objets/gelee_royale.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Item.0UhqiYISVSiztBfv"}},"system":{"description":"","descriptionmj":"","encombrement":0.1,"quantite":1,"qualite":0,"cout":0.4,"sust":2,"exotisme":0,"cuisinier":"","boisson":false,"desaltere":0,"alcoolise":false,"force":0},"ownership":{"default":0,"wYnBx3HmLfGzsj7P":3},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.3.13","coreVersion":"10.291","createdTime":1668808206115,"modifiedTime":1671050477133,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
{"_id":"nl9cICrauIOEXwFP","name":"Cordelette (10 m)","type":"objet","img":"systems/foundryvtt-reve-de-dragon/icons/objets/cordelette.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.equipement.nl9cICrauIOEXwFP"}},"system":{"description":"","descriptionmj":"","encombrement":0.2,"quantite":1,"qualite":0,"cout":0.2,"milieu":"","environnement":[{"milieu":"Villages","rarete":"Commune","frequence":54},{"milieu":"Villes","rarete":"Frequente","frequence":18}],"equipe":false,"resistance":0},"ownership":{"default":0,"rYShh2P1DNavdoBD":3},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.6.15","coreVersion":"10.291","createdTime":1668808206114,"modifiedTime":1676074487972,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
||||||
{"_id":"qCLTOjlIOvlj0uo7","name":"Chaperon de laine","type":"objet","img":"systems/foundryvtt-reve-de-dragon/icons/objets/chaperon_laine.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.equipement.qCLTOjlIOvlj0uo7"}},"system":{"description":"","descriptionmj":"","encombrement":0.1,"quantite":1,"qualite":0,"cout":0.2,"equipe":false,"resistance":0},"ownership":{"default":0,"rYShh2P1DNavdoBD":3},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.3.13","coreVersion":"10.291","createdTime":1668808206115,"modifiedTime":1671050477133,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
{"_id":"nqMyaOqBfTxdP9tg","name":"Cor en corne","type":"objet","img":"systems/foundryvtt-reve-de-dragon/icons/objets/cor_corne.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.equipement.nqMyaOqBfTxdP9tg"}},"system":{"description":"","descriptionmj":"","encombrement":0.1,"quantite":1,"qualite":0,"cout":0.6,"milieu":"","environnement":[{"milieu":"Villages","rarete":"Frequente","frequence":18},{"milieu":"Villes","rarete":"Rare","frequence":6}],"equipe":false,"resistance":0},"ownership":{"default":0,"rYShh2P1DNavdoBD":3},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.6.15","coreVersion":"10.291","createdTime":1668808206114,"modifiedTime":1676074487972,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
||||||
{"_id":"qWhl9EfdnJx4KFTZ","name":"Bas de laine","type":"objet","img":"systems/foundryvtt-reve-de-dragon/icons/objets/bas_laine.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.equipement.qWhl9EfdnJx4KFTZ"}},"system":{"description":"","descriptionmj":"","encombrement":0,"quantite":1,"qualite":0,"cout":0.1,"equipe":false,"resistance":0},"ownership":{"default":0,"jOzRscDxoXZWpGS6":3},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.3.13","coreVersion":"10.291","createdTime":1668808206115,"modifiedTime":1671050477133,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
{"_id":"oXpPZ9LS1nsU0nGT","name":"Épée sorde","type":"arme","img":"systems/foundryvtt-reve-de-dragon/icons/armes_armures/epee_sord.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.equipement.oXpPZ9LS1nsU0nGT"}},"system":{"description":"<p>C’est une épée plus courte que la dragonne, mais plus <em>large</em>. Elle peut s’utiliser à une ou deux mains. Sa grande solidité en fait l’épée de prédilection des gardes et des soldats.</p>\n<p>C’est probablement à elle que le <em>Guerrier Sorde</em> doit son nom (à moins que ce ne soit l’inverse).</p>","descriptionmj":"","equipe":false,"encombrement":2,"quantite":1,"qualite":0,"cout":20,"milieu":"","environnement":[{"milieu":"Villages","rarete":"Rare","frequence":6},{"milieu":"Villes","rarete":"Frequente","frequence":18}],"resistance":15,"categorie_parade":"epees-lourdes","dommages":"3/4","penetration":null,"force":"12/11","competence":"Epée à 1 main","lancer":"","tir":"","portee_courte":0,"portee_moyenne":0,"portee_extreme":0,"magique":false,"ecaille_efficacite":null,"resistance_magique":null,"rapide":false,"deuxmains":true,"unemain":true,"initpremierround":"epeesorde"},"ownership":{"default":0,"Q4cUvqxCxMoTJXDL":3},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.6.15","coreVersion":"10.291","createdTime":1668808206115,"modifiedTime":1676074487972,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
||||||
{"_id":"sSgPT3aKDOZ25svO","name":"Porte plume en bois","type":"objet","img":"systems/foundryvtt-reve-de-dragon/icons/objets/porte_plume2.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.equipement.sSgPT3aKDOZ25svO"}},"system":{"description":"","descriptionmj":"","encombrement":0.02,"quantite":1,"qualite":0,"cout":0.05,"equipe":false,"resistance":0},"ownership":{"default":0,"rYShh2P1DNavdoBD":3},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.3.13","coreVersion":"10.291","createdTime":1668808206115,"modifiedTime":1671050477133,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
{"_id":"of2LbmmB4EtlSwte","name":"Sac en jute (50 litres)","type":"conteneur","img":"systems/foundryvtt-reve-de-dragon/icons/objets/sac_jute_50.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.equipement.of2LbmmB4EtlSwte"}},"system":{"description":"","descriptionmj":"","encombrement":0.1,"quantite":1,"qualite":0,"cout":0.08,"milieu":"","environnement":[{"milieu":"Villages","rarete":"Frequente","frequence":18},{"milieu":"Villes","rarete":"Frequente","frequence":18}],"contenu":[],"capacite":25,"equipe":false},"ownership":{"default":0,"rYShh2P1DNavdoBD":3},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.6.15","coreVersion":"10.291","createdTime":1668808206115,"modifiedTime":1676074487972,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
||||||
{"_id":"sXoStuW19r9zVi1S","name":"Flacon de verre (40 cl)","type":"conteneur","img":"systems/foundryvtt-reve-de-dragon/icons/objets/flacon_verre.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.equipement.sXoStuW19r9zVi1S"}},"system":{"description":"","descriptionmj":"","encombrement":0.1,"quantite":1,"qualite":0,"cout":0.3,"contenu":[],"capacite":0.2,"equipe":false},"ownership":{"default":0,"rYShh2P1DNavdoBD":3},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.3.13","coreVersion":"10.291","createdTime":1668808206115,"modifiedTime":1671050477133,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
{"_id":"orpj8CumQ39xMOHy","name":"Brosse à cheveux","type":"objet","img":"systems/foundryvtt-reve-de-dragon/icons/objets/Brosse.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.equipement.orpj8CumQ39xMOHy"}},"system":{"description":"","descriptionmj":"","encombrement":0.06,"quantite":1,"qualite":0,"cout":1,"milieu":"","environnement":[{"milieu":"Villages","rarete":"Rare","frequence":6},{"milieu":"Villes","rarete":"Frequente","frequence":18}],"equipe":false,"resistance":0},"ownership":{"default":0,"rYShh2P1DNavdoBD":3},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.6.15","coreVersion":"10.291","createdTime":1668808206115,"modifiedTime":1676074487972,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
||||||
{"_id":"sbgHtwEj4sK9cMh7","name":"Livre","type":"livre","flags":{"core":{"sourceId":"Item.1bn0Q8cO1qRWQvlf"}},"img":"systems/foundryvtt-reve-de-dragon/icons/objets/livre.webp","effects":[],"system":{"description":"","descriptionmj":"","encombrement":1,"quantite":1,"qualite":0,"cout":3,"competence":"Ecriture","auteur":"Inconnu","difficulte":0,"points_de_tache":0,"xp":"0","niveau_minimum":0,"niveau_maximum":0},"ownership":{"default":0,"Q4cUvqxCxMoTJXDL":3},"folder":null,"sort":0,"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.3.13","coreVersion":"10.291","createdTime":1668808206117,"modifiedTime":1671050477133,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
{"name":"Gouge","type":"objet","img":"systems/foundryvtt-reve-de-dragon/icons/objets/gouge.webp","effects":[],"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.equipement.cVZbnh5cYxBx6P5b"}},"system":{"description":"","descriptionmj":"","encombrement":0.2,"quantite":1,"qualite":0,"cout":0.3,"milieu":"","environnement":[{"milieu":"Villages","rarete":"Frequente","frequence":18},{"milieu":"Villes","rarete":"Frequente","frequence":18}],"equipe":false,"resistance":0},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.6.15","coreVersion":"10.291","createdTime":1668808206109,"modifiedTime":1676074352882,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"},"_id":"pY17ihKKHgfThcyK","folder":null,"sort":0,"ownership":{"default":0,"Hp9ImM4o9YRTSdfu":3}}
|
||||||
{"_id":"skTWp8PUgIG2U2ne","name":"Cire à cacheter","type":"objet","img":"systems/foundryvtt-reve-de-dragon/icons/objets/cire_a_cacheter.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.equipement.skTWp8PUgIG2U2ne"}},"system":{"description":"","descriptionmj":"","encombrement":0.02,"quantite":1,"qualite":0,"cout":0.2,"equipe":false,"resistance":0},"ownership":{"default":0,"rYShh2P1DNavdoBD":3},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.3.13","coreVersion":"10.291","createdTime":1668808206117,"modifiedTime":1671050477133,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
{"_id":"phfgVizT4ekUwqFq","name":"Selle et harnais","type":"conteneur","img":"systems/foundryvtt-reve-de-dragon/icons/objets/selle.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.equipement.phfgVizT4ekUwqFq"}},"system":{"description":"","descriptionmj":"","encombrement":4,"quantite":1,"qualite":0,"cout":5,"milieu":"","environnement":[{"milieu":"Villages","rarete":"Rare","frequence":6},{"milieu":"Villes","rarete":"Frequente","frequence":18}],"contenu":[],"capacite":25,"equipe":false},"ownership":{"default":0,"rYShh2P1DNavdoBD":3},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.6.15","coreVersion":"10.291","createdTime":1668808206115,"modifiedTime":1676074487972,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
||||||
{"_id":"slusKo2nVCtFwDkN","name":"Sang","type":"munition","img":"systems/foundryvtt-reve-de-dragon/icons/liquides/liquide_sang.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.equipement.slusKo2nVCtFwDkN"}},"system":{"description":"<p>1 mesure (20cl) de sang.</p>","descriptionmj":"","encombrement":0.1,"quantite":1,"qualite":0,"cout":0,"equipe":false},"ownership":{"default":0,"rYShh2P1DNavdoBD":3},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.3.13","coreVersion":"10.291","createdTime":1668808206117,"modifiedTime":1671050477133,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
{"_id":"q5zaNnlmNZZChi31","name":"Miel","type":"nourritureboisson","img":"systems/foundryvtt-reve-de-dragon/icons/objets/gelee_royale.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Item.0UhqiYISVSiztBfv"}},"system":{"description":"","descriptionmj":"","encombrement":0.1,"quantite":1,"qualite":0,"cout":0.4,"milieu":"","environnement":[{"milieu":"Villages","rarete":"Frequente","frequence":18},{"milieu":"Villes","rarete":"Rare","frequence":6}],"sust":2,"exotisme":0,"cuisinier":"","boisson":false,"desaltere":0,"alcoolise":false,"force":0},"ownership":{"default":0,"wYnBx3HmLfGzsj7P":3},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.6.15","coreVersion":"10.291","createdTime":1668808206115,"modifiedTime":1676074487972,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
||||||
{"_id":"snupUovwaPAe46aD","name":"Fiole en grès (20 cl)","type":"conteneur","img":"systems/foundryvtt-reve-de-dragon/icons/objets/fiole_gres.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.equipement.snupUovwaPAe46aD"}},"system":{"description":"","descriptionmj":"","encombrement":0.1,"quantite":1,"qualite":0,"cout":0.1,"contenu":[],"capacite":0.1,"equipe":false},"ownership":{"default":0,"rYShh2P1DNavdoBD":3},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.3.13","coreVersion":"10.291","createdTime":1668808206117,"modifiedTime":1671050477135,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
{"_id":"qCLTOjlIOvlj0uo7","name":"Chaperon de laine","type":"objet","img":"systems/foundryvtt-reve-de-dragon/icons/objets/chaperon_laine.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.equipement.qCLTOjlIOvlj0uo7"}},"system":{"description":"","descriptionmj":"","encombrement":0.1,"quantite":1,"qualite":0,"cout":0.2,"milieu":"","environnement":[{"milieu":"Villages","rarete":"Commune","frequence":54},{"milieu":"Villes","rarete":"Commune","frequence":54}],"equipe":false,"resistance":0},"ownership":{"default":0,"rYShh2P1DNavdoBD":3},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.6.15","coreVersion":"10.291","createdTime":1668808206115,"modifiedTime":1676074487972,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
||||||
{"_id":"szOThadvQvFcS79R","name":"Cuir Epais","type":"armure","img":"systems/foundryvtt-reve-de-dragon/icons/armes_armures/cuir_epais.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.equipement.szOThadvQvFcS79R"}},"system":{"description":"<p>Cuir très épais comme le cuir de botte. Pectoral de cuir épais + jupon de bandes ou de tresses de cuir ou cuissards de cuir épais sur culottes de cuir souple + bottes dures + casque de cuir.</p>\n<p> </p>","descriptionmj":"","equipe":false,"encombrement":2,"quantite":1,"qualite":0,"cout":10,"protection":3,"deterioration":0,"malus":-1},"ownership":{"default":0,"rYShh2P1DNavdoBD":3},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.3.13","coreVersion":"10.291","createdTime":1668808206117,"modifiedTime":1671050477135,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
{"_id":"qWhl9EfdnJx4KFTZ","name":"Bas de laine","type":"objet","img":"systems/foundryvtt-reve-de-dragon/icons/objets/bas_laine.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.equipement.qWhl9EfdnJx4KFTZ"}},"system":{"description":"","descriptionmj":"","encombrement":0,"quantite":1,"qualite":0,"cout":0.1,"milieu":"","environnement":[{"milieu":"Villages","rarete":"Commune","frequence":54},{"milieu":"Villes","rarete":"Commune","frequence":54}],"equipe":false,"resistance":0},"ownership":{"default":0,"jOzRscDxoXZWpGS6":3},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.6.15","coreVersion":"10.291","createdTime":1668808206115,"modifiedTime":1676074487972,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
||||||
{"_id":"tBFt4h3jqINsOxLI","name":"Outre (2 litres)","type":"conteneur","img":"systems/foundryvtt-reve-de-dragon/icons/objets/outre.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.equipement.tBFt4h3jqINsOxLI"}},"system":{"description":"","descriptionmj":"","encombrement":0.08,"quantite":1,"qualite":0,"cout":0.2,"contenu":[],"capacite":1,"equipe":false},"ownership":{"default":0,"rYShh2P1DNavdoBD":3},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.3.13","coreVersion":"10.291","createdTime":1668808206117,"modifiedTime":1671050477135,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
{"_id":"sSgPT3aKDOZ25svO","name":"Porte plume en bois","type":"objet","img":"systems/foundryvtt-reve-de-dragon/icons/objets/porte_plume2.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.equipement.sSgPT3aKDOZ25svO"}},"system":{"description":"","descriptionmj":"","encombrement":0.02,"quantite":1,"qualite":0,"cout":0.05,"milieu":"","environnement":[{"milieu":"Villages","rarete":"Rare","frequence":6},{"milieu":"Villes","rarete":"Frequente","frequence":18}],"equipe":false,"resistance":0},"ownership":{"default":0,"rYShh2P1DNavdoBD":3},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.6.15","coreVersion":"10.291","createdTime":1668808206115,"modifiedTime":1676074487972,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
||||||
{"_id":"tMWzePiuMtiCQnAU","name":"Marteau","type":"arme","img":"systems/foundryvtt-reve-de-dragon/icons/objets/marteau.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.equipement.tMWzePiuMtiCQnAU"}},"system":{"description":"","descriptionmj":"","equipe":false,"encombrement":0.3,"quantite":1,"qualite":0,"cout":1,"resistance":8,"categorie_parade":"","dommages":"2","penetration":0,"force":"7","competence":"Masse à 1 main","lancer":"","tir":"","portee_courte":0,"portee_moyenne":0,"portee_extreme":0,"magique":false,"ecaille_efficacite":0,"resistance_magique":0,"rapide":false,"deuxmains":false,"unemain":false,"initpremierround":"masse"},"ownership":{"default":0,"Q4cUvqxCxMoTJXDL":3},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.3.13","coreVersion":"10.291","createdTime":1668808206117,"modifiedTime":1671050477135,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
{"_id":"sXoStuW19r9zVi1S","name":"Flacon de verre (40 cl)","type":"conteneur","img":"systems/foundryvtt-reve-de-dragon/icons/objets/flacon_verre.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.equipement.sXoStuW19r9zVi1S"}},"system":{"description":"","descriptionmj":"","encombrement":0.1,"quantite":1,"qualite":0,"cout":0.3,"milieu":"","environnement":[{"milieu":"Villages","rarete":"Rare","frequence":6},{"milieu":"Villes","rarete":"Frequente","frequence":18}],"contenu":[],"capacite":0.2,"equipe":false},"ownership":{"default":0,"rYShh2P1DNavdoBD":3},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.6.15","coreVersion":"10.291","createdTime":1668808206115,"modifiedTime":1676074487972,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
||||||
{"_id":"tY3shj5FA8nwMgxX","name":"Vin","type":"nourritureboisson","img":"systems/foundryvtt-reve-de-dragon/icons/liquides/liquide_vin.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Item.QNNWTG5yqQKmcpJ7"}},"system":{"description":"","descriptionmj":"","encombrement":0.1,"quantite":1,"qualite":0,"cout":0.01,"sust":0,"exotisme":0,"cuisinier":"","boisson":true,"desaltere":0.6,"alcoolise":true,"force":-2,"equipe":false},"ownership":{"default":0,"rYShh2P1DNavdoBD":3},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.3.13","coreVersion":"10.291","createdTime":1668808206117,"modifiedTime":1671050477135,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
{"_id":"sbgHtwEj4sK9cMh7","name":"Livre","type":"livre","flags":{"core":{"sourceId":"Item.1bn0Q8cO1qRWQvlf"}},"img":"systems/foundryvtt-reve-de-dragon/icons/objets/livre.webp","effects":[],"system":{"description":"","descriptionmj":"","encombrement":1,"quantite":1,"qualite":0,"cout":3,"milieu":"","environnement":[{"milieu":"Villages","rarete":"Rarissime","frequence":2},{"milieu":"Villes","rarete":"Rare","frequence":6}],"competence":"Ecriture","auteur":"Inconnu","difficulte":0,"points_de_tache":0,"xp":0,"niveau_minimum":0,"niveau_maximum":0},"ownership":{"default":0,"Q4cUvqxCxMoTJXDL":3},"folder":null,"sort":0,"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.6.15","coreVersion":"10.291","createdTime":1668808206117,"modifiedTime":1676074487972,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
||||||
{"_id":"tZWQCuRr1ic3S0pL","name":"Souliers","type":"objet","img":"systems/foundryvtt-reve-de-dragon/icons/objets/souliers.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.equipement.tZWQCuRr1ic3S0pL"}},"system":{"description":"","descriptionmj":"","encombrement":0.2,"quantite":1,"qualite":0,"cout":0.8,"equipe":false,"resistance":0},"ownership":{"default":0,"rYShh2P1DNavdoBD":3},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.3.13","coreVersion":"10.291","createdTime":1668808206117,"modifiedTime":1671050477135,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
{"_id":"skTWp8PUgIG2U2ne","name":"Cire à cacheter","type":"objet","img":"systems/foundryvtt-reve-de-dragon/icons/objets/cire_a_cacheter.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.equipement.skTWp8PUgIG2U2ne"}},"system":{"description":"","descriptionmj":"","encombrement":0.02,"quantite":1,"qualite":0,"cout":0.2,"milieu":"","environnement":[{"milieu":"Villages","rarete":"Rare","frequence":6},{"milieu":"Villes","rarete":"Frequente","frequence":18}],"equipe":false,"resistance":0},"ownership":{"default":0,"rYShh2P1DNavdoBD":3},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.6.15","coreVersion":"10.291","createdTime":1668808206117,"modifiedTime":1676074487972,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
||||||
{"name":"Repas moyen à l'auberge","type":"nourritureboisson","img":"systems/foundryvtt-reve-de-dragon/icons/objets/provision_cuite.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.equipement.tn1kvxEVoLyYODyg"}},"_id":"tn1kvxEVoLyYODyg","system":{"description":"","descriptionmj":"","encombrement":0.3,"quantite":1,"qualite":3,"cout":0.1,"sust":3,"exotisme":0,"cuisinier":"","boisson":false,"desaltere":0,"alcoolise":false,"force":0},"ownership":{"default":0,"wYnBx3HmLfGzsj7P":3},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.3.13","coreVersion":"10.291","createdTime":1668808206117,"modifiedTime":1671050477136,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
{"_id":"slusKo2nVCtFwDkN","name":"Sang","type":"munition","img":"systems/foundryvtt-reve-de-dragon/icons/liquides/liquide_sang.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.equipement.slusKo2nVCtFwDkN"}},"system":{"description":"<p>1 mesure (20cl) de sang.</p>","descriptionmj":"","encombrement":0.1,"quantite":1,"qualite":0,"cout":0,"milieu":"","environnement":[{"milieu":"Villages","rarete":"Frequente","frequence":18},{"milieu":"Villes","rarete":"Frequente","frequence":18}],"equipe":false},"ownership":{"default":0,"rYShh2P1DNavdoBD":3},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.6.15","coreVersion":"10.291","createdTime":1668808206117,"modifiedTime":1676074487972,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
||||||
{"_id":"tswamwK2oKNARhjA","name":"Verre grossissant","type":"objet","img":"systems/foundryvtt-reve-de-dragon/icons/objets/verre_grossissant.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.equipement.tswamwK2oKNARhjA"}},"system":{"description":"","descriptionmj":"","encombrement":0.02,"quantite":1,"qualite":0,"cout":2,"equipe":false,"resistance":0},"ownership":{"default":0,"rYShh2P1DNavdoBD":3},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.3.13","coreVersion":"10.291","createdTime":1668808206118,"modifiedTime":1671050477136,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
{"_id":"snupUovwaPAe46aD","name":"Fiole en grès (20 cl)","type":"conteneur","img":"systems/foundryvtt-reve-de-dragon/icons/objets/fiole_gres.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.equipement.snupUovwaPAe46aD"}},"system":{"description":"","descriptionmj":"","encombrement":0.1,"quantite":1,"qualite":0,"cout":0.1,"milieu":"","environnement":[{"milieu":"Villages","rarete":"Frequente","frequence":18},{"milieu":"Villes","rarete":"Frequente","frequence":18}],"contenu":[],"capacite":0.1,"equipe":false},"ownership":{"default":0,"rYShh2P1DNavdoBD":3},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.6.15","coreVersion":"10.291","createdTime":1668808206117,"modifiedTime":1676074487972,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
||||||
{"_id":"ueBk3MbdEaMbzyPS","name":"Ficelle (10 m)","type":"objet","img":"systems/foundryvtt-reve-de-dragon/icons/objets/ficelle.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.equipement.ueBk3MbdEaMbzyPS"}},"system":{"description":"","descriptionmj":"","encombrement":0.02,"quantite":1,"qualite":0,"cout":0.1,"equipe":false,"resistance":0},"ownership":{"default":0,"rYShh2P1DNavdoBD":3},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.3.13","coreVersion":"10.291","createdTime":1668808206118,"modifiedTime":1671050477136,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
{"_id":"szOThadvQvFcS79R","name":"Cuir Epais","type":"armure","img":"systems/foundryvtt-reve-de-dragon/icons/armes_armures/cuir_epais.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.equipement.szOThadvQvFcS79R"}},"system":{"description":"<p>Cuir très épais comme le cuir de botte. Pectoral de cuir épais + jupon de bandes ou de tresses de cuir ou cuissards de cuir épais sur culottes de cuir souple + bottes dures + casque de cuir.</p>\n<p> </p>","descriptionmj":"","equipe":false,"encombrement":2,"quantite":1,"qualite":0,"cout":10,"milieu":"","environnement":[{"milieu":"Villages","rarete":"Frequente","frequence":18},{"milieu":"Villes","rarete":"Frequente","frequence":18}],"protection":"3","deterioration":0,"malus":-1},"ownership":{"default":0,"rYShh2P1DNavdoBD":3},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.6.15","coreVersion":"10.291","createdTime":1668808206117,"modifiedTime":1676074487972,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
||||||
{"_id":"ueJnUMLK1vpL8xOB","name":"Stylet de bronze","type":"objet","img":"systems/foundryvtt-reve-de-dragon/icons/objets/stylet_de_bronze.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.equipement.ueJnUMLK1vpL8xOB"}},"system":{"description":"","descriptionmj":"","encombrement":0.02,"quantite":1,"qualite":0,"cout":0.12,"equipe":false,"resistance":0},"ownership":{"default":0,"rYShh2P1DNavdoBD":3},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.3.13","coreVersion":"10.291","createdTime":1668808206118,"modifiedTime":1671050477136,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
{"_id":"tBFt4h3jqINsOxLI","name":"Outre (2 litres)","type":"conteneur","img":"systems/foundryvtt-reve-de-dragon/icons/objets/outre.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.equipement.tBFt4h3jqINsOxLI"}},"system":{"description":"","descriptionmj":"","encombrement":0.08,"quantite":1,"qualite":0,"cout":0.2,"milieu":"","environnement":[{"milieu":"Villages","rarete":"Frequente","frequence":18},{"milieu":"Villes","rarete":"Frequente","frequence":18}],"contenu":[],"capacite":1,"equipe":false},"ownership":{"default":0,"rYShh2P1DNavdoBD":3},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.6.15","coreVersion":"10.291","createdTime":1668808206117,"modifiedTime":1676074487972,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
||||||
{"_id":"uwwunMSrJoUYTDkG","name":"Seau de bois ferré (10 litres)","type":"conteneur","img":"systems/foundryvtt-reve-de-dragon/icons/objets/seau_ferre.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.equipement.uwwunMSrJoUYTDkG"}},"system":{"description":"","descriptionmj":"","encombrement":1,"quantite":1,"qualite":0,"cout":0.2,"contenu":[],"capacite":5,"equipe":false},"ownership":{"default":0,"rYShh2P1DNavdoBD":3},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.3.13","coreVersion":"10.291","createdTime":1668808206118,"modifiedTime":1671050477136,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
{"_id":"tMWzePiuMtiCQnAU","name":"Marteau","type":"arme","img":"systems/foundryvtt-reve-de-dragon/icons/objets/marteau.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.equipement.tMWzePiuMtiCQnAU"}},"system":{"description":"","descriptionmj":"","equipe":false,"encombrement":0.3,"quantite":1,"qualite":0,"cout":1,"milieu":"","environnement":[{"milieu":"Villages","rarete":"Frequente","frequence":18},{"milieu":"Villes","rarete":"Frequente","frequence":18}],"resistance":8,"categorie_parade":"","dommages":"2","penetration":0,"force":"7","competence":"Masse à 1 main","lancer":"","tir":"","portee_courte":0,"portee_moyenne":0,"portee_extreme":0,"magique":false,"ecaille_efficacite":0,"resistance_magique":0,"rapide":false,"deuxmains":false,"unemain":true,"initpremierround":"masse"},"ownership":{"default":0,"Q4cUvqxCxMoTJXDL":3},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.6.15","coreVersion":"10.291","createdTime":1668808206117,"modifiedTime":1676074487972,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
||||||
{"_id":"vQ494sD9FgFI08kZ","name":"Drap Matelassé","type":"armure","img":"systems/foundryvtt-reve-de-dragon/icons/armes_armures/drap_matelasse.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.equipement.vQ494sD9FgFI08kZ"}},"system":{"description":"<p>Deux épaisseurs de drap surpiquées, avec rembourrage de laine.</p>\n<p>Pourpoint ou cotte de drap matelassé + culottes de drap matelassé + bottes de cuir souple. Le pourpoint est une sorte de veste ; la cotte est une sorte de tunique, lacée sur la poitrine, et descendant jusqu’aux genoux, façon Robin des Bois.</p>\n<p> </p>","descriptionmj":"","equipe":false,"encombrement":0,"quantite":1,"qualite":0,"cout":4,"protection":1,"deterioration":0,"malus":0},"ownership":{"default":0,"rYShh2P1DNavdoBD":3},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.3.13","coreVersion":"10.291","createdTime":1668808206118,"modifiedTime":1671050477136,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
{"_id":"tY3shj5FA8nwMgxX","name":"Vin","type":"nourritureboisson","img":"systems/foundryvtt-reve-de-dragon/icons/liquides/liquide_vin.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Item.QNNWTG5yqQKmcpJ7"}},"system":{"description":"","descriptionmj":"","encombrement":0.1,"quantite":1,"qualite":0,"cout":0.01,"milieu":"","environnement":[{"milieu":"Villages","rarete":"Frequente","frequence":18},{"milieu":"Villes","rarete":"Commune","frequence":54}],"sust":0,"exotisme":0,"cuisinier":"","boisson":true,"desaltere":0.6,"alcoolise":true,"force":-2,"equipe":false},"ownership":{"default":0,"rYShh2P1DNavdoBD":3},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.6.15","coreVersion":"10.291","createdTime":1668808206117,"modifiedTime":1676074487972,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
||||||
{"name":"Épée demi-dragonne","type":"arme","flags":{"core":{"sourceId":"Item.ErwaSLcGryAbYjkm"}},"img":"systems/foundryvtt-reve-de-dragon/icons/armes_armures/demi_dragonne.webp","effects":[],"_id":"vnlRGjt7X6yQRObA","system":{"description":null,"descriptionmj":"","equipe":false,"encombrement":1.5,"quantite":1,"qualite":0,"cout":15,"resistance":10,"categorie_parade":"epees-longues","dommages":"2","penetration":0,"force":"10","competence":"Epée à 1 main","lancer":"","tir":"","portee_courte":0,"portee_moyenne":0,"portee_extreme":0,"magique":false,"ecaille_efficacite":null,"resistance_magique":null,"rapide":true,"deuxmains":false,"unemain":true,"initpremierround":"epeedragonne"},"ownership":{"default":0,"Q4cUvqxCxMoTJXDL":3},"folder":null,"sort":0,"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.3.13","coreVersion":"10.291","createdTime":1668808206118,"modifiedTime":1671050477136,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
{"_id":"tZWQCuRr1ic3S0pL","name":"Souliers","type":"objet","img":"systems/foundryvtt-reve-de-dragon/icons/objets/souliers.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.equipement.tZWQCuRr1ic3S0pL"}},"system":{"description":"","descriptionmj":"","encombrement":0.2,"quantite":1,"qualite":0,"cout":0.8,"milieu":"","environnement":[{"milieu":"Villages","rarete":"Rare","frequence":6},{"milieu":"Villes","rarete":"Frequente","frequence":18}],"equipe":false,"resistance":0},"ownership":{"default":0,"rYShh2P1DNavdoBD":3},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.6.15","coreVersion":"10.291","createdTime":1668808206117,"modifiedTime":1676074487975,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
||||||
{"_id":"wPE64RRcuLlvuPrY","name":"Épée cyane","type":"arme","img":"systems/foundryvtt-reve-de-dragon/icons/armes_armures/epee_cyane.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.equipement.wPE64RRcuLlvuPrY"}},"system":{"description":"<p>Long <em>cimeterre </em>à l’acier bleuté, exclusivement fabriqué par les Cyans ou Hommes bleus.</p>","descriptionmj":"","equipe":false,"encombrement":2,"quantite":1,"qualite":0,"cout":25,"resistance":12,"categorie_parade":"epees-lourdes","dommages":"3","penetration":0,"force":"11","competence":"Epée à 1 main","lancer":"","tir":"","portee_courte":0,"portee_moyenne":0,"portee_extreme":0,"magique":false,"ecaille_efficacite":null,"resistance_magique":null,"rapide":true,"deuxmains":false,"unemain":true,"initpremierround":"epeecyane"},"ownership":{"default":0,"Q4cUvqxCxMoTJXDL":3},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.3.13","coreVersion":"10.291","createdTime":1668808206118,"modifiedTime":1671050477136,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
{"name":"Repas moyen à l'auberge","type":"nourritureboisson","img":"systems/foundryvtt-reve-de-dragon/icons/objets/provision_cuite.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.equipement.tn1kvxEVoLyYODyg"}},"_id":"tn1kvxEVoLyYODyg","system":{"description":"","descriptionmj":"","encombrement":0.3,"quantite":1,"qualite":3,"cout":0.1,"milieu":"","environnement":[{"milieu":"Villages","rarete":"Commune","frequence":54},{"milieu":"Villes","rarete":"Commune","frequence":54}],"sust":3,"exotisme":0,"cuisinier":"","boisson":false,"desaltere":0,"alcoolise":false,"force":0},"ownership":{"default":0,"wYnBx3HmLfGzsj7P":3},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.6.15","coreVersion":"10.291","createdTime":1668808206117,"modifiedTime":1676074487975,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
||||||
{"_id":"wcW5KcideGi8EY67","name":"Gants de cuir","type":"objet","img":"systems/foundryvtt-reve-de-dragon/icons/objets/gants_de_cuir.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.equipement.wcW5KcideGi8EY67"}},"system":{"description":"","descriptionmj":"","encombrement":0.05,"quantite":1,"qualite":0,"cout":1,"equipe":false,"resistance":0},"ownership":{"default":0,"rYShh2P1DNavdoBD":3},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.3.13","coreVersion":"10.291","createdTime":1668808206118,"modifiedTime":1671050477136,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
{"_id":"tswamwK2oKNARhjA","name":"Verre grossissant","type":"objet","img":"systems/foundryvtt-reve-de-dragon/icons/objets/verre_grossissant.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.equipement.tswamwK2oKNARhjA"}},"system":{"description":"","descriptionmj":"","encombrement":0.02,"quantite":1,"qualite":0,"cout":2,"milieu":"","environnement":[{"milieu":"Villages","rarete":"Rarissime","frequence":2},{"milieu":"Villes","rarete":"Rare","frequence":6}],"equipe":false,"resistance":0},"ownership":{"default":0,"rYShh2P1DNavdoBD":3},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.6.15","coreVersion":"10.291","createdTime":1668808206118,"modifiedTime":1676074487975,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
||||||
{"_id":"wpWaqe96x3cvqTXy","name":"Robe de laine","type":"objet","img":"systems/foundryvtt-reve-de-dragon/icons/objets/robe_laine.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.equipement.wpWaqe96x3cvqTXy"}},"system":{"description":"","descriptionmj":"","encombrement":0.2,"quantite":1,"qualite":0,"cout":0.4,"equipe":false,"resistance":0},"ownership":{"default":0,"jOzRscDxoXZWpGS6":3},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.3.13","coreVersion":"10.291","createdTime":1668808206118,"modifiedTime":1671050477136,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
{"_id":"ueBk3MbdEaMbzyPS","name":"Ficelle (10 m)","type":"objet","img":"systems/foundryvtt-reve-de-dragon/icons/objets/ficelle.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.equipement.ueBk3MbdEaMbzyPS"}},"system":{"description":"","descriptionmj":"","encombrement":0.02,"quantite":1,"qualite":0,"cout":0.1,"milieu":"","environnement":[{"milieu":"Villages","rarete":"Frequente","frequence":18},{"milieu":"Villes","rarete":"Frequente","frequence":18}],"equipe":false,"resistance":0},"ownership":{"default":0,"rYShh2P1DNavdoBD":3},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.6.15","coreVersion":"10.291","createdTime":1668808206118,"modifiedTime":1676074487975,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
||||||
{"_id":"x4g6bDu3eUllSSSJ","name":"Eponge de mer","type":"objet","img":"systems/foundryvtt-reve-de-dragon/icons/objets/eponge.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.equipement.x4g6bDu3eUllSSSJ"}},"system":{"description":"","descriptionmj":"","encombrement":0.04,"quantite":1,"qualite":0,"cout":1,"equipe":false,"resistance":0},"ownership":{"default":0,"rYShh2P1DNavdoBD":3},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.3.13","coreVersion":"10.291","createdTime":1668808206118,"modifiedTime":1671050477136,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
{"_id":"ueJnUMLK1vpL8xOB","name":"Stylet de bronze","type":"objet","img":"systems/foundryvtt-reve-de-dragon/icons/objets/stylet_de_bronze.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.equipement.ueJnUMLK1vpL8xOB"}},"system":{"description":"","descriptionmj":"","encombrement":0.02,"quantite":1,"qualite":0,"cout":0.12,"milieu":"","environnement":[{"milieu":"Villages","rarete":"Frequente","frequence":18},{"milieu":"Villes","rarete":"Rare","frequence":6}],"equipe":false,"resistance":0},"ownership":{"default":0,"rYShh2P1DNavdoBD":3},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.6.15","coreVersion":"10.291","createdTime":1668808206118,"modifiedTime":1676074487975,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
||||||
{"_id":"xfdeDEyMK8YtBpzC","name":"Huile 20 cl (4 heures)","type":"objet","img":"systems/foundryvtt-reve-de-dragon/icons/objets/huile.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.equipement.xfdeDEyMK8YtBpzC"}},"system":{"description":"","descriptionmj":"","encombrement":0.1,"quantite":1,"qualite":0,"cout":0.04,"equipe":false,"resistance":0},"ownership":{"default":0,"rYShh2P1DNavdoBD":3},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.3.13","coreVersion":"10.291","createdTime":1668808206119,"modifiedTime":1671050477136,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
{"_id":"uwwunMSrJoUYTDkG","name":"Seau de bois ferré (10 litres)","type":"conteneur","img":"systems/foundryvtt-reve-de-dragon/icons/objets/seau_ferre.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.equipement.uwwunMSrJoUYTDkG"}},"system":{"description":"","descriptionmj":"","encombrement":1,"quantite":1,"qualite":0,"cout":0.2,"milieu":"","environnement":[{"milieu":"Villages","rarete":"Frequente","frequence":18},{"milieu":"Villes","rarete":"Frequente","frequence":18}],"contenu":[],"capacite":5,"equipe":false},"ownership":{"default":0,"rYShh2P1DNavdoBD":3},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.6.15","coreVersion":"10.291","createdTime":1668808206118,"modifiedTime":1676074487975,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
||||||
{"_id":"xuk60njqtrSZusSX","name":"Chemise de laine","type":"objet","img":"systems/foundryvtt-reve-de-dragon/icons/objets/chemise_laine.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.equipement.xuk60njqtrSZusSX"}},"system":{"description":"","descriptionmj":"","encombrement":0.1,"quantite":1,"qualite":0,"cout":0.2,"equipe":false,"resistance":0},"ownership":{"default":0,"jOzRscDxoXZWpGS6":3},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.3.13","coreVersion":"10.291","createdTime":1668808206119,"modifiedTime":1671050477136,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
{"_id":"vQ494sD9FgFI08kZ","name":"Drap Matelassé","type":"armure","img":"systems/foundryvtt-reve-de-dragon/icons/armes_armures/drap_matelasse.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.equipement.vQ494sD9FgFI08kZ"}},"system":{"description":"<p>Deux épaisseurs de drap surpiquées, avec rembourrage de laine.</p>\n<p>Pourpoint ou cotte de drap matelassé + culottes de drap matelassé + bottes de cuir souple. Le pourpoint est une sorte de veste ; la cotte est une sorte de tunique, lacée sur la poitrine, et descendant jusqu’aux genoux, façon Robin des Bois.</p>\n<p> </p>","descriptionmj":"","equipe":false,"encombrement":0,"quantite":1,"qualite":0,"cout":4,"milieu":"","environnement":[{"milieu":"Villages","rarete":"Frequente","frequence":18},{"milieu":"Villes","rarete":"Commune","frequence":54}],"protection":"1","deterioration":0,"malus":0},"ownership":{"default":0,"rYShh2P1DNavdoBD":3},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.6.15","coreVersion":"10.291","createdTime":1668808206118,"modifiedTime":1676074487975,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
||||||
{"_id":"yILNvELKbsz2OOln","name":"Ecritoire","type":"objet","img":"systems/foundryvtt-reve-de-dragon/icons/objets/ecritoire.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.equipement.yILNvELKbsz2OOln"}},"system":{"description":"","descriptionmj":"","encombrement":1,"quantite":1,"qualite":0,"cout":1,"equipe":false,"resistance":0},"ownership":{"default":0,"rYShh2P1DNavdoBD":3},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.3.13","coreVersion":"10.291","createdTime":1668808206179,"modifiedTime":1671050477136,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
{"name":"Épée demi-dragonne","type":"arme","flags":{"core":{"sourceId":"Item.ErwaSLcGryAbYjkm"}},"img":"systems/foundryvtt-reve-de-dragon/icons/armes_armures/demi_dragonne.webp","effects":[],"_id":"vnlRGjt7X6yQRObA","system":{"description":null,"descriptionmj":"","equipe":false,"encombrement":1.5,"quantite":1,"qualite":0,"cout":15,"milieu":"","environnement":[{"milieu":"Villages","rarete":"Rare","frequence":6},{"milieu":"Villes","rarete":"Frequente","frequence":18}],"resistance":10,"categorie_parade":"epees-longues","dommages":"2","penetration":0,"force":"10","competence":"Epée à 1 main","lancer":"","tir":"","portee_courte":0,"portee_moyenne":0,"portee_extreme":0,"magique":false,"ecaille_efficacite":null,"resistance_magique":null,"rapide":true,"deuxmains":false,"unemain":true,"initpremierround":"epeedragonne"},"ownership":{"default":0,"Q4cUvqxCxMoTJXDL":3},"folder":null,"sort":0,"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.6.15","coreVersion":"10.291","createdTime":1668808206118,"modifiedTime":1676074487975,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
||||||
{"_id":"yO9Vx7tqF8qbZoYw","name":"Besace de cuir","type":"conteneur","img":"systems/foundryvtt-reve-de-dragon/icons/objets/besace.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.equipement.yO9Vx7tqF8qbZoYw"}},"system":{"description":"","descriptionmj":"","encombrement":0.2,"quantite":1,"qualite":0,"cout":0.5,"contenu":[],"capacite":10,"equipe":false},"ownership":{"default":0,"rYShh2P1DNavdoBD":3},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.3.13","coreVersion":"10.291","createdTime":1668808206179,"modifiedTime":1671050477136,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
{"_id":"wPE64RRcuLlvuPrY","name":"Épée cyane","type":"arme","img":"systems/foundryvtt-reve-de-dragon/icons/armes_armures/epee_cyane.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.equipement.wPE64RRcuLlvuPrY"}},"system":{"description":"<p>Long <em>cimeterre </em>à l’acier bleuté, exclusivement fabriqué par les Cyans ou Hommes bleus.</p>","descriptionmj":"","equipe":false,"encombrement":2,"quantite":1,"qualite":0,"cout":25,"milieu":"","environnement":[{"milieu":"Villages","rarete":"Rarissime","frequence":2},{"milieu":"Villes","rarete":"Rare","frequence":6}],"resistance":12,"categorie_parade":"epees-lourdes","dommages":"3","penetration":0,"force":"11","competence":"Epée à 1 main","lancer":"","tir":"","portee_courte":0,"portee_moyenne":0,"portee_extreme":0,"magique":false,"ecaille_efficacite":null,"resistance_magique":null,"rapide":true,"deuxmains":false,"unemain":true,"initpremierround":"epeecyane"},"ownership":{"default":0,"Q4cUvqxCxMoTJXDL":3},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.6.15","coreVersion":"10.291","createdTime":1668808206118,"modifiedTime":1676074487975,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
||||||
{"_id":"zQWlnUsd8bPySujd","name":"Aiguille à coudre","type":"objet","img":"systems/foundryvtt-reve-de-dragon/icons/objets/aiguille.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.equipement.zQWlnUsd8bPySujd"}},"system":{"description":"","descriptionmj":"","encombrement":0.01,"quantite":1,"qualite":0,"cout":0.1,"equipe":false,"resistance":0},"ownership":{"default":0,"rYShh2P1DNavdoBD":3},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.3.13","coreVersion":"10.291","createdTime":1668808206179,"modifiedTime":1671050477136,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
{"_id":"wcW5KcideGi8EY67","name":"Gants de cuir","type":"objet","img":"systems/foundryvtt-reve-de-dragon/icons/objets/gants_de_cuir.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.equipement.wcW5KcideGi8EY67"}},"system":{"description":"","descriptionmj":"","encombrement":0.05,"quantite":1,"qualite":0,"cout":1,"milieu":"","environnement":[{"milieu":"Villages","rarete":"Rare","frequence":6},{"milieu":"Villes","rarete":"Frequente","frequence":18}],"equipe":false,"resistance":0},"ownership":{"default":0,"rYShh2P1DNavdoBD":3},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.6.15","coreVersion":"10.291","createdTime":1668808206118,"modifiedTime":1676074487975,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
||||||
{"_id":"zYI8mDiysWtmsSyy","name":"Carquois","type":"conteneur","flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.equipement.zYI8mDiysWtmsSyy"}},"img":"systems/foundryvtt-reve-de-dragon/icons/objets/carquois.webp","effects":[],"system":{"description":"","descriptionmj":"","encombrement":0.1,"quantite":1,"qualite":0,"cout":0.5,"contenu":[],"capacite":2,"equipe":false},"ownership":{"default":0,"jOzRscDxoXZWpGS6":3},"folder":null,"sort":0,"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.3.13","coreVersion":"10.291","createdTime":1668808206179,"modifiedTime":1671050477136,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
{"_id":"wpWaqe96x3cvqTXy","name":"Robe de laine","type":"objet","img":"systems/foundryvtt-reve-de-dragon/icons/objets/robe_laine.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.equipement.wpWaqe96x3cvqTXy"}},"system":{"description":"","descriptionmj":"","encombrement":0.2,"quantite":1,"qualite":0,"cout":0.4,"milieu":"","environnement":[{"milieu":"Villages","rarete":"Frequente","frequence":18},{"milieu":"Villes","rarete":"Frequente","frequence":18}],"equipe":false,"resistance":0},"ownership":{"default":0,"jOzRscDxoXZWpGS6":3},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.6.15","coreVersion":"10.291","createdTime":1668808206118,"modifiedTime":1676074487975,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
||||||
{"_id":"zlDa1vwmls6Uf4pt","name":"Bourse de cuir","type":"conteneur","img":"systems/foundryvtt-reve-de-dragon/icons/objets/bourse.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.equipement.zlDa1vwmls6Uf4pt"}},"system":{"description":"","descriptionmj":"","encombrement":0.01,"quantite":1,"qualite":0,"cout":0.1,"contenu":[],"capacite":0.5,"equipe":false},"ownership":{"default":0,"rYShh2P1DNavdoBD":3},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.3.13","coreVersion":"10.291","createdTime":1668808206179,"modifiedTime":1671050477136,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
{"name":"Herbe à pipe","type":"herbe","img":"systems/foundryvtt-reve-de-dragon/icons/botanique/Endorlotte.webp","system":{"description":"","descriptionmj":"","encombrement":0,"quantite":1,"qualite":0.01,"cout":0.01,"milieu":"","environnement":[],"sust":0,"exotisme":0,"niveau":0,"base":0,"categorie":"Autre"},"effects":[],"flags":{"core":{"sourceId":"Item.wxmHkhTTzPNepN4d"}},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.6.15","coreVersion":"10.291","createdTime":1676073283027,"modifiedTime":1676074352883,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"},"_id":"wxmHkhTTzPNepN4d","folder":null,"sort":0,"ownership":{"default":0,"Hp9ImM4o9YRTSdfu":3}}
|
||||||
|
{"_id":"x4g6bDu3eUllSSSJ","name":"Eponge de mer","type":"objet","img":"systems/foundryvtt-reve-de-dragon/icons/objets/eponge.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.equipement.x4g6bDu3eUllSSSJ"}},"system":{"description":"","descriptionmj":"","encombrement":0.04,"quantite":1,"qualite":0,"cout":1,"milieu":"","environnement":[{"milieu":"Maritimes","rarete":"Rare","frequence":6},{"milieu":"Villages","rarete":"Rarissime","frequence":2},{"milieu":"Villes","rarete":"Rare","frequence":6}],"equipe":false,"resistance":0},"ownership":{"default":0,"rYShh2P1DNavdoBD":3},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.6.15","coreVersion":"10.291","createdTime":1668808206118,"modifiedTime":1676074487975,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
||||||
|
{"_id":"xfdeDEyMK8YtBpzC","name":"Huile 20 cl (4 heures)","type":"objet","img":"systems/foundryvtt-reve-de-dragon/icons/objets/huile.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.equipement.xfdeDEyMK8YtBpzC"}},"system":{"description":"","descriptionmj":"","encombrement":0.1,"quantite":1,"qualite":0,"cout":0.04,"milieu":"","environnement":[{"milieu":"Villages","rarete":"Frequente","frequence":18},{"milieu":"Villes","rarete":"Frequente","frequence":18}],"equipe":false,"resistance":0},"ownership":{"default":0,"rYShh2P1DNavdoBD":3},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.6.15","coreVersion":"10.291","createdTime":1668808206119,"modifiedTime":1676074487975,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
||||||
|
{"_id":"xuk60njqtrSZusSX","name":"Chemise de laine","type":"objet","img":"systems/foundryvtt-reve-de-dragon/icons/objets/chemise_laine.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.equipement.xuk60njqtrSZusSX"}},"system":{"description":"","descriptionmj":"","encombrement":0.1,"quantite":1,"qualite":0,"cout":0.2,"milieu":"","environnement":[{"milieu":"Villages","rarete":"Commune","frequence":54},{"milieu":"Villes","rarete":"Commune","frequence":54}],"equipe":false,"resistance":0},"ownership":{"default":0,"jOzRscDxoXZWpGS6":3},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.6.15","coreVersion":"10.291","createdTime":1668808206119,"modifiedTime":1676074487975,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
||||||
|
{"_id":"yILNvELKbsz2OOln","name":"Ecritoire","type":"objet","img":"systems/foundryvtt-reve-de-dragon/icons/objets/ecritoire.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.equipement.yILNvELKbsz2OOln"}},"system":{"description":"","descriptionmj":"","encombrement":1,"quantite":1,"qualite":0,"cout":1,"milieu":"","environnement":[{"milieu":"Villages","rarete":"Rare","frequence":6},{"milieu":"Villes","rarete":"Frequente","frequence":18}],"equipe":false,"resistance":0},"ownership":{"default":0,"rYShh2P1DNavdoBD":3},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.6.15","coreVersion":"10.291","createdTime":1668808206179,"modifiedTime":1676074487975,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
||||||
|
{"_id":"yO9Vx7tqF8qbZoYw","name":"Besace de cuir","type":"conteneur","img":"systems/foundryvtt-reve-de-dragon/icons/objets/besace.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.equipement.yO9Vx7tqF8qbZoYw"}},"system":{"description":"","descriptionmj":"","encombrement":0.2,"quantite":1,"qualite":0,"cout":0.5,"milieu":"","environnement":[{"milieu":"Villages","rarete":"Commune","frequence":54},{"milieu":"Villes","rarete":"Frequente","frequence":18}],"contenu":[],"capacite":10,"equipe":false},"ownership":{"default":0,"rYShh2P1DNavdoBD":3},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.6.15","coreVersion":"10.291","createdTime":1668808206179,"modifiedTime":1676074487975,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
||||||
|
{"_id":"zQWlnUsd8bPySujd","name":"Aiguille à coudre","type":"objet","img":"systems/foundryvtt-reve-de-dragon/icons/objets/aiguille.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.equipement.zQWlnUsd8bPySujd"}},"system":{"description":"","descriptionmj":"","encombrement":0.01,"quantite":1,"qualite":0,"cout":0.1,"milieu":"","environnement":[{"milieu":"Villages","rarete":"Frequente","frequence":18},{"milieu":"Villes","rarete":"Frequente","frequence":18}],"equipe":false,"resistance":0},"ownership":{"default":0,"rYShh2P1DNavdoBD":3},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.6.15","coreVersion":"10.291","createdTime":1668808206179,"modifiedTime":1676074487976,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
||||||
|
{"_id":"zYI8mDiysWtmsSyy","name":"Carquois","type":"conteneur","flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.equipement.zYI8mDiysWtmsSyy"}},"img":"systems/foundryvtt-reve-de-dragon/icons/objets/carquois.webp","effects":[],"system":{"description":"","descriptionmj":"","encombrement":0.1,"quantite":1,"qualite":0,"cout":0.5,"milieu":"","environnement":[{"milieu":"Villages","rarete":"Frequente","frequence":18},{"milieu":"Villes","rarete":"Frequente","frequence":18}],"contenu":[],"capacite":2,"equipe":false},"ownership":{"default":0,"jOzRscDxoXZWpGS6":3},"folder":null,"sort":0,"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.6.15","coreVersion":"10.291","createdTime":1668808206179,"modifiedTime":1676074487976,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
||||||
|
{"_id":"zlDa1vwmls6Uf4pt","name":"Bourse de cuir","type":"conteneur","img":"systems/foundryvtt-reve-de-dragon/icons/objets/bourse.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.equipement.zlDa1vwmls6Uf4pt"}},"system":{"description":"","descriptionmj":"","encombrement":0.01,"quantite":1,"qualite":0,"cout":0.1,"milieu":"","environnement":[{"milieu":"Villages","rarete":"Frequente","frequence":18},{"milieu":"Villes","rarete":"Commune","frequence":54}],"contenu":[],"capacite":0.5,"equipe":false},"ownership":{"default":0,"rYShh2P1DNavdoBD":3},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.6.15","coreVersion":"10.291","createdTime":1668808206179,"modifiedTime":1676074487976,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
||||||
|
|||||||
@@ -1,119 +1,127 @@
|
|||||||
{"name":"Floume","type":"ingredient","flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.faune-flore-mineraux.0EA5It28VyLzQE6n"}},"img":"systems/foundryvtt-reve-de-dragon/icons/botanique/Floume.webp","effects":[],"_id":"0EA5It28VyLzQE6n","system":{"description":"<p>Fruit du floumier, sorte de poirier pleureur vivant dans les lieux très humides, au bord des rivières ou dans les marais. La floume a l’aspect d’une poire jaune pâle à la chair ferme, grumeleuse et rose. Son goût est âcre et amer, et son pouvoir nutritif encore plus faible que celui des clopinettes. Il existe heureusement une larve parasite, appelée <em>ver du floumier</em> ou plus simplement <em>floumette</em>. Ce ver ronge la floume de l’intérieur et la dévore entièrement, ne laissant à la place de la chair qu’un excrément brunâtre, sorte de gelée poisseuse. Cette pommade est en revanche hautement nutritive, bien que son goût soit parmi les plus ignobles. Jouer VOLONTÉ à -3, et en cas d’échec, recracher tellement c’est mauvais. Une floume bien floumée, c’est à-dire bien véreuse, vaut en moyenne 3 points de sustentation.</p>\n<p>Fréquente.</p>","descriptionmj":"","encombrement":0.05,"quantite":1,"qualite":0,"cout":0,"milieu":"Lieux humides","environnement":[{"milieu":"Cours d'eau","rarete":"Frequente","frequence":18},{"milieu":"Marais","rarete":"Frequente","frequence":18}],"sust":0,"exotisme":0,"niveau":0,"base":0,"categorie":"Cuisine","rarete":"Frequente"},"ownership":{"default":0,"rYShh2P1DNavdoBD":3},"folder":null,"sort":0,"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.3.9","coreVersion":"10.291","createdTime":1669734708516,"modifiedTime":1670621588439,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
{"name":"Floume","type":"plante","flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.faune-flore-mineraux.0EA5It28VyLzQE6n"}},"img":"systems/foundryvtt-reve-de-dragon/icons/botanique/Floume.webp","effects":[],"_id":"0EA5It28VyLzQE6n","system":{"description":"<p>Fruit du floumier, sorte de poirier pleureur vivant dans les lieux très humides, au bord des rivières ou dans les marais. La floume a l’aspect d’une poire jaune pâle à la chair ferme, grumeleuse et rose. Son goût est âcre et amer, et son pouvoir nutritif encore plus faible que celui des clopinettes. Il existe heureusement une larve parasite, appelée <em>ver du floumier</em> ou plus simplement <em>floumette</em>. Ce ver ronge la floume de l’intérieur et la dévore entièrement, ne laissant à la place de la chair qu’un excrément brunâtre, sorte de gelée poisseuse. Cette pommade est en revanche hautement nutritive, bien que son goût soit parmi les plus ignobles. Jouer VOLONTÉ à -3, et en cas d’échec, recracher tellement c’est mauvais. Une floume bien floumée, c’est à-dire bien véreuse, vaut en moyenne 3 points de sustentation.</p>\n<p>Fréquente.</p>","descriptionmj":"","encombrement":0.1,"quantite":1,"qualite":0,"cout":0,"milieu":"Lieux humides","environnement":[{"milieu":"Cours d'eau","rarete":"Frequente","frequence":18},{"milieu":"Marais","rarete":"Frequente","frequence":18}],"sust":3,"exotisme":-3,"niveau":0,"base":0,"categorie":"Cuisine","rarete":"Frequente"},"ownership":{"default":0,"rYShh2P1DNavdoBD":3},"folder":null,"sort":0,"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.6.0","coreVersion":"10.291","createdTime":1669734708516,"modifiedTime":1673791884647,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
||||||
{"name":"Salsimir à points jaunes","type":"ingredient","flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.faune-flore-mineraux.2IHZslApFfV72VMw"}},"img":"systems/foundryvtt-reve-de-dragon/icons/botanique/Salsimir%20%C3%A0%20points%20jaunes.webp","effects":[],"_id":"2IHZslApFfV72VMw","system":{"description":"<p>Sorte de bolet doté d’un pied blanc et mince, au chapeau arrondi brun à pois jaunes.</p>\n<p>Commun.</p>","descriptionmj":"","encombrement":0.1,"quantite":1,"qualite":0,"cout":0,"milieu":"Lieux sombres et humides","environnement":[{"milieu":"Forêts","rarete":"Commune","frequence":54},{"milieu":"Sous-sols","rarete":"Frequente","frequence":18}],"sust":0,"exotisme":0,"niveau":1,"base":0,"categorie":"Cuisine","rarete":"Commune"},"ownership":{"default":0,"rYShh2P1DNavdoBD":3},"folder":null,"sort":0,"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.3.9","coreVersion":"10.291","createdTime":1669734708516,"modifiedTime":1670621588442,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
{"name":"Salsimir à points jaunes","type":"plante","flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.faune-flore-mineraux.2IHZslApFfV72VMw"}},"img":"systems/foundryvtt-reve-de-dragon/icons/botanique/Salsimir%20%C3%A0%20points%20jaunes.webp","effects":[],"_id":"2IHZslApFfV72VMw","system":{"description":"<p>Sorte de bolet doté d’un pied blanc et mince, au chapeau arrondi brun à pois jaunes.</p>\n<p>Commun.</p>","descriptionmj":"","encombrement":0.1,"quantite":1,"qualite":0,"cout":0,"milieu":"Lieux sombres et humides","environnement":[{"milieu":"Forêts","rarete":"Commune","frequence":54},{"milieu":"Sous-sols","rarete":"Frequente","frequence":18}],"sust":1,"exotisme":0,"niveau":1,"base":0,"categorie":"Cuisine","rarete":"Commune"},"ownership":{"default":0,"rYShh2P1DNavdoBD":3},"folder":null,"sort":0,"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.6.0","coreVersion":"10.291","createdTime":1669734708516,"modifiedTime":1673792118064,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
||||||
{"name":"Sourise","type":"faune","img":"systems/foundryvtt-reve-de-dragon/icons/faune/rongeur.webp","system":{"description":"<p>Sourise. Forêt, plaine, 500 g, 1 sust. La sourise est un petit rongeur gris, à têted’écureuil et à queue de souris.</p>","descriptionmj":"","encombrement":0.5,"quantite":1,"qualite":0,"cout":0,"milieu":"Forêt, plaine","environnement":[{"milieu":"Forêts","rarete":"Commune","frequence":54},{"milieu":"Plaines","rarete":"Commune","frequence":54}],"sust":1,"exotisme":0,"categorie":"","actor":{"id":"VsEw24DEekBbU69Z","pack":"foundryvtt-reve-de-dragon.animaux","name":"Cornicochon"}},"effects":[],"flags":{"core":{"sourceId":"Item.LU5eutNQqwm52oOG"}},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.3.9","coreVersion":"10.291","createdTime":1670580597921,"modifiedTime":1670621588443,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"},"_id":"2e7pAKJsW9SuSZXy","folder":null,"sort":0,"ownership":{"default":0,"jtRmvSuwkwMmIMf0":3}}
|
{"name":"Sourise","type":"faune","img":"systems/foundryvtt-reve-de-dragon/icons/faune/rongeur.webp","system":{"description":"<p>Sourise. Forêt, plaine, 500 g, 1 sust. La sourise est un petit rongeur gris, à têted’écureuil et à queue de souris.</p>","descriptionmj":"","encombrement":0.5,"quantite":1,"qualite":0,"cout":0,"milieu":"Forêt, plaine","environnement":[{"milieu":"Forêts","rarete":"Commune","frequence":54},{"milieu":"Plaines","rarete":"Commune","frequence":54}],"sust":1,"exotisme":0,"categorie":"","actor":{"id":"VsEw24DEekBbU69Z","pack":"foundryvtt-reve-de-dragon.animaux","name":"Cornicochon"}},"effects":[],"flags":{"core":{"sourceId":"Item.LU5eutNQqwm52oOG"}},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.6.0","coreVersion":"10.291","createdTime":1670580597921,"modifiedTime":1673657676885,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"},"_id":"2e7pAKJsW9SuSZXy","folder":null,"sort":0,"ownership":{"default":0,"jtRmvSuwkwMmIMf0":3}}
|
||||||
{"name":"Cancrelas","type":"faune","img":"systems/foundryvtt-reve-de-dragon/icons/faune/cancrelas.webp","system":{"description":"<p>Petit crabe noir à la démarche lente, comme s’il était sous le coup d’une intense fatigue.</p>","descriptionmj":"","encombrement":0.2,"quantite":1,"qualite":0,"cout":0,"milieu":"","environnement":[{"milieu":"Maritimes","rarete":"Frequente","frequence":18}],"sust":1,"exotisme":0,"categorie":"","actor":{"id":"","pack":"","name":""}},"effects":[],"flags":{},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.3.9","coreVersion":"10.291","createdTime":1670616441674,"modifiedTime":1670621588398,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"},"folder":null,"sort":0,"ownership":{"default":0,"Hp9ImM4o9YRTSdfu":3},"_id":"2zVusTyy2k6PDxiW"}
|
{"name":"Cancrelas","type":"faune","img":"systems/foundryvtt-reve-de-dragon/icons/faune/cancrelas.webp","system":{"description":"<p>Petit crabe noir à la démarche lente, comme s’il était sous le coup d’une intense fatigue.</p>","descriptionmj":"","encombrement":0.2,"quantite":1,"qualite":0,"cout":0,"milieu":"","environnement":[{"milieu":"Maritimes","rarete":"Frequente","frequence":18}],"sust":1,"exotisme":0,"categorie":"","actor":{"id":"","pack":"","name":""}},"effects":[],"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.faune-flore-mineraux.2zVusTyy2k6PDxiW"}},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.6.0","coreVersion":"10.291","createdTime":1670616441674,"modifiedTime":1673657676875,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"},"folder":null,"sort":0,"ownership":{"default":0,"Hp9ImM4o9YRTSdfu":3},"_id":"2zVusTyy2k6PDxiW"}
|
||||||
{"name":"Rabier","type":"faune","img":"systems/foundryvtt-reve-de-dragon/icons/faune/lapin.webp","system":{"description":"<p>Rabier. Forêt, plaine, 2 kg, 4 sust. Petit lapinà fourrure très recherchée pour ses nuances roses ou bleues. La plupart des enfants de riches familles jouent avec des rabiers naturalisés, rebaptisés pluches.</p>","descriptionmj":"","encombrement":2,"quantite":1,"qualite":0,"cout":0,"milieu":"Forêt, plaine","environnement":[{"milieu":"Forêts","rarete":"Rare","frequence":6},{"milieu":"Plaines","rarete":"Rare","frequence":6}],"sust":4,"exotisme":0,"categorie":"","actor":{"id":"","pack":"","name":""}},"effects":[],"flags":{"core":{"sourceId":"Item.LU5eutNQqwm52oOG"}},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.3.9","coreVersion":"10.291","createdTime":1670580597921,"modifiedTime":1670621588442,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"},"_id":"33hA6dMd5FO9BO0f","folder":null,"sort":0,"ownership":{"default":0,"jtRmvSuwkwMmIMf0":3}}
|
{"name":"Rabier","type":"faune","img":"systems/foundryvtt-reve-de-dragon/icons/faune/lapin.webp","system":{"description":"<p>Rabier. Forêt, plaine, 2 kg, 4 sust. Petit lapinà fourrure très recherchée pour ses nuances roses ou bleues. La plupart des enfants de riches familles jouent avec des rabiers naturalisés, rebaptisés pluches.</p>","descriptionmj":"","encombrement":2,"quantite":1,"qualite":0,"cout":0,"milieu":"Forêt, plaine","environnement":[{"milieu":"Forêts","rarete":"Rare","frequence":6},{"milieu":"Plaines","rarete":"Rare","frequence":6}],"sust":4,"exotisme":0,"categorie":"","actor":{"id":"","pack":"","name":""}},"effects":[],"flags":{"core":{"sourceId":"Item.LU5eutNQqwm52oOG"}},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.6.0","coreVersion":"10.291","createdTime":1670580597921,"modifiedTime":1673657676884,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"},"_id":"33hA6dMd5FO9BO0f","folder":null,"sort":0,"ownership":{"default":0,"jtRmvSuwkwMmIMf0":3}}
|
||||||
{"name":"Tanemiel d'argent","type":"herbe","flags":{"core":{"sheetClass":"foundryvtt-reve-de-dragon.RdDItemSheet","sourceId":"Compendium.foundryvtt-reve-de-dragon.faune-flore-mineraux.3Idia6bqLgdtiswS"}},"img":"systems/foundryvtt-reve-de-dragon/icons/botanique/Tanemiel%20argent%C3%A9.webp","effects":[],"_id":"3Idia6bqLgdtiswS","system":{"description":"<p><em style=\"box-sizing: border-box; user-select: text;\">Herbe de repos.</em></p>\n<p>Variété de tanemiel aux reflets argentés, poussant comme ses frères en forêts humides et chaudes, et dont l'existence est presque aussi mythique. </p>\n<p>Rarissime.</p>","descriptionmj":"","encombrement":0,"quantite":1,"qualite":0,"cout":0.5,"milieu":"Forêts chaudes et humides","environnement":[{"milieu":"Forêts","rarete":"Rarissime","frequence":4}],"niveau":5,"base":0,"categorie":"Repos","rarete":"Rarissime"},"ownership":{"default":0,"rYShh2P1DNavdoBD":3},"folder":null,"sort":0,"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.3.9","coreVersion":"10.291","createdTime":1669734708516,"modifiedTime":1670621588444,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
{"name":"Tanemiel d'argent","type":"herbe","flags":{"core":{"sheetClass":"foundryvtt-reve-de-dragon.RdDItemSheet","sourceId":"Compendium.foundryvtt-reve-de-dragon.faune-flore-mineraux.3Idia6bqLgdtiswS"}},"img":"systems/foundryvtt-reve-de-dragon/icons/botanique/Tanemiel%20argent%C3%A9.webp","effects":[],"_id":"3Idia6bqLgdtiswS","system":{"description":"<p><em style=\"box-sizing: border-box; user-select: text;\">Herbe de repos.</em></p>\n<p>Variété de tanemiel aux reflets argentés, poussant comme ses frères en forêts humides et chaudes, et dont l'existence est presque aussi mythique. </p>\n<p>Rarissime.</p>","descriptionmj":"","encombrement":0,"quantite":1,"qualite":0,"cout":0.5,"milieu":"Forêts chaudes et humides","environnement":[{"milieu":"Forêts","rarete":"Rarissime","frequence":4}],"sust":0,"exotisme":0,"niveau":5,"base":0,"categorie":"Repos","rarete":"Rarissime"},"ownership":{"default":0,"rYShh2P1DNavdoBD":3},"folder":null,"sort":0,"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.6.0","coreVersion":"10.291","createdTime":1669734708516,"modifiedTime":1673657676886,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
||||||
{"name":"Cheleuse","type":"herbe","flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.faune-flore-mineraux.3PzaM8d7jLjdzdkt"}},"img":"systems/foundryvtt-reve-de-dragon/icons/botanique/Cheleuse.webp","effects":[],"_id":"3PzaM8d7jLjdzdkt","system":{"description":"<p>Fausse menthe à feuilles urticantes.</p>\n<p>M1 \\ P 5 minutes \\ D1 \\ -3 \\ Liqueur de Bagdol +16, Mirobolant +14.</p>\n<p>Fréquente.</p>","descriptionmj":"","encombrement":0,"quantite":1,"qualite":0,"cout":0,"milieu":"Lieux humides","environnement":[{"milieu":"Cours d'eau","rarete":"Frequente","frequence":18},{"milieu":"Marais","rarete":"Frequente","frequence":18},{"milieu":"Sous-sols","rarete":"Frequente","frequence":18}],"niveau":0,"base":0,"categorie":"","rarete":"Frequente"},"ownership":{"default":0,"rYShh2P1DNavdoBD":3},"folder":null,"sort":0,"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.3.9","coreVersion":"10.291","createdTime":1669734708517,"modifiedTime":1670621588437,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
{"name":"Cheleuse","type":"herbe","flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.faune-flore-mineraux.3PzaM8d7jLjdzdkt"}},"img":"systems/foundryvtt-reve-de-dragon/icons/botanique/Cheleuse.webp","effects":[],"_id":"3PzaM8d7jLjdzdkt","system":{"description":"<p>Fausse menthe à feuilles urticantes.</p><p>En cas de contact, voir: @UUID[Compendium.foundryvtt-reve-de-dragon.maladies-et-poisons.tpzD5959gxuIcTir]{Cheleuse}</p><p>Fréquente.</p>","descriptionmj":"","encombrement":0,"quantite":1,"qualite":0,"cout":0,"milieu":"Lieux humides","environnement":[{"milieu":"Cours d'eau","rarete":"Frequente","frequence":18},{"milieu":"Marais","rarete":"Frequente","frequence":18},{"milieu":"Sous-sols","rarete":"Frequente","frequence":18}],"sust":0,"exotisme":0,"niveau":0,"base":0,"categorie":"Toxique","rarete":"Frequente"},"ownership":{"default":0,"rYShh2P1DNavdoBD":3},"folder":null,"sort":0,"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.6.0","coreVersion":"10.291","createdTime":1669734708517,"modifiedTime":1673792344416,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
||||||
{"name":"Champirigolo","type":"ingredient","flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.faune-flore-mineraux.45vMHMwrCFeLZyH8"}},"img":"systems/foundryvtt-reve-de-dragon/icons/botanique/Champirigolo.webp","effects":[],"_id":"45vMHMwrCFeLZyH8","system":{"description":"<p>Le champirigolo est un champignon de bordure de sous-bois, ressemblant à un petit bonhomme caché sous un chapeau conique aplati. Le « visage » du bonhomme, de couleur chair, tavelé, donne souvent l’impression de tirer la langue à qui le regarde. <br />Comestible, il possède toutefois des vertus hallucinogènes, provoquant des crises de fou rire, et, d’une manière générale, faisant trouver de la drôlerie dans tout. <br />En termes de jeu, il augmente l’EMPATHIE au détriment de l’INTELLECT.</p>\n<p>Fréquent.</p>\n<p><em>Cf : p.139</em></p>","descriptionmj":"","encombrement":0.1,"quantite":1,"qualite":0,"cout":0,"milieu":"Lieux sombres et humides","environnement":[{"milieu":"Forêts","rarete":"Frequente","frequence":18},{"milieu":"Sous-sols","rarete":"Rare","frequence":6}],"sust":0,"exotisme":0,"niveau":null,"base":0,"categorie":"Cuisine","rarete":"Frequente"},"ownership":{"default":0,"rYShh2P1DNavdoBD":3},"folder":null,"sort":0,"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.3.9","coreVersion":"10.291","createdTime":1669734708517,"modifiedTime":1670621588437,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
{"name":"Champirigolo","type":"plante","flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.faune-flore-mineraux.45vMHMwrCFeLZyH8"}},"img":"systems/foundryvtt-reve-de-dragon/icons/botanique/Champirigolo.webp","effects":[],"_id":"45vMHMwrCFeLZyH8","system":{"description":"<p>Le champirigolo est un champignon de bordure de sous-bois, ressemblant à un petit bonhomme caché sous un chapeau conique aplati. Le « visage » du bonhomme, de couleur chair, tavelé, donne souvent l’impression de tirer la langue à qui le regarde. <br />Comestible, il possède toutefois des vertus hallucinogènes, provoquant des crises de fou rire, et, d’une manière générale, faisant trouver de la drôlerie dans tout. <br />En termes de jeu, il augmente l’EMPATHIE au détriment de l’INTELLECT.</p>\n<p>Fréquent.</p>\n<p><em>Cf : p.139</em></p>","descriptionmj":"","encombrement":0.1,"quantite":1,"qualite":3,"cout":0,"milieu":"Lieux sombres et humides","environnement":[{"milieu":"Forêts","rarete":"Frequente","frequence":18},{"milieu":"Sous-sols","rarete":"Rare","frequence":6}],"sust":1,"exotisme":0,"niveau":null,"base":0,"categorie":"Cuisine","rarete":"Frequente"},"ownership":{"default":0,"rYShh2P1DNavdoBD":3},"folder":null,"sort":0,"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.6.0","coreVersion":"10.291","createdTime":1669734708517,"modifiedTime":1673791921755,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
||||||
{"name":"Nanar","type":"ingredient","flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.faune-flore-mineraux.4ROad7HKzxuRKXNK"}},"img":"systems/foundryvtt-reve-de-dragon/icons/botanique/Nanar.webp","effects":[],"_id":"4ROad7HKzxuRKXNK","system":{"description":"<p>Champignon assez amusant, avec un pied minuscule et un joli petit chapeau rose.</p>\n<p>M2 \\ P 2 minutes \\ D1 \\ -3 \\ Teinture d’Érozonne +16, Lait de lune +12.</p>\n<p>Commun.</p>","descriptionmj":"","encombrement":0,"quantite":1,"qualite":0,"cout":0,"milieu":"Lieux sombres et humides","environnement":[{"milieu":"Forêts","rarete":"Commune","frequence":54},{"milieu":"Sous-sols","rarete":"Frequente","frequence":18}],"sust":0,"exotisme":0,"niveau":0,"base":0,"categorie":"","rarete":"Commune"},"ownership":{"default":0,"rYShh2P1DNavdoBD":3},"folder":null,"sort":0,"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.3.9","coreVersion":"10.291","createdTime":1669734708517,"modifiedTime":1670621588440,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
{"name":"Nanar","type":"plante","flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.faune-flore-mineraux.4ROad7HKzxuRKXNK"}},"img":"systems/foundryvtt-reve-de-dragon/icons/botanique/Nanar.webp","effects":[],"_id":"4ROad7HKzxuRKXNK","system":{"description":"<p>Champignon assez amusant, avec un pied minuscule et un joli petit chapeau rose.</p><p>Pour l'empoisonnement, voir: @UUID[Compendium.foundryvtt-reve-de-dragon.maladies-et-poisons.4zOQxOMwgAxxd2MV]{Nanar}</p><p>Commun.</p>","descriptionmj":"","encombrement":0,"quantite":1,"qualite":0,"cout":0,"milieu":"Lieux sombres et humides","environnement":[{"milieu":"Forêts","rarete":"Commune","frequence":54},{"milieu":"Sous-sols","rarete":"Frequente","frequence":18}],"sust":0,"exotisme":0,"niveau":0,"base":0,"categorie":"Poison","rarete":"Commune"},"ownership":{"default":0,"rYShh2P1DNavdoBD":3},"folder":null,"sort":0,"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.6.0","coreVersion":"10.291","createdTime":1669734708517,"modifiedTime":1673792052393,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
||||||
{"name":"Fausse suppure","type":"herbe","flags":{"core":{"sheetClass":"foundryvtt-reve-de-dragon.RdDItemSheet","sourceId":"Compendium.foundryvtt-reve-de-dragon.faune-flore-mineraux.57FoMF6mBK2ogX53"}},"img":"systems/foundryvtt-reve-de-dragon/icons/botanique/Fausse%20suppure.webp","effects":[],"_id":"57FoMF6mBK2ogX53","system":{"description":"<p><em>Herbe de soin.</em></p>\n<p>Mousse semblable à la suppure, mais plus sèche, et poussant en tous milieux.</p>\n<p>Commune.</p>\n<p> </p>\n<p><em>Voir Les herbes de soin, p100.</em></p>","descriptionmj":"","encombrement":0,"quantite":1,"qualite":0,"cout":0.02,"milieu":"Tous","environnement":[{"milieu":"Collines","rarete":"Commune","frequence":54},{"milieu":"Cours d'eau","rarete":"Commune","frequence":54},{"milieu":"Déserts","rarete":"Commune","frequence":54},{"milieu":"Forêts","rarete":"Commune","frequence":54},{"milieu":"Marais","rarete":"Commune","frequence":54},{"milieu":"Montagnes","rarete":"Commune","frequence":54},{"milieu":"Plaines","rarete":"Commune","frequence":54}],"niveau":1,"base":0,"categorie":"Soin","rarete":"Commune"},"ownership":{"default":0,"rYShh2P1DNavdoBD":3},"folder":null,"sort":0,"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.3.9","coreVersion":"10.291","createdTime":1669734708517,"modifiedTime":1670621588438,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
{"name":"Fausse suppure","type":"herbe","flags":{"core":{"sheetClass":"foundryvtt-reve-de-dragon.RdDItemSheet","sourceId":"Compendium.foundryvtt-reve-de-dragon.faune-flore-mineraux.57FoMF6mBK2ogX53"}},"img":"systems/foundryvtt-reve-de-dragon/icons/botanique/Fausse%20suppure.webp","effects":[],"_id":"57FoMF6mBK2ogX53","system":{"description":"<p><em>Herbe de soin.</em></p>\n<p>Mousse semblable à la suppure, mais plus sèche, et poussant en tous milieux.</p>\n<p>Commune.</p>\n<p> </p>\n<p><em>Voir Les herbes de soin, p100.</em></p>","descriptionmj":"","encombrement":0,"quantite":1,"qualite":0,"cout":0.02,"milieu":"Tous","environnement":[{"milieu":"Collines","rarete":"Commune","frequence":54},{"milieu":"Cours d'eau","rarete":"Commune","frequence":54},{"milieu":"Déserts","rarete":"Commune","frequence":54},{"milieu":"Forêts","rarete":"Commune","frequence":54},{"milieu":"Marais","rarete":"Commune","frequence":54},{"milieu":"Montagnes","rarete":"Commune","frequence":54},{"milieu":"Plaines","rarete":"Commune","frequence":54}],"sust":0,"exotisme":0,"niveau":1,"base":0,"categorie":"Soin","rarete":"Commune"},"ownership":{"default":0,"rYShh2P1DNavdoBD":3},"folder":null,"sort":0,"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.6.0","coreVersion":"10.291","createdTime":1669734708517,"modifiedTime":1673657676878,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
||||||
{"name":"Grand Coq de Bruyère","type":"faune","img":"systems/foundryvtt-reve-de-dragon/icons/faune/oiseau.webp","system":{"description":"<p>Grand coq de bruyère. Montagne, 4 kg, 12 sust.</p>","descriptionmj":"","encombrement":2,"quantite":1,"qualite":0,"cout":0,"milieu":"Montagnes","environnement":[{"milieu":"Montagnes","rarete":"Rare","frequence":6}],"sust":12,"exotisme":0,"categorie":"","actor":{"id":"","pack":"","name":""}},"effects":[],"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.faune-flore-mineraux.5bNkhPn0SUfTmKZh"}},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.3.9","coreVersion":"10.291","createdTime":1670580597921,"modifiedTime":1670621588445,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"},"_id":"5bNkhPn0SUfTmKZh","folder":null,"sort":0,"ownership":{"default":0,"jtRmvSuwkwMmIMf0":3}}
|
{"name":"Grand Coq de Bruyère","type":"faune","img":"systems/foundryvtt-reve-de-dragon/icons/faune/oiseau.webp","system":{"description":"<p>Grand coq de bruyère. Montagne, 4 kg, 12 sust.</p>","descriptionmj":"","encombrement":2,"quantite":1,"qualite":0,"cout":0,"milieu":"Montagnes","environnement":[{"milieu":"Montagnes","rarete":"Rare","frequence":6}],"sust":12,"exotisme":0,"categorie":"","actor":{"id":"","pack":"","name":""}},"effects":[],"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.faune-flore-mineraux.5bNkhPn0SUfTmKZh"}},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.6.0","coreVersion":"10.291","createdTime":1670580597921,"modifiedTime":1673657676878,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"},"_id":"5bNkhPn0SUfTmKZh","folder":null,"sort":0,"ownership":{"default":0,"jtRmvSuwkwMmIMf0":3}}
|
||||||
{"name":"Lièvre","type":"faune","img":"systems/foundryvtt-reve-de-dragon/icons/faune/lapin.webp","system":{"description":"<p>Lièvre. Plaine, 4 kg, 8 sust.</p>","descriptionmj":"","encombrement":2,"quantite":1,"qualite":0,"cout":0,"milieu":"Plaines","environnement":[{"milieu":"Plaines","rarete":"Frequente","frequence":18}],"sust":8,"exotisme":0,"categorie":"","actor":{"id":"","pack":"","name":""}},"effects":[],"flags":{"core":{"sourceId":"Item.LU5eutNQqwm52oOG"}},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.3.9","coreVersion":"10.291","createdTime":1670580597921,"modifiedTime":1670621588440,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"},"_id":"5rGi4IeFyxQwyOOq","folder":null,"sort":0,"ownership":{"default":0,"jtRmvSuwkwMmIMf0":3}}
|
{"name":"Lièvre","type":"faune","img":"systems/foundryvtt-reve-de-dragon/icons/faune/lapin.webp","system":{"description":"<p>Lièvre. Plaine, 4 kg, 8 sust.</p>","descriptionmj":"","encombrement":2,"quantite":1,"qualite":0,"cout":0,"milieu":"Plaines","environnement":[{"milieu":"Plaines","rarete":"Frequente","frequence":18}],"sust":8,"exotisme":0,"categorie":"","actor":{"id":"","pack":"","name":""}},"effects":[],"flags":{"core":{"sourceId":"Item.LU5eutNQqwm52oOG"}},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.6.0","coreVersion":"10.291","createdTime":1670580597921,"modifiedTime":1673657676879,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"},"_id":"5rGi4IeFyxQwyOOq","folder":null,"sort":0,"ownership":{"default":0,"jtRmvSuwkwMmIMf0":3}}
|
||||||
{"name":"Salsimir ventru","type":"ingredient","flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.faune-flore-mineraux.66Rzf8phcEQRIShv"}},"img":"systems/foundryvtt-reve-de-dragon/icons/botanique/Salsimir%20ventru.webp","effects":[],"_id":"66Rzf8phcEQRIShv","system":{"description":"<p>À points jaunes ou à points rouges, le salsimir ventru se distingue par un pied large et renflé.</p>\n<p>Rare.</p>","descriptionmj":"","encombrement":0.1,"quantite":1,"qualite":0,"cout":0,"milieu":"Lieux sombres et humides","environnement":[{"milieu":"Forêts","rarete":"Rare","frequence":9},{"milieu":"Sous-sols","rarete":"Rarissime","frequence":3}],"sust":0,"exotisme":0,"niveau":4,"base":0,"categorie":"Cuisine","rarete":"Rare"},"ownership":{"default":0,"rYShh2P1DNavdoBD":3},"folder":null,"sort":0,"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.3.9","coreVersion":"10.291","createdTime":1669734708517,"modifiedTime":1670621588442,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
{"name":"Salsimir ventru","type":"plante","flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.faune-flore-mineraux.66Rzf8phcEQRIShv"}},"img":"systems/foundryvtt-reve-de-dragon/icons/botanique/Salsimir%20ventru.webp","effects":[],"_id":"66Rzf8phcEQRIShv","system":{"description":"<p>À points jaunes ou à points rouges, le salsimir ventru se distingue par un pied large et renflé.</p>\n<p>Rare.</p>","descriptionmj":"","encombrement":0.1,"quantite":1,"qualite":4,"cout":0,"milieu":"Lieux sombres et humides","environnement":[{"milieu":"Forêts","rarete":"Rare","frequence":9},{"milieu":"Sous-sols","rarete":"Rarissime","frequence":3}],"sust":1,"exotisme":0,"niveau":4,"base":0,"categorie":"Cuisine","rarete":"Rare"},"ownership":{"default":0,"rYShh2P1DNavdoBD":3},"folder":null,"sort":0,"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.6.0","coreVersion":"10.291","createdTime":1669734708517,"modifiedTime":1673792106248,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
||||||
{"name":"Sautille","type":"faune","img":"systems/foundryvtt-reve-de-dragon/icons/faune/oiseau.webp","system":{"description":"<p>Sautille. Rivage, 1 kg, 2 sust. Petit échassier voisin de la grue qui, au lieu de marcher tranquillement, passe son temps àsautiller sur ses longues pattes.</p>","descriptionmj":"","encombrement":0.5,"quantite":1,"qualite":0,"cout":0,"milieu":"Rivage","environnement":[{"milieu":"Cours d'eau","rarete":"Frequente","frequence":18}],"sust":2,"exotisme":0,"categorie":"","actor":{"id":"","pack":"","name":""}},"effects":[],"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.faune-flore-mineraux.6bvChVkjsy5tsa4d"}},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.3.9","coreVersion":"10.291","createdTime":1670580597921,"modifiedTime":1670621588445,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"},"_id":"6bvChVkjsy5tsa4d","folder":null,"sort":0,"ownership":{"default":0,"jtRmvSuwkwMmIMf0":3}}
|
{"name":"Sautille","type":"faune","img":"systems/foundryvtt-reve-de-dragon/icons/faune/oiseau.webp","system":{"description":"<p>Sautille. Rivage, 1 kg, 2 sust. Petit échassier voisin de la grue qui, au lieu de marcher tranquillement, passe son temps àsautiller sur ses longues pattes.</p>","descriptionmj":"","encombrement":0.5,"quantite":1,"qualite":0,"cout":0,"milieu":"Rivage","environnement":[{"milieu":"Cours d'eau","rarete":"Frequente","frequence":18}],"sust":2,"exotisme":0,"categorie":"","actor":{"id":"","pack":"","name":""}},"effects":[],"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.faune-flore-mineraux.6bvChVkjsy5tsa4d"}},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.6.0","coreVersion":"10.291","createdTime":1670580597921,"modifiedTime":1673657676885,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"},"_id":"6bvChVkjsy5tsa4d","folder":null,"sort":0,"ownership":{"default":0,"jtRmvSuwkwMmIMf0":3}}
|
||||||
{"name":"Tricolet","type":"ingredient","flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.faune-flore-mineraux.6gb2cjdPXI44ym8D"}},"img":"systems/foundryvtt-reve-de-dragon/icons/botanique/Tricollet.webp","effects":[],"_id":"6gb2cjdPXI44ym8D","system":{"description":"<p>Champignon à pied blanc, triple volve, et large chapeau vert à points bleus.</p>\n<p>Rare.</p>","descriptionmj":"","encombrement":0.1,"quantite":1,"qualite":0,"cout":0,"milieu":"Lieux sombres et humides","environnement":[{"milieu":"Forêts","rarete":"Rare","frequence":6},{"milieu":"Sous-sols","rarete":"Rarissime","frequence":3}],"sust":0,"exotisme":0,"niveau":4,"base":0,"categorie":"Cuisine","rarete":"Rare"},"ownership":{"default":0,"rYShh2P1DNavdoBD":3},"folder":null,"sort":0,"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.3.9","coreVersion":"10.291","createdTime":1669734708518,"modifiedTime":1670621588445,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
{"name":"Tricolet","type":"plante","flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.faune-flore-mineraux.6gb2cjdPXI44ym8D"}},"img":"systems/foundryvtt-reve-de-dragon/icons/botanique/Tricollet.webp","effects":[],"_id":"6gb2cjdPXI44ym8D","system":{"description":"<p>Champignon à pied blanc, triple volve, et large chapeau vert à points bleus.</p>\n<p>Rare.</p>","descriptionmj":"","encombrement":0.1,"quantite":1,"qualite":4,"cout":0,"milieu":"Lieux sombres et humides","environnement":[{"milieu":"Forêts","rarete":"Rare","frequence":6},{"milieu":"Sous-sols","rarete":"Rarissime","frequence":3}],"sust":1,"exotisme":0,"niveau":4,"base":0,"categorie":"Cuisine","rarete":"Rare"},"ownership":{"default":0,"rYShh2P1DNavdoBD":3},"folder":null,"sort":0,"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.6.0","coreVersion":"10.291","createdTime":1669734708518,"modifiedTime":1673792147727,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
||||||
{"name":"Lapin","type":"faune","img":"systems/foundryvtt-reve-de-dragon/icons/faune/lapin.webp","system":{"description":"<p>Lapin. Forêt, plaine, 2 kg, 5 sust.</p>","descriptionmj":"","encombrement":1,"quantite":1,"qualite":0,"cout":0,"milieu":"Forets, Plaines","environnement":[{"milieu":"Forêts","rarete":"Commune","frequence":54},{"milieu":"Plaines","rarete":"Commune","frequence":54}],"sust":5,"exotisme":0,"categorie":"","actor":{"id":"","pack":"","name":""}},"effects":[],"flags":{"core":{"sourceId":"Item.LU5eutNQqwm52oOG"}},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.3.9","coreVersion":"10.291","createdTime":1670580597921,"modifiedTime":1670621588440,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"},"_id":"6pDi7Pew5FZ3Ca1I","folder":null,"sort":0,"ownership":{"default":0,"jtRmvSuwkwMmIMf0":3}}
|
{"name":"Lapin","type":"faune","img":"systems/foundryvtt-reve-de-dragon/icons/faune/lapin.webp","system":{"description":"<p>Lapin. Forêt, plaine, 2 kg, 5 sust.</p>","descriptionmj":"","encombrement":1,"quantite":1,"qualite":0,"cout":0,"milieu":"Forets, Plaines","environnement":[{"milieu":"Forêts","rarete":"Commune","frequence":54},{"milieu":"Plaines","rarete":"Commune","frequence":54}],"sust":5,"exotisme":0,"categorie":"","actor":{"id":"","pack":"","name":""}},"effects":[],"flags":{"core":{"sourceId":"Item.LU5eutNQqwm52oOG"}},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.6.0","coreVersion":"10.291","createdTime":1670580597921,"modifiedTime":1673657676879,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"},"_id":"6pDi7Pew5FZ3Ca1I","folder":null,"sort":0,"ownership":{"default":0,"jtRmvSuwkwMmIMf0":3}}
|
||||||
{"name":"Salsimir à points verts","type":"ingredient","flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.faune-flore-mineraux.7IV2V4ZotDEP2sLs"}},"img":"systems/foundryvtt-reve-de-dragon/icons/botanique/Salsimir%20%C3%A0%20points%20verts.webp","effects":[],"_id":"7IV2V4ZotDEP2sLs","system":{"description":"<p>Champignon semblable aux autres variétés de salsimir, hormis la couleur de ses points.</p>\n<p>M1 \\ P 5 minutes \\ D1 \\ -5 \\ Lait de lune +14, Gelée royale +12.</p>\n<p>Rare.</p>","descriptionmj":"","encombrement":0.1,"quantite":1,"qualite":0,"cout":0,"milieu":"Lieux sombres et humides","environnement":[{"milieu":"Forêts","rarete":"Rare","frequence":9},{"milieu":"Sous-sols","rarete":"Rarissime","frequence":3}],"sust":0,"exotisme":0,"niveau":null,"base":0,"categorie":"","rarete":"Rare"},"ownership":{"default":0,"rYShh2P1DNavdoBD":3},"folder":null,"sort":0,"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.3.9","coreVersion":"10.291","createdTime":1669734708518,"modifiedTime":1670621588442,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
{"name":"Salsimir à points verts","type":"plante","flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.faune-flore-mineraux.7IV2V4ZotDEP2sLs"}},"img":"systems/foundryvtt-reve-de-dragon/icons/botanique/Salsimir%20%C3%A0%20points%20verts.webp","effects":[],"_id":"7IV2V4ZotDEP2sLs","system":{"description":"<p>Champignon semblable aux autres variétés de salsimir, hormis la couleur de ses points.</p><p>Pour l'empoisonnement, voir: @UUID[Compendium.foundryvtt-reve-de-dragon.maladies-et-poisons.Rx2nQjwaCa5s38Tm]{Salsimir à points verts}</p><p>Rare.</p>","descriptionmj":"","encombrement":0.1,"quantite":1,"qualite":0,"cout":0,"milieu":"Lieux sombres et humides","environnement":[{"milieu":"Forêts","rarete":"Rare","frequence":9},{"milieu":"Sous-sols","rarete":"Rarissime","frequence":3}],"sust":0,"exotisme":0,"niveau":null,"base":0,"categorie":"Poison","rarete":"Rare"},"ownership":{"default":0,"rYShh2P1DNavdoBD":3},"folder":null,"sort":0,"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.6.0","coreVersion":"10.291","createdTime":1669734708518,"modifiedTime":1673792134571,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
||||||
{"name":"Tanemiel doré","type":"herbe","flags":{"core":{"sheetClass":"foundryvtt-reve-de-dragon.RdDItemSheet","sourceId":"Compendium.foundryvtt-reve-de-dragon.faune-flore-mineraux.7RgTRB47YPH74BwF"}},"img":"systems/foundryvtt-reve-de-dragon/icons/botanique/Tanemiel%20dor%C3%A9.webp","effects":[],"_id":"7RgTRB47YPH74BwF","system":{"description":"<p><em>Herbe de soin.</em></p>\n<p>Variété de tanemiel aux feuilles luisantes de couleur ambrée.</p>\n<p>Rarissime.</p>\n<p> </p>\n<p><em>Voir Les herbes de soin, p100.</em></p>","descriptionmj":"","encombrement":0,"quantite":1,"qualite":0,"cout":2,"milieu":"Forêts chaudes et humides","environnement":[{"milieu":"Forêts","rarete":"Rarissime","frequence":2}],"niveau":10,"base":0,"categorie":"Soin","rarete":"Rarissime"},"ownership":{"default":0,"rYShh2P1DNavdoBD":3},"folder":null,"sort":0,"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.3.9","coreVersion":"10.291","createdTime":1669734708518,"modifiedTime":1670621588444,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
{"name":"Tanemiel doré","type":"herbe","flags":{"core":{"sheetClass":"foundryvtt-reve-de-dragon.RdDItemSheet","sourceId":"Compendium.foundryvtt-reve-de-dragon.faune-flore-mineraux.7RgTRB47YPH74BwF"}},"img":"systems/foundryvtt-reve-de-dragon/icons/botanique/Tanemiel%20dor%C3%A9.webp","effects":[],"_id":"7RgTRB47YPH74BwF","system":{"description":"<p><em>Herbe de soin.</em></p>\n<p>Variété de tanemiel aux feuilles luisantes de couleur ambrée.</p>\n<p>Rarissime.</p>\n<p> </p>\n<p><em>Voir Les herbes de soin, p100.</em></p>","descriptionmj":"","encombrement":0,"quantite":1,"qualite":0,"cout":2,"milieu":"Forêts chaudes et humides","environnement":[{"milieu":"Forêts","rarete":"Rarissime","frequence":2}],"sust":0,"exotisme":0,"niveau":10,"base":0,"categorie":"Soin","rarete":"Rarissime"},"ownership":{"default":0,"rYShh2P1DNavdoBD":3},"folder":null,"sort":0,"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.6.0","coreVersion":"10.291","createdTime":1669734708518,"modifiedTime":1673657676886,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
||||||
{"name":"Bousille","type":"ingredient","flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.faune-flore-mineraux.84i33KtUxLwCK2Uu"}},"img":"systems/foundryvtt-reve-de-dragon/icons/botanique/Bousille.webp","effects":[],"_id":"84i33KtUxLwCK2Uu","system":{"description":"<p>Appétissant champignon brun beige très semblable à la morille.</p>\n<p>M5 \\ P 6 rounds \\ D3 \\ -4 \\ Teinture d’Érozonne +10, Topazoïne +6.</p>\n<p>Fréquente.</p>","descriptionmj":"","encombrement":0,"quantite":1,"qualite":0,"cout":0,"milieu":"Lieux sombres et humides","environnement":[{"milieu":"Forêts","rarete":"Frequente","frequence":18},{"milieu":"Sous-sols","rarete":"Rare","frequence":6}],"sust":0,"exotisme":0,"niveau":0,"base":0,"categorie":"","rarete":"Frequente"},"ownership":{"default":0,"rYShh2P1DNavdoBD":3},"folder":null,"sort":0,"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.3.9","coreVersion":"10.291","createdTime":1669734708519,"modifiedTime":1670621588437,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
{"name":"Saumuche","type":"faune","img":"systems/foundryvtt-reve-de-dragon/icons/faune/saumon.webp","system":{"description":"<p>Salmonidé de la taille d’une truite de couleur bleue. Non seulement ses écailles sont bleutées, mais également sa chair, bleu pastel, avec des arêtes turquoise. Son goût est d’une $nesse incomparable. Généralement servie <em>au bleu</em>.</p>","descriptionmj":"","encombrement":0.2,"quantite":1,"qualite":4,"cout":0.06,"milieu":"","environnement":[{"milieu":"Cours d'eau","rarete":"Frequente","frequence":18}],"sust":2,"exotisme":0,"categorie":"","actor":{"id":"","pack":"","name":""}},"effects":[],"flags":{},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.5.4","coreVersion":"10.291","createdTime":1673656080829,"modifiedTime":1673656874816,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"},"_id":"80mxjQOIPK26FHtt","folder":null,"sort":0,"ownership":{"default":0,"Hp9ImM4o9YRTSdfu":3}}
|
||||||
{"name":"Plumard","type":"faune","img":"systems/foundryvtt-reve-de-dragon/icons/faune/oie.webp","system":{"description":"<p>Plumard. Plaine, forêt, 3 kg, 7 sust. Le plumard est un gros oiseau voisin du faisan, au plumage multicolore et rutilant comme celui d’un perroquet. Sa chair est particulièrement savoureuse et ses plumes fort recherchées pour orner les chapeaux.</p>","descriptionmj":"","encombrement":1.5,"quantite":1,"qualite":0,"cout":0,"milieu":"Plaine, Foret","environnement":[{"milieu":"Forêts","rarete":"Frequente","frequence":23},{"milieu":"Plaines","rarete":"Frequente","frequence":24}],"sust":7,"exotisme":0,"categorie":"","actor":{"id":"","pack":"","name":""}},"effects":[],"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.faune-flore-mineraux.8BVcgy3mLXirlPpm"}},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.3.9","coreVersion":"10.291","createdTime":1670580597921,"modifiedTime":1670621588445,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"},"_id":"8BVcgy3mLXirlPpm","folder":null,"sort":0,"ownership":{"default":0,"jtRmvSuwkwMmIMf0":3}}
|
{"name":"Bousille","type":"plante","flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.faune-flore-mineraux.84i33KtUxLwCK2Uu"}},"img":"systems/foundryvtt-reve-de-dragon/icons/botanique/Bousille.webp","effects":[],"_id":"84i33KtUxLwCK2Uu","system":{"description":"<p>Appétissant champignon brun beige très semblable à la morille.</p><p>Pour l'empoisonnement, voir: @UUID[Compendium.foundryvtt-reve-de-dragon.maladies-et-poisons.qE4IEazgBeRs4uE0]{Bousille}</p><p>Fréquente.</p>","descriptionmj":"","encombrement":0,"quantite":1,"qualite":0,"cout":0,"milieu":"Lieux sombres et humides","environnement":[{"milieu":"Forêts","rarete":"Frequente","frequence":18},{"milieu":"Sous-sols","rarete":"Rare","frequence":6}],"sust":0,"exotisme":0,"niveau":0,"base":0,"categorie":"Poison","rarete":"Frequente"},"ownership":{"default":0,"rYShh2P1DNavdoBD":3},"folder":null,"sort":0,"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.6.0","coreVersion":"10.291","createdTime":1669734708519,"modifiedTime":1673791325896,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
||||||
{"name":"Veloute","type":"ingredient","flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.faune-flore-mineraux.8MO2HBua7RUdGN3D"}},"img":"systems/foundryvtt-reve-de-dragon/icons/botanique/Veloute.webp","effects":[],"_id":"8MO2HBua7RUdGN3D","system":{"description":"<p>Fruit du veloutier, petit arbre pleureur au tronc recouvert d’un lichen duveteux gris rose, poussant usuellement au bord de l’eau, la veloute est une petite pêche très velue, juteuse et douce, au goût panaché de litchi et de fraise des bois.</p>\n<p>Fréquente.</p>","descriptionmj":"","encombrement":0.05,"quantite":1,"qualite":0,"cout":0,"milieu":"Lieux humides","environnement":[{"milieu":"Cours d'eau","rarete":"Frequente","frequence":18},{"milieu":"Marais","rarete":"Frequente","frequence":18}],"sust":0,"exotisme":0,"niveau":0,"base":0,"categorie":"Cuisine","rarete":"Rare"},"ownership":{"default":0,"rYShh2P1DNavdoBD":3},"folder":null,"sort":0,"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.3.9","coreVersion":"10.291","createdTime":1669734708519,"modifiedTime":1670621588445,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
{"name":"Plumard","type":"faune","img":"systems/foundryvtt-reve-de-dragon/icons/faune/oie.webp","system":{"description":"<p>Plumard. Plaine, forêt, 3 kg, 7 sust. Le plumard est un gros oiseau voisin du faisan, au plumage multicolore et rutilant comme celui d’un perroquet. Sa chair est particulièrement savoureuse et ses plumes fort recherchées pour orner les chapeaux.</p>","descriptionmj":"","encombrement":1.5,"quantite":1,"qualite":0,"cout":0,"milieu":"Plaine, Foret","environnement":[{"milieu":"Forêts","rarete":"Frequente","frequence":23},{"milieu":"Plaines","rarete":"Frequente","frequence":24}],"sust":7,"exotisme":0,"categorie":"","actor":{"id":"","pack":"","name":""}},"effects":[],"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.faune-flore-mineraux.8BVcgy3mLXirlPpm"}},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.6.0","coreVersion":"10.291","createdTime":1670580597921,"modifiedTime":1673657676883,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"},"_id":"8BVcgy3mLXirlPpm","folder":null,"sort":0,"ownership":{"default":0,"jtRmvSuwkwMmIMf0":3}}
|
||||||
{"name":"Enervure","type":"herbe","flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.faune-flore-mineraux.8QFBVNJMEsANaYaq"}},"img":"systems/foundryvtt-reve-de-dragon/icons/botanique/%C3%89nervure.webp","effects":[],"_id":"8QFBVNJMEsANaYaq","system":{"description":"<p>Fausse fougère aux feuilles tranchantes comme des rasoirs, distillant un venin mortel.</p>\n<p>M3 \\ P 1 minute \\ D2 \\ -3 \\ Tournegraisse +14, Mirobolant +10.</p>\n<p>Fréquente.</p>","descriptionmj":"","encombrement":0,"quantite":1,"qualite":0,"cout":0,"milieu":"Forêts","environnement":[{"milieu":"Forêts","rarete":"Frequente","frequence":18}],"niveau":0,"base":0,"categorie":"","rarete":"Frequente"},"ownership":{"default":0,"rYShh2P1DNavdoBD":3},"folder":null,"sort":0,"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.3.9","coreVersion":"10.291","createdTime":1669734708519,"modifiedTime":1670621588438,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
{"name":"Veloute","type":"plante","flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.faune-flore-mineraux.8MO2HBua7RUdGN3D"}},"img":"systems/foundryvtt-reve-de-dragon/icons/botanique/Veloute.webp","effects":[],"_id":"8MO2HBua7RUdGN3D","system":{"description":"<p>Fruit du veloutier, petit arbre pleureur au tronc recouvert d’un lichen duveteux gris rose, poussant usuellement au bord de l’eau, la veloute est une petite pêche très velue, juteuse et douce, au goût panaché de litchi et de fraise des bois.</p>\n<p>Fréquente.</p>","descriptionmj":"","encombrement":0.05,"quantite":1,"qualite":0,"cout":0,"milieu":"Lieux humides","environnement":[{"milieu":"Cours d'eau","rarete":"Frequente","frequence":18},{"milieu":"Marais","rarete":"Frequente","frequence":18}],"sust":0.5,"exotisme":0,"niveau":0,"base":0,"categorie":"Cuisine","rarete":"Rare"},"ownership":{"default":0,"rYShh2P1DNavdoBD":3},"folder":null,"sort":0,"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.6.0","coreVersion":"10.291","createdTime":1669734708519,"modifiedTime":1673792178439,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
||||||
{"name":"Lulube","type":"ingredient","flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.faune-flore-mineraux.8a2EJVdhdU7CXFCn"}},"img":"systems/foundryvtt-reve-de-dragon/icons/botanique/Lulube.webp","effects":[],"_id":"8a2EJVdhdU7CXFCn","system":{"description":"<p>Fruit du lulubier, arbre de la taille d’un cerisier, la lulube est un petit fruit rouge dont le goût est un panaché de cerise et de citron.</p>\n<p>Fréquente.</p>","descriptionmj":"","encombrement":0.05,"quantite":1,"qualite":0,"cout":0,"milieu":"Tous","environnement":[{"milieu":"Collines","rarete":"Frequente","frequence":18},{"milieu":"Cours d'eau","rarete":"Frequente","frequence":18},{"milieu":"Déserts","rarete":"Frequente","frequence":18},{"milieu":"Forêts","rarete":"Frequente","frequence":18},{"milieu":"Marais","rarete":"Frequente","frequence":18},{"milieu":"Montagnes","rarete":"Frequente","frequence":18},{"milieu":"Plaines","rarete":"Frequente","frequence":18}],"sust":0,"exotisme":0,"niveau":0,"base":0,"categorie":"Cuisine","rarete":"Frequente"},"ownership":{"default":0,"rYShh2P1DNavdoBD":3},"folder":null,"sort":0,"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.3.9","coreVersion":"10.291","createdTime":1669734708519,"modifiedTime":1670621588440,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
{"name":"Enervure","type":"herbe","flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.faune-flore-mineraux.8QFBVNJMEsANaYaq"}},"img":"systems/foundryvtt-reve-de-dragon/icons/botanique/%C3%89nervure.webp","effects":[],"_id":"8QFBVNJMEsANaYaq","system":{"description":"<p>Fausse fougère aux feuilles tranchantes comme des rasoirs, distillant un venin mortel.</p><p>En cas de contact, voir: @UUID[Compendium.foundryvtt-reve-de-dragon.maladies-et-poisons.SlfTPRdCC9t3o9ai]{Énervure}</p><p>Fréquente.</p>","descriptionmj":"","encombrement":0,"quantite":1,"qualite":0,"cout":0,"milieu":"Forêts","environnement":[{"milieu":"Forêts","rarete":"Frequente","frequence":18}],"sust":0,"exotisme":0,"niveau":0,"base":0,"categorie":"Toxique","rarete":"Frequente"},"ownership":{"default":0,"rYShh2P1DNavdoBD":3},"folder":null,"sort":0,"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.6.0","coreVersion":"10.291","createdTime":1669734708519,"modifiedTime":1673792331864,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
||||||
{"name":"Suppure","type":"herbe","flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.faune-flore-mineraux.9XJEICURxX1qVud6"}},"img":"systems/foundryvtt-reve-de-dragon/icons/botanique/Suppure.webp","effects":[],"_id":"9XJEICURxX1qVud6","system":{"description":"<p><em>Herbe de soin.</em></p>\n<p>Sorte de mousse d’aspect maladif, s’accrochant aux vieux troncs et aux rochers des forêts, d’où elle semble <em>suppurer</em>.</p>\n<p>Commune.</p>\n<p> </p>\n<p><em>Voir Les herbes de soin, p100.</em></p>","descriptionmj":"","encombrement":0,"quantite":1,"qualite":0,"cout":0.03,"milieu":"Forêts","environnement":[{"milieu":"Forêts","rarete":"Commune","frequence":54}],"niveau":2,"base":0,"categorie":"Soin","rarete":"Commune"},"ownership":{"default":0,"rYShh2P1DNavdoBD":3},"folder":null,"sort":0,"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.3.9","coreVersion":"10.291","createdTime":1669734708519,"modifiedTime":1670621588443,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
{"name":"Lulube","type":"plante","flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.faune-flore-mineraux.8a2EJVdhdU7CXFCn"}},"img":"systems/foundryvtt-reve-de-dragon/icons/botanique/Lulube.webp","effects":[],"_id":"8a2EJVdhdU7CXFCn","system":{"description":"<p>Fruit du lulubier, arbre de la taille d’un cerisier, la lulube est un petit fruit rouge dont le goût est un panaché de cerise et de citron.</p>\n<p>Fréquente.</p>","descriptionmj":"","encombrement":0.05,"quantite":1,"qualite":0,"cout":0,"milieu":"Tous","environnement":[{"milieu":"Collines","rarete":"Frequente","frequence":18},{"milieu":"Cours d'eau","rarete":"Frequente","frequence":18},{"milieu":"Déserts","rarete":"Frequente","frequence":18},{"milieu":"Forêts","rarete":"Frequente","frequence":18},{"milieu":"Marais","rarete":"Frequente","frequence":18},{"milieu":"Montagnes","rarete":"Frequente","frequence":18},{"milieu":"Plaines","rarete":"Frequente","frequence":18}],"sust":0.5,"exotisme":0,"niveau":0,"base":0,"categorie":"Cuisine","rarete":"Frequente"},"ownership":{"default":0,"rYShh2P1DNavdoBD":3},"folder":null,"sort":0,"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.6.0","coreVersion":"10.291","createdTime":1669734708519,"modifiedTime":1673792017030,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
||||||
{"name":"Salsimir à points rouges","type":"ingredient","flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.faune-flore-mineraux.9pTMw1dFbVaN2iiF"}},"img":"systems/foundryvtt-reve-de-dragon/icons/botanique/Salsimir%20%C3%A0%20points%20rouges.webp","effects":[],"_id":"9pTMw1dFbVaN2iiF","system":{"description":"<p>Autre variété de salsimir, au teint plus clair et tacheté de points rouges. Fréquent.</p>","descriptionmj":"","encombrement":0.1,"quantite":1,"qualite":0,"cout":0,"milieu":"Lieux sombres et humides","environnement":[{"milieu":"Forêts","rarete":"Frequente","frequence":18},{"milieu":"Sous-sols","rarete":"Rare","frequence":6}],"sust":0,"exotisme":0,"niveau":2,"base":0,"categorie":"Cuisine","rarete":"Frequente"},"ownership":{"default":0,"rYShh2P1DNavdoBD":3},"folder":null,"sort":0,"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.3.9","coreVersion":"10.291","createdTime":1669734708520,"modifiedTime":1670621588442,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
{"name":"Suppure","type":"herbe","flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.faune-flore-mineraux.9XJEICURxX1qVud6"}},"img":"systems/foundryvtt-reve-de-dragon/icons/botanique/Suppure.webp","effects":[],"_id":"9XJEICURxX1qVud6","system":{"description":"<p><em>Herbe de soin.</em></p>\n<p>Sorte de mousse d’aspect maladif, s’accrochant aux vieux troncs et aux rochers des forêts, d’où elle semble <em>suppurer</em>.</p>\n<p>Commune.</p>\n<p> </p>\n<p><em>Voir Les herbes de soin, p100.</em></p>","descriptionmj":"","encombrement":0,"quantite":1,"qualite":0,"cout":0.03,"milieu":"Forêts","environnement":[{"milieu":"Forêts","rarete":"Commune","frequence":54}],"sust":0,"exotisme":0,"niveau":2,"base":0,"categorie":"Soin","rarete":"Commune"},"ownership":{"default":0,"rYShh2P1DNavdoBD":3},"folder":null,"sort":0,"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.6.0","coreVersion":"10.291","createdTime":1669734708519,"modifiedTime":1673657676885,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
||||||
{"name":"Hécatombe","type":"ingredient","flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.faune-flore-mineraux.9tG4XPzyvjrSAj3o"}},"img":"systems/foundryvtt-reve-de-dragon/icons/botanique/H%C3%A9catombe.webp","effects":[],"_id":"9tG4XPzyvjrSAj3o","system":{"description":"<p>Petite poire rouge à peau lustrée, au goût acidulé et pas désagréable.</p>\n<p>M4 \\ P 1 minute \\ D2 \\ -5 \\ Bitume de Camphre +12, Mirobolant +6.</p>\n<p>Rare.</p>","descriptionmj":"","encombrement":0.05,"quantite":1,"qualite":0,"cout":0,"milieu":"Tous","environnement":[{"milieu":"Collines","rarete":"Rare","frequence":6},{"milieu":"Cours d'eau","rarete":"Rare","frequence":6},{"milieu":"Déserts","rarete":"Frequente","frequence":18},{"milieu":"Forêts","rarete":"Rare","frequence":6},{"milieu":"Marais","rarete":"Rare","frequence":6},{"milieu":"Montagnes","rarete":"Frequente","frequence":18},{"milieu":"Plaines","rarete":"Rare","frequence":6}],"sust":0,"exotisme":0,"niveau":null,"base":0,"categorie":"","rarete":"Rare"},"ownership":{"default":0,"rYShh2P1DNavdoBD":3},"folder":null,"sort":0,"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.3.9","coreVersion":"10.291","createdTime":1669734708520,"modifiedTime":1670621588439,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
{"name":"Salsimir à points rouges","type":"plante","flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.faune-flore-mineraux.9pTMw1dFbVaN2iiF"}},"img":"systems/foundryvtt-reve-de-dragon/icons/botanique/Salsimir%20%C3%A0%20points%20rouges.webp","effects":[],"_id":"9pTMw1dFbVaN2iiF","system":{"description":"<p>Autre variété de salsimir, au teint plus clair et tacheté de points rouges. Fréquent.</p>","descriptionmj":"","encombrement":0.1,"quantite":1,"qualite":2,"cout":0,"milieu":"Lieux sombres et humides","environnement":[{"milieu":"Forêts","rarete":"Frequente","frequence":18},{"milieu":"Sous-sols","rarete":"Rare","frequence":6}],"sust":1,"exotisme":0,"niveau":2,"base":0,"categorie":"Cuisine","rarete":"Frequente"},"ownership":{"default":0,"rYShh2P1DNavdoBD":3},"folder":null,"sort":0,"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.6.0","coreVersion":"10.291","createdTime":1669734708520,"modifiedTime":1673792128732,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
||||||
{"name":"Colimace","type":"faune","img":"systems/foundryvtt-reve-de-dragon/icons/faune/colimace.webp","system":{"description":"<p><span class=\"fontstyle0\">Bel escargot des jardins et autres lieux arrosés. La colimace vit généralement en couple, à deux individus dans la même coquille. Faire dégorger longuement dans la salnise avant de consommer, en soupe, omelette ou fricassée. </span></p>","descriptionmj":"","encombrement":0.01,"quantite":1,"qualite":0,"cout":0,"milieu":"Jardins et lieux arrosés","environnement":[{"milieu":"Forêts","rarete":"Commune","frequence":54},{"milieu":"Marais","rarete":"Frequente","frequence":18},{"milieu":"Plaines","rarete":"Commune","frequence":54}],"sust":0.1,"exotisme":0,"categorie":"","actor":{"id":"","pack":"","name":""}},"effects":[],"flags":{},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.3.9","coreVersion":"10.291","createdTime":1670616816817,"modifiedTime":1670621588398,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"},"folder":null,"sort":0,"ownership":{"default":0,"Hp9ImM4o9YRTSdfu":3},"_id":"AK1LrrCkcJr2sP4g"}
|
{"name":"Hécatombe","type":"plante","flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.faune-flore-mineraux.9tG4XPzyvjrSAj3o"}},"img":"systems/foundryvtt-reve-de-dragon/icons/botanique/H%C3%A9catombe.webp","effects":[],"_id":"9tG4XPzyvjrSAj3o","system":{"description":"<p>Petite poire rouge à peau lustrée, au goût acidulé et pas désagréable.</p><p>Pour l'empoisonnement, voir: @UUID[Compendium.foundryvtt-reve-de-dragon.maladies-et-poisons.sSgu1FYK1s1vZinT]{Hécatombe}</p><p>Rare.</p>","descriptionmj":"","encombrement":0.05,"quantite":1,"qualite":0,"cout":0,"milieu":"Tous","environnement":[{"milieu":"Collines","rarete":"Rare","frequence":6},{"milieu":"Cours d'eau","rarete":"Rare","frequence":6},{"milieu":"Déserts","rarete":"Frequente","frequence":18},{"milieu":"Forêts","rarete":"Rare","frequence":6},{"milieu":"Marais","rarete":"Rare","frequence":6},{"milieu":"Montagnes","rarete":"Frequente","frequence":18},{"milieu":"Plaines","rarete":"Rare","frequence":6}],"sust":0,"exotisme":0,"niveau":null,"base":0,"categorie":"Poison","rarete":"Rare"},"ownership":{"default":0,"rYShh2P1DNavdoBD":3},"folder":null,"sort":0,"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.6.0","coreVersion":"10.291","createdTime":1669734708520,"modifiedTime":1673792002111,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
||||||
{"name":"Fesse de groin","type":"ingredient","flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.faune-flore-mineraux.ALwHAF15KYWUQfQc"}},"img":"systems/foundryvtt-reve-de-dragon/icons/botanique/Fesse%20de%20groin.webp","effects":[],"_id":"ALwHAF15KYWUQfQc","system":{"description":"<p>Poussant à même le sol, sans quasiment de pied, c’est un champignon fendu verticalement, évoquant un gros derrière pustuleux. Quand on le bouscule, il émet un bruit incongru, accompagné d’une odeur pénible.</p>\n<p>M3 \\ P 1 minute \\ D1 \\ -3 \\ Bitume de Camphre +16, Élixir des Gnomes +12.</p>\n<p>Commune.</p>","descriptionmj":"","encombrement":0,"quantite":1,"qualite":0,"cout":0,"milieu":"Lieux sombres et humides","environnement":[{"milieu":"Forêts","rarete":"Frequente","frequence":18},{"milieu":"Sous-sols","rarete":"Rare","frequence":6}],"sust":0,"exotisme":0,"niveau":0,"base":0,"categorie":"","rarete":"Commune"},"ownership":{"default":0,"rYShh2P1DNavdoBD":3},"folder":null,"sort":0,"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.3.9","coreVersion":"10.291","createdTime":1669734708520,"modifiedTime":1670621588438,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
{"name":"Colimace","type":"faune","img":"systems/foundryvtt-reve-de-dragon/icons/faune/colimace.webp","system":{"description":"<p><span class=\"fontstyle0\">Bel escargot des jardins et autres lieux arrosés. La colimace vit généralement en couple, à deux individus dans la même coquille. Faire dégorger longuement dans la salnise avant de consommer, en soupe, omelette ou fricassée. </span></p>","descriptionmj":"","encombrement":0.01,"quantite":1,"qualite":0,"cout":0,"milieu":"Jardins et lieux arrosés","environnement":[{"milieu":"Forêts","rarete":"Commune","frequence":54},{"milieu":"Marais","rarete":"Frequente","frequence":18},{"milieu":"Plaines","rarete":"Commune","frequence":54}],"sust":0.1,"exotisme":0,"categorie":"","actor":{"id":"","pack":"","name":""}},"effects":[],"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.faune-flore-mineraux.AK1LrrCkcJr2sP4g"}},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.6.0","coreVersion":"10.291","createdTime":1670616816817,"modifiedTime":1673657676876,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"},"folder":null,"sort":0,"ownership":{"default":0,"Hp9ImM4o9YRTSdfu":3},"_id":"AK1LrrCkcJr2sP4g"}
|
||||||
{"name":"Perdrix","type":"faune","img":"systems/foundryvtt-reve-de-dragon/icons/faune/oiseau.webp","system":{"description":"<p>Perdrix. Plaine, 500 g, 1 sust.</p>","descriptionmj":"","encombrement":0.2,"quantite":1,"qualite":0,"cout":0,"milieu":"Plaines","environnement":[{"milieu":"Plaines","rarete":"Frequente","frequence":18}],"sust":1,"exotisme":0,"categorie":"","actor":{"id":"","pack":"","name":""}},"effects":[],"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.faune-flore-mineraux.AfqIPuLffHuyNpLc"}},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.3.9","coreVersion":"10.291","createdTime":1670580597921,"modifiedTime":1670621588445,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"},"_id":"AfqIPuLffHuyNpLc","folder":null,"sort":0,"ownership":{"default":0,"jtRmvSuwkwMmIMf0":3}}
|
{"name":"Fesse de groin","type":"plante","flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.faune-flore-mineraux.ALwHAF15KYWUQfQc"}},"img":"systems/foundryvtt-reve-de-dragon/icons/botanique/Fesse%20de%20groin.webp","effects":[],"_id":"ALwHAF15KYWUQfQc","system":{"description":"<p>Poussant à même le sol, sans quasiment de pied, c’est un champignon fendu verticalement, évoquant un gros derrière pustuleux. Quand on le bouscule, il émet un bruit incongru, accompagné d’une odeur pénible.</p><p>Pour l'empoisonnement, voir: @UUID[Compendium.foundryvtt-reve-de-dragon.maladies-et-poisons.LkDe57PbpOIshhMI]{Fesse de groin}</p><p>Commune.</p>","descriptionmj":"","encombrement":0,"quantite":1,"qualite":0,"cout":0,"milieu":"Lieux sombres et humides","environnement":[{"milieu":"Forêts","rarete":"Frequente","frequence":18},{"milieu":"Sous-sols","rarete":"Rare","frequence":6}],"sust":0,"exotisme":0,"niveau":0,"base":0,"categorie":"Poison","rarete":"Commune"},"ownership":{"default":0,"rYShh2P1DNavdoBD":3},"folder":null,"sort":0,"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.6.0","coreVersion":"10.291","createdTime":1669734708520,"modifiedTime":1673791809407,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
||||||
{"name":"Pougne","type":"faune","img":"systems/foundryvtt-reve-de-dragon/icons/faune/oie.webp","system":{"description":"<p>Pougne. Rivage, 2 kg, 5 sust. Grosse poule d’eau à pattes palmées, de couleur blanche. Imaginez un cygne avec un cou et une tête de poulet.</p>","descriptionmj":"","encombrement":1,"quantite":1,"qualite":0,"cout":0,"milieu":"Rivages","environnement":[{"milieu":"Cours d'eau","rarete":"Frequente","frequence":18}],"sust":5,"exotisme":0,"categorie":"","actor":{"id":"","pack":"","name":""}},"effects":[],"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.faune-flore-mineraux.BW5QK5kQPJxKdteQ"}},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.3.9","coreVersion":"10.291","createdTime":1670580597921,"modifiedTime":1670621588445,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"},"_id":"BW5QK5kQPJxKdteQ","folder":null,"sort":0,"ownership":{"default":0,"jtRmvSuwkwMmIMf0":3}}
|
{"name":"Perdrix","type":"faune","img":"systems/foundryvtt-reve-de-dragon/icons/faune/oiseau.webp","system":{"description":"<p>Perdrix. Plaine, 500 g, 1 sust.</p>","descriptionmj":"","encombrement":0.2,"quantite":1,"qualite":0,"cout":0,"milieu":"Plaines","environnement":[{"milieu":"Plaines","rarete":"Frequente","frequence":18}],"sust":1,"exotisme":0,"categorie":"","actor":{"id":"","pack":"","name":""}},"effects":[],"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.faune-flore-mineraux.AfqIPuLffHuyNpLc"}},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.6.0","coreVersion":"10.291","createdTime":1670580597921,"modifiedTime":1673657676883,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"},"_id":"AfqIPuLffHuyNpLc","folder":null,"sort":0,"ownership":{"default":0,"jtRmvSuwkwMmIMf0":3}}
|
||||||
{"name":"Padongre","type":"faune","img":"systems/foundryvtt-reve-de-dragon/icons/faune/padongre.webp","system":{"description":"<p>Padongre. Forêt clairsemée, 150 kg, 350 sust. Petit éléphant de la taille d’un sanglier(voir Cuisine, p343).</p>","descriptionmj":"","encombrement":75,"quantite":1,"qualite":0,"cout":0,"milieu":"Forêt clairsemée","environnement":[{"milieu":"Forêts","rarete":"Rare","frequence":6}],"sust":350,"exotisme":0,"categorie":"","actor":{"id":"","pack":"","name":""}},"effects":[],"flags":{"core":{"sourceId":"Item.LU5eutNQqwm52oOG"}},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.3.9","coreVersion":"10.291","createdTime":1670580597921,"modifiedTime":1670621588442,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"},"_id":"Dgy1oyD2ykWF56N5","folder":null,"sort":0,"ownership":{"default":0,"jtRmvSuwkwMmIMf0":3}}
|
{"name":"Pougne","type":"faune","img":"systems/foundryvtt-reve-de-dragon/icons/faune/oie.webp","system":{"description":"<p>Pougne. Rivage, 2 kg, 5 sust. Grosse poule d’eau à pattes palmées, de couleur blanche. Imaginez un cygne avec un cou et une tête de poulet.</p>","descriptionmj":"","encombrement":1,"quantite":1,"qualite":0,"cout":0,"milieu":"Rivages","environnement":[{"milieu":"Cours d'eau","rarete":"Frequente","frequence":18}],"sust":5,"exotisme":0,"categorie":"","actor":{"id":"","pack":"","name":""}},"effects":[],"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.faune-flore-mineraux.BW5QK5kQPJxKdteQ"}},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.6.0","coreVersion":"10.291","createdTime":1670580597921,"modifiedTime":1673657676883,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"},"_id":"BW5QK5kQPJxKdteQ","folder":null,"sort":0,"ownership":{"default":0,"jtRmvSuwkwMmIMf0":3}}
|
||||||
{"name":"Chevreuil","type":"faune","img":"systems/foundryvtt-reve-de-dragon/icons/faune/chamois.webp","system":{"description":"<p>Chevreuil. Forêt, 25 kg, 60 sust.</p>","descriptionmj":"","encombrement":12,"quantite":1,"qualite":0,"cout":0,"milieu":"Colline, Montagne","environnement":[{"milieu":"Collines","rarete":"Frequente","frequence":18},{"milieu":"Montagnes","rarete":"Frequente","frequence":18}],"sust":60,"exotisme":0,"categorie":"","actor":{"id":"","pack":"","name":""}},"effects":[],"flags":{"core":{"sourceId":"Item.LU5eutNQqwm52oOG"}},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.3.9","coreVersion":"10.291","createdTime":1670580597921,"modifiedTime":1670621588437,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"},"_id":"DgzFoqASP4ALDEqJ","folder":null,"sort":0,"ownership":{"default":0,"jtRmvSuwkwMmIMf0":3}}
|
{"name":"Padongre","type":"faune","img":"systems/foundryvtt-reve-de-dragon/icons/faune/padongre.webp","system":{"description":"<p>Padongre. Forêt clairsemée, 150 kg, 350 sust. Petit éléphant de la taille d’un sanglier(voir Cuisine, p343).</p>","descriptionmj":"","encombrement":75,"quantite":1,"qualite":0,"cout":0,"milieu":"Forêt clairsemée","environnement":[{"milieu":"Forêts","rarete":"Rare","frequence":6}],"sust":350,"exotisme":0,"categorie":"","actor":{"id":"","pack":"","name":""}},"effects":[],"flags":{"core":{"sourceId":"Item.LU5eutNQqwm52oOG"}},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.6.0","coreVersion":"10.291","createdTime":1670580597921,"modifiedTime":1673657676883,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"},"_id":"Dgy1oyD2ykWF56N5","folder":null,"sort":0,"ownership":{"default":0,"jtRmvSuwkwMmIMf0":3}}
|
||||||
{"name":"Ours","type":"faune","img":"systems/foundryvtt-reve-de-dragon/icons/faune/ours.webp","system":{"description":"<p>Ours. Forêt, montagne, 300 kg, 600 sust.Surtout recherché pour sa peau (voir legrizzal, p405).</p>","descriptionmj":"","encombrement":150,"quantite":1,"qualite":0,"cout":0,"milieu":"Forêt, montagne","environnement":[{"milieu":"Forêts","rarete":"Rare","frequence":6},{"milieu":"Montagnes","rarete":"Rare","frequence":6}],"sust":600,"exotisme":0,"categorie":"","actor":{"id":"OWuf2ryyCtipWnpE","pack":"foundryvtt-reve-de-dragon.animaux","name":"Grizzal"}},"effects":[],"flags":{"core":{"sourceId":"Item.LU5eutNQqwm52oOG"}},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.3.9","coreVersion":"10.291","createdTime":1670580597921,"modifiedTime":1670621588442,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"},"_id":"E59KBe57YIoAc8qV","folder":null,"sort":0,"ownership":{"default":0,"jtRmvSuwkwMmIMf0":3}}
|
{"name":"Chevreuil","type":"faune","img":"systems/foundryvtt-reve-de-dragon/icons/faune/chamois.webp","system":{"description":"<p>Chevreuil. Forêt, 25 kg, 60 sust.</p>","descriptionmj":"","encombrement":12,"quantite":1,"qualite":0,"cout":0,"milieu":"Colline, Montagne","environnement":[{"milieu":"Collines","rarete":"Frequente","frequence":18},{"milieu":"Montagnes","rarete":"Frequente","frequence":18}],"sust":60,"exotisme":0,"categorie":"","actor":{"id":"","pack":"","name":""}},"effects":[],"flags":{"core":{"sourceId":"Item.LU5eutNQqwm52oOG"}},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.6.0","coreVersion":"10.291","createdTime":1670580597921,"modifiedTime":1673657676876,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"},"_id":"DgzFoqASP4ALDEqJ","folder":null,"sort":0,"ownership":{"default":0,"jtRmvSuwkwMmIMf0":3}}
|
||||||
{"name":"Asper violet","type":"ingredient","flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.faune-flore-mineraux.EYy9B0xJ0IGWYEuh"}},"img":"systems/foundryvtt-reve-de-dragon/icons/botanique/Asper%20violet.webp","effects":[],"_id":"EYy9B0xJ0IGWYEuh","system":{"description":"<p>Champignon violet à pied filiforme et chapeau pointu très éfilé.</p>\n<p>Fréquent.</p>","descriptionmj":"","encombrement":0.1,"quantite":1,"qualite":0,"cout":0,"milieu":"Lieux sombres et humides","environnement":[{"milieu":"Forêts","rarete":"Frequente","frequence":18},{"milieu":"Sous-sols","rarete":"Rare","frequence":6}],"sust":0,"exotisme":0,"niveau":2,"base":0,"categorie":"Cuisine","rarete":"Frequente"},"ownership":{"default":0,"rYShh2P1DNavdoBD":3},"folder":null,"sort":0,"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.3.9","coreVersion":"10.291","createdTime":1669734708520,"modifiedTime":1670621588436,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
{"name":"Ours","type":"faune","img":"systems/foundryvtt-reve-de-dragon/icons/faune/ours.webp","system":{"description":"<p>Ours. Forêt, montagne, 300 kg, 600 sust.Surtout recherché pour sa peau (voir legrizzal, p405).</p>","descriptionmj":"","encombrement":150,"quantite":1,"qualite":0,"cout":0,"milieu":"Forêt, montagne","environnement":[{"milieu":"Forêts","rarete":"Rare","frequence":6},{"milieu":"Montagnes","rarete":"Rare","frequence":6}],"sust":600,"exotisme":0,"categorie":"","actor":{"id":"OWuf2ryyCtipWnpE","pack":"foundryvtt-reve-de-dragon.animaux","name":"Grizzal"}},"effects":[],"flags":{"core":{"sourceId":"Item.LU5eutNQqwm52oOG"}},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.6.0","coreVersion":"10.291","createdTime":1670580597921,"modifiedTime":1673657676883,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"},"_id":"E59KBe57YIoAc8qV","folder":null,"sort":0,"ownership":{"default":0,"jtRmvSuwkwMmIMf0":3}}
|
||||||
{"name":"Noisot","type":"faune","img":"systems/foundryvtt-reve-de-dragon/icons/faune/oiseau.webp","system":{"description":"<p>Noisot. Plaine, forêt, rivage, 3 kg, 7 sust.<br>Le noisot est un assez gros volatile, voiside la poule d’eau, au plumage gris et noir,<br>ne voletant que par bonds. Les noisots vivent toujours en couple et supportent très<br>mal la solitude. Quand cela arrive, celui qui se retrouve seul se met à crier et à sautiller sans raison apparente, abandonnant tout instinct de survie. On dit alors qu’il cherche noise. Son vacarme attire généralement un prédateur, à commencer par un chasseur, et la solitude du pauvre animal est bien vite achevée. En couple, par contre, il reste silencieux et discret. C’est la raison pour laquelle on peut dire : « j’entends un noisot », mais rarement : « j’entends deux noisots ».</p>","descriptionmj":"","encombrement":1.5,"quantite":1,"qualite":0,"cout":0,"milieu":"Forêt, Plaine, Rivage","environnement":[{"milieu":"Cours d'eau","rarete":"Frequente","frequence":18},{"milieu":"Forêts","rarete":"Frequente","frequence":18},{"milieu":"Plaines","rarete":"Frequente","frequence":18}],"sust":7,"exotisme":0,"categorie":"","actor":{"id":"","pack":"","name":""}},"effects":[],"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.faune-flore-mineraux.FQ8vGdPYYcBggw5g"}},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.3.9","coreVersion":"10.291","createdTime":1670580597921,"modifiedTime":1670621588445,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"},"_id":"FQ8vGdPYYcBggw5g","folder":null,"sort":0,"ownership":{"default":0,"jtRmvSuwkwMmIMf0":3}}
|
{"name":"Asper violet","type":"plante","flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.faune-flore-mineraux.EYy9B0xJ0IGWYEuh"}},"img":"systems/foundryvtt-reve-de-dragon/icons/botanique/Asper%20violet.webp","effects":[],"_id":"EYy9B0xJ0IGWYEuh","system":{"description":"<p>Champignon violet à pied filiforme et chapeau pointu très éfilé.</p>\n<p>Fréquent.</p>","descriptionmj":"","encombrement":0.1,"quantite":1,"qualite":0,"cout":0.01,"milieu":"Lieux sombres et humides","environnement":[{"milieu":"Forêts","rarete":"Frequente","frequence":18},{"milieu":"Sous-sols","rarete":"Rare","frequence":6}],"sust":1,"exotisme":0,"niveau":2,"base":0,"categorie":"Cuisine","rarete":"Frequente"},"ownership":{"default":0,"rYShh2P1DNavdoBD":3},"folder":null,"sort":0,"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.6.0","coreVersion":"10.291","createdTime":1669734708520,"modifiedTime":1673791784540,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
||||||
{"name":"Candique","type":"ingredient","img":"systems/foundryvtt-reve-de-dragon/icons/objets/candique.webp","effects":[],"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.equipement.bxDITKRhXiyvLhMz"}},"system":{"description":"<p>Poudre blanche apparaissant sous l’écorce de nombreux arbres,</p>\n<p>VUE/Alchimie à 0.</p>","descriptionmj":"","encombrement":0.001,"quantite":1,"qualite":0,"cout":0.02,"milieu":"Forêts","environnement":[{"milieu":"Forêts","rarete":"","frequence":54}],"sust":0,"exotisme":0,"niveau":0,"base":0,"categorie":"Alchimie","rarete":""},"ownership":{"default":0,"rYShh2P1DNavdoBD":3,"Hp9ImM4o9YRTSdfu":3},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.3.9","coreVersion":"10.291","createdTime":1668808206109,"modifiedTime":1670621588437,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"},"folder":null,"sort":0,"_id":"FjfZ789LlkzUUSMU"}
|
{"name":"Noisot","type":"faune","img":"systems/foundryvtt-reve-de-dragon/icons/faune/oiseau.webp","system":{"description":"<p>Noisot. Plaine, forêt, rivage, 3 kg, 7 sust.<br>Le noisot est un assez gros volatile, voiside la poule d’eau, au plumage gris et noir,<br>ne voletant que par bonds. Les noisots vivent toujours en couple et supportent très<br>mal la solitude. Quand cela arrive, celui qui se retrouve seul se met à crier et à sautiller sans raison apparente, abandonnant tout instinct de survie. On dit alors qu’il cherche noise. Son vacarme attire généralement un prédateur, à commencer par un chasseur, et la solitude du pauvre animal est bien vite achevée. En couple, par contre, il reste silencieux et discret. C’est la raison pour laquelle on peut dire : « j’entends un noisot », mais rarement : « j’entends deux noisots ».</p>","descriptionmj":"","encombrement":1.5,"quantite":1,"qualite":0,"cout":0,"milieu":"Forêt, Plaine, Rivage","environnement":[{"milieu":"Cours d'eau","rarete":"Frequente","frequence":18},{"milieu":"Forêts","rarete":"Frequente","frequence":18},{"milieu":"Plaines","rarete":"Frequente","frequence":18}],"sust":7,"exotisme":0,"categorie":"","actor":{"id":"","pack":"","name":""}},"effects":[],"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.faune-flore-mineraux.FQ8vGdPYYcBggw5g"}},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.6.0","coreVersion":"10.291","createdTime":1670580597921,"modifiedTime":1673657676880,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"},"_id":"FQ8vGdPYYcBggw5g","folder":null,"sort":0,"ownership":{"default":0,"jtRmvSuwkwMmIMf0":3}}
|
||||||
{"name":"Ortilise","type":"herbe","flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.faune-flore-mineraux.GrzjjbOUWlOUgzEQ"}},"img":"systems/foundryvtt-reve-de-dragon/icons/botanique/Ortilise.webp","effects":[],"_id":"GrzjjbOUWlOUgzEQ","system":{"description":"<p>Redoutable variété d’ortie, poussant dans les lieux humides, le voisinage des marais.</p>\n<p>M3 \\ P 1 minute \\ D2 \\ -3 \\ Topazoïne +12, Lait de lune +8.</p>\n<p>Fréquente.</p>","descriptionmj":"","encombrement":0,"quantite":1,"qualite":0,"cout":0,"milieu":"Lieux humides","environnement":[{"milieu":"Cours d'eau","rarete":"Frequente","frequence":18},{"milieu":"Marais","rarete":"Frequente","frequence":18}],"niveau":0,"base":0,"categorie":"","rarete":"Frequente"},"ownership":{"default":0,"rYShh2P1DNavdoBD":3},"folder":null,"sort":0,"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.3.9","coreVersion":"10.291","createdTime":1669734708520,"modifiedTime":1670621588441,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
{"name":"Candique","type":"ingredient","img":"systems/foundryvtt-reve-de-dragon/icons/objets/candique.webp","effects":[],"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.equipement.bxDITKRhXiyvLhMz"}},"system":{"description":"<p>Poudre blanche apparaissant sous l’écorce de nombreux arbres,</p>\n<p>VUE/Alchimie à 0.</p>","descriptionmj":"","encombrement":0.001,"quantite":1,"qualite":0,"cout":0.02,"milieu":"Forêts","environnement":[{"milieu":"Forêts","rarete":"","frequence":54}],"sust":0,"exotisme":0,"niveau":0,"base":0,"categorie":"Alchimie","rarete":""},"ownership":{"default":0,"rYShh2P1DNavdoBD":3,"Hp9ImM4o9YRTSdfu":3},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.6.0","coreVersion":"10.291","createdTime":1668808206109,"modifiedTime":1673657676875,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"},"folder":null,"sort":0,"_id":"FjfZ789LlkzUUSMU"}
|
||||||
{"name":"Tshaï","type":"herbe","flags":{"core":{"sheetClass":"foundryvtt-reve-de-dragon.RdDItemSheet","sourceId":"Compendium.foundryvtt-reve-de-dragon.faune-flore-mineraux.H0eZczDzhj1fUUxZ"}},"img":"systems/foundryvtt-reve-de-dragon/icons/botanique/Tsha%C3%AF.webp","effects":[],"_id":"H0eZczDzhj1fUUxZ","system":{"description":"<p>Petit arbuste à fleurs blanches et feuilles persistantes, poussant au versant des collines ensoleillées. Une fois séchées, ses feuilles sont consommées en infusion, donnant une boisson parfumée et tonique. Par extension, tshaï est aussi le nom donné à la boisson en question.</p>\n<p>Fréquent.</p>","descriptionmj":"","encombrement":0,"quantite":1,"qualite":0,"cout":null,"milieu":"Collines","environnement":[{"milieu":"Collines","rarete":"Frequente","frequence":18}],"niveau":null,"base":0,"categorie":"Cuisine","rarete":"Frequente"},"ownership":{"default":0,"rYShh2P1DNavdoBD":3},"folder":null,"sort":0,"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.3.9","coreVersion":"10.291","createdTime":1669734708520,"modifiedTime":1670621588445,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
{"name":"Ortilise","type":"herbe","flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.faune-flore-mineraux.GrzjjbOUWlOUgzEQ"}},"img":"systems/foundryvtt-reve-de-dragon/icons/botanique/Ortilise.webp","effects":[],"_id":"GrzjjbOUWlOUgzEQ","system":{"description":"<p>Redoutable variété d’ortie, poussant dans les lieux humides, le voisinage des marais.</p><p>En cas de contact, voir: @UUID[Compendium.foundryvtt-reve-de-dragon.maladies-et-poisons.X8vVqbK5pjuxQwBF]{Ortilise}</p><p>Fréquente.</p>","descriptionmj":"","encombrement":0,"quantite":1,"qualite":0,"cout":0,"milieu":"Lieux humides","environnement":[{"milieu":"Cours d'eau","rarete":"Frequente","frequence":18},{"milieu":"Marais","rarete":"Frequente","frequence":18}],"sust":0,"exotisme":0,"niveau":0,"base":0,"categorie":"Toxique","rarete":"Frequente"},"ownership":{"default":0,"rYShh2P1DNavdoBD":3},"folder":null,"sort":0,"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.6.0","coreVersion":"10.291","createdTime":1669734708520,"modifiedTime":1673792369256,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
||||||
{"name":"Obyssum vert","type":"ingredient","img":"systems/foundryvtt-reve-de-dragon/icons/objets/l_obyssum_vert.webp","effects":[],"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.equipement.D5Z3FaUv91B8eCOP"}},"system":{"description":"<p>Poudre verdâtre apparaissant sur les tiges de certains roseaux.</p>\n<p>VUE/Alchimie à -2</p>","descriptionmj":"","encombrement":0.001,"quantite":1,"qualite":0,"cout":0.05,"milieu":"Lieux humides","environnement":[{"milieu":"Cours d'eau","rarete":"Commune","frequence":54},{"milieu":"Marais","rarete":"Commune","frequence":54}],"sust":0,"exotisme":0,"niveau":0,"base":0,"categorie":"Alchimie","rarete":""},"ownership":{"default":0,"rYShh2P1DNavdoBD":3,"Hp9ImM4o9YRTSdfu":3},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.3.9","coreVersion":"10.291","createdTime":1668808206019,"modifiedTime":1670621588441,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"},"folder":null,"sort":0,"_id":"HTtgzxpvUvMHilqx"}
|
{"name":"Tshaï","type":"herbe","flags":{"core":{"sheetClass":"foundryvtt-reve-de-dragon.RdDItemSheet","sourceId":"Compendium.foundryvtt-reve-de-dragon.faune-flore-mineraux.H0eZczDzhj1fUUxZ"}},"img":"systems/foundryvtt-reve-de-dragon/icons/botanique/Tsha%C3%AF.webp","effects":[],"_id":"H0eZczDzhj1fUUxZ","system":{"description":"<p>Petit arbuste à fleurs blanches et feuilles persistantes, poussant au versant des collines ensoleillées. Une fois séchées, ses feuilles sont consommées en infusion, donnant une boisson parfumée et tonique. Par extension, tshaï est aussi le nom donné à la boisson en question.</p>\n<p>Fréquent.</p>","descriptionmj":"","encombrement":0,"quantite":1,"qualite":0,"cout":null,"milieu":"Collines","environnement":[{"milieu":"Collines","rarete":"Frequente","frequence":18}],"sust":0,"exotisme":0,"niveau":null,"base":0,"categorie":"Cuisine","rarete":"Frequente"},"ownership":{"default":0,"rYShh2P1DNavdoBD":3},"folder":null,"sort":0,"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.6.0","coreVersion":"10.291","createdTime":1669734708520,"modifiedTime":1673657676886,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
||||||
{"name":"Calamine","type":"ingredient","flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.faune-flore-mineraux.HlUFBr3yInurp96Z"}},"img":"systems/foundryvtt-reve-de-dragon/icons/botanique/Calamine.webp","effects":[],"_id":"HlUFBr3yInurp96Z","system":{"description":"<p>Fruit du calaminier, sorte de figuier rampant doté de lianes et de vrilles. La calamine pousse en petites grappes de fruits à goût mi-figue, mi-raisin.</p>\n<p>Fréquente.</p>","descriptionmj":"","encombrement":0.01,"quantite":1,"qualite":0,"cout":0,"milieu":"Tous","environnement":[{"milieu":"Collines","rarete":"Frequente","frequence":18},{"milieu":"Cours d'eau","rarete":"Frequente","frequence":18},{"milieu":"Déserts","rarete":"Frequente","frequence":18},{"milieu":"Forêts","rarete":"Frequente","frequence":18},{"milieu":"Marais","rarete":"Frequente","frequence":18},{"milieu":"Montagnes","rarete":"Frequente","frequence":18},{"milieu":"Plaines","rarete":"Frequente","frequence":18}],"sust":0,"exotisme":0,"niveau":0,"base":0,"categorie":"Cuisine","rarete":"Frequente"},"ownership":{"default":0,"rYShh2P1DNavdoBD":3},"folder":null,"sort":0,"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.3.9","coreVersion":"10.291","createdTime":1669734708520,"modifiedTime":1670621588437,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
{"name":"Obyssum vert","type":"ingredient","img":"systems/foundryvtt-reve-de-dragon/icons/objets/l_obyssum_vert.webp","effects":[],"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.equipement.D5Z3FaUv91B8eCOP"}},"system":{"description":"<p>Poudre verdâtre apparaissant sur les tiges de certains roseaux.</p>\n<p>VUE/Alchimie à -2</p>","descriptionmj":"","encombrement":0.001,"quantite":1,"qualite":0,"cout":0.05,"milieu":"Lieux humides","environnement":[{"milieu":"Cours d'eau","rarete":"Commune","frequence":54},{"milieu":"Marais","rarete":"Commune","frequence":54}],"sust":0,"exotisme":0,"niveau":0,"base":0,"categorie":"Alchimie","rarete":""},"ownership":{"default":0,"rYShh2P1DNavdoBD":3,"Hp9ImM4o9YRTSdfu":3},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.6.0","coreVersion":"10.291","createdTime":1668808206019,"modifiedTime":1673657676881,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"},"folder":null,"sort":0,"_id":"HTtgzxpvUvMHilqx"}
|
||||||
{"name":"Poule d'Eau","type":"faune","img":"systems/foundryvtt-reve-de-dragon/icons/faune/oiseau.webp","system":{"description":"<p>Poule d’eau. Rivage, 300 g, 1 sust.</p>","descriptionmj":"","encombrement":0.15,"quantite":1,"qualite":0,"cout":0,"milieu":"Rivages","environnement":[{"milieu":"Cours d'eau","rarete":"Commune","frequence":54}],"sust":1,"exotisme":0,"categorie":"","actor":{"id":"","pack":"","name":""}},"effects":[],"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.faune-flore-mineraux.IZ40yicDhxycPtXU"}},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.3.9","coreVersion":"10.291","createdTime":1670580597921,"modifiedTime":1670621588445,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"},"_id":"IZ40yicDhxycPtXU","folder":null,"sort":0,"ownership":{"default":0,"jtRmvSuwkwMmIMf0":3}}
|
{"name":"Calamine","type":"plante","flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.faune-flore-mineraux.HlUFBr3yInurp96Z"}},"img":"systems/foundryvtt-reve-de-dragon/icons/botanique/Calamine.webp","effects":[],"_id":"HlUFBr3yInurp96Z","system":{"description":"<p>Fruit du calaminier, sorte de figuier rampant doté de lianes et de vrilles. La calamine pousse en petites grappes de fruits à goût mi-figue, mi-raisin.</p>\n<p>Fréquente.</p>","descriptionmj":"","encombrement":0.01,"quantite":1,"qualite":0,"cout":0,"milieu":"Tous","environnement":[{"milieu":"Collines","rarete":"Frequente","frequence":18},{"milieu":"Cours d'eau","rarete":"Frequente","frequence":18},{"milieu":"Déserts","rarete":"Frequente","frequence":18},{"milieu":"Forêts","rarete":"Frequente","frequence":18},{"milieu":"Marais","rarete":"Frequente","frequence":18},{"milieu":"Montagnes","rarete":"Frequente","frequence":18},{"milieu":"Plaines","rarete":"Frequente","frequence":18}],"sust":0.1,"exotisme":0,"niveau":0,"base":0,"categorie":"Cuisine","rarete":"Frequente"},"ownership":{"default":0,"rYShh2P1DNavdoBD":3},"folder":null,"sort":0,"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.6.0","coreVersion":"10.291","createdTime":1669734708520,"modifiedTime":1673791334575,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
||||||
{"name":"Cancredoux","type":"faune","img":"systems/foundryvtt-reve-de-dragon/icons/faune/crabe.webp","system":{"description":"<p> Désigne toute variété de crabe que l’on peut trouver en eau douce.</p>","descriptionmj":"","encombrement":0.2,"quantite":1,"qualite":0,"cout":0,"milieu":"Crabe d'eau douce","environnement":[{"milieu":"Cours d'eau","rarete":"Frequente","frequence":18}],"sust":1,"exotisme":0,"categorie":"","actor":{"id":"","pack":"","name":""}},"effects":[],"flags":{},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.3.9","coreVersion":"10.291","createdTime":1670616441674,"modifiedTime":1670621588397,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"},"folder":null,"sort":0,"ownership":{"default":0,"Hp9ImM4o9YRTSdfu":3},"_id":"JvD4mvZI9an4M23j"}
|
{"name":"Poule d'Eau","type":"faune","img":"systems/foundryvtt-reve-de-dragon/icons/faune/oiseau.webp","system":{"description":"<p>Poule d’eau. Rivage, 300 g, 1 sust.</p>","descriptionmj":"","encombrement":0.15,"quantite":1,"qualite":0,"cout":0,"milieu":"Rivages","environnement":[{"milieu":"Cours d'eau","rarete":"Commune","frequence":54}],"sust":1,"exotisme":0,"categorie":"","actor":{"id":"","pack":"","name":""}},"effects":[],"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.faune-flore-mineraux.IZ40yicDhxycPtXU"}},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.6.0","coreVersion":"10.291","createdTime":1670580597921,"modifiedTime":1673657676883,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"},"_id":"IZ40yicDhxycPtXU","folder":null,"sort":0,"ownership":{"default":0,"jtRmvSuwkwMmIMf0":3}}
|
||||||
{"name":"Primelune","type":"ingredient","flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.faune-flore-mineraux.Kg13pgjU0u421Kcm"}},"img":"systems/foundryvtt-reve-de-dragon/icons/botanique/Primelune.webp","effects":[],"_id":"Kg13pgjU0u421Kcm","system":{"description":"<p>Apparaissant le plus souvent à la nouvelle lune, c’est un petit champignon à pied blanc et chapeau plat vert tendre.</p>\n<p>Commune.</p>","descriptionmj":"","encombrement":0.1,"quantite":1,"qualite":0,"cout":0,"milieu":"Lieux sombres et humides","environnement":[{"milieu":"Forêts","rarete":"Commune","frequence":54},{"milieu":"Sous-sols","rarete":"Frequente","frequence":18}],"sust":0,"exotisme":0,"niveau":1,"base":0,"categorie":"Cuisine","rarete":"Commune"},"ownership":{"default":0,"rYShh2P1DNavdoBD":3},"folder":null,"sort":0,"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.3.9","coreVersion":"10.291","createdTime":1669734708521,"modifiedTime":1670621588442,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
{"name":"Cancredoux","type":"faune","img":"systems/foundryvtt-reve-de-dragon/icons/faune/crabe.webp","system":{"description":"<p> Désigne toute variété de crabe que l’on peut trouver en eau douce.</p>","descriptionmj":"","encombrement":0.2,"quantite":1,"qualite":0,"cout":0,"milieu":"Crabe d'eau douce","environnement":[{"milieu":"Cours d'eau","rarete":"Frequente","frequence":18}],"sust":1,"exotisme":0,"categorie":"","actor":{"id":"","pack":"","name":""}},"effects":[],"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.faune-flore-mineraux.JvD4mvZI9an4M23j"}},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.6.0","coreVersion":"10.291","createdTime":1670616441674,"modifiedTime":1673657676875,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"},"folder":null,"sort":0,"ownership":{"default":0,"Hp9ImM4o9YRTSdfu":3},"_id":"JvD4mvZI9an4M23j"}
|
||||||
{"name":"Oie Sauvage","type":"faune","img":"systems/foundryvtt-reve-de-dragon/icons/faune/oie.webp","system":{"description":"<p>Oie sauvage. Rivage, 5 kg, 14 sust</p>","descriptionmj":"","encombrement":2.5,"quantite":1,"qualite":0,"cout":0,"milieu":"Rivage","environnement":[{"milieu":"Cours d'eau","rarete":"Frequente","frequence":18}],"sust":14,"exotisme":0,"categorie":"","actor":{"id":"","pack":"","name":""}},"effects":[],"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.faune-flore-mineraux.LBHzejJLFt4ymqay"}},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.3.9","coreVersion":"10.291","createdTime":1670580597921,"modifiedTime":1670621588445,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"},"_id":"LBHzejJLFt4ymqay","folder":null,"sort":0,"ownership":{"default":0,"jtRmvSuwkwMmIMf0":3}}
|
{"name":"Primelune","type":"plante","flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.faune-flore-mineraux.Kg13pgjU0u421Kcm"}},"img":"systems/foundryvtt-reve-de-dragon/icons/botanique/Primelune.webp","effects":[],"_id":"Kg13pgjU0u421Kcm","system":{"description":"<p>Apparaissant le plus souvent à la nouvelle lune, c’est un petit champignon à pied blanc et chapeau plat vert tendre.</p>\n<p>Commune.</p>","descriptionmj":"","encombrement":0.1,"quantite":1,"qualite":0,"cout":0,"milieu":"Lieux sombres et humides","environnement":[{"milieu":"Forêts","rarete":"Commune","frequence":54},{"milieu":"Sous-sols","rarete":"Frequente","frequence":18}],"sust":1,"exotisme":0,"niveau":1,"base":0,"categorie":"Cuisine","rarete":"Commune"},"ownership":{"default":0,"rYShh2P1DNavdoBD":3},"folder":null,"sort":0,"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.6.0","coreVersion":"10.291","createdTime":1669734708521,"modifiedTime":1673792093719,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
||||||
{"name":"Fumebol","type":"ingredient","flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.faune-flore-mineraux.LJdoBQBE3KNDLXKq"}},"img":"systems/foundryvtt-reve-de-dragon/icons/botanique/Fumebol.webp","effects":[],"_id":"LJdoBQBE3KNDLXKq","system":{"description":"<p>Champignon brun ressemblant grossièrement au cèpe bolet.</p>\n<p>M5 \\ P 8 rounds \\ D2 \\ -5 \\ Sable-Poudre +12, Huile de Sélikanthe +8.</p>\n<p>Rare.</p>","descriptionmj":"","encombrement":0,"quantite":1,"qualite":0,"cout":0,"milieu":"Lieux sombres et humides","environnement":[{"milieu":"Forêts","rarete":"Rare","frequence":6},{"milieu":"Sous-sols","rarete":"Rare","frequence":6}],"sust":0,"exotisme":0,"niveau":0,"base":0,"categorie":"","rarete":"Rare"},"ownership":{"default":0,"rYShh2P1DNavdoBD":3},"folder":null,"sort":0,"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.3.9","coreVersion":"10.291","createdTime":1669734708521,"modifiedTime":1670621588439,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
{"name":"Frétille","type":"faune","img":"systems/foundryvtt-reve-de-dragon/icons/faune/barbon.webp","system":{"description":"<p><span class=\"fontstyle0\">Grosse ablette particulièrement frétillante, d’où son nom. Plus souvent pêchée au filet ou à l’aide de nasses qu’à la ligne et l’hameçon.</span> <br style=\" font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-align: -webkit-auto; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; \"></p>","descriptionmj":"","encombrement":0.07,"quantite":1,"qualite":0,"cout":0.01,"milieu":"","environnement":[{"milieu":"Cours d'eau","rarete":"Frequente","frequence":18}],"sust":0.7,"exotisme":0,"categorie":"","actor":{"id":"","pack":"","name":""}},"effects":[],"flags":{},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.5.4","coreVersion":"10.291","createdTime":1673656080829,"modifiedTime":1673656874816,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"},"_id":"L2ZANNbcFU9jruvr","folder":null,"sort":0,"ownership":{"default":0,"Hp9ImM4o9YRTSdfu":3}}
|
||||||
{"name":"Clognotte","type":"faune","img":"systems/foundryvtt-reve-de-dragon/icons/faune/rongeur.webp","system":{"description":"<p>Clognotte. Forêt, 2 kg, 4 sust. La clognot-<br>te, surtout recherchée pour sa peau, est un<br>gros écureuil blanc ou gris, rayé de fauve.</p>","descriptionmj":"","encombrement":1,"quantite":1,"qualite":0,"cout":0,"milieu":"Forêt","environnement":[{"milieu":"Forêts","rarete":"Frequente","frequence":18}],"sust":4,"exotisme":0,"categorie":"","actor":{"id":"","pack":"","name":""}},"effects":[],"flags":{"core":{"sourceId":"Item.LU5eutNQqwm52oOG"}},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.3.9","coreVersion":"10.291","createdTime":1670580597921,"modifiedTime":1670621588438,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"},"_id":"LOVGrwgIhE2JTxOk","folder":null,"sort":0,"ownership":{"default":0,"jtRmvSuwkwMmIMf0":3}}
|
{"name":"Oie Sauvage","type":"faune","img":"systems/foundryvtt-reve-de-dragon/icons/faune/oie.webp","system":{"description":"<p>Oie sauvage. Rivage, 5 kg, 14 sust</p>","descriptionmj":"","encombrement":2.5,"quantite":1,"qualite":0,"cout":0,"milieu":"Rivage","environnement":[{"milieu":"Cours d'eau","rarete":"Frequente","frequence":18}],"sust":14,"exotisme":0,"categorie":"","actor":{"id":"","pack":"","name":""}},"effects":[],"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.faune-flore-mineraux.LBHzejJLFt4ymqay"}},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.6.0","coreVersion":"10.291","createdTime":1670580597921,"modifiedTime":1673657676881,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"},"_id":"LBHzejJLFt4ymqay","folder":null,"sort":0,"ownership":{"default":0,"jtRmvSuwkwMmIMf0":3}}
|
||||||
{"name":"Andurak","type":"faune","img":"systems/foundryvtt-reve-de-dragon/icons/faune/andurak.webp","system":{"description":"<p>L’andurak est une petite antilope des plai-nes tempérées au pelage gris cendré, vivanten larges troupeaux.</p>","descriptionmj":"","encombrement":15,"quantite":1,"qualite":0,"cout":0,"milieu":"Plaine, Savane","environnement":[{"milieu":"Plaines","rarete":"Frequente","frequence":15}],"sust":70,"exotisme":0,"categorie":"","actor":{"id":"i7pvn7kgTwIdKYtP","pack":"foundryvtt-reve-de-dragon.animaux","name":"Mule"}},"effects":[],"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.faune-flore-mineraux.LU5eutNQqwm52oOG"}},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.3.9","coreVersion":"10.291","createdTime":1670580597921,"modifiedTime":1670621588436,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"},"_id":"LU5eutNQqwm52oOG","folder":null,"sort":0,"ownership":{"default":0,"jtRmvSuwkwMmIMf0":3}}
|
{"name":"Fumebol","type":"plante","flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.faune-flore-mineraux.LJdoBQBE3KNDLXKq"}},"img":"systems/foundryvtt-reve-de-dragon/icons/botanique/Fumebol.webp","effects":[],"_id":"LJdoBQBE3KNDLXKq","system":{"description":"<p>Champignon brun ressemblant grossièrement au cèpe bolet.</p><p>Pour l'empoisonnement, voir: @UUID[Compendium.foundryvtt-reve-de-dragon.maladies-et-poisons.xzCBr3FiSk1WewcT]{Fumebol}</p><p>Rare.</p>","descriptionmj":"","encombrement":0,"quantite":1,"qualite":0,"cout":0,"milieu":"Lieux sombres et humides","environnement":[{"milieu":"Forêts","rarete":"Rare","frequence":6},{"milieu":"Sous-sols","rarete":"Rare","frequence":6}],"sust":0,"exotisme":0,"niveau":0,"base":0,"categorie":"Poison","rarete":"Rare"},"ownership":{"default":0,"rYShh2P1DNavdoBD":3},"folder":null,"sort":0,"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.6.0","coreVersion":"10.291","createdTime":1669734708521,"modifiedTime":1673791927542,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
||||||
{"name":"Chramaelium","type":"ingredient","img":"systems/foundryvtt-reve-de-dragon/icons/objets/chramaelium.webp","effects":[],"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.equipement.ncpONCxPPNZ9YbBr"}},"system":{"description":"<p>Poudre rouge obtenue par disruption alchimique de la <em>chramaele</em>, minerai ayant l’apparence de la glaise.</p>\n<p>VUE/Alchimie à -4</p>","descriptionmj":"","encombrement":0.001,"quantite":1,"qualite":0,"cout":0.5,"milieu":"Obtenu à partir de glaise","environnement":[{"milieu":"Cours d'eau","rarete":"Rare","frequence":12},{"milieu":"Forêts","rarete":"Rare","frequence":12},{"milieu":"Marais","rarete":"Rare","frequence":12},{"milieu":"Plaines","rarete":"Rare","frequence":12}],"sust":0,"exotisme":0,"niveau":0,"base":0,"categorie":"Alchimie","rarete":""},"ownership":{"default":0,"rYShh2P1DNavdoBD":3,"Hp9ImM4o9YRTSdfu":3},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.3.9","coreVersion":"10.291","createdTime":1668808206114,"modifiedTime":1670621588437,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"},"folder":null,"sort":0,"_id":"NNTl6CAdRZcylrU1"}
|
{"name":"Clognotte","type":"faune","img":"systems/foundryvtt-reve-de-dragon/icons/faune/rongeur.webp","system":{"description":"<p>Clognotte. Forêt, 2 kg, 4 sust. La clognot-<br>te, surtout recherchée pour sa peau, est un<br>gros écureuil blanc ou gris, rayé de fauve.</p>","descriptionmj":"","encombrement":1,"quantite":1,"qualite":0,"cout":0,"milieu":"Forêt","environnement":[{"milieu":"Forêts","rarete":"Frequente","frequence":18}],"sust":4,"exotisme":0,"categorie":"","actor":{"id":"","pack":"","name":""}},"effects":[],"flags":{"core":{"sourceId":"Item.LU5eutNQqwm52oOG"}},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.6.0","coreVersion":"10.291","createdTime":1670580597921,"modifiedTime":1673657676876,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"},"_id":"LOVGrwgIhE2JTxOk","folder":null,"sort":0,"ownership":{"default":0,"jtRmvSuwkwMmIMf0":3}}
|
||||||
{"name":"Gironcle","type":"ingredient","flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.faune-flore-mineraux.NhJm0FRVOi8L3xqv"}},"img":"systems/foundryvtt-reve-de-dragon/icons/botanique/Gironcle.webp","effects":[],"_id":"NhJm0FRVOi8L3xqv","system":{"description":"<p>Sorte de girolle à pied violet et corolle brun doré.</p>\n<p>Rare.</p>","descriptionmj":"","encombrement":0.1,"quantite":1,"qualite":0,"cout":0,"milieu":"Lieux sombres et humides","environnement":[{"milieu":"Forêts","rarete":"Rare","frequence":6},{"milieu":"Sous-sols","rarete":"Rarissime","frequence":2}],"sust":0,"exotisme":0,"niveau":4,"base":0,"categorie":"Cuisine","rarete":"Rare"},"ownership":{"default":0,"rYShh2P1DNavdoBD":3},"folder":null,"sort":0,"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.3.9","coreVersion":"10.291","createdTime":1669734708521,"modifiedTime":1670621588439,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
{"name":"Andurak","type":"faune","img":"systems/foundryvtt-reve-de-dragon/icons/faune/andurak.webp","system":{"description":"<p>L’andurak est une petite antilope des plai-nes tempérées au pelage gris cendré, vivanten larges troupeaux.</p>","descriptionmj":"","encombrement":15,"quantite":1,"qualite":0,"cout":0,"milieu":"Plaine, Savane","environnement":[{"milieu":"Plaines","rarete":"Frequente","frequence":15}],"sust":70,"exotisme":0,"categorie":"","actor":{"id":"i7pvn7kgTwIdKYtP","pack":"foundryvtt-reve-de-dragon.animaux","name":"Mule"}},"effects":[],"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.faune-flore-mineraux.LU5eutNQqwm52oOG"}},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.6.0","coreVersion":"10.291","createdTime":1670580597921,"modifiedTime":1673657676874,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"},"_id":"LU5eutNQqwm52oOG","folder":null,"sort":0,"ownership":{"default":0,"jtRmvSuwkwMmIMf0":3}}
|
||||||
{"name":"Outarde","type":"faune","img":"systems/foundryvtt-reve-de-dragon/icons/faune/oie.webp","system":{"description":"<p>Outarde. Plaine, 8 kg, 20 sust.</p>","descriptionmj":"","encombrement":4,"quantite":1,"qualite":0,"cout":0,"milieu":"Plaine","environnement":[{"milieu":"Plaines","rarete":"Frequente","frequence":18}],"sust":20,"exotisme":0,"categorie":"","actor":{"id":"","pack":"","name":""}},"effects":[],"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.faune-flore-mineraux.NusdRSh3S7kDOmjY"}},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.3.9","coreVersion":"10.291","createdTime":1670580597921,"modifiedTime":1670621588445,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"},"_id":"NusdRSh3S7kDOmjY","folder":null,"sort":0,"ownership":{"default":0,"jtRmvSuwkwMmIMf0":3}}
|
{"name":"Chramaelium","type":"ingredient","img":"systems/foundryvtt-reve-de-dragon/icons/objets/chramaelium.webp","effects":[],"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.equipement.ncpONCxPPNZ9YbBr"}},"system":{"description":"<p>Poudre rouge obtenue par disruption alchimique de la <em>chramaele</em>, minerai ayant l’apparence de la glaise.</p>\n<p>VUE/Alchimie à -4</p>","descriptionmj":"","encombrement":0.001,"quantite":1,"qualite":0,"cout":0.5,"milieu":"Obtenu à partir de glaise","environnement":[{"milieu":"Cours d'eau","rarete":"Rare","frequence":12},{"milieu":"Forêts","rarete":"Rare","frequence":12},{"milieu":"Marais","rarete":"Rare","frequence":12},{"milieu":"Plaines","rarete":"Rare","frequence":12}],"sust":0,"exotisme":0,"niveau":0,"base":0,"categorie":"Alchimie","rarete":""},"ownership":{"default":0,"rYShh2P1DNavdoBD":3,"Hp9ImM4o9YRTSdfu":3},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.6.0","coreVersion":"10.291","createdTime":1668808206114,"modifiedTime":1673657676876,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"},"folder":null,"sort":0,"_id":"NNTl6CAdRZcylrU1"}
|
||||||
{"name":"Falanquelle","type":"faune","img":"systems/foundryvtt-reve-de-dragon/icons/faune/oiseau.webp","system":{"description":"<p>Falanquelle. Forêt, 0,5 kg, 1 sust. Gros passereau au plumage de couleur unifor<br>me. Noire, elle est semblable au merle ; mais on la trouve également vert amande, rose tyrien ou jaune paille.</p>","descriptionmj":"","encombrement":0.2,"quantite":1,"qualite":0,"cout":0,"milieu":"Forêt","environnement":[{"milieu":"Forêts","rarete":"Frequente","frequence":18}],"sust":1,"exotisme":0,"categorie":"","actor":{"id":"","pack":"","name":""}},"effects":[],"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.faune-flore-mineraux.OWeGXfWZdmPn2gVL"}},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.3.9","coreVersion":"10.291","createdTime":1670580597921,"modifiedTime":1670621588445,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"},"_id":"OWeGXfWZdmPn2gVL","folder":null,"sort":0,"ownership":{"default":0,"jtRmvSuwkwMmIMf0":3}}
|
{"name":"Gironcle","type":"plante","flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.faune-flore-mineraux.NhJm0FRVOi8L3xqv"}},"img":"systems/foundryvtt-reve-de-dragon/icons/botanique/Gironcle.webp","effects":[],"_id":"NhJm0FRVOi8L3xqv","system":{"description":"<p>Sorte de girolle à pied violet et corolle brun doré.</p>\n<p>Rare.</p>","descriptionmj":"","encombrement":0.1,"quantite":1,"qualite":4,"cout":0,"milieu":"Lieux sombres et humides","environnement":[{"milieu":"Forêts","rarete":"Rare","frequence":6},{"milieu":"Sous-sols","rarete":"Rarissime","frequence":2}],"sust":1,"exotisme":0,"niveau":4,"base":0,"categorie":"Cuisine","rarete":"Rare"},"ownership":{"default":0,"rYShh2P1DNavdoBD":3},"folder":null,"sort":0,"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.6.0","coreVersion":"10.291","createdTime":1669734708521,"modifiedTime":1673791970344,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
||||||
{"name":"Chamois","type":"faune","img":"systems/foundryvtt-reve-de-dragon/icons/faune/chamois.webp","system":{"description":"<p>Chamois. Montagne, 35 kg, 80 sust.</p>","descriptionmj":"","encombrement":17,"quantite":1,"qualite":0,"cout":0,"milieu":"Montagne","environnement":[{"milieu":"Montagnes","rarete":"Rare","frequence":6}],"sust":80,"exotisme":0,"categorie":"","actor":{"id":"","pack":"","name":""}},"effects":[],"flags":{"core":{"sourceId":"Item.LU5eutNQqwm52oOG"}},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.3.9","coreVersion":"10.291","createdTime":1670580597921,"modifiedTime":1670621588437,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"},"_id":"QItDJlTl5xf3AmOR","folder":null,"sort":0,"ownership":{"default":0,"jtRmvSuwkwMmIMf0":3}}
|
{"name":"Outarde","type":"faune","img":"systems/foundryvtt-reve-de-dragon/icons/faune/oie.webp","system":{"description":"<p>Outarde. Plaine, 8 kg, 20 sust.</p>","descriptionmj":"","encombrement":4,"quantite":1,"qualite":0,"cout":0,"milieu":"Plaine","environnement":[{"milieu":"Plaines","rarete":"Frequente","frequence":18}],"sust":20,"exotisme":0,"categorie":"","actor":{"id":"","pack":"","name":""}},"effects":[],"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.faune-flore-mineraux.NusdRSh3S7kDOmjY"}},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.6.0","coreVersion":"10.291","createdTime":1670580597921,"modifiedTime":1673657676883,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"},"_id":"NusdRSh3S7kDOmjY","folder":null,"sort":0,"ownership":{"default":0,"jtRmvSuwkwMmIMf0":3}}
|
||||||
{"name":"Amandelle","type":"ingredient","img":"systems/foundryvtt-reve-de-dragon/icons/botanique/Amandelle.webp","effects":[],"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.faune-flore-mineraux.w7jEFHGFrcrKAesQ"}},"_id":"QN2KLZLNL1JUh2bF","system":{"description":"<p>Fruit de l’amandelier, un petit arbuste à feuilles très découpées de couleur mauve pâle à violet foncé. L’amandelle est une noix plate et allongée au goût d’amande allié au parfum de violette.</p>\n<p>Fréquente.</p>","descriptionmj":"","encombrement":0.01,"quantite":1,"qualite":0,"cout":0,"milieu":"Tous","environnement":[{"milieu":"Collines","rarete":"Frequente","frequence":18},{"milieu":"Cours d'eau","rarete":"Frequente","frequence":18},{"milieu":"Déserts","rarete":"Frequente","frequence":18},{"milieu":"Forêts","rarete":"Frequente","frequence":18},{"milieu":"Marais","rarete":"Frequente","frequence":18},{"milieu":"Montagnes","rarete":"Frequente","frequence":18},{"milieu":"Plaines","rarete":"Frequente","frequence":18}],"sust":0,"exotisme":0,"niveau":0,"base":0,"categorie":"Cuisine","rarete":"Frequente"},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.3.9","coreVersion":"10.291","createdTime":1669734708521,"modifiedTime":1670621588436,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"},"folder":null,"sort":0,"ownership":{"default":0,"Hp9ImM4o9YRTSdfu":3}}
|
{"name":"Falanquelle","type":"faune","img":"systems/foundryvtt-reve-de-dragon/icons/faune/oiseau.webp","system":{"description":"<p>Falanquelle. Forêt, 0,5 kg, 1 sust. Gros passereau au plumage de couleur unifor<br>me. Noire, elle est semblable au merle ; mais on la trouve également vert amande, rose tyrien ou jaune paille.</p>","descriptionmj":"","encombrement":0.2,"quantite":1,"qualite":0,"cout":0,"milieu":"Forêt","environnement":[{"milieu":"Forêts","rarete":"Frequente","frequence":18}],"sust":1,"exotisme":0,"categorie":"","actor":{"id":"","pack":"","name":""}},"effects":[],"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.faune-flore-mineraux.OWeGXfWZdmPn2gVL"}},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.6.0","coreVersion":"10.291","createdTime":1670580597921,"modifiedTime":1673657676878,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"},"_id":"OWeGXfWZdmPn2gVL","folder":null,"sort":0,"ownership":{"default":0,"jtRmvSuwkwMmIMf0":3}}
|
||||||
{"name":"Damaskin","type":"faune","img":"systems/foundryvtt-reve-de-dragon/icons/faune/andurak.webp","system":{"description":"<p>Damaskin. Forêt, 50 kg, 100 sust. Variété de petit daim vivant sous des cli<br>mats plus froids et à la fourrure grise et noire tachetée de blanc ou de gris clair.</p>","descriptionmj":"","encombrement":25,"quantite":1,"qualite":0,"cout":0,"milieu":"Forêt","environnement":[{"milieu":"Forêts","rarete":"Frequente","frequence":18}],"sust":100,"exotisme":0,"categorie":"","actor":{"id":"","pack":"","name":""}},"effects":[],"flags":{"core":{"sourceId":"Item.LU5eutNQqwm52oOG"}},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.3.9","coreVersion":"10.291","createdTime":1670580597921,"modifiedTime":1670621588438,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"},"_id":"QVEkBjXEVxjlrUK9","folder":null,"sort":0,"ownership":{"default":0,"jtRmvSuwkwMmIMf0":3}}
|
{"name":"Chamois","type":"faune","img":"systems/foundryvtt-reve-de-dragon/icons/faune/chamois.webp","system":{"description":"<p>Chamois. Montagne, 35 kg, 80 sust.</p>","descriptionmj":"","encombrement":17,"quantite":1,"qualite":0,"cout":0,"milieu":"Montagne","environnement":[{"milieu":"Montagnes","rarete":"Rare","frequence":6}],"sust":80,"exotisme":0,"categorie":"","actor":{"id":"","pack":"","name":""}},"effects":[],"flags":{"core":{"sourceId":"Item.LU5eutNQqwm52oOG"}},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.6.0","coreVersion":"10.291","createdTime":1670580597921,"modifiedTime":1673657676876,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"},"_id":"QItDJlTl5xf3AmOR","folder":null,"sort":0,"ownership":{"default":0,"jtRmvSuwkwMmIMf0":3}}
|
||||||
{"name":"Loup","type":"faune","img":"systems/foundryvtt-reve-de-dragon/icons/faune/wolf-head.webp","system":{"description":"<p>Loup. Forêt, 55 kg, 100 sust. Plus évitéque recherché (voir le lycan, p406).</p>","descriptionmj":"","encombrement":27,"quantite":1,"qualite":0,"cout":0,"milieu":"Forets","environnement":[{"milieu":"Forêts","rarete":"Frequente","frequence":18}],"sust":100,"exotisme":0,"categorie":"","actor":{"id":"99I06oTwCziLTnnl","pack":"foundryvtt-reve-de-dragon.animaux","name":"Lycan"}},"effects":[],"flags":{"core":{"sourceId":"Item.LU5eutNQqwm52oOG"}},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.3.9","coreVersion":"10.291","createdTime":1670580597921,"modifiedTime":1670621588440,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"},"_id":"QhdvDcc3DTuoXkBW","folder":null,"sort":0,"ownership":{"default":0,"jtRmvSuwkwMmIMf0":3}}
|
{"name":"Amandelle","type":"plante","img":"systems/foundryvtt-reve-de-dragon/icons/botanique/Amandelle.webp","effects":[],"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.faune-flore-mineraux.w7jEFHGFrcrKAesQ"}},"_id":"QN2KLZLNL1JUh2bF","system":{"description":"<p>Fruit de l’amandelier, un petit arbuste à feuilles très découpées de couleur mauve pâle à violet foncé. L’amandelle est une noix plate et allongée au goût d’amande allié au parfum de violette.</p>\n<p>Fréquente.</p>","descriptionmj":"","encombrement":0.01,"quantite":1,"qualite":0,"cout":0,"milieu":"Tous","environnement":[{"milieu":"Collines","rarete":"Frequente","frequence":18},{"milieu":"Cours d'eau","rarete":"Frequente","frequence":18},{"milieu":"Déserts","rarete":"Frequente","frequence":18},{"milieu":"Forêts","rarete":"Frequente","frequence":18},{"milieu":"Marais","rarete":"Frequente","frequence":18},{"milieu":"Montagnes","rarete":"Frequente","frequence":18},{"milieu":"Plaines","rarete":"Frequente","frequence":18}],"sust":0.1,"exotisme":0,"niveau":0,"base":0,"categorie":"Cuisine","rarete":"Frequente"},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.6.0","coreVersion":"10.291","createdTime":1669734708521,"modifiedTime":1673791120973,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"},"folder":null,"sort":0,"ownership":{"default":0,"Hp9ImM4o9YRTSdfu":3}}
|
||||||
{"name":"Pigeon","type":"faune","img":"systems/foundryvtt-reve-de-dragon/icons/faune/oiseau.webp","system":{"description":"<p>Pigeon. Plaine, 500 g, 1 sust.</p>","descriptionmj":"","encombrement":0.2,"quantite":1,"qualite":0,"cout":0,"milieu":"Plaine","environnement":[{"milieu":"Plaines","rarete":"Commune","frequence":68}],"sust":1,"exotisme":0,"categorie":"","actor":{"id":"","pack":"","name":""}},"effects":[],"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.faune-flore-mineraux.QrQM7bMCKWKdfFwA"}},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.3.9","coreVersion":"10.291","createdTime":1670580597921,"modifiedTime":1670621588445,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"},"_id":"QrQM7bMCKWKdfFwA","folder":null,"sort":0,"ownership":{"default":0,"jtRmvSuwkwMmIMf0":3}}
|
{"name":"Damaskin","type":"faune","img":"systems/foundryvtt-reve-de-dragon/icons/faune/andurak.webp","system":{"description":"<p>Damaskin. Forêt, 50 kg, 100 sust. Variété de petit daim vivant sous des cli<br>mats plus froids et à la fourrure grise et noire tachetée de blanc ou de gris clair.</p>","descriptionmj":"","encombrement":25,"quantite":1,"qualite":0,"cout":0,"milieu":"Forêt","environnement":[{"milieu":"Forêts","rarete":"Frequente","frequence":18}],"sust":100,"exotisme":0,"categorie":"","actor":{"id":"","pack":"","name":""}},"effects":[],"flags":{"core":{"sourceId":"Item.LU5eutNQqwm52oOG"}},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.6.0","coreVersion":"10.291","createdTime":1670580597921,"modifiedTime":1673657676877,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"},"_id":"QVEkBjXEVxjlrUK9","folder":null,"sort":0,"ownership":{"default":0,"jtRmvSuwkwMmIMf0":3}}
|
||||||
{"name":"Liquette","type":"faune","img":"systems/foundryvtt-reve-de-dragon/icons/faune/ver.webp","system":{"description":"<p><span class=\"fontstyle0\">Gastéropode sans coquille, voisin de la limace, de couleur blanchâtre et semblable à de la pâte de guimauve. Excellente grillée sur les braises d’un feu de camp ou devant la cheminée.</span> </p>","descriptionmj":"","encombrement":0.02,"quantite":1,"qualite":0,"cout":0,"milieu":"","environnement":[{"milieu":"Collines","rarete":"Frequente","frequence":27},{"milieu":"Forêts","rarete":"Commune","frequence":54},{"milieu":"Marais","rarete":"Frequente","frequence":18},{"milieu":"Plaines","rarete":"Frequente","frequence":18}],"sust":0.2,"exotisme":0,"categorie":"","actor":{"id":"","pack":"","name":""}},"effects":[],"flags":{},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.3.9","coreVersion":"10.291","createdTime":1670616668493,"modifiedTime":1670621588398,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"},"folder":null,"sort":0,"ownership":{"default":0,"Hp9ImM4o9YRTSdfu":3},"_id":"QujuNoksfSYVewKQ"}
|
{"name":"Loup","type":"faune","img":"systems/foundryvtt-reve-de-dragon/icons/faune/wolf-head.webp","system":{"description":"<p>Loup. Forêt, 55 kg, 100 sust. Plus évitéque recherché (voir le lycan, p406).</p>","descriptionmj":"","encombrement":27,"quantite":1,"qualite":0,"cout":0,"milieu":"Forets","environnement":[{"milieu":"Forêts","rarete":"Frequente","frequence":18}],"sust":100,"exotisme":0,"categorie":"","actor":{"id":"99I06oTwCziLTnnl","pack":"foundryvtt-reve-de-dragon.animaux","name":"Lycan"}},"effects":[],"flags":{"core":{"sourceId":"Item.LU5eutNQqwm52oOG"}},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.6.0","coreVersion":"10.291","createdTime":1670580597921,"modifiedTime":1673657676879,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"},"_id":"QhdvDcc3DTuoXkBW","folder":null,"sort":0,"ownership":{"default":0,"jtRmvSuwkwMmIMf0":3}}
|
||||||
{"name":"Ortironce","type":"herbe","flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.faune-flore-mineraux.RpUC6z3xhwnmv3sp"}},"img":"systems/foundryvtt-reve-de-dragon/icons/botanique/Ortironce.webp","effects":[],"_id":"RpUC6z3xhwnmv3sp","system":{"description":"<p>Ronce venimeuse infestant de nombreux fourrés.</p>\n<p>M4 \\ P 1 minute \\ D2 \\ -3 \\ Bitume de Camphre +12, Teinture d’Érozonne +8.</p>\n<p>Commune.</p>","descriptionmj":"","encombrement":0,"quantite":1,"qualite":0,"cout":0,"milieu":"Forêts","environnement":[{"milieu":"Collines","rarete":"Commune","frequence":54},{"milieu":"Cours d'eau","rarete":"Commune","frequence":54},{"milieu":"Forêts","rarete":"Commune","frequence":54},{"milieu":"Plaines","rarete":"Commune","frequence":54}],"niveau":0,"base":0,"categorie":"","rarete":"Commune"},"ownership":{"default":0,"rYShh2P1DNavdoBD":3},"folder":null,"sort":0,"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.3.9","coreVersion":"10.291","createdTime":1669734708522,"modifiedTime":1670621588442,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
{"name":"Pigeon","type":"faune","img":"systems/foundryvtt-reve-de-dragon/icons/faune/oiseau.webp","system":{"description":"<p>Pigeon. Plaine, 500 g, 1 sust.</p>","descriptionmj":"","encombrement":0.2,"quantite":1,"qualite":0,"cout":0,"milieu":"Plaine","environnement":[{"milieu":"Plaines","rarete":"Commune","frequence":68}],"sust":1,"exotisme":0,"categorie":"","actor":{"id":"","pack":"","name":""}},"effects":[],"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.faune-flore-mineraux.QrQM7bMCKWKdfFwA"}},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.6.0","coreVersion":"10.291","createdTime":1670580597921,"modifiedTime":1673657676883,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"},"_id":"QrQM7bMCKWKdfFwA","folder":null,"sort":0,"ownership":{"default":0,"jtRmvSuwkwMmIMf0":3}}
|
||||||
{"name":"Cancre","type":"faune","img":"systems/foundryvtt-reve-de-dragon/icons/faune/cancre.webp","system":{"description":"<p><span class=\"fontstyle0\">Crustacé gris-vert, semblable au crabe, qui trompe habilement son monde en se déplaçant ni de travers, ni tout droit, mais à reculons.</span> </p>","descriptionmj":"","encombrement":0.2,"quantite":1,"qualite":0,"cout":0,"milieu":"","environnement":[{"milieu":"Maritimes","rarete":"Frequente","frequence":18}],"sust":1,"exotisme":0,"categorie":"","actor":{"id":"","pack":"","name":""}},"effects":[],"flags":{},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.3.9","coreVersion":"10.291","createdTime":1670616441674,"modifiedTime":1670621588397,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"},"folder":null,"sort":0,"ownership":{"default":0,"Hp9ImM4o9YRTSdfu":3},"_id":"RvfkIVHt6FzCp4TZ"}
|
{"name":"Liquette","type":"faune","img":"systems/foundryvtt-reve-de-dragon/icons/faune/ver.webp","system":{"description":"<p><span class=\"fontstyle0\">Gastéropode sans coquille, voisin de la limace, de couleur blanchâtre et semblable à de la pâte de guimauve. Excellente grillée sur les braises d’un feu de camp ou devant la cheminée.</span> </p>","descriptionmj":"","encombrement":0.02,"quantite":1,"qualite":0,"cout":0,"milieu":"","environnement":[{"milieu":"Collines","rarete":"Frequente","frequence":27},{"milieu":"Forêts","rarete":"Commune","frequence":54},{"milieu":"Marais","rarete":"Frequente","frequence":18},{"milieu":"Plaines","rarete":"Frequente","frequence":18}],"sust":0.2,"exotisme":0,"categorie":"","actor":{"id":"","pack":"","name":""}},"effects":[],"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.faune-flore-mineraux.QujuNoksfSYVewKQ"}},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.6.0","coreVersion":"10.291","createdTime":1670616668493,"modifiedTime":1673657676879,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"},"folder":null,"sort":0,"ownership":{"default":0,"Hp9ImM4o9YRTSdfu":3},"_id":"QujuNoksfSYVewKQ"}
|
||||||
{"name":"Nartha","type":"ingredient","img":"systems/foundryvtt-reve-de-dragon/icons/objets/nartha.webp","effects":[],"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.equipement.3mHSocNVPyWkmGBR"}},"system":{"description":"<p>Poudre noire obtenue par disruption alchimique du minerai appelé <em>narthalide</em>, sorte de marne.</p>\n<p>VUE/Alchimie à -3</p>","descriptionmj":"","encombrement":0.001,"quantite":1,"qualite":0,"cout":0.4,"milieu":"Obtenu à partir de marne","environnement":[{"milieu":"Cours d'eau","rarete":"Frequente","frequence":30},{"milieu":"Marais","rarete":"Frequente","frequence":30},{"milieu":"Plaines","rarete":"Frequente","frequence":30}],"sust":0,"exotisme":0,"niveau":0,"base":0,"categorie":"Alchimie","rarete":""},"ownership":{"default":0,"rYShh2P1DNavdoBD":3,"Hp9ImM4o9YRTSdfu":3},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.3.9","coreVersion":"10.291","createdTime":1668808206015,"modifiedTime":1670621588440,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"},"folder":null,"sort":0,"_id":"SiFtJoydPawJaMKA"}
|
{"name":"Ortironce","type":"herbe","flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.faune-flore-mineraux.RpUC6z3xhwnmv3sp"}},"img":"systems/foundryvtt-reve-de-dragon/icons/botanique/Ortironce.webp","effects":[],"_id":"RpUC6z3xhwnmv3sp","system":{"description":"<p>Ronce venimeuse infestant de nombreux fourrés.</p><p>En cas de contact, voir: @UUID[Compendium.foundryvtt-reve-de-dragon.maladies-et-poisons.bEDPtCAlJwmoZx5p]{Ortironce}</p><p>Commune.</p>","descriptionmj":"","encombrement":0,"quantite":1,"qualite":0,"cout":0,"milieu":"Forêts","environnement":[{"milieu":"Collines","rarete":"Commune","frequence":54},{"milieu":"Cours d'eau","rarete":"Commune","frequence":54},{"milieu":"Forêts","rarete":"Commune","frequence":54},{"milieu":"Plaines","rarete":"Commune","frequence":54}],"sust":0,"exotisme":0,"niveau":0,"base":0,"categorie":"Toxique","rarete":"Commune"},"ownership":{"default":0,"rYShh2P1DNavdoBD":3},"folder":null,"sort":0,"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.6.0","coreVersion":"10.291","createdTime":1669734708522,"modifiedTime":1673792390161,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
||||||
{"name":"Flottard","type":"faune","img":"systems/foundryvtt-reve-de-dragon/icons/faune/raton-laveur.webp","system":{"description":"<p>Flottard. Rivage, 15 kg, 35 sust. Le flottard, surtout recherché pour sa peau, est une sorte de gros castor à forme de saucisse, flottant sur les eaux semblable à une bûche qui dérive. Il se nourrit d’insectes et de larves. </p>","descriptionmj":"","encombrement":7,"quantite":1,"qualite":0,"cout":0,"milieu":"Rivage","environnement":[{"milieu":"Forêts","rarete":"Rare","frequence":6}],"sust":35,"exotisme":0,"categorie":"","actor":{"id":"","pack":"","name":""}},"effects":[],"flags":{"core":{"sourceId":"Item.LU5eutNQqwm52oOG"}},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.3.9","coreVersion":"10.291","createdTime":1670580597921,"modifiedTime":1670621588439,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"},"_id":"TQqwPEX49058mYQO","folder":null,"sort":0,"ownership":{"default":0,"jtRmvSuwkwMmIMf0":3}}
|
{"name":"Cancre","type":"faune","img":"systems/foundryvtt-reve-de-dragon/icons/faune/cancre.webp","system":{"description":"<p><span class=\"fontstyle0\">Crustacé gris-vert, semblable au crabe, qui trompe habilement son monde en se déplaçant ni de travers, ni tout droit, mais à reculons.</span> </p>","descriptionmj":"","encombrement":0.2,"quantite":1,"qualite":0,"cout":0,"milieu":"","environnement":[{"milieu":"Maritimes","rarete":"Frequente","frequence":18}],"sust":1,"exotisme":0,"categorie":"","actor":{"id":"","pack":"","name":""}},"effects":[],"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.faune-flore-mineraux.RvfkIVHt6FzCp4TZ"}},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.6.0","coreVersion":"10.291","createdTime":1670616441674,"modifiedTime":1673657676875,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"},"folder":null,"sort":0,"ownership":{"default":0,"Hp9ImM4o9YRTSdfu":3},"_id":"RvfkIVHt6FzCp4TZ"}
|
||||||
{"name":"Crétamère","type":"ingredient","flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.faune-flore-mineraux.Tfl4cElQxPQEXnPY"}},"img":"systems/foundryvtt-reve-de-dragon/icons/botanique/Cr%C3%A9tam%C3%A8re.webp","effects":[],"_id":"Tfl4cElQxPQEXnPY","system":{"description":"<p>Petite fraise des bois en forme de crête dentelée. Son goût est très amer et devrait suffire à dissuader les gourmands.</p>\n<p>M3 \\ P 3 minutes \\ D2 \\ -3 \\ Lait de lune +12, Gelée royale +8.</p>\n<p>Fréquente.</p>","descriptionmj":"","encombrement":0.02,"quantite":1,"qualite":0,"cout":0,"milieu":"Tous","environnement":[{"milieu":"Collines","rarete":"Frequente","frequence":18},{"milieu":"Cours d'eau","rarete":"Frequente","frequence":18},{"milieu":"Déserts","rarete":"Frequente","frequence":18},{"milieu":"Forêts","rarete":"Frequente","frequence":18},{"milieu":"Marais","rarete":"Frequente","frequence":18},{"milieu":"Montagnes","rarete":"Frequente","frequence":18},{"milieu":"Plaines","rarete":"Frequente","frequence":18}],"sust":0,"exotisme":0,"niveau":null,"base":0,"categorie":"","rarete":"Frequente"},"ownership":{"default":0,"rYShh2P1DNavdoBD":3},"folder":null,"sort":0,"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.3.9","coreVersion":"10.291","createdTime":1669734708522,"modifiedTime":1670621588438,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
{"name":"Nartha","type":"ingredient","img":"systems/foundryvtt-reve-de-dragon/icons/objets/nartha.webp","effects":[],"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.equipement.3mHSocNVPyWkmGBR"}},"system":{"description":"<p>Poudre noire obtenue par disruption alchimique du minerai appelé <em>narthalide</em>, sorte de marne.</p>\n<p>VUE/Alchimie à -3</p>","descriptionmj":"","encombrement":0.001,"quantite":1,"qualite":0,"cout":0.4,"milieu":"Obtenu à partir de marne","environnement":[{"milieu":"Cours d'eau","rarete":"Frequente","frequence":30},{"milieu":"Marais","rarete":"Frequente","frequence":30},{"milieu":"Plaines","rarete":"Frequente","frequence":30}],"sust":0,"exotisme":0,"niveau":0,"base":0,"categorie":"Alchimie","rarete":""},"ownership":{"default":0,"rYShh2P1DNavdoBD":3,"Hp9ImM4o9YRTSdfu":3},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.6.0","coreVersion":"10.291","createdTime":1668808206015,"modifiedTime":1673657676880,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"},"folder":null,"sort":0,"_id":"SiFtJoydPawJaMKA"}
|
||||||
{"name":"Klampin","type":"faune","img":"systems/foundryvtt-reve-de-dragon/icons/faune/rongeur.webp","system":{"description":"<p>Klampin. Forêt, plaine, 6 kg, 15 sust. Gros rongeur de couleur gris fauve (voir Cuisine, p343).</p>","descriptionmj":"","encombrement":3,"quantite":1,"qualite":0,"cout":0,"milieu":"Forets, Plaines","environnement":[{"milieu":"Forêts","rarete":"Commune","frequence":54},{"milieu":"Plaines","rarete":"Commune","frequence":54}],"sust":15,"exotisme":0,"categorie":"","actor":{"id":"","pack":"","name":""}},"effects":[],"flags":{"core":{"sourceId":"Item.LU5eutNQqwm52oOG"}},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.3.9","coreVersion":"10.291","createdTime":1670580597921,"modifiedTime":1670621588439,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"},"_id":"UYlEOi2YZLlhomQ5","folder":null,"sort":0,"ownership":{"default":0,"jtRmvSuwkwMmIMf0":3}}
|
{"name":"Flottard","type":"faune","img":"systems/foundryvtt-reve-de-dragon/icons/faune/raton-laveur.webp","system":{"description":"<p>Flottard. Rivage, 15 kg, 35 sust. Le flottard, surtout recherché pour sa peau, est une sorte de gros castor à forme de saucisse, flottant sur les eaux semblable à une bûche qui dérive. Il se nourrit d’insectes et de larves. </p>","descriptionmj":"","encombrement":7,"quantite":1,"qualite":0,"cout":0,"milieu":"Rivage","environnement":[{"milieu":"Forêts","rarete":"Rare","frequence":6}],"sust":35,"exotisme":0,"categorie":"","actor":{"id":"","pack":"","name":""}},"effects":[],"flags":{"core":{"sourceId":"Item.LU5eutNQqwm52oOG"}},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.6.0","coreVersion":"10.291","createdTime":1670580597921,"modifiedTime":1673657676878,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"},"_id":"TQqwPEX49058mYQO","folder":null,"sort":0,"ownership":{"default":0,"jtRmvSuwkwMmIMf0":3}}
|
||||||
{"name":"Mignote","type":"ingredient","flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.faune-flore-mineraux.UfzdMXpTcSgIpAEp"}},"img":"systems/foundryvtt-reve-de-dragon/icons/botanique/Mignote.webp","effects":[],"_id":"UfzdMXpTcSgIpAEp","system":{"description":"<p>Cône du mignotier, arbre voisin du mélèze, poussant en contreforts montagneux. Les mignotes doivent être grillées puis moulues. La farine obtenue a un goût chocolaté qui accompagne agréablement le lait chaud du petit déjeuner.</p>\n<p>Fréquente.</p>","descriptionmj":"","encombrement":0.05,"quantite":1,"qualite":0,"cout":0,"milieu":"Contreforts montagneux","environnement":[{"milieu":"Forêts","rarete":"Frequente","frequence":18},{"milieu":"Montagnes","rarete":"Frequente","frequence":18}],"sust":0,"exotisme":0,"niveau":0,"base":0,"categorie":"Cuisine","rarete":"Frequente"},"ownership":{"default":0,"rYShh2P1DNavdoBD":3},"folder":null,"sort":0,"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.3.9","coreVersion":"10.291","createdTime":1669734708522,"modifiedTime":1670621588440,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
{"name":"Crétamère","type":"plante","flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.faune-flore-mineraux.Tfl4cElQxPQEXnPY"}},"img":"systems/foundryvtt-reve-de-dragon/icons/botanique/Cr%C3%A9tam%C3%A8re.webp","effects":[],"_id":"Tfl4cElQxPQEXnPY","system":{"description":"<p>Petite fraise des bois en forme de crête dentelée. Son goût est très amer et devrait suffire à dissuader les gourmands.</p><p>Pour l'empoisonnement, voir: @UUID[Compendium.foundryvtt-reve-de-dragon.maladies-et-poisons.WBmXlsa3Wt2AN952]{Crétamère}</p><p>Fréquente.</p>","descriptionmj":"","encombrement":0.02,"quantite":1,"qualite":0,"cout":0,"milieu":"Tous","environnement":[{"milieu":"Collines","rarete":"Frequente","frequence":18},{"milieu":"Cours d'eau","rarete":"Frequente","frequence":18},{"milieu":"Déserts","rarete":"Frequente","frequence":18},{"milieu":"Forêts","rarete":"Frequente","frequence":18},{"milieu":"Marais","rarete":"Frequente","frequence":18},{"milieu":"Montagnes","rarete":"Frequente","frequence":18},{"milieu":"Plaines","rarete":"Frequente","frequence":18}],"sust":0,"exotisme":0,"niveau":null,"base":0,"categorie":"Poison","rarete":"Frequente"},"ownership":{"default":0,"rYShh2P1DNavdoBD":3},"folder":null,"sort":0,"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.6.0","coreVersion":"10.291","createdTime":1669734708522,"modifiedTime":1673791804099,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
||||||
{"name":"Faisan","type":"faune","img":"systems/foundryvtt-reve-de-dragon/icons/faune/oie.webp","system":{"description":"<p>Faisan. Plaine, 1,5 kg, 4 sust.</p>","descriptionmj":"","encombrement":0.7,"quantite":1,"qualite":0,"cout":0,"milieu":"Plaine","environnement":[{"milieu":"Plaines","rarete":"Commune","frequence":46}],"sust":4,"exotisme":0,"categorie":"","actor":{"id":"","pack":"","name":""}},"effects":[],"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.faune-flore-mineraux.Uqd3BFlPaq9s8LSN"}},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.3.9","coreVersion":"10.291","createdTime":1670580597921,"modifiedTime":1670621588445,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"},"_id":"Uqd3BFlPaq9s8LSN","folder":null,"sort":0,"ownership":{"default":0,"jtRmvSuwkwMmIMf0":3}}
|
{"name":"Klampin","type":"faune","img":"systems/foundryvtt-reve-de-dragon/icons/faune/rongeur.webp","system":{"description":"<p>Klampin. Forêt, plaine, 6 kg, 15 sust. Gros rongeur de couleur gris fauve (voir Cuisine, p343).</p>","descriptionmj":"","encombrement":3,"quantite":1,"qualite":0,"cout":0,"milieu":"Forets, Plaines","environnement":[{"milieu":"Forêts","rarete":"Commune","frequence":54},{"milieu":"Plaines","rarete":"Commune","frequence":54}],"sust":15,"exotisme":0,"categorie":"","actor":{"id":"","pack":"","name":""}},"effects":[],"flags":{"core":{"sourceId":"Item.LU5eutNQqwm52oOG"}},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.6.0","coreVersion":"10.291","createdTime":1670580597921,"modifiedTime":1673657676879,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"},"_id":"UYlEOi2YZLlhomQ5","folder":null,"sort":0,"ownership":{"default":0,"jtRmvSuwkwMmIMf0":3}}
|
||||||
{"name":"Marmotte","type":"faune","img":"systems/foundryvtt-reve-de-dragon/icons/faune/lapin.webp","system":{"description":"<p>Marmotte. Montagne, 6 kg, 12 sust.Surtout recherchée pour sa peau.</p>","descriptionmj":"","encombrement":3,"quantite":1,"qualite":0,"cout":0,"milieu":"Montagne","environnement":[{"milieu":"Montagnes","rarete":"Frequente","frequence":18}],"sust":12,"exotisme":0,"categorie":"","actor":{"id":"","pack":"","name":""}},"effects":[],"flags":{"core":{"sourceId":"Item.LU5eutNQqwm52oOG"}},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.3.9","coreVersion":"10.291","createdTime":1670580597921,"modifiedTime":1670621588440,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"},"_id":"V9aS6RvcxyBN5XY9","folder":null,"sort":0,"ownership":{"default":0,"jtRmvSuwkwMmIMf0":3}}
|
{"name":"Mignote","type":"plante","flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.faune-flore-mineraux.UfzdMXpTcSgIpAEp"}},"img":"systems/foundryvtt-reve-de-dragon/icons/botanique/Mignote.webp","effects":[],"_id":"UfzdMXpTcSgIpAEp","system":{"description":"<p>Cône du mignotier, arbre voisin du mélèze, poussant en contreforts montagneux. Les mignotes doivent être grillées puis moulues. La farine obtenue a un goût chocolaté qui accompagne agréablement le lait chaud du petit déjeuner.</p>\n<p>Fréquente.</p>","descriptionmj":"","encombrement":0.05,"quantite":1,"qualite":0,"cout":0,"milieu":"Contreforts montagneux","environnement":[{"milieu":"Forêts","rarete":"Frequente","frequence":18},{"milieu":"Montagnes","rarete":"Frequente","frequence":18}],"sust":0.5,"exotisme":0,"niveau":0,"base":0,"categorie":"Cuisine","rarete":"Frequente"},"ownership":{"default":0,"rYShh2P1DNavdoBD":3},"folder":null,"sort":0,"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.6.0","coreVersion":"10.291","createdTime":1669734708522,"modifiedTime":1673792028022,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
||||||
{"name":"Endebrume","type":"herbe","flags":{"core":{"sheetClass":"foundryvtt-reve-de-dragon.RdDItemSheet","sourceId":"Compendium.foundryvtt-reve-de-dragon.faune-flore-mineraux.VGId76yXwx2k0Cli"}},"img":"systems/foundryvtt-reve-de-dragon/icons/botanique/Endebrume.webp","effects":[],"_id":"VGId76yXwx2k0Cli","system":{"description":"<p><em>Herbe de repos.</em></p>\n<p>Petite plante ramifiée aux tiges fines comme des cheveux, poussant dans les lieux frais et humides : marais ombragés, certaines forêts, et parfois vallées de montagne. Un peu moins rare est la fausse endebrume, qui lui ressemble physiquement, mais n'a aucune vertu. <br /><em>VUE/Botanique à -1 pour savoir à quelle espèce on a affaire (jet obligatoire à chaque cueillette).</em></p>\n<p>Rare</p>","descriptionmj":"","encombrement":0,"quantite":1,"qualite":0,"cout":0.2,"milieu":"Lieux frais et humides","environnement":[{"milieu":"Cours d'eau","rarete":"Frequente","frequence":18},{"milieu":"Forêts","rarete":"Rare","frequence":9},{"milieu":"Marais","rarete":"Rare","frequence":6},{"milieu":"Sous-sols","rarete":"Rare","frequence":4}],"niveau":4,"base":0,"categorie":"Repos","rarete":"Rare"},"ownership":{"default":0,"rYShh2P1DNavdoBD":3},"folder":null,"sort":0,"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.3.9","coreVersion":"10.291","createdTime":1669734708522,"modifiedTime":1670621588438,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
{"name":"Faisan","type":"faune","img":"systems/foundryvtt-reve-de-dragon/icons/faune/oie.webp","system":{"description":"<p>Faisan. Plaine, 1,5 kg, 4 sust.</p>","descriptionmj":"","encombrement":0.7,"quantite":1,"qualite":0,"cout":0,"milieu":"Plaine","environnement":[{"milieu":"Plaines","rarete":"Commune","frequence":46}],"sust":4,"exotisme":0,"categorie":"","actor":{"id":"","pack":"","name":""}},"effects":[],"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.faune-flore-mineraux.Uqd3BFlPaq9s8LSN"}},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.6.0","coreVersion":"10.291","createdTime":1670580597921,"modifiedTime":1673657676878,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"},"_id":"Uqd3BFlPaq9s8LSN","folder":null,"sort":0,"ownership":{"default":0,"jtRmvSuwkwMmIMf0":3}}
|
||||||
{"name":"Poilute","type":"faune","img":"systems/foundryvtt-reve-de-dragon/icons/faune/rongeur.webp","system":{"description":"<p>Poilute. Forêt, plaine, 3 kg, 6 sust. Le poi-lute est une sorte de hérisson gris noir à longspoils souples angoras en guise de piquants.</p>","descriptionmj":"","encombrement":1.5,"quantite":1,"qualite":0,"cout":0,"milieu":"Forêt, plaine","environnement":[{"milieu":"Forêts","rarete":"Frequente","frequence":18},{"milieu":"Plaines","rarete":"Frequente","frequence":18}],"sust":6,"exotisme":0,"categorie":"","actor":{"id":"","pack":"","name":""}},"effects":[],"flags":{"core":{"sourceId":"Item.LU5eutNQqwm52oOG"}},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.3.9","coreVersion":"10.291","createdTime":1670580597921,"modifiedTime":1670621588442,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"},"_id":"VhHFo9GMF9zwNIgp","folder":null,"sort":0,"ownership":{"default":0,"jtRmvSuwkwMmIMf0":3}}
|
{"name":"Barbon","type":"faune","img":"systems/foundryvtt-reve-de-dragon/icons/faune/barbon.webp","system":{"description":"<p><span class=\"fontstyle0\">Carpe barbue des lacs et étangs à fond sablonneux. N’a généralement d’appétit qu’à l’aube et à la tombé de la nuit.</span> </p>","descriptionmj":"","encombrement":0.6,"quantite":1,"qualite":0,"cout":0.9,"milieu":"","environnement":[{"milieu":"Cours d'eau","rarete":"Frequente","frequence":18}],"sust":5,"exotisme":0,"categorie":"","actor":{"id":"","pack":"","name":""}},"effects":[],"flags":{"core":{"sourceId":"Item.V9I1f5pzZhGCcxdu"}},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.5.4","coreVersion":"10.291","createdTime":1673655805183,"modifiedTime":1673656874815,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"},"_id":"V9I1f5pzZhGCcxdu","folder":null,"sort":0,"ownership":{"default":0,"Hp9ImM4o9YRTSdfu":3}}
|
||||||
{"name":"Mélikasse","type":"ingredient","flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.faune-flore-mineraux.WbNKazgQZ4CeHtRo"}},"img":"systems/foundryvtt-reve-de-dragon/icons/botanique/M%C3%A9likasse.webp","effects":[],"_id":"WbNKazgQZ4CeHtRo","system":{"description":"<p>Fruit du mélikassier, arbuste buissonneux voisin du sureau. La mélikasse pousse en grappes de petites baies noires. Insolite, son goût est un mélange de cassis et de savon.</p>\n<p>Fréquente.</p>","descriptionmj":"","encombrement":0.02,"quantite":1,"qualite":0,"cout":0,"milieu":"Tous","environnement":[{"milieu":"Collines","rarete":"Frequente","frequence":18},{"milieu":"Cours d'eau","rarete":"Frequente","frequence":18},{"milieu":"Déserts","rarete":"Frequente","frequence":18},{"milieu":"Forêts","rarete":"Frequente","frequence":18},{"milieu":"Marais","rarete":"Frequente","frequence":18},{"milieu":"Montagnes","rarete":"Frequente","frequence":18},{"milieu":"Plaines","rarete":"Frequente","frequence":18}],"sust":0,"exotisme":0,"niveau":0,"base":0,"categorie":"Cuisine","rarete":"Frequente"},"ownership":{"default":0,"rYShh2P1DNavdoBD":3},"folder":null,"sort":0,"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.3.9","coreVersion":"10.291","createdTime":1669734708522,"modifiedTime":1670621588440,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
{"name":"Marmotte","type":"faune","img":"systems/foundryvtt-reve-de-dragon/icons/faune/lapin.webp","system":{"description":"<p>Marmotte. Montagne, 6 kg, 12 sust.Surtout recherchée pour sa peau.</p>","descriptionmj":"","encombrement":3,"quantite":1,"qualite":0,"cout":0,"milieu":"Montagne","environnement":[{"milieu":"Montagnes","rarete":"Frequente","frequence":18}],"sust":12,"exotisme":0,"categorie":"","actor":{"id":"","pack":"","name":""}},"effects":[],"flags":{"core":{"sourceId":"Item.LU5eutNQqwm52oOG"}},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.6.0","coreVersion":"10.291","createdTime":1670580597921,"modifiedTime":1673657676880,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"},"_id":"V9aS6RvcxyBN5XY9","folder":null,"sort":0,"ownership":{"default":0,"jtRmvSuwkwMmIMf0":3}}
|
||||||
{"name":"Aigronce","type":"herbe","flags":{"core":{"sheetClass":"foundryvtt-reve-de-dragon.RdDItemSheet","sourceId":"Compendium.foundryvtt-reve-de-dragon.faune-flore-mineraux.XVfDwjgzbRvotbP8"}},"img":"systems/foundryvtt-reve-de-dragon/icons/botanique/Aigronce.webp","effects":[],"_id":"XVfDwjgzbRvotbP8","system":{"description":"<p><em>Herbe de repos.</em></p>\n<p>Variété de klampine à l'odeur aigre et piquante. Pousse en lieux boisés des climats tempérés, parfois en lisière.</p>\n<p>Fréquente.</p>","descriptionmj":"","encombrement":0,"quantite":1,"qualite":0,"cout":0.04,"milieu":"Forêts tempérées","environnement":[{"milieu":"Forêts","rarete":"Frequente","frequence":18}],"niveau":2,"base":0,"categorie":"Repos","rarete":"Frequente"},"ownership":{"default":0,"rYShh2P1DNavdoBD":3},"folder":null,"sort":0,"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.3.9","coreVersion":"10.291","createdTime":1669734708522,"modifiedTime":1670621588436,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
{"name":"Endebrume","type":"herbe","flags":{"core":{"sheetClass":"foundryvtt-reve-de-dragon.RdDItemSheet","sourceId":"Compendium.foundryvtt-reve-de-dragon.faune-flore-mineraux.VGId76yXwx2k0Cli"}},"img":"systems/foundryvtt-reve-de-dragon/icons/botanique/Endebrume.webp","effects":[],"_id":"VGId76yXwx2k0Cli","system":{"description":"<p><em>Herbe de repos.</em></p>\n<p>Petite plante ramifiée aux tiges fines comme des cheveux, poussant dans les lieux frais et humides : marais ombragés, certaines forêts, et parfois vallées de montagne. Un peu moins rare est la fausse endebrume, qui lui ressemble physiquement, mais n'a aucune vertu. <br /><em>VUE/Botanique à -1 pour savoir à quelle espèce on a affaire (jet obligatoire à chaque cueillette).</em></p>\n<p>Rare</p>","descriptionmj":"","encombrement":0,"quantite":1,"qualite":0,"cout":0.2,"milieu":"Lieux frais et humides","environnement":[{"milieu":"Cours d'eau","rarete":"Frequente","frequence":18},{"milieu":"Forêts","rarete":"Rare","frequence":9},{"milieu":"Marais","rarete":"Rare","frequence":6},{"milieu":"Sous-sols","rarete":"Rare","frequence":4}],"sust":0,"exotisme":0,"niveau":4,"base":0,"categorie":"Repos","rarete":"Rare"},"ownership":{"default":0,"rYShh2P1DNavdoBD":3},"folder":null,"sort":0,"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.6.0","coreVersion":"10.291","createdTime":1669734708522,"modifiedTime":1673657676877,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
||||||
{"name":"Endorlotte","type":"herbe","flags":{"core":{"sheetClass":"foundryvtt-reve-de-dragon.RdDItemSheet","sourceId":"Compendium.foundryvtt-reve-de-dragon.faune-flore-mineraux.XWpfl6UmaMel1tJn"}},"img":"systems/foundryvtt-reve-de-dragon/icons/botanique/Endorlotte.webp","effects":[],"_id":"XWpfl6UmaMel1tJn","system":{"description":"<p>Plante voisine du gui, poussant en parasite dans les branches des arbres de toutes forêts, l’endorlotte est une herbe de soin fonctionnant comme les dix grandes herbes connues, avec un bonus de guérison de +5. Son pouvoir ne s’applique toutefois qu’à la récupération des points de vie, pas à la cicatrisation des blessures. <br /><br />Elle doit être préparée en décoction selon la règle standard, à raison de 12 - 5 = 7 brins pour une décoction, et bue par le convalescent. Puis lors du test de récupération des points de vie\": <br />Part. 4 points de vie regagnés <br />Sign. 3 points de vie regagnés <br />Norm. 2 points de vie regagnés <br />Tout échec. Aucun point, sans autre conséquence. <br /><br />Enchantée, la décoction d’endorlotte fonctionne selon la règle standard avec son bonus de +5, et pratiquement devient équivalente à l’ortigal noir. <br />Rare.</p>","descriptionmj":"","encombrement":0,"quantite":1,"qualite":0,"cout":0.25,"milieu":"Forêts","environnement":[{"milieu":"Forêts","rarete":"Rare","frequence":6}],"niveau":5,"base":0,"categorie":"Soin","rarete":"Rare"},"ownership":{"default":0,"rYShh2P1DNavdoBD":3},"folder":null,"sort":0,"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.3.9","coreVersion":"10.291","createdTime":1669734708522,"modifiedTime":1670621588438,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
{"name":"Fretin","type":"faune","img":"systems/foundryvtt-reve-de-dragon/icons/faune/fretin.webp","system":{"description":"<p>S<span class=\"fontstyle3\">orte de vairon ou de goujon. </span><span class=\"fontstyle0\">Plus souvent pêchée au filet ou à l’aide de nasses qu’à la ligne et l’hameçon.</span> <span class=\"fontstyle3\">Quand on en parle, on ajoute généralement l’adjectif « menu ».</span> </p>","descriptionmj":"","encombrement":0.01,"quantite":1,"qualite":0,"cout":0,"milieu":"","environnement":[{"milieu":"Cours d'eau","rarete":"Frequente","frequence":18}],"sust":0.1,"exotisme":0,"categorie":"","actor":{"id":"","pack":"","name":""}},"effects":[],"flags":{},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.5.4","coreVersion":"10.291","createdTime":1673656080829,"modifiedTime":1673656874816,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"},"_id":"VJ8HpbZvgJFMkAlG","folder":null,"sort":0,"ownership":{"default":0,"Hp9ImM4o9YRTSdfu":3}}
|
||||||
{"name":"Ortigal noir","type":"herbe","flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.faune-flore-mineraux.Z20wqDHmbgFQSyXo"}},"img":"systems/foundryvtt-reve-de-dragon/icons/botanique/Ortigal%20noir.webp","effects":[],"_id":"Z20wqDHmbgFQSyXo","system":{"description":"<p><em>Herbe de soin.</em></p>\n<p>Variété d’ortigal aux feuilles d’un vert sombre presque noir.</p>\n<p>Fréquent.</p>\n<p> </p>\n<p><em>Voir Les herbes de soin, p100.</em></p>","descriptionmj":"","encombrement":0,"quantite":1,"qualite":0,"cout":0.2,"milieu":"Marais","environnement":[{"milieu":"Marais","rarete":"Frequente","frequence":18}],"niveau":5,"base":0,"categorie":"Soin","rarete":"Frequente"},"ownership":{"default":0,"rYShh2P1DNavdoBD":3},"folder":null,"sort":0,"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.3.9","coreVersion":"10.291","createdTime":1669734708522,"modifiedTime":1670621588441,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
{"name":"Poilute","type":"faune","img":"systems/foundryvtt-reve-de-dragon/icons/faune/rongeur.webp","system":{"description":"<p>Poilute. Forêt, plaine, 3 kg, 6 sust. Le poi-lute est une sorte de hérisson gris noir à longspoils souples angoras en guise de piquants.</p>","descriptionmj":"","encombrement":1.5,"quantite":1,"qualite":0,"cout":0,"milieu":"Forêt, plaine","environnement":[{"milieu":"Forêts","rarete":"Frequente","frequence":18},{"milieu":"Plaines","rarete":"Frequente","frequence":18}],"sust":6,"exotisme":0,"categorie":"","actor":{"id":"","pack":"","name":""}},"effects":[],"flags":{"core":{"sourceId":"Item.LU5eutNQqwm52oOG"}},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.6.0","coreVersion":"10.291","createdTime":1670580597921,"modifiedTime":1673657676883,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"},"_id":"VhHFo9GMF9zwNIgp","folder":null,"sort":0,"ownership":{"default":0,"jtRmvSuwkwMmIMf0":3}}
|
||||||
{"name":"Canard","type":"faune","img":"systems/foundryvtt-reve-de-dragon/icons/faune/oie.webp","system":{"description":"<p>Canard. Rivage, 1,5 kg, 4 sust.</p>","descriptionmj":"","encombrement":0.7,"quantite":1,"qualite":0,"cout":0,"milieu":"Rivage","environnement":[{"milieu":"Cours d'eau","rarete":"Commune","frequence":54}],"sust":4,"exotisme":0,"categorie":"","actor":{"id":"","pack":"","name":""}},"effects":[],"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.faune-flore-mineraux.ZEAxjKBryjKzLPOp"}},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.3.9","coreVersion":"10.291","createdTime":1670580597921,"modifiedTime":1670621588446,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"},"_id":"ZEAxjKBryjKzLPOp","folder":null,"sort":0,"ownership":{"default":0,"jtRmvSuwkwMmIMf0":3}}
|
{"name":"Mélikasse","type":"plante","flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.faune-flore-mineraux.WbNKazgQZ4CeHtRo"}},"img":"systems/foundryvtt-reve-de-dragon/icons/botanique/M%C3%A9likasse.webp","effects":[],"_id":"WbNKazgQZ4CeHtRo","system":{"description":"<p>Fruit du mélikassier, arbuste buissonneux voisin du sureau. La mélikasse pousse en grappes de petites baies noires. Insolite, son goût est un mélange de cassis et de savon.</p>\n<p>Fréquente.</p>","descriptionmj":"","encombrement":0.02,"quantite":1,"qualite":0,"cout":0,"milieu":"Tous","environnement":[{"milieu":"Collines","rarete":"Frequente","frequence":18},{"milieu":"Cours d'eau","rarete":"Frequente","frequence":18},{"milieu":"Déserts","rarete":"Frequente","frequence":18},{"milieu":"Forêts","rarete":"Frequente","frequence":18},{"milieu":"Marais","rarete":"Frequente","frequence":18},{"milieu":"Montagnes","rarete":"Frequente","frequence":18},{"milieu":"Plaines","rarete":"Frequente","frequence":18}],"sust":0.2,"exotisme":0,"niveau":0,"base":0,"categorie":"Cuisine","rarete":"Frequente"},"ownership":{"default":0,"rYShh2P1DNavdoBD":3},"folder":null,"sort":0,"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.6.0","coreVersion":"10.291","createdTime":1669734708522,"modifiedTime":1673792038728,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
||||||
{"name":"Chèvre","type":"faune","img":"systems/foundryvtt-reve-de-dragon/icons/faune/chamois.webp","system":{"description":"<p>Chèvre. Colline, montagne, 25 kg, 55 sust.</p>","descriptionmj":"","encombrement":12,"quantite":1,"qualite":0,"cout":0,"milieu":"Colline, Montagne","environnement":[{"milieu":"Collines","rarete":"Frequente","frequence":18},{"milieu":"Montagnes","rarete":"Frequente","frequence":18}],"sust":55,"exotisme":0,"categorie":"","actor":{"id":"","pack":"","name":""}},"effects":[],"flags":{"core":{"sourceId":"Item.LU5eutNQqwm52oOG"}},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.3.9","coreVersion":"10.291","createdTime":1670580597921,"modifiedTime":1670621588437,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"},"_id":"ZoQCVfyFed9tTRiE","folder":null,"sort":0,"ownership":{"default":0,"jtRmvSuwkwMmIMf0":3}}
|
{"name":"Aigronce","type":"herbe","flags":{"core":{"sheetClass":"foundryvtt-reve-de-dragon.RdDItemSheet","sourceId":"Compendium.foundryvtt-reve-de-dragon.faune-flore-mineraux.XVfDwjgzbRvotbP8"}},"img":"systems/foundryvtt-reve-de-dragon/icons/botanique/Aigronce.webp","effects":[],"_id":"XVfDwjgzbRvotbP8","system":{"description":"<p><em>Herbe de repos.</em></p>\n<p>Variété de klampine à l'odeur aigre et piquante. Pousse en lieux boisés des climats tempérés, parfois en lisière.</p>\n<p>Fréquente.</p>","descriptionmj":"","encombrement":0,"quantite":1,"qualite":0,"cout":0.04,"milieu":"Forêts tempérées","environnement":[{"milieu":"Forêts","rarete":"Frequente","frequence":18}],"sust":0,"exotisme":0,"niveau":2,"base":0,"categorie":"Repos","rarete":"Frequente"},"ownership":{"default":0,"rYShh2P1DNavdoBD":3},"folder":null,"sort":0,"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.6.0","coreVersion":"10.291","createdTime":1669734708522,"modifiedTime":1673657676874,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
||||||
{"name":"Satum","type":"herbe","flags":{"core":{"sheetClass":"foundryvtt-reve-de-dragon.RdDItemSheet","sourceId":"Compendium.foundryvtt-reve-de-dragon.faune-flore-mineraux.bBiHuMCom4B4nXBD"}},"img":"systems/foundryvtt-reve-de-dragon/icons/botanique/Satum.webp","effects":[],"_id":"bBiHuMCom4B4nXBD","system":{"description":"<p>Également appelé nez de satin, le satum est une petite plante à feuille unique, douce et moirée comme le satin, poussant en toutes forêts, usuellement à l’orée des clairières. C’est une des herbes de base utilisées en alchimie.</p>\n<p>Commun.</p>\n<p> </p>\n<p><em>Voir Principes d’alchimie, p357.</em></p>","descriptionmj":"","encombrement":0,"quantite":1,"qualite":0,"cout":0.03,"milieu":"Forêts","environnement":[{"milieu":"Forêts","rarete":"Commune","frequence":54}],"niveau":null,"base":0,"categorie":"Alchimie","rarete":"Commune"},"ownership":{"default":0,"rYShh2P1DNavdoBD":3},"folder":null,"sort":0,"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.3.9","coreVersion":"10.291","createdTime":1669734708523,"modifiedTime":1670621588442,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
{"name":"Endorlotte","type":"herbe","flags":{"core":{"sheetClass":"foundryvtt-reve-de-dragon.RdDItemSheet","sourceId":"Compendium.foundryvtt-reve-de-dragon.faune-flore-mineraux.XWpfl6UmaMel1tJn"}},"img":"systems/foundryvtt-reve-de-dragon/icons/botanique/Endorlotte.webp","effects":[],"_id":"XWpfl6UmaMel1tJn","system":{"description":"<p>Plante voisine du gui, poussant en parasite dans les branches des arbres de toutes forêts, l’endorlotte est une herbe de soin fonctionnant comme les dix grandes herbes connues, avec un bonus de guérison de +5. Son pouvoir ne s’applique toutefois qu’à la récupération des points de vie, pas à la cicatrisation des blessures. <br /><br />Elle doit être préparée en décoction selon la règle standard, à raison de 12 - 5 = 7 brins pour une décoction, et bue par le convalescent. Puis lors du test de récupération des points de vie\": <br />Part. 4 points de vie regagnés <br />Sign. 3 points de vie regagnés <br />Norm. 2 points de vie regagnés <br />Tout échec. Aucun point, sans autre conséquence. <br /><br />Enchantée, la décoction d’endorlotte fonctionne selon la règle standard avec son bonus de +5, et pratiquement devient équivalente à l’ortigal noir. <br />Rare.</p>","descriptionmj":"","encombrement":0,"quantite":1,"qualite":0,"cout":0.25,"milieu":"Forêts","environnement":[{"milieu":"Forêts","rarete":"Rare","frequence":6}],"sust":0,"exotisme":0,"niveau":5,"base":0,"categorie":"Soin","rarete":"Rare"},"ownership":{"default":0,"rYShh2P1DNavdoBD":3},"folder":null,"sort":0,"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.6.0","coreVersion":"10.291","createdTime":1669734708522,"modifiedTime":1673657676877,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
||||||
{"name":"Chronophile","type":"herbe","flags":{"core":{"sheetClass":"foundryvtt-reve-de-dragon.RdDItemSheet","sourceId":"Compendium.foundryvtt-reve-de-dragon.faune-flore-mineraux.c6Gdd4A0QCTEnp6o"}},"img":"systems/foundryvtt-reve-de-dragon/icons/botanique/Chronophile.webp","effects":[],"_id":"c6Gdd4A0QCTEnp6o","system":{"description":"","descriptionmj":"","encombrement":0,"quantite":1,"qualite":0,"cout":0.2,"milieu":"Forêts","environnement":[{"milieu":"Forêts","rarete":"Rare","frequence":6}],"niveau":null,"base":0,"categorie":"Alchimie","rarete":"Rare"},"ownership":{"default":0,"rYShh2P1DNavdoBD":3},"folder":null,"sort":0,"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.3.9","coreVersion":"10.291","createdTime":1669734708523,"modifiedTime":1670621588438,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
{"name":"Ortigal noir","type":"herbe","flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.faune-flore-mineraux.Z20wqDHmbgFQSyXo"}},"img":"systems/foundryvtt-reve-de-dragon/icons/botanique/Ortigal%20noir.webp","effects":[],"_id":"Z20wqDHmbgFQSyXo","system":{"description":"<p><em>Herbe de soin.</em></p>\n<p>Variété d’ortigal aux feuilles d’un vert sombre presque noir.</p>\n<p>Fréquent.</p>\n<p> </p>\n<p><em>Voir Les herbes de soin, p100.</em></p>","descriptionmj":"","encombrement":0,"quantite":1,"qualite":0,"cout":0.2,"milieu":"Marais","environnement":[{"milieu":"Marais","rarete":"Frequente","frequence":18}],"sust":0,"exotisme":0,"niveau":5,"base":0,"categorie":"Soin","rarete":"Frequente"},"ownership":{"default":0,"rYShh2P1DNavdoBD":3},"folder":null,"sort":0,"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.6.0","coreVersion":"10.291","createdTime":1669734708522,"modifiedTime":1673657676882,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
||||||
{"name":"Névropenthe","type":"herbe","flags":{"core":{"sheetClass":"foundryvtt-reve-de-dragon.RdDItemSheet","sourceId":"Compendium.foundryvtt-reve-de-dragon.faune-flore-mineraux.chm4mCNhQXwJEtNy"}},"img":"systems/foundryvtt-reve-de-dragon/icons/botanique/N%C3%A9vropenthe.webp","effects":[],"_id":"chm4mCNhQXwJEtNy","system":{"description":"<p>Plante foisonnante à grappes de feuilles rondes, dont le vert est souvent piqueté de points rouges. Pousse au coeur de toutes forêts à l’abri des fourrés et des ronciers. C’est une des herbes de base utilisées en alchimie.</p>\n<p>Rare.</p>\n<p> </p>\n<p><em style=\"box-sizing: border-box; user-select: text; color: #191813; font-family: GoudyAcc, sans-serif; text-align: justify;\">Voir Principes d’alchimie, p357.</em></p>","descriptionmj":"","encombrement":0,"quantite":1,"qualite":0,"cout":0.06,"milieu":"Forêts","environnement":[{"milieu":"Forêts","rarete":"Rare","frequence":6}],"niveau":null,"base":0,"categorie":"Alchimie","rarete":"Rare"},"ownership":{"default":0,"rYShh2P1DNavdoBD":3},"folder":null,"sort":0,"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.3.9","coreVersion":"10.291","createdTime":1669734708523,"modifiedTime":1670621588441,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
{"name":"Canard","type":"faune","img":"systems/foundryvtt-reve-de-dragon/icons/faune/oie.webp","system":{"description":"<p>Canard. Rivage, 1,5 kg, 4 sust.</p>","descriptionmj":"","encombrement":0.7,"quantite":1,"qualite":0,"cout":0,"milieu":"Rivage","environnement":[{"milieu":"Cours d'eau","rarete":"Commune","frequence":54}],"sust":4,"exotisme":0,"categorie":"","actor":{"id":"","pack":"","name":""}},"effects":[],"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.faune-flore-mineraux.ZEAxjKBryjKzLPOp"}},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.6.0","coreVersion":"10.291","createdTime":1670580597921,"modifiedTime":1673657676875,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"},"_id":"ZEAxjKBryjKzLPOp","folder":null,"sort":0,"ownership":{"default":0,"jtRmvSuwkwMmIMf0":3}}
|
||||||
{"name":"Ortigal","type":"herbe","flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.faune-flore-mineraux.ckBk9H7jhFQC2IRX"}},"img":"systems/foundryvtt-reve-de-dragon/icons/botanique/Ortigal.webp","effects":[],"_id":"ckBk9H7jhFQC2IRX","system":{"description":"<p><em>Herbe de soin.</em></p>\n<p>Plante aquatique des marais, aux petites feuilles rondes et luisantes, voisine du nénuphar.</p>\n<p>Fréquent.</p>\n<p> </p>\n<p><em>Voir Les herbes de soin, p100.</em></p>","descriptionmj":"","encombrement":0,"quantite":1,"qualite":0,"cout":0.1,"milieu":"Marais","environnement":[{"milieu":"Marais","rarete":"Frequente","frequence":18}],"niveau":4,"base":0,"categorie":"Soin","rarete":"Frequente"},"ownership":{"default":0,"rYShh2P1DNavdoBD":3},"folder":null,"sort":0,"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.3.9","coreVersion":"10.291","createdTime":1669734708524,"modifiedTime":1670621588441,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
{"name":"Chèvre","type":"faune","img":"systems/foundryvtt-reve-de-dragon/icons/faune/chamois.webp","system":{"description":"<p>Chèvre. Colline, montagne, 25 kg, 55 sust.</p>","descriptionmj":"","encombrement":12,"quantite":1,"qualite":0,"cout":0,"milieu":"Colline, Montagne","environnement":[{"milieu":"Collines","rarete":"Frequente","frequence":18},{"milieu":"Montagnes","rarete":"Frequente","frequence":18}],"sust":55,"exotisme":0,"categorie":"","actor":{"id":"","pack":"","name":""}},"effects":[],"flags":{"core":{"sourceId":"Item.LU5eutNQqwm52oOG"}},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.6.0","coreVersion":"10.291","createdTime":1670580597921,"modifiedTime":1673657676876,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"},"_id":"ZoQCVfyFed9tTRiE","folder":null,"sort":0,"ownership":{"default":0,"jtRmvSuwkwMmIMf0":3}}
|
||||||
{"name":"Loutre","type":"faune","img":"systems/foundryvtt-reve-de-dragon/icons/faune/raton-laveur.webp","system":{"description":"<p>Loutre. Rivage, 15 kg, 32 sust. Surtout recherchée pour sa peau.</p>","descriptionmj":"","encombrement":7.5,"quantite":1,"qualite":0,"cout":0,"milieu":"Rivages","environnement":[{"milieu":"Cours d'eau","rarete":"Rare","frequence":6}],"sust":32,"exotisme":0,"categorie":"","actor":{"id":"","pack":"","name":""}},"effects":[],"flags":{"core":{"sourceId":"Item.LU5eutNQqwm52oOG"}},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.3.9","coreVersion":"10.291","createdTime":1670580597921,"modifiedTime":1670621588440,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"},"_id":"d7n9u9OAELDLtAvJ","folder":null,"sort":0,"ownership":{"default":0,"jtRmvSuwkwMmIMf0":3}}
|
{"name":"Brocart","type":"faune","img":"systems/foundryvtt-reve-de-dragon/icons/faune/brocart.webp","system":{"description":"<p>Brochet bleu noir aussi vorace que méfiant. Le ramener est un challenge.</p>","descriptionmj":"","encombrement":0.6,"quantite":1,"qualite":0,"cout":0.12,"milieu":"","environnement":[{"milieu":"Cours d'eau","rarete":"Frequente","frequence":18}],"sust":6,"exotisme":0,"categorie":"","actor":{"id":"","pack":"","name":""}},"effects":[],"flags":{"core":{"sourceId":"Item.aLKXl1sBtiQRBMiJ"}},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.5.4","coreVersion":"10.291","createdTime":1673655805183,"modifiedTime":1673656874815,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"},"_id":"aLKXl1sBtiQRBMiJ","folder":null,"sort":0,"ownership":{"default":0,"Hp9ImM4o9YRTSdfu":3}}
|
||||||
{"name":"Sanglier","type":"faune","img":"systems/foundryvtt-reve-de-dragon/icons/faune/sanglier.webp","system":{"description":"<p>Sanglier. Forêt, 150 kg, 360 sust (voir lecornicochon, p402).</p>","descriptionmj":"","encombrement":75,"quantite":1,"qualite":0,"cout":0,"milieu":"Forêt","environnement":[{"milieu":"Forêts","rarete":"Commune","frequence":54}],"sust":360,"exotisme":0,"categorie":"","actor":{"id":"VsEw24DEekBbU69Z","pack":"foundryvtt-reve-de-dragon.animaux","name":"Cornicochon"}},"effects":[],"flags":{"core":{"sourceId":"Item.LU5eutNQqwm52oOG"}},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.3.9","coreVersion":"10.291","createdTime":1670580597921,"modifiedTime":1670621588442,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"},"_id":"dp28i9k5Mpjyr9jl","folder":null,"sort":0,"ownership":{"default":0,"jtRmvSuwkwMmIMf0":3}}
|
{"name":"Satum","type":"herbe","flags":{"core":{"sheetClass":"foundryvtt-reve-de-dragon.RdDItemSheet","sourceId":"Compendium.foundryvtt-reve-de-dragon.faune-flore-mineraux.bBiHuMCom4B4nXBD"}},"img":"systems/foundryvtt-reve-de-dragon/icons/botanique/Satum.webp","effects":[],"_id":"bBiHuMCom4B4nXBD","system":{"description":"<p>Également appelé nez de satin, le satum est une petite plante à feuille unique, douce et moirée comme le satin, poussant en toutes forêts, usuellement à l’orée des clairières. C’est une des herbes de base utilisées en alchimie.</p>\n<p>Commun.</p>\n<p> </p>\n<p><em>Voir Principes d’alchimie, p357.</em></p>","descriptionmj":"","encombrement":0,"quantite":1,"qualite":0,"cout":0.03,"milieu":"Forêts","environnement":[{"milieu":"Forêts","rarete":"Commune","frequence":54}],"sust":0,"exotisme":0,"niveau":null,"base":0,"categorie":"Alchimie","rarete":"Commune"},"ownership":{"default":0,"rYShh2P1DNavdoBD":3},"folder":null,"sort":0,"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.6.0","coreVersion":"10.291","createdTime":1669734708523,"modifiedTime":1673657676885,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
||||||
{"name":"Croupigne","type":"ingredient","flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.faune-flore-mineraux.dr2xZkUKaWa3Gjvr"}},"img":"systems/foundryvtt-reve-de-dragon/icons/botanique/Croupigne.webp","effects":[],"_id":"dr2xZkUKaWa3Gjvr","system":{"description":"<p>Sorte de groseille rose pâle, poussant à l’orée des sous-bois et des clairières.</p>\n<p>M2 \\ P 5 minutes \\ D1 \\ -3 \\ Élixir des Gnomes +16, Gelée royale +10.</p>\n<p>Fréquente.</p>","descriptionmj":"","encombrement":0.02,"quantite":1,"qualite":0,"cout":0,"milieu":"Forêts","environnement":[{"milieu":"Forêts","rarete":"Frequente","frequence":18}],"sust":0,"exotisme":0,"niveau":null,"base":0,"categorie":"","rarete":"Frequente"},"ownership":{"default":0,"rYShh2P1DNavdoBD":3},"folder":null,"sort":0,"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.3.9","coreVersion":"10.291","createdTime":1669734708524,"modifiedTime":1670621588438,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
{"name":"Mascarade","type":"faune","img":"systems/foundryvtt-reve-de-dragon/icons/faune/poisson.webp","system":{"description":"<p>Poisson voisin de la tanche, dont les écailles dessinent un damier. Existe en plusieurs coloris, gris et noir (le plus fréquent), mais également de deux tons de vert, ou rose et violet, bleu et or</p>","descriptionmj":"","encombrement":0.2,"quantite":1,"qualite":0,"cout":0.03,"milieu":"","environnement":[{"milieu":"Cours d'eau","rarete":"Frequente","frequence":18}],"sust":2,"exotisme":0,"categorie":"","actor":{"id":"","pack":"","name":""}},"effects":[],"flags":{},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.5.4","coreVersion":"10.291","createdTime":1673656080829,"modifiedTime":1673656874816,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"},"_id":"bImpa1mSK9iqjGwt","folder":null,"sort":0,"ownership":{"default":0,"Hp9ImM4o9YRTSdfu":3}}
|
||||||
{"name":"Noisemûre","type":"ingredient","flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.faune-flore-mineraux.eB5Nhus3Ao4H8ePT"}},"img":"systems/foundryvtt-reve-de-dragon/icons/botanique/Noisem%C3%BBre.webp","effects":[],"_id":"eB5Nhus3Ao4H8ePT","system":{"description":"<p>Fruit du noisemûrier, petit arbuste très ramifié vivant en sous-bois à l’ombre des plus grands arbres. La noisemûre a extérieurement l’apparence d’une grosse noisette à la coquille rougeâtre et granulée. Intérieurement, sa chair est tendre, juteuse et sucrée.</p>\n<p>Fréquente.</p>","descriptionmj":"","encombrement":0.02,"quantite":1,"qualite":0,"cout":0,"milieu":"Forêts","environnement":[{"milieu":"Forêts","rarete":"Frequente","frequence":18}],"sust":0,"exotisme":0,"niveau":0,"base":0,"categorie":"Cuisine","rarete":"Frequente"},"ownership":{"default":0,"rYShh2P1DNavdoBD":3},"folder":null,"sort":0,"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.3.9","coreVersion":"10.291","createdTime":1669734708525,"modifiedTime":1670621588441,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
{"name":"Chronophile","type":"herbe","flags":{"core":{"sheetClass":"foundryvtt-reve-de-dragon.RdDItemSheet","sourceId":"Compendium.foundryvtt-reve-de-dragon.faune-flore-mineraux.c6Gdd4A0QCTEnp6o"}},"img":"systems/foundryvtt-reve-de-dragon/icons/botanique/Chronophile.webp","effects":[],"_id":"c6Gdd4A0QCTEnp6o","system":{"description":"","descriptionmj":"","encombrement":0,"quantite":1,"qualite":0,"cout":0.2,"milieu":"Forêts","environnement":[{"milieu":"Forêts","rarete":"Rare","frequence":6}],"sust":0,"exotisme":0,"niveau":null,"base":0,"categorie":"Alchimie","rarete":"Rare"},"ownership":{"default":0,"rYShh2P1DNavdoBD":3},"folder":null,"sort":0,"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.6.0","coreVersion":"10.291","createdTime":1669734708523,"modifiedTime":1673657676876,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
||||||
{"name":"Fricotille","type":"ingredient","flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.faune-flore-mineraux.eKrtkHj3EbYCZu8Y"}},"img":"systems/foundryvtt-reve-de-dragon/icons/botanique/Fricotille.webp","effects":[],"_id":"eKrtkHj3EbYCZu8Y","system":{"description":"<p>Bolet à pied mince et blanc, et large chapeau pointu blanc à pois bleus.</p>\n<p>Fréquente.</p>","descriptionmj":"","encombrement":0.1,"quantite":1,"qualite":0,"cout":0,"milieu":"Lieux sombres et humides","environnement":[{"milieu":"Forêts","rarete":"Frequente","frequence":18},{"milieu":"Sous-sols","rarete":"Frequente","frequence":18}],"sust":0,"exotisme":0,"niveau":3,"base":0,"categorie":"Cuisine","rarete":"Frequente"},"ownership":{"default":0,"rYShh2P1DNavdoBD":3},"folder":null,"sort":0,"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.3.9","coreVersion":"10.291","createdTime":1669734708525,"modifiedTime":1670621588439,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
{"name":"Névropenthe","type":"herbe","flags":{"core":{"sheetClass":"foundryvtt-reve-de-dragon.RdDItemSheet","sourceId":"Compendium.foundryvtt-reve-de-dragon.faune-flore-mineraux.chm4mCNhQXwJEtNy"}},"img":"systems/foundryvtt-reve-de-dragon/icons/botanique/N%C3%A9vropenthe.webp","effects":[],"_id":"chm4mCNhQXwJEtNy","system":{"description":"<p>Plante foisonnante à grappes de feuilles rondes, dont le vert est souvent piqueté de points rouges. Pousse au coeur de toutes forêts à l’abri des fourrés et des ronciers. C’est une des herbes de base utilisées en alchimie.</p>\n<p>Rare.</p>\n<p> </p>\n<p><em style=\"box-sizing: border-box; user-select: text; color: #191813; font-family: GoudyAcc, sans-serif; text-align: justify;\">Voir Principes d’alchimie, p357.</em></p>","descriptionmj":"","encombrement":0,"quantite":1,"qualite":0,"cout":0.06,"milieu":"Forêts","environnement":[{"milieu":"Forêts","rarete":"Rare","frequence":6}],"sust":0,"exotisme":0,"niveau":null,"base":0,"categorie":"Alchimie","rarete":"Rare"},"ownership":{"default":0,"rYShh2P1DNavdoBD":3},"folder":null,"sort":0,"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.6.0","coreVersion":"10.291","createdTime":1669734708523,"modifiedTime":1673657676880,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
||||||
{"name":"Solimonce","type":"herbe","flags":{"core":{"sheetClass":"foundryvtt-reve-de-dragon.RdDItemSheet","sourceId":"Compendium.foundryvtt-reve-de-dragon.faune-flore-mineraux.eqdFj8nT7JkibPvi"}},"img":"systems/foundryvtt-reve-de-dragon/icons/botanique/Solimonce.webp","effects":[],"_id":"eqdFj8nT7JkibPvi","system":{"description":"<p>Variété d’ortie non urticante, poussant dans les lieux humides à l’abri de la lumière. Ses décoctions sont réputées souveraines contre les maladies des yeux.</p>\n<p>Rare.</p>\n<p> </p>\n<p><em>Voir Fièvre brune, p350.</em></p>","descriptionmj":"","encombrement":0,"quantite":1,"qualite":0,"cout":null,"milieu":"Lieux humides","environnement":[{"milieu":"Cours d'eau","rarete":"Rare","frequence":4},{"milieu":"Forêts","rarete":"Rare","frequence":8},{"milieu":"Marais","rarete":"Rare","frequence":4},{"milieu":"Sous-sols","rarete":"Rare","frequence":8}],"niveau":null,"base":0,"categorie":"Soin","rarete":"Rare"},"ownership":{"default":0,"rYShh2P1DNavdoBD":3},"folder":null,"sort":0,"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.3.9","coreVersion":"10.291","createdTime":1669734708525,"modifiedTime":1670621588442,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
{"name":"Ortigal","type":"herbe","flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.faune-flore-mineraux.ckBk9H7jhFQC2IRX"}},"img":"systems/foundryvtt-reve-de-dragon/icons/botanique/Ortigal.webp","effects":[],"_id":"ckBk9H7jhFQC2IRX","system":{"description":"<p><em>Herbe de soin.</em></p>\n<p>Plante aquatique des marais, aux petites feuilles rondes et luisantes, voisine du nénuphar.</p>\n<p>Fréquent.</p>\n<p> </p>\n<p><em>Voir Les herbes de soin, p100.</em></p>","descriptionmj":"","encombrement":0,"quantite":1,"qualite":0,"cout":0.1,"milieu":"Marais","environnement":[{"milieu":"Marais","rarete":"Frequente","frequence":18}],"sust":0,"exotisme":0,"niveau":4,"base":0,"categorie":"Soin","rarete":"Frequente"},"ownership":{"default":0,"rYShh2P1DNavdoBD":3},"folder":null,"sort":0,"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.6.0","coreVersion":"10.291","createdTime":1669734708524,"modifiedTime":1673657676882,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
||||||
{"name":"Obbadion","type":"ingredient","img":"systems/foundryvtt-reve-de-dragon/icons/objets/l_obbadion.webp","effects":[],"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.equipement.69vN8bRlnCrRHQCm"}},"system":{"description":"<p>Poudre bleuâtre obtenue par disruption alchimique du minerai appelé <em>obbadine</em>, sorte de tourbe.</p>\n<p>VUE/Alchimie à -2</p>","descriptionmj":"","encombrement":0.001,"quantite":1,"qualite":0,"cout":0.2,"milieu":"Lieux humides, obtenu à partir d'Obbadine (tourbe)","environnement":[{"milieu":"Cours d'eau","rarete":"Frequente","frequence":18},{"milieu":"Plaines","rarete":"Frequente","frequence":18},{"milieu":"Sous-sols","rarete":"Frequente","frequence":18}],"sust":0,"exotisme":0,"niveau":0,"base":0,"categorie":"Alchimie","rarete":""},"ownership":{"default":0,"rYShh2P1DNavdoBD":3,"Hp9ImM4o9YRTSdfu":3},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.3.9","coreVersion":"10.291","createdTime":1668808206016,"modifiedTime":1670621588441,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"},"folder":null,"sort":0,"_id":"f4TPpX03pJuyBkuX"}
|
{"name":"Loutre","type":"faune","img":"systems/foundryvtt-reve-de-dragon/icons/faune/raton-laveur.webp","system":{"description":"<p>Loutre. Rivage, 15 kg, 32 sust. Surtout recherchée pour sa peau.</p>","descriptionmj":"","encombrement":7.5,"quantite":1,"qualite":0,"cout":0,"milieu":"Rivages","environnement":[{"milieu":"Cours d'eau","rarete":"Rare","frequence":6}],"sust":32,"exotisme":0,"categorie":"","actor":{"id":"","pack":"","name":""}},"effects":[],"flags":{"core":{"sourceId":"Item.LU5eutNQqwm52oOG"}},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.6.0","coreVersion":"10.291","createdTime":1670580597921,"modifiedTime":1673657676879,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"},"_id":"d7n9u9OAELDLtAvJ","folder":null,"sort":0,"ownership":{"default":0,"jtRmvSuwkwMmIMf0":3}}
|
||||||
{"name":"Frimart","type":"faune","img":"systems/foundryvtt-reve-de-dragon/icons/faune/oiseau.webp","system":{"description":"<p>Frimart. Plaine, forêt, rivage, 3 kg, 7 sust. Nom parfois donné au noisot mâle quand il est particulièrement énervé (voir ci-dessous).</p>","descriptionmj":"","encombrement":1.5,"quantite":1,"qualite":0,"cout":0,"milieu":"Forêt, Plaine, Rivage","environnement":[{"milieu":"Cours d'eau","rarete":"Frequente","frequence":18},{"milieu":"Forêts","rarete":"Frequente","frequence":18},{"milieu":"Plaines","rarete":"Frequente","frequence":18}],"sust":7,"exotisme":0,"categorie":"","actor":{"id":"","pack":"","name":""}},"effects":[],"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.faune-flore-mineraux.hajrJoywOF9iodSL"}},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.3.9","coreVersion":"10.291","createdTime":1670580597921,"modifiedTime":1670621588446,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"},"_id":"hajrJoywOF9iodSL","folder":null,"sort":0,"ownership":{"default":0,"jtRmvSuwkwMmIMf0":3}}
|
{"name":"Sanglier","type":"faune","img":"systems/foundryvtt-reve-de-dragon/icons/faune/sanglier.webp","system":{"description":"<p>Sanglier. Forêt, 150 kg, 360 sust (voir lecornicochon, p402).</p>","descriptionmj":"","encombrement":75,"quantite":1,"qualite":0,"cout":0,"milieu":"Forêt","environnement":[{"milieu":"Forêts","rarete":"Commune","frequence":54}],"sust":360,"exotisme":0,"categorie":"","actor":{"id":"VsEw24DEekBbU69Z","pack":"foundryvtt-reve-de-dragon.animaux","name":"Cornicochon"}},"effects":[],"flags":{"core":{"sourceId":"Item.LU5eutNQqwm52oOG"}},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.6.0","coreVersion":"10.291","createdTime":1670580597921,"modifiedTime":1673657676884,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"},"_id":"dp28i9k5Mpjyr9jl","folder":null,"sort":0,"ownership":{"default":0,"jtRmvSuwkwMmIMf0":3}}
|
||||||
{"name":"Crampe","type":"faune","img":"systems/foundryvtt-reve-de-dragon/icons/faune/oie.webp","system":{"description":"<p>Crampe. Forêt, plaine, 10 kg, 25 sust. Lacrampe est une grosse dinde sauvage vi-vant en lisière de forêt ou en sous-bois peu épais. La crampe passe sa vie à essayer deprendre son envol, ce qu’elle ne réussit querarement et pour quelques mètres. À forcede battre inutilement des ailes, les cram-pes s’écroulent périodiquement, en proie à de terribles douleurs musculaires. C’est évidemment à ce moment qu’elles sont les plus vulnérables – ce que n’ignorent pas les prédateurs patients.</p>","descriptionmj":"","encombrement":5,"quantite":1,"qualite":0,"cout":0,"milieu":"Foret, Plaine","environnement":[{"milieu":"Forêts","rarete":"Commune","frequence":54},{"milieu":"Plaines","rarete":"Commune","frequence":46}],"sust":25,"exotisme":0,"categorie":"","actor":{"id":"","pack":"","name":""}},"effects":[],"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.faune-flore-mineraux.i2tLFSbg4nXtcD6q"}},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.3.9","coreVersion":"10.291","createdTime":1670580597921,"modifiedTime":1670621588446,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"},"_id":"i2tLFSbg4nXtcD6q","folder":null,"sort":0,"ownership":{"default":0,"jtRmvSuwkwMmIMf0":3}}
|
{"name":"Croupigne","type":"plante","flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.faune-flore-mineraux.dr2xZkUKaWa3Gjvr"}},"img":"systems/foundryvtt-reve-de-dragon/icons/botanique/Croupigne.webp","effects":[],"_id":"dr2xZkUKaWa3Gjvr","system":{"description":"<p>Sorte de groseille rose pâle, poussant à l’orée des sous-bois et des clairières.</p><p>Pour l'empoisonnement, voir: @UUID[Compendium.foundryvtt-reve-de-dragon.maladies-et-poisons.Zsodttv3S6OPTJL4]{Croupigne}</p><p>Fréquente.</p>","descriptionmj":"","encombrement":0.02,"quantite":1,"qualite":0,"cout":0,"milieu":"Forêts","environnement":[{"milieu":"Forêts","rarete":"Frequente","frequence":18}],"sust":0,"exotisme":0,"niveau":null,"base":0,"categorie":"Poison","rarete":"Frequente"},"ownership":{"default":0,"rYShh2P1DNavdoBD":3},"folder":null,"sort":0,"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.6.0","coreVersion":"10.291","createdTime":1669734708524,"modifiedTime":1673791794975,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
||||||
{"name":"Cerf","type":"faune","img":"systems/foundryvtt-reve-de-dragon/icons/faune/cerf.webp","system":{"description":"<p>(voir le bramart, p400).</p>","descriptionmj":"","encombrement":75,"quantite":1,"qualite":0,"cout":0,"milieu":"Forêt","environnement":[{"milieu":"Forêts","rarete":"Rare","frequence":6}],"sust":370,"exotisme":0,"categorie":"","actor":{"id":"zMvyRrp10dkfcS43","pack":"foundryvtt-reve-de-dragon.animaux","name":"Bramart"}},"effects":[],"flags":{"core":{"sourceId":"Item.LU5eutNQqwm52oOG"}},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.3.9","coreVersion":"10.291","createdTime":1670580597921,"modifiedTime":1670621588437,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"},"_id":"iSVgVsoXJ7Z1kuqX","folder":null,"sort":0,"ownership":{"default":0,"jtRmvSuwkwMmIMf0":3}}
|
{"name":"Noisemûre","type":"plante","flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.faune-flore-mineraux.eB5Nhus3Ao4H8ePT"}},"img":"systems/foundryvtt-reve-de-dragon/icons/botanique/Noisem%C3%BBre.webp","effects":[],"_id":"eB5Nhus3Ao4H8ePT","system":{"description":"<p>Fruit du noisemûrier, petit arbuste très ramifié vivant en sous-bois à l’ombre des plus grands arbres. La noisemûre a extérieurement l’apparence d’une grosse noisette à la coquille rougeâtre et granulée. Intérieurement, sa chair est tendre, juteuse et sucrée.</p>\n<p>Fréquente.</p>","descriptionmj":"","encombrement":0.02,"quantite":1,"qualite":0,"cout":0,"milieu":"Forêts","environnement":[{"milieu":"Forêts","rarete":"Frequente","frequence":18}],"sust":0.2,"exotisme":0,"niveau":0,"base":0,"categorie":"Cuisine","rarete":"Frequente"},"ownership":{"default":0,"rYShh2P1DNavdoBD":3},"folder":null,"sort":0,"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.6.0","coreVersion":"10.291","createdTime":1669734708525,"modifiedTime":1673792081023,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
||||||
{"name":"Trésure","type":"ingredient","flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.faune-flore-mineraux.jOCPgZmP3aZtMGdi"}},"img":"systems/foundryvtt-reve-de-dragon/icons/botanique/Tr%C3%A9sure.webp","effects":[],"_id":"jOCPgZmP3aZtMGdi","system":{"description":"<p>Fruit du trésurier, buisson épineux de la famille des ronces poussant principalement en montagne. La trésure est une grosse framboise de la taille d’une mandarine, rouge foncé avec un jus noir. Non seulement délicieuse, la trésure est nourrissante et énergétique. Chaque fruit vaut 3 points de sustentation et défatigue instantanément comme après une heure de sommeil. En termes de jeu, effacer un segment comme si l’on venait de dormir une heure. Enfin, faire suivre un repas de trésures (qu’il soit composé d’un ou plusieurs fruits) d’un jet de moral en situation heureuse. Une fois cueillies, les trésures ne se conservent pas plus de 12 heures, et même leur jus n’a plus aucune valeur. Véritables plantes miraculeuses, les trésuriers portent des fruits d’un bout de l’année à l’autre, même en hiver sous la neige.</p>\n<p>Rare.</p>","descriptionmj":"","encombrement":0.05,"quantite":1,"qualite":0,"cout":0,"milieu":"Montagnes","environnement":[{"milieu":"Montagnes","rarete":"Rare","frequence":6}],"sust":0,"exotisme":0,"niveau":0,"base":0,"categorie":"Cuisine","rarete":"Rare"},"ownership":{"default":0,"rYShh2P1DNavdoBD":3},"folder":null,"sort":0,"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.3.9","coreVersion":"10.291","createdTime":1669734708526,"modifiedTime":1670621588444,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
{"name":"Soldièze","type":"faune","img":"systems/foundryvtt-reve-de-dragon/icons/faune/soldieze.webp","system":{"description":"<p><span class=\"fontstyle0\">Gros poisson plat, telle une grande limande ou une sole d’eau douce.</span></p>","descriptionmj":"","encombrement":0.3,"quantite":1,"qualite":0,"cout":0.06,"milieu":"","environnement":[{"milieu":"Cours d'eau","rarete":"Frequente","frequence":18}],"sust":3,"exotisme":0,"categorie":"","actor":{"id":"","pack":"","name":""}},"effects":[],"flags":{},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.5.4","coreVersion":"10.291","createdTime":1673656080829,"modifiedTime":1673656874815,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"},"_id":"eEkKZKqoF0Pk0EUW","folder":null,"sort":0,"ownership":{"default":0,"Hp9ImM4o9YRTSdfu":3}}
|
||||||
{"name":"Genèfle","type":"ingredient","flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.faune-flore-mineraux.jbkZ9j04AAIAVBuG"}},"img":"systems/foundryvtt-reve-de-dragon/icons/botanique/Gen%C3%A8fle.webp","effects":[],"_id":"jbkZ9j04AAIAVBuG","system":{"description":"<p>Fruit du genèflier, arbuste buissonneux vivant en plaine. La genèfle est très semblable à la clopinette, mais avec une peau plus nacrée.</p>\n<p>M1 \\ P 10 minutes \\ D1 \\ -3 \\ Teinture d’Érozonne +16, Topazoïne +12.</p>\n<p>Commune.</p>","descriptionmj":"","encombrement":0.02,"quantite":1,"qualite":0,"cout":0,"milieu":"Plaines","environnement":[{"milieu":"Plaines","rarete":"Commune","frequence":54}],"sust":0,"exotisme":0,"niveau":null,"base":0,"categorie":"","rarete":"Commune"},"ownership":{"default":0,"rYShh2P1DNavdoBD":3},"folder":null,"sort":0,"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.3.9","coreVersion":"10.291","createdTime":1669734708526,"modifiedTime":1670621588439,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
{"name":"Fricotille","type":"plante","flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.faune-flore-mineraux.eKrtkHj3EbYCZu8Y"}},"img":"systems/foundryvtt-reve-de-dragon/icons/botanique/Fricotille.webp","effects":[],"_id":"eKrtkHj3EbYCZu8Y","system":{"description":"<p>Bolet à pied mince et blanc, et large chapeau pointu blanc à pois bleus.</p>\n<p>Fréquente.</p>","descriptionmj":"","encombrement":0.1,"quantite":1,"qualite":0,"cout":0,"milieu":"Lieux sombres et humides","environnement":[{"milieu":"Forêts","rarete":"Frequente","frequence":18},{"milieu":"Sous-sols","rarete":"Frequente","frequence":18}],"sust":0,"exotisme":0,"niveau":3,"base":0,"categorie":"Cuisine","rarete":"Frequente"},"ownership":{"default":0,"rYShh2P1DNavdoBD":3},"folder":null,"sort":0,"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.6.0","coreVersion":"10.291","createdTime":1669734708525,"modifiedTime":1673791979385,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
||||||
{"name":"Murus","type":"herbe","flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.faune-flore-mineraux.jjVl1PTFgTGdIfZf"}},"img":"systems/foundryvtt-reve-de-dragon/icons/botanique/Murus.webp","effects":[],"_id":"jjVl1PTFgTGdIfZf","system":{"description":"<p><em>Herbe de soin.</em></p>\n<p>Sorte de minuscule chardon aux feuilles vert violacé, s’accrochant aux rochers escarpés. Son principe actif est contenu dans ses piquants.</p>\n<p>Rare.</p>\n<p> </p>\n<p><em>Voir Les herbes de soin, p100.</em></p>","descriptionmj":"","encombrement":0,"quantite":1,"qualite":0,"cout":0.6,"milieu":"Rochers escarpés","environnement":[{"milieu":"Montagnes","rarete":"Rare","frequence":6}],"niveau":8,"base":0,"categorie":"Soin","rarete":"Rare"},"ownership":{"default":0,"rYShh2P1DNavdoBD":3},"folder":null,"sort":0,"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.3.9","coreVersion":"10.291","createdTime":1669734708526,"modifiedTime":1670621588440,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
{"name":"Solimonce","type":"herbe","flags":{"core":{"sheetClass":"foundryvtt-reve-de-dragon.RdDItemSheet","sourceId":"Compendium.foundryvtt-reve-de-dragon.faune-flore-mineraux.eqdFj8nT7JkibPvi"}},"img":"systems/foundryvtt-reve-de-dragon/icons/botanique/Solimonce.webp","effects":[],"_id":"eqdFj8nT7JkibPvi","system":{"description":"<p>Variété d’ortie non urticante, poussant dans les lieux humides à l’abri de la lumière. Ses décoctions sont réputées souveraines contre les maladies des yeux.</p>\n<p>Rare.</p>\n<p> </p>\n<p><em>Voir Fièvre brune, p350.</em></p>","descriptionmj":"","encombrement":0,"quantite":1,"qualite":0,"cout":0.3,"milieu":"Lieux humides","environnement":[{"milieu":"Cours d'eau","rarete":"Rare","frequence":4},{"milieu":"Forêts","rarete":"Rare","frequence":8},{"milieu":"Marais","rarete":"Rare","frequence":4},{"milieu":"Sous-sols","rarete":"Rare","frequence":8}],"sust":0,"exotisme":0,"niveau":null,"base":0,"categorie":"Soin","rarete":"Rare"},"ownership":{"default":0,"rYShh2P1DNavdoBD":3},"folder":null,"sort":0,"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.6.15","coreVersion":"10.291","createdTime":1669734708525,"modifiedTime":1676073818889,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
||||||
{"name":"Tanemiel","type":"herbe","flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.faune-flore-mineraux.jqUrbSHwFr5kPW3q"}},"img":"systems/foundryvtt-reve-de-dragon/icons/botanique/Tanemiel.webp","effects":[],"_id":"jqUrbSHwFr5kPW3q","system":{"description":"<p><em>Herbe de soin.</em></p>\n<p>Plante grimpante, dotée de vrilles, voisine du liseron, de couleur vert laiteux presque blanc, s’accrochant aux arbres des forêts chaudes et humides.</p>\n<p>Rare.</p>\n<p> </p>\n<p><em>Voir Les herbes de soin, p100.</em></p>","descriptionmj":"","encombrement":0,"quantite":1,"qualite":0,"cout":0.9,"milieu":"Forêts chaudes et humides","environnement":[{"milieu":"Forêts","rarete":"Rare","frequence":6}],"niveau":9,"base":0,"categorie":"Soin","rarete":"Rare"},"ownership":{"default":0,"rYShh2P1DNavdoBD":3},"folder":null,"sort":0,"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.3.9","coreVersion":"10.291","createdTime":1669734708526,"modifiedTime":1670621588443,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
{"name":"Obbadion","type":"ingredient","img":"systems/foundryvtt-reve-de-dragon/icons/objets/l_obbadion.webp","effects":[],"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.equipement.69vN8bRlnCrRHQCm"}},"system":{"description":"<p>Poudre bleuâtre obtenue par disruption alchimique du minerai appelé <em>obbadine</em>, sorte de tourbe.</p>\n<p>VUE/Alchimie à -2</p>","descriptionmj":"","encombrement":0.001,"quantite":1,"qualite":0,"cout":0.2,"milieu":"Lieux humides, obtenu à partir d'Obbadine (tourbe)","environnement":[{"milieu":"Cours d'eau","rarete":"Frequente","frequence":18},{"milieu":"Plaines","rarete":"Frequente","frequence":18},{"milieu":"Sous-sols","rarete":"Frequente","frequence":18}],"sust":0,"exotisme":0,"niveau":0,"base":0,"categorie":"Alchimie","rarete":""},"ownership":{"default":0,"rYShh2P1DNavdoBD":3,"Hp9ImM4o9YRTSdfu":3},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.6.0","coreVersion":"10.291","createdTime":1668808206016,"modifiedTime":1673657676880,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"},"folder":null,"sort":0,"_id":"f4TPpX03pJuyBkuX"}
|
||||||
{"name":"Mercurion","type":"herbe","flags":{"core":{"sheetClass":"foundryvtt-reve-de-dragon.RdDItemSheet","sourceId":"Compendium.foundryvtt-reve-de-dragon.faune-flore-mineraux.k1l253yvSebgc7Xq"}},"img":"systems/foundryvtt-reve-de-dragon/icons/botanique/Mercurion.webp","effects":[],"_id":"k1l253yvSebgc7Xq","system":{"description":"<p>Lierre noirâtre s’accrochant aux arbres des forêts, principalement les chênes. C’est une des herbes de base utilisées en alchimie.</p>\n<p>Commun. <br /><br /><em>Voir Principes d’alchimie, p357.</em></p>","descriptionmj":"","encombrement":0,"quantite":1,"qualite":0,"cout":0.02,"milieu":"Forêts de chênes","environnement":[{"milieu":"Forêts","rarete":"Commune","frequence":54}],"niveau":null,"base":0,"categorie":"Alchimie","rarete":"Commune"},"ownership":{"default":0,"rYShh2P1DNavdoBD":3},"folder":null,"sort":0,"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.3.9","coreVersion":"10.291","createdTime":1669734708526,"modifiedTime":1670621588440,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
{"name":"Frimart","type":"faune","img":"systems/foundryvtt-reve-de-dragon/icons/faune/oiseau.webp","system":{"description":"<p>Frimart. Plaine, forêt, rivage, 3 kg, 7 sust. Nom parfois donné au noisot mâle quand il est particulièrement énervé (voir ci-dessous).</p>","descriptionmj":"","encombrement":1.5,"quantite":1,"qualite":0,"cout":0,"milieu":"Forêt, Plaine, Rivage","environnement":[{"milieu":"Cours d'eau","rarete":"Frequente","frequence":18},{"milieu":"Forêts","rarete":"Frequente","frequence":18},{"milieu":"Plaines","rarete":"Frequente","frequence":18}],"sust":7,"exotisme":0,"categorie":"","actor":{"id":"","pack":"","name":""}},"effects":[],"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.faune-flore-mineraux.hajrJoywOF9iodSL"}},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.6.0","coreVersion":"10.291","createdTime":1670580597921,"modifiedTime":1673657676878,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"},"_id":"hajrJoywOF9iodSL","folder":null,"sort":0,"ownership":{"default":0,"jtRmvSuwkwMmIMf0":3}}
|
||||||
{"name":"Mercureuil","type":"faune","img":"systems/foundryvtt-reve-de-dragon/icons/faune/andurak.webp","system":{"description":"<p>Mercureuil. Forêt, 20 kg, 50 sust. Petit cervidé au pelage gris clair à reflets métalliques, cousin du chevreuil. Le mercureuil est d’une rapidité inouïe quand il détale, à tel point que prédateurs et chasseurs necherchent même pas à le rattraper quandils n’ont pas réussi à le surprendre au dé-part. On l’appelle parfois « vif-argent ».</p>","descriptionmj":"","encombrement":10,"quantite":1,"qualite":0,"cout":0,"milieu":"Forêts","environnement":[{"milieu":"Forêts","rarete":"Rare","frequence":6}],"sust":50,"exotisme":0,"categorie":"","actor":{"id":"","pack":"","name":""}},"effects":[],"flags":{"core":{"sourceId":"Item.LU5eutNQqwm52oOG"}},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.3.9","coreVersion":"10.291","createdTime":1670580597921,"modifiedTime":1670621588440,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"},"_id":"kOeEn53AidfvJmIG","folder":null,"sort":0,"ownership":{"default":0,"jtRmvSuwkwMmIMf0":3}}
|
{"name":"Crampe","type":"faune","img":"systems/foundryvtt-reve-de-dragon/icons/faune/oie.webp","system":{"description":"<p>Crampe. Forêt, plaine, 10 kg, 25 sust. Lacrampe est une grosse dinde sauvage vi-vant en lisière de forêt ou en sous-bois peu épais. La crampe passe sa vie à essayer deprendre son envol, ce qu’elle ne réussit querarement et pour quelques mètres. À forcede battre inutilement des ailes, les cram-pes s’écroulent périodiquement, en proie à de terribles douleurs musculaires. C’est évidemment à ce moment qu’elles sont les plus vulnérables – ce que n’ignorent pas les prédateurs patients.</p>","descriptionmj":"","encombrement":5,"quantite":1,"qualite":0,"cout":0,"milieu":"Foret, Plaine","environnement":[{"milieu":"Forêts","rarete":"Commune","frequence":54},{"milieu":"Plaines","rarete":"Commune","frequence":46}],"sust":25,"exotisme":0,"categorie":"","actor":{"id":"","pack":"","name":""}},"effects":[],"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.faune-flore-mineraux.i2tLFSbg4nXtcD6q"}},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.6.0","coreVersion":"10.291","createdTime":1670580597921,"modifiedTime":1673657676877,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"},"_id":"i2tLFSbg4nXtcD6q","folder":null,"sort":0,"ownership":{"default":0,"jtRmvSuwkwMmIMf0":3}}
|
||||||
{"name":"Boralm","type":"ingredient","img":"systems/foundryvtt-reve-de-dragon/icons/objets/boralm.webp","effects":[],"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.equipement.0ylGrNMzulUaKFP9"}},"system":{"description":"<p>Poudre brune apparaissant sur les parois des grottes.</p>\n<p>VUE/Alchimie à -1.</p>","descriptionmj":"","encombrement":0.001,"quantite":1,"qualite":0,"cout":0.03,"milieu":"Cavernes","environnement":[{"milieu":"Sous-sols","rarete":"Commune","frequence":54}],"sust":0,"exotisme":0,"niveau":0,"base":0,"categorie":"Alchimie","rarete":""},"ownership":{"default":0,"rYShh2P1DNavdoBD":3,"Hp9ImM4o9YRTSdfu":3},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.3.9","coreVersion":"10.291","createdTime":1668808206013,"modifiedTime":1670621588437,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"},"folder":null,"sort":0,"_id":"kbWKsR0HovidPw6d"}
|
{"name":"Cerf","type":"faune","img":"systems/foundryvtt-reve-de-dragon/icons/faune/cerf.webp","system":{"description":"<p>(voir le bramart, p400).</p>","descriptionmj":"","encombrement":75,"quantite":1,"qualite":0,"cout":0,"milieu":"Forêt","environnement":[{"milieu":"Forêts","rarete":"Rare","frequence":6}],"sust":370,"exotisme":0,"categorie":"","actor":{"id":"zMvyRrp10dkfcS43","pack":"foundryvtt-reve-de-dragon.animaux","name":"Bramart"}},"effects":[],"flags":{"core":{"sourceId":"Item.LU5eutNQqwm52oOG"}},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.6.0","coreVersion":"10.291","createdTime":1670580597921,"modifiedTime":1673657676876,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"},"_id":"iSVgVsoXJ7Z1kuqX","folder":null,"sort":0,"ownership":{"default":0,"jtRmvSuwkwMmIMf0":3}}
|
||||||
{"name":"Arrache-rêve","type":"ingredient","flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.faune-flore-mineraux.koLhmV2g0Z2tQZiB"}},"img":"systems/foundryvtt-reve-de-dragon/icons/botanique/Arrache-r%C3%AAve.webp","effects":[],"_id":"koLhmV2g0Z2tQZiB","system":{"description":"<p>Le plus virulent des champignons vénéneux après l’amanite thanataire, procurant une agonie des plus douloureuses. Ressemble à cette dernière, avec un chapeau en boule au lieu de plat et galbé.</p>\n<p>M6 \\ P 4 rounds \\ D4 \\ -3 \\ Tournegraisse +14, Perle de Bjwal +12.</p>\n<p>Fréquent.</p>","descriptionmj":"","encombrement":0,"quantite":1,"qualite":0,"cout":0,"milieu":"Lieux sombres et humides","environnement":[{"milieu":"Forêts","rarete":"Frequente","frequence":18},{"milieu":"Sous-sols","rarete":"Rare","frequence":6}],"sust":0,"exotisme":0,"niveau":0,"base":0,"categorie":"","rarete":"Frequente"},"ownership":{"default":0,"rYShh2P1DNavdoBD":3},"folder":null,"sort":0,"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.3.9","coreVersion":"10.291","createdTime":1669734708527,"modifiedTime":1670621588436,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
{"name":"Trésure","type":"plante","flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.faune-flore-mineraux.jOCPgZmP3aZtMGdi"}},"img":"systems/foundryvtt-reve-de-dragon/icons/botanique/Tr%C3%A9sure.webp","effects":[],"_id":"jOCPgZmP3aZtMGdi","system":{"description":"<p>Fruit du trésurier, buisson épineux de la famille des ronces poussant principalement en montagne. La trésure est une grosse framboise de la taille d’une mandarine, rouge foncé avec un jus noir. Non seulement délicieuse, la trésure est nourrissante et énergétique. Chaque fruit vaut 3 points de sustentation et défatigue instantanément comme après une heure de sommeil. En termes de jeu, effacer un segment comme si l’on venait de dormir une heure. Enfin, faire suivre un repas de trésures (qu’il soit composé d’un ou plusieurs fruits) d’un jet de moral en situation heureuse. Une fois cueillies, les trésures ne se conservent pas plus de 12 heures, et même leur jus n’a plus aucune valeur. Véritables plantes miraculeuses, les trésuriers portent des fruits d’un bout de l’année à l’autre, même en hiver sous la neige.</p>\n<p>Rare.</p>","descriptionmj":"","encombrement":0.05,"quantite":1,"qualite":0,"cout":0,"milieu":"Montagnes","environnement":[{"milieu":"Montagnes","rarete":"Rare","frequence":6}],"sust":3,"exotisme":0,"niveau":0,"base":0,"categorie":"Cuisine","rarete":"Rare"},"ownership":{"default":0,"rYShh2P1DNavdoBD":3},"folder":null,"sort":0,"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.6.0","coreVersion":"10.291","createdTime":1669734708526,"modifiedTime":1673792162950,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
||||||
{"name":"Sajutte","type":"herbe","flags":{"core":{"sheetClass":"foundryvtt-reve-de-dragon.RdDItemSheet","sourceId":"Compendium.foundryvtt-reve-de-dragon.faune-flore-mineraux.l5G3NrS8USofuBK8"}},"img":"systems/foundryvtt-reve-de-dragon/icons/botanique/Sajutte.webp","effects":[],"_id":"l5G3NrS8USofuBK8","system":{"description":"<p><em style=\"box-sizing: border-box; user-select: text;\">Herbe de repos.</em></p>\n<p>Petite herbe à sève blanche, très poisseuse, poussant aussi bien en forêt qu'en plaine, qu'en marais (Plus rare en montagne).</p>\n<p>Commune.</p>","descriptionmj":"","encombrement":0,"quantite":1,"qualite":0,"cout":0.02,"milieu":"Tous (plus rare en montagne)","environnement":[{"milieu":"Collines","rarete":"Commune","frequence":54},{"milieu":"Cours d'eau","rarete":"Commune","frequence":54},{"milieu":"Déserts","rarete":"Commune","frequence":54},{"milieu":"Forêts","rarete":"Commune","frequence":54},{"milieu":"Marais","rarete":"Commune","frequence":54},{"milieu":"Montagnes","rarete":"Frequente","frequence":18},{"milieu":"Plaines","rarete":"Commune","frequence":54}],"niveau":1,"base":0,"categorie":"Repos","rarete":"Commune"},"ownership":{"default":0,"rYShh2P1DNavdoBD":3},"folder":null,"sort":0,"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.3.9","coreVersion":"10.291","createdTime":1669734708527,"modifiedTime":1670621588442,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
{"name":"Genèfle","type":"plante","flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.faune-flore-mineraux.jbkZ9j04AAIAVBuG"}},"img":"systems/foundryvtt-reve-de-dragon/icons/botanique/Gen%C3%A8fle.webp","effects":[],"_id":"jbkZ9j04AAIAVBuG","system":{"description":"<p>Fruit du genèflier, arbuste buissonneux vivant en plaine. La genèfle est très semblable à la clopinette, mais avec une peau plus nacrée.</p><p>Pour l'empoisonnement, voir: @UUID[Compendium.foundryvtt-reve-de-dragon.maladies-et-poisons.jl0MvAcVRo63LWg3]{Genèfle}</p><p>Commune.</p>","descriptionmj":"","encombrement":0.02,"quantite":1,"qualite":0,"cout":0,"milieu":"Plaines","environnement":[{"milieu":"Plaines","rarete":"Commune","frequence":54}],"sust":0,"exotisme":0,"niveau":null,"base":0,"categorie":"Poison","rarete":"Commune"},"ownership":{"default":0,"rYShh2P1DNavdoBD":3},"folder":null,"sort":0,"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.6.0","coreVersion":"10.291","createdTime":1669734708526,"modifiedTime":1673791933220,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
||||||
{"name":"Corne de rêve","type":"ingredient","flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.faune-flore-mineraux.lDZbDKaPQGvqzK1k"}},"img":"systems/foundryvtt-reve-de-dragon/icons/botanique/Corne%20de%20r%C3%AAve.webp","effects":[],"_id":"lDZbDKaPQGvqzK1k","system":{"description":"<p>Champignon en forme de conque violet sombre.</p>\n<p>Rarissime.</p>","descriptionmj":"","encombrement":0.1,"quantite":1,"qualite":0,"cout":0,"milieu":"Lieux sombres et humides","environnement":[{"milieu":"Forêts","rarete":"Rarissime","frequence":3},{"milieu":"Sous-sols","rarete":"Rarissime","frequence":2}],"sust":0,"exotisme":0,"niveau":5,"base":0,"categorie":"Cuisine","rarete":"Rarissime"},"ownership":{"default":0,"rYShh2P1DNavdoBD":3},"folder":null,"sort":0,"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.3.9","coreVersion":"10.291","createdTime":1669734708527,"modifiedTime":1670621588438,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
{"name":"Murus","type":"herbe","flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.faune-flore-mineraux.jjVl1PTFgTGdIfZf"}},"img":"systems/foundryvtt-reve-de-dragon/icons/botanique/Murus.webp","effects":[],"_id":"jjVl1PTFgTGdIfZf","system":{"description":"<p><em>Herbe de soin.</em></p>\n<p>Sorte de minuscule chardon aux feuilles vert violacé, s’accrochant aux rochers escarpés. Son principe actif est contenu dans ses piquants.</p>\n<p>Rare.</p>\n<p> </p>\n<p><em>Voir Les herbes de soin, p100.</em></p>","descriptionmj":"","encombrement":0,"quantite":1,"qualite":0,"cout":0.6,"milieu":"Rochers escarpés","environnement":[{"milieu":"Montagnes","rarete":"Rare","frequence":6}],"sust":0,"exotisme":0,"niveau":8,"base":0,"categorie":"Soin","rarete":"Rare"},"ownership":{"default":0,"rYShh2P1DNavdoBD":3},"folder":null,"sort":0,"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.6.0","coreVersion":"10.291","createdTime":1669734708526,"modifiedTime":1673657676880,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
||||||
{"name":"Amanite Thanataire","type":"ingredient","flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.faune-flore-mineraux.m01q5bqTSKOJLSkY"}},"img":"systems/foundryvtt-reve-de-dragon/icons/botanique/Amanite%20thanataire.webp","effects":[],"_id":"m01q5bqTSKOJLSkY","system":{"description":"<p>L’un des plus beaux, mais également le plus foudroyant des champignons vénéneux. Pied et volve élégamment proportionnés, chapeau arrondi à peine galbé, le tout paré d’une somptueuse teinte blanc argenté parsemée de points noirs.</p>\n<p>M7 \\ P 3 rounds \\ D4 \\ -3 \\ Tournegraisse +12, Perle de Bjwal +10.</p>\n<p>Fréquente.</p>","descriptionmj":"","encombrement":0,"quantite":1,"qualite":0,"cout":0,"milieu":"Lieux sombres et humides","environnement":[{"milieu":"Forêts","rarete":"Frequente","frequence":18},{"milieu":"Sous-sols","rarete":"Rare","frequence":6}],"sust":0,"exotisme":0,"niveau":0,"base":0,"categorie":"","rarete":"Frequente"},"ownership":{"default":0,"rYShh2P1DNavdoBD":3},"folder":null,"sort":0,"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.3.9","coreVersion":"10.291","createdTime":1669734708527,"modifiedTime":1670621588436,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
{"name":"Tanemiel","type":"herbe","flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.faune-flore-mineraux.jqUrbSHwFr5kPW3q"}},"img":"systems/foundryvtt-reve-de-dragon/icons/botanique/Tanemiel.webp","effects":[],"_id":"jqUrbSHwFr5kPW3q","system":{"description":"<p><em>Herbe de soin.</em></p>\n<p>Plante grimpante, dotée de vrilles, voisine du liseron, de couleur vert laiteux presque blanc, s’accrochant aux arbres des forêts chaudes et humides.</p>\n<p>Rare.</p>\n<p> </p>\n<p><em>Voir Les herbes de soin, p100.</em></p>","descriptionmj":"","encombrement":0,"quantite":1,"qualite":0,"cout":0.9,"milieu":"Forêts chaudes et humides","environnement":[{"milieu":"Forêts","rarete":"Rare","frequence":6}],"sust":0,"exotisme":0,"niveau":9,"base":0,"categorie":"Soin","rarete":"Rare"},"ownership":{"default":0,"rYShh2P1DNavdoBD":3},"folder":null,"sort":0,"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.6.0","coreVersion":"10.291","createdTime":1669734708526,"modifiedTime":1673657676886,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
||||||
{"name":"Obyssum gris","type":"ingredient","img":"systems/foundryvtt-reve-de-dragon/icons/objets/l_obyssum_gris.webp","effects":[],"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.equipement.nIOEB0PpMaACqD65"}},"system":{"description":"<p>Plus rare que le vert, poudre grisâtre apparaissant le long de certaines lianes des marais.</p>\n<p>VUE/Alchimie à -4</p>","descriptionmj":"","encombrement":0.001,"quantite":1,"qualite":0,"cout":0.1,"milieu":"Marais","environnement":[{"milieu":"Marais","rarete":"Rare","frequence":12}],"sust":0,"exotisme":0,"niveau":0,"base":0,"categorie":"Alchimie","rarete":""},"ownership":{"default":0,"rYShh2P1DNavdoBD":3,"Hp9ImM4o9YRTSdfu":3},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.3.9","coreVersion":"10.291","createdTime":1668808206114,"modifiedTime":1670621588441,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"},"folder":null,"sort":0,"_id":"m9ONkzH9KwLk3P3i"}
|
{"name":"Mercurion","type":"herbe","flags":{"core":{"sheetClass":"foundryvtt-reve-de-dragon.RdDItemSheet","sourceId":"Compendium.foundryvtt-reve-de-dragon.faune-flore-mineraux.k1l253yvSebgc7Xq"}},"img":"systems/foundryvtt-reve-de-dragon/icons/botanique/Mercurion.webp","effects":[],"_id":"k1l253yvSebgc7Xq","system":{"description":"<p>Lierre noirâtre s’accrochant aux arbres des forêts, principalement les chênes. C’est une des herbes de base utilisées en alchimie.</p>\n<p>Commun. <br /><br /><em>Voir Principes d’alchimie, p357.</em></p>","descriptionmj":"","encombrement":0,"quantite":1,"qualite":0,"cout":0.02,"milieu":"Forêts de chênes","environnement":[{"milieu":"Forêts","rarete":"Commune","frequence":54}],"sust":0,"exotisme":0,"niveau":null,"base":0,"categorie":"Alchimie","rarete":"Commune"},"ownership":{"default":0,"rYShh2P1DNavdoBD":3},"folder":null,"sort":0,"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.6.0","coreVersion":"10.291","createdTime":1669734708526,"modifiedTime":1673657676880,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
||||||
{"name":"Castor","type":"faune","img":"systems/foundryvtt-reve-de-dragon/icons/faune/raton-laveur.webp","system":{"description":"<p>Surtoutrecherché pour sa peau.</p>","descriptionmj":"","encombrement":5,"quantite":1,"qualite":0,"cout":0,"milieu":"Rivages","environnement":[{"milieu":"Cours d'eau","rarete":"Frequente","frequence":18}],"sust":20,"exotisme":0,"categorie":"","actor":{"id":"","pack":"","name":""}},"effects":[],"flags":{"core":{"sourceId":"Item.LU5eutNQqwm52oOG"}},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.3.9","coreVersion":"10.291","createdTime":1670580597921,"modifiedTime":1670621588437,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"},"_id":"msoR9RkqOQhKVsJa","folder":null,"sort":0,"ownership":{"default":0,"jtRmvSuwkwMmIMf0":3}}
|
{"name":"Mercureuil","type":"faune","img":"systems/foundryvtt-reve-de-dragon/icons/faune/andurak.webp","system":{"description":"<p>Mercureuil. Forêt, 20 kg, 50 sust. Petit cervidé au pelage gris clair à reflets métalliques, cousin du chevreuil. Le mercureuil est d’une rapidité inouïe quand il détale, à tel point que prédateurs et chasseurs necherchent même pas à le rattraper quandils n’ont pas réussi à le surprendre au dé-part. On l’appelle parfois « vif-argent ».</p>","descriptionmj":"","encombrement":10,"quantite":1,"qualite":0,"cout":0,"milieu":"Forêts","environnement":[{"milieu":"Forêts","rarete":"Rare","frequence":6}],"sust":50,"exotisme":0,"categorie":"","actor":{"id":"","pack":"","name":""}},"effects":[],"flags":{"core":{"sourceId":"Item.LU5eutNQqwm52oOG"}},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.6.0","coreVersion":"10.291","createdTime":1670580597921,"modifiedTime":1673657676880,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"},"_id":"kOeEn53AidfvJmIG","folder":null,"sort":0,"ownership":{"default":0,"jtRmvSuwkwMmIMf0":3}}
|
||||||
{"name":"Héron","type":"faune","img":"systems/foundryvtt-reve-de-dragon/icons/faune/oiseau.webp","system":{"description":"<p>Héron. Rivage, 5 kg, 14 sust.</p>","descriptionmj":"","encombrement":2.5,"quantite":1,"qualite":0,"cout":0,"milieu":"Rivage","environnement":[{"milieu":"Cours d'eau","rarete":"Frequente","frequence":18}],"sust":14,"exotisme":0,"categorie":"","actor":{"id":"","pack":"","name":""}},"effects":[],"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.faune-flore-mineraux.muY8ZmwvnfsCrhLi"}},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.3.9","coreVersion":"10.291","createdTime":1670580597921,"modifiedTime":1670621588446,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"},"_id":"muY8ZmwvnfsCrhLi","folder":null,"sort":0,"ownership":{"default":0,"jtRmvSuwkwMmIMf0":3}}
|
{"name":"Boralm","type":"ingredient","img":"systems/foundryvtt-reve-de-dragon/icons/objets/boralm.webp","effects":[],"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.equipement.0ylGrNMzulUaKFP9"}},"system":{"description":"<p>Poudre brune apparaissant sur les parois des grottes.</p>\n<p>VUE/Alchimie à -1.</p>","descriptionmj":"","encombrement":0.001,"quantite":1,"qualite":0,"cout":0.03,"milieu":"Cavernes","environnement":[{"milieu":"Sous-sols","rarete":"Commune","frequence":54}],"sust":0,"exotisme":0,"niveau":0,"base":0,"categorie":"Alchimie","rarete":""},"ownership":{"default":0,"rYShh2P1DNavdoBD":3,"Hp9ImM4o9YRTSdfu":3},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.6.0","coreVersion":"10.291","createdTime":1668808206013,"modifiedTime":1673657676875,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"},"folder":null,"sort":0,"_id":"kbWKsR0HovidPw6d"}
|
||||||
{"name":"Lune de mer","type":"faune","img":"systems/foundryvtt-reve-de-dragon/icons/faune/coquillage-pointe.webp","system":{"description":"<p>Échinoderme de la même famille que l’étoile de mer, mais en forme de croissant de lune. À cuire de préférence dans de l’eau de mer fortement additionnée de vinaigre.</p>","descriptionmj":"","encombrement":0.1,"quantite":1,"qualite":0,"cout":0,"milieu":"","environnement":[{"milieu":"Maritimes","rarete":"Frequente","frequence":18}],"sust":0.1,"exotisme":0,"categorie":"","actor":{"id":"","pack":"","name":""}},"effects":[],"flags":{},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.3.9","coreVersion":"10.291","createdTime":1670616085735,"modifiedTime":1670621588398,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"},"folder":null,"sort":0,"ownership":{"default":0,"Hp9ImM4o9YRTSdfu":3},"_id":"nWRV7y6qGn9xHzHc"}
|
{"name":"Arrache-rêve","type":"plante","flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.faune-flore-mineraux.koLhmV2g0Z2tQZiB"}},"img":"systems/foundryvtt-reve-de-dragon/icons/botanique/Arrache-r%C3%AAve.webp","effects":[],"_id":"koLhmV2g0Z2tQZiB","system":{"description":"<p>Le plus virulent des champignons vénéneux après l’amanite thanataire, procurant une agonie des plus douloureuses. Ressemble à cette dernière, avec un chapeau en boule au lieu de plat et galbé.</p><p>Pour l'empoisonnement, voir: @UUID[Compendium.foundryvtt-reve-de-dragon.maladies-et-poisons.Rl5jadqNYTxzn6Ns]{Arrache-rêve}</p><p>Fréquent.</p>","descriptionmj":"","encombrement":0,"quantite":1,"qualite":0,"cout":0,"milieu":"Lieux sombres et humides","environnement":[{"milieu":"Forêts","rarete":"Frequente","frequence":18},{"milieu":"Sous-sols","rarete":"Rare","frequence":6}],"sust":0,"exotisme":0,"niveau":0,"base":0,"categorie":"Poison","rarete":"Frequente"},"ownership":{"default":0,"rYShh2P1DNavdoBD":3},"folder":null,"sort":0,"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.6.0","coreVersion":"10.291","createdTime":1669734708527,"modifiedTime":1673791293977,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
||||||
{"name":"Méritoine","type":"herbe","flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.faune-flore-mineraux.nuOClbQwu6SLucJn"}},"img":"systems/foundryvtt-reve-de-dragon/icons/botanique/M%C3%A9ritoine.webp","effects":[],"_id":"nuOClbQwu6SLucJn","system":{"description":"<p><em>Herbe de soin.</em></p>\n<p>Plante rampante et ramifiée, aux minuscules feuilles vert pâle, s’accrochant aux troncs de certains conifères.</p>\n<p>Fréquente.</p>\n<p> </p>\n<p><em>Voir Les herbes de soin, p100.</em></p>","descriptionmj":"","encombrement":0,"quantite":1,"qualite":0,"cout":0.06,"milieu":"Forêts de conifères","environnement":[{"milieu":"Forêts","rarete":"Frequente","frequence":18},{"milieu":"Montagnes","rarete":"Frequente","frequence":18}],"niveau":3,"base":0,"categorie":"Soin","rarete":"Frequente"},"ownership":{"default":0,"rYShh2P1DNavdoBD":3},"folder":null,"sort":0,"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.3.9","coreVersion":"10.291","createdTime":1669734708527,"modifiedTime":1670621588440,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
{"name":"Sajutte","type":"herbe","flags":{"core":{"sheetClass":"foundryvtt-reve-de-dragon.RdDItemSheet","sourceId":"Compendium.foundryvtt-reve-de-dragon.faune-flore-mineraux.l5G3NrS8USofuBK8"}},"img":"systems/foundryvtt-reve-de-dragon/icons/botanique/Sajutte.webp","effects":[],"_id":"l5G3NrS8USofuBK8","system":{"description":"<p><em style=\"box-sizing: border-box; user-select: text;\">Herbe de repos.</em></p>\n<p>Petite herbe à sève blanche, très poisseuse, poussant aussi bien en forêt qu'en plaine, qu'en marais (Plus rare en montagne).</p>\n<p>Commune.</p>","descriptionmj":"","encombrement":0,"quantite":1,"qualite":0,"cout":0.02,"milieu":"Tous (plus rare en montagne)","environnement":[{"milieu":"Collines","rarete":"Commune","frequence":54},{"milieu":"Cours d'eau","rarete":"Commune","frequence":54},{"milieu":"Déserts","rarete":"Commune","frequence":54},{"milieu":"Forêts","rarete":"Commune","frequence":54},{"milieu":"Marais","rarete":"Commune","frequence":54},{"milieu":"Montagnes","rarete":"Frequente","frequence":18},{"milieu":"Plaines","rarete":"Commune","frequence":54}],"sust":0,"exotisme":0,"niveau":1,"base":0,"categorie":"Repos","rarete":"Commune"},"ownership":{"default":0,"rYShh2P1DNavdoBD":3},"folder":null,"sort":0,"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.6.0","coreVersion":"10.291","createdTime":1669734708527,"modifiedTime":1673657676884,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
||||||
{"name":"Grognuche","type":"faune","img":"systems/foundryvtt-reve-de-dragon/icons/faune/raton-laveur.webp","system":{"description":"<p>Grognuche. Rivage, 8 kg, 18 sust. La grognuche doit son nom à ses perpétuels<br>grognements d’insatisfaction. C’est un gros raton-laveur à nez de tapir. Surtout<br>recherchée pour sa peau.</p>","descriptionmj":"","encombrement":4,"quantite":1,"qualite":0,"cout":0,"milieu":"Rivage","environnement":[{"milieu":"Forêts","rarete":"Rare","frequence":6}],"sust":18,"exotisme":0,"categorie":"","actor":{"id":"","pack":"","name":""}},"effects":[],"flags":{"core":{"sourceId":"Item.LU5eutNQqwm52oOG"}},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.3.9","coreVersion":"10.291","createdTime":1670580597921,"modifiedTime":1670621588439,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"},"_id":"oT0Oryp8kUzBIXZN","folder":null,"sort":0,"ownership":{"default":0,"jtRmvSuwkwMmIMf0":3}}
|
{"name":"Corne de rêve","type":"plante","flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.faune-flore-mineraux.lDZbDKaPQGvqzK1k"}},"img":"systems/foundryvtt-reve-de-dragon/icons/botanique/Corne%20de%20r%C3%AAve.webp","effects":[],"_id":"lDZbDKaPQGvqzK1k","system":{"description":"<p>Champignon en forme de conque violet sombre.</p>\n<p>Rarissime.</p>","descriptionmj":"","encombrement":0.1,"quantite":1,"qualite":5,"cout":0,"milieu":"Lieux sombres et humides","environnement":[{"milieu":"Forêts","rarete":"Rarissime","frequence":3},{"milieu":"Sous-sols","rarete":"Rarissime","frequence":2}],"sust":1,"exotisme":0,"niveau":5,"base":0,"categorie":"Cuisine","rarete":"Rarissime"},"ownership":{"default":0,"rYShh2P1DNavdoBD":3},"folder":null,"sort":0,"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.6.0","coreVersion":"10.291","createdTime":1669734708527,"modifiedTime":1673791756580,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
||||||
{"name":"Daim","type":"faune","img":"systems/foundryvtt-reve-de-dragon/icons/faune/andurak.webp","system":{"description":"<p>Daim. Forêt, 60 kg, 140 sust.</p>","descriptionmj":"","encombrement":30,"quantite":1,"qualite":0,"cout":0,"milieu":"Forêt","environnement":[{"milieu":"Forêts","rarete":"Frequente","frequence":18}],"sust":140,"exotisme":0,"categorie":"","actor":{"id":"","pack":"","name":""}},"effects":[],"flags":{"core":{"sourceId":"Item.LU5eutNQqwm52oOG"}},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.3.9","coreVersion":"10.291","createdTime":1670580597921,"modifiedTime":1670621588438,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"},"_id":"p8Au8fNL2Lt4DJtb","folder":null,"sort":0,"ownership":{"default":0,"jtRmvSuwkwMmIMf0":3}}
|
{"name":"Amanite Thanataire","type":"plante","flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.faune-flore-mineraux.m01q5bqTSKOJLSkY"}},"img":"systems/foundryvtt-reve-de-dragon/icons/botanique/Amanite%20thanataire.webp","effects":[],"_id":"m01q5bqTSKOJLSkY","system":{"description":"<p>L’un des plus beaux, mais également le plus foudroyant des champignons vénéneux. Pied et volve élégamment proportionnés, chapeau arrondi à peine galbé, le tout paré d’une somptueuse teinte blanc argenté parsemée de points noirs.</p><p>Pour l'empoisonnement, voir: @UUID[Compendium.foundryvtt-reve-de-dragon.maladies-et-poisons.sriGtgt3FQkc642z]{Amanite thanataire}</p><p>Fréquente.</p>","descriptionmj":"","encombrement":0,"quantite":1,"qualite":0,"cout":0,"milieu":"Lieux sombres et humides","environnement":[{"milieu":"Forêts","rarete":"Frequente","frequence":18},{"milieu":"Sous-sols","rarete":"Rare","frequence":6}],"sust":0,"exotisme":0,"niveau":0,"base":0,"categorie":"Poison","rarete":"Frequente"},"ownership":{"default":0,"rYShh2P1DNavdoBD":3},"folder":null,"sort":0,"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.6.0","coreVersion":"10.291","createdTime":1669734708527,"modifiedTime":1673791287389,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
||||||
{"name":"Hérisson","type":"faune","img":"systems/foundryvtt-reve-de-dragon/icons/faune/rongeur.webp","system":{"description":"<p>Hérisson. Forêt, plaine, 1 kg, 2 sust. Attention, ça pique.</p>","descriptionmj":"","encombrement":0.5,"quantite":1,"qualite":0,"cout":0,"milieu":"Forets","environnement":[{"milieu":"Forêts","rarete":"Commune","frequence":54}],"sust":2,"exotisme":0,"categorie":"","actor":{"id":"","pack":"","name":""}},"effects":[],"flags":{"core":{"sourceId":"Item.LU5eutNQqwm52oOG"}},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.3.9","coreVersion":"10.291","createdTime":1670580597921,"modifiedTime":1670621588439,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"},"_id":"pMYcfBjUVEv3wP7M","folder":null,"sort":0,"ownership":{"default":0,"jtRmvSuwkwMmIMf0":3}}
|
{"name":"Obyssum gris","type":"ingredient","img":"systems/foundryvtt-reve-de-dragon/icons/objets/l_obyssum_gris.webp","effects":[],"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.equipement.nIOEB0PpMaACqD65"}},"system":{"description":"<p>Plus rare que le vert, poudre grisâtre apparaissant le long de certaines lianes des marais.</p>\n<p>VUE/Alchimie à -4</p>","descriptionmj":"","encombrement":0.001,"quantite":1,"qualite":0,"cout":0.1,"milieu":"Marais","environnement":[{"milieu":"Marais","rarete":"Rare","frequence":12}],"sust":0,"exotisme":0,"niveau":0,"base":0,"categorie":"Alchimie","rarete":""},"ownership":{"default":0,"rYShh2P1DNavdoBD":3,"Hp9ImM4o9YRTSdfu":3},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.6.0","coreVersion":"10.291","createdTime":1668808206114,"modifiedTime":1673657676880,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"},"folder":null,"sort":0,"_id":"m9ONkzH9KwLk3P3i"}
|
||||||
{"name":"Ossiphage","type":"herbe","flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.faune-flore-mineraux.pa0yqGaJX9x6kvKa"}},"img":"systems/foundryvtt-reve-de-dragon/icons/botanique/Ossiphage.webp","effects":[],"_id":"pa0yqGaJX9x6kvKa","system":{"description":"<p>Également appelée <em>suceuse d’os</em>, c’est une liane rampante à feuilles triangulaires de couleur violacée. Chaque feuille est dotée de trois longs piquants, un à chaque pointe de son triangle. Son venin est si foudroyant que la victime n’a souvent pas le temps d’aller bien loin et meurt empêtrée dans la liane. Il arrive que l’on découvre un squelette entier au coeur d’un bouquet d’ossiphage, chaque os maintenu en place par les vrilles de la plante.</p>\n<p>M6 \\ P 3 rounds \\ D4 \\ -5 \\ Perle de Bjwal +10, Huile de Sélikanthe +6.</p>\n<p>Rare.</p>","descriptionmj":"","encombrement":0,"quantite":1,"qualite":0,"cout":0,"milieu":"Forêts","environnement":[{"milieu":"Forêts","rarete":"Rare","frequence":6}],"niveau":0,"base":0,"categorie":"","rarete":"Rare"},"ownership":{"default":0,"rYShh2P1DNavdoBD":3},"folder":null,"sort":0,"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.3.9","coreVersion":"10.291","createdTime":1669734708527,"modifiedTime":1670621588442,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
{"name":"Pistouche","type":"faune","img":"systems/foundryvtt-reve-de-dragon/icons/faune/fretin.webp","system":{"description":"<p><span class=\"fontstyle0\">Gros gardon hésitant, mordillant cent fois l’appât avant de se décider (ou pas).</span> <br style=\" font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-align: -webkit-auto; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; \"></p>","descriptionmj":"","encombrement":0.07,"quantite":1,"qualite":0,"cout":0.01,"milieu":"","environnement":[{"milieu":"Cours d'eau","rarete":"Frequente","frequence":18}],"sust":0.7,"exotisme":0,"categorie":"","actor":{"id":"","pack":"","name":""}},"effects":[],"flags":{},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.5.4","coreVersion":"10.291","createdTime":1673656080829,"modifiedTime":1673656874816,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"},"_id":"mNI6Ad8RHRNIHhKS","folder":null,"sort":0,"ownership":{"default":0,"Hp9ImM4o9YRTSdfu":3}}
|
||||||
{"name":"Faux murus","type":"herbe","flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.faune-flore-mineraux.q6DoYNlSp6SEr5hj"}},"img":"systems/foundryvtt-reve-de-dragon/icons/botanique/Faux%20murus.webp","effects":[],"_id":"q6DoYNlSp6SEr5hj","system":{"description":"<p><em>Herbe de soin.</em></p>\n<p>Variété de murus poussant en prairie de montagne.</p>\n<p>Rare.</p>\n<p> </p>\n<p><em>Voir Les herbes de soin, p100.</em></p>","descriptionmj":"","encombrement":0,"quantite":1,"qualite":0,"cout":0.4,"milieu":"Prairies de montagnes","environnement":[{"milieu":"Montagnes","rarete":"Rare","frequence":6}],"niveau":7,"base":0,"categorie":"Soin","rarete":"Rare"},"ownership":{"default":0,"rYShh2P1DNavdoBD":3},"folder":null,"sort":0,"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.3.9","coreVersion":"10.291","createdTime":1669734708527,"modifiedTime":1670621588438,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
{"name":"Castor","type":"faune","img":"systems/foundryvtt-reve-de-dragon/icons/faune/raton-laveur.webp","system":{"description":"<p>Surtoutrecherché pour sa peau.</p>","descriptionmj":"","encombrement":5,"quantite":1,"qualite":0,"cout":0,"milieu":"Rivages","environnement":[{"milieu":"Cours d'eau","rarete":"Frequente","frequence":18}],"sust":20,"exotisme":0,"categorie":"","actor":{"id":"","pack":"","name":""}},"effects":[],"flags":{"core":{"sourceId":"Item.LU5eutNQqwm52oOG"}},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.6.0","coreVersion":"10.291","createdTime":1670580597921,"modifiedTime":1673657676876,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"},"_id":"msoR9RkqOQhKVsJa","folder":null,"sort":0,"ownership":{"default":0,"jtRmvSuwkwMmIMf0":3}}
|
||||||
{"name":"Ortigal rose","type":"herbe","flags":{"core":{"sheetClass":"foundryvtt-reve-de-dragon.RdDItemSheet","sourceId":"Compendium.foundryvtt-reve-de-dragon.faune-flore-mineraux.rXGa2Mx1ttMETTXo"}},"img":"systems/foundryvtt-reve-de-dragon/icons/botanique/Ortigal%20rose.webp","effects":[],"_id":"rXGa2Mx1ttMETTXo","system":{"description":"<p><em>Herbe de repos.</em></p>\n<p>Variété d'ortigal dont l'extrémité des feuilles est toute piquetée de points roses. Comme les autres ortigals, ne pousse qu'en lieux très humides, principalement en marais.</p>\n<p>Fréquent.</p>","descriptionmj":"","encombrement":0,"quantite":1,"qualite":0,"cout":0.1,"milieu":"Lieux très humides","environnement":[{"milieu":"Cours d'eau","rarete":"Rare","frequence":9},{"milieu":"Marais","rarete":"Frequente","frequence":18}],"niveau":3,"base":0,"categorie":"Repos","rarete":"Frequente"},"ownership":{"default":0,"rYShh2P1DNavdoBD":3},"folder":null,"sort":0,"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.3.9","coreVersion":"10.291","createdTime":1669734708528,"modifiedTime":1670621588441,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
{"name":"Héron","type":"faune","img":"systems/foundryvtt-reve-de-dragon/icons/faune/oiseau.webp","system":{"description":"<p>Héron. Rivage, 5 kg, 14 sust.</p>","descriptionmj":"","encombrement":2.5,"quantite":1,"qualite":0,"cout":0,"milieu":"Rivage","environnement":[{"milieu":"Cours d'eau","rarete":"Frequente","frequence":18}],"sust":14,"exotisme":0,"categorie":"","actor":{"id":"","pack":"","name":""}},"effects":[],"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.faune-flore-mineraux.muY8ZmwvnfsCrhLi"}},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.6.0","coreVersion":"10.291","createdTime":1670580597921,"modifiedTime":1673657676879,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"},"_id":"muY8ZmwvnfsCrhLi","folder":null,"sort":0,"ownership":{"default":0,"jtRmvSuwkwMmIMf0":3}}
|
||||||
{"name":"Clopinette","type":"ingredient","flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.faune-flore-mineraux.rkTRMgL8pFygYagr"}},"img":"systems/foundryvtt-reve-de-dragon/icons/botanique/Clopinettes.webp","effects":[],"_id":"rkTRMgL8pFygYagr","system":{"description":"<p>Fruit du clopinier, petit arbuste buissonneux semblable au genêt. Les clopinettes poussent en grappes nombreuses de petites baies rondes d’un blanc presque translucide. Peu juteuses, elles sont d’un goût neutre, non sucré, même pas âpre, et sont d’un pouvoir nutritif ridiculement faible (3 livres pour 1 sust). Poussant de préférence en plaine, y compris à l’abord des villages, elles sont ordinairement dédaignées des autochtones, même des animaux sauvages. On les laisse aux voyageurs. Pour cette raison, elles sont parfois appelées baies des voyageurs.</p>\n<p>Commune.</p>","descriptionmj":"","encombrement":0.01,"quantite":1,"qualite":0,"cout":0,"milieu":"Plaines","environnement":[{"milieu":"Cours d'eau","rarete":"Commune","frequence":108},{"milieu":"Plaines","rarete":"Commune","frequence":108}],"sust":0,"exotisme":0,"niveau":0,"base":0,"categorie":"Cuisine","rarete":"Frequente"},"ownership":{"default":0,"rYShh2P1DNavdoBD":3},"folder":null,"sort":0,"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.3.9","coreVersion":"10.291","createdTime":1669734708528,"modifiedTime":1670621588438,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
{"name":"Lune de mer","type":"faune","img":"systems/foundryvtt-reve-de-dragon/icons/faune/coquillage-pointe.webp","system":{"description":"<p>Échinoderme de la même famille que l’étoile de mer, mais en forme de croissant de lune. À cuire de préférence dans de l’eau de mer fortement additionnée de vinaigre.</p>","descriptionmj":"","encombrement":0.1,"quantite":1,"qualite":0,"cout":0,"milieu":"","environnement":[{"milieu":"Maritimes","rarete":"Frequente","frequence":18}],"sust":0.1,"exotisme":0,"categorie":"","actor":{"id":"","pack":"","name":""}},"effects":[],"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.faune-flore-mineraux.nWRV7y6qGn9xHzHc"}},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.6.0","coreVersion":"10.291","createdTime":1670616085735,"modifiedTime":1673657676880,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"},"folder":null,"sort":0,"ownership":{"default":0,"Hp9ImM4o9YRTSdfu":3},"_id":"nWRV7y6qGn9xHzHc"}
|
||||||
{"name":"Lièvre de Mars","type":"faune","img":"systems/foundryvtt-reve-de-dragon/icons/faune/lapin.webp","system":{"description":"<p>Lièvre de Mars. Forêt, plaine, 10 kg, 20 sust. Variété de klampin de très grande<br>taille, cet animal adopte un comportement bizarre quand il se sent en danger, notamment en présence de chasseurs. Il peut se dresser sur ses pattes postérieures<br>et tenter de s’éloigner subrepticement à reculons, faire le poirier pour feindre<br>précisément qu’il est un arbre, ou émettre des borborygmes dans lesquels cer-<br>tains ont cru entendre : « Quoi de neuf, docteur ? » L’origine de son nom est un<br>mystère attendu que ce n’est même pas un lièvre pour commencer.</p>","descriptionmj":"","encombrement":5,"quantite":1,"qualite":0,"cout":0,"milieu":"Plaines, Forrets","environnement":[{"milieu":"Forêts","rarete":"Rare","frequence":6},{"milieu":"Plaines","rarete":"Rare","frequence":6}],"sust":20,"exotisme":0,"categorie":"","actor":{"id":"","pack":"","name":""}},"effects":[],"flags":{"core":{"sourceId":"Item.LU5eutNQqwm52oOG"}},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.3.9","coreVersion":"10.291","createdTime":1670580597921,"modifiedTime":1670621588440,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"},"_id":"tBObmayQYLiSGzYF","folder":null,"sort":0,"ownership":{"default":0,"jtRmvSuwkwMmIMf0":3}}
|
{"name":"Méritoine","type":"herbe","flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.faune-flore-mineraux.nuOClbQwu6SLucJn"}},"img":"systems/foundryvtt-reve-de-dragon/icons/botanique/M%C3%A9ritoine.webp","effects":[],"_id":"nuOClbQwu6SLucJn","system":{"description":"<p><em>Herbe de soin.</em></p>\n<p>Plante rampante et ramifiée, aux minuscules feuilles vert pâle, s’accrochant aux troncs de certains conifères.</p>\n<p>Fréquente.</p>\n<p> </p>\n<p><em>Voir Les herbes de soin, p100.</em></p>","descriptionmj":"","encombrement":0,"quantite":1,"qualite":0,"cout":0.06,"milieu":"Forêts de conifères","environnement":[{"milieu":"Forêts","rarete":"Frequente","frequence":18},{"milieu":"Montagnes","rarete":"Frequente","frequence":18}],"sust":0,"exotisme":0,"niveau":3,"base":0,"categorie":"Soin","rarete":"Frequente"},"ownership":{"default":0,"rYShh2P1DNavdoBD":3},"folder":null,"sort":0,"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.6.0","coreVersion":"10.291","createdTime":1669734708527,"modifiedTime":1673657676880,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
||||||
{"name":"Sarcelle","type":"faune","img":"systems/foundryvtt-reve-de-dragon/icons/faune/oiseau.webp","system":{"description":"<p>Sarcelle. Plaine, 300 g, 1 sust.</p>","descriptionmj":"","encombrement":0.15,"quantite":1,"qualite":0,"cout":0,"milieu":"Plaine","environnement":[{"milieu":"Plaines","rarete":"Commune","frequence":71}],"sust":1,"exotisme":0,"categorie":"","actor":{"id":"","pack":"","name":""}},"effects":[],"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.faune-flore-mineraux.tYGOEogHcLqNkS4c"}},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.3.9","coreVersion":"10.291","createdTime":1670580597921,"modifiedTime":1670621588446,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"},"_id":"tYGOEogHcLqNkS4c","folder":null,"sort":0,"ownership":{"default":0,"jtRmvSuwkwMmIMf0":3}}
|
{"name":"Grognuche","type":"faune","img":"systems/foundryvtt-reve-de-dragon/icons/faune/raton-laveur.webp","system":{"description":"<p>Grognuche. Rivage, 8 kg, 18 sust. La grognuche doit son nom à ses perpétuels<br>grognements d’insatisfaction. C’est un gros raton-laveur à nez de tapir. Surtout<br>recherchée pour sa peau.</p>","descriptionmj":"","encombrement":4,"quantite":1,"qualite":0,"cout":0,"milieu":"Rivage","environnement":[{"milieu":"Forêts","rarete":"Rare","frequence":6}],"sust":18,"exotisme":0,"categorie":"","actor":{"id":"","pack":"","name":""}},"effects":[],"flags":{"core":{"sourceId":"Item.LU5eutNQqwm52oOG"}},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.6.0","coreVersion":"10.291","createdTime":1670580597921,"modifiedTime":1673657676878,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"},"_id":"oT0Oryp8kUzBIXZN","folder":null,"sort":0,"ownership":{"default":0,"jtRmvSuwkwMmIMf0":3}}
|
||||||
{"name":"Bélidane","type":"herbe","flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.faune-flore-mineraux.vnq7HONrBm90g2gY"}},"img":"systems/foundryvtt-reve-de-dragon/icons/botanique/B%C3%A9lidane.webp","effects":[],"_id":"vnq7HONrBm90g2gY","system":{"description":"<p><em>Herbe de soin.</em></p>\n<p>Herbacée aux feuilles fines et dentelées comme celle de la ciguë. Ne pousse que sur les versants de collines ensoleillées.</p>\n<p>Fréquente.</p>\n<p> </p>\n<p><em>Voir Les herbes de soin, p100.</em></p>","descriptionmj":"","encombrement":0,"quantite":1,"qualite":0,"cout":0.3,"milieu":"Collines ensoleillées","environnement":[{"milieu":"Collines","rarete":"Frequente","frequence":18}],"niveau":6,"base":0,"categorie":"Soin","rarete":"Frequente"},"ownership":{"default":0,"rYShh2P1DNavdoBD":3},"folder":null,"sort":0,"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.3.9","coreVersion":"10.291","createdTime":1669734708528,"modifiedTime":1670621588436,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
{"name":"Daim","type":"faune","img":"systems/foundryvtt-reve-de-dragon/icons/faune/andurak.webp","system":{"description":"<p>Daim. Forêt, 60 kg, 140 sust.</p>","descriptionmj":"","encombrement":30,"quantite":1,"qualite":0,"cout":0,"milieu":"Forêt","environnement":[{"milieu":"Forêts","rarete":"Frequente","frequence":18}],"sust":140,"exotisme":0,"categorie":"","actor":{"id":"","pack":"","name":""}},"effects":[],"flags":{"core":{"sourceId":"Item.LU5eutNQqwm52oOG"}},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.6.0","coreVersion":"10.291","createdTime":1670580597921,"modifiedTime":1673657676877,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"},"_id":"p8Au8fNL2Lt4DJtb","folder":null,"sort":0,"ownership":{"default":0,"jtRmvSuwkwMmIMf0":3}}
|
||||||
{"name":"Blèmissure","type":"ingredient","flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.faune-flore-mineraux.wNBWvJSd9i1zHspR"}},"img":"systems/foundryvtt-reve-de-dragon/icons/botanique/Bl%C3%A8missure.webp","effects":[],"_id":"wNBWvJSd9i1zHspR","system":{"description":"<p>Champignon affectant la forme d’une éponge, de couleur gris blême, apparaissant sur les troncs des arbres.</p>\n<p>M4 \\ P 1 minute \\ D2 \\ -4 \\ Élixir des Gnomes +14, Huile de Sélikanthe +10.</p>\n<p>Fréquente.</p>","descriptionmj":"","encombrement":0,"quantite":1,"qualite":0,"cout":0,"milieu":"Forêts sombres et humides","environnement":[{"milieu":"Forêts","rarete":"Frequente","frequence":18}],"sust":0,"exotisme":0,"niveau":0,"base":0,"categorie":"","rarete":"Frequente"},"ownership":{"default":0,"rYShh2P1DNavdoBD":3},"folder":null,"sort":0,"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.3.9","coreVersion":"10.291","createdTime":1669734708528,"modifiedTime":1670621588437,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
{"name":"Hérisson","type":"faune","img":"systems/foundryvtt-reve-de-dragon/icons/faune/rongeur.webp","system":{"description":"<p>Hérisson. Forêt, plaine, 1 kg, 2 sust. Attention, ça pique.</p>","descriptionmj":"","encombrement":0.5,"quantite":1,"qualite":0,"cout":0,"milieu":"Forets","environnement":[{"milieu":"Forêts","rarete":"Commune","frequence":54}],"sust":2,"exotisme":0,"categorie":"","actor":{"id":"","pack":"","name":""}},"effects":[],"flags":{"core":{"sourceId":"Item.LU5eutNQqwm52oOG"}},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.6.0","coreVersion":"10.291","createdTime":1670580597921,"modifiedTime":1673657676879,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"},"_id":"pMYcfBjUVEv3wP7M","folder":null,"sort":0,"ownership":{"default":0,"jtRmvSuwkwMmIMf0":3}}
|
||||||
{"name":"Bécasse","type":"faune","img":"systems/foundryvtt-reve-de-dragon/icons/faune/oie.webp","system":{"description":"<p>Bécasse. Plaine, 400 g, 1 sust.</p>","descriptionmj":"","encombrement":0.2,"quantite":1,"qualite":0,"cout":0,"milieu":"Plaine","environnement":[{"milieu":"Plaines","rarete":"Frequente","frequence":15}],"sust":1,"exotisme":0,"categorie":"","actor":{"id":"","pack":"","name":""}},"effects":[],"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.faune-flore-mineraux.wWdH55gh9ErhJGgt"}},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.3.9","coreVersion":"10.291","createdTime":1670580597921,"modifiedTime":1670621588446,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"},"_id":"wWdH55gh9ErhJGgt","folder":null,"sort":0,"ownership":{"default":0,"jtRmvSuwkwMmIMf0":3}}
|
{"name":"Ossiphage","type":"herbe","flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.faune-flore-mineraux.pa0yqGaJX9x6kvKa"}},"img":"systems/foundryvtt-reve-de-dragon/icons/botanique/Ossiphage.webp","effects":[],"_id":"pa0yqGaJX9x6kvKa","system":{"description":"<p>Également appelée <em>suceuse d’os</em>, c’est une liane rampante à feuilles triangulaires de couleur violacée. Chaque feuille est dotée de trois longs piquants, un à chaque pointe de son triangle. Son venin est si foudroyant que la victime n’a souvent pas le temps d’aller bien loin et meurt empêtrée dans la liane. Il arrive que l’on découvre un squelette entier au coeur d’un bouquet d’ossiphage, chaque os maintenu en place par les vrilles de la plante.</p><p>En cas de contact, voir: @UUID[Compendium.foundryvtt-reve-de-dragon.maladies-et-poisons.HB057aVUY1GylYxw]{Ossiphage}</p><p>Rare.</p>","descriptionmj":"","encombrement":0,"quantite":1,"qualite":0,"cout":0,"milieu":"Forêts","environnement":[{"milieu":"Forêts","rarete":"Rare","frequence":6}],"sust":0,"exotisme":0,"niveau":0,"base":0,"categorie":"Toxique","rarete":"Rare"},"ownership":{"default":0,"rYShh2P1DNavdoBD":3},"folder":null,"sort":0,"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.6.0","coreVersion":"10.291","createdTime":1669734708527,"modifiedTime":1673792376897,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
||||||
{"name":"Ortigal glauque","type":"herbe","img":"systems/foundryvtt-reve-de-dragon/icons/botanique/Ortigal%20noir.webp","system":{"description":"","descriptionmj":"","encombrement":0,"quantite":1,"qualite":0,"cout":0,"milieu":"Plante aquatique","environnement":[{"milieu":"Cours d'eau","rarete":"Frequente","frequence":27},{"milieu":"Marais","rarete":"Commune","frequence":54}],"niveau":0,"base":0,"categorie":"Alchimie"},"effects":[],"flags":{"core":{"sourceId":"Item.wjvaEK4Bq2TwKCFH"}},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.3.9","coreVersion":"10.291","createdTime":1670017184070,"modifiedTime":1670621588441,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"},"_id":"wjvaEK4Bq2TwKCFH","folder":null,"sort":0,"ownership":{"default":0,"Hp9ImM4o9YRTSdfu":3}}
|
{"name":"Faux murus","type":"herbe","flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.faune-flore-mineraux.q6DoYNlSp6SEr5hj"}},"img":"systems/foundryvtt-reve-de-dragon/icons/botanique/Faux%20murus.webp","effects":[],"_id":"q6DoYNlSp6SEr5hj","system":{"description":"<p><em>Herbe de soin.</em></p>\n<p>Variété de murus poussant en prairie de montagne.</p>\n<p>Rare.</p>\n<p> </p>\n<p><em>Voir Les herbes de soin, p100.</em></p>","descriptionmj":"","encombrement":0,"quantite":1,"qualite":0,"cout":0.4,"milieu":"Prairies de montagnes","environnement":[{"milieu":"Montagnes","rarete":"Rare","frequence":6}],"sust":0,"exotisme":0,"niveau":7,"base":0,"categorie":"Soin","rarete":"Rare"},"ownership":{"default":0,"rYShh2P1DNavdoBD":3},"folder":null,"sort":0,"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.6.0","coreVersion":"10.291","createdTime":1669734708527,"modifiedTime":1673657676878,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
||||||
{"name":"Herbe de lune","type":"herbe","flags":{"core":{"sheetClass":"foundryvtt-reve-de-dragon.RdDItemSheet","sourceId":"Compendium.foundryvtt-reve-de-dragon.faune-flore-mineraux.x4wGXTdmrzaOn8Sh"}},"img":"systems/foundryvtt-reve-de-dragon/icons/botanique/Herbe%20de%20lune.webp","effects":[],"_id":"x4wGXTdmrzaOn8Sh","system":{"description":"<p>Petite herbacée aux feuilles en forme de polygone à 7 côtés, d’un bleu très pâle, presque translucide, ne poussant qu’en haute montagne, à partir de 2000 mètres, et uniquement dans les recoins pouvant être éclairés par la lune. <br /><br />L’herbe de lune possède un fort pouvoir onirique sur celui qui la consomme\"; en termes de jeu, elle permet de gagner des points de rêve. Elle doit être cueillie de nuit et lorsque la lune l’éclaire, faute de quoi son pouvoir est nul. Sa force dépend de la phase lunaire durant laquelle elle est cueillie. <br /><br />Une fois séchée, l’herbe de lune peut être fumée dans une pipe ou préparée en décoction. Dans les deux cas, une dose doit être composée de 7 brins. Dès la dose absorbée (bue ou fumée), le consommateur doit jouer un JR r-force, c’est-à-dire un jet de points de rêve ajusté négativement à la force de l’herbe. Si le JR réussit, aucun effet ne se produit\"; s’il échoue, le consommateur gagne immédiatement un nombre de points de rêve égal à la force de l’herbe, puis en échange, marque un nombre identique de points de fatigue. On peut ainsi gagner des points de rêve même si le seuil de rêve est dépassé, mais se souvenir que dépasser le triple de son seuil provoque l’éclatement. <br /><br />L’herbe de lune est parfois trouvable chez les herboristes, mais n’est pas bon marché. Une dose (7 brins) vaut usuellement un nombre de sols égal à sa force. Une dose de force 6 vaut ainsi 6 sols. <br />Rare.</p>","descriptionmj":"","encombrement":0,"quantite":1,"qualite":0,"cout":null,"milieu":"Hautes montagnes","environnement":[{"milieu":"Montagnes","rarete":"Rare","frequence":6}],"niveau":null,"base":0,"categorie":"","rarete":"Rare"},"ownership":{"default":0,"rYShh2P1DNavdoBD":3},"folder":null,"sort":0,"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.3.9","coreVersion":"10.291","createdTime":1669734708528,"modifiedTime":1670621588439,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
{"name":"Ortigal rose","type":"herbe","flags":{"core":{"sheetClass":"foundryvtt-reve-de-dragon.RdDItemSheet","sourceId":"Compendium.foundryvtt-reve-de-dragon.faune-flore-mineraux.rXGa2Mx1ttMETTXo"}},"img":"systems/foundryvtt-reve-de-dragon/icons/botanique/Ortigal%20rose.webp","effects":[],"_id":"rXGa2Mx1ttMETTXo","system":{"description":"<p><em>Herbe de repos.</em></p>\n<p>Variété d'ortigal dont l'extrémité des feuilles est toute piquetée de points roses. Comme les autres ortigals, ne pousse qu'en lieux très humides, principalement en marais.</p>\n<p>Fréquent.</p>","descriptionmj":"","encombrement":0,"quantite":1,"qualite":0,"cout":0.1,"milieu":"Lieux très humides","environnement":[{"milieu":"Cours d'eau","rarete":"Rare","frequence":9},{"milieu":"Marais","rarete":"Frequente","frequence":18}],"sust":0,"exotisme":0,"niveau":3,"base":0,"categorie":"Repos","rarete":"Frequente"},"ownership":{"default":0,"rYShh2P1DNavdoBD":3},"folder":null,"sort":0,"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.6.0","coreVersion":"10.291","createdTime":1669734708528,"modifiedTime":1673657676883,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
||||||
{"name":"Corbeau","type":"faune","img":"systems/foundryvtt-reve-de-dragon/icons/faune/oiseau.webp","system":{"description":"<p>Corbeau. Plaine, 4 kg, 8 sust.</p>","descriptionmj":"","encombrement":2,"quantite":1,"qualite":0,"cout":0,"milieu":"Plaine","environnement":[{"milieu":"Plaines","rarete":"Commune","frequence":71}],"sust":8,"exotisme":0,"categorie":"","actor":{"id":"","pack":"","name":""}},"effects":[],"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.faune-flore-mineraux.ySY57JWhYS7PWBXv"}},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.3.9","coreVersion":"10.291","createdTime":1670580597921,"modifiedTime":1670621588446,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"},"_id":"ySY57JWhYS7PWBXv","folder":null,"sort":0,"ownership":{"default":0,"jtRmvSuwkwMmIMf0":3}}
|
{"name":"Clopinette","type":"plante","flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.faune-flore-mineraux.rkTRMgL8pFygYagr"}},"img":"systems/foundryvtt-reve-de-dragon/icons/botanique/Clopinettes.webp","effects":[],"_id":"rkTRMgL8pFygYagr","system":{"description":"<p>Fruit du clopinier, petit arbuste buissonneux semblable au genêt. Les clopinettes poussent en grappes nombreuses de petites baies rondes d’un blanc presque translucide. Peu juteuses, elles sont d’un goût neutre, non sucré, même pas âpre, et sont d’un pouvoir nutritif ridiculement faible (3 livres pour 1 sust). Poussant de préférence en plaine, y compris à l’abord des villages, elles sont ordinairement dédaignées des autochtones, même des animaux sauvages. On les laisse aux voyageurs. Pour cette raison, elles sont parfois appelées baies des voyageurs.</p>\n<p>Commune.</p>","descriptionmj":"","encombrement":0.01,"quantite":1,"qualite":0,"cout":0,"milieu":"Plaines","environnement":[{"milieu":"Cours d'eau","rarete":"Commune","frequence":108},{"milieu":"Plaines","rarete":"Commune","frequence":108}],"sust":0.003,"exotisme":0,"niveau":0,"base":0,"categorie":"Cuisine","rarete":"Frequente"},"ownership":{"default":0,"rYShh2P1DNavdoBD":3},"folder":null,"sort":0,"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.6.0","coreVersion":"10.291","createdTime":1669734708528,"modifiedTime":1673791453797,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
||||||
|
{"name":"Lièvre de Mars","type":"faune","img":"systems/foundryvtt-reve-de-dragon/icons/faune/lapin.webp","system":{"description":"<p>Lièvre de Mars. Forêt, plaine, 10 kg, 20 sust. Variété de klampin de très grande<br>taille, cet animal adopte un comportement bizarre quand il se sent en danger, notamment en présence de chasseurs. Il peut se dresser sur ses pattes postérieures<br>et tenter de s’éloigner subrepticement à reculons, faire le poirier pour feindre<br>précisément qu’il est un arbre, ou émettre des borborygmes dans lesquels cer-<br>tains ont cru entendre : « Quoi de neuf, docteur ? » L’origine de son nom est un<br>mystère attendu que ce n’est même pas un lièvre pour commencer.</p>","descriptionmj":"","encombrement":5,"quantite":1,"qualite":0,"cout":0,"milieu":"Plaines, Forrets","environnement":[{"milieu":"Forêts","rarete":"Rare","frequence":6},{"milieu":"Plaines","rarete":"Rare","frequence":6}],"sust":20,"exotisme":0,"categorie":"","actor":{"id":"","pack":"","name":""}},"effects":[],"flags":{"core":{"sourceId":"Item.LU5eutNQqwm52oOG"}},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.6.0","coreVersion":"10.291","createdTime":1670580597921,"modifiedTime":1673657676879,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"},"_id":"tBObmayQYLiSGzYF","folder":null,"sort":0,"ownership":{"default":0,"jtRmvSuwkwMmIMf0":3}}
|
||||||
|
{"name":"Sarcelle","type":"faune","img":"systems/foundryvtt-reve-de-dragon/icons/faune/oiseau.webp","system":{"description":"<p>Sarcelle. Plaine, 300 g, 1 sust.</p>","descriptionmj":"","encombrement":0.15,"quantite":1,"qualite":0,"cout":0,"milieu":"Plaine","environnement":[{"milieu":"Plaines","rarete":"Commune","frequence":71}],"sust":1,"exotisme":0,"categorie":"","actor":{"id":"","pack":"","name":""}},"effects":[],"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.faune-flore-mineraux.tYGOEogHcLqNkS4c"}},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.6.0","coreVersion":"10.291","createdTime":1670580597921,"modifiedTime":1673657676884,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"},"_id":"tYGOEogHcLqNkS4c","folder":null,"sort":0,"ownership":{"default":0,"jtRmvSuwkwMmIMf0":3}}
|
||||||
|
{"name":"Bélidane","type":"herbe","flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.faune-flore-mineraux.vnq7HONrBm90g2gY"}},"img":"systems/foundryvtt-reve-de-dragon/icons/botanique/B%C3%A9lidane.webp","effects":[],"_id":"vnq7HONrBm90g2gY","system":{"description":"<p><em>Herbe de soin.</em></p>\n<p>Herbacée aux feuilles fines et dentelées comme celle de la ciguë. Ne pousse que sur les versants de collines ensoleillées.</p>\n<p>Fréquente.</p>\n<p> </p>\n<p><em>Voir Les herbes de soin, p100.</em></p>","descriptionmj":"","encombrement":0,"quantite":1,"qualite":0,"cout":0.3,"milieu":"Collines ensoleillées","environnement":[{"milieu":"Collines","rarete":"Frequente","frequence":18}],"sust":0,"exotisme":0,"niveau":6,"base":0,"categorie":"Soin","rarete":"Frequente"},"ownership":{"default":0,"rYShh2P1DNavdoBD":3},"folder":null,"sort":0,"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.6.0","coreVersion":"10.291","createdTime":1669734708528,"modifiedTime":1673657676875,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
||||||
|
{"name":"Blèmissure","type":"plante","flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.faune-flore-mineraux.wNBWvJSd9i1zHspR"}},"img":"systems/foundryvtt-reve-de-dragon/icons/botanique/Bl%C3%A8missure.webp","effects":[],"_id":"wNBWvJSd9i1zHspR","system":{"description":"<p>Champignon affectant la forme d’une éponge, de couleur gris blême, apparaissant sur les troncs des arbres.</p><p>Pour l'empoisonnement, voir: @UUID[Compendium.foundryvtt-reve-de-dragon.maladies-et-poisons.JYMeJz8mxyI2oYIj]{Blèmissure}</p><p>Fréquente.</p>","descriptionmj":"","encombrement":0,"quantite":1,"qualite":0,"cout":0,"milieu":"Forêts sombres et humides","environnement":[{"milieu":"Forêts","rarete":"Frequente","frequence":18}],"sust":0,"exotisme":0,"niveau":0,"base":0,"categorie":"Poison","rarete":"Frequente"},"ownership":{"default":0,"rYShh2P1DNavdoBD":3},"folder":null,"sort":0,"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.6.0","coreVersion":"10.291","createdTime":1669734708528,"modifiedTime":1673791316842,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
||||||
|
{"name":"Bécasse","type":"faune","img":"systems/foundryvtt-reve-de-dragon/icons/faune/oie.webp","system":{"description":"<p>Bécasse. Plaine, 400 g, 1 sust.</p>","descriptionmj":"","encombrement":0.2,"quantite":1,"qualite":0,"cout":0,"milieu":"Plaine","environnement":[{"milieu":"Plaines","rarete":"Frequente","frequence":15}],"sust":1,"exotisme":0,"categorie":"","actor":{"id":"","pack":"","name":""}},"effects":[],"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.faune-flore-mineraux.wWdH55gh9ErhJGgt"}},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.6.0","coreVersion":"10.291","createdTime":1670580597921,"modifiedTime":1673657676875,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"},"_id":"wWdH55gh9ErhJGgt","folder":null,"sort":0,"ownership":{"default":0,"jtRmvSuwkwMmIMf0":3}}
|
||||||
|
{"name":"Ortigal glauque","type":"herbe","img":"systems/foundryvtt-reve-de-dragon/icons/botanique/Ortigal%20noir.webp","system":{"description":"","descriptionmj":"","encombrement":0,"quantite":1,"qualite":0,"cout":0,"milieu":"Plante aquatique","environnement":[{"milieu":"Cours d'eau","rarete":"Frequente","frequence":27},{"milieu":"Marais","rarete":"Commune","frequence":54}],"sust":0,"exotisme":0,"niveau":0,"base":0,"categorie":"Alchimie"},"effects":[],"flags":{"core":{"sourceId":"Item.wjvaEK4Bq2TwKCFH"}},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.6.0","coreVersion":"10.291","createdTime":1670017184070,"modifiedTime":1673657676882,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"},"_id":"wjvaEK4Bq2TwKCFH","folder":null,"sort":0,"ownership":{"default":0,"Hp9ImM4o9YRTSdfu":3}}
|
||||||
|
{"name":"Herbe de lune","type":"herbe","flags":{"core":{"sheetClass":"foundryvtt-reve-de-dragon.RdDItemSheet","sourceId":"Compendium.foundryvtt-reve-de-dragon.faune-flore-mineraux.x4wGXTdmrzaOn8Sh"}},"img":"systems/foundryvtt-reve-de-dragon/icons/botanique/Herbe%20de%20lune.webp","effects":[],"_id":"x4wGXTdmrzaOn8Sh","system":{"description":"<p>Petite herbacée aux feuilles en forme de polygone à 7 côtés, d’un bleu très pâle, presque translucide, ne poussant qu’en haute montagne, à partir de 2000 mètres, et uniquement dans les recoins pouvant être éclairés par la lune. <br /><br />L’herbe de lune possède un fort pouvoir onirique sur celui qui la consomme\"; en termes de jeu, elle permet de gagner des points de rêve. Elle doit être cueillie de nuit et lorsque la lune l’éclaire, faute de quoi son pouvoir est nul. Sa force dépend de la phase lunaire durant laquelle elle est cueillie. <br /><br />Une fois séchée, l’herbe de lune peut être fumée dans une pipe ou préparée en décoction. Dans les deux cas, une dose doit être composée de 7 brins. Dès la dose absorbée (bue ou fumée), le consommateur doit jouer un JR r-force, c’est-à-dire un jet de points de rêve ajusté négativement à la force de l’herbe. Si le JR réussit, aucun effet ne se produit\"; s’il échoue, le consommateur gagne immédiatement un nombre de points de rêve égal à la force de l’herbe, puis en échange, marque un nombre identique de points de fatigue. On peut ainsi gagner des points de rêve même si le seuil de rêve est dépassé, mais se souvenir que dépasser le triple de son seuil provoque l’éclatement. <br /><br />L’herbe de lune est parfois trouvable chez les herboristes, mais n’est pas bon marché. Une dose (7 brins) vaut usuellement un nombre de sols égal à sa force. Une dose de force 6 vaut ainsi 6 sols. <br />Rare.</p>","descriptionmj":"","encombrement":0,"quantite":7,"qualite":0,"cout":3,"milieu":"Hautes montagnes","environnement":[{"milieu":"Montagnes","rarete":"Rare","frequence":6}],"sust":0,"exotisme":0,"niveau":3,"base":0,"categorie":"Autre","rarete":"Rare"},"ownership":{"default":0,"rYShh2P1DNavdoBD":3},"folder":null,"sort":0,"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.6.15","coreVersion":"10.291","createdTime":1669734708528,"modifiedTime":1676073898671,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
|
||||||
|
{"name":"Corbeau","type":"faune","img":"systems/foundryvtt-reve-de-dragon/icons/faune/oiseau.webp","system":{"description":"<p>Corbeau. Plaine, 4 kg, 8 sust.</p>","descriptionmj":"","encombrement":2,"quantite":1,"qualite":0,"cout":0,"milieu":"Plaine","environnement":[{"milieu":"Plaines","rarete":"Commune","frequence":71}],"sust":8,"exotisme":0,"categorie":"","actor":{"id":"","pack":"","name":""}},"effects":[],"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.faune-flore-mineraux.ySY57JWhYS7PWBXv"}},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.6.0","coreVersion":"10.291","createdTime":1670580597921,"modifiedTime":1673657676876,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"},"_id":"ySY57JWhYS7PWBXv","folder":null,"sort":0,"ownership":{"default":0,"jtRmvSuwkwMmIMf0":3}}
|
||||||
|
|||||||