forked from public/foundryvtt-reve-de-dragon
		
	Compare commits
	
		
			58 Commits
		
	
	
		
			foundryvtt
			...
			foundryvtt
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| c1c192f710 | |||
| 7f64cd03f9 | |||
| 3ac9f487d0 | |||
| fa67c3d9c1 | |||
| 5b443f9ac0 | |||
| b0098574a0 | |||
| 5729f7e926 | |||
| 0b66c945b8 | |||
| f0fc44e00f | |||
| 6b7c2ad2f9 | |||
| 0ac5d317ce | |||
| f8a90fc3c3 | |||
| 6dd647b787 | |||
| 1c55491ac7 | |||
| 2b08678518 | |||
| 355f2e4088 | |||
| e0862105f9 | |||
| 3ab48511a0 | |||
| 05cd02b694 | |||
| 56a5d06f16 | |||
| f34db764cb | |||
| 7267cd4096 | |||
| e4bd2d2f27 | |||
| eb09714579 | |||
| 62cc3fc96b | |||
| 5e140546ea | |||
| ab9a21f402 | |||
| 8e41250f64 | |||
| 095eed9da3 | |||
| 55c98d1dce | |||
| b5dc14687e | |||
| 1208eb8ae1 | |||
| a46acb7952 | |||
| a68057900d | |||
| 57bc1b6c1f | |||
| 6101bc91a6 | |||
| 33ced5715d | |||
| 50db9ba709 | |||
| 957e31b188 | |||
| 74571c9966 | |||
| 5155fb4669 | |||
| 698ed75d46 | |||
| 37ba7166bf | |||
| 28af8c3c58 | |||
| 4a03c222d5 | |||
| 135546467d | |||
| b5db2a9ef3 | |||
| bfb7b9b6bf | |||
| f0b7306885 | |||
| af410c1823 | |||
| bf2b387fc4 | |||
| dfd915f8d1 | |||
| 4fe487a0ec | |||
| 0ec31d8ddc | |||
| 1bee911c35 | |||
| ed7471875f | |||
| f50e9cd305 | |||
| a2fcb9a453 | 
							
								
								
									
										58
									
								
								changelog.md
									
									
									
									
									
								
							
							
						
						
									
										58
									
								
								changelog.md
									
									
									
									
									
								
							@@ -1,4 +1,60 @@
 | 
			
		||||
# v11.2
 | 
			
		||||
# 11.2
 | 
			
		||||
## 11.2.12 - Le somnifère  d'Akarlikarlikar
 | 
			
		||||
- Fix: les potions enchantées n'empêchent plus de finir correctement Château Dormant
 | 
			
		||||
 | 
			
		||||
## 11.2.11 - Le miroir d'Akarlikarlikar
 | 
			
		||||
- Changement des images de compétence de créatures morsure/pinces pour être dans le thème
 | 
			
		||||
- Suppression de la bordure autour des portraits d'acteurs, remplacés par un légèr éclaircissement du fond
 | 
			
		||||
- Fix: le refoulement ajoute correctement un souffle et revient à 0 en cas d'échec
 | 
			
		||||
 | 
			
		||||
## 11.2.10 - Les expériences d'Akarlikarlikar
 | 
			
		||||
- En cas d'expérience des caractéristiques dérivées,
 | 
			
		||||
  - si plusieurs caractéristiques pourraient recevoir l'expérience, une fenêtre demande au joueur
 | 
			
		||||
  - si une seule caractéristique peut recevoir de l'expérience, c'est attribué automatiquement
 | 
			
		||||
- Si la force est au maximum pour la taille personnage, on ne peut plus gagner d'expérience
 | 
			
		||||
 | 
			
		||||
## 11.2.9 - La barbe d'Akarlikarlikar
 | 
			
		||||
- Amélioration des textes de tooltips
 | 
			
		||||
- Les tooltips sont plus dans le thème de couleur du système Rêve de Dragon 
 | 
			
		||||
- Ajouts d'icones pour les attaque/initiative/soins dans les raccourcis sur les tokens (HUD)
 | 
			
		||||
- Ajout d'une icône et transformation en bouton du lien pour accéder à l'astrologie et aux chiffres astraux
 | 
			
		||||
- Suppression de message de log inutile sur chaque point de coeur
 | 
			
		||||
- On peut désactiver l'ajustement astrologique sur les jets de chance (pour des jts de chances non liés à une heure)- Fix: suppression de quelques cas d'erreur lors de l'ouverture des TMR
 | 
			
		||||
- Fix: suppression du warning de depréciation effects flags.core.statusId
 | 
			
		||||
- Les sorts en réserve en fleuve sont indiqués sur toutes les cases fleuve
 | 
			
		||||
- Changement de l'icône d'état d'empoignade pour suivre les couleurs des autres icônes d'état
 | 
			
		||||
 | 
			
		||||
## 11.2.8 - L'éclairage d'Akarlikarlikar
 | 
			
		||||
- l'ajustement de la lumière jour/nuit s'étale sur moins de temps (vaisseau et Lyre)
 | 
			
		||||
- les nouveaux tooltips ne masquent plus l'information d'expérience
 | 
			
		||||
- les jets de dés pour maîtriser les rencontres fonctionnent de nouveau
 | 
			
		||||
 | 
			
		||||
## 11.2.7 - Les explications d'Akarlikarlikar
 | 
			
		||||
- Ajout de tooltips sur la plupart des boutons, liens clickables, objets, tâches, ...
 | 
			
		||||
- Fix: on peut de nouveau regarder l'inventaire avec les droits limités/observateur
 | 
			
		||||
 | 
			
		||||
## 11.2.6 - Les réveils difficiles d'Akarlikarlikar
 | 
			
		||||
- Les changements de points de Cœur sont temporaires jusqu'à fin Château Dormant
 | 
			
		||||
- Fix: tous les petits fixes (feuille qui s'ouvre plus, compagnons animaux, potions qui bloquent Château Dormant, ...)
 | 
			
		||||
 | 
			
		||||
## 11.2.2 - Les tendres moments d'Akarlikarlikar
 | 
			
		||||
- On peut maintenant avoir des points de Cœur pour des suivants/compagnons
 | 
			
		||||
  - diminuer les points de coeurs fait perdre du moral
 | 
			
		||||
  - on peut proposer un tendre moment
 | 
			
		||||
  - les jets de volonté peuvent être ajustés selon les points de Cœur
 | 
			
		||||
- Fixes
 | 
			
		||||
  - La résistance est de 1 par défaut pour les équipements
 | 
			
		||||
  - Les armes de créatures sont de nouveau utilisables depuis les tokens
 | 
			
		||||
  - Pas de notifications de signe draconique quand on regarde les TMR sans monter
 | 
			
		||||
  - Correction d'un problème de contextes WebGL causé par des ouvertures/fermetures de TMRs
 | 
			
		||||
  - On peut maintenant prendre un objet d'un acteur-token pour l'ajouter à un autre acteur
 | 
			
		||||
  - On ne peut plus donner d'objets d'un acteur à un acteur-token
 | 
			
		||||
  - L'état général est correctement calculé, affiché, et utilisé pour les animaux
 | 
			
		||||
  - On peut ajouter des blessures manuellement aux animaux
 | 
			
		||||
  - Le texte de la carte de Tarot "Le Gibet" est corrigé
 | 
			
		||||
  - Sur Firefox, le calendrier est correctement initialisé, les ajustements astrologiques
 | 
			
		||||
    ne bloquent plus les jets de dés
 | 
			
		||||
 | 
			
		||||
## v11.2.1 - La technique d'Akarlikarlikar
 | 
			
		||||
- On peut créer des armes pour Corps à corps et Esquive. Barreaux de chaise, armes improvisées, techniques d'art martiaux, pas de côté pour faire trébucher l'adversaire... A vous de voir comment imaginer de nouvelles "armes".
 | 
			
		||||
- Les armes avec une résistance de 0 ne peuvent pas être utilisées, une image et un rappel indiquent qu'elles sont cassées
 | 
			
		||||
 
 | 
			
		||||
										
											Binary file not shown.
										
									
								
							| 
		 Before Width: | Height: | Size: 2.1 KiB After Width: | Height: | Size: 8.9 KiB  | 
										
											Binary file not shown.
										
									
								
							| 
		 Before Width: | Height: | Size: 2.4 KiB After Width: | Height: | Size: 11 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								icons/empoignade.webp
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								icons/empoignade.webp
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							| 
		 After Width: | Height: | Size: 5.4 KiB  | 
							
								
								
									
										102
									
								
								icons/tmr/sort-reserve-humide.svg
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										102
									
								
								icons/tmr/sort-reserve-humide.svg
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,102 @@
 | 
			
		||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
 | 
			
		||||
<svg
 | 
			
		||||
   xmlns:dc="http://purl.org/dc/elements/1.1/"
 | 
			
		||||
   xmlns:cc="http://creativecommons.org/ns#"
 | 
			
		||||
   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
 | 
			
		||||
   xmlns:svg="http://www.w3.org/2000/svg"
 | 
			
		||||
   xmlns="http://www.w3.org/2000/svg"
 | 
			
		||||
   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
 | 
			
		||||
   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
 | 
			
		||||
   viewBox="0 0 512 512"
 | 
			
		||||
   style="height: 256px; width: 256px;"
 | 
			
		||||
   version="1.1"
 | 
			
		||||
   id="svg24"
 | 
			
		||||
   sodipodi:docname="sort-reserve-humide3.svg"
 | 
			
		||||
   inkscape:version="1.0.1 (3bc2e813f5, 2020-09-07)">
 | 
			
		||||
  <metadata
 | 
			
		||||
     id="metadata30">
 | 
			
		||||
    <rdf:RDF>
 | 
			
		||||
      <cc:Work
 | 
			
		||||
         rdf:about="">
 | 
			
		||||
        <dc:format>image/svg+xml</dc:format>
 | 
			
		||||
        <dc:type
 | 
			
		||||
           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
 | 
			
		||||
      </cc:Work>
 | 
			
		||||
    </rdf:RDF>
 | 
			
		||||
  </metadata>
 | 
			
		||||
  <defs
 | 
			
		||||
     id="defs28" />
 | 
			
		||||
  <sodipodi:namedview
 | 
			
		||||
     pagecolor="#ffffff"
 | 
			
		||||
     bordercolor="#666666"
 | 
			
		||||
     borderopacity="1"
 | 
			
		||||
     objecttolerance="10"
 | 
			
		||||
     gridtolerance="10"
 | 
			
		||||
     guidetolerance="10"
 | 
			
		||||
     inkscape:pageopacity="0"
 | 
			
		||||
     inkscape:pageshadow="2"
 | 
			
		||||
     inkscape:window-width="2794"
 | 
			
		||||
     inkscape:window-height="1756"
 | 
			
		||||
     id="namedview26"
 | 
			
		||||
     showgrid="false"
 | 
			
		||||
     inkscape:zoom="2.8786993"
 | 
			
		||||
     inkscape:cx="323.66586"
 | 
			
		||||
     inkscape:cy="227.70764"
 | 
			
		||||
     inkscape:window-x="0"
 | 
			
		||||
     inkscape:window-y="0"
 | 
			
		||||
     inkscape:window-maximized="0"
 | 
			
		||||
     inkscape:current-layer="svg24" />
 | 
			
		||||
  <g
 | 
			
		||||
     id="g881"
 | 
			
		||||
     transform="translate(2.1482304,2.80716)">
 | 
			
		||||
    <path
 | 
			
		||||
       d="m 243.94189,104.37921 -82.23331,178.13543 82.23331,27.44784 z"
 | 
			
		||||
       class=""
 | 
			
		||||
       fill="#f4e3d7"
 | 
			
		||||
       fill-opacity="1"
 | 
			
		||||
       id="path2"
 | 
			
		||||
       style="stroke-width:1.10232" />
 | 
			
		||||
    <path
 | 
			
		||||
       d="m 263.7837,104.37921 v 205.58327 l 82.23331,-27.44784 z"
 | 
			
		||||
       class=""
 | 
			
		||||
       fill="#f4e3d7"
 | 
			
		||||
       fill-opacity="1"
 | 
			
		||||
       id="path4"
 | 
			
		||||
       style="stroke-width:1.10232" />
 | 
			
		||||
    <path
 | 
			
		||||
       d="M 168.21228,221.005 18.274279,239.7445 141.75653,278.32581 Z"
 | 
			
		||||
       class=""
 | 
			
		||||
       fill="#f4e3d7"
 | 
			
		||||
       fill-opacity="1"
 | 
			
		||||
       id="path6"
 | 
			
		||||
       style="stroke-width:1.10232" />
 | 
			
		||||
    <path
 | 
			
		||||
       d="M 339.51331,221.005 365.96906,278.32581 489.5395,239.7445 Z"
 | 
			
		||||
       class=""
 | 
			
		||||
       fill="#f4e3d7"
 | 
			
		||||
       fill-opacity="1"
 | 
			
		||||
       id="path8"
 | 
			
		||||
       style="stroke-width:1.10232" />
 | 
			
		||||
    <path
 | 
			
		||||
       d="M -0.24475089,254.73609 114.97007,398.80973 230.27308,326.7178 Z"
 | 
			
		||||
       class=""
 | 
			
		||||
       fill="#f4e3d7"
 | 
			
		||||
       fill-opacity="1"
 | 
			
		||||
       id="path10"
 | 
			
		||||
       style="stroke-width:1.10232" />
 | 
			
		||||
    <path
 | 
			
		||||
       d="M 507.94829,254.73609 277.45251,326.7178 392.75552,398.80973 Z"
 | 
			
		||||
       class=""
 | 
			
		||||
       fill="#f4e3d7"
 | 
			
		||||
       fill-opacity="1"
 | 
			
		||||
       id="path12"
 | 
			
		||||
       style="stroke-width:1.10232" />
 | 
			
		||||
    <path
 | 
			
		||||
       d="M 253.8628,335.42615 147.37837,402.00647 H 360.34722 Z"
 | 
			
		||||
       class=""
 | 
			
		||||
       fill="#f4e3d7"
 | 
			
		||||
       fill-opacity="1"
 | 
			
		||||
       id="path14"
 | 
			
		||||
       style="stroke-width:1.10232" />
 | 
			
		||||
  </g>
 | 
			
		||||
</svg>
 | 
			
		||||
| 
		 After Width: | Height: | Size: 2.9 KiB  | 
@@ -15,14 +15,16 @@ import { RdDBaseActorReveSheet } from "./actor/base-actor-reve-sheet.js";
 | 
			
		||||
import { RdDItem } from "./item.js";
 | 
			
		||||
import { RdDItemBlessure } from "./item/blessure.js";
 | 
			
		||||
import { RdDEmpoignade } from "./rdd-empoignade.js";
 | 
			
		||||
import { RdDBaseActorSangSheet } from "./actor/base-actor-sang-sheet.js";
 | 
			
		||||
import { ChatUtility } from "./chat-utility.js";
 | 
			
		||||
import { RdDCoeur } from "./coeur/rdd-coeur.js";
 | 
			
		||||
 | 
			
		||||
/* -------------------------------------------- */
 | 
			
		||||
/**
 | 
			
		||||
 * Extend the basic ActorSheet with some very simple modifications
 | 
			
		||||
 * @extends {ActorSheet}
 | 
			
		||||
 */
 | 
			
		||||
export class RdDActorSheet extends RdDBaseActorReveSheet {
 | 
			
		||||
export class RdDActorSheet extends RdDBaseActorSangSheet {
 | 
			
		||||
 | 
			
		||||
  /** @override */
 | 
			
		||||
  static get defaultOptions() {
 | 
			
		||||
@@ -118,6 +120,18 @@ export class RdDActorSheet extends RdDBaseActorReveSheet {
 | 
			
		||||
 | 
			
		||||
    HtmlUtility.showControlWhen(this.html.find(".appliquerFatigue"), ReglesOptionnelles.isUsing("appliquer-fatigue"));
 | 
			
		||||
 | 
			
		||||
    this.html.find('.subacteur-open').click(async event => {
 | 
			
		||||
      const subActorId = RdDSheetUtility.getEventItemData(event, 'subactor-id');
 | 
			
		||||
      this.openSubActeur(subActorId);
 | 
			
		||||
    })
 | 
			
		||||
 | 
			
		||||
    this.html.find('.show-hide-competences').click(async event => {
 | 
			
		||||
      this.options.showCompNiveauBase = !this.options.showCompNiveauBase;
 | 
			
		||||
      this.render(true);
 | 
			
		||||
    });
 | 
			
		||||
 | 
			
		||||
    this.html.find('.visu-tmr').click(async event => this.actor.displayTMR("visu"))
 | 
			
		||||
 | 
			
		||||
    // Everything below here is only needed if the sheet is editable
 | 
			
		||||
    if (!this.options.editable) return;
 | 
			
		||||
 | 
			
		||||
@@ -126,35 +140,20 @@ export class RdDActorSheet extends RdDBaseActorReveSheet {
 | 
			
		||||
      this.actor.conjurerPossession(poss)
 | 
			
		||||
    })
 | 
			
		||||
 | 
			
		||||
    this.html.find('.subacteur-label a').click(async event => {
 | 
			
		||||
      let actorId = RdDSheetUtility.getEventItemData(event, 'actor-id');
 | 
			
		||||
      let actor = game.actors.get(actorId);
 | 
			
		||||
      if (actor) {
 | 
			
		||||
        actor.sheet.render(true);
 | 
			
		||||
      }
 | 
			
		||||
    });
 | 
			
		||||
    this.html.find('.subacteur-coeur-toggle a').click(async event => {
 | 
			
		||||
      const subActorIdactorId = RdDSheetUtility.getEventItemData(event, 'subactor-id')
 | 
			
		||||
      const coeurNombre = $(event.currentTarget).data('numero-coeur')
 | 
			
		||||
      RdDCoeur.toggleSubActeurCoeur(this.actor.id, subActorIdactorId, coeurNombre)
 | 
			
		||||
    })
 | 
			
		||||
    this.html.find('.subacteur-tendre-moment').click(async event => {
 | 
			
		||||
      const subActorId = RdDSheetUtility.getEventItemData(event, 'subactor-id')
 | 
			
		||||
      RdDCoeur.startSubActeurTendreMoment(this.actor.id, subActorId)
 | 
			
		||||
    })
 | 
			
		||||
    this.html.find('.subacteur-delete').click(async event => {
 | 
			
		||||
      const li = RdDSheetUtility.getEventElement(event);
 | 
			
		||||
      const actorId = li.data("actor-id");
 | 
			
		||||
      if (actorId) {
 | 
			
		||||
        const subActor = game.actors.get(actorId);
 | 
			
		||||
        RdDUtility.confirmerSuppressionSubacteur(this, subActor, li, () => {
 | 
			
		||||
          console.log('Delete : ', subActor.id);
 | 
			
		||||
          this.actor.removeSubacteur(subActor.id);
 | 
			
		||||
          RdDUtility.slideOnDelete(this, li);
 | 
			
		||||
        });
 | 
			
		||||
      }
 | 
			
		||||
    });
 | 
			
		||||
    this.html.find('.experiencelog-delete').click(async event => {
 | 
			
		||||
      const li = this.html.find(event.currentTarget)?.parents(".experiencelog");
 | 
			
		||||
      const key = Number(li.data("key") ?? -1);
 | 
			
		||||
      await this.actor.deleteExperienceLog(key, 1);
 | 
			
		||||
    });
 | 
			
		||||
    this.html.find('.experiencelog-delete-previous').click(async event => {
 | 
			
		||||
      const li = this.html.find(event.currentTarget)?.parents(".experiencelog");
 | 
			
		||||
      const key = Number(li.data("key") ?? -1);
 | 
			
		||||
      await this.actor.deleteExperienceLog(0, key + 1);
 | 
			
		||||
    });
 | 
			
		||||
      const subActorId = li.data("subactor-id");
 | 
			
		||||
      this.deleteSubActeur(subActorId, li);
 | 
			
		||||
    })
 | 
			
		||||
    this.html.find("input.derivee-value[name='system.compteurs.stress.value']").change(async event => {
 | 
			
		||||
      this.actor.updateCompteurValue("stress", parseInt(event.target.value));
 | 
			
		||||
    });
 | 
			
		||||
@@ -162,16 +161,11 @@ export class RdDActorSheet extends RdDBaseActorReveSheet {
 | 
			
		||||
      this.actor.updateCompteurValue("experience", parseInt(event.target.value));
 | 
			
		||||
    });
 | 
			
		||||
 | 
			
		||||
    this.html.find('.creer-tache').click(async event => {
 | 
			
		||||
      this.createEmptyTache();
 | 
			
		||||
    });
 | 
			
		||||
    this.html.find('.creer-tache').click(async event => this.createEmptyTache());
 | 
			
		||||
    this.html.find('.creer-une-oeuvre').click(async event => this.selectTypeOeuvreToCreate());
 | 
			
		||||
    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.selectTypeOeuvreToCreate());
 | 
			
		||||
 | 
			
		||||
    this.html.find('.blessure-premierssoins-done').change(async event => {
 | 
			
		||||
      const blessure = this.getBlessure(event);
 | 
			
		||||
@@ -191,71 +185,44 @@ export class RdDActorSheet extends RdDBaseActorReveSheet {
 | 
			
		||||
    });
 | 
			
		||||
 | 
			
		||||
    // Equip Inventory Item
 | 
			
		||||
    this.html.find('.item-equip').click(async event => {
 | 
			
		||||
      this.actor.equiperObjet(RdDSheetUtility.getItemId(event));
 | 
			
		||||
    });
 | 
			
		||||
    this.html.find('.item-equip').click(async event => this.actor.equiperObjet(RdDSheetUtility.getItemId(event)))
 | 
			
		||||
    this.html.find('.chance-actuelle').click(async event => this.actor.rollCarac('chance-actuelle'))
 | 
			
		||||
 | 
			
		||||
    // Roll Carac
 | 
			
		||||
    this.html.find('.chance-actuelle').click(async event => {
 | 
			
		||||
      this.actor.rollCarac('chance-actuelle');
 | 
			
		||||
    });
 | 
			
		||||
    this.html.find('.chance-appel').click(async event => this.actor.rollAppelChance())
 | 
			
		||||
 | 
			
		||||
    this.html.find('.chance-appel').click(async event => {
 | 
			
		||||
      this.actor.rollAppelChance();
 | 
			
		||||
    });
 | 
			
		||||
    this.html.find('[name="jet-astrologie"]').click(async event => this.actor.astrologieNombresAstraux())
 | 
			
		||||
    this.html.find('.tache-label a').click(async event => this.actor.rollTache(RdDSheetUtility.getItemId(event)))
 | 
			
		||||
    this.html.find('.meditation-label a').click(async event => this.actor.rollMeditation(RdDSheetUtility.getItemId(event)))
 | 
			
		||||
 | 
			
		||||
    // Roll Skill
 | 
			
		||||
    this.html.find('[name="jet-astrologie"]').click(async event => {
 | 
			
		||||
      this.actor.astrologieNombresAstraux();
 | 
			
		||||
    });
 | 
			
		||||
    this.html.find('.tache-label a').click(async event => {
 | 
			
		||||
      this.actor.rollTache(RdDSheetUtility.getItemId(event));
 | 
			
		||||
    });
 | 
			
		||||
    this.html.find('.meditation-label a').click(async event => {
 | 
			
		||||
      this.actor.rollMeditation(RdDSheetUtility.getItemId(event));
 | 
			
		||||
    });
 | 
			
		||||
    this.html.find('.chant-label a').click(async event => {
 | 
			
		||||
      this.actor.rollChant(RdDSheetUtility.getItemId(event));
 | 
			
		||||
    });
 | 
			
		||||
    this.html.find('.danse-label a').click(async event => {
 | 
			
		||||
      this.actor.rollDanse(RdDSheetUtility.getItemId(event));
 | 
			
		||||
    });
 | 
			
		||||
    this.html.find('.musique-label a').click(async event => {
 | 
			
		||||
      this.actor.rollMusique(RdDSheetUtility.getItemId(event));
 | 
			
		||||
    });
 | 
			
		||||
    this.html.find('.oeuvre-label a').click(async event => {
 | 
			
		||||
      this.actor.rollOeuvre(RdDSheetUtility.getItemId(event));
 | 
			
		||||
    });
 | 
			
		||||
    this.html.find('.jeu-label a').click(async event => {
 | 
			
		||||
      this.actor.rollJeu(RdDSheetUtility.getItemId(event));
 | 
			
		||||
    });
 | 
			
		||||
    this.html.find('.recettecuisine-label a').click(async event => {
 | 
			
		||||
      this.actor.rollRecetteCuisine(RdDSheetUtility.getItemId(event));
 | 
			
		||||
    });
 | 
			
		||||
    this.html.find('.chant-label a').click(async event => this.actor.rollChant(RdDSheetUtility.getItemId(event)))
 | 
			
		||||
    this.html.find('.danse-label a').click(async event => this.actor.rollDanse(RdDSheetUtility.getItemId(event)))
 | 
			
		||||
    this.html.find('.musique-label a').click(async event => this.actor.rollMusique(RdDSheetUtility.getItemId(event)))
 | 
			
		||||
    this.html.find('.oeuvre-label a').click(async event => this.actor.rollOeuvre(RdDSheetUtility.getItemId(event)))
 | 
			
		||||
    this.html.find('.jeu-label a').click(async event => this.actor.rollJeu(RdDSheetUtility.getItemId(event)))
 | 
			
		||||
    this.html.find('.recettecuisine-label a').click(async event => this.actor.rollRecetteCuisine(RdDSheetUtility.getItemId(event)))
 | 
			
		||||
 | 
			
		||||
    // Boutons spéciaux MJs
 | 
			
		||||
    this.html.find('.forcer-tmr-aleatoire').click(async event => {
 | 
			
		||||
      this.actor.reinsertionAleatoire("Action MJ");
 | 
			
		||||
    });
 | 
			
		||||
    this.html.find('.afficher-tmr').click(async event => {
 | 
			
		||||
      this.actor.changeTMRVisible();
 | 
			
		||||
    });
 | 
			
		||||
    if (game.user.isGM) {
 | 
			
		||||
      // experience log
 | 
			
		||||
      this.html.find('.experiencelog-delete').click(async event => {
 | 
			
		||||
        const li = this.html.find(event.currentTarget)?.parents(".experiencelog");
 | 
			
		||||
        const key = Number(li.data("key") ?? -1);
 | 
			
		||||
        await this.actor.deleteExperienceLog(key, 1);
 | 
			
		||||
      });
 | 
			
		||||
      this.html.find('.experiencelog-delete-previous').click(async event => {
 | 
			
		||||
        const li = this.html.find(event.currentTarget)?.parents(".experiencelog");
 | 
			
		||||
        const key = Number(li.data("key") ?? -1);
 | 
			
		||||
        await this.actor.deleteExperienceLog(0, key + 1);
 | 
			
		||||
      });
 | 
			
		||||
        // Boutons spéciaux MJs
 | 
			
		||||
      this.html.find('.forcer-tmr-aleatoire').click(async event => this.actor.reinsertionAleatoire("Action MJ"))
 | 
			
		||||
      this.html.find('.afficher-tmr').click(async event => this.actor.changeTMRVisible())
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    // Points de reve actuel
 | 
			
		||||
    this.html.find('.ptreve-actuel a').click(async event => {
 | 
			
		||||
      this.actor.rollCarac('reve-actuel', true);
 | 
			
		||||
    });
 | 
			
		||||
    this.html.find('.ptreve-actuel a').click(async event => this.actor.rollCarac('reve-actuel', true))
 | 
			
		||||
    this.html.find('.empoignade-label a').click(async event => RdDEmpoignade.onAttaqueEmpoignadeFromItem(RdDSheetUtility.getItem(event, this.actor)))
 | 
			
		||||
    this.html.find('.arme-label a').click(async event => this.actor.rollArme(duplicate(this._getEventArmeCombat(event))))
 | 
			
		||||
 | 
			
		||||
    // Suite empoignade
 | 
			
		||||
    this.html.find('.empoignade-label a').click(async event => {
 | 
			
		||||
      let emp = RdDSheetUtility.getItem(event, this.actor)
 | 
			
		||||
      RdDEmpoignade.onAttaqueEmpoignadeFromItem(emp)
 | 
			
		||||
    });
 | 
			
		||||
    // Roll Weapon1
 | 
			
		||||
    this.html.find('.arme-label a').click(async event => {
 | 
			
		||||
      let arme = this._getEventArmeCombat(event);
 | 
			
		||||
      this.actor.rollArme(duplicate(arme));
 | 
			
		||||
    });
 | 
			
		||||
    // Initiative pour l'arme
 | 
			
		||||
    this.html.find('.arme-initiative a').click(async event => {
 | 
			
		||||
      let combatant = game.combat.combatants.find(c => c.actor.id == this.actor.id);
 | 
			
		||||
@@ -267,21 +234,15 @@ export class RdDActorSheet extends RdDBaseActorReveSheet {
 | 
			
		||||
      }
 | 
			
		||||
    });
 | 
			
		||||
    // Display TMR
 | 
			
		||||
    this.html.find('.visu-tmr').click(async event => { this.actor.displayTMR("visu") })
 | 
			
		||||
    this.html.find('.monte-tmr').click(async event => { this.actor.displayTMR("normal") })
 | 
			
		||||
    this.html.find('.monte-tmr-rapide').click(async event => { this.actor.displayTMR("rapide") })
 | 
			
		||||
 | 
			
		||||
    this.html.find('.repos').click(async event => { await this.actor.repos() })
 | 
			
		||||
    this.html.find('.carac-xp-augmenter').click(async event => {
 | 
			
		||||
      let caracName = event.currentTarget.name.replace("augmenter.", "");
 | 
			
		||||
      this.actor.updateCaracXPAuto(caracName);
 | 
			
		||||
    });
 | 
			
		||||
    this.html.find('.competence-xp-augmenter').click(async event => {
 | 
			
		||||
      this.actor.updateCompetenceXPAuto(RdDSheetUtility.getItemId(event));
 | 
			
		||||
    });
 | 
			
		||||
    this.html.find('.competence-stress-augmenter').click(async event => {
 | 
			
		||||
      this.actor.updateCompetenceStress(RdDSheetUtility.getItemId(event));
 | 
			
		||||
    });
 | 
			
		||||
    this.html.find('.monte-tmr').click(async event => this.actor.displayTMR("normal"))
 | 
			
		||||
    this.html.find('.monte-tmr-rapide').click(async event => this.actor.displayTMR("rapide"))
 | 
			
		||||
 | 
			
		||||
    this.html.find('.repos').click(async event => await this.actor.repos())
 | 
			
		||||
 | 
			
		||||
    this.html.find('.carac-xp-augmenter').click(async event => this.actor.updateCaracXPAuto(event.currentTarget.name.replace("augmenter.", "")))
 | 
			
		||||
    this.html.find('.competence-xp-augmenter').click(async event => this.actor.updateCompetenceXPAuto(RdDSheetUtility.getItemId(event)))
 | 
			
		||||
    this.html.find('.competence-stress-augmenter').click(async event => this.actor.updateCompetenceStress(RdDSheetUtility.getItemId(event)))
 | 
			
		||||
 | 
			
		||||
    if (this.options.vueDetaillee) {
 | 
			
		||||
      // On carac change
 | 
			
		||||
@@ -308,86 +269,28 @@ export class RdDActorSheet extends RdDBaseActorReveSheet {
 | 
			
		||||
        let compName = event.currentTarget.attributes.compname.value;
 | 
			
		||||
        this.actor.updateCompetenceArchetype(compName, parseInt(event.target.value));
 | 
			
		||||
      });
 | 
			
		||||
      this.html.find('.nouvelle-incarnation').click(async event => this.actor.nouvelleIncarnation())
 | 
			
		||||
    }
 | 
			
		||||
    this.html.find('.nouvelle-incarnation').click(async event => {
 | 
			
		||||
      this.actor.nouvelleIncarnation();
 | 
			
		||||
    });
 | 
			
		||||
 | 
			
		||||
    this.html.find('.show-hide-competences').click(async event => {
 | 
			
		||||
      this.options.showCompNiveauBase = !this.options.showCompNiveauBase;
 | 
			
		||||
      this.render(true);
 | 
			
		||||
    });
 | 
			
		||||
 | 
			
		||||
    // On pts de reve change
 | 
			
		||||
    this.html.find('.pointsreve-value').change(async event => {
 | 
			
		||||
      let reveValue = event.currentTarget.value;
 | 
			
		||||
      this.actor.update({ "system.reve.reve.value": reveValue });
 | 
			
		||||
    });
 | 
			
		||||
    this.html.find('.pointsreve-value').change(async event => this.actor.update({ "system.reve.reve.value": event.currentTarget.value }))
 | 
			
		||||
    this.html.find('.seuil-reve-value').change(async event => this.actor.setPointsDeSeuil(event.currentTarget.value))
 | 
			
		||||
 | 
			
		||||
    // On seuil de reve change
 | 
			
		||||
    this.html.find('.seuil-reve-value').change(async event => {
 | 
			
		||||
      console.log("seuil-reve-value", event.currentTarget)
 | 
			
		||||
      this.actor.setPointsDeSeuil(event.currentTarget.value);
 | 
			
		||||
    });
 | 
			
		||||
    this.html.find('.stress-test').click(async event => this.actor.transformerStress())
 | 
			
		||||
    this.html.find('.moral-malheureux').click(async event => this.actor.jetDeMoral('malheureuse'))
 | 
			
		||||
    this.html.find('.moral-neutre').click(async event => this.actor.jetDeMoral('neutre'))
 | 
			
		||||
    this.html.find('.moral-heureux').click(async event => this.actor.jetDeMoral('heureuse'))
 | 
			
		||||
    this.html.find('.ethylisme-test').click(async event => this.actor.jetEthylisme())
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
    this.html.find('.stress-test').click(async event => {
 | 
			
		||||
      this.actor.transformerStress();
 | 
			
		||||
    });
 | 
			
		||||
    this.html.find('.moral-malheureux').click(async event => {
 | 
			
		||||
      this.actor.jetDeMoral('malheureuse');
 | 
			
		||||
    });
 | 
			
		||||
    this.html.find('.moral-neutre').click(async event => {
 | 
			
		||||
      this.actor.jetDeMoral('neutre');
 | 
			
		||||
    });
 | 
			
		||||
    this.html.find('.moral-heureux').click(async event => {
 | 
			
		||||
      this.actor.jetDeMoral('heureuse');
 | 
			
		||||
    });
 | 
			
		||||
    this.html.find('.ethylisme-test').click(async event => {
 | 
			
		||||
      this.actor.jetEthylisme();
 | 
			
		||||
    });
 | 
			
		||||
 | 
			
		||||
    this.html.find('.jet-vie').click(async event => {
 | 
			
		||||
      this.actor.jetDeVie();
 | 
			
		||||
    });
 | 
			
		||||
    this.html.find('.jet-endurance').click(async event => {
 | 
			
		||||
      await this.jetEndurance();
 | 
			
		||||
    });
 | 
			
		||||
 | 
			
		||||
    this.html.find('.vie-plus').click(async event => {
 | 
			
		||||
      this.actor.santeIncDec("vie", 1);
 | 
			
		||||
    });
 | 
			
		||||
    this.html.find('.vie-moins').click(async event => {
 | 
			
		||||
      this.actor.santeIncDec("vie", -1);
 | 
			
		||||
    });
 | 
			
		||||
    this.html.find('.ptreve-actuel-plus').click(async event => {
 | 
			
		||||
      this.actor.reveActuelIncDec(1);
 | 
			
		||||
    });
 | 
			
		||||
    this.html.find('.ptreve-actuel-moins').click(async event => {
 | 
			
		||||
      this.actor.reveActuelIncDec(-1);
 | 
			
		||||
    });
 | 
			
		||||
    this.html.find('.fatigue-plus').click(async event => {
 | 
			
		||||
      this.actor.santeIncDec("fatigue", 1);
 | 
			
		||||
    });
 | 
			
		||||
    this.html.find('.fatigue-moins').click(async event => {
 | 
			
		||||
      this.actor.santeIncDec("fatigue", -1);
 | 
			
		||||
    });
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  async jetEndurance() {
 | 
			
		||||
    const endurance = this.actor.getEnduranceActuelle()
 | 
			
		||||
    const result = await this.actor.jetEndurance(endurance);
 | 
			
		||||
    ChatMessage.create({
 | 
			
		||||
      content: `Jet d'Endurance : ${result.jetEndurance} / ${endurance}
 | 
			
		||||
        <br>${this.actor.name} a ${result.sonne ? 'échoué' : 'réussi'} son Jet d'Endurance ${result.sonne ? 'et devient Sonné' : ''}`,
 | 
			
		||||
      whisper: ChatUtility.getWhisperRecipientsAndGMs(this.actor.name)
 | 
			
		||||
    });
 | 
			
		||||
    this.html.find('.ptreve-actuel-plus').click(async event => this.actor.reveActuelIncDec(1))
 | 
			
		||||
    this.html.find('.ptreve-actuel-moins').click(async event => this.actor.reveActuelIncDec(-1))
 | 
			
		||||
    this.html.find('.fatigue-plus').click(async event => this.actor.santeIncDec("fatigue", 1))
 | 
			
		||||
    this.html.find('.fatigue-moins').click(async event => this.actor.santeIncDec("fatigue", -1))
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  getBlessure(event) {
 | 
			
		||||
    const itemId = this.html.find(event.currentTarget).parents(".item-blessure").data('item-id');
 | 
			
		||||
    const blessure = this.actor.getItem(itemId, 'blessure');
 | 
			
		||||
    return blessure;
 | 
			
		||||
    const blessureId = this.html.find(event.currentTarget).parents(".item-blessure").data('item-id');
 | 
			
		||||
    return this.actor.getItem(blessureId, 'blessure');
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  isCompetenceAffichable(competence) {
 | 
			
		||||
@@ -401,6 +304,21 @@ export class RdDActorSheet extends RdDBaseActorReveSheet {
 | 
			
		||||
    super._onDropActor(event, dragData);
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  openSubActeur(actorId) {
 | 
			
		||||
    game.actors.get(actorId)?.sheet.render(true)
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  deleteSubActeur(actorId, li) {
 | 
			
		||||
    if (actorId) {
 | 
			
		||||
      const subActor = game.actors.get(actorId);
 | 
			
		||||
      RdDUtility.confirmSubActeurDelete(this, subActor, li, () => {
 | 
			
		||||
        console.log('Delete : ', subActor.id);
 | 
			
		||||
        this.actor.deleteSubActeur(subActor.id);
 | 
			
		||||
        RdDUtility.slideOnDelete(this, li);
 | 
			
		||||
      });
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  /* -------------------------------------------- */
 | 
			
		||||
  async selectTypeOeuvreToCreate() {
 | 
			
		||||
    let types = RdDItem.getTypesOeuvres();
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										511
									
								
								module/actor.js
									
									
									
									
									
								
							
							
						
						
									
										511
									
								
								module/actor.js
									
									
									
									
									
								
							@@ -34,6 +34,8 @@ import { RdDEmpoignade } from "./rdd-empoignade.js";
 | 
			
		||||
import { ExperienceLog, XP_TOPIC } from "./actor/experience-log.js";
 | 
			
		||||
import { TYPES } from "./item.js";
 | 
			
		||||
import { RdDBaseActorSang } from "./actor/base-actor-sang.js";
 | 
			
		||||
import { RdDCoeur } from "./coeur/rdd-coeur.js";
 | 
			
		||||
import { DialogChoixXpCarac } from "./dialog-choix-xp-carac.js";
 | 
			
		||||
 | 
			
		||||
export const MAINS_DIRECTRICES = ['Droitier', 'Gaucher', 'Ambidextre']
 | 
			
		||||
 | 
			
		||||
@@ -55,21 +57,20 @@ export class RdDActor extends RdDBaseActorSang {
 | 
			
		||||
 | 
			
		||||
  /* -------------------------------------------- */
 | 
			
		||||
  $computeCaracDerivee() {
 | 
			
		||||
 | 
			
		||||
    this.system.carac.force.value = Math.min(this.system.carac.force.value, parseInt(this.system.carac.taille.value) + 4);
 | 
			
		||||
 | 
			
		||||
    this.system.carac.derobee.value = Math.floor(parseInt(((21 - this.system.carac.taille.value)) + parseInt(this.system.carac.agilite.value)) / 2);
 | 
			
		||||
    let bonusDomKey = Math.floor((parseInt(this.system.carac.force.value) + parseInt(this.system.carac.taille.value)) / 2);
 | 
			
		||||
    let tailleData = RdDCarac.getCaracDerivee(bonusDomKey);
 | 
			
		||||
    this.system.attributs.plusdom.value = tailleData.plusdom;
 | 
			
		||||
 | 
			
		||||
    this.system.attributs.sconst.value = RdDCarac.calculSConst(this.system.carac.constitution.value);
 | 
			
		||||
    this.system.attributs.sust.value = RdDCarac.getCaracDerivee(this.system.carac.taille.value).sust;
 | 
			
		||||
 | 
			
		||||
    this.system.attributs.encombrement.value = (parseInt(this.system.carac.force.value) + parseInt(this.system.carac.taille.value)) / 2;
 | 
			
		||||
    this.system.carac.melee.value = Math.floor((parseInt(this.system.carac.force.value) + parseInt(this.system.carac.agilite.value)) / 2);
 | 
			
		||||
    this.system.carac.tir.value = Math.floor((parseInt(this.system.carac.vue.value) + parseInt(this.system.carac.dexterite.value)) / 2);
 | 
			
		||||
    this.system.carac.lancer.value = Math.floor((parseInt(this.system.carac.tir.value) + parseInt(this.system.carac.force.value)) / 2);
 | 
			
		||||
    this.system.carac.derobee.value = Math.floor(parseInt(((21 - this.system.carac.taille.value)) + parseInt(this.system.carac.agilite.value)) / 2);
 | 
			
		||||
 | 
			
		||||
    let bonusDomKey = Math.floor((parseInt(this.system.carac.force.value) + parseInt(this.system.carac.taille.value)) / 2);
 | 
			
		||||
    let tailleData = RdDCarac.getCaracDerivee(bonusDomKey);
 | 
			
		||||
    this.system.attributs.plusdom.value = tailleData.plusdom;
 | 
			
		||||
    this.system.attributs.encombrement.value = (parseInt(this.system.carac.force.value) + parseInt(this.system.carac.taille.value)) / 2;
 | 
			
		||||
 | 
			
		||||
    this.system.attributs.sconst.value = RdDCarac.calculSConst(this.system.carac.constitution.value);
 | 
			
		||||
    this.system.attributs.sust.value = RdDCarac.getCaracDerivee(this.system.carac.taille.value).sust;
 | 
			
		||||
    this.system.sante.vie.max = Math.ceil((parseInt(this.system.carac.taille.value) + parseInt(this.system.carac.constitution.value)) / 2);
 | 
			
		||||
 | 
			
		||||
    this.system.sante.vie.value = Math.min(this.system.sante.vie.value, this.system.sante.vie.max)
 | 
			
		||||
@@ -83,29 +84,27 @@ export class RdDActor extends RdDBaseActorSang {
 | 
			
		||||
    this.system.compteurs.chance.max = this.system.carac.chance.value;
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  $computeIsHautRevant() {
 | 
			
		||||
    this.system.attributs.hautrevant.value = this.itemTypes['tete'].find(it => Grammar.equalsInsensitive(it.name, 'don de haut-reve'))
 | 
			
		||||
      ? "Haut rêvant"
 | 
			
		||||
      : "";
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  /* -------------------------------------------- */
 | 
			
		||||
  canReceive(item) {
 | 
			
		||||
    return ![TYPES.competencecreature, TYPES.tarot, TYPES.service].includes(item.type)
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  /* -------------------------------------------- */
 | 
			
		||||
  isPersonnage() { return true }
 | 
			
		||||
  isHautRevant() { return this.system.attributs.hautrevant.value != "" }
 | 
			
		||||
 | 
			
		||||
  getReveActuel() {
 | 
			
		||||
    return Misc.toInt(this.system.reve?.reve?.value ?? this.carac.reve.value);
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  getChanceActuel() {
 | 
			
		||||
    return Misc.toInt(this.system.compteurs.chance?.value ?? 10);
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  /* -------------------------------------------- */
 | 
			
		||||
  getAgilite() { return Number(this.system.carac.agilite?.value ?? 0) }
 | 
			
		||||
  getChance() { return Number(this.system.carac.chance?.value ?? 0) }
 | 
			
		||||
 | 
			
		||||
  /* -------------------------------------------- */
 | 
			
		||||
  getMoralTotal() {
 | 
			
		||||
    return Number(this.system.compteurs.moral?.value ?? 0);
 | 
			
		||||
  }
 | 
			
		||||
  getReveActuel() { return Misc.toInt(this.system.reve?.reve?.value ?? this.carac.reve.value) }
 | 
			
		||||
  getChanceActuel() { return Misc.toInt(this.system.compteurs.chance?.value ?? 10) }
 | 
			
		||||
  getMoralTotal() { return Number(this.system.compteurs.moral?.value ?? 0) }
 | 
			
		||||
 | 
			
		||||
  /* -------------------------------------------- */
 | 
			
		||||
  getEtatGeneral(options = { ethylisme: false }) {
 | 
			
		||||
@@ -130,41 +129,19 @@ export class RdDActor extends RdDBaseActorSang {
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  /* -------------------------------------------- */
 | 
			
		||||
  getTache(id) {
 | 
			
		||||
    return this.findItemLike(id, 'tache');
 | 
			
		||||
  }
 | 
			
		||||
  getMeditation(id) {
 | 
			
		||||
    return this.findItemLike(id, 'meditation');
 | 
			
		||||
  }
 | 
			
		||||
  getChant(id) {
 | 
			
		||||
    return this.findItemLike(id, 'chant');
 | 
			
		||||
  }
 | 
			
		||||
  getDanse(id) {
 | 
			
		||||
    return this.findItemLike(id, 'danse');
 | 
			
		||||
  }
 | 
			
		||||
  getMusique(id) {
 | 
			
		||||
    return this.findItemLike(id, 'musique');
 | 
			
		||||
  }
 | 
			
		||||
  getOeuvre(id, type = 'oeuvre') {
 | 
			
		||||
    return this.findItemLike(id, type);
 | 
			
		||||
  }
 | 
			
		||||
  getJeu(id) {
 | 
			
		||||
    return this.findItemLike(id, 'jeu');
 | 
			
		||||
  }
 | 
			
		||||
  getRecetteCuisine(id) {
 | 
			
		||||
    return this.findItemLike(id, 'recettecuisine');
 | 
			
		||||
  }
 | 
			
		||||
  /* -------------------------------------------- */
 | 
			
		||||
  getDraconicList() {
 | 
			
		||||
    return this.itemTypes[TYPES.competence].filter(it => it.system.categorie == 'draconic')
 | 
			
		||||
  }
 | 
			
		||||
  /* -------------------------------------------- */
 | 
			
		||||
  getBestDraconic() {
 | 
			
		||||
    const list = this.getDraconicList()
 | 
			
		||||
      .sort(Misc.descending(it => it.system.niveau))
 | 
			
		||||
    return duplicate(list[0])
 | 
			
		||||
  }
 | 
			
		||||
  getTache(id) { return this.findItemLike(id, 'tache') }
 | 
			
		||||
  getMeditation(id) { return this.findItemLike(id, 'meditation') }
 | 
			
		||||
  getChant(id) { return this.findItemLike(id, 'chant') }
 | 
			
		||||
  getDanse(id) { return this.findItemLike(id, 'danse') }
 | 
			
		||||
  getMusique(id) { return this.findItemLike(id, 'musique') }
 | 
			
		||||
  getOeuvre(id, type = 'oeuvre') { return this.findItemLike(id, type) }
 | 
			
		||||
  getJeu(id) { return this.findItemLike(id, 'jeu') }
 | 
			
		||||
  getRecetteCuisine(id) { return this.findItemLike(id, 'recettecuisine') }
 | 
			
		||||
 | 
			
		||||
  /* -------------------------------------------- */
 | 
			
		||||
  getDemiReve() { return this.system.reve.tmrpos.coord }
 | 
			
		||||
  getDraconicList() { return this.itemTypes[TYPES.competence].filter(it => it.system.categorie == 'draconic') }
 | 
			
		||||
  getBestDraconic() { return duplicate(this.getDraconicList().sort(Misc.descending(it => it.system.niveau)).find(it => true)) }
 | 
			
		||||
  getDraconicOuPossession() {
 | 
			
		||||
    return [...this.getDraconicList().filter(it => it.system.niveau >= 0),
 | 
			
		||||
    super.getDraconicOuPossession()]
 | 
			
		||||
@@ -172,36 +149,36 @@ export class RdDActor extends RdDBaseActorSang {
 | 
			
		||||
      .find(it => true)
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  getDemiReve() {
 | 
			
		||||
    return this.system.reve.tmrpos.coord;
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  /* -------------------------------------------- */
 | 
			
		||||
  async verifierPotionsEnchantees() {
 | 
			
		||||
    let potionsEnchantees = this.filterItems(it => it.type == 'potion' && it.system.categorie.toLowerCase().includes('enchant'));
 | 
			
		||||
    for (let potion of potionsEnchantees) {
 | 
			
		||||
      if (!potion.system.prpermanent) {
 | 
			
		||||
        console.log(potion);
 | 
			
		||||
        let newPr = (potion.system.pr > 0) ? potion.system.pr - 1 : 0;
 | 
			
		||||
        let update = { _id: potion._id, 'system.pr': newPr };
 | 
			
		||||
        const updated = await this.updateEmbeddedDocuments('Item', [update]); // Updates one EmbeddedEntity  
 | 
			
		||||
  async $perteRevePotionsEnchantees() {
 | 
			
		||||
    let potions = this.itemTypes[TYPES.potion]
 | 
			
		||||
      .filter(it => Grammar.includesLowerCaseNoAccent(it.system.categorie, 'enchanté') && !it.system.prpermanent)
 | 
			
		||||
 | 
			
		||||
        let messageData = {
 | 
			
		||||
          pr: newPr,
 | 
			
		||||
    const potionUpdates = await Promise.all(potions.map(async it => {
 | 
			
		||||
      const nouveauReve = Math.max(it.system.pr - 1, 0)
 | 
			
		||||
      ChatMessage.create({
 | 
			
		||||
        whisper: ChatUtility.getWhisperRecipientsAndGMs(this.name),
 | 
			
		||||
        content: await renderTemplate(`systems/foundryvtt-reve-de-dragon/templates/chat-potionenchantee-chateaudormant.html`, {
 | 
			
		||||
          pr: nouveauReve,
 | 
			
		||||
          alias: this.name,
 | 
			
		||||
          potionName: potion.name,
 | 
			
		||||
          potionImg: potion.img
 | 
			
		||||
        }
 | 
			
		||||
        ChatMessage.create({
 | 
			
		||||
          whisper: ChatUtility.getWhisperRecipientsAndGMs(this.name),
 | 
			
		||||
          content: await renderTemplate(`systems/foundryvtt-reve-de-dragon/templates/chat-potionenchantee-chateaudormant.html`, messageData)
 | 
			
		||||
        });
 | 
			
		||||
          potionName: it.name,
 | 
			
		||||
          potionImg: it.img
 | 
			
		||||
        })
 | 
			
		||||
      })
 | 
			
		||||
      return {
 | 
			
		||||
        _id: it._id,
 | 
			
		||||
        'system.pr': nouveauReve,
 | 
			
		||||
        'system.quantite': nouveauReve > 0 ? it.system.quantite : 0
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
    }))
 | 
			
		||||
 | 
			
		||||
    await this.updateEmbeddedDocuments('Item', potionUpdates);
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  /* -------------------------------------------- */
 | 
			
		||||
  hasArmeeMeleeEquipee() { // Return true si l'acteur possède au moins 1 arme de mêlée équipée
 | 
			
		||||
  /** --------------------------------------------
 | 
			
		||||
   * @returns true si l'acteur possède au moins 1 arme de mêlée équipée
 | 
			
		||||
   */
 | 
			
		||||
  hasArmeeMeleeEquipee() {
 | 
			
		||||
    return this.itemTypes['arme'].find(it => it.system.equipe && it.system.competence != "")
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
@@ -229,12 +206,12 @@ export class RdDActor extends RdDBaseActorSang {
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  /* -------------------------------------------- */
 | 
			
		||||
  async grisReve(nGrisReve) {
 | 
			
		||||
  async grisReve(nbJours) {
 | 
			
		||||
    let message = {
 | 
			
		||||
      whisper: ChatUtility.getWhisperRecipientsAndGMs(this.name),
 | 
			
		||||
      content: `${nGrisReve} jours de gris rêve sont passés. `
 | 
			
		||||
      content: `${nbJours} jours de gris rêve sont passés. `
 | 
			
		||||
    };
 | 
			
		||||
    for (let i = 0; i < nGrisReve; i++) {
 | 
			
		||||
    for (let i = 0; i < nbJours; i++) {
 | 
			
		||||
      await this.dormir(4, { grisReve: true });
 | 
			
		||||
      await this._recuperationSante(message);
 | 
			
		||||
 | 
			
		||||
@@ -252,7 +229,7 @@ export class RdDActor extends RdDBaseActorSang {
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  async _recuperationSante(message) {
 | 
			
		||||
    const maladiesPoisons = this._maladiePoisons(message);
 | 
			
		||||
    const maladiesPoisons = this.getMaladiePoisons();
 | 
			
		||||
    const isMaladeEmpoisonne = maladiesPoisons.length > 0;
 | 
			
		||||
    this._messageRecuperationMaladiePoisons(maladiesPoisons, message);
 | 
			
		||||
 | 
			
		||||
@@ -260,9 +237,8 @@ export class RdDActor extends RdDBaseActorSang {
 | 
			
		||||
    await this._recupererVie(message, isMaladeEmpoisonne);
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  _maladiePoisons(message) {
 | 
			
		||||
    const actifs = this.items.filter(item => item.type == 'maladie' || (item.type == 'poison' && item.system.active));
 | 
			
		||||
    return actifs;
 | 
			
		||||
  getMaladiePoisons() {
 | 
			
		||||
    return this.items.filter(item => item.type == 'maladie' || (item.type == 'poison' && item.system.active));
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  _messageRecuperationMaladiePoisons(maladiesPoisons, message) {
 | 
			
		||||
@@ -275,12 +251,9 @@ export class RdDActor extends RdDBaseActorSang {
 | 
			
		||||
        case 1: message.content += ` d'un mal inconnu`; break;
 | 
			
		||||
        default: message.content += ` de ${nonIdentifies.length} maux inconnus`; break;
 | 
			
		||||
      }
 | 
			
		||||
      if (identifies.length > 0 && nonIdentifies.length > 0) { message.content += ' et' }
 | 
			
		||||
      if (identifies.length > 0) {
 | 
			
		||||
        if (nonIdentifies > 0) {
 | 
			
		||||
          message.content += ' et';
 | 
			
		||||
        } else {
 | 
			
		||||
          message.content += ' de ' + identifies.map(it => it.name).reduce(Misc.joining(', '));
 | 
			
		||||
        }
 | 
			
		||||
        message.content += ' de ' + identifies.map(it => it.name).reduce(Misc.joining(', '));
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
@@ -300,7 +273,8 @@ export class RdDActor extends RdDBaseActorSang {
 | 
			
		||||
      await this.retourSeuilDeReve(message);
 | 
			
		||||
      await this.setBonusPotionSoin(0);
 | 
			
		||||
      await this.retourSust(message);
 | 
			
		||||
      await this.verifierPotionsEnchantees();
 | 
			
		||||
      await this.$perteRevePotionsEnchantees();
 | 
			
		||||
      await RdDCoeur.applyCoeurChateauDormant(this, message)
 | 
			
		||||
      if (message.content != "") {
 | 
			
		||||
        message.content = `A la fin Chateau Dormant, ${message.content}<br>Un nouveau jour se lève`;
 | 
			
		||||
        ChatMessage.create(message);
 | 
			
		||||
@@ -428,7 +402,7 @@ export class RdDActor extends RdDBaseActorSang {
 | 
			
		||||
      content: 'Remise à neuf de ' + this.name
 | 
			
		||||
    });
 | 
			
		||||
    await this.supprimerBlessures(it => true);
 | 
			
		||||
    await this.removeEffects(e => e.flags.core.statusId !== STATUSES.StatusDemiReve);
 | 
			
		||||
    await this.removeEffects(e => e.id != STATUSES.StatusDemiReve);
 | 
			
		||||
    const updates = {
 | 
			
		||||
      'system.sante.endurance.value': this.system.sante.endurance.max,
 | 
			
		||||
      'system.sante.vie.value': this.system.sante.vie.max,
 | 
			
		||||
@@ -688,7 +662,7 @@ export class RdDActor extends RdDBaseActorSang {
 | 
			
		||||
        this.setPointsDeChance(to);
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
    let selectedCarac = RdDBaseActor._findCaracByName(this.system.carac, caracName);
 | 
			
		||||
    let selectedCarac = this.findCaracByName(caracName);
 | 
			
		||||
    const from = selectedCarac.value
 | 
			
		||||
    await this.update({ [`system.carac.${caracName}.value`]: to });
 | 
			
		||||
    await ExperienceLog.add(this, XP_TOPIC.CARAC, from, to, caracName);
 | 
			
		||||
@@ -699,7 +673,7 @@ export class RdDActor extends RdDBaseActorSang {
 | 
			
		||||
    if (caracName == 'Taille') {
 | 
			
		||||
      return;
 | 
			
		||||
    }
 | 
			
		||||
    let selectedCarac = RdDBaseActor._findCaracByName(this.system.carac, caracName);
 | 
			
		||||
    let selectedCarac = this.findCaracByName(caracName);
 | 
			
		||||
    if (!selectedCarac.derivee) {
 | 
			
		||||
      const from = Number(selectedCarac.xp);
 | 
			
		||||
      await this.update({ [`system.carac.${caracName}.xp`]: to });
 | 
			
		||||
@@ -713,7 +687,7 @@ export class RdDActor extends RdDBaseActorSang {
 | 
			
		||||
    if (caracName == 'Taille') {
 | 
			
		||||
      return;
 | 
			
		||||
    }
 | 
			
		||||
    let carac = RdDBaseActor._findCaracByName(this.system.carac, caracName);
 | 
			
		||||
    let carac = this.findCaracByName(caracName);
 | 
			
		||||
    if (carac) {
 | 
			
		||||
      carac = duplicate(carac);
 | 
			
		||||
      const fromXp = Number(carac.xp);
 | 
			
		||||
@@ -794,10 +768,8 @@ export class RdDActor extends RdDBaseActorSang {
 | 
			
		||||
      const toNiveau = compValue ?? RdDItemCompetence.getNiveauBase(competence.system.categorie, competence.getCategories());
 | 
			
		||||
      this.notifyCompetencesTronc(competence, toNiveau);
 | 
			
		||||
      const fromNiveau = competence.system.niveau;
 | 
			
		||||
      await this.updateEmbeddedDocuments('Item', [{ _id: competence.id, 'system.niveau': toNiveau }]);
 | 
			
		||||
      await competence.update({ 'system.niveau': toNiveau });
 | 
			
		||||
      await ExperienceLog.add(this, XP_TOPIC.NIVEAU, fromNiveau, toNiveau, competence.name, true);
 | 
			
		||||
    } else {
 | 
			
		||||
      console.log("Competence not found", idOrName);
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
@@ -821,13 +793,11 @@ export class RdDActor extends RdDBaseActorSang {
 | 
			
		||||
      if (isNaN(toXp) || typeof (toXp) != 'number') toXp = 0;
 | 
			
		||||
      const fromXp = competence.system.xp;
 | 
			
		||||
      this.checkCompetenceXP(idOrName, toXp);
 | 
			
		||||
      await this.updateEmbeddedDocuments('Item', [{ _id: competence.id, 'system.xp': toXp }]);
 | 
			
		||||
      await competence.update({ 'system.xp': toXp });
 | 
			
		||||
      await ExperienceLog.add(this, XP_TOPIC.XP, fromXp, toXp, competence.name, true);
 | 
			
		||||
      if (toXp > fromXp) {
 | 
			
		||||
        RdDUtility.checkThanatosXP(idOrName);
 | 
			
		||||
      }
 | 
			
		||||
    } else {
 | 
			
		||||
      console.log("Competence not found", idOrName);
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
@@ -837,23 +807,19 @@ export class RdDActor extends RdDBaseActorSang {
 | 
			
		||||
    if (competence) {
 | 
			
		||||
      if (isNaN(toXpSort) || typeof (toXpSort) != 'number') toXpSort = 0;
 | 
			
		||||
      const fromXpSort = competence.system.xp_sort;
 | 
			
		||||
      await this.updateEmbeddedDocuments('Item', [{ _id: competence.id, 'system.xp_sort': toXpSort }]);
 | 
			
		||||
      await competence.update({ 'system.xp_sort': toXpSort });
 | 
			
		||||
      await ExperienceLog.add(this, XP_TOPIC.XPSORT, fromXpSort, toXpSort, competence.name, true);
 | 
			
		||||
      if (toXpSort > fromXpSort) {
 | 
			
		||||
        RdDUtility.checkThanatosXP(idOrName);
 | 
			
		||||
      }
 | 
			
		||||
    } else {
 | 
			
		||||
      console.log("Competence not found", idOrName);
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  /* -------------------------------------------- */
 | 
			
		||||
  async updateCompetenceArchetype(idOrName, compValue) {
 | 
			
		||||
    let competence = this.getCompetence(idOrName);
 | 
			
		||||
    let competence = this.getCompetence(idOrName)
 | 
			
		||||
    if (competence) {
 | 
			
		||||
      await this.updateEmbeddedDocuments('Item', [{ _id: competence.id, 'system.niveau_archetype': Math.max(compValue ?? 0, 0) }]);
 | 
			
		||||
    } else {
 | 
			
		||||
      console.log("Competence not found", idOrName);
 | 
			
		||||
      await competence.update({ 'system.niveau_archetype': Math.max(compValue ?? 0, 0) });
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
@@ -909,12 +875,6 @@ export class RdDActor extends RdDBaseActorSang {
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  /* -------------------------------------------- */
 | 
			
		||||
  $computeIsHautRevant() {
 | 
			
		||||
    this.system.attributs.hautrevant.value = this.itemTypes['tete'].find(it => Grammar.equalsInsensitive(it.name, 'don de haut-reve'))
 | 
			
		||||
      ? "Haut rêvant"
 | 
			
		||||
      : "";
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  malusEthylisme() {
 | 
			
		||||
    return Math.min(0, (this.system.compteurs.ethylisme?.value ?? 0));
 | 
			
		||||
  }
 | 
			
		||||
@@ -939,7 +899,7 @@ export class RdDActor extends RdDBaseActorSang {
 | 
			
		||||
 | 
			
		||||
  /* -------------------------------------------- */
 | 
			
		||||
  async ajouterRefoulement(value = 1, refouler) {
 | 
			
		||||
    const refoulement = this.system.reve.refoulement.value + value;
 | 
			
		||||
    let refoulement = this.system.reve.refoulement.value + value;
 | 
			
		||||
    const roll = new Roll("1d20");
 | 
			
		||||
    await roll.evaluate({ async: true });
 | 
			
		||||
    await roll.toMessage({ flavor: `${this.name} refoule ${refouler} pour ${value} points de refoulement (total: ${refoulement})` });
 | 
			
		||||
@@ -1110,17 +1070,6 @@ export class RdDActor extends RdDBaseActorSang {
 | 
			
		||||
    return `${this.name} a obtenu 1 sur son Jet d'Endurance et a gagné 1 point d'Expérience en Constitution. Ce point d'XP a été ajouté automatiquement.`;
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  /* -------------------------------------------- */
 | 
			
		||||
  _computeEnduranceMax() {
 | 
			
		||||
    const diffVie = this.system.sante.vie.max - this.system.sante.vie.value;
 | 
			
		||||
    const maxEndVie = this.system.sante.endurance.max - (diffVie * 2);
 | 
			
		||||
    const nbGraves = this.countBlessures(it => it.isGrave()) > 0
 | 
			
		||||
    const nbCritiques = this.countBlessures(it => it.isCritique()) > 0
 | 
			
		||||
    const maxEndGraves = Math.floor(this.system.sante.endurance.max / (2 * nbGraves));
 | 
			
		||||
    const maxEndCritiques = nbCritiques > 0 ? 1 : this.system.sante.endurance.max;
 | 
			
		||||
    return Math.max(0, Math.min(maxEndVie, maxEndGraves, maxEndCritiques));
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  /* -------------------------------------------- */
 | 
			
		||||
  async jetDeMoral(situation, messageReussi = undefined, messageManque = undefined) {
 | 
			
		||||
    const jetMoral = await this._jetDeMoral(situation);
 | 
			
		||||
@@ -1152,18 +1101,19 @@ export class RdDActor extends RdDBaseActorSang {
 | 
			
		||||
  /* -------------------------------------------- */
 | 
			
		||||
  async moralIncDec(ajustementMoral) {
 | 
			
		||||
    if (ajustementMoral != 0) {
 | 
			
		||||
      ajustementMoral = Math.sign(ajustementMoral)
 | 
			
		||||
      let moral = Misc.toInt(this.system.compteurs.moral.value) + ajustementMoral
 | 
			
		||||
      if (moral > 3) { // exaltation
 | 
			
		||||
        const exaltation = Misc.toInt(this.system.compteurs.exaltation.value) + ajustementMoral;
 | 
			
		||||
        await this.updateCompteurValue('exaltation', exaltation);
 | 
			
		||||
      const startMoral = parseInt(this.system.compteurs.moral.value)
 | 
			
		||||
      const moralTheorique = startMoral + ajustementMoral
 | 
			
		||||
      if (moralTheorique > 3) { // exaltation
 | 
			
		||||
        const ajoutExaltation = moralTheorique - 3
 | 
			
		||||
        const exaltation = parseInt(this.system.compteurs.exaltation.value) + ajoutExaltation
 | 
			
		||||
        await this.updateCompteurValue('exaltation', exaltation)
 | 
			
		||||
      }
 | 
			
		||||
      if (moral < -3) { // dissolution
 | 
			
		||||
        const dissolution = Misc.toInt(this.system.compteurs.dissolution.value) - ajustementMoral;
 | 
			
		||||
        await this.updateCompteurValue('dissolution', dissolution);
 | 
			
		||||
      if (moralTheorique < -3) { // dissolution
 | 
			
		||||
        const ajoutDissolution = -3 - moralTheorique
 | 
			
		||||
        const dissolution = parseInt(this.system.compteurs.dissolution.value) + ajoutDissolution
 | 
			
		||||
        await this.updateCompteurValue('dissolution', dissolution)
 | 
			
		||||
      }
 | 
			
		||||
      moral = Math.max(-3, Math.min(moral, 3));
 | 
			
		||||
      await this.updateCompteurValue('moral', moral);
 | 
			
		||||
      await this.updateCompteurValue('moral', Math.max(-3, Math.min(moralTheorique, 3)));
 | 
			
		||||
    }
 | 
			
		||||
    return this.system.compteurs.moral.value;
 | 
			
		||||
  }
 | 
			
		||||
@@ -1219,8 +1169,8 @@ export class RdDActor extends RdDBaseActorSang {
 | 
			
		||||
          title: "Nourriture brute",
 | 
			
		||||
          content: `Que faire de votre ${item.name}`,
 | 
			
		||||
          buttons: {
 | 
			
		||||
            'cuisiner': { icon: '<i class="fas fa-check"></i>', label: 'Cuisiner', callback: async () => await this.preparerNourriture(item) },
 | 
			
		||||
            'manger': { icon: '<i class="fas fa-check"></i>', label: 'Manger cru', callback: async () => await this.mangerNourriture(item, onActionItem) }
 | 
			
		||||
            'cuisiner': { icon: '<i class="fa-solid fa-utensils"></i>', label: 'Cuisiner', callback: async () => await this.preparerNourriture(item) },
 | 
			
		||||
            'manger': { icon: '<i class="fa-solid fa-drumstick-bite"></i>', label: 'Manger cru', callback: async () => await this.mangerNourriture(item, onActionItem) }
 | 
			
		||||
          }
 | 
			
		||||
        });
 | 
			
		||||
        return utilisation.render(true);
 | 
			
		||||
@@ -1310,7 +1260,7 @@ export class RdDActor extends RdDBaseActorSang {
 | 
			
		||||
    if (exotisme < 0 || qualite < 0) {
 | 
			
		||||
      const competence = qualite > 0 ? 'cuisine' : undefined
 | 
			
		||||
      const difficulte = Math.min(exotisme, qualite)
 | 
			
		||||
      const rolled = await this.doRollCaracCompetence('volonte', competence,  difficulte, { title: `tente de surmonter l'exotisme de ${item.name}` })
 | 
			
		||||
      const rolled = await this.doRollCaracCompetence('volonte', competence, difficulte, { title: `tente de surmonter l'exotisme de ${item.name}` })
 | 
			
		||||
      return rolled.isSuccess
 | 
			
		||||
    }
 | 
			
		||||
    return true;
 | 
			
		||||
@@ -1525,8 +1475,14 @@ export class RdDActor extends RdDBaseActorSang {
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  /* -------------------------------------------- */
 | 
			
		||||
  isCaracMax(code) {
 | 
			
		||||
    if (code == 'force' && parseInt(this.system.carac.force.value) >= parseInt(this.system.carac.taille.value) + 4) {
 | 
			
		||||
      return true;
 | 
			
		||||
    }
 | 
			
		||||
    return false
 | 
			
		||||
  }
 | 
			
		||||
  async checkCaracXP(caracName, display = true) {
 | 
			
		||||
    let carac = RdDBaseActor._findCaracByName(this.system.carac, caracName);
 | 
			
		||||
    let carac = this.findCaracByName(caracName);
 | 
			
		||||
    if (carac && carac.xp > 0) {
 | 
			
		||||
      const niveauSuivant = Number(carac.value) + 1;
 | 
			
		||||
      let xpNeeded = RdDCarac.getCaracNextXp(niveauSuivant);
 | 
			
		||||
@@ -1587,8 +1543,11 @@ export class RdDActor extends RdDBaseActorSang {
 | 
			
		||||
  async appliquerAjoutExperience(rollData, hideChatMessage = 'show') {
 | 
			
		||||
    hideChatMessage = hideChatMessage == 'hide' || (Misc.isRollModeHiddenToPlayer() && !game.user.isGM)
 | 
			
		||||
    let xpData = await this._appliquerExperience(rollData.rolled, rollData.selectedCarac.label, rollData.competence, rollData.jetResistance);
 | 
			
		||||
    if (xpData) {
 | 
			
		||||
      const content = await renderTemplate(`systems/foundryvtt-reve-de-dragon/templates/chat-actor-gain-xp.html`, xpData);
 | 
			
		||||
    if (xpData.length) {
 | 
			
		||||
      const content = await renderTemplate(`systems/foundryvtt-reve-de-dragon/templates/chat-actor-gain-xp.html`, {
 | 
			
		||||
        actor: this,
 | 
			
		||||
        xpData
 | 
			
		||||
      });
 | 
			
		||||
      if (hideChatMessage) {
 | 
			
		||||
        ChatUtility.blindMessageToGM({ content: content });
 | 
			
		||||
      }
 | 
			
		||||
@@ -1751,7 +1710,7 @@ export class RdDActor extends RdDBaseActorSang {
 | 
			
		||||
    if (rollData.competence.name.includes('Thanatos')) { // Si Thanatos
 | 
			
		||||
      await this.update({ "system.reve.reve.thanatosused": true });
 | 
			
		||||
    }
 | 
			
		||||
    let reveActuel = this.system.reve.reve.value;
 | 
			
		||||
    let reveActuel = parseInt(this.system.reve.reve.value)
 | 
			
		||||
    if (rolled.isSuccess) { // Réussite du sort !
 | 
			
		||||
      if (rolled.isPart) {
 | 
			
		||||
        rollData.depenseReve = Math.max(Math.floor(rollData.depenseReve / 2), 1);
 | 
			
		||||
@@ -1857,7 +1816,10 @@ export class RdDActor extends RdDBaseActorSang {
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  blessuresASoigner() {
 | 
			
		||||
    return this.filterItems(it => it.system.gravite > 0 && it.system.gravite <= 6 && !(it.system.premierssoins.done && it.system.soinscomplets.done), 'blessure')
 | 
			
		||||
    return (this.itemTypes[TYPES.blessure])
 | 
			
		||||
      .filter(it => it.system.gravite > 0 && it.system.gravite <= 6)
 | 
			
		||||
      .filter(it => !(it.system.premierssoins.done && it.system.soinscomplets.done))
 | 
			
		||||
      .sort(Misc.descending(b => (b.system.premierssoins.done ? "A" : "B") + b.system.gravite))
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  async getTacheBlessure(blesse, blessure) {
 | 
			
		||||
@@ -2315,9 +2277,7 @@ export class RdDActor extends RdDBaseActorSang {
 | 
			
		||||
      });
 | 
			
		||||
      return undefined;
 | 
			
		||||
    }
 | 
			
		||||
    if (caracName == 'Vie') caracName = 'constitution';
 | 
			
		||||
    if (caracName == 'derobee') caracName = 'agilite';
 | 
			
		||||
    if (caracName == 'reve-actuel') caracName = 'reve';
 | 
			
		||||
 | 
			
		||||
    let xp = Math.abs(rolled.finalLevel);
 | 
			
		||||
    // impair: arrondi inférieur en carac
 | 
			
		||||
    let xpCarac = competence ? Math.floor(xp / 2) : Math.max(Math.floor(xp / 2), 1);
 | 
			
		||||
@@ -2330,11 +2290,10 @@ export class RdDActor extends RdDBaseActorSang {
 | 
			
		||||
      // max 1 xp sur jets de résistance
 | 
			
		||||
      xpCarac = Math.min(1, xpCarac);
 | 
			
		||||
    }
 | 
			
		||||
    let xpData = { alias: this.name, caracName, xpCarac, competence, xpCompetence };
 | 
			
		||||
 | 
			
		||||
    await this._xpCompetence(xpData);
 | 
			
		||||
    await this._xpCarac(xpData);
 | 
			
		||||
    return xpData;
 | 
			
		||||
    return [
 | 
			
		||||
      ...(await this._xpCompetence({ competence, xpCompetence })),
 | 
			
		||||
      ...(await this._xpCarac({ caracName, xpCarac }))
 | 
			
		||||
    ];
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  /* -------------------------------------------- */
 | 
			
		||||
@@ -2342,31 +2301,67 @@ export class RdDActor extends RdDBaseActorSang {
 | 
			
		||||
    if (xpData.competence) {
 | 
			
		||||
      const from = Number(xpData.competence.system.xp);
 | 
			
		||||
      const to = from + xpData.xpCompetence;
 | 
			
		||||
      let update = { _id: xpData.competence._id, 'system.xp': to };
 | 
			
		||||
      await this.updateEmbeddedDocuments('Item', [update]);
 | 
			
		||||
      await this.updateEmbeddedDocuments('Item', [{ _id: xpData.competence._id, 'system.xp': to }]);
 | 
			
		||||
      xpData.checkComp = await this.checkCompetenceXP(xpData.competence.name, undefined, false);
 | 
			
		||||
      await ExperienceLog.add(this, XP_TOPIC.XP, from, to, xpData.competence.name);
 | 
			
		||||
      return [xpData]
 | 
			
		||||
    }
 | 
			
		||||
    return []
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  /* -------------------------------------------- */
 | 
			
		||||
  async _xpCarac(xpData) {
 | 
			
		||||
    if (xpData.xpCarac > 0) {
 | 
			
		||||
      let carac = duplicate(this.system.carac);
 | 
			
		||||
      let selectedCarac = RdDBaseActor._findCaracByName(carac, xpData.caracName);
 | 
			
		||||
      if (!selectedCarac.derivee) {
 | 
			
		||||
        const from = Number(selectedCarac.xp);
 | 
			
		||||
        const to = from + xpData.xpCarac;
 | 
			
		||||
        selectedCarac.xp = to;
 | 
			
		||||
        await this.update({ "system.carac": carac });
 | 
			
		||||
        xpData.checkCarac = await this.checkCaracXP(selectedCarac.label, false);
 | 
			
		||||
        await ExperienceLog.add(this, XP_TOPIC.XPCARAC, from, to, xpData.caracName);
 | 
			
		||||
      const carac = duplicate(this.system.carac)
 | 
			
		||||
      const code = RdDBaseActor._findCaracNode(carac, xpData.caracName)
 | 
			
		||||
      const selectedCarac = carac[code]
 | 
			
		||||
      if (this.isCaracMax(code)) {
 | 
			
		||||
        ui.notifications.info(`Pas d'expérience: la caractéristique '${selectedCarac.label}' est déjà au maximum pour ${this.name}`)
 | 
			
		||||
        return []
 | 
			
		||||
      }
 | 
			
		||||
      if (selectedCarac && !selectedCarac.derivee) {
 | 
			
		||||
        const from = Number(selectedCarac.xp)
 | 
			
		||||
        const to = from + xpData.xpCarac
 | 
			
		||||
        selectedCarac.xp = to
 | 
			
		||||
        await this.update({ "system.carac": carac })
 | 
			
		||||
        xpData.checkCarac = await this.checkCaracXP(selectedCarac.label, false)
 | 
			
		||||
        await ExperienceLog.add(this, XP_TOPIC.XPCARAC, from, to, xpData.caracName)
 | 
			
		||||
        return [xpData]
 | 
			
		||||
      } else {
 | 
			
		||||
        xpData.caracRepartitionManuelle = true;
 | 
			
		||||
        return await this._xpCaracDerivee(xpData)
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
    return []
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  async _xpCaracDerivee(xpData) {
 | 
			
		||||
    const caracs = RdDActor._getComposantsCaracDerivee(xpData.caracName)
 | 
			
		||||
      .map(c => mergeObject(this.system.carac[c], { isMax: this.isCaracMax(c) }))
 | 
			
		||||
    switch (caracs.filter(it => !it.isMax).length) {
 | 
			
		||||
      case 0:
 | 
			
		||||
        xpData.caracRepartitionManuelle = true;
 | 
			
		||||
        return [xpData]
 | 
			
		||||
      case 1:
 | 
			
		||||
        xpData.caracName = caracs.find(it => !it.isMax).label
 | 
			
		||||
        return this._xpCarac(xpData)
 | 
			
		||||
      default:
 | 
			
		||||
        await DialogChoixXpCarac.choix(this, xpData, caracs)
 | 
			
		||||
        return []
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  static _getComposantsCaracDerivee(caracName) {
 | 
			
		||||
    switch (Grammar.toLowerCaseNoAccent(caracName)) {
 | 
			
		||||
      case 'vie': return ['constitution']
 | 
			
		||||
      case 'tir': return ['vue', 'dexterite']
 | 
			
		||||
      case 'lancer': return ['force', 'dexterite', 'vue']
 | 
			
		||||
      case 'melee': return ['force', 'agilite']
 | 
			
		||||
      case 'derobee': return ['agilite']
 | 
			
		||||
    }
 | 
			
		||||
    return []
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
  /* -------------------------------------------- */
 | 
			
		||||
  async resetNombresAstraux() {
 | 
			
		||||
    const deletions = this.itemTypes['nombreastral'].map(it => it._id);
 | 
			
		||||
@@ -2468,7 +2463,7 @@ export class RdDActor extends RdDBaseActorSang {
 | 
			
		||||
      draconic: this.getDraconicList(),
 | 
			
		||||
      sort: this.itemTypes['sort'],
 | 
			
		||||
      signes: this.itemTypes['signedraconique'],
 | 
			
		||||
      caracReve: this.system.carac.reve.value,
 | 
			
		||||
      caracReve: parseInt(this.system.carac.reve.value),
 | 
			
		||||
      pointsReve: this.getReveActuel(),
 | 
			
		||||
      isRapide: isRapide,
 | 
			
		||||
      isGM: game.user.isGM,
 | 
			
		||||
@@ -2559,7 +2554,7 @@ export class RdDActor extends RdDBaseActorSang {
 | 
			
		||||
 | 
			
		||||
  /* -------------------------------------------- */
 | 
			
		||||
  verifierForceMin(item) {
 | 
			
		||||
    if (item.type == 'arme' && item.system.force > this.system.carac.force.value) {
 | 
			
		||||
    if (item.type == 'arme' && item.system.force > parseInt(this.system.carac.force.value)) {
 | 
			
		||||
      ChatMessage.create({
 | 
			
		||||
        content: `<strong>${this.name} s'est équipé(e) de l'arme ${item.name}, mais n'a pas une force suffisante pour l'utiliser normalement </strong>
 | 
			
		||||
                  (${item.system.force} nécessaire pour une Force de ${this.system.carac.force.value})`
 | 
			
		||||
@@ -2572,7 +2567,7 @@ export class RdDActor extends RdDBaseActorSang {
 | 
			
		||||
    let item = this.getEmbeddedDocument('Item', itemID);
 | 
			
		||||
    if (item?.isEquipable()) {
 | 
			
		||||
      const isEquipe = !item.system.equipe;
 | 
			
		||||
      await this.updateEmbeddedDocuments('Item', [{ _id: item.id, "system.equipe": isEquipe }]);
 | 
			
		||||
      await item.update({ "system.equipe": isEquipe });
 | 
			
		||||
      this.computeEncTotal();
 | 
			
		||||
      if (isEquipe)
 | 
			
		||||
        this.verifierForceMin(item);
 | 
			
		||||
@@ -2688,85 +2683,121 @@ export class RdDActor extends RdDBaseActorSang {
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  /* -------------------------------------------- */
 | 
			
		||||
  listeVehicules() {
 | 
			
		||||
    const listeVehichules = this.system.subacteurs?.vehicules ?? [];
 | 
			
		||||
    return this._buildActorLinksList(listeVehichules, vehicle => RdDActor._vehicleData(vehicle));
 | 
			
		||||
  static $transformSubActeurSuivant = (suivant, link) => {
 | 
			
		||||
    return mergeObject(RdDBaseActor.extractActorMin(suivant), {
 | 
			
		||||
      ephemere: !suivant.prototypeToken.actorLink,
 | 
			
		||||
      coeur: link.coeur ?? 0,
 | 
			
		||||
      prochainCoeur: link.prochainCoeur ?? link.coeur ?? 0
 | 
			
		||||
    })
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
  listeSuivants(filter = suivant => true) {
 | 
			
		||||
    return RdDActor.$buildSubActorLinks(
 | 
			
		||||
      this.system.subacteurs.suivants.filter(filter), RdDActor.$transformSubActeurSuivant
 | 
			
		||||
    )
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  /* -------------------------------------------- */
 | 
			
		||||
  listeSuivants() {
 | 
			
		||||
    return this._buildActorLinksList(this.system.subacteurs?.suivants ?? []);
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  /* -------------------------------------------- */
 | 
			
		||||
  listeMontures() {
 | 
			
		||||
    return this._buildActorLinksList(this.system.subacteurs?.montures ?? []);
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  /* -------------------------------------------- */
 | 
			
		||||
  _buildActorLinksList(links, actorTransformation = it => RdDActor._buildActorData(it)) {
 | 
			
		||||
    return links.map(link => game.actors.get(link.id))
 | 
			
		||||
      .filter(it => it != undefined)
 | 
			
		||||
      .map(actorTransformation);
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  /* -------------------------------------------- */
 | 
			
		||||
  static _vehicleData(vehicle) {
 | 
			
		||||
    return {
 | 
			
		||||
      id: vehicle.id,
 | 
			
		||||
      name: vehicle.name,
 | 
			
		||||
      img: vehicle.img,
 | 
			
		||||
      system: {
 | 
			
		||||
        categorie: vehicle.system.categorie,
 | 
			
		||||
        etat: vehicle.system.etat
 | 
			
		||||
      }
 | 
			
		||||
    };
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  /* -------------------------------------------- */
 | 
			
		||||
  static _buildActorData(it) {
 | 
			
		||||
    return { id: it.id, name: it.name, img: it.img };
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  /* -------------------------------------------- */
 | 
			
		||||
  async pushSubacteur(actor, dataArray, dataPath, dataName) {
 | 
			
		||||
    let alreadyPresent = dataArray.find(attached => attached.id == actor._id);
 | 
			
		||||
    if (!alreadyPresent) {
 | 
			
		||||
      let newArray = duplicate(dataArray);
 | 
			
		||||
      newArray.push({ id: actor._id });
 | 
			
		||||
      await this.update({ [dataPath]: newArray });
 | 
			
		||||
    } else {
 | 
			
		||||
      ui.notifications.warn(dataName + " est déja attaché à ce Personnage.");
 | 
			
		||||
  getSuivant(subActorId) {
 | 
			
		||||
    const suivant = this.system.subacteurs.suivants.find(it => it.id == subActorId);
 | 
			
		||||
    if (suivant) {
 | 
			
		||||
      return RdDActor.$transformSubActeurSuivant(game.actors.get(suivant.id), suivant);
 | 
			
		||||
    }
 | 
			
		||||
    return undefined
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  getPointsCoeur(subActorId) {
 | 
			
		||||
    return this.getSuivant(subActorId)?.coeur ?? 0;
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  async setPointsCoeur(subActorId, coeurs, options = { immediat: false }) {
 | 
			
		||||
    const newSuivants = duplicate(this.system.subacteurs.suivants)
 | 
			
		||||
    const amoureux = newSuivants.find(it => it.id == subActorId);
 | 
			
		||||
    if (amoureux) {
 | 
			
		||||
      amoureux[options.immediat ? 'coeur' : 'prochainCoeur'] = coeurs
 | 
			
		||||
      await this.update({ 'system.subacteurs.suivants': newSuivants });
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  /* -------------------------------------------- */
 | 
			
		||||
  static $transformSubActeurVehicule = (vehicle, link) => {
 | 
			
		||||
    return mergeObject(RdDBaseActor.extractActorMin(vehicle), {
 | 
			
		||||
      system: { categorie: vehicle.system.categorie, etat: vehicle.system.etat }
 | 
			
		||||
    })
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
  listeVehicules() {
 | 
			
		||||
    return RdDActor.$buildSubActorLinks(this.system.subacteurs.vehicules, RdDActor.$transformSubActeurVehicule)
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  /* -------------------------------------------- */
 | 
			
		||||
  static $transformSubActeurCreature = (actor, link) => RdDBaseActor.extractActorMin(actor)
 | 
			
		||||
 | 
			
		||||
  listeMontures() {
 | 
			
		||||
    return RdDActor.$buildSubActorLinks(this.system.subacteurs.montures, RdDActor.$transformSubActeurCreature);
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  /* -------------------------------------------- */
 | 
			
		||||
  static $buildSubActorLinks(subActors, actorTransformation = (actor, link) => undefined) {
 | 
			
		||||
    if (!subActors) {
 | 
			
		||||
      return []
 | 
			
		||||
    }
 | 
			
		||||
    return subActors.map(link => {
 | 
			
		||||
      const actor = game.actors.get(link.id)
 | 
			
		||||
      return actor ? actorTransformation(actor, link) : undefined
 | 
			
		||||
    })
 | 
			
		||||
      .filter(it => it != undefined)
 | 
			
		||||
      .sort(Misc.ascending(it => it.name))
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  /* -------------------------------------------- */
 | 
			
		||||
  addSubActeur(subActor) {
 | 
			
		||||
    if (subActor?.id == this.id) {
 | 
			
		||||
      ui.notifications.warn("Vous ne pouvez pas attacher un acteur à lui même")
 | 
			
		||||
    if (!this.isAddSubActeurAllowed(subActor)) {
 | 
			
		||||
      return
 | 
			
		||||
    }
 | 
			
		||||
    else if (!subActor?.isOwner) {
 | 
			
		||||
      ui.notifications.warn("Vous n'avez pas les droits sur l'acteur que vous attachez.")
 | 
			
		||||
    }
 | 
			
		||||
    else {
 | 
			
		||||
      if (subActor.type == 'vehicule') {
 | 
			
		||||
        this.pushSubacteur(subActor, this.system.subacteurs.vehicules, 'system.subacteurs.vehicules', 'Ce Véhicule');
 | 
			
		||||
      } else if (subActor.type == 'creature') {
 | 
			
		||||
        this.pushSubacteur(subActor, this.system.subacteurs.montures, 'system.subacteurs.montures', 'Cette Monture');
 | 
			
		||||
      } else if (subActor.type == 'personnage') {
 | 
			
		||||
        this.pushSubacteur(subActor, this.system.subacteurs.suivants, 'system.subacteurs.suivants', 'Ce Suivant');
 | 
			
		||||
      }
 | 
			
		||||
    const subActorOnlyId = { id: subActor._id };
 | 
			
		||||
    if (subActor.type == 'vehicule') {
 | 
			
		||||
      this.pushSubActeur(subActorOnlyId, this.system.subacteurs.vehicules, `system.subacteurs.vehicules`, `Le véhicule ${subActor.name}`)
 | 
			
		||||
    } else if (subActor.type == 'creature') {
 | 
			
		||||
      this.pushSubActeur(subActorOnlyId, this.system.subacteurs.montures, 'system.subacteurs.montures', `L'animal ${subActor.name}`)
 | 
			
		||||
    } else if (subActor.type == 'personnage') {
 | 
			
		||||
      this.pushSubActeur(subActorOnlyId, this.system.subacteurs.suivants, 'system.subacteurs.suivants', `Le compagnon ${subActor.name}`)
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  /* -------------------------------------------- */
 | 
			
		||||
  async removeSubacteur(actorId) {
 | 
			
		||||
    let newVehicules = this.system.subacteurs.vehicules.filter(function (obj, index, arr) { return obj.id != actorId });
 | 
			
		||||
    let newSuivants = this.system.subacteurs.suivants.filter(function (obj, index, arr) { return obj.id != actorId });
 | 
			
		||||
    let newMontures = this.system.subacteurs.montures.filter(function (obj, index, arr) { return obj.id != actorId });
 | 
			
		||||
    await this.update({ 'system.subacteurs.vehicules': newVehicules }, { renderSheet: false });
 | 
			
		||||
    await this.update({ 'system.subacteurs.suivants': newSuivants }, { renderSheet: false });
 | 
			
		||||
    await this.update({ 'system.subacteurs.montures': newMontures }, { renderSheet: false });
 | 
			
		||||
  async pushSubActeur(subActor, dataArray, dataPath, dataName) {
 | 
			
		||||
    let alreadyPresent = dataArray.find(attached => attached.id == subActor.id);
 | 
			
		||||
    if (!alreadyPresent) {
 | 
			
		||||
      let newArray = [...dataArray, subActor]
 | 
			
		||||
      await this.update({ [dataPath]: newArray });
 | 
			
		||||
    } else {
 | 
			
		||||
      ui.notifications.warn(dataName + " est déja attaché à " + this.name);
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  isAddSubActeurAllowed(subActor) {
 | 
			
		||||
    if (subActor?.id == undefined) {
 | 
			
		||||
      ui.notifications.warn("Aucun acteur à ajouter")
 | 
			
		||||
      return false
 | 
			
		||||
    }
 | 
			
		||||
    if (subActor?.id == this.id) {
 | 
			
		||||
      ui.notifications.warn("Vous ne pouvez pas attacher un acteur à lui même")
 | 
			
		||||
      return false
 | 
			
		||||
    }
 | 
			
		||||
    else if (!subActor?.isOwner) {
 | 
			
		||||
      ui.notifications.warn("Vous n'avez pas les droits sur l'acteur que vous attachez.")
 | 
			
		||||
      return false
 | 
			
		||||
    }
 | 
			
		||||
    return true
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  async deleteSubActeur(actorId) {
 | 
			
		||||
    ['vehicules', 'suivants', 'montures'].forEach(async type => {
 | 
			
		||||
      const subList = this.system.subacteurs[type];
 | 
			
		||||
      if (subList.find(it => it.id == actorId)) {
 | 
			
		||||
        let newList = subList.filter(it => it.id != actorId)
 | 
			
		||||
        await this.update({ [`system.subacteurs.${type}`]: newList }, { renderSheet: false });
 | 
			
		||||
      }
 | 
			
		||||
    })
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  /* -------------------------------------------- */
 | 
			
		||||
@@ -2937,9 +2968,7 @@ export class RdDActor extends RdDBaseActorSang {
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  /* -------------------------------------------- */
 | 
			
		||||
  isEffectAllowed(statusId) {
 | 
			
		||||
    return true
 | 
			
		||||
  }
 | 
			
		||||
  isEffectAllowed(effectId) { return true }
 | 
			
		||||
 | 
			
		||||
  /* -------------------------------------------- */
 | 
			
		||||
  async onPreUpdateItem(item, change, options, id) {
 | 
			
		||||
 
 | 
			
		||||
@@ -1,3 +1,4 @@
 | 
			
		||||
import { Grammar } from "../grammar.js";
 | 
			
		||||
import { RdDSheetUtility } from "../rdd-sheet-utility.js";
 | 
			
		||||
import { RdDBaseActorSheet } from "./base-actor-sheet.js";
 | 
			
		||||
 | 
			
		||||
@@ -23,42 +24,18 @@ export class RdDBaseActorReveSheet extends RdDBaseActorSheet {
 | 
			
		||||
    // Everything below here is only needed if the sheet is editable
 | 
			
		||||
    if (!this.options.editable) return;
 | 
			
		||||
 | 
			
		||||
    this.html.find('.encaisser-direct').click(async event => {
 | 
			
		||||
      this.actor.encaisser();
 | 
			
		||||
    })
 | 
			
		||||
    this.html.find('.remise-a-neuf').click(async event => {
 | 
			
		||||
      if (game.user.isGM) {
 | 
			
		||||
        this.actor.remiseANeuf();
 | 
			
		||||
      }
 | 
			
		||||
    });
 | 
			
		||||
    this.html.find('.encaisser-direct').click(async event => this.actor.encaisser())
 | 
			
		||||
    this.html.find('.carac-label a').click(async event => this.actor.rollCarac(Grammar.toLowerCaseNoAccent(event.currentTarget.attributes.name.value)));
 | 
			
		||||
    this.html.find('a.competence-label').click(async event => this.actor.rollCompetence(RdDSheetUtility.getItemId(event)));
 | 
			
		||||
    this.html.find('.endurance-plus').click(async event => this.actor.santeIncDec("endurance", 1));
 | 
			
		||||
    this.html.find('.endurance-moins').click(async event => this.actor.santeIncDec("endurance", -1));
 | 
			
		||||
 | 
			
		||||
    this.html.find('.carac-label a').click(async event => {
 | 
			
		||||
      let caracName = event.currentTarget.attributes.name.value;
 | 
			
		||||
      this.actor.rollCarac(caracName.toLowerCase());
 | 
			
		||||
    });
 | 
			
		||||
    if (game.user.isGM) {
 | 
			
		||||
      this.html.find('.remise-a-neuf').click(async event => this.actor.remiseANeuf())
 | 
			
		||||
      this.html.find('.delete-active-effect').click(async event => this.actor.removeEffect(this.html.find(event.currentTarget).parents(".active-effect").data('effect')));
 | 
			
		||||
      this.html.find('.enlever-tous-effets').click(async event => await this.actor.removeEffects());
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    this.html.find('a.competence-label').click(async event => {
 | 
			
		||||
      this.actor.rollCompetence(RdDSheetUtility.getItemId(event));
 | 
			
		||||
    });
 | 
			
		||||
 | 
			
		||||
    this.html.find('.delete-active-effect').click(async event => {
 | 
			
		||||
      if (game.user.isGM) {
 | 
			
		||||
        let effect = this.html.find(event.currentTarget).parents(".active-effect").data('effect');
 | 
			
		||||
        this.actor.removeEffect(effect);
 | 
			
		||||
      }
 | 
			
		||||
    });
 | 
			
		||||
    this.html.find('.enlever-tous-effets').click(async event => {
 | 
			
		||||
      if (game.user.isGM) {
 | 
			
		||||
        await this.actor.removeEffects();
 | 
			
		||||
      }
 | 
			
		||||
    });
 | 
			
		||||
 | 
			
		||||
    this.html.find('.endurance-plus').click(async event => {
 | 
			
		||||
      this.actor.santeIncDec("endurance", 1);
 | 
			
		||||
    });
 | 
			
		||||
    this.html.find('.endurance-moins').click(async event => {
 | 
			
		||||
      this.actor.santeIncDec("endurance", -1);
 | 
			
		||||
    });
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -174,38 +174,38 @@ export class RdDBaseActorReve extends RdDBaseActor {
 | 
			
		||||
      }
 | 
			
		||||
      const path = getFieldPath(fieldName);
 | 
			
		||||
      if (path) {
 | 
			
		||||
        await this.updateEmbeddedDocuments('Item', [{ _id: competence.id, [path]: value }]); // updates one EmbeddedEntity
 | 
			
		||||
        await competence.update({ [path]: value });
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  /* -------------------------------------------- */
 | 
			
		||||
  isEffectAllowed(statusId) { return true }
 | 
			
		||||
  isEffectAllowed(effectId) { return true }
 | 
			
		||||
 | 
			
		||||
  getEffects(filter = e => true) {
 | 
			
		||||
    return this.getEmbeddedCollection("ActiveEffect").filter(filter);
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  getEffect(statusId) {
 | 
			
		||||
    return this.getEmbeddedCollection("ActiveEffect").find(it => it.flags?.core?.statusId == statusId);
 | 
			
		||||
  getEffect(effectId) {
 | 
			
		||||
    return this.getEmbeddedCollection("ActiveEffect").find(it => it.statuses?.has(effectId));
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  async setEffect(statusId, status) {
 | 
			
		||||
    if (this.isEffectAllowed(statusId)) {
 | 
			
		||||
      const effect = this.getEffect(statusId);
 | 
			
		||||
  
 | 
			
		||||
  async setEffect(effectId, status) {
 | 
			
		||||
    if (this.isEffectAllowed(effectId)) {
 | 
			
		||||
      const effect = this.getEffect(effectId);
 | 
			
		||||
      if (!status && effect) {
 | 
			
		||||
        await this.deleteEmbeddedDocuments('ActiveEffect', [effect.id]);
 | 
			
		||||
      }
 | 
			
		||||
      if (status && !effect) {
 | 
			
		||||
        await this.createEmbeddedDocuments("ActiveEffect", [StatusEffects.status(statusId)]);
 | 
			
		||||
        await this.createEmbeddedDocuments("ActiveEffect", [StatusEffects.prepareActiveEffect(effectId)]);
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  async removeEffect(statusId) {
 | 
			
		||||
    const effect = this.getEffect(statusId);
 | 
			
		||||
  
 | 
			
		||||
  async removeEffect(id) {
 | 
			
		||||
    const effect = this.getEmbeddedCollection("ActiveEffect").find(it => it.id == id);
 | 
			
		||||
    if (effect) {
 | 
			
		||||
      await this.deleteEmbeddedDocuments('ActiveEffect', [effect.id]);
 | 
			
		||||
      await this.deleteEmbeddedDocuments('ActiveEffect', [id]);
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
@@ -287,10 +287,10 @@ export class RdDBaseActorReve extends RdDBaseActor {
 | 
			
		||||
  getCarac() {
 | 
			
		||||
    // TODO: le niveau d'une entité de cauchemar devrait être exclu...
 | 
			
		||||
    const carac = mergeObject(duplicate(this.system.carac),
 | 
			
		||||
    {
 | 
			
		||||
      'reve-actuel': this.getCaracReveActuel(),
 | 
			
		||||
      'chance-actuelle': this.getCaracChanceActuelle()
 | 
			
		||||
    });
 | 
			
		||||
      {
 | 
			
		||||
        'reve-actuel': this.getCaracReveActuel(),
 | 
			
		||||
        'chance-actuelle': this.getCaracChanceActuelle()
 | 
			
		||||
      });
 | 
			
		||||
    return carac;
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										41
									
								
								module/actor/base-actor-sang-sheet.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										41
									
								
								module/actor/base-actor-sang-sheet.js
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,41 @@
 | 
			
		||||
import { ChatUtility } from "../chat-utility.js";
 | 
			
		||||
import { RdDItemBlessure } from "../item/blessure.js";
 | 
			
		||||
import { RdDBaseActorReveSheet } from "./base-actor-reve-sheet.js";
 | 
			
		||||
 | 
			
		||||
/* -------------------------------------------- */
 | 
			
		||||
/**
 | 
			
		||||
 * Extend the basic ActorSheet with some very simple modifications
 | 
			
		||||
 * @extends {ActorSheet}
 | 
			
		||||
 */
 | 
			
		||||
export class RdDBaseActorSangSheet extends RdDBaseActorReveSheet {
 | 
			
		||||
 | 
			
		||||
  /* -------------------------------------------- */
 | 
			
		||||
  /** @override */
 | 
			
		||||
  activateListeners(html) {
 | 
			
		||||
    super.activateListeners(html);
 | 
			
		||||
 | 
			
		||||
    // Everything below here is only needed if the sheet is editable
 | 
			
		||||
    if (!this.options.editable) return;
 | 
			
		||||
 | 
			
		||||
    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('.jet-vie').click(async event => this.actor.jetDeVie())
 | 
			
		||||
    this.html.find('.jet-endurance').click(async event => await this.jetEndurance())
 | 
			
		||||
 | 
			
		||||
    this.html.find('.vie-plus').click(async event => this.actor.santeIncDec("vie", 1))
 | 
			
		||||
    this.html.find('.vie-moins').click(async event => this.actor.santeIncDec("vie", -1))
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  async jetEndurance() {
 | 
			
		||||
    const endurance = this.actor.getEnduranceActuelle()
 | 
			
		||||
    const result = await this.actor.jetEndurance(endurance);
 | 
			
		||||
    ChatMessage.create({
 | 
			
		||||
      content: `Jet d'Endurance : ${result.jetEndurance} / ${endurance}
 | 
			
		||||
        <br>${this.actor.name} a ${result.sonne ? 'échoué' : 'réussi'} son Jet d'Endurance ${result.sonne ? 'et devient Sonné' : ''}`,
 | 
			
		||||
      whisper: ChatUtility.getWhisperRecipientsAndGMs(this.actor.name)
 | 
			
		||||
    });
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
@@ -20,25 +20,17 @@ export class RdDBaseActorSang extends RdDBaseActorReve {
 | 
			
		||||
  getProtectionNaturelle() { return Number(this.system.attributs?.protection?.value ?? 0) }
 | 
			
		||||
  getSConst() { return 0 }
 | 
			
		||||
 | 
			
		||||
  getEnduranceMax() {
 | 
			
		||||
    return Math.max(1, Math.min(this.system.sante.endurance.max, MAX_ENDURANCE_FATIGUE));
 | 
			
		||||
  }
 | 
			
		||||
  getEnduranceMax() { return Math.max(1, Math.min(this.system.sante.endurance.max, MAX_ENDURANCE_FATIGUE)) }
 | 
			
		||||
 | 
			
		||||
  getFatigueActuelle() {
 | 
			
		||||
    if (ReglesOptionnelles.isUsing("appliquer-fatigue")) {
 | 
			
		||||
      return Math.max(0, Math.min(this.getFatigueMax(), this.system.sante.fatigue?.value));
 | 
			
		||||
      return Math.max(0, Math.min(this.getFatigueMax(), this.system.sante.fatigue?.value ?? 0));
 | 
			
		||||
    }
 | 
			
		||||
    return 0;
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  getFatigueRestante() {
 | 
			
		||||
    return this.getFatigueMax() - this.getFatigueActuelle();
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  getFatigueMin() {
 | 
			
		||||
    return this.system.sante.endurance.max - this.system.sante.endurance.value;
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  getFatigueRestante() { return this.getFatigueMax() - this.getFatigueActuelle() }
 | 
			
		||||
  getFatigueMin() { return this.system.sante.endurance.max - this.system.sante.endurance.value }
 | 
			
		||||
  getFatigueMax() { return this.getEnduranceMax() * 2 }
 | 
			
		||||
 | 
			
		||||
  malusFatigue() {
 | 
			
		||||
@@ -56,19 +48,11 @@ export class RdDBaseActorSang extends RdDBaseActorReve {
 | 
			
		||||
    return Math.min(0, Math.floor(this.getEncombrementMax() - this.encTotal));
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  isDead() {
 | 
			
		||||
    return this.system.sante.vie.value < -this.getSConst()
 | 
			
		||||
  }
 | 
			
		||||
  isDead() { return this.system.sante.vie.value < -this.getSConst() }
 | 
			
		||||
 | 
			
		||||
  nbBlessuresLegeres() {
 | 
			
		||||
    return this.itemTypes[TYPES.blessure].filter(it => it.isLegere()).length;
 | 
			
		||||
  }
 | 
			
		||||
  nbBlessuresGraves() {
 | 
			
		||||
    return this.itemTypes[TYPES.blessure].filter(it => it.isGrave()).length;
 | 
			
		||||
  }
 | 
			
		||||
  nbBlessuresCritiques() {
 | 
			
		||||
    return this.itemTypes[TYPES.blessure].filter(it => it.isCritique()).length;
 | 
			
		||||
  }
 | 
			
		||||
  nbBlessuresLegeres() { return this.itemTypes[TYPES.blessure].filter(it => it.isLegere()).length }
 | 
			
		||||
  nbBlessuresGraves() { return this.itemTypes[TYPES.blessure].filter(it => it.isGrave()).length }
 | 
			
		||||
  nbBlessuresCritiques() { return this.itemTypes[TYPES.blessure].filter(it => it.isCritique()).length }
 | 
			
		||||
 | 
			
		||||
  /* -------------------------------------------- */
 | 
			
		||||
  computeResumeBlessure() {
 | 
			
		||||
@@ -97,7 +81,6 @@ export class RdDBaseActorSang extends RdDBaseActorReve {
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  blessuresASoigner() { return [] }
 | 
			
		||||
  getEtatGeneral(options = { ethylisme: false }) { return 0 }
 | 
			
		||||
 | 
			
		||||
  async computeArmure(attackerRoll) { return this.getProtectionNaturelle() }
 | 
			
		||||
  async remiseANeuf() { }
 | 
			
		||||
@@ -173,6 +156,16 @@ export class RdDBaseActorSang extends RdDBaseActorReve {
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  /* -------------------------------------------- */
 | 
			
		||||
  _computeEnduranceMax() {
 | 
			
		||||
    const diffVie = this.system.sante.vie.max - this.system.sante.vie.value;
 | 
			
		||||
    const maxEndVie = this.system.sante.endurance.max - (diffVie * 2);
 | 
			
		||||
    const nbGraves = this.countBlessures(it => it.isGrave()) > 0
 | 
			
		||||
    const nbCritiques = this.countBlessures(it => it.isCritique()) > 0
 | 
			
		||||
    const maxEndGraves = Math.floor(this.system.sante.endurance.max / (2 * nbGraves));
 | 
			
		||||
    const maxEndCritiques = nbCritiques > 0 ? 1 : this.system.sante.endurance.max;
 | 
			
		||||
    return Math.max(0, Math.min(maxEndVie, maxEndGraves, maxEndCritiques));
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
  /* -------------------------------------------- */
 | 
			
		||||
  async ajouterBlessure(encaissement, attacker = undefined) {
 | 
			
		||||
@@ -196,7 +189,7 @@ export class RdDBaseActorSang extends RdDBaseActorReve {
 | 
			
		||||
      this.setEffect(STATUSES.StatusComma, true);
 | 
			
		||||
      encaissement.mort = true;
 | 
			
		||||
      ChatMessage.create({
 | 
			
		||||
        content: `<img class="chat-icon" src="icons/svg/skull.svg" alt="charge" />
 | 
			
		||||
        content: `<img class="chat-icon" src="icons/svg/skull.svg" data-tooltip="charge" />
 | 
			
		||||
        <strong>${this.name} vient de succomber à une seconde blessure critique ! Que les Dragons gardent son Archétype en paix !</strong>`
 | 
			
		||||
      });
 | 
			
		||||
    }
 | 
			
		||||
@@ -277,14 +270,10 @@ export class RdDBaseActorSang extends RdDBaseActorReve {
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  /* -------------------------------------------- */
 | 
			
		||||
  async computeEtatGeneral() {
 | 
			
		||||
    this.system.compteurs.etat.value = this.malusVie() + this.malusFatigue() + this.malusEthylisme();
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  malusVie() {
 | 
			
		||||
    return Math.min(this.system.sante.vie.value - this.system.sante.vie.max, 0);
 | 
			
		||||
  }
 | 
			
		||||
  async computeEtatGeneral() { this.system.compteurs.etat.value = this.malusVie() + this.malusFatigue() + this.malusEthylisme() }
 | 
			
		||||
  getEtatGeneral(options = { ethylisme: false }) { return this.system.compteurs.etat.value }
 | 
			
		||||
 | 
			
		||||
  malusVie() { return Math.min(this.system.sante.vie.value - this.system.sante.vie.max, 0) }
 | 
			
		||||
  malusEthylisme() { return 0 }
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -15,7 +15,6 @@ export class RdDBaseActorSheet extends ActorSheet {
 | 
			
		||||
 | 
			
		||||
  /** @override */
 | 
			
		||||
  static get defaultOptions() {
 | 
			
		||||
    RdDUtility.initAfficheContenu();
 | 
			
		||||
    return mergeObject(ActorSheet.defaultOptions, {
 | 
			
		||||
      classes: ["rdd", "sheet", "actor"],
 | 
			
		||||
      tabs: [{ navSelector: ".sheet-tabs", contentSelector: ".sheet-body", initial: "carac" }],
 | 
			
		||||
@@ -132,20 +131,14 @@ export class RdDBaseActorSheet extends ActorSheet {
 | 
			
		||||
    super.activateListeners(html);
 | 
			
		||||
    this.html = html;
 | 
			
		||||
 | 
			
		||||
    if (!this.options.editable) return;
 | 
			
		||||
 | 
			
		||||
    this.html.find('.item-action').click(async event => {
 | 
			
		||||
      const item = RdDSheetUtility.getItem(event, this.actor);
 | 
			
		||||
      item?.actionPrincipale(this.actor, async () => this.render())
 | 
			
		||||
    });
 | 
			
		||||
 | 
			
		||||
    this.html.find('.conteneur-name a').click(async event => {
 | 
			
		||||
      RdDUtility.toggleAfficheContenu(this.getItemId(event));
 | 
			
		||||
      this.render(true);
 | 
			
		||||
    });
 | 
			
		||||
    this.html.find('.actor-montrer').click(async event => this.actor.postActorToChat());
 | 
			
		||||
    this.html.find('.item-edit').click(async event => this.getItem(event)?.sheet.render(true))
 | 
			
		||||
    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('.recherche')
 | 
			
		||||
      .each((index, field) => {
 | 
			
		||||
        this._rechercheSelectArea(field);
 | 
			
		||||
@@ -153,9 +146,16 @@ export class RdDBaseActorSheet extends ActorSheet {
 | 
			
		||||
      .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
 | 
			
		||||
    if (!this.options.editable) return;
 | 
			
		||||
 | 
			
		||||
    this.html.find('.item-action').click(async event => {
 | 
			
		||||
      const item = RdDSheetUtility.getItem(event, this.actor);
 | 
			
		||||
      item?.actionPrincipale(this.actor, async () => this.render())
 | 
			
		||||
    });
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
    this.html.find('.item-split').click(async event => {
 | 
			
		||||
      const item = this.getItem(event);
 | 
			
		||||
      RdDSheetUtility.splitItem(item, this.actor);
 | 
			
		||||
 
 | 
			
		||||
@@ -11,16 +11,14 @@ import { SystemCompendiums } from "../settings/system-compendiums.js";
 | 
			
		||||
import { APP_ASTROLOGIE_REFRESH } from "../sommeil/app-astrologie.js";
 | 
			
		||||
 | 
			
		||||
export class RdDBaseActor extends Actor {
 | 
			
		||||
  /* -------------------------------------------- */
 | 
			
		||||
  static _findCaracByName(carac, name) {
 | 
			
		||||
    name = Grammar.toLowerCaseNoAccent(name);
 | 
			
		||||
    switch (name) {
 | 
			
		||||
      case 'reve-actuel': case 'reve actuel':
 | 
			
		||||
        return carac.reve;
 | 
			
		||||
      case 'chance-actuelle': case 'chance actuelle':
 | 
			
		||||
        return carac.chance;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
  static _findCaracNode(carac, name) {
 | 
			
		||||
    return Object.entries(carac)
 | 
			
		||||
      .filter(it => Grammar.equalsInsensitive(it[1].label, name))
 | 
			
		||||
      .map(it => it[0])
 | 
			
		||||
      .find(it => it);
 | 
			
		||||
  }
 | 
			
		||||
  static $findCaracByName(carac, name) {
 | 
			
		||||
    const caracList = Object.entries(carac);
 | 
			
		||||
    let entry = Misc.findFirstLike(name, caracList, { mapper: it => it[0], description: 'caractéristique' });
 | 
			
		||||
    if (!entry || entry.length == 0) {
 | 
			
		||||
@@ -29,21 +27,10 @@ export class RdDBaseActor extends Actor {
 | 
			
		||||
    return entry && entry.length > 0 ? carac[entry[0]] : undefined;
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  getCaracByName(name) {
 | 
			
		||||
    switch (Grammar.toLowerCaseNoAccent(name)) {
 | 
			
		||||
      case 'reve-actuel': case 'reve actuel':
 | 
			
		||||
        return this.getCaracReveActuel();
 | 
			
		||||
      case 'chance-actuelle': case 'chance-actuelle':
 | 
			
		||||
        return this.getCaracChanceActuelle();
 | 
			
		||||
    }
 | 
			
		||||
    return RdDBaseActor._findCaracByName(this.system.carac, name);
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  static getDefaultImg(itemType) {
 | 
			
		||||
    return game.system.rdd.actorClasses[itemType]?.defaultIcon ?? defaultItemImg[itemType];
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  /* -------------------------------------------- */
 | 
			
		||||
  static init() {
 | 
			
		||||
    Hooks.on("preUpdateItem", (item, change, options, id) => RdDBaseActor.getParentActor(item)?.onPreUpdateItem(item, change, options, id));
 | 
			
		||||
    Hooks.on("createItem", (item, options, id) => RdDBaseActor.getParentActor(item)?.onCreateItem(item, options, id));
 | 
			
		||||
@@ -79,13 +66,7 @@ export class RdDBaseActor extends Actor {
 | 
			
		||||
 | 
			
		||||
  static onRemoteActorCall(callData, userId) {
 | 
			
		||||
    if (userId == game.user.id) {
 | 
			
		||||
      let actor = game.actors.get(callData?.actorId);
 | 
			
		||||
      if (callData.tokenId) {
 | 
			
		||||
        let token = canvas.tokens.placeables.find(t => t.id == callData.tokenId)
 | 
			
		||||
        if (token) {
 | 
			
		||||
          actor = token.actor
 | 
			
		||||
        }
 | 
			
		||||
      }
 | 
			
		||||
      const actor = RdDBaseActor.getRealActor(callData?.actorId, callData?.tokenId);
 | 
			
		||||
      if (Misc.isOwnerPlayerOrUniqueConnectedGM(actor)) { // Seul le joueur choisi effectue l'appel: le joueur courant si propriétaire de l'actor, ou le MJ sinon
 | 
			
		||||
        const args = callData.args;
 | 
			
		||||
        console.info(`RdDBaseActor.onRemoteActorCall: pour l'Actor ${callData.actorId}, appel de RdDBaseActor.${callData.method}(`, ...args, ')');
 | 
			
		||||
@@ -94,17 +75,29 @@ export class RdDBaseActor extends Actor {
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  static getRealActor(actorId, tokenId) {
 | 
			
		||||
    if (tokenId) {
 | 
			
		||||
      let token = canvas.tokens.get(tokenId)
 | 
			
		||||
      if (token) {
 | 
			
		||||
        return token.actor
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
    return game.actors.get(actorId)
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  static extractActorMin = (actor) => { return { id: actor?.id, type: actor?.type, name: actor?.name, img: actor?.img }; };
 | 
			
		||||
 | 
			
		||||
  static getParentActor(document) {
 | 
			
		||||
    return document?.parent instanceof Actor ? document.parent : undefined
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  /**
 | 
			
		||||
   * Cet methode surcharge Actor.create() pour ajouter si besoin des Items par défaut:
 | 
			
		||||
   * Cette methode surcharge Actor.create() pour ajouter si besoin des Items par défaut:
 | 
			
		||||
   * compétences et monnaies.
 | 
			
		||||
  *
 | 
			
		||||
  * @param {Object} actorData template d'acteur auquel ajouter des informations.
 | 
			
		||||
  * @param {Object} options   optionspour customiser la création
 | 
			
		||||
  */
 | 
			
		||||
   *
 | 
			
		||||
   * @param {Object} actorData template d'acteur auquel ajouter des informations.
 | 
			
		||||
   * @param {Object} options   optionspour customiser la création
 | 
			
		||||
   */
 | 
			
		||||
  static async create(actorData, options) {
 | 
			
		||||
    // import depuis un compendium
 | 
			
		||||
    if (actorData instanceof Array) {
 | 
			
		||||
@@ -140,6 +133,31 @@ export class RdDBaseActor extends Actor {
 | 
			
		||||
    super(docData, context);
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  findCaracByName(name) {
 | 
			
		||||
    name = Grammar.toLowerCaseNoAccent(name)
 | 
			
		||||
    switch (name) {
 | 
			
		||||
      case 'reve-actuel': case 'reve actuel':
 | 
			
		||||
        return this.system.carac.reve
 | 
			
		||||
      case 'chance-actuelle': case 'chance actuelle':
 | 
			
		||||
        return this.system.carac.chance
 | 
			
		||||
      case 'vie':
 | 
			
		||||
        return this.system.sante.vie
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    const carac = this.system.carac;
 | 
			
		||||
    return RdDBaseActor.$findCaracByName(carac, name);
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  getCaracByName(name) {
 | 
			
		||||
    switch (Grammar.toLowerCaseNoAccent(name)) {
 | 
			
		||||
      case 'reve-actuel': case 'reve actuel':
 | 
			
		||||
        return this.getCaracReveActuel();
 | 
			
		||||
      case 'chance-actuelle': case 'chance-actuelle':
 | 
			
		||||
        return this.getCaracChanceActuelle();
 | 
			
		||||
    }
 | 
			
		||||
    return this.findCaracByName(name);
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  /* -------------------------------------------- */
 | 
			
		||||
  async _preCreate(data, options, user) {
 | 
			
		||||
    await super._preCreate(data, options, user);
 | 
			
		||||
@@ -181,6 +199,8 @@ export class RdDBaseActor extends Actor {
 | 
			
		||||
    return undefined;
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  listeSuivants(filter = suivant => true) { return [] }
 | 
			
		||||
  listeSuivants(filter = suivant => true) { return [] }
 | 
			
		||||
  listItems(type = undefined) { return (type ? this.itemTypes[type] : this.items); }
 | 
			
		||||
  filterItems(filter, type = undefined) { return (type ? this.itemTypes[type] : this.items)?.filter(filter) ?? []; }
 | 
			
		||||
  findItemLike(idOrName, type) {
 | 
			
		||||
@@ -238,7 +258,7 @@ export class RdDBaseActor extends Actor {
 | 
			
		||||
    let item = this.getItem(id);
 | 
			
		||||
    if (item && item.isInventaire()) {
 | 
			
		||||
      const quantite = Math.max(0, item.system.quantite + value);
 | 
			
		||||
      await this.updateEmbeddedDocuments('Item', [{ _id: item.id, 'system.quantite': quantite }]);
 | 
			
		||||
      await item.update({ 'system.quantite': quantite });
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
@@ -464,14 +484,15 @@ export class RdDBaseActor extends Actor {
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  async processDropItem(params) {
 | 
			
		||||
    const targetActorId = this.id;
 | 
			
		||||
    const sourceActorId = params.sourceActorId;
 | 
			
		||||
    const itemId = params.itemId;
 | 
			
		||||
    const destId = params.destId;
 | 
			
		||||
    const srcId = params.srcId;
 | 
			
		||||
    const targetActorId = this.id
 | 
			
		||||
    const sourceActorId = params.sourceActorId
 | 
			
		||||
    const sourceTokenId = params.sourceTokenId
 | 
			
		||||
    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);
 | 
			
		||||
      console.log("Moving objects", sourceActorId, sourceTokenId, targetActorId, itemId);
 | 
			
		||||
      this.moveItemsBetweenActors(itemId, sourceActorId, sourceTokenId);
 | 
			
		||||
      return false;
 | 
			
		||||
    }
 | 
			
		||||
    let result = true;
 | 
			
		||||
@@ -544,8 +565,7 @@ export class RdDBaseActor extends Actor {
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  /* -------------------------------------------- */
 | 
			
		||||
  /** Ajoute un item dans un conteneur, sur la base
 | 
			
		||||
   * de leurs ID */
 | 
			
		||||
  /** Ajoute un item dans un conteneur, sur la base de leurs ID */
 | 
			
		||||
  async ajouterDansConteneur(item, conteneur, onAjouterDansConteneur) {
 | 
			
		||||
    if (!conteneur) {
 | 
			
		||||
      // TODO: afficher
 | 
			
		||||
@@ -553,10 +573,8 @@ export class RdDBaseActor extends Actor {
 | 
			
		||||
    }
 | 
			
		||||
    else if (conteneur.isConteneur()) {
 | 
			
		||||
      item.estContenu = true;
 | 
			
		||||
      await this.updateEmbeddedDocuments('Item', [{
 | 
			
		||||
        _id: conteneur.id,
 | 
			
		||||
        'system.contenu': [...conteneur.system.contenu, item.id]
 | 
			
		||||
      }]);
 | 
			
		||||
      const nouveauContenu = [...conteneur.system.contenu, item.id];
 | 
			
		||||
      await conteneur.update({ 'system.contenu': nouveauContenu });
 | 
			
		||||
      onAjouterDansConteneur(item.id, conteneur.id);
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
@@ -616,19 +634,16 @@ export class RdDBaseActor extends Actor {
 | 
			
		||||
  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)
 | 
			
		||||
      }]);
 | 
			
		||||
      const contenu = conteneur.system.contenu.filter(id => id != item.id);
 | 
			
		||||
      await conteneur.update({ 'system.contenu': contenu });
 | 
			
		||||
      onEnleverDeConteneur();
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  /* -------------------------------------------- */
 | 
			
		||||
  async moveItemsBetweenActors(itemId, sourceActorId) {
 | 
			
		||||
    let itemsList = []
 | 
			
		||||
    let sourceActor = game.actors.get(sourceActorId);
 | 
			
		||||
    itemsList.push({ id: itemId, conteneurId: undefined }); // Init list
 | 
			
		||||
  async moveItemsBetweenActors(itemId, sourceActorId, sourceTokenId) {
 | 
			
		||||
    let sourceActor = RdDBaseActor.getRealActor(sourceActorId, sourceTokenId)
 | 
			
		||||
    let itemsList = [{ id: itemId, conteneurId: undefined }]
 | 
			
		||||
    sourceActor.buildSubConteneurObjetList(itemId, itemsList); // Get itemId list
 | 
			
		||||
 | 
			
		||||
    const itemsDataToCreate = itemsList.map(it => sourceActor.getItem(it.id))
 | 
			
		||||
@@ -641,20 +656,17 @@ export class RdDBaseActor extends Actor {
 | 
			
		||||
    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
 | 
			
		||||
        const newConteneurId = itemMap[item.conteneurId];
 | 
			
		||||
        const newConteneur = this.getItem(newConteneurId);
 | 
			
		||||
        const 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 }]);
 | 
			
		||||
        const nouveauContenu = [...newConteneur.system.contenu, newItemId]
 | 
			
		||||
        await newConteneur.update({ 'system.contenu': nouveauContenu })
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
    for (let item of itemsList) {
 | 
			
		||||
      await sourceActor.deleteEmbeddedDocuments('Item', [item.id]);
 | 
			
		||||
    }
 | 
			
		||||
    const deletedItemIds = itemsList.map(it => it.id)
 | 
			
		||||
    await sourceActor.deleteEmbeddedDocuments('Item', deletedItemIds);
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  _buildMapOldNewId(itemsList, newItems) {
 | 
			
		||||
@@ -689,7 +701,7 @@ export class RdDBaseActor extends Actor {
 | 
			
		||||
  async rollAppelChance() { this.actionImpossible("appel à la chance") }
 | 
			
		||||
  async jetDeMoral() { this.actionImpossible("jet de moral") }
 | 
			
		||||
 | 
			
		||||
  async actionPrincipale(item, onActionItem = async () => { }) { 
 | 
			
		||||
  async actionPrincipale(item, onActionItem = async () => { }) {
 | 
			
		||||
    switch (item.type) {
 | 
			
		||||
      case TYPES.conteneur: return await item.sheet.render(true);
 | 
			
		||||
    }
 | 
			
		||||
 
 | 
			
		||||
@@ -1,14 +1,15 @@
 | 
			
		||||
import { RdDBaseActorReveSheet } from "./base-actor-reve-sheet.js";
 | 
			
		||||
import { RdDBaseActorSangSheet } from "./base-actor-sang-sheet.js";
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Extend the basic ActorSheet with some very simple modifications
 | 
			
		||||
 * @extends {ActorSheet}
 | 
			
		||||
 */
 | 
			
		||||
export class RdDCreatureSheet extends RdDBaseActorReveSheet {
 | 
			
		||||
export class RdDCreatureSheet extends RdDBaseActorSangSheet {
 | 
			
		||||
 | 
			
		||||
  /** @override */
 | 
			
		||||
  static get defaultOptions() {
 | 
			
		||||
    return mergeObject(RdDBaseActorReveSheet.defaultOptions, {
 | 
			
		||||
    return mergeObject(RdDBaseActorSangSheet.defaultOptions, {
 | 
			
		||||
      template: "systems/foundryvtt-reve-de-dragon/templates/actor-creature-sheet.html",
 | 
			
		||||
      width: 640, height: 720
 | 
			
		||||
    });
 | 
			
		||||
 
 | 
			
		||||
@@ -18,12 +18,11 @@ export class RdDCreature extends RdDBaseActorSang {
 | 
			
		||||
  async remiseANeuf() {
 | 
			
		||||
    await this.removeEffects(e => true);
 | 
			
		||||
    await this.supprimerBlessures(it => true);
 | 
			
		||||
    const updates = {
 | 
			
		||||
    await this.update({
 | 
			
		||||
      'system.sante.endurance.value': this.system.sante.endurance.max,
 | 
			
		||||
      'system.sante.vie.value': this.system.sante.vie.max,
 | 
			
		||||
      'system.sante.fatigue.value': 0
 | 
			
		||||
    };
 | 
			
		||||
    await this.update(updates);
 | 
			
		||||
    });
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  async finDeRoundBlessures() {
 | 
			
		||||
@@ -34,8 +33,8 @@ export class RdDCreature extends RdDBaseActorSang {
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  isEffectAllowed(statusId) {
 | 
			
		||||
    return [STATUSES.StatusComma].includes(statusId);
 | 
			
		||||
  isEffectAllowed(effectId) {
 | 
			
		||||
    return [STATUSES.StatusComma].includes(effectId);
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  isEntiteAccordee(attacker) {
 | 
			
		||||
@@ -54,13 +53,11 @@ export class RdDCreature extends RdDBaseActorSang {
 | 
			
		||||
        // déjà accordé
 | 
			
		||||
        return;
 | 
			
		||||
      }
 | 
			
		||||
      resonnance.actors.push(attacker.id);
 | 
			
		||||
      await this.update({ "system.sante.resonnance": resonnance });
 | 
			
		||||
      await this.update({ "system.sante.resonnance": [...resonnance, attacker.id] });
 | 
			
		||||
    }
 | 
			
		||||
    else {
 | 
			
		||||
      super.setEntiteReveAccordee(attacker)
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -45,18 +45,17 @@ export class RdDActorEntiteSheet extends RdDBaseActorReveSheet {
 | 
			
		||||
      const actorId = li.data("actor-id");
 | 
			
		||||
      if (actorId) {
 | 
			
		||||
        const actorResonance = game.actors.get(actorId);
 | 
			
		||||
        RdDUtility.confirmerSuppressionSubacteur(this, actorResonance, li, () => {
 | 
			
		||||
        RdDUtility.confirmSubActeurDelete(this, actorResonance, li, () => {
 | 
			
		||||
          console.log('Delete : ', actorId);
 | 
			
		||||
          this.removeSubacteur(actorId);
 | 
			
		||||
          this.deleteSubActeur(actorId);
 | 
			
		||||
          RdDUtility.slideOnDelete(this, li);
 | 
			
		||||
        });
 | 
			
		||||
      }
 | 
			
		||||
    });
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  async removeSubacteur(actorId) {
 | 
			
		||||
  async deleteSubActeur(actorId) {
 | 
			
		||||
    let newResonances = this.actor.system.sante.resonnance.actors.filter(id => id != actorId);
 | 
			
		||||
    await this.actor.update({ 'system.sante.resonnance.actors': newResonances }, { renderSheet: false });
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -70,8 +70,8 @@ export class RdDEntite extends RdDBaseActorReve {
 | 
			
		||||
    await RdDEncaisser.encaisser(this) 
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  isEffectAllowed(statusId) {
 | 
			
		||||
    return [STATUSES.StatusComma].includes(statusId);
 | 
			
		||||
  isEffectAllowed(effectId) {
 | 
			
		||||
    return [STATUSES.StatusComma].includes(effectId);
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  async onAppliquerJetEncaissement(encaissement, attacker) {
 | 
			
		||||
 
 | 
			
		||||
@@ -6,8 +6,6 @@ export class RdDActorVehiculeSheet extends RdDBaseActorSheet {
 | 
			
		||||
 | 
			
		||||
  /** @override */
 | 
			
		||||
  static get defaultOptions() {
 | 
			
		||||
    RdDUtility.initAfficheContenu();
 | 
			
		||||
 | 
			
		||||
    return mergeObject(RdDBaseActorSheet.defaultOptions, {
 | 
			
		||||
      template: "systems/foundryvtt-reve-de-dragon/templates/actor-vehicule-sheet.html",
 | 
			
		||||
      width: 640, height: 720,
 | 
			
		||||
 
 | 
			
		||||
@@ -14,8 +14,8 @@ export class ChatUtility {
 | 
			
		||||
      case "msg_user_ui_notifications": return ChatUtility.onNotifyUser(sockmsg.data);
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
  
 | 
			
		||||
  
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
  /* -------------------------------------------- */
 | 
			
		||||
  static notifyUser(userId, level = 'info', message) {
 | 
			
		||||
    const socketData = {
 | 
			
		||||
@@ -71,7 +71,7 @@ export class ChatUtility {
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  static removeChatMessageId(messageId) {
 | 
			
		||||
    if (messageId){
 | 
			
		||||
    if (messageId) {
 | 
			
		||||
      ChatUtility.removeMessages({ messageId: messageId });
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
@@ -118,9 +118,10 @@ export class ChatUtility {
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  /* -------------------------------------------- */
 | 
			
		||||
  static getWhisperRecipientsAndGMs(name) {
 | 
			
		||||
    let recep1 = ChatMessage.getWhisperRecipients(name) || [];
 | 
			
		||||
    return recep1.concat(ChatMessage.getWhisperRecipients('GM'));
 | 
			
		||||
  static getWhisperRecipientsAndGMs(...names) {
 | 
			
		||||
    let recipients = [...ChatMessage.getWhisperRecipients('GM')]
 | 
			
		||||
    names.forEach(name => recipients.push(...ChatMessage.getWhisperRecipients(name)))
 | 
			
		||||
    return recipients
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  /* -------------------------------------------- */
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										169
									
								
								module/coeur/rdd-coeur.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										169
									
								
								module/coeur/rdd-coeur.js
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,169 @@
 | 
			
		||||
import { RdDBaseActor } from "../actor/base-actor.js";
 | 
			
		||||
import { ChatUtility } from "../chat-utility.js";
 | 
			
		||||
import { ReglesOptionnelles } from "../settings/regles-optionnelles.js";
 | 
			
		||||
 | 
			
		||||
const INFO_COEUR = 'info-coeur';
 | 
			
		||||
 | 
			
		||||
export class RdDCoeur {
 | 
			
		||||
  static registerChatCallbacks(html) {
 | 
			
		||||
    html.on("click", 'a.accepter-tendre-moment', event => {
 | 
			
		||||
      RdDCoeur.accepterTendreMoment(RdDCoeur.extractInfoCoeur(event))
 | 
			
		||||
    })
 | 
			
		||||
    html.on("click", 'a.refuser-tendre-moment', event => {
 | 
			
		||||
      RdDCoeur.refuserTendreMoment(RdDCoeur.extractInfoCoeur(event))
 | 
			
		||||
    })
 | 
			
		||||
    html.on("click", 'a.perdre-point-coeur-douceur', event => {
 | 
			
		||||
      RdDCoeur.perdreEnDouceur(
 | 
			
		||||
        RdDCoeur.extractInfoCoeur(event),
 | 
			
		||||
        event.currentTarget.attributes['data-actor-id'].value)
 | 
			
		||||
    })
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  static addTagsInfoCoeur(infoCoeur, chatMessage = undefined) {
 | 
			
		||||
    if (chatMessage) {
 | 
			
		||||
      infoCoeur.chatMessageId = chatMessage.id
 | 
			
		||||
    }
 | 
			
		||||
    else {
 | 
			
		||||
      chatMessage = game.messages.get(infoCoeur.chatMessageId)
 | 
			
		||||
    }
 | 
			
		||||
    ChatUtility.setMessageData(chatMessage, INFO_COEUR, infoCoeur);
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  static extractInfoCoeur(event) {
 | 
			
		||||
    return ChatUtility.getMessageData(ChatUtility.getChatMessage(event), INFO_COEUR)
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  static getInfoCoeur(sourceActorId, targetActorId) {
 | 
			
		||||
    const sourceActor = game.actors.get(sourceActorId)
 | 
			
		||||
    const targetActor = game.actors.get(targetActorId)
 | 
			
		||||
    if (sourceActor && targetActor) {
 | 
			
		||||
      return {
 | 
			
		||||
        source: {
 | 
			
		||||
          actor: RdDBaseActor.extractActorMin(sourceActor),
 | 
			
		||||
          coeur: sourceActor.getPointsCoeur(targetActorId),
 | 
			
		||||
        },
 | 
			
		||||
        target: {
 | 
			
		||||
          actor: RdDBaseActor.extractActorMin(targetActor),
 | 
			
		||||
          coeur: targetActor.getPointsCoeur(sourceActorId),
 | 
			
		||||
        }
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
    return {}
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  static async toggleSubActeurCoeur(actorId, subActorId, toggleCoeur) {
 | 
			
		||||
    const actor = game.actors.get(actorId)
 | 
			
		||||
    const amoureux = actor.getSuivant(subActorId)
 | 
			
		||||
    if (toggleCoeur <= amoureux.coeur) {
 | 
			
		||||
      if (toggleCoeur > amoureux.prochainCoeur) {
 | 
			
		||||
        toggleCoeur = amoureux.coeur
 | 
			
		||||
      }
 | 
			
		||||
      else {
 | 
			
		||||
        toggleCoeur = amoureux.coeur - 1
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
    else if (toggleCoeur <= amoureux.prochainCoeur) {
 | 
			
		||||
      toggleCoeur = Math.max(amoureux.coeur, toggleCoeur - 1)
 | 
			
		||||
    }
 | 
			
		||||
    actor.setPointsCoeur(subActorId, Math.max(0, Math.min(toggleCoeur, 4)))
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  static async applyCoeurChateauDormant(actor, message) {
 | 
			
		||||
    const newSuivants = duplicate(actor.system.subacteurs.suivants)
 | 
			
		||||
    let count = 0
 | 
			
		||||
    newSuivants.forEach(async link => {
 | 
			
		||||
      const suivant = game.actors.get(link.id)
 | 
			
		||||
      const prochainCoeur = link.prochainCoeur ?? 0;
 | 
			
		||||
      const coeurCourant = link.coeur ?? 0;
 | 
			
		||||
      const diff = prochainCoeur - coeurCourant
 | 
			
		||||
      if (diff < 0) {
 | 
			
		||||
        await actor.moralIncDec(-4);
 | 
			
		||||
        link.coeur = Math.max(0, coeurCourant - 1)
 | 
			
		||||
        link.prochainCoeur = link.coeur
 | 
			
		||||
        message.content += `<br>Votre cœur brisé pour ${suivant.name} vous fait perdre 4 points de moral, il vous reste  ${link.coeur} points de Cœur.`
 | 
			
		||||
        count++
 | 
			
		||||
      }
 | 
			
		||||
      else if (diff > 0) {
 | 
			
		||||
        link.coeur = Math.min(prochainCoeur, 4)
 | 
			
		||||
        message.content += `<br>Votre cœur bat fort, vous avez maintenant ${link.coeur} points de Cœur pour ${suivant.name}.`
 | 
			
		||||
        link.prochainCoeur = link.coeur
 | 
			
		||||
        count++
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
    )
 | 
			
		||||
    if (count > 0) {
 | 
			
		||||
      await actor.update({ 'system.subacteurs.suivants': newSuivants });
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  static async startSubActeurTendreMoment(actorId, subActeurId) {
 | 
			
		||||
    const infoCoeur = RdDCoeur.getInfoCoeur(actorId, subActeurId)
 | 
			
		||||
    if (infoCoeur.target?.actor.id) {
 | 
			
		||||
      // TODO: passer par une fenêtre pour saisir sa proposition (lieu, heure, ...)
 | 
			
		||||
      const chatHtml = await renderTemplate(`systems/foundryvtt-reve-de-dragon/templates/coeur/chat-proposer-tendre-moment.hbs`, infoCoeur)
 | 
			
		||||
      const chatMessage = await ChatMessage.create({
 | 
			
		||||
        whisper: ChatUtility.getWhisperRecipientsAndGMs(infoCoeur.target?.actor.name),
 | 
			
		||||
        content: chatHtml
 | 
			
		||||
      })
 | 
			
		||||
      RdDCoeur.addTagsInfoCoeur(infoCoeur, chatMessage)
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  static async accepterTendreMoment(infoCoeur) {
 | 
			
		||||
    const target = game.actors.get(infoCoeur.target.actor.id)
 | 
			
		||||
    if (!target.isOwner) {
 | 
			
		||||
      ui.notifications.warn(`vous ne pouvez pas accepter pour ${infoCoeur.target.actor.name}`)
 | 
			
		||||
      return
 | 
			
		||||
    }
 | 
			
		||||
    ChatUtility.removeChatMessageId(infoCoeur.chatMessageId)
 | 
			
		||||
 | 
			
		||||
    infoCoeur.target.jetTendre = (await (new Roll('1d6').evaluate({ async: true }))).total
 | 
			
		||||
    infoCoeur.source.jetTendre = (await (new Roll('1d6').evaluate({ async: true }))).total
 | 
			
		||||
    const diff = Math.abs(infoCoeur.source.jetTendre - infoCoeur.target.jetTendre)
 | 
			
		||||
    for (let amoureux of [infoCoeur.source, infoCoeur.target]) {
 | 
			
		||||
      const actorAmoureux = game.actors.get(amoureux.actor.id);
 | 
			
		||||
      amoureux.situation = diff <= amoureux.coeur ? 'heureux' : 'neutre'
 | 
			
		||||
      amoureux.gainMoral = await actorAmoureux.jetDeMoral(amoureux.situation)
 | 
			
		||||
    }
 | 
			
		||||
    const chatHtml = await renderTemplate(`systems/foundryvtt-reve-de-dragon/templates/coeur/chat-accepter-tendre-moment.hbs`, infoCoeur)
 | 
			
		||||
    const chatMessage = await ChatMessage.create({
 | 
			
		||||
      whisper: ChatUtility.getWhisperRecipientsAndGMs(infoCoeur.source?.actor.name, infoCoeur.target?.actor.name),
 | 
			
		||||
      content: chatHtml
 | 
			
		||||
    })
 | 
			
		||||
    RdDCoeur.addTagsInfoCoeur(infoCoeur, chatMessage)
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  static async refuserTendreMoment(infoCoeur) {
 | 
			
		||||
    const target = game.actors.get(infoCoeur.target.actor.id)
 | 
			
		||||
    if (!target.isOwner) {
 | 
			
		||||
      ui.notifications.warn(`vous ne pouvez pas refuser pour ${infoCoeur.target.actor.name}`)
 | 
			
		||||
      return
 | 
			
		||||
    }
 | 
			
		||||
    ChatUtility.removeChatMessageId(infoCoeur.chatMessageId)
 | 
			
		||||
    const chatHtml = await renderTemplate(`systems/foundryvtt-reve-de-dragon/templates/coeur/chat-refuser-tendre-moment.hbs`, infoCoeur)
 | 
			
		||||
    await ChatMessage.create({
 | 
			
		||||
      whisper: ChatUtility.getWhisperRecipientsAndGMs(infoCoeur.source?.actor.name, infoCoeur.target?.actor.name),
 | 
			
		||||
      content: chatHtml
 | 
			
		||||
    });
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  static async perdreEnDouceur(infoCoeur, actorId) {
 | 
			
		||||
    const [amoureux, partenaire] = (infoCoeur.source.actor.id == actorId
 | 
			
		||||
      ? [infoCoeur.source, infoCoeur.target]
 | 
			
		||||
      : (infoCoeur.target.actor.id == actorId
 | 
			
		||||
        ? [infoCoeur.target, infoCoeur.source]
 | 
			
		||||
        : [undefined, undefined]))
 | 
			
		||||
 | 
			
		||||
    if (amoureux.perteCoeur) {
 | 
			
		||||
      ui.notifications.warn(`Le point de cœur a déjà été perdu`)
 | 
			
		||||
    }
 | 
			
		||||
    else if (amoureux.coeur > 0) {
 | 
			
		||||
      const actor = game.actors.get(actorId)
 | 
			
		||||
      if (actor.isOwner) {
 | 
			
		||||
        await actor.setPointsCoeur(partenaire?.actor.id, amoureux.coeur - 1, { immediat: true })
 | 
			
		||||
        amoureux.perteCoeur = true
 | 
			
		||||
        RdDCoeur.addTagsInfoCoeur(infoCoeur)
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										84
									
								
								module/dialog-choix-xp-carac.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										84
									
								
								module/dialog-choix-xp-carac.js
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,84 @@
 | 
			
		||||
 | 
			
		||||
export class DialogChoixXpCarac extends Dialog {
 | 
			
		||||
 | 
			
		||||
  static async choix(actor, xpData, caracs) {
 | 
			
		||||
    caracs = caracs.map(it => mergeObject({ ajout: 0 }, it))
 | 
			
		||||
    xpData = mergeObject({ reste: xpData.xpCarac }, xpData)
 | 
			
		||||
    const dialogData = {
 | 
			
		||||
      title: `Choisissez la répartition d'expérience`,
 | 
			
		||||
      content: await renderTemplate("systems/foundryvtt-reve-de-dragon/templates/dialog-choix-xp-carac.hbs", {
 | 
			
		||||
        actor,
 | 
			
		||||
        caracDerivee: actor.findCaracByName(xpData.caracName),
 | 
			
		||||
        xpData,
 | 
			
		||||
        caracs
 | 
			
		||||
      }),
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    const dialogOptions = {
 | 
			
		||||
      classes: ["rdd-dialog-select"],
 | 
			
		||||
      width: 400,
 | 
			
		||||
      height: 'fit-content',
 | 
			
		||||
      'z-index': 99999
 | 
			
		||||
    }
 | 
			
		||||
    new DialogChoixXpCarac(dialogData, dialogOptions, actor, xpData, caracs).render(true)
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  constructor(dialogData, dialogOptions, actor, xpData, caracs) {
 | 
			
		||||
    dialogData = mergeObject(dialogData, {
 | 
			
		||||
      default: 'appliquer',
 | 
			
		||||
      buttons: {
 | 
			
		||||
        'appliquer': { icon:'<i class="fa-solid fa-check"></i>', label: "Ajouter la répartition", callback: it => this.appliquerSelection() }
 | 
			
		||||
      }
 | 
			
		||||
    })
 | 
			
		||||
    super(dialogData, dialogOptions)
 | 
			
		||||
    this.actor = actor
 | 
			
		||||
    this.xpData = xpData
 | 
			
		||||
    this.caracs = caracs
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  activateListeners(html) {
 | 
			
		||||
    //TODO
 | 
			
		||||
    super.activateListeners(html)
 | 
			
		||||
    this.html = html
 | 
			
		||||
    this.html.find("li.xpCarac-option .xpCarac-moins").click(event =>
 | 
			
		||||
      this.ajouterXp(event, -1)
 | 
			
		||||
    )
 | 
			
		||||
    this.html.find("li.xpCarac-option .xpCarac-plus").click(event =>
 | 
			
		||||
      this.ajouterXp(event, 1)
 | 
			
		||||
    )
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  async ajouterXp(event, delta) {
 | 
			
		||||
    const liCarac = this.html.find(event.currentTarget)?.parents("li.xpCarac-option")
 | 
			
		||||
    const label = liCarac?.data("carac-label")
 | 
			
		||||
    const carac = this.caracs.find(c => c.label == label)
 | 
			
		||||
    if (carac.ajout + delta < 0) {
 | 
			
		||||
      ui.notifications.warn(`Impossible de diminuer les points à répartir en ${carac.label} en dessous de 0`)
 | 
			
		||||
      return
 | 
			
		||||
    }
 | 
			
		||||
    if (this.xpData.reste - delta < 0) {
 | 
			
		||||
      ui.notifications.warn(`Il ne reste plus de points à répartir en ${carac.label}`)
 | 
			
		||||
      return
 | 
			
		||||
    }
 | 
			
		||||
    carac.ajout += delta
 | 
			
		||||
    this.xpData.reste -= delta
 | 
			
		||||
    liCarac.find("input.xpCarac-view-ajout").val(carac.ajout)
 | 
			
		||||
    this.html.find("input.xpCarac-reste").val(this.xpData.reste)
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  async appliquerSelection() {
 | 
			
		||||
    if (this.xpData.reste > 0) {
 | 
			
		||||
      ui.notifications.warn(`Il vous reste ${this.xpData.reste} points à répartir`)
 | 
			
		||||
      return
 | 
			
		||||
    }
 | 
			
		||||
    this.caracs.filter(c => c.ajout > 0).forEach(c => {
 | 
			
		||||
      const xpData = { caracName: c.label, xpCarac: c.ajout }
 | 
			
		||||
      this.actor._xpCarac(xpData)
 | 
			
		||||
    })
 | 
			
		||||
    await super.close()
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  async close() { }
 | 
			
		||||
 | 
			
		||||
  _getHeaderButtons() { return [] }
 | 
			
		||||
}
 | 
			
		||||
@@ -1,37 +0,0 @@
 | 
			
		||||
 | 
			
		||||
export class DialogSelectTarget extends Dialog {
 | 
			
		||||
  constructor(html, onSelectTarget, targets) {
 | 
			
		||||
    const options = {
 | 
			
		||||
      classes: ["rdd-dialog-select-target"],
 | 
			
		||||
      width: 'fit-content',
 | 
			
		||||
      height: 'fit-content',
 | 
			
		||||
      'max-height': 600,
 | 
			
		||||
      'z-index': 99999
 | 
			
		||||
    };
 | 
			
		||||
    const conf = {
 | 
			
		||||
      title: "Choisir une cible",
 | 
			
		||||
      content: html,
 | 
			
		||||
      buttons: {}
 | 
			
		||||
    };
 | 
			
		||||
    super(conf, options);
 | 
			
		||||
    this.onSelectTarget = onSelectTarget;
 | 
			
		||||
    this.targets = targets;
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  activateListeners(html) {
 | 
			
		||||
    super.activateListeners(html);
 | 
			
		||||
    this.html = html;
 | 
			
		||||
    this.html.find("li.select-target").click((event) => {
 | 
			
		||||
      this.targetSelected(this.html.find(event.currentTarget)?.data("token-id"));
 | 
			
		||||
    });
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
  targetSelected(tokenId) {
 | 
			
		||||
    const target = this.targets.find(it => it.id == tokenId);
 | 
			
		||||
    this.close();
 | 
			
		||||
    if (target) {
 | 
			
		||||
      this.onSelectTarget(target);
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										45
									
								
								module/dialog-select.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										45
									
								
								module/dialog-select.js
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,45 @@
 | 
			
		||||
 | 
			
		||||
export class DialogSelect extends Dialog {
 | 
			
		||||
  static extractIdNameImg(it) { return { id: it.id, name: it.name, img: it.img } }
 | 
			
		||||
 | 
			
		||||
  static async select(selectData, onSelectChoice) {
 | 
			
		||||
    const html = await renderTemplate("systems/foundryvtt-reve-de-dragon/templates/dialog-select.html", selectData)
 | 
			
		||||
 | 
			
		||||
    const dialogData = {
 | 
			
		||||
      title: selectData.title ?? selectData.label,
 | 
			
		||||
      content: html,
 | 
			
		||||
      buttons: {}
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    const dialogOptions = {
 | 
			
		||||
      classes: ["rdd-dialog-select"],
 | 
			
		||||
      width: 'fit-content',
 | 
			
		||||
      height: 'fit-content',
 | 
			
		||||
      'max-height': 600,
 | 
			
		||||
      'z-index': 99999
 | 
			
		||||
    }
 | 
			
		||||
    new DialogSelect(dialogData, dialogOptions, selectData, onSelectChoice).render(true)
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  constructor(dialogData, dialogOptions, selectionData, onSelectChoice) {
 | 
			
		||||
    super(dialogData, dialogOptions)
 | 
			
		||||
    this.selectionData = selectionData
 | 
			
		||||
    this.onSelectChoice = onSelectChoice
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  activateListeners(html) {
 | 
			
		||||
    super.activateListeners(html)
 | 
			
		||||
    this.html = html
 | 
			
		||||
    this.html.find("li.select-choice").click(event =>
 | 
			
		||||
      this.choiceSelected(this.html.find(event.currentTarget)?.data("id"))
 | 
			
		||||
    )
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  choiceSelected(selectedId) {
 | 
			
		||||
    const selected = this.selectionData.find(it => it.id == selectedId)
 | 
			
		||||
    this.close()
 | 
			
		||||
    if (selected) {
 | 
			
		||||
      this.onSelectChoice(selected)
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
@@ -166,7 +166,11 @@ export class RdDItemArme extends Item {
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  static isArmeUtilisable(arme) {
 | 
			
		||||
    return arme.type == TYPES.arme && arme.system.equipe && (arme.system.resistance > 0 || arme.system.portee_courte > 0);
 | 
			
		||||
    switch (arme.type) {
 | 
			
		||||
      case TYPES.arme: return arme.system.equipe && (arme.system.resistance > 0 || arme.system.portee_courte > 0)
 | 
			
		||||
      case TYPES.competencecreature: return true
 | 
			
		||||
    }
 | 
			
		||||
    return false
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  static ajoutCorpsACorps(armes, actor) {
 | 
			
		||||
 
 | 
			
		||||
@@ -22,6 +22,10 @@ export class Misc {
 | 
			
		||||
    const isPositiveNumber = value != NaN && value > 0;
 | 
			
		||||
    return isPositiveNumber ? "+" + number : number
 | 
			
		||||
  }
 | 
			
		||||
  
 | 
			
		||||
  static modulo(n, m) {
 | 
			
		||||
    return ((n % m) + m) % m;
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  static sum() {
 | 
			
		||||
    return (a, b) => Number(a) + Number(b);
 | 
			
		||||
@@ -205,6 +209,7 @@ export class Misc {
 | 
			
		||||
 | 
			
		||||
    const subset = this.findAllLike(value, elements, options);
 | 
			
		||||
    if (subset.length == 0) {
 | 
			
		||||
      console.log(`Aucune ${options.description} pour ${value}`);
 | 
			
		||||
      return undefined
 | 
			
		||||
    }
 | 
			
		||||
    if (subset.length == 1) {
 | 
			
		||||
 
 | 
			
		||||
@@ -19,10 +19,6 @@ export class RdDBonus {
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
  static isAjustementAstrologique(rollData) {
 | 
			
		||||
    return RdDCarac.isChance(rollData.selectedCarac) ||
 | 
			
		||||
      rollData.selectedSort?.system.isrituel;
 | 
			
		||||
  }
 | 
			
		||||
  /* -------------------------------------------- */
 | 
			
		||||
  static isDefenseAttaqueFinesse(rollData) {
 | 
			
		||||
    if (rollData.isEmpoignade && rollData.rolled?.isPart) {
 | 
			
		||||
@@ -36,20 +32,18 @@ export class RdDBonus {
 | 
			
		||||
 | 
			
		||||
  /* -------------------------------------------- */
 | 
			
		||||
  static dmg(rollData, dmgActor, isEntiteIncarnee = false) {
 | 
			
		||||
    let dmg = { total: 0 };
 | 
			
		||||
    if (rollData.arme && rollData.arme.name.toLowerCase() == "esquive") {
 | 
			
		||||
      // Specific case management
 | 
			
		||||
      ui.notifications.warn("Calcul de bonus dégats sur esquive !");
 | 
			
		||||
    } else {
 | 
			
		||||
      dmg.dmgArme = RdDBonus._dmgArme(rollData);
 | 
			
		||||
      dmg.penetration = RdDBonus._peneration(rollData);
 | 
			
		||||
      dmg.dmgTactique = RdDBonus.dmgBonus(rollData.tactique);
 | 
			
		||||
      dmg.dmgParticuliere = RdDBonus._dmgParticuliere(rollData);
 | 
			
		||||
      dmg.dmgSurprise = RdDBonus.dmgBonus(rollData.ajustements?.attaqueDefenseurSurpris.used);
 | 
			
		||||
      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.mortalite = RdDBonus._calculMortalite(rollData, isEntiteIncarnee)
 | 
			
		||||
    const dmgArme = RdDBonus._dmgArme(rollData)
 | 
			
		||||
    let dmg = {
 | 
			
		||||
      total: 0,
 | 
			
		||||
      dmgArme: dmgArme,
 | 
			
		||||
      penetration: RdDBonus._peneration(rollData),
 | 
			
		||||
      dmgTactique: RdDBonus.dmgBonus(rollData.tactique),
 | 
			
		||||
      dmgParticuliere: RdDBonus._dmgParticuliere(rollData),
 | 
			
		||||
      dmgSurprise: RdDBonus.dmgBonus(rollData.ajustements?.attaqueDefenseurSurpris.used),
 | 
			
		||||
      mortalite: RdDBonus._calculMortalite(rollData, isEntiteIncarnee),
 | 
			
		||||
      dmgActor: RdDBonus._dmgPerso(dmgActor, rollData.selectedCarac?.label, dmgArme)
 | 
			
		||||
    }
 | 
			
		||||
    dmg.total = dmg.dmgSurprise + dmg.dmgTactique + dmg.dmgArme + dmg.dmgActor + dmg.dmgParticuliere;
 | 
			
		||||
    return dmg;
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
@@ -93,6 +87,9 @@ export class RdDBonus {
 | 
			
		||||
 | 
			
		||||
  /* -------------------------------------------- */
 | 
			
		||||
  static _dmgPerso(dmgActor, categorie, dmgArme) {
 | 
			
		||||
    if (categorie == undefined) {
 | 
			
		||||
      return 0
 | 
			
		||||
    }
 | 
			
		||||
    switch (categorie) {
 | 
			
		||||
      case "Tir": return 0;
 | 
			
		||||
      case "Lancer": return Math.max(0, Math.min(dmgArme, dmgActor));
 | 
			
		||||
 
 | 
			
		||||
@@ -328,8 +328,8 @@ export class RdDCombatManager extends Combat {
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
    options = [
 | 
			
		||||
      { name: "Incrémenter initiative", condition: true, icon: '<i class="fas fa-plus"></i>', callback: target => { RdDCombatManager.incDecInit(target.data('combatant-id'), +0.01); } },
 | 
			
		||||
      { name: "Décrémenter initiative", condition: true, icon: '<i class="fas fa-minus"></i>', callback: target => { RdDCombatManager.incDecInit(target.data('combatant-id'), -0.01); } }
 | 
			
		||||
      { name: "Incrémenter initiative", condition: true, icon: '<i class="fa-solid fa-plus"></i>', callback: target => { RdDCombatManager.incDecInit(target.data('combatant-id'), +0.01); } },
 | 
			
		||||
      { name: "Décrémenter initiative", condition: true, icon: '<i class="fa-solid fa-minus"></i>', callback: target => { RdDCombatManager.incDecInit(target.data('combatant-id'), -0.01); } }
 | 
			
		||||
    ].concat(options);
 | 
			
		||||
  }
 | 
			
		||||
  /* -------------------------------------------- */
 | 
			
		||||
@@ -515,7 +515,7 @@ export class RdDCombat {
 | 
			
		||||
  static _callJetDeVie(event) {
 | 
			
		||||
    let actorId = event.currentTarget.attributes['data-actorId'].value;
 | 
			
		||||
    let tokenId = event.currentTarget.attributes['data-tokenId'].value;
 | 
			
		||||
    let token = canvas.tokens.placeables.find(t => t.id == tokenId)
 | 
			
		||||
    let token = canvas.tokens.get(tokenId)
 | 
			
		||||
    const actor = token?.actor ?? game.actors.get(actorId);
 | 
			
		||||
    if (actor?.isOwner) {
 | 
			
		||||
      actor.jetDeVie();
 | 
			
		||||
 
 | 
			
		||||
@@ -73,9 +73,10 @@ import { RdDTMRDialog } from "./rdd-tmr-dialog.js";
 | 
			
		||||
export class SystemReveDeDragon {
 | 
			
		||||
 | 
			
		||||
  static start() {
 | 
			
		||||
    const system = new SystemReveDeDragon();
 | 
			
		||||
    Hooks.once('init', async () => await system.onInit());
 | 
			
		||||
    Hooks.once('diceSoNiceReady', (dice3d) => RdDDice.diceSoNiceReady(dice3d));
 | 
			
		||||
    const system = new SystemReveDeDragon()
 | 
			
		||||
    Hooks.once('init', async () => await system.onInit())
 | 
			
		||||
    Hooks.once('diceSoNiceReady', (dice3d) => RdDDice.diceSoNiceReady(dice3d))
 | 
			
		||||
    Hooks.once('ready', () => system.onReady())
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  constructor() {
 | 
			
		||||
@@ -208,7 +209,6 @@ export class SystemReveDeDragon {
 | 
			
		||||
    TMRRencontres.init();
 | 
			
		||||
    Environnement.init();
 | 
			
		||||
 | 
			
		||||
    Hooks.once('ready', () => this.onReady());
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  initSystemSettings() {
 | 
			
		||||
 
 | 
			
		||||
@@ -22,7 +22,7 @@ export class RdDRoll extends Dialog {
 | 
			
		||||
 | 
			
		||||
    const html = await renderTemplate(dialogConfig.html, rollData);
 | 
			
		||||
 | 
			
		||||
    let options = { classes: ["rdd-roll-dialog"], width: 650, height: 'fit-content', 'z-index': 99999, close: html => {} };
 | 
			
		||||
    let options = { classes: ["rdd-roll-dialog"], width: 650, height: 'fit-content', 'z-index': 99999, close: html => { } };
 | 
			
		||||
    if (dialogConfig.close) {
 | 
			
		||||
      options.close = dialogConfig.close;
 | 
			
		||||
    }
 | 
			
		||||
@@ -37,14 +37,17 @@ export class RdDRoll extends Dialog {
 | 
			
		||||
      difficultesLibres: CONFIG.RDD.difficultesLibres,
 | 
			
		||||
      etat: actor.getEtatGeneral(),
 | 
			
		||||
      moral: actor.getMoralTotal(), /* La valeur du moral pour les jets de volonté */
 | 
			
		||||
      amoureux: actor.listeSuivants(it => it.coeur > 0),
 | 
			
		||||
      carac: actor.system.carac,
 | 
			
		||||
      finalLevel: 0,
 | 
			
		||||
      diffConditions: 0,
 | 
			
		||||
      diffLibre: rollData.competence?.system.default_diffLibre ?? 0,
 | 
			
		||||
      perteMoralEchec: false, /* Pour l'affichage dans le chat */
 | 
			
		||||
      use: {
 | 
			
		||||
        astrologique: true,
 | 
			
		||||
        moral: false, /* Est-ce que le joueur demande d'utiliser le moral ? Utile si le joueur change plusieurs fois de carac associée. */
 | 
			
		||||
        libre: true,
 | 
			
		||||
        coeur: undefined,
 | 
			
		||||
        conditions: true,
 | 
			
		||||
        surenc: actor.isSurenc(),
 | 
			
		||||
        encTotal: true
 | 
			
		||||
@@ -174,6 +177,15 @@ export class RdDRoll extends Dialog {
 | 
			
		||||
      this.rollData.competence = this.rollData.competences.find(it => it.name == competence);
 | 
			
		||||
      this.updateRollResult(html);
 | 
			
		||||
    });
 | 
			
		||||
    this.html.find('.select-suivant-coeur').change((event) => {
 | 
			
		||||
      const selectedActorId = event.currentTarget.value;
 | 
			
		||||
      this.rollData.use.coeur = this.actor.getSuivant(selectedActorId)
 | 
			
		||||
      if (this.rollData.use.coeur) {
 | 
			
		||||
        this.html.find(".utilisation-coeur img.selected-suivant-coeur").attr('src', this.rollData.use.coeur?.img)
 | 
			
		||||
        this.html.find(".utilisation-coeur img.selected-suivant-coeur").attr('title', this.rollData.use.coeur?.name)
 | 
			
		||||
      }
 | 
			
		||||
      this.updateRollResult(html);
 | 
			
		||||
    });
 | 
			
		||||
    this.html.find('.roll-signedraconique').change((event) => {
 | 
			
		||||
      let sortKey = Misc.toInt(event.currentTarget.value);
 | 
			
		||||
      this.setSelectedSigneDraconique(this.rollData.signes[sortKey]);
 | 
			
		||||
@@ -203,6 +215,10 @@ export class RdDRoll extends Dialog {
 | 
			
		||||
      this.rollData[attribute] = event.currentTarget.checked;
 | 
			
		||||
      this.updateRollResult(html);
 | 
			
		||||
    });
 | 
			
		||||
    this.html.find('input.use-astrologique').change((event) => {
 | 
			
		||||
      this.rollData.use.astrologique = event.currentTarget.checked;
 | 
			
		||||
      this.updateRollResult(html);
 | 
			
		||||
    });
 | 
			
		||||
    this.html.find('input.use-encTotal').change((event) => {
 | 
			
		||||
      this.rollData.use.encTotal = event.currentTarget.checked;
 | 
			
		||||
      this.updateRollResult(html);
 | 
			
		||||
@@ -300,17 +316,20 @@ export class RdDRoll extends Dialog {
 | 
			
		||||
 | 
			
		||||
    const resolutionTable = await RdDResolutionTable.buildHTMLTable(RdDResolutionTable.subTable(rollData.caracValue, rollData.finalLevel))
 | 
			
		||||
    const adjustements = await this.buildAjustements(rollData);
 | 
			
		||||
    
 | 
			
		||||
 | 
			
		||||
    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-astrologique"), rollData.ajustements.astrologique.visible);
 | 
			
		||||
    HtmlUtility.showControlWhen(this.html.find(".utilisation-moral"), rollData.use.appelAuMoral);
 | 
			
		||||
    HtmlUtility.showControlWhen(this.html.find(".divAppelAuMoral"), rollData.use.appelAuMoral);
 | 
			
		||||
    HtmlUtility.showControlWhen(this.html.find(".utilisation-coeur"), rollData.ajustements.coeur.visible);
 | 
			
		||||
    HtmlUtility.showControlWhen(this.html.find(".utilisation-coeur img.selected-suivant-coeur"), rollData.ajustements.coeur.visible && rollData.use.coeur != undefined)
 | 
			
		||||
    // HtmlUtility.showControlWhen(this.html.find(".diffMoral"), rollData.ajustements.moral.used);
 | 
			
		||||
 | 
			
		||||
    // Mise à jour valeurs
 | 
			
		||||
    this.html.find(".dialog-roll-title").text(this._getTitle(rollData));
 | 
			
		||||
    this.html.find("input.check-mortalite").prop('checked', rollData.dmg.mortalite == 'non-mortel');
 | 
			
		||||
    this.html.find("label.dmg-arme-actor").text(rollData.dmg.mortalite == 'empoignade'? 'empoignade': Misc.toSignedString(rollData.dmg.total) );
 | 
			
		||||
    this.html.find("label.dmg-arme-actor").text(rollData.dmg.mortalite == 'empoignade' ? 'empoignade' : Misc.toSignedString(rollData.dmg.total));
 | 
			
		||||
    this.html.find("label.arme-mortalite").text(rollData.dmg.mortalite);
 | 
			
		||||
    // this.html.find("[name='dmg-arme-actor']").text(rollData.dmg.mortalite == 'empoignade'? 'empoignade': Misc.toSignedString(rollData.dmg.total) );
 | 
			
		||||
    // this.html.find("[name='arme-mortalite']").text(rollData.dmg.mortalite);
 | 
			
		||||
 
 | 
			
		||||
@@ -43,11 +43,17 @@ export class RdDSheetUtility {
 | 
			
		||||
      item = await RdDItem.getCorrespondingItem(item);
 | 
			
		||||
    }
 | 
			
		||||
    if (actor.canReceive(item)) {
 | 
			
		||||
      if (!actor.prototypeToken.actorLink && actor.token) {
 | 
			
		||||
        ui.notifications.warn(`Impossible de donner ${item.name} à ${actor.name}, c'est un acteur temporaire
 | 
			
		||||
          <br>La suppression de son token entraînera la perte définitive de ${item.name}.`)
 | 
			
		||||
        return
 | 
			
		||||
      }
 | 
			
		||||
      return {
 | 
			
		||||
        destId: destItemId,
 | 
			
		||||
        targetActorId: actor.id,
 | 
			
		||||
        itemId: item.id,
 | 
			
		||||
        sourceActorId: item.actor?.id,
 | 
			
		||||
        sourceTokenId: item.actor?.token?.id,
 | 
			
		||||
        srcId: objetVersConteneur[item.id],
 | 
			
		||||
        onEnleverConteneur: () => { delete objetVersConteneur[item.id]; },
 | 
			
		||||
        onAjouterDansConteneur: (itemId, conteneurId) => { objetVersConteneur[itemId] = conteneurId; }
 | 
			
		||||
 
 | 
			
		||||
@@ -17,6 +17,7 @@ import { STATUSES } from "./settings/status-effects.js";
 | 
			
		||||
import { RdDRencontre } from "./item/rencontre.js";
 | 
			
		||||
import { RdDTimestamp } from "./time/rdd-timestamp.js";
 | 
			
		||||
import { TYPES } from "./item.js";
 | 
			
		||||
import { Misc } from "./misc.js";
 | 
			
		||||
 | 
			
		||||
const TMR_DISPLAY_SIZE = {
 | 
			
		||||
  code: 'tmr-display-size',
 | 
			
		||||
@@ -86,16 +87,13 @@ export class RdDTMRDialog extends Dialog {
 | 
			
		||||
      this._tellToGM(this.actor.name + " monte dans les terres médianes (" + tmrData.mode + ")");
 | 
			
		||||
    }
 | 
			
		||||
    this.callbacksOnAnimate = [];
 | 
			
		||||
    this.resizePixiTMR(
 | 
			
		||||
      TMR_DISPLAY_SIZE.clamp(game.settings.get(SYSTEM_RDD, TMR_DISPLAY_SIZE.code) ?? TMR_DISPLAY_SIZE.def)
 | 
			
		||||
    )
 | 
			
		||||
    const displaySize = TMR_DISPLAY_SIZE.clamp(game.settings.get(SYSTEM_RDD, TMR_DISPLAY_SIZE.code) ?? TMR_DISPLAY_SIZE.def);
 | 
			
		||||
    this.pixiTMR = new PixiTMR(this, displaySize);
 | 
			
		||||
    this.resizePixiTMR(displaySize)
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  resizePixiTMR(displaySize) {
 | 
			
		||||
    if (displaySize != this.displaySize) {
 | 
			
		||||
      if (!this.pixiTMR) {
 | 
			
		||||
        this.pixiTMR = new PixiTMR(this, displaySize);
 | 
			
		||||
      }
 | 
			
		||||
      this.displaySize = displaySize
 | 
			
		||||
      this.pixiTMR.resizeTMR(displaySize);
 | 
			
		||||
      this._removeTokens()
 | 
			
		||||
@@ -144,7 +142,7 @@ export class RdDTMRDialog extends Dialog {
 | 
			
		||||
    // Le reste...
 | 
			
		||||
    this.updateValuesDisplay();
 | 
			
		||||
  }
 | 
			
		||||
  
 | 
			
		||||
 | 
			
		||||
  async onDeplacement() {
 | 
			
		||||
    await this.manageRencontre(TMRUtility.getTMR(this._getCoordActor()));
 | 
			
		||||
  }
 | 
			
		||||
@@ -165,9 +163,11 @@ export class RdDTMRDialog extends Dialog {
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  async forceTMRDisplay() {
 | 
			
		||||
    this.bringToTop()
 | 
			
		||||
    if (this.subdialog?.bringToTop) {
 | 
			
		||||
      this.subdialog.bringToTop();
 | 
			
		||||
    if (this.rendered) {
 | 
			
		||||
      this.bringToTop()
 | 
			
		||||
      if (this.subdialog?.bringToTop) {
 | 
			
		||||
        this.subdialog.bringToTop();
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
@@ -250,26 +250,21 @@ export class RdDTMRDialog extends Dialog {
 | 
			
		||||
 | 
			
		||||
  /* -------------------------------------------- */
 | 
			
		||||
  _getTokensCasesTmr() {
 | 
			
		||||
    return this.casesSpeciales.map(c => this._tokenCaseSpeciale(c)).filter(token => token);
 | 
			
		||||
  }
 | 
			
		||||
  _getTokensRencontres() {
 | 
			
		||||
    return this.rencontresExistantes.map(it => this._tokenRencontre(it));
 | 
			
		||||
  }
 | 
			
		||||
  _getTokensSortsReserve() {
 | 
			
		||||
    return this.actor.itemTypes[TYPES.sortreserve].map(it => this._tokenSortEnReserve(it));
 | 
			
		||||
    return Misc.concat(this.casesSpeciales.map(caseSpeciale =>
 | 
			
		||||
      Draconique.get(caseSpeciale.system.specific)?.token(this.pixiTMR, caseSpeciale, () => caseSpeciale.system.coord)
 | 
			
		||||
    ))
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  /* -------------------------------------------- */
 | 
			
		||||
  _tokenRencontre(rencontre) {
 | 
			
		||||
    return EffetsDraconiques.rencontre.token(this.pixiTMR, rencontre, () => rencontre.system.coord);
 | 
			
		||||
  _getTokensRencontres() {
 | 
			
		||||
    return Misc.concat(this.rencontresExistantes.map(rencontre =>
 | 
			
		||||
      EffetsDraconiques.rencontre.tokens(this.pixiTMR, rencontre, () => rencontre.system.coord)
 | 
			
		||||
    ))
 | 
			
		||||
  }
 | 
			
		||||
  _tokenCaseSpeciale(casetmr) {
 | 
			
		||||
    const caseData = casetmr;
 | 
			
		||||
    const draconique = Draconique.get(caseData.system.specific);
 | 
			
		||||
    return draconique?.token(this.pixiTMR, caseData, () => caseData.system.coord);
 | 
			
		||||
  }
 | 
			
		||||
  _tokenSortEnReserve(sortReserve) {
 | 
			
		||||
    return EffetsDraconiques.sortReserve.token(this.pixiTMR, sortReserve, () => sortReserve.system.coord);
 | 
			
		||||
 | 
			
		||||
  _getTokensSortsReserve() {
 | 
			
		||||
    const sortsReserve = this.actor.itemTypes[TYPES.sortreserve];
 | 
			
		||||
    return Misc.concat(sortsReserve.map(sortReserve =>
 | 
			
		||||
      EffetsDraconiques.sortReserve.tokens(this.pixiTMR, sortReserve, () => sortReserve.system.coord)))
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  _tokenDemiReve() {
 | 
			
		||||
@@ -334,13 +329,10 @@ export class RdDTMRDialog extends Dialog {
 | 
			
		||||
 | 
			
		||||
  /* -------------------------------------------- */
 | 
			
		||||
  async close() {
 | 
			
		||||
    
 | 
			
		||||
    if (this.subdialog) {
 | 
			
		||||
      return this.forceTMRContinueAction()
 | 
			
		||||
    }
 | 
			
		||||
    
 | 
			
		||||
    this.descenteTMR = true;
 | 
			
		||||
    this.pixiTMR.close()
 | 
			
		||||
    if (this.actor.tmrApp) {
 | 
			
		||||
      this.actor.tmrApp = undefined; // Cleanup reference
 | 
			
		||||
      if (!this.viewOnly) {
 | 
			
		||||
@@ -351,6 +343,8 @@ export class RdDTMRDialog extends Dialog {
 | 
			
		||||
        this.cumulFatigue)
 | 
			
		||||
    }
 | 
			
		||||
    await super.close();
 | 
			
		||||
    this.pixiTMR.close()
 | 
			
		||||
    this.pixiTMR = undefined
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  /* -------------------------------------------- */
 | 
			
		||||
@@ -585,7 +579,7 @@ export class RdDTMRDialog extends Dialog {
 | 
			
		||||
    }
 | 
			
		||||
    this.descenteTMR = false;
 | 
			
		||||
    this.currentRencontre = undefined;
 | 
			
		||||
    if (this._presentCite(tmr)) {
 | 
			
		||||
    if (await this._presentCite(tmr)) {
 | 
			
		||||
      return;
 | 
			
		||||
    }
 | 
			
		||||
    this.currentRencontre = await this._jetDeRencontre(tmr);
 | 
			
		||||
@@ -596,7 +590,7 @@ export class RdDTMRDialog extends Dialog {
 | 
			
		||||
      }
 | 
			
		||||
      else {
 | 
			
		||||
        const dialog = new RdDTMRRencontreDialog(this.actor, this.currentRencontre, tmr);
 | 
			
		||||
        dialog.render(true);
 | 
			
		||||
        await dialog.render(true);
 | 
			
		||||
        this.setTMRPendingAction(dialog);
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
@@ -606,11 +600,11 @@ export class RdDTMRDialog extends Dialog {
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  /* -------------------------------------------- */
 | 
			
		||||
  _presentCite(tmr) {
 | 
			
		||||
  async _presentCite(tmr) {
 | 
			
		||||
    const presentCite = this.casesSpeciales.find(c => EffetsDraconiques.presentCites.isCase(c, tmr.coord));
 | 
			
		||||
    if (presentCite) {
 | 
			
		||||
      const caseData = presentCite;
 | 
			
		||||
      const dialog = EffetsDraconiques.presentCites.choisirUnPresent(caseData, present => {
 | 
			
		||||
      const dialog = await EffetsDraconiques.presentCites.choisirUnPresent(caseData, present => {
 | 
			
		||||
        this._utiliserPresentCite(presentCite, present, tmr)
 | 
			
		||||
        this.restoreTMRAfterAction();
 | 
			
		||||
      });
 | 
			
		||||
@@ -1088,7 +1082,7 @@ export class RdDTMRDialog extends Dialog {
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  async notifierResonanceSigneDraconique(coord) {
 | 
			
		||||
    if (this.actor.isResonanceSigneDraconique(coord)) {
 | 
			
		||||
    if (!this.viewOnly && this.actor.isResonanceSigneDraconique(coord)) {
 | 
			
		||||
      ChatMessage.create({
 | 
			
		||||
        whisper: ChatUtility.getWhisperRecipientsAndGMs(game.user.name),
 | 
			
		||||
        content: await renderTemplate(`systems/foundryvtt-reve-de-dragon/templates/chat-signe-draconique-resonance.html`, { alias: this.actor.name, typeTMR: TMRUtility.getTMRType(coord) })
 | 
			
		||||
@@ -1130,6 +1124,9 @@ export class RdDTMRDialog extends Dialog {
 | 
			
		||||
 | 
			
		||||
  /* -------------------------------------------- */
 | 
			
		||||
  _trackToken(token) {
 | 
			
		||||
    if (!token) {
 | 
			
		||||
      return
 | 
			
		||||
    }
 | 
			
		||||
    if (this.demiReve === token && this.isDemiReveCache()) {
 | 
			
		||||
      return;
 | 
			
		||||
    }
 | 
			
		||||
 
 | 
			
		||||
@@ -90,7 +90,6 @@ export class RdDTokenHud {
 | 
			
		||||
    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',
 | 
			
		||||
 
 | 
			
		||||
@@ -17,6 +17,7 @@ import { RdDTimestamp } from "./time/rdd-timestamp.js";
 | 
			
		||||
import { RdDRaretes } from "./item/raretes.js";
 | 
			
		||||
import { RdDEmpoignade } from "./rdd-empoignade.js";
 | 
			
		||||
import { ExperienceLog } from "./actor/experience-log.js";
 | 
			
		||||
import { RdDCoeur } from "./coeur/rdd-coeur.js";
 | 
			
		||||
 | 
			
		||||
/* -------------------------------------------- */
 | 
			
		||||
// This table starts at 0 -> niveau -10
 | 
			
		||||
@@ -75,22 +76,22 @@ const nomEthylisme = ["Emeché", "Gris", "Pinté", "Pas frais", "Ivre", "Bu", "C
 | 
			
		||||
/* -------------------------------------------- */
 | 
			
		||||
const definitionsEncaissement = {
 | 
			
		||||
  "mortel": [
 | 
			
		||||
    { minimum: undefined, maximum: 0, endurance: "0", vie: "0", gravite: -1},
 | 
			
		||||
    { minimum: 1, maximum: 10, endurance: "1d4", vie: "0", gravite: 0},
 | 
			
		||||
    { minimum: 11, maximum: 15, endurance: "1d6", vie: "0", gravite: 2},
 | 
			
		||||
    { minimum: 16, maximum: 19, endurance: "2d6", vie: "2", gravite: 4},
 | 
			
		||||
    { minimum: 20, maximum: undefined, endurance: "100", vie: "4 + @over20", gravite: 6},
 | 
			
		||||
    { minimum: undefined, maximum: 0, endurance: "0", vie: "0", gravite: -1 },
 | 
			
		||||
    { minimum: 1, maximum: 10, endurance: "1d4", vie: "0", gravite: 0 },
 | 
			
		||||
    { minimum: 11, maximum: 15, endurance: "1d6", vie: "0", gravite: 2 },
 | 
			
		||||
    { minimum: 16, maximum: 19, endurance: "2d6", vie: "2", gravite: 4 },
 | 
			
		||||
    { minimum: 20, maximum: undefined, endurance: "100", vie: "4 + @over20", gravite: 6 },
 | 
			
		||||
  ],
 | 
			
		||||
  "non-mortel": [
 | 
			
		||||
    { minimum: undefined, maximum: 0, endurance: "0", vie: "0", gravite: -1},
 | 
			
		||||
    { minimum: undefined, maximum: 0, endurance: "0", vie: "0", gravite: -1 },
 | 
			
		||||
    { minimum: 1, maximum: 10, endurance: "1d4", vie: "0", gravite: 0 },
 | 
			
		||||
    { minimum: 11, maximum: 15, endurance: "1d6", vie: "0", gravite: 0 },
 | 
			
		||||
    { minimum: 16, maximum: 19, endurance: "2d6", vie: "0", gravite: 2 },
 | 
			
		||||
    { minimum: 20, maximum: undefined, endurance: "100", vie: "0", gravite: 2 },
 | 
			
		||||
  ],
 | 
			
		||||
  "entiteincarnee": [
 | 
			
		||||
    { minimum: undefined, maximum: 0, endurance: "0", vie: "0", gravite: -1},
 | 
			
		||||
    { minimum: 1, maximum: 10, endurance: "1d4", vie: "0", gravite: 0},
 | 
			
		||||
    { minimum: undefined, maximum: 0, endurance: "0", vie: "0", gravite: -1 },
 | 
			
		||||
    { minimum: 1, maximum: 10, endurance: "1d4", vie: "0", gravite: 0 },
 | 
			
		||||
    { minimum: 11, maximum: 15, endurance: "1d6", vie: "0", gravite: 0 },
 | 
			
		||||
    { minimum: 16, maximum: 19, endurance: "2d6", vie: "0", gravite: 0 },
 | 
			
		||||
    { minimum: 20, maximum: undefined, endurance: "3d6 + @over20", vie: "0", gravite: 0 },
 | 
			
		||||
@@ -99,7 +100,8 @@ const definitionsEncaissement = {
 | 
			
		||||
 | 
			
		||||
/* -------------------------------------------- */
 | 
			
		||||
export class RdDUtility {
 | 
			
		||||
 | 
			
		||||
  // persistent handling of conteneur show/hide
 | 
			
		||||
  static afficheContenu = {}
 | 
			
		||||
  /* -------------------------------------------- */
 | 
			
		||||
  static async init() {
 | 
			
		||||
    Hooks.on("renderChatMessage", async (app, html, msg) => RdDUtility.onRenderChatMessage(app, html, msg));
 | 
			
		||||
@@ -165,9 +167,9 @@ export class RdDUtility {
 | 
			
		||||
      'systems/foundryvtt-reve-de-dragon/templates/actor/inventaire.html',
 | 
			
		||||
      'systems/foundryvtt-reve-de-dragon/templates/actor/inventaire-item.html',
 | 
			
		||||
      "systems/foundryvtt-reve-de-dragon/templates/actor/inventaire-monnaie.html",
 | 
			
		||||
      'systems/foundryvtt-reve-de-dragon/templates/actor/liens-animaux.html',
 | 
			
		||||
      'systems/foundryvtt-reve-de-dragon/templates/actor/liens-suivants.html',
 | 
			
		||||
      'systems/foundryvtt-reve-de-dragon/templates/actor/liens-vehicules.html',
 | 
			
		||||
      'systems/foundryvtt-reve-de-dragon/templates/actor/liens-animaux.hbs',
 | 
			
		||||
      'systems/foundryvtt-reve-de-dragon/templates/actor/liens-suivants.hbs',
 | 
			
		||||
      'systems/foundryvtt-reve-de-dragon/templates/actor/liens-vehicules.hbs',
 | 
			
		||||
      'systems/foundryvtt-reve-de-dragon/templates/actor/commerce-inventaire.html',
 | 
			
		||||
      'systems/foundryvtt-reve-de-dragon/templates/actor/commerce-inventaire-item.html',
 | 
			
		||||
      //Items
 | 
			
		||||
@@ -202,6 +204,8 @@ export class RdDUtility {
 | 
			
		||||
      'systems/foundryvtt-reve-de-dragon/templates/enum-tmr-effet.html',
 | 
			
		||||
      'systems/foundryvtt-reve-de-dragon/templates/enum-tmr-type.html',
 | 
			
		||||
      // Partials
 | 
			
		||||
      'systems/foundryvtt-reve-de-dragon/templates/coeur/chat-effet-tendre-moment.hbs',
 | 
			
		||||
      'systems/foundryvtt-reve-de-dragon/templates/coeur/afficher-coeur.hbs',
 | 
			
		||||
      'systems/foundryvtt-reve-de-dragon/templates/tirage/liste-resultats-recherche.hbs',
 | 
			
		||||
      'systems/foundryvtt-reve-de-dragon/templates/time/horloge.hbs',
 | 
			
		||||
      'systems/foundryvtt-reve-de-dragon/templates/common/timestamp.hbs',
 | 
			
		||||
@@ -211,14 +215,16 @@ export class RdDUtility {
 | 
			
		||||
      '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-roll-ajustements.html',
 | 
			
		||||
      'systems/foundryvtt-reve-de-dragon/templates/partial-roll-astrologique.hbs',
 | 
			
		||||
      'systems/foundryvtt-reve-de-dragon/templates/partial-roll-coeur.hbs',
 | 
			
		||||
      'systems/foundryvtt-reve-de-dragon/templates/partial-roll-competences.html',
 | 
			
		||||
      'systems/foundryvtt-reve-de-dragon/templates/partial-roll-diffLibre.html',
 | 
			
		||||
      'systems/foundryvtt-reve-de-dragon/templates/partial-roll-diffFixe.html',
 | 
			
		||||
      'systems/foundryvtt-reve-de-dragon/templates/partial-roll-diffCondition.html',
 | 
			
		||||
      'systems/foundryvtt-reve-de-dragon/templates/partial-roll-surenc.html',
 | 
			
		||||
      'systems/foundryvtt-reve-de-dragon/templates/partial-roll-enctotal.html',
 | 
			
		||||
      'systems/foundryvtt-reve-de-dragon/templates/partial-roll-moral.html',
 | 
			
		||||
      'systems/foundryvtt-reve-de-dragon/templates/partial-roll-forcer.html',
 | 
			
		||||
      'systems/foundryvtt-reve-de-dragon/templates/partial-roll-competences.html',
 | 
			
		||||
      'systems/foundryvtt-reve-de-dragon/templates/partial-roll-moral.html',
 | 
			
		||||
      'systems/foundryvtt-reve-de-dragon/templates/partial-roll-surenc.html',
 | 
			
		||||
      'systems/foundryvtt-reve-de-dragon/templates/partial-select-carac.html',
 | 
			
		||||
      'systems/foundryvtt-reve-de-dragon/templates/partial-item-hautrevant.html',
 | 
			
		||||
      'systems/foundryvtt-reve-de-dragon/templates/partial-item-frequence.html',
 | 
			
		||||
@@ -290,7 +296,7 @@ export class RdDUtility {
 | 
			
		||||
    Handlebars.registerHelper('uniteQuantite', (itemId, actorId) => RdDUtility.getItem(itemId, actorId)?.getUniteQuantite());
 | 
			
		||||
    Handlebars.registerHelper('isFieldInventaireModifiable', (type, field) => RdDItem.isFieldInventaireModifiable(type, field));
 | 
			
		||||
    Handlebars.registerHelper('rarete-getChamp', (rarete, field) => RdDRaretes.getChamp(rarete, field));
 | 
			
		||||
    
 | 
			
		||||
 | 
			
		||||
    Handlebars.registerHelper('plusMoins', diff => (diff > 0 ? '+' : '') + Math.round(diff))
 | 
			
		||||
    Handlebars.registerHelper('experienceLog-topic', topic => ExperienceLog.labelTopic(topic));
 | 
			
		||||
 | 
			
		||||
@@ -323,24 +329,16 @@ export class RdDUtility {
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  /* -------------------------------------------- */
 | 
			
		||||
  static getNomEthylisme(niveauEthylisme) {
 | 
			
		||||
    let index = -niveauEthylisme;
 | 
			
		||||
    return index < 0 ? 'Aucun' : nomEthylisme[index];
 | 
			
		||||
  }
 | 
			
		||||
  static getNomEthylisme(niveauEthylisme) { return niveauEthylisme > 0 ? 'Aucun' : nomEthylisme[-niveauEthylisme] }
 | 
			
		||||
 | 
			
		||||
  /* -------------------------------------------- */
 | 
			
		||||
  static initAfficheContenu() { // persistent handling of conteneur show/hide
 | 
			
		||||
    if (!this.afficheContenu)
 | 
			
		||||
      this.afficheContenu = {};
 | 
			
		||||
  }
 | 
			
		||||
  /* -------------------------------------------- */
 | 
			
		||||
  static toggleAfficheContenu(conteneurId) {
 | 
			
		||||
    this.afficheContenu[conteneurId] = !this.afficheContenu[conteneurId];
 | 
			
		||||
    RdDUtility.afficheContenu[conteneurId] = !RdDUtility.afficheContenu[conteneurId];
 | 
			
		||||
  }
 | 
			
		||||
  /* -------------------------------------------- */
 | 
			
		||||
  static getAfficheContenu(conteneurId) {
 | 
			
		||||
    if (conteneurId)
 | 
			
		||||
      return this.afficheContenu[conteneurId];
 | 
			
		||||
      return RdDUtility.afficheContenu[conteneurId];
 | 
			
		||||
    return undefined;
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
@@ -651,8 +649,9 @@ export class RdDUtility {
 | 
			
		||||
 | 
			
		||||
  /* -------------------------------------------- */
 | 
			
		||||
  static async chatListeners(html) {
 | 
			
		||||
    RdDCombat.registerChatCallbacks(html);
 | 
			
		||||
    RdDEmpoignade.registerChatCallbacks(html);
 | 
			
		||||
    RdDCombat.registerChatCallbacks(html)
 | 
			
		||||
    RdDEmpoignade.registerChatCallbacks(html)
 | 
			
		||||
    RdDCoeur.registerChatCallbacks(html)
 | 
			
		||||
 | 
			
		||||
    // Gestion spécifique message passeurs
 | 
			
		||||
    html.on("click", '.tmr-passeur-coord a', event => {
 | 
			
		||||
@@ -811,7 +810,7 @@ export class RdDUtility {
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  /* -------------------------------------------- */
 | 
			
		||||
  static confirmerSuppressionSubacteur(sheet, subActor, htmlToDelete, onSuppression = ()=>{}) {
 | 
			
		||||
  static confirmSubActeurDelete(sheet, subActor, htmlToDelete, onSuppression = () => { }) {
 | 
			
		||||
    RdDConfirm.confirmer({
 | 
			
		||||
      settingConfirmer: "confirmation-supprimer-lien-acteur",
 | 
			
		||||
      content: `<p>Etes vous certain de vouloir supprimer le lien vers ${subActor.name} ?</p>`,
 | 
			
		||||
 
 | 
			
		||||
@@ -64,32 +64,44 @@ export const referenceAjustements = {
 | 
			
		||||
  },
 | 
			
		||||
  encTotal: {
 | 
			
		||||
    isVisible: (rollData, actor) => RdDCarac.isAgiliteOuDerobee(rollData.selectedCarac) && RdDItemCompetence.isMalusEncombrementTotal(rollData.competence),
 | 
			
		||||
    isUsed: (rollData, actor) => !rollData.oeuvre && RdDCarac.isAgiliteOuDerobee(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',
 | 
			
		||||
    getValue: (rollData, actor) => -actor.getEncTotal()
 | 
			
		||||
  },
 | 
			
		||||
  surenc: {
 | 
			
		||||
    isVisible: (rollData, actor) => RdDCarac.isActionPhysique(rollData.selectedCarac) && actor.isSurenc(),
 | 
			
		||||
    isUsed: (rollData, actor) => rollData.use?.surenc && RdDCarac.isActionPhysique(rollData.selectedCarac),
 | 
			
		||||
    isUsed: (rollData, actor) => rollData.use.surenc && RdDCarac.isActionPhysique(rollData.selectedCarac),
 | 
			
		||||
    getLabel: (rollData, actor) => 'Sur-encombrement',
 | 
			
		||||
    getValue: (rollData, actor) => actor.computeMalusSurEncombrement()
 | 
			
		||||
  },
 | 
			
		||||
  rituel: {
 | 
			
		||||
    isUsed: (rollData, actor) => actor.isPersonnage() && ReglesOptionnelles.isUsing("astrologie") && rollData.selectedSort?.system.isrituel,
 | 
			
		||||
    getLabel: (rollData, actor) => 'Astrologique',
 | 
			
		||||
    getValue: (rollData, actor) => actor.ajustementAstrologique()
 | 
			
		||||
  },
 | 
			
		||||
  astrologique: {
 | 
			
		||||
    isVisible: (rollData, actor) => actor.isPersonnage() && ReglesOptionnelles.isUsing("astrologie") && RdDCarac.isChance(rollData.selectedCarac),
 | 
			
		||||
    isUsed: (rollData, actor) =>  RdDCarac.isChance(rollData.selectedCarac) && rollData.use.astrologique,
 | 
			
		||||
    getLabel: (rollData, actor) => 'Astrologique',
 | 
			
		||||
    getValue: (rollData, actor) => actor.ajustementAstrologique()
 | 
			
		||||
  },
 | 
			
		||||
  moral: {
 | 
			
		||||
    isVisible: (rollData, actor) => actor.isPersonnage() && RdDCarac.isActionPhysique(rollData.selectedCarac) && rollData.use?.moral,
 | 
			
		||||
    isUsed: (rollData, actor) => rollData.use?.moral,
 | 
			
		||||
    isUsed: (rollData, actor) => rollData.use.moral,
 | 
			
		||||
    getLabel: (rollData, actor) => 'Appel au moral',
 | 
			
		||||
    getValue: (rollData, actor) => 1
 | 
			
		||||
  },
 | 
			
		||||
  coeur: {
 | 
			
		||||
    isVisible: (rollData, actor) => actor.isPersonnage() && RdDCarac.isVolonte(rollData.selectedCarac),
 | 
			
		||||
    isUsed: (rollData, actor) => rollData.use.coeur != undefined,
 | 
			
		||||
    getLabel: (rollData, actor) => 'Ajustement de cœur',
 | 
			
		||||
    getValue: (rollData, actor) => -2 * (rollData.use.coeur?.coeur ?? 0)
 | 
			
		||||
  },
 | 
			
		||||
  moralTotal: {
 | 
			
		||||
    isUsed: (rollData, actor) => RdDCarac.isVolonte(rollData.selectedCarac),
 | 
			
		||||
    getLabel: (rollData, actor) => 'Moral',
 | 
			
		||||
    getValue: (rollData, actor) => actor.getMoralTotal()
 | 
			
		||||
  },
 | 
			
		||||
  astrologique: {
 | 
			
		||||
    isUsed: (rollData, actor) => ReglesOptionnelles.isUsing("astrologie") && RdDBonus.isAjustementAstrologique(rollData),
 | 
			
		||||
    getLabel: (rollData, actor) => 'Astrologique',
 | 
			
		||||
    getValue: (rollData, actor) => actor.ajustementAstrologique()
 | 
			
		||||
  },
 | 
			
		||||
  facteurSign: {
 | 
			
		||||
    isUsed: (rollData, actor) => rollData.diviseurSignificative > 1,
 | 
			
		||||
    getLabel: (rollData, actor) => Misc.getFractionHtml(rollData.diviseurSignificative),
 | 
			
		||||
@@ -135,7 +147,7 @@ export const referenceAjustements = {
 | 
			
		||||
    getLabel: (rollData, actor) => "Force de l'alcool: ",
 | 
			
		||||
    getValue: (rollData, actor) => rollData.forceAlcool,
 | 
			
		||||
  },
 | 
			
		||||
  ethylisme:{
 | 
			
		||||
  ethylisme: {
 | 
			
		||||
    isVisible: (rollData, actor) => rollData.ethylisme != undefined,
 | 
			
		||||
    isUsed: (rollData, actor) => rollData.ethylisme != undefined,
 | 
			
		||||
    getLabel: (rollData, actor) => "Ethylisme - " + RdDUtility.getNomEthylisme(rollData.ethylisme),
 | 
			
		||||
@@ -153,7 +165,9 @@ export class RollDataAjustements {
 | 
			
		||||
 | 
			
		||||
  /* -------------------------------------------- */
 | 
			
		||||
  static calcul(rollData, actor) {
 | 
			
		||||
    rollData.ajustements = {};
 | 
			
		||||
    // s'assurer de la correction des infos rollData
 | 
			
		||||
    mergeObject(rollData, { ajustements: {}, use: {} }, { overwrite: false })
 | 
			
		||||
 | 
			
		||||
    for (var key in referenceAjustements) {
 | 
			
		||||
      const reference = referenceAjustements[key];
 | 
			
		||||
      rollData.ajustements[key] = {
 | 
			
		||||
@@ -185,4 +199,5 @@ export class RollDataAjustements {
 | 
			
		||||
      RdDCarac.isChance(selectedCarac) ||
 | 
			
		||||
      (RdDCarac.isReve(selectedCarac) && !rollData.competence);
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -74,8 +74,8 @@ export class ReglesOptionnelles extends FormApplication {
 | 
			
		||||
    mergeObject(options, {
 | 
			
		||||
      id: "regles-optionnelles",
 | 
			
		||||
      template: "systems/foundryvtt-reve-de-dragon/templates/settings/regles-optionnelles.html",
 | 
			
		||||
      height: 600,
 | 
			
		||||
      width: 450,
 | 
			
		||||
      height: 650,
 | 
			
		||||
      width: 550,
 | 
			
		||||
      minimizable: false,
 | 
			
		||||
      closeOnSubmit: true,
 | 
			
		||||
      title: "Règles optionnelles"
 | 
			
		||||
 
 | 
			
		||||
@@ -1,13 +1,13 @@
 | 
			
		||||
import { SYSTEM_RDD } from "../constants.js";
 | 
			
		||||
 | 
			
		||||
export const STATUSES = {
 | 
			
		||||
  StatusStunned : 'stun',
 | 
			
		||||
  StatusStunned: 'stun',
 | 
			
		||||
  StatusBleeding: 'bleeding',
 | 
			
		||||
  StatusProne: 'prone',
 | 
			
		||||
  StatusGrappling: 'grappling',
 | 
			
		||||
  StatusGrappled: 'grappled',
 | 
			
		||||
  StatusRestrained: 'restrain',
 | 
			
		||||
  StatusUnconscious: 'unconscious', 
 | 
			
		||||
  StatusUnconscious: 'unconscious',
 | 
			
		||||
  StatusBlind: 'blind',
 | 
			
		||||
  StatusComma: 'comma',
 | 
			
		||||
  StatusDead: 'dead',
 | 
			
		||||
@@ -18,8 +18,8 @@ const rddStatusEffects = [
 | 
			
		||||
  { rdd: true, id: STATUSES.StatusStunned, label: 'EFFECT.StatusStunned', icon: 'icons/svg/stoned.svg', "duration.rounds": 1 },
 | 
			
		||||
  { rdd: true, id: STATUSES.StatusBleeding, label: 'EFFECT.StatusBleeding', icon: 'icons/svg/blood.svg' },
 | 
			
		||||
  { rdd: true, id: STATUSES.StatusProne, label: 'EFFECT.StatusProne', icon: 'icons/svg/falling.svg' },
 | 
			
		||||
  { rdd: true, id: STATUSES.StatusGrappling, tint: '#33cc33', label: 'EFFECT.StatusGrappling', icon: 'systems/foundryvtt-reve-de-dragon/icons/competence_corps_a_corps.webp' },
 | 
			
		||||
  { rdd: true, id: STATUSES.StatusGrappled, tint: '#ff9900', label: 'EFFECT.StatusGrappled', icon: 'systems/foundryvtt-reve-de-dragon/icons/competence_corps_a_corps.webp' },
 | 
			
		||||
  { rdd: true, id: STATUSES.StatusGrappling, tint: '#33cc33', label: 'EFFECT.StatusGrappling', icon: 'systems/foundryvtt-reve-de-dragon/icons/empoignade.svg' },
 | 
			
		||||
  { rdd: true, id: STATUSES.StatusGrappled, tint: '#ff9900', label: 'EFFECT.StatusGrappled', icon: 'systems/foundryvtt-reve-de-dragon/icons/empoignade.svg' },
 | 
			
		||||
  { rdd: true, id: STATUSES.StatusRestrained, label: 'EFFECT.StatusRestrained', icon: 'icons/svg/net.svg' },
 | 
			
		||||
  { rdd: true, id: STATUSES.StatusUnconscious, label: 'EFFECT.StatusUnconscious', icon: 'icons/svg/unconscious.svg' },
 | 
			
		||||
  { rdd: true, id: STATUSES.StatusBlind, label: 'EFFECT.StatusBlind', icon: 'icons/svg/blind.svg' },
 | 
			
		||||
@@ -29,13 +29,16 @@ const rddStatusEffects = [
 | 
			
		||||
];
 | 
			
		||||
const demiReveStatusEffect = rddStatusEffects.find(it => it.id == STATUSES.StatusDemiReve);
 | 
			
		||||
 | 
			
		||||
const statusDemiSurprise = [STATUSES.StatusStunned, STATUSES.StatusProne, STATUSES.StatusRestrained];
 | 
			
		||||
const statusSurpriseTotale = [STATUSES.StatusUnconscious, STATUSES.StatusBlind, STATUSES.StatusComma];
 | 
			
		||||
const statusDemiSurprise = new Set([STATUSES.StatusStunned, STATUSES.StatusProne, STATUSES.StatusRestrained])
 | 
			
		||||
const statusSurpriseTotale = new Set([STATUSES.StatusUnconscious, STATUSES.StatusBlind, STATUSES.StatusComma])
 | 
			
		||||
 | 
			
		||||
export class StatusEffects extends FormApplication {
 | 
			
		||||
  static onReady() {
 | 
			
		||||
    const rddStatusIds = rddStatusEffects.map(it => it.id);
 | 
			
		||||
    rddStatusEffects.forEach(it => it.flags = { core: { statusId: it.id } });
 | 
			
		||||
    const rddEffectIds = rddStatusEffects.map(it => it.id);
 | 
			
		||||
    rddStatusEffects.forEach(it => {
 | 
			
		||||
      it.statuses = new Set()
 | 
			
		||||
      it.statuses.add(it.id)
 | 
			
		||||
    })
 | 
			
		||||
    const defaultStatusEffectIds = CONFIG.statusEffects.map(it => it.id);
 | 
			
		||||
    game.settings.register(SYSTEM_RDD, "use-status-effects", {
 | 
			
		||||
      name: "use-status-effects",
 | 
			
		||||
@@ -54,37 +57,47 @@ export class StatusEffects extends FormApplication {
 | 
			
		||||
      restricted: true
 | 
			
		||||
    });
 | 
			
		||||
 | 
			
		||||
    CONFIG.RDD.allEffects = rddStatusEffects.concat(CONFIG.statusEffects.filter(it => !rddStatusIds.includes(it.id)));
 | 
			
		||||
    CONFIG.RDD.allEffects = rddStatusEffects.concat(CONFIG.statusEffects.filter(it => !rddEffectIds.includes(it.id)));
 | 
			
		||||
 | 
			
		||||
    StatusEffects._setUseStatusEffects(StatusEffects._getUseStatusEffects());
 | 
			
		||||
    console.log('statusEffects', CONFIG.statusEffects);
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  static valeurSurprise(effect, isCombat) {
 | 
			
		||||
    // const id = StatusEffects.statusId(effect);
 | 
			
		||||
    if (statusSurpriseTotale.includes(effect.flags?.core?.statusId)) {
 | 
			
		||||
    if (statusSurpriseTotale.intersects(effect.statuses)) {
 | 
			
		||||
      return 2;
 | 
			
		||||
    }
 | 
			
		||||
    return statusDemiSurprise.includes(effect.flags?.core?.statusId) || (isCombat && effect.flags?.core?.statusId == STATUSES.StatusDemiReve) ? 1 : 0;
 | 
			
		||||
    if (statusDemiSurprise.intersects(effect.statuses)) {
 | 
			
		||||
      return 1
 | 
			
		||||
    }
 | 
			
		||||
    if (isCombat && effect.statuses.includes(STATUSES.StatusDemiReve)) {
 | 
			
		||||
      return 1
 | 
			
		||||
    }
 | 
			
		||||
    return 0
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  static _getUseStatusEffects() {
 | 
			
		||||
     return game.settings.get(SYSTEM_RDD, "use-status-effects")?.split(',') ?? [];
 | 
			
		||||
    return game.settings.get(SYSTEM_RDD, "use-status-effects")?.split(',') ?? [];
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  static _setUseStatusEffects(statusIds) {
 | 
			
		||||
  static _setUseStatusEffects(effectIds) {
 | 
			
		||||
    if (game.user.isGM) {
 | 
			
		||||
      game.settings.set(SYSTEM_RDD, "use-status-effects", statusIds.join());
 | 
			
		||||
      game.settings.set(SYSTEM_RDD, "use-status-effects", effectIds.join());
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    for (let effect of CONFIG.RDD.allEffects) {
 | 
			
		||||
      effect.active = effect.rdd || statusIds.includes(effect.flags?.core?.statusId);
 | 
			
		||||
      effect.active = effect.rdd || effectIds.includes(effect.id);
 | 
			
		||||
    }
 | 
			
		||||
    CONFIG.statusEffects = CONFIG.RDD.allEffects.filter(it => it.active);
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  static status(statusId) {
 | 
			
		||||
    return rddStatusEffects.find(it => it.flags?.core?.statusId == statusId);
 | 
			
		||||
  static prepareActiveEffect(effectId) {
 | 
			
		||||
    let status = rddStatusEffects.find(it => it.id == effectId)
 | 
			
		||||
    if (status) {
 | 
			
		||||
      status = duplicate(status)
 | 
			
		||||
      status.statuses = [effectId]
 | 
			
		||||
    }
 | 
			
		||||
    return status;
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  static demiReve() {
 | 
			
		||||
 
 | 
			
		||||
@@ -301,11 +301,12 @@ export class CompendiumTableHelpers {
 | 
			
		||||
      table,
 | 
			
		||||
      isGM: game.user.isGM,
 | 
			
		||||
    });
 | 
			
		||||
    ChatMessage.create({
 | 
			
		||||
    const messageData = {
 | 
			
		||||
      user: game.user.id,
 | 
			
		||||
      whisper: game.user.id,
 | 
			
		||||
      content: flavorContent
 | 
			
		||||
    }, { rollMode: "gmroll" });
 | 
			
		||||
    };
 | 
			
		||||
    ChatMessage.create(messageData, { rollMode: "gmroll" });
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
@@ -1,5 +1,5 @@
 | 
			
		||||
import { ENTITE_NONINCARNE } from "./constants.js";
 | 
			
		||||
import { DialogSelectTarget } from "./dialog-select-target.js";
 | 
			
		||||
import { DialogSelect } from "./dialog-select.js";
 | 
			
		||||
 | 
			
		||||
export class Targets {
 | 
			
		||||
  static listTargets() {
 | 
			
		||||
@@ -11,10 +11,7 @@ export class Targets {
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  static extractTokenData(target) {
 | 
			
		||||
    if (!target) {
 | 
			
		||||
      return undefined
 | 
			
		||||
    }
 | 
			
		||||
    return { id: target.id, name: target.document.name, img: target.document.texture.src ?? target.actor.img ?? 'icons/svg/mystery-man.svg' };
 | 
			
		||||
    return { id: target?.id, name: target?.document.name, img: target?.document.texture.src ?? target?.actor.img ?? 'icons/svg/mystery-man.svg' };
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  static isTargetEntite(target) {
 | 
			
		||||
@@ -30,11 +27,12 @@ export class Targets {
 | 
			
		||||
        return;
 | 
			
		||||
      default:
 | 
			
		||||
        {
 | 
			
		||||
          const tokens = targets.map(it => Targets.extractTokenData(it))
 | 
			
		||||
          const html = await renderTemplate("systems/foundryvtt-reve-de-dragon/templates/dialog-select-target.html", {
 | 
			
		||||
            tokens: tokens
 | 
			
		||||
          });
 | 
			
		||||
          new DialogSelectTarget(html, onSelectTarget, targets).render(true);
 | 
			
		||||
          const selectData = {
 | 
			
		||||
            title: "Choisir une cible",
 | 
			
		||||
            label: "Choisir une seule des cibles",
 | 
			
		||||
            list: targets.map(it => Targets.extractTokenData(it))
 | 
			
		||||
          };
 | 
			
		||||
          DialogSelect.select(selectData, onSelectTarget);
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
 
 | 
			
		||||
@@ -2,7 +2,6 @@ import { SHOW_DICE, SYSTEM_RDD } from "../constants.js";
 | 
			
		||||
import { Grammar } from "../grammar.js";
 | 
			
		||||
import { Misc } from "../misc.js";
 | 
			
		||||
import { RdDDice } from "../rdd-dice.js";
 | 
			
		||||
import { AutoAdjustDarkness } from "./auto-adjust-darkness.js";
 | 
			
		||||
 | 
			
		||||
export const WORLD_TIMESTAMP_SETTING = "calendrier";
 | 
			
		||||
 | 
			
		||||
@@ -16,14 +15,14 @@ export const RDD_MINUTES_PAR_JOUR = 1440; //RDD_HEURES_PAR_JOUR * RDD_MINUTES_PA
 | 
			
		||||
const ROUNDS_PAR_MINUTE = 10;
 | 
			
		||||
 | 
			
		||||
const DEFINITION_HEURES = [
 | 
			
		||||
  { key: "vaisseau", label: "Vaisseau", lettreFont: 'v', saison: "Printemps" , darkness: 0.7},
 | 
			
		||||
  { key: "sirene", label: "Sirène", lettreFont: 'i', saison: "Printemps" , darkness: 0.4},
 | 
			
		||||
  { key: "faucon", label: "Faucon", lettreFont: 'f', saison: "Printemps" , darkness: 0},
 | 
			
		||||
  { key: "couronne", label: "Couronne", lettreFont: '', saison: "Eté" , darkness: 0},
 | 
			
		||||
  { key: "vaisseau", label: "Vaisseau", lettreFont: 'v', saison: "Printemps", darkness: 0.9 },
 | 
			
		||||
  { key: "sirene", label: "Sirène", lettreFont: 'i', saison: "Printemps", darkness: 0.1 },
 | 
			
		||||
  { key: "faucon", label: "Faucon", lettreFont: 'f', saison: "Printemps", darkness: 0 },
 | 
			
		||||
  { key: "couronne", label: "Couronne", lettreFont: '', saison: "Eté", darkness: 0 },
 | 
			
		||||
  { key: "dragon", label: "Dragon", lettreFont: 'd', saison: "Eté", darkness: 0 },
 | 
			
		||||
  { key: "epees", label: "Epées", lettreFont: 'e', saison: "Eté", darkness: 0},
 | 
			
		||||
  { key: "lyre", label: "Lyre", lettreFont: 'l', saison: "Automne", darkness: 0.4 },
 | 
			
		||||
  { key: "serpent", label: "Serpent", lettreFont: 's', saison: "Automne", darkness: 0.7 },
 | 
			
		||||
  { key: "epees", label: "Epées", lettreFont: 'e', saison: "Eté", darkness: 0 },
 | 
			
		||||
  { key: "lyre", label: "Lyre", lettreFont: 'l', saison: "Automne", darkness: 0.1 },
 | 
			
		||||
  { key: "serpent", label: "Serpent", lettreFont: 's', saison: "Automne", darkness: 0.9 },
 | 
			
		||||
  { key: "poissonacrobate", label: "Poisson Acrobate", lettreFont: 'p', saison: "Automne", darkness: 1 },
 | 
			
		||||
  { key: "araignee", label: "Araignée", lettreFont: 'a', saison: "Hiver", darkness: 1 },
 | 
			
		||||
  { key: "roseau", label: "Roseau", lettreFont: 'r', saison: "Hiver", darkness: 1 },
 | 
			
		||||
@@ -98,10 +97,10 @@ export class RdDTimestamp {
 | 
			
		||||
  */
 | 
			
		||||
  static definition(signe) {
 | 
			
		||||
    if (signe == undefined) {
 | 
			
		||||
      signe = 0;
 | 
			
		||||
      signe = 0
 | 
			
		||||
    }
 | 
			
		||||
    if (Number.isInteger(signe)) {
 | 
			
		||||
      return DEFINITION_HEURES[signe % RDD_HEURES_PAR_JOUR];
 | 
			
		||||
      return DEFINITION_HEURES[Misc.modulo(signe, RDD_HEURES_PAR_JOUR)]
 | 
			
		||||
    }
 | 
			
		||||
    let definition = DEFINITION_HEURES.find(it => it.key == signe);
 | 
			
		||||
    if (!definition) {
 | 
			
		||||
@@ -115,14 +114,11 @@ export class RdDTimestamp {
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  static imgSigne(signe) {
 | 
			
		||||
    return signe == undefined ? '' : `<img class="img-signe-heure" src="${signe.webp}" alt="${signe.label}" title="${signe.label}"/>`
 | 
			
		||||
    return signe == undefined ? '' : `<img class="img-signe-heure" src="${signe.webp}" data-tooltip="${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;
 | 
			
		||||
    }
 | 
			
		||||
    let ecart = Misc.modulo(hn + nbAstral - heure, RDD_HEURES_PAR_JOUR);
 | 
			
		||||
    switch (ecart) {
 | 
			
		||||
      case 0: return 4;
 | 
			
		||||
      case 4: case 8: return 2;
 | 
			
		||||
@@ -158,11 +154,13 @@ export class RdDTimestamp {
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  static defHeure(heure) {
 | 
			
		||||
    return DEFINITION_HEURES.find(it => (it.heure) == heure % RDD_HEURES_PAR_JOUR);
 | 
			
		||||
    heure = Misc.modulo(heure, RDD_HEURES_PAR_JOUR);
 | 
			
		||||
    return DEFINITION_HEURES.find(it => it.heure == heure)
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  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);
 | 
			
		||||
    let parHeureOuLabel = DEFINITION_HEURES.filter(it => Grammar.toLowerCaseNoAccentNoSpace(it.label) == heure || it.heure == Misc.modulo(parseInt(heure), RDD_HEURES_PAR_JOUR));
 | 
			
		||||
    if (parHeureOuLabel.length == 1) {
 | 
			
		||||
      return parHeureOuLabel[0];
 | 
			
		||||
    }
 | 
			
		||||
@@ -232,19 +230,19 @@ export class RdDTimestamp {
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  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 mois() { return Math.floor(Misc.modulo(this.indexDate, RDD_JOURS_PAR_AN) / RDD_JOURS_PAR_MOIS) }
 | 
			
		||||
  get jour() { return Misc.modulo(Misc.modulo(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 minute() { return Misc.modulo(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 }
 | 
			
		||||
 | 
			
		||||
  get darkness() {
 | 
			
		||||
    const darknessDebut = RdDTimestamp.definition(this.heure).darkness *100
 | 
			
		||||
    const darknessFin = RdDTimestamp.definition(this.heure + 1).darkness *100
 | 
			
		||||
    const darknessDebut = 100 * RdDTimestamp.definition(this.heure).darkness
 | 
			
		||||
    const darknessFin =  100 * RdDTimestamp.definition(this.heure + 1).darkness
 | 
			
		||||
    const darknessMinute = Math.round((darknessFin - darknessDebut) * this.minute / RDD_MINUTES_PAR_HEURES);
 | 
			
		||||
    return (darknessDebut + darknessMinute)/100
 | 
			
		||||
    return (darknessDebut + darknessMinute) / 100
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  /**
 | 
			
		||||
@@ -297,7 +295,7 @@ export class RdDTimestamp {
 | 
			
		||||
    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
 | 
			
		||||
      indexMinute: this.indexMinute + Misc.modulo(heure, RDD_HEURES_PAR_JOUR) * RDD_MINUTES_PAR_HEURES
 | 
			
		||||
    })
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
@@ -347,7 +345,7 @@ export class RdDTimestamp {
 | 
			
		||||
    return {
 | 
			
		||||
      jours: jours,
 | 
			
		||||
      heures: Math.floor(minutes / RDD_MINUTES_PAR_HEURES),
 | 
			
		||||
      minutes: minutes % RDD_MINUTES_PAR_HEURES
 | 
			
		||||
      minutes: Misc.modulo(minutes, RDD_MINUTES_PAR_HEURES)
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
@@ -4,10 +4,6 @@ import { PixiTMR } from "./pixi-tmr.js";
 | 
			
		||||
 | 
			
		||||
export class CarteTmr extends Draconique {
 | 
			
		||||
 | 
			
		||||
  constructor() {
 | 
			
		||||
    super();
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  type() { return '' }
 | 
			
		||||
  match(item) { return false; }
 | 
			
		||||
  manualMessage() { return false }
 | 
			
		||||
 
 | 
			
		||||
@@ -18,8 +18,8 @@ export class Draconique {
 | 
			
		||||
  static isTeteDragon(item) { return item.type == TYPES.tete; }
 | 
			
		||||
  static isQueueSouffle(item) { return Draconique.isQueueDragon(item) || Draconique.isSouffleDragon(item); }
 | 
			
		||||
 | 
			
		||||
  static register(draconique) {
 | 
			
		||||
    registeredEffects[draconique.code()] = draconique;
 | 
			
		||||
  static register(draconique, code = undefined) {
 | 
			
		||||
    registeredEffects[code ?? draconique.code()] = draconique;
 | 
			
		||||
    if (draconique.img()) {
 | 
			
		||||
      PixiTMR.register(draconique.code(), draconique.img())
 | 
			
		||||
    }
 | 
			
		||||
@@ -90,6 +90,15 @@ export class Draconique {
 | 
			
		||||
  */
 | 
			
		||||
  token(pixiTMR, linkData, coordTMR, type = undefined) {
 | 
			
		||||
    const tooltip = this.tooltip(linkData);
 | 
			
		||||
    return this._createToken(pixiTMR, linkData, coordTMR, type, tooltip);
 | 
			
		||||
  }
 | 
			
		||||
  
 | 
			
		||||
  tokens(pixiTMR, linkData, coordTMR, type = undefined) {
 | 
			
		||||
    const tooltip = this.tooltip(linkData);
 | 
			
		||||
    return [this._createToken(pixiTMR, linkData, coordTMR, type, tooltip)];
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  _createToken(pixiTMR, linkData, coordTMR, type, tooltip) {
 | 
			
		||||
    const token = {
 | 
			
		||||
      sprite: this.createSprite(pixiTMR),
 | 
			
		||||
      coordTMR: coordTMR,
 | 
			
		||||
 
 | 
			
		||||
@@ -6,7 +6,7 @@ import { ReserveExtensible } from "./reserve-extensible.js";
 | 
			
		||||
import { DemiReve } from "./demi-reve.js";
 | 
			
		||||
import { TrouNoir } from "./trou-noir.js";
 | 
			
		||||
import { Rencontre } from "./rencontre.js";
 | 
			
		||||
import { SortReserve } from "./sort-reserve.js";
 | 
			
		||||
import { SortReserve, SortReserveHumide } from "./sort-reserve.js";
 | 
			
		||||
import { CarteTmr } from "./carte-tmr.js";
 | 
			
		||||
import { PontImpraticable } from "./pont-impraticable.js";
 | 
			
		||||
import { Draconique } from "./draconique.js";
 | 
			
		||||
@@ -26,6 +26,7 @@ export class EffetsDraconiques {
 | 
			
		||||
  static demiReve = new DemiReve();
 | 
			
		||||
  static rencontre = new Rencontre();
 | 
			
		||||
  static sortReserve = new SortReserve();
 | 
			
		||||
  static sortReserveHumide = new SortReserveHumide();
 | 
			
		||||
  static debordement = new Debordement();
 | 
			
		||||
  static presentCites = new PresentCites();
 | 
			
		||||
  static fermetureCites = new FermetureCites();
 | 
			
		||||
@@ -49,6 +50,7 @@ export class EffetsDraconiques {
 | 
			
		||||
    Draconique.register(EffetsDraconiques.demiReve);
 | 
			
		||||
    Draconique.register(EffetsDraconiques.rencontre);
 | 
			
		||||
    Draconique.register(EffetsDraconiques.sortReserve);
 | 
			
		||||
    Draconique.register(EffetsDraconiques.sortReserveHumide);
 | 
			
		||||
    Draconique.register(EffetsDraconiques.debordement);
 | 
			
		||||
    Draconique.register(EffetsDraconiques.fermetureCites);
 | 
			
		||||
    Draconique.register(EffetsDraconiques.queteEaux);
 | 
			
		||||
 
 | 
			
		||||
@@ -26,6 +26,7 @@ export class PixiTMR {
 | 
			
		||||
    this.tmrDialog = tmrDialog;
 | 
			
		||||
    this.callbacksOnAnimate = [];
 | 
			
		||||
    this.sizes = new TMRConstants({ size: displaySize })
 | 
			
		||||
    console.info(`Creation d'Application PIXI pour les TMR de ${tmrDialog.actor.name}`)
 | 
			
		||||
    this.pixiApp = new PIXI.Application(PixiTMR.computeTMRSize(this.sizes));
 | 
			
		||||
    this.pixiApp.eventMode = 'static';
 | 
			
		||||
    this.pixiApp.stage.sortableChildren = true;
 | 
			
		||||
@@ -45,7 +46,9 @@ export class PixiTMR {
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  close() {
 | 
			
		||||
    this.pixiApp.ticker.stop();
 | 
			
		||||
    console.info(`Destruction d'Application PIXI pour les TMR de ${this.tmrDialog.actor.name}`)
 | 
			
		||||
    this.pixiApp.destroy();
 | 
			
		||||
    this.pixiApp = undefined
 | 
			
		||||
  }
 | 
			
		||||
  static computeTMRSize(sizeConstants) {
 | 
			
		||||
    return { width: sizeConstants.cellw * 13 + sizeConstants.marginx, height: sizeConstants.cellh / 2 + sizeConstants.cellh * 15 + sizeConstants.marginy }
 | 
			
		||||
@@ -55,7 +58,7 @@ export class PixiTMR {
 | 
			
		||||
    this.sizes = new TMRConstants({ size: displaySize })
 | 
			
		||||
    const appSize = PixiTMR.computeTMRSize(this.sizes)
 | 
			
		||||
    this.pixiApp.renderer.resize(appSize.width, appSize.height)
 | 
			
		||||
    this.tooltipStyle.fontSize = Math.max(this.sizes.size / 4, 16)
 | 
			
		||||
    this.tooltipStyle.fontSize = Math.max(this.sizes.size / 3, 16)
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  get view() {
 | 
			
		||||
@@ -196,7 +199,7 @@ export class PixiTMR {
 | 
			
		||||
  setTooltipPosition(event) {
 | 
			
		||||
    const oddq = this.sizes.computeEventOddq(event);
 | 
			
		||||
 | 
			
		||||
    this.tooltip.x = oddq.x + (oddq.col > 7 ? -3 * this.sizes.full : this.sizes.quarter);
 | 
			
		||||
    this.tooltip.x = oddq.x + (oddq.col > 7 ? -2.5 * this.sizes.full : this.sizes.quarter);
 | 
			
		||||
    this.tooltip.y = oddq.y + (oddq.row > 10 ? -this.sizes.size : 0);
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -49,7 +49,7 @@ export class PresentCites extends Draconique {
 | 
			
		||||
      content: `La ${this.tmrLabel(casetmr)} vous offre un présent, faites votre choix`,
 | 
			
		||||
      buttons: buttons
 | 
			
		||||
    });
 | 
			
		||||
    dialog.render(true);
 | 
			
		||||
    await dialog.render(true);
 | 
			
		||||
    return dialog
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -1,5 +1,7 @@
 | 
			
		||||
import { tmrTokenZIndex } from "../tmr-constants.js";
 | 
			
		||||
import { TMRUtility } from "../tmr-utility.js";
 | 
			
		||||
import { Draconique } from "./draconique.js";
 | 
			
		||||
import { EffetsDraconiques } from "./effets-draconiques.js";
 | 
			
		||||
 | 
			
		||||
export class SortReserve extends Draconique {
 | 
			
		||||
 | 
			
		||||
@@ -19,4 +21,19 @@ export class SortReserve extends Draconique {
 | 
			
		||||
      taille: () => pixiTMR.sizes.third,
 | 
			
		||||
    });
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  tokens(pixiTMR, linkData, coordTMR, type = undefined) {
 | 
			
		||||
    if (TMRUtility.getTMR(coordTMR()).type == 'fleuve') {
 | 
			
		||||
      const tooltip = this.tooltip(linkData)
 | 
			
		||||
      const fleuves = TMRUtility.getListTMR('fleuve')
 | 
			
		||||
      return fleuves.map(f => EffetsDraconiques.sortReserveHumide._createToken(pixiTMR, linkData, () => f.coord, type?? this.code(), tooltip))
 | 
			
		||||
    }
 | 
			
		||||
    return super.tokens(pixiTMR, linkData, coordTMR, type)
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
export class SortReserveHumide extends SortReserve {
 | 
			
		||||
  code() { return 'sortreservehumide' }
 | 
			
		||||
  tooltip(sort) { return `${sort.name} en fleuve, r${sort.system.ptreve}` }
 | 
			
		||||
  img() { return 'systems/foundryvtt-reve-de-dragon/icons/tmr/sort-reserve-humide.svg' }
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -19,7 +19,7 @@ export class TerreAttache extends Draconique {
 | 
			
		||||
  createSprite(pixiTMR) {
 | 
			
		||||
    return pixiTMR.sprite(this.code(), {
 | 
			
		||||
      zIndex: tmrTokenZIndex.tetes,
 | 
			
		||||
      decallage: pixiTMR.sizes.decallage(-1, -1),
 | 
			
		||||
      decallage: pixiTMR.sizes.decallage(1, 1),
 | 
			
		||||
      taille: () => pixiTMR.sizes.third
 | 
			
		||||
    });
 | 
			
		||||
  }
 | 
			
		||||
 
 | 
			
		||||
@@ -1,206 +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,"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,"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,"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":"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":1},"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,"milieu":"","environnement":[{"milieu":"Villages","rarete":"Rare","frequence":6},{"milieu":"Villes","rarete":"Frequente","frequence":18}],"equipe":false,"resistance":1},"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,"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,"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,"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"}}
 | 
			
		||||
{"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":"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"}}
 | 
			
		||||
{"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":"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":"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":"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":1},"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":"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":1},"_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":"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":1},"ownership":{"default":0,"rYShh2P1DNavdoBD":3},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.6.15","coreVersion":"10.291","createdTime":1668808206015,"modifiedTime":1676074487962,"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":1},"_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":"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":1,"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":"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":1},"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":"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":"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":"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":"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":1},"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":"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":"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":"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":1},"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":"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":"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":"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":"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":1},"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,"milieu":"","environnement":[{"milieu":"Villages","rarete":"Rare","frequence":6},{"milieu":"Villes","rarete":"Frequente","frequence":18}],"equipe":false,"resistance":1},"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,"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"}}
 | 
			
		||||
{"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"}
 | 
			
		||||
{"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":1},"_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":"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":"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":"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":"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":"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"}}
 | 
			
		||||
{"_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":1},"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,"milieu":"","environnement":[{"milieu":"Villages","rarete":"Frequente","frequence":18},{"milieu":"Villes","rarete":"Frequente","frequence":18}],"equipe":false,"resistance":1},"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":"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":1},"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,"milieu":"","environnement":[{"milieu":"Villages","rarete":"Commune","frequence":54},{"milieu":"Villes","rarete":"Frequente","frequence":18}],"equipe":false,"resistance":1},"ownership":{"default":0,"rYShh2P1DNavdoBD":3},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.6.15","coreVersion":"10.291","createdTime":1668808206017,"modifiedTime":1676074487964,"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":"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":"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"}}
 | 
			
		||||
{"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":"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":"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"}}
 | 
			
		||||
{"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":"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":1},"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,"milieu":"","environnement":[{"milieu":"Villages","rarete":"Frequente","frequence":18},{"milieu":"Villes","rarete":"Frequente","frequence":18}],"equipe":false,"resistance":1},"ownership":{"default":0,"rYShh2P1DNavdoBD":3},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.6.15","coreVersion":"10.291","createdTime":1668808206018,"modifiedTime":1676074487964,"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":1},"_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":"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":"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":"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":1},"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,"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":"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":"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"}}
 | 
			
		||||
{"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":"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":1},"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":"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":1},"ownership":{"default":0,"rYShh2P1DNavdoBD":3},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.6.15","coreVersion":"10.291","createdTime":1668808206018,"modifiedTime":1676074487964,"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":1},"_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":"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":"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":"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":1},"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":"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":"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":"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":1},"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":"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":"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":"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":"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":"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":1},"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":"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":1},"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":"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":1},"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":"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":"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":"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":"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":"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":1,"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":"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":1},"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":"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":1},"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":"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":"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":"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":"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":1},"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,"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":"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":"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":"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":"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":"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":1},"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":"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":1},"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":"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":"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":"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":"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":"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":1},"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":"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":"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":"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":"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":1},"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":"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":"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":"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":"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":1},"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,"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":"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":"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":1},"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,"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":"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":"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":1},"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,"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":"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":"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":1},"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":"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":"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":"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":"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":1},"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":"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":"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":"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":"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":"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":1},"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,"milieu":"","environnement":[{"milieu":"Villages","rarete":"Rare","frequence":6},{"milieu":"Villes","rarete":"Frequente","frequence":18}],"equipe":false,"resistance":1},"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":"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":1},"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":"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"}}
 | 
			
		||||
{"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":"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":"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":"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":"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":"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":1,"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":"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":1},"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":"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"}}
 | 
			
		||||
{"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":"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":"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":"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":"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":"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":1},"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":"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":1},"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":"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":1},"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":"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":1},"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,"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":"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":"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":"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":1},"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":"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":1},"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":"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":"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":"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":"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":1},"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":"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":1,"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":"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":"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":"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":"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":"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":"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":1},"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":"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":1},"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":"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":"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":"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":1,"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":"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"}}
 | 
			
		||||
{"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":"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"}}
 | 
			
		||||
{"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":1},"_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":"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":1},"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":"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":"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":"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":"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":1},"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":"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":"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":"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":1},"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":"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":"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":"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":1},"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":"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":"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":"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":1},"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":"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":"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":"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":1},"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":"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":"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":"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":"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}}
 | 
			
		||||
{"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":"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":"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":"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"}}
 | 
			
		||||
{"_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":1},"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":"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":1},"_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}}
 | 
			
		||||
{"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":1},"_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":"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":1},"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,"milieu":"","environnement":[{"milieu":"Villages","rarete":"Commune","frequence":54},{"milieu":"Villes","rarete":"Commune","frequence":54}],"equipe":false,"resistance":1},"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,"milieu":"","environnement":[{"milieu":"Villages","rarete":"Rare","frequence":6},{"milieu":"Villes","rarete":"Frequente","frequence":18}],"equipe":false,"resistance":1},"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":"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":"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":"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"}}
 | 
			
		||||
{"_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":1},"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":"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":"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":"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"}}
 | 
			
		||||
{"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":"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":"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":"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":1},"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":"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":1},"ownership":{"default":0,"rYShh2P1DNavdoBD":3},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.6.15","coreVersion":"10.291","createdTime":1668808206111,"modifiedTime":1676074487970,"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":"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":"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":"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":1},"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":"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":"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":"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":"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":"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":1},"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":"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":"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":"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":"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":1,"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":"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":1},"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":"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":"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":"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":"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":"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":1},"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":"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":1},"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":"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":1},"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":"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":"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":"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":1},"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,"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":"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":"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":1},"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":"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":"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":"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":"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":"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":"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":"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":1},"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":"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":1},"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":"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":1,"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":"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":1},"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":"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":"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":"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":1},"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":"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":"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":"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":"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":"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":1},"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":"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":1},"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":"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":1},"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":"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":"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":"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"}}
 | 
			
		||||
{"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":"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":1},"ownership":{"default":0,"rYShh2P1DNavdoBD":3},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.6.15","coreVersion":"10.291","createdTime":1668808206115,"modifiedTime":1676074487972,"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":1},"_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":"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":"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":"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":"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":"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":"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":1},"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":"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":1},"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":"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":1},"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,"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":"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":"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"}}
 | 
			
		||||
{"_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":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":"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":"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":"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":"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":"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":"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"}}
 | 
			
		||||
{"_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":"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":1},"ownership":{"default":0,"rYShh2P1DNavdoBD":3},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.6.15","coreVersion":"10.291","createdTime":1668808206117,"modifiedTime":1676074487975,"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":"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":"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":"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":"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":1},"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":"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":1},"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":"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":1},"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":"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":"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"}}
 | 
			
		||||
{"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":"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":"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":"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":"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":1},"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,"milieu":"","environnement":[{"milieu":"Villages","rarete":"Frequente","frequence":18},{"milieu":"Villes","rarete":"Frequente","frequence":18}],"equipe":false,"resistance":1},"ownership":{"default":0,"jOzRscDxoXZWpGS6":3},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.6.15","coreVersion":"10.291","createdTime":1668808206118,"modifiedTime":1676074487975,"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":"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":1},"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":1},"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":1},"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":1},"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":"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":1},"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"}}
 | 
			
		||||
 
 | 
			
		||||
@@ -8,7 +8,7 @@
 | 
			
		||||
{"_id":"RjwPSt0pOwQ8w9Qy","name":"Le Luth","type":"tarot","folder":"LmM8c5pdDkCsDXka","sort":500000,"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.tarot-draconique.RjwPSt0pOwQ8w9Qy"}},"img":"systems/foundryvtt-reve-de-dragon/icons/tarots/dos-tarot.webp","effects":[],"system":{"description":"","descriptionmj":"","concept":"Fête, Plaisir, Joie, Insouciance","aspect":"Positif","frequence":1},"ownership":{"default":2,"Hp9ImM4o9YRTSdfu":3},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.3.13","coreVersion":"10.291","createdTime":1671050461624,"modifiedTime":1671050523351,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
 | 
			
		||||
{"_id":"VAhO41qD8QQLDie5","name":"Le Vaisseau","type":"tarot","folder":"LmM8c5pdDkCsDXka","sort":100000,"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.tarot-draconique.VAhO41qD8QQLDie5"}},"img":"systems/foundryvtt-reve-de-dragon/icons/tarots/dos-tarot.webp","effects":[],"system":{"description":"","descriptionmj":"","concept":"Début, Départ, Mouvement, Jeunesse","aspect":"Positif","frequence":1},"ownership":{"default":2,"Hp9ImM4o9YRTSdfu":3},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.3.13","coreVersion":"10.291","createdTime":1671050461624,"modifiedTime":1671050523351,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
 | 
			
		||||
{"_id":"W150EcUq9vU9ryyc","name":"La Couronne","type":"tarot","folder":"LmM8c5pdDkCsDXka","sort":800000,"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.tarot-draconique.W150EcUq9vU9ryyc"}},"img":"systems/foundryvtt-reve-de-dragon/icons/tarots/dos-tarot.webp","effects":[],"system":{"description":"","descriptionmj":"","concept":"Honneur, Gloire, Récompense, Ascension","aspect":"Positif","frequence":1},"ownership":{"default":2,"Hp9ImM4o9YRTSdfu":3},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.3.13","coreVersion":"10.291","createdTime":1671050461625,"modifiedTime":1671050523352,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
 | 
			
		||||
{"_id":"beF1v9sjQeDgmxZL","name":"Le Gibet","type":"tarot","folder":"LmM8c5pdDkCsDXka","sort":1775000,"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.tarot-draconique.beF1v9sjQeDgmxZL"}},"img":"systems/foundryvtt-reve-de-dragon/icons/tarots/dos-tarot.webp","effects":[],"system":{"description":"","descriptionmj":"","concept":"Opprobre, Humiliation, Châtiment, Chite","aspect":"Négatif","frequence":1},"ownership":{"default":2,"Hp9ImM4o9YRTSdfu":3},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.3.13","coreVersion":"10.291","createdTime":1671050461625,"modifiedTime":1671050523352,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
 | 
			
		||||
{"_id":"beF1v9sjQeDgmxZL","name":"Le Gibet","type":"tarot","folder":"LmM8c5pdDkCsDXka","sort":1775000,"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.tarot-draconique.beF1v9sjQeDgmxZL"}},"img":"systems/foundryvtt-reve-de-dragon/icons/tarots/dos-tarot.webp","effects":[],"system":{"description":"","descriptionmj":"","concept":"Opprobre, Humiliation, Châtiment, Chute","aspect":"Négatif","frequence":1},"ownership":{"default":2,"Hp9ImM4o9YRTSdfu":3},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.3.13","coreVersion":"10.291","createdTime":1671050461625,"modifiedTime":1671050523352,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
 | 
			
		||||
{"_id":"inWYIYIuHkoZ3S4A","name":"L'Epée","type":"tarot","folder":"LmM8c5pdDkCsDXka","sort":1762500,"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.tarot-draconique.inWYIYIuHkoZ3S4A"}},"img":"systems/foundryvtt-reve-de-dragon/icons/tarots/dos-tarot.webp","effects":[],"system":{"description":"","descriptionmj":"","concept":"Guerre, Blessure, Conflit","aspect":"Négatif","frequence":1},"ownership":{"default":2,"Hp9ImM4o9YRTSdfu":3},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.3.13","coreVersion":"10.291","createdTime":1671050461625,"modifiedTime":1671050523352,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
 | 
			
		||||
{"_id":"jpNASgEPndryQwuX","name":"L'Esprit Thanataire","type":"tarot","folder":"LmM8c5pdDkCsDXka","sort":2100000,"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.tarot-draconique.jpNASgEPndryQwuX"}},"img":"systems/foundryvtt-reve-de-dragon/icons/tarots/dos-tarot.webp","effects":[],"system":{"description":"","descriptionmj":"","concept":"Cauchemar, Mort, Destin Funèbre, Haine","aspect":"Négatif","frequence":1},"ownership":{"default":2,"Hp9ImM4o9YRTSdfu":3},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.3.13","coreVersion":"10.291","createdTime":1671050461625,"modifiedTime":1671050523352,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
 | 
			
		||||
{"_id":"miO25LLlwPyOAGeR","name":"La Vierge","type":"tarot","folder":"LmM8c5pdDkCsDXka","sort":600000,"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.tarot-draconique.miO25LLlwPyOAGeR"}},"img":"systems/foundryvtt-reve-de-dragon/icons/tarots/dos-tarot.webp","effects":[],"system":{"description":"","descriptionmj":"","concept":"Paix, Beaume, Harmonie","aspect":"Positif","frequence":1},"ownership":{"default":2,"Hp9ImM4o9YRTSdfu":3},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.3.13","coreVersion":"10.291","createdTime":1671050461625,"modifiedTime":1671050523352,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}}
 | 
			
		||||
 
 | 
			
		||||
@@ -93,6 +93,7 @@
 | 
			
		||||
  --background-control-selected: linear-gradient(to bottom, hsla(0, 100%, 25%, 0.5) 5%, hsla(0, 100%, 12%, 0.5) 100%);
 | 
			
		||||
  --background-tooltip: hsla(60, 12%, 85%, 0.95);
 | 
			
		||||
  --background-error:hsla(16, 100%, 50%, 0.8);
 | 
			
		||||
  --color-profile-border: hsla(0, 0%, 80%, 0.05);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/*@import url("https://fonts.googleapis.com/css2?family=Martel:wght@400;800&family=Roboto:wght@300;400;500&display=swap");*/
 | 
			
		||||
@@ -135,7 +136,7 @@ section.window-content div.dialog-buttons {
 | 
			
		||||
.strong-text {
 | 
			
		||||
  font-weight: bold;
 | 
			
		||||
}
 | 
			
		||||
i:is(.fas, .far) {
 | 
			
		||||
i:is(.fas, .far, .fa-solid, .fa-regular, .fa-sharp ) {
 | 
			
		||||
  font-size: smaller;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@@ -195,10 +196,10 @@ i:is(.fas, .far) {
 | 
			
		||||
  flex: 0 0 110px;
 | 
			
		||||
  height: 110px;
 | 
			
		||||
  width: 110px;
 | 
			
		||||
  margin-right: 0.5rem;
 | 
			
		||||
  object-fit: scale-down;
 | 
			
		||||
  object-position: 50% 0;
 | 
			
		||||
  margin: 0.1rem;
 | 
			
		||||
  padding: 0.2rem;
 | 
			
		||||
  object-fit: contain;
 | 
			
		||||
  background-color: var(--color-profile-border);
 | 
			
		||||
  border: 1px solid var(--color-profile-border);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.system-foundryvtt-reve-de-dragon .rdd-item-sheet-tarot img.profile-img {
 | 
			
		||||
@@ -210,6 +211,7 @@ i:is(.fas, .far) {
 | 
			
		||||
  border: none;
 | 
			
		||||
  margin-right: 5px;
 | 
			
		||||
  object-position: 50% 0;
 | 
			
		||||
  object-fit: contain;
 | 
			
		||||
}
 | 
			
		||||
.system-foundryvtt-reve-de-dragon img.equipement-inutilisable {
 | 
			
		||||
  vertical-align: bottom ;
 | 
			
		||||
@@ -526,7 +528,7 @@ input:is(.blessure-premiers_soins, .blessure-soins_complets) {
 | 
			
		||||
  text-shadow: 1px 1px 4px rgba(60, 60, 60, 1);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.rdd-dialog-select-target img.select-token-img {
 | 
			
		||||
.rdd-dialog-select img.select-img {
 | 
			
		||||
  -webkit-box-flex: 0;
 | 
			
		||||
  -ms-flex: 0 0 48px;
 | 
			
		||||
  flex: 0 0 48px;
 | 
			
		||||
@@ -538,7 +540,7 @@ input:is(.blessure-premiers_soins, .blessure-soins_complets) {
 | 
			
		||||
  vertical-align: baseline;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.rdd-dialog-select-target li.select-target {
 | 
			
		||||
.rdd-dialog-select li.select-choice {
 | 
			
		||||
  vertical-align: baseline;
 | 
			
		||||
  padding: 0.1rem;
 | 
			
		||||
}
 | 
			
		||||
@@ -786,6 +788,10 @@ input:is(.blessure-premiers_soins, .blessure-soins_complets) {
 | 
			
		||||
.rdd-roll-dialog div.dialog-content input {
 | 
			
		||||
  font-size: 1rem;
 | 
			
		||||
}
 | 
			
		||||
.rdd-roll-dialog div.dialog-content input[type="checkbox"]{
 | 
			
		||||
  width: 1rem;
 | 
			
		||||
  vertical-align: sub;
 | 
			
		||||
}
 | 
			
		||||
.rdd-roll-part {
 | 
			
		||||
  align-items: center;
 | 
			
		||||
  border-radius: 6px; padding: 3px;
 | 
			
		||||
@@ -957,12 +963,6 @@ section.sheet-body {
 | 
			
		||||
  padding: 0.25rem 0.5rem;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.sheet header.sheet-header :is(.profile-img, .profile-img-token) {
 | 
			
		||||
  object-fit: scale-down;
 | 
			
		||||
  object-position: 50% 0;
 | 
			
		||||
  margin: 0.5rem 0 0.5rem  0.5rem;
 | 
			
		||||
  padding: 0;
 | 
			
		||||
}
 | 
			
		||||
.sheet header.sheet-header h1 {
 | 
			
		||||
  flex: 3;
 | 
			
		||||
}
 | 
			
		||||
@@ -1361,43 +1361,37 @@ table.table-nombres-astraux tr:hover {
 | 
			
		||||
  justify-content: flex-start;
 | 
			
		||||
  flex-direction: column;
 | 
			
		||||
  position: absolute;
 | 
			
		||||
  top: 2.75rem;
 | 
			
		||||
  right: 4rem;
 | 
			
		||||
  top: 4.6rem;
 | 
			
		||||
  right: 3.5rem;
 | 
			
		||||
}
 | 
			
		||||
.token-hud-ext.soins {
 | 
			
		||||
  justify-content: flex-start;
 | 
			
		||||
  flex-direction: column;
 | 
			
		||||
  position: absolute;
 | 
			
		||||
  top: 13.2rem;
 | 
			
		||||
  left: -5rem;
 | 
			
		||||
  max-width: 8.5rem
 | 
			
		||||
  top: 14.7rem;
 | 
			
		||||
  left: -6rem;
 | 
			
		||||
  max-width: 8rem;
 | 
			
		||||
  line-height: 1rem;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.token-hud-ext.right {
 | 
			
		||||
  justify-content: flex-start;
 | 
			
		||||
  flex-direction: column;
 | 
			
		||||
  position: absolute;
 | 
			
		||||
  top: 2.75rem;
 | 
			
		||||
  left: 4rem;
 | 
			
		||||
  top: 4.6rem;
 | 
			
		||||
  left: 3.5rem;
 | 
			
		||||
}
 | 
			
		||||
.control-icon.token-hud-icon {
 | 
			
		||||
  width: fit-content;
 | 
			
		||||
div.control-icon.token-hud-icon {
 | 
			
		||||
  width: 9rem;
 | 
			
		||||
  height: fit-content;
 | 
			
		||||
  border-radius: 0.3rem;
 | 
			
		||||
  min-width: 6rem;
 | 
			
		||||
  flex-basis: auto;
 | 
			
		||||
  padding: 0;
 | 
			
		||||
  line-height: 1rem;
 | 
			
		||||
  line-height: 0.95rem;
 | 
			
		||||
  margin: 0.2rem;
 | 
			
		||||
}
 | 
			
		||||
.control-icon.token-hud-icon.right {
 | 
			
		||||
  margin-left: 8px;
 | 
			
		||||
}
 | 
			
		||||
.rdd-hud-menu label {
 | 
			
		||||
  font-size: 0.8rem;
 | 
			
		||||
}
 | 
			
		||||
#token-hud .status-effects.active{
 | 
			
		||||
  z-index: 2;
 | 
			
		||||
}
 | 
			
		||||
/* ======================================== */
 | 
			
		||||
.item-checkbox {
 | 
			
		||||
  height: 25px;
 | 
			
		||||
@@ -1456,6 +1450,9 @@ table.table-nombres-astraux tr:hover {
 | 
			
		||||
  transition: opacity 0.3s;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.tendre-moment {
 | 
			
		||||
  color: hsla(293, 72%, 44%, 0.8);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/* ======================================== */
 | 
			
		||||
/* Fatigue CSS */
 | 
			
		||||
@@ -1528,6 +1525,8 @@ table.table-nombres-astraux tr:hover {
 | 
			
		||||
  float: left;
 | 
			
		||||
  max-width: 64px;
 | 
			
		||||
  max-height: 64px;
 | 
			
		||||
  height: 100%;
 | 
			
		||||
  object-fit: contain;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
#sidebar-tabs {
 | 
			
		||||
@@ -1934,6 +1933,14 @@ div.calendar-timestamp-edit select.calendar-signe-heure {
 | 
			
		||||
  padding: 3px;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
aside#tooltip{
 | 
			
		||||
  background: var(--background-tooltip);
 | 
			
		||||
  color: var(--color-text-dark-primary);
 | 
			
		||||
  font-size: 1rem;
 | 
			
		||||
  border-radius: 0.2rem;
 | 
			
		||||
  padding: 0.4rem;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.tooltip :is(.ttt-xp,.ttt-levelup) {
 | 
			
		||||
  width: 250px;
 | 
			
		||||
  background: var(--background-tooltip) !important;
 | 
			
		||||
 
 | 
			
		||||
@@ -1,8 +1,8 @@
 | 
			
		||||
{
 | 
			
		||||
  "id": "foundryvtt-reve-de-dragon",
 | 
			
		||||
  "title": "Rêve de Dragon",
 | 
			
		||||
  "version": "v11.2.1",
 | 
			
		||||
  "download": "https://www.uberwald.me/gitea/public/foundryvtt-reve-de-dragon/archive/foundryvtt-reve-de-dragon-v11.2.1.zip",
 | 
			
		||||
  "version": "11.2.12",
 | 
			
		||||
  "download": "https://www.uberwald.me/gitea/public/foundryvtt-reve-de-dragon/archive/foundryvtt-reve-de-dragon-11.2.12.zip",
 | 
			
		||||
  "manifest": "https://www.uberwald.me/gitea/public/foundryvtt-reve-de-dragon/raw/v11/system.json",
 | 
			
		||||
  "changelog": "https://www.uberwald.me/gitea/public/foundryvtt-reve-de-dragon/raw/branch/v11/changelog.md",
 | 
			
		||||
  "compatibility": {
 | 
			
		||||
 
 | 
			
		||||
@@ -4,14 +4,14 @@
 | 
			
		||||
  <header class="sheet-header">
 | 
			
		||||
    <div class="header-fields">
 | 
			
		||||
      <div class="flexrow">
 | 
			
		||||
        <img class="profile-img" src="{{img}}" data-edit="img" title="{{name}}" />
 | 
			
		||||
        <img class="profile-img" src="{{img}}" data-edit="img" data-tooltip="{{name}}" />
 | 
			
		||||
        <div class="flexcol">
 | 
			
		||||
          <div class="flexrow">
 | 
			
		||||
            <h1 class="charname"><input name="name" type="text" value="{{name}}" placeholder="Name" /></h1>
 | 
			
		||||
            <div class="header-buttons">
 | 
			
		||||
              <span class="encaisser-direct"><a title="Encaisser des dommages"><img class="button-img" src="icons/svg/bones.svg" alt="Encaisser des dommages"/></a></span>
 | 
			
		||||
              <span class="encaisser-direct"><a><img class="button-img" src="icons/svg/bones.svg" data-tooltip="Encaisser des dommages"/></a></span>
 | 
			
		||||
              {{#if @root.options.isGM}}
 | 
			
		||||
              <span class="remise-a-neuf"><a title="Remise à neuf"><img class="button-img" src="icons/svg/regen.svg" alt="Remise à neuf"/></a></span>
 | 
			
		||||
              <span class="remise-a-neuf"><a><img class="button-img" src="icons/svg/regen.svg" data-tooltip="Remise à neuf"/></a></span>
 | 
			
		||||
              {{/if}}
 | 
			
		||||
            </div>
 | 
			
		||||
          </div>
 | 
			
		||||
 
 | 
			
		||||
@@ -4,14 +4,14 @@
 | 
			
		||||
  <header class="sheet-header">
 | 
			
		||||
    <div class="header-fields">
 | 
			
		||||
      <div class="flexrow">
 | 
			
		||||
        <img class="profile-img" src="{{img}}" data-edit="img" title="{{name}}" />
 | 
			
		||||
        <img class="profile-img" src="{{img}}" data-edit="img" data-tooltip="{{name}}" />
 | 
			
		||||
        <div class="flexcol">
 | 
			
		||||
          <div class="flexrow">
 | 
			
		||||
            <h1 class="charname"><input name="name" type="text" value="{{name}}" placeholder="Name" /></h1>
 | 
			
		||||
            <div class="header-buttons">
 | 
			
		||||
              <span class="encaisser-direct"><a title="Encaisser des dommages"><img class="button-img" src="icons/svg/bones.svg" alt="Encaisser des dommages"/></a></span>
 | 
			
		||||
              <span class="encaisser-direct"><a><img class="button-img" src="icons/svg/bones.svg" data-tooltip="Encaisser des dommages"/></a></span>
 | 
			
		||||
              {{#if @root.options.isGM}}
 | 
			
		||||
              <span class="remise-a-neuf"><a title="Remise à neuf"><img class="button-img" src="icons/svg/regen.svg" alt="Remise à neuf"/></a></span>
 | 
			
		||||
              <span class="remise-a-neuf"><a><img class="button-img" src="icons/svg/regen.svg" data-tooltip="Remise à neuf"/></a></span>
 | 
			
		||||
              {{/if}}
 | 
			
		||||
            </div>
 | 
			
		||||
          </div>
 | 
			
		||||
 
 | 
			
		||||
@@ -10,7 +10,7 @@
 | 
			
		||||
            {{>"systems/foundryvtt-reve-de-dragon/templates/actor/header-buttons.html"}}
 | 
			
		||||
          </div>
 | 
			
		||||
          <div class="flexrow">
 | 
			
		||||
            <img class="profile-img" src="{{img}}" data-edit="img" title="{{name}}" />
 | 
			
		||||
            <img class="profile-img" src="{{img}}" data-edit="img" data-tooltip="{{name}}" />
 | 
			
		||||
            {{>"systems/foundryvtt-reve-de-dragon/templates/actor/header-compteurs.html"}}
 | 
			
		||||
            {{>"systems/foundryvtt-reve-de-dragon/templates/actor/header-etat.html"}}
 | 
			
		||||
            {{>"systems/foundryvtt-reve-de-dragon/templates/actor/header-hautreve.html"}}
 | 
			
		||||
@@ -22,14 +22,14 @@
 | 
			
		||||
    {{!-- Sheet Tab Navigation --}}
 | 
			
		||||
    <nav class="sheet-tabs tabs" data-group="primary">
 | 
			
		||||
      {{#if options.isObserver}}
 | 
			
		||||
      <a class="item" data-tab="carac">Carac.</a>
 | 
			
		||||
      <a class="item" data-tab="competences">Compétences</a>
 | 
			
		||||
      <a class="item" data-tab="combat">Combat</a>
 | 
			
		||||
      <a class="item" data-tab="connaissances">Savoirs&Taches</a>
 | 
			
		||||
      <a class="item" data-tab="hautreve">Haut-Rêve</a>
 | 
			
		||||
      <a class="item" data-tab="carac" data-tooltip="Caractéristiques">Carac.</a>
 | 
			
		||||
      <a class="item" data-tab="competences" data-tooltip="Caractéristiques">Compétences</a>
 | 
			
		||||
      <a class="item" data-tab="combat" data-tooltip="Combat et santé">Combat</a>
 | 
			
		||||
      <a class="item" data-tab="connaissances" data-tooltip="Savoirs et tâches">Savoirs&Taches</a>
 | 
			
		||||
      <a class="item" data-tab="hautreve" data-tooltip="Haut-rêve">Haut-Rêve</a>
 | 
			
		||||
      {{/if}}
 | 
			
		||||
      <a class="item" data-tab="items">Équipement</a>
 | 
			
		||||
      <a class="item" data-tab="description">Description</a>
 | 
			
		||||
      <a class="item" data-tab="items" data-tooltip="Liste d'équipement">Équipement</a>
 | 
			
		||||
      <a class="item" data-tab="description" data-tooltip="Description et compagnons">Description</a>
 | 
			
		||||
    </nav>
 | 
			
		||||
 | 
			
		||||
    {{!-- Sheet Body --}}
 | 
			
		||||
@@ -70,9 +70,13 @@
 | 
			
		||||
            {{#if options.vueDetaillee}}
 | 
			
		||||
                
 | 
			
		||||
              {{#if @root.options.vueArchetype}}
 | 
			
		||||
              <a class="competence-archetype toggle-archetype chat-card-button-pushed"><i class="fa-solid fa-up-right-from-square"></i>Incarnation</a>
 | 
			
		||||
              <a class="competence-archetype toggle-archetype chat-card-button-pushed" data-tooltip="Retour à la vue détaillée des compétences">
 | 
			
		||||
                <i class="fa-solid fa-up-right-from-square"></i>Incarnation
 | 
			
		||||
              </a>
 | 
			
		||||
              {{else}}
 | 
			
		||||
              <a class="competence-archetype toggle-archetype chat-card-button"><i class="fa-solid fa-people-line"></i>Archétype</a>
 | 
			
		||||
              <a class="competence-archetype toggle-archetype chat-card-button" data-tooltip="Gestion de l'archétype et de la réincarnation">
 | 
			
		||||
                <i class="fa-solid fa-people-line"></i>Archétype
 | 
			
		||||
              </a>
 | 
			
		||||
              {{/if}}
 | 
			
		||||
            {{/if}}
 | 
			
		||||
          </span>
 | 
			
		||||
@@ -140,12 +144,10 @@
 | 
			
		||||
      <div class="tab items" data-group="primary" data-tab="items">
 | 
			
		||||
        {{> "systems/foundryvtt-reve-de-dragon/templates/actor/inventaire-monnaie.html"}}
 | 
			
		||||
        {{> "systems/foundryvtt-reve-de-dragon/templates/actor/inventaire.html"}}
 | 
			
		||||
        {{> "systems/foundryvtt-reve-de-dragon/templates/actor/liens-animaux.html"}}
 | 
			
		||||
        {{> "systems/foundryvtt-reve-de-dragon/templates/actor/liens-suivants.html"}}
 | 
			
		||||
        {{> "systems/foundryvtt-reve-de-dragon/templates/actor/liens-vehicules.html"}}
 | 
			
		||||
 | 
			
		||||
        {{> "systems/foundryvtt-reve-de-dragon/templates/actor/liens-animaux.hbs"}}
 | 
			
		||||
        {{> "systems/foundryvtt-reve-de-dragon/templates/actor/liens-vehicules.hbs"}}
 | 
			
		||||
      </div>
 | 
			
		||||
 | 
			
		||||
      
 | 
			
		||||
      {{!-- Biography Tab --}}
 | 
			
		||||
      <div class="tab biography" data-group="primary" data-tab="description">        
 | 
			
		||||
        <article class="flexrow">
 | 
			
		||||
@@ -202,6 +204,10 @@
 | 
			
		||||
          </ul>
 | 
			
		||||
        </article>
 | 
			
		||||
 | 
			
		||||
        <article class="flexcol">
 | 
			
		||||
          {{> "systems/foundryvtt-reve-de-dragon/templates/actor/liens-suivants.hbs"}}
 | 
			
		||||
        </article>
 | 
			
		||||
 | 
			
		||||
        <article class="flexcol">
 | 
			
		||||
          <h3>Biographie : </h3>
 | 
			
		||||
          <div class="form-group large-editor">
 | 
			
		||||
 
 | 
			
		||||
@@ -4,7 +4,7 @@
 | 
			
		||||
  <header class="sheet-header">
 | 
			
		||||
    <div class="header-fields">
 | 
			
		||||
      <div class="flexrow">
 | 
			
		||||
        <img class="profile-img" src="{{img}}" data-edit="img" title="{{name}}" />
 | 
			
		||||
        <img class="profile-img" src="{{img}}" data-edit="img" data-tooltip="{{name}}" />
 | 
			
		||||
        <div class="flexcol">
 | 
			
		||||
          <h1 class="charname"><input name="name" type="text" value="{{name}}" placeholder="Name" /></h1>
 | 
			
		||||
          <div class="flexrow">
 | 
			
		||||
@@ -12,19 +12,19 @@
 | 
			
		||||
              <ul>
 | 
			
		||||
                <li data-attribute="resistance" class="flexrow">
 | 
			
		||||
                  <span class="carac-label">Résistance</span>
 | 
			
		||||
                  <a class="resistance-moins"><i class="fas fa-minus-square"></i></a>
 | 
			
		||||
                  <a class="resistance-moins"><i class="fa-solid fa-square-minus"></i></a>
 | 
			
		||||
                  <input type="text" name="system.etat.resistance.value" value="{{system.etat.resistance.value}}" data-dtype="Number" />
 | 
			
		||||
                  /
 | 
			
		||||
                  <input type="text" name="system.etat.resistance.max" value="{{system.etat.resistance.max}}" data-dtype="Number" {{#unless @root.options.vueDetaillee}}disabled{{/unless}} />
 | 
			
		||||
                  <a class="resistance-plus"><i class="fas fa-plus-square"></i></a>
 | 
			
		||||
                  <a class="resistance-plus"><i class="fa-solid fa-square-plus"></i></a>
 | 
			
		||||
                </li>
 | 
			
		||||
                <li data-attribute="structure" class="flexrow">
 | 
			
		||||
                  <span class="carac-label">Structure</span>
 | 
			
		||||
                  <a class="structure-moins"><i class="fas fa-minus-square"></i></a>
 | 
			
		||||
                  <a class="structure-moins"><i class="fa-solid fa-square-minus"></i></a>
 | 
			
		||||
                  <input type="text" name="system.etat.structure.value" value="{{system.etat.structure.value}}" data-dtype="Number" />
 | 
			
		||||
                  /
 | 
			
		||||
                  <input type="text" name="system.etat.structure.max" value="{{system.etat.structure.max}}" data-dtype="Number" {{#unless @root.options.vueDetaillee}}disabled{{/unless}} />
 | 
			
		||||
                  <a class="structure-plus"><i class="fas fa-plus-square"></i></a>
 | 
			
		||||
                  <a class="structure-plus"><i class="fa-solid fa-square-plus"></i></a>
 | 
			
		||||
                </li>
 | 
			
		||||
              </ul>
 | 
			
		||||
            </div>
 | 
			
		||||
 
 | 
			
		||||
@@ -4,8 +4,8 @@
 | 
			
		||||
  {{#each (trier recettesAlchimiques) as |recette id|}}
 | 
			
		||||
  <li class="item flexrow list-item" data-item-id="{{recette._id}}"><span class="competence-title recette-label item-edit"><a>{{recette.name}}</a></span>
 | 
			
		||||
    <div class="item-controls flex-shrink">
 | 
			
		||||
      <a class="item-edit" title="Edit Item"><i class="fas fa-edit"></i></a>
 | 
			
		||||
      <a class="item-delete" title="Delete Item"><i class="fas fa-trash"></i></a>
 | 
			
		||||
      <a class="item-edit" data-tooltip="Edit Item"><i class="fas fa-edit"></i></a>
 | 
			
		||||
      <a class="item-delete" data-tooltip="Delete Item"><i class="fas fa-trash"></i></a>
 | 
			
		||||
    </div>
 | 
			
		||||
  </li>
 | 
			
		||||
  {{/each}}
 | 
			
		||||
 
 | 
			
		||||
@@ -2,7 +2,8 @@
 | 
			
		||||
  <ul class="item-list">
 | 
			
		||||
    {{#if @root.options.isGM}}
 | 
			
		||||
    <li>
 | 
			
		||||
    <a class="nouvelle-incarnation chat-card-button"><i class="fa-solid fa-person-circle-plus"></i> Nouvelle incarnation</a>
 | 
			
		||||
    <a class="nouvelle-incarnation chat-card-button" data-tooltip="Création d'une nouvelle incarnation de l'archétype">
 | 
			
		||||
      <i class="fa-solid fa-person-circle-plus"></i> Nouvelle incarnation</a>
 | 
			
		||||
    </li>
 | 
			
		||||
    {{/if}}
 | 
			
		||||
    <li><hr></li>
 | 
			
		||||
 
 | 
			
		||||
@@ -1,2 +1,7 @@
 | 
			
		||||
<h3>Astrologie</h3>
 | 
			
		||||
<span class="astrologie-label"><a name="jet-astrologie">Astrologie : Nombres Astraux</a></span>
 | 
			
		||||
<span class="astrologie-label chat-card-button">
 | 
			
		||||
  <a name="jet-astrologie">
 | 
			
		||||
    <i class="fa-solid fa-moon-over-sun"></i>
 | 
			
		||||
    Astrologie: Nombres Astraux
 | 
			
		||||
  </a>
 | 
			
		||||
</span>
 | 
			
		||||
 
 | 
			
		||||
@@ -1,7 +1,7 @@
 | 
			
		||||
<li class="item item-blessure flexrow list-item blessure-active-{{lowercase system.label}}" data-item-id="{{id}}">
 | 
			
		||||
<li class="item item-blessure flexrow list-item blessure-active-{{lowercase system.label}}" data-item-id="{{id}}"
 | 
			
		||||
    data-tooltip="Blessure {{system.label}}">
 | 
			
		||||
  <span class="blessure-control">
 | 
			
		||||
    <img class="sheet-competence-img" src="{{img}}" />
 | 
			
		||||
    <i class="fas fa-skull-crossbones"></i>
 | 
			
		||||
    {{system.label}} 
 | 
			
		||||
  </span>
 | 
			
		||||
  {{#if (gt system.gravite 6)}}
 | 
			
		||||
@@ -34,8 +34,8 @@
 | 
			
		||||
  {{#if system.localisation}}<span>{{system.localisation}}</span>{{/if}}
 | 
			
		||||
  </span>
 | 
			
		||||
  <span class="item-controls">
 | 
			
		||||
    <a class="item-edit" title="Editer"><i class="fas fa-edit"></i></a>
 | 
			
		||||
    <a class="item-delete" title="Supprimer"><i class="fas fa-trash"></i></a>
 | 
			
		||||
    <a class="item-montrer" title="Montrer"><i class="fas fa-comment"></i></a>
 | 
			
		||||
    <a class="item-edit" data-tooltip="Editer"><i class="fas fa-edit"></i></a>
 | 
			
		||||
    <a class="item-delete" data-tooltip="Supprimer"><i class="fas fa-trash"></i></a>
 | 
			
		||||
    <a class="item-montrer" data-tooltip="Montrer"><i class="fas fa-comment"></i></a>
 | 
			
		||||
  </span>
 | 
			
		||||
</li>
 | 
			
		||||
 
 | 
			
		||||
@@ -1,8 +1,8 @@
 | 
			
		||||
<h4>blessures</h4>
 | 
			
		||||
<div>
 | 
			
		||||
  <a class="chat-card-button creer-blessure-legere"><i class="fas fa-plus-circle"></i> légère</a>
 | 
			
		||||
  <a class="chat-card-button creer-blessure-grave"><i class="fas fa-plus-circle"></i> grave</a>
 | 
			
		||||
  <a class="chat-card-button creer-blessure-critique"><i class="fas fa-plus-circle"></i> critique</a>
 | 
			
		||||
  <a class="chat-card-button creer-blessure-legere" data-tooltip="Ajouter une blessure légère"><i class="fas fa-plus-circle"></i> légère</a>
 | 
			
		||||
  <a class="chat-card-button creer-blessure-grave" data-tooltip="Ajouter une blessure grave"><i class="fas fa-plus-circle"></i> grave</a>
 | 
			
		||||
  <a class="chat-card-button creer-blessure-critique" data-tooltip="Ajouter une blessure critque"><i class="fas fa-plus-circle"></i> critique</a>
 | 
			
		||||
</div>
 | 
			
		||||
 | 
			
		||||
<ul class="item-list alterne-list">
 | 
			
		||||
 
 | 
			
		||||
@@ -7,7 +7,7 @@
 | 
			
		||||
  <br>
 | 
			
		||||
  <li class="caracteristique flexrow list-item">
 | 
			
		||||
    <label class="flexrow derivee-label">{{system.compteurs.stress.label}}
 | 
			
		||||
      <a class="stress-test" title="Transformer le stress"><i class="fa-regular fa-moon"></i></a>
 | 
			
		||||
      <a class="stress-test" data-tooltip="Transformer le stress"><i class="fa-regular fa-moon"></i></a>
 | 
			
		||||
    </label>
 | 
			
		||||
    <input class="derivee-value" type="number" name="system.compteurs.stress.value" value="{{system.compteurs.stress.value}}" data-dtype="number"/>
 | 
			
		||||
  </li>
 | 
			
		||||
@@ -15,9 +15,9 @@
 | 
			
		||||
    <label class="derivee-label">{{system.compteurs.moral.label}}
 | 
			
		||||
 | 
			
		||||
      <span>
 | 
			
		||||
        <a class="flex-shrink moral-malheureux" title="Jet de moral situation malheureuse"><i class="fa-regular fa-face-frown"></i></a>
 | 
			
		||||
        <a class="flex-shrink moral-neutre" title="Jet de moral situation neutre"><i class="fa-regular fa-face-meh"></i></a>
 | 
			
		||||
        <a class="flex-shrink moral-heureux" title="Jet de moral situation heureuse"><i class="fa-regular fa-face-smile"></i></a>
 | 
			
		||||
        <a class="flex-shrink moral-malheureux" data-tooltip="Jet de moral situation malheureuse"><i class="fa-regular fa-face-frown"></i></a>
 | 
			
		||||
        <a class="flex-shrink moral-neutre" data-tooltip="Jet de moral situation neutre"><i class="fa-regular fa-face-meh"></i></a>
 | 
			
		||||
        <a class="flex-shrink moral-heureux" data-tooltip="Jet de moral situation heureuse"><i class="fa-regular fa-face-smile"></i></a>
 | 
			
		||||
      </span>
 | 
			
		||||
    </label>
 | 
			
		||||
    <input class="derivee-value" type="number" name="system.compteurs.moral.value" value="{{system.compteurs.moral.value}}" data-dtype="number"/>
 | 
			
		||||
@@ -29,7 +29,7 @@
 | 
			
		||||
    <input class="derivee-value" type="number" name="system.compteurs.dissolution.value" value="{{system.compteurs.dissolution.value}}" data-dtype="number"/>
 | 
			
		||||
  </li>
 | 
			
		||||
  <li class="caracteristique flexrow list-item">
 | 
			
		||||
    <label class="derivee-label chance-actuelle"><a>Chance actuelle</a></label>
 | 
			
		||||
    <label class="derivee-label chance-actuelle" data-tooltip="Jet de chance actuelle"><a>Chance actuelle</a></label>
 | 
			
		||||
    <input class="derivee-value" type="number" name="system.compteurs.chance.value" value="{{system.compteurs.chance.value}}" data-dtype="number"/>
 | 
			
		||||
  </li>
 | 
			
		||||
  <li class="caracteristique flexrow list-item">
 | 
			
		||||
@@ -52,7 +52,7 @@
 | 
			
		||||
    <label class="derivee-label" for="system.compteurs.eau.value">bu</label>
 | 
			
		||||
    <input class="derivee-value" type="number" name="system.compteurs.eau.value" value="{{system.compteurs.eau.value}}" data-dtype="number"/>
 | 
			
		||||
  </li>  
 | 
			
		||||
  <li class="caracteristique flexrow list-item">
 | 
			
		||||
  <li class="caracteristique flexrow list-item"  data-tooltip="Niveau d'éthylisme">
 | 
			
		||||
    <label class="derivee-label" for="system.compteurs.ethylisme.value">{{system.compteurs.ethylisme.label}}</label>
 | 
			
		||||
    <select class="derivee-value" name="system.compteurs.ethylisme.value" data-dtype="Number">
 | 
			
		||||
      {{#select system.compteurs.ethylisme.value}}
 | 
			
		||||
 
 | 
			
		||||
@@ -17,7 +17,7 @@
 | 
			
		||||
              Vous pouvez dépenser {{carac.xpNext}} points d'Experience pour augmenter de 1 votre caractéristique {{carac.label}}
 | 
			
		||||
              </span>
 | 
			
		||||
              <a name={{key}}>{{carac.label}}</a>
 | 
			
		||||
              <a class="carac-xp-augmenter" name="augmenter.{{key}}" title="Augmenter">
 | 
			
		||||
              <a class="carac-xp-augmenter" name="augmenter.{{key}}" data-tooltip="Augmenter la caractéristique avec l'expérience">
 | 
			
		||||
                <i class="fas fa-arrow-alt-circle-up"></i>
 | 
			
		||||
              </a>
 | 
			
		||||
            </span>
 | 
			
		||||
 
 | 
			
		||||
@@ -1,21 +1,20 @@
 | 
			
		||||
<h4>Soins</h4>
 | 
			
		||||
<div>
 | 
			
		||||
  <a class="chat-card-button creer-tache-blessure-legere"><i class="fas fa-first-aid"></i> légère</a>
 | 
			
		||||
  <a class="chat-card-button creer-tache-blessure-grave"><i class="fas fa-first-aid"></i> grave</a>
 | 
			
		||||
  <a class="chat-card-button creer-tache-blessure-critique"><i class="fas fa-first-aid"></i> critique</a>
 | 
			
		||||
  <a class="chat-card-button creer-tache-blessure-legere" data-tooltip="Soigner une blessure légère"><i class="fas fa-first-aid"></i> légère</a>
 | 
			
		||||
  <a class="chat-card-button creer-tache-blessure-grave" data-tooltip="Soigner une blessure grave"><i class="fas fa-first-aid"></i> grave</a>
 | 
			
		||||
  <a class="chat-card-button creer-tache-blessure-critique" data-tooltip="Soigner une blessure critique"><i class="fas fa-first-aid"></i> critique</a>
 | 
			
		||||
</div>
 | 
			
		||||
<ul class="item-list alterne-list">
 | 
			
		||||
  {{#each taches as |tache id|}}
 | 
			
		||||
    {{#if (eq tache.system.competence 'Chirurgie')}}
 | 
			
		||||
    <li class="item flexrow list-item" data-item-id="{{tache._id}}">
 | 
			
		||||
      <img class="sheet-competence-img" src="{{tache.img}}" />
 | 
			
		||||
    <li class="item flexrow list-item" data-item-id="{{tache._id}}"
 | 
			
		||||
      data-tooltip="Premiers soins: {{tache.name}} ({{tache.system.points_de_tache_courant}}/{{tache.system.points_de_tache}})">
 | 
			
		||||
      <img class="sheet-competence-img" src="{{tache.img}}"/>
 | 
			
		||||
      <span class="competence-title tache-label"><a>{{tache.name}}
 | 
			
		||||
        ({{tache.system.points_de_tache_courant}}{{#if
 | 
			
		||||
          (or @root.options.isGM (not tache.system.cacher_points_de_tache))
 | 
			
		||||
        }}/{{tache.system.points_de_tache}}{{/if}})</a></span>
 | 
			
		||||
        ({{tache.system.points_de_tache_courant}}/{{tache.system.points_de_tache}})</a></span>
 | 
			
		||||
      <div class="item-controls flex-shrink">
 | 
			
		||||
        <a class="item-edit" title="Edit Item"><i class="fas fa-edit"></i></a>
 | 
			
		||||
        <a class="item-delete" title="Delete Item"><i class="fas fa-trash"></i></a>
 | 
			
		||||
        <a class="item-edit" data-tooltip="Edit Item"><i class="fas fa-edit"></i></a>
 | 
			
		||||
        <a class="item-delete" data-tooltip="Delete Item"><i class="fas fa-trash"></i></a>
 | 
			
		||||
      </div>
 | 
			
		||||
    </li>
 | 
			
		||||
    {{/if}}
 | 
			
		||||
 
 | 
			
		||||
@@ -10,11 +10,12 @@
 | 
			
		||||
  <li class="item flexrow list-item"
 | 
			
		||||
      data-item-id="{{arme._id}}"
 | 
			
		||||
      data-arme-name="{{arme.name}}"
 | 
			
		||||
      data-competence-name="{{arme.system.competence}}" >
 | 
			
		||||
      data-competence-name="{{arme.system.competence}}" 
 | 
			
		||||
      data-tooltip="{{arme.name}}: niveau {{plusMoins arme.system.niveau}}">
 | 
			
		||||
    <span class="arme-label">
 | 
			
		||||
      <a>
 | 
			
		||||
        {{#if arme.img}}
 | 
			
		||||
        <img class="sheet-competence-img" src="{{arme.img}}"/>
 | 
			
		||||
        <img class="sheet-competence-img" src="{{arme.img}}" data-tooltip="{{arme.name}}"/>
 | 
			
		||||
        {{/if}}
 | 
			
		||||
        <span>{{arme.name}}</span>
 | 
			
		||||
      </a>
 | 
			
		||||
@@ -24,14 +25,15 @@
 | 
			
		||||
    <span class="competence-value">{{plusMoins arme.system.niveau}}</span>
 | 
			
		||||
    <span class="competence-value">{{plusMoins arme.system.dommagesReels}}</span>
 | 
			
		||||
    <span class="competence-value"></span>
 | 
			
		||||
    <span class="initiative-value arme-initiative"><a>{{arme.system.initiative}}</a></span>
 | 
			
		||||
    <span class="initiative-value arme-initiative"><a data-tooltip="{{arme.name}}: initiative {{plusMoins arme.system.initiative}}">{{arme.system.initiative}}</a></span>
 | 
			
		||||
  </li>
 | 
			
		||||
  {{/each}}
 | 
			
		||||
  {{#each esquives as |esq key|}}
 | 
			
		||||
  <li class="item flexrow list-item" data-item-id="{{esq._id}}">
 | 
			
		||||
  <li class="item flexrow list-item" data-item-id="{{esq._id}}"
 | 
			
		||||
    data-tooltip="{{esq.name}}: niveau {{plusMoins esq.system.niveau}}">
 | 
			
		||||
    <span class="competence-label">
 | 
			
		||||
      <a class="competence-label" name="{{esq.name}}">
 | 
			
		||||
        <img class="sheet-competence-img" src="{{esq.img}}"/>
 | 
			
		||||
        <img class="sheet-competence-img" src="{{esq.img}}" />
 | 
			
		||||
        <span>{{esq.name}}</span>
 | 
			
		||||
      </a>
 | 
			
		||||
    </span>
 | 
			
		||||
@@ -50,7 +52,8 @@
 | 
			
		||||
  </li>
 | 
			
		||||
  {{#each empoignades as |emp key|}}
 | 
			
		||||
  <li class="item flexrow list-item"
 | 
			
		||||
      data-item-id="{{emp._id}}" data-arme-name="{{emp.name}}">
 | 
			
		||||
      data-item-id="{{emp._id}}" data-arme-name="{{emp.name}}"
 | 
			
		||||
      data-tooltip="{{emp.name}}: niveau {{plusMoins emp.system.niveau}}">
 | 
			
		||||
      <span class="empoignade-label">
 | 
			
		||||
      <a>
 | 
			
		||||
        {{#if emp.img}}
 | 
			
		||||
@@ -61,8 +64,8 @@
 | 
			
		||||
    </span>
 | 
			
		||||
    <span class="competence-value">{{emp.system.pointsemp}}</span>
 | 
			
		||||
    <div class="item-controls">
 | 
			
		||||
      <a class="item-edit" title="Edit Item"><i class="fas fa-edit"></i></a>
 | 
			
		||||
      <a class="item-delete" title="Delete Item"><i class="fas fa-trash"></i></a>
 | 
			
		||||
      <a class="item-edit" data-tooltip="Edit Item"><i class="fas fa-edit"></i></a>
 | 
			
		||||
      <a class="item-delete" data-tooltip="Delete Item"><i class="fas fa-trash"></i></a>
 | 
			
		||||
    </div>
 | 
			
		||||
  </li>
 | 
			
		||||
  {{/each}}
 | 
			
		||||
 
 | 
			
		||||
@@ -6,11 +6,11 @@
 | 
			
		||||
      <div class="flexrow">
 | 
			
		||||
        {{#if token}}
 | 
			
		||||
          {{#if options.isOwner}}
 | 
			
		||||
          <img class="profile-img dimmed" src="{{img}}" data-edit="img" title="{{name}}" />
 | 
			
		||||
          <img class="profile-img dimmed" src="{{img}}" data-edit="img"/>
 | 
			
		||||
          {{/if}}
 | 
			
		||||
          <img class="profile-img-token" src="{{token.img}}" title="{{name}}" />
 | 
			
		||||
          <img class="profile-img-token" src="{{token.img}}"/>
 | 
			
		||||
        {{else}}
 | 
			
		||||
        <img class="profile-img" src="{{img}}" data-edit="img" title="{{name}}" />
 | 
			
		||||
        <img class="profile-img" src="{{img}}" data-edit="img"/>
 | 
			
		||||
        {{/if}}
 | 
			
		||||
        <div class="flexcol">
 | 
			
		||||
          <h1 class="charname"><input name="name" type="text" value="{{name}}" placeholder="Name" /></h1>
 | 
			
		||||
@@ -68,10 +68,10 @@
 | 
			
		||||
            <input {{@root.disabled}} type="number" name="services[{{key}}].system.qualite" value="{{service.system.qualite}}" data-dtype="Number" min="-10" max="10"/>
 | 
			
		||||
            <input {{@root.disabled}} type="number" class="input-prix" name="services[{{key}}].system.cout" value="{{numberFormat service.system.cout decimals=2 sign=false}}" data-dtype="Number" min="0" />
 | 
			
		||||
            <div class="item-controls">
 | 
			
		||||
              <a class="service-acheter" title="Acheter"><i class="fa-sharp fa-solid fa-coins"></i></a>
 | 
			
		||||
              <a class="service-acheter" data-tooltip="Acheter"><i class="fa-sharp fa-solid fa-coins"></i></a>
 | 
			
		||||
              {{#unless @root.disabled}}
 | 
			
		||||
              <a class="service-vendre" title="Proposer"><i class="fas fa-comments-dollar"></i></a>
 | 
			
		||||
              <a class="service-delete" title="Supprimer"><i class="fas fa-trash"></i></a>
 | 
			
		||||
              <a class="service-vendre" data-tooltip="Proposer"><i class="fas fa-comments-dollar"></i></a>
 | 
			
		||||
              <a class="service-delete" data-tooltip="Supprimer"><i class="fas fa-trash"></i></a>
 | 
			
		||||
              {{/unless}}
 | 
			
		||||
            </div>
 | 
			
		||||
          </li>
 | 
			
		||||
 
 | 
			
		||||
@@ -9,7 +9,7 @@
 | 
			
		||||
      {{else}}far fa-plus-square
 | 
			
		||||
      {{/if~}}"></i>
 | 
			
		||||
    {{/if}}
 | 
			
		||||
      <img class="sheet-competence-img" src="{{item.img}}" title="{{item.name}}"/>
 | 
			
		||||
      <img class="sheet-competence-img" src="{{item.img}}" data-tooltip="{{item.name}}"/>
 | 
			
		||||
      <span>{{item.name}}</span>
 | 
			
		||||
    </a>
 | 
			
		||||
  </span>
 | 
			
		||||
@@ -17,13 +17,13 @@
 | 
			
		||||
  <span class="equipement-detail-buttons flexrow">
 | 
			
		||||
    {{#unless (or (eq item.type 'service') (and (eq item.type 'conteneur') (not vide)))}}
 | 
			
		||||
      {{#if options.isOwner}}
 | 
			
		||||
      <a class="item-quantite-moins"><i class="fas fa-minus-square"></i></a>
 | 
			
		||||
      <a class="item-quantite-moins"><i class="fa-solid fa-square-minus"></i></a>
 | 
			
		||||
      {{/if}}
 | 
			
		||||
      <input {{#unless options.isOwner}}disabled{{/unless}} type="number" data-dtype="Number" 
 | 
			
		||||
        class="item-quantite number-x3" name="items[{{item._id}}].system.quantite"
 | 
			
		||||
        value="{{item.system.quantite}}" />
 | 
			
		||||
      {{#if options.isOwner}}
 | 
			
		||||
      <a class="item-quantite-plus"><i class="fas fa-plus-square"></i></a>
 | 
			
		||||
      <a class="item-quantite-plus"><i class="fa-solid fa-square-plus"></i></a>
 | 
			
		||||
      {{/if}}
 | 
			
		||||
    {{/unless}}
 | 
			
		||||
  </span>
 | 
			
		||||
@@ -41,19 +41,19 @@
 | 
			
		||||
  </span>
 | 
			
		||||
  <span class="equipement-actions item-controls">
 | 
			
		||||
    {{#if options.isOwner}}
 | 
			
		||||
      <a class="item-edit" title="Editer"><i class="fas fa-edit"></i></a>
 | 
			
		||||
      <a class="item-edit" data-tooltip="Editer"><i class="fas fa-edit"></i></a>
 | 
			
		||||
      {{#unless (and (eq item.type 'conteneur') (not vide))}}
 | 
			
		||||
        <a class="item-delete" title="Supprimer"><i class="fas fa-trash"></i></a>
 | 
			
		||||
        <a class="item-delete" data-tooltip="Supprimer"><i class="fas fa-trash"></i></a>
 | 
			
		||||
        {{#if (or item.parent.system.illimite (ne item.system.quantite 0))}}
 | 
			
		||||
        <a class="item-vendre" title="Vendre"><i class="fas fa-comments-dollar"></i></a>
 | 
			
		||||
        <a class="item-vendre" data-tooltip="Vendre"><i class="fas fa-comments-dollar"></i></a>
 | 
			
		||||
        {{/if}}
 | 
			
		||||
      {{/unless}}
 | 
			
		||||
    {{/if}}
 | 
			
		||||
    {{#unless (and (eq item.type 'conteneur') (not vide))}}
 | 
			
		||||
      {{#if (or item.parent.system.illimite (gt item.system.quantite 0))}}
 | 
			
		||||
      <a class="item-acheter" title="Acheter"><i class="fa-regular fa-coins"></i></a>
 | 
			
		||||
      <a class="item-acheter" data-tooltip="Acheter"><i class="fa-regular fa-coins"></i></a>
 | 
			
		||||
      {{/if}}
 | 
			
		||||
      <a class="item-montrer" title="Montrer"><i class="fas fa-comment"></i></a>
 | 
			
		||||
      <a class="item-montrer" data-tooltip="Montrer"><i class="fas fa-comment"></i></a>
 | 
			
		||||
    {{/unless}}
 | 
			
		||||
  </span>
 | 
			
		||||
</li>
 | 
			
		||||
 
 | 
			
		||||
@@ -1,7 +1,7 @@
 | 
			
		||||
<h4>Boutique</h4>
 | 
			
		||||
<span class="item-name">
 | 
			
		||||
  {{#if options.isGM}}
 | 
			
		||||
  <a class="chat-card-button creer-un-objet">Nouvel objet</a>
 | 
			
		||||
  <a class="chat-card-button creer-un-objet" data-tooltip="Créer un nouvel objet dans la boutique">Nouvel objet</a>
 | 
			
		||||
  <a class="chat-card-button nettoyer-conteneurs">Tout vider</a>
 | 
			
		||||
  {{/if}}
 | 
			
		||||
  <span class="embed-inline">
 | 
			
		||||
 
 | 
			
		||||
@@ -2,7 +2,7 @@
 | 
			
		||||
  {{#each (trier competences) as |comp key|}}
 | 
			
		||||
  <li class="item flexrow list-item" data-item-id="{{comp._id}}">
 | 
			
		||||
    <a class="competence-label">
 | 
			
		||||
      <img class="sheet-competence-img" src="{{comp.img}}" />
 | 
			
		||||
      <img class="sheet-competence-img" src="{{comp.img}}" data-tooltip="{{comp.name}}"/>
 | 
			
		||||
      <span>{{comp.name}}</span>
 | 
			
		||||
    </a>
 | 
			
		||||
 | 
			
		||||
@@ -23,8 +23,8 @@
 | 
			
		||||
      />
 | 
			
		||||
    {{#if @root.options.vueDetaillee}}
 | 
			
		||||
    <div class="item-controls">
 | 
			
		||||
      <a class="item-edit" title="Edit Item"><i class="fas fa-edit"></i></a>
 | 
			
		||||
      <a class="item-delete" title="Delete Item"><i class="fas fa-trash"></i></a>
 | 
			
		||||
      <a class="item-edit" data-tooltip="Edit Item"><i class="fas fa-edit"></i></a>
 | 
			
		||||
      <a class="item-delete" data-tooltip="Delete Item"><i class="fas fa-trash"></i></a>
 | 
			
		||||
    </div>
 | 
			
		||||
    {{/if}}
 | 
			
		||||
  </li>
 | 
			
		||||
 
 | 
			
		||||
@@ -3,11 +3,11 @@
 | 
			
		||||
  <ol class="item-list alterne-list">
 | 
			
		||||
    {{#each possessions as |possession key|}}
 | 
			
		||||
    <li class="item flexrow list-item" data-item-id="{{possession._id}}">
 | 
			
		||||
      <img class="sheet-competence-img" src="{{possession.img}}" />
 | 
			
		||||
      <img class="sheet-competence-img" src="{{possession.img}}" data-tooltip="{{possession.name}}"/>
 | 
			
		||||
      <span class="competence-label">{{possession.name}}</span>
 | 
			
		||||
      <div class="item-controls">
 | 
			
		||||
        <a class="item-edit" title="Edit Item"><i class="fas fa-edit"></i></a>
 | 
			
		||||
        <a class="item-delete" title="Delete Item"><i class="fas fa-trash"></i></a>
 | 
			
		||||
        <a class="item-edit" data-tooltip="Edit Item"><i class="fas fa-edit"></i></a>
 | 
			
		||||
        <a class="item-delete" data-tooltip="Delete Item"><i class="fas fa-trash"></i></a>
 | 
			
		||||
      </div>
 | 
			
		||||
    </li>
 | 
			
		||||
    {{/each}}
 | 
			
		||||
 
 | 
			
		||||
@@ -1,13 +1,13 @@
 | 
			
		||||
{{#unless system.isHidden}}
 | 
			
		||||
  <li class="item flexrow list-item {{#if system.isLevelUp}}xp-level-up tooltip{{/if}}" data-item-id="{{_id}}">
 | 
			
		||||
    <a class="competence-label" name="{{name}}">
 | 
			
		||||
    <a class="competence-label" name="{{name}}" data-tooltip="Niveau {{plusMoins system.niveau}} en {{name}}">
 | 
			
		||||
      <img class="sheet-competence-img" src="{{img}}"/>
 | 
			
		||||
      <span>{{name}}</span>
 | 
			
		||||
    </a>
 | 
			
		||||
 | 
			
		||||
    {{#if system.isLevelUp}}
 | 
			
		||||
    <span class="tooltiptext ttt-levelup">Vous pouvez dépenser {{system.xpNext}} points d'Experience pour augmenter de 1 votre compétence {{name}}</span>
 | 
			
		||||
    <a class="competence-xp-augmenter" compname="{{name}}" title="Augmenter">
 | 
			
		||||
    <a class="competence-xp-augmenter" compname="{{name}}">
 | 
			
		||||
      <i class="fas fa-arrow-alt-circle-up"></i>
 | 
			
		||||
    </a>
 | 
			
		||||
    {{/if}}
 | 
			
		||||
@@ -35,18 +35,18 @@
 | 
			
		||||
    <div class="item-controls">
 | 
			
		||||
      {{#if system.stressXpMax}}
 | 
			
		||||
      <a class="competence-stress-augmenter" compname="{{name}}" 
 | 
			
		||||
            title="Dépenser {{system.stressXpMax}} points de stress {{#if system.isStressLevelUp}} pour augmenter d'un niveau {{/if}}">
 | 
			
		||||
           data-tooltip="Dépenser {{system.stressXpMax}} points de stress {{#if system.isStressLevelUp}} pour augmenter d'un niveau {{/if}}">
 | 
			
		||||
            <i class="fas fa-arrow-alt-circle-up allouer-stress{{#if system.isStressLevelUp}}-level-up{{/if}}"></i>
 | 
			
		||||
      </a>
 | 
			
		||||
      {{else}}
 | 
			
		||||
      <i class="far fa-circle"></i>
 | 
			
		||||
      {{/if}}
 | 
			
		||||
      <input class="competence-archetype niveau-archetype" type="text" compname="{{name}}" name="comp-archetype-{{name}}"
 | 
			
		||||
            value="{{plusMoins system.niveau_archetype}}" data-dtype="number"
 | 
			
		||||
            value="{{plusMoins system.niveau_archetype}}" data-dtype="number" data-tooltip="Niveau d'archétype {{plusMoins system.niveau_archetype}}"
 | 
			
		||||
            {{#if (not @root.options.vueArchetype)}}disabled{{/if}} />
 | 
			
		||||
      <a class="item-edit" title="Modifier"><i class="fas fa-edit"></i></a>
 | 
			
		||||
      <a class="item-edit" data-tooltip="Modifier"><i class="fas fa-edit"></i></a>
 | 
			
		||||
      {{#if @root.options.isGM}}
 | 
			
		||||
      <a class="item-delete" title="Supprimer"><i class="fas fa-trash"></i></a>
 | 
			
		||||
      <a class="item-delete" data-tooltip="Supprimer"><i class="fas fa-trash"></i></a>
 | 
			
		||||
      {{/if}}
 | 
			
		||||
    </div>
 | 
			
		||||
    {{/if}}
 | 
			
		||||
 
 | 
			
		||||
@@ -1,13 +1,14 @@
 | 
			
		||||
<li class="item flexrow" data-attribute={{key}} data-item-id="{{queue._id}}">
 | 
			
		||||
  <img class="sheet-competence-img" src="{{queue.img}}" />
 | 
			
		||||
<li class="item flexrow" data-attribute={{key}} data-item-id="{{queue._id}}" 
 | 
			
		||||
    data-tooltip="{{#if (eq queue.type 'ombre')}}Ombre de thanatos{{else}}Queue{{/if}}: {{queue.name}}"/>
 | 
			
		||||
  <img class="sheet-competence-img" src="{{queue.img}}">
 | 
			
		||||
  <span class="item-edit flex-grow">
 | 
			
		||||
    {{#if (eq queue.type 'ombre')}}
 | 
			
		||||
    <img class="sheet-competence-img" src="systems/foundryvtt-reve-de-dragon/icons/competence_thanatos.webp" />
 | 
			
		||||
    <img class="sheet-competence-img" src="systems/foundryvtt-reve-de-dragon/icons/competence_thanatos.webp"/>
 | 
			
		||||
    {{/if}}
 | 
			
		||||
    <a>{{queue.name}}</a>
 | 
			
		||||
  </span>
 | 
			
		||||
  <div class="item-controls">
 | 
			
		||||
    <a class="item-delete" title="Delete Item"><i class="fas fa-trash"></i></a>
 | 
			
		||||
    <a class="item-delete" data-tooltip="Delete Item"><i class="fas fa-trash"></i></a>
 | 
			
		||||
    {{#if queue.system.refoulement}}
 | 
			
		||||
    <a class="item-action">Refouler</a>
 | 
			
		||||
    {{/if}}
 | 
			
		||||
 
 | 
			
		||||
@@ -2,11 +2,11 @@
 | 
			
		||||
<h3>Souffles</h3>
 | 
			
		||||
<ul class="item-list">
 | 
			
		||||
  {{#each souffles as |souffle key|}}
 | 
			
		||||
  <li class="item flexrow" data-attribute={{key}} data-item-id="{{souffle._id}}">
 | 
			
		||||
    <img class="sheet-competence-img" src="{{souffle.img}}" />
 | 
			
		||||
  <li class="item flexrow" data-attribute={{key}} data-item-id="{{souffle._id}}" data-tooltip="Souffle: {{souffle.name}}">
 | 
			
		||||
    <img class="sheet-competence-img" src="{{souffle.img}}"/>
 | 
			
		||||
    <span class="item-edit flex-grow"><a>{{souffle.name}}</a></span>
 | 
			
		||||
    <div class="item-controls flex-shrink">
 | 
			
		||||
      <a class="item-delete" title="Delete Item"><i class="fas fa-trash"></i></a>
 | 
			
		||||
      <a class="item-delete" data-tooltip="Delete Item"><i class="fas fa-trash"></i></a>
 | 
			
		||||
    </div>
 | 
			
		||||
  </li>
 | 
			
		||||
  {{/each}}
 | 
			
		||||
 
 | 
			
		||||
@@ -2,11 +2,11 @@
 | 
			
		||||
<h3>Tetes</h3>
 | 
			
		||||
<ul class="item-list">
 | 
			
		||||
  {{#each tetes as |tete key|}}
 | 
			
		||||
  <li class="item flexrow" data-attribute={{key}} data-item-id="{{tete._id}}">
 | 
			
		||||
    <img class="sheet-competence-img" src="{{tete.img}}" />
 | 
			
		||||
  <li class="item flexrow" data-attribute={{key}} data-item-id="{{tete._id}}" data-tooltip="Tête: {{tete.name}}">
 | 
			
		||||
    <img class="sheet-competence-img" src="{{tete.img}}"/>
 | 
			
		||||
    <span class="item-edit flex-grow"><a>{{tete.name}}</a></span>
 | 
			
		||||
    <div class="item-controls flex-shrink">
 | 
			
		||||
      <a class="item-delete" title="Delete Item"><i class="fas fa-trash"></i></a>
 | 
			
		||||
      <a class="item-delete" data-tooltip="Delete Item"><i class="fas fa-trash"></i></a>
 | 
			
		||||
    </div>
 | 
			
		||||
  </li>
 | 
			
		||||
  {{/each}}
 | 
			
		||||
 
 | 
			
		||||
@@ -1,10 +1,11 @@
 | 
			
		||||
{{#if options.isGM}}
 | 
			
		||||
<li class="item flexrow">
 | 
			
		||||
  <span>
 | 
			
		||||
    <a class="chat-card-button forcer-tmr-aleatoire">Ré-insertion aléatoire</a>
 | 
			
		||||
    <a class="chat-card-button forcer-tmr-aleatoire" data-tooltip="Ré-insérer aléatoirement le demi-rêve, et masquer la position au joueur">Ré-insertion aléatoire</a>
 | 
			
		||||
  </span>
 | 
			
		||||
  <span>
 | 
			
		||||
    <a class="chat-card-button afficher-tmr">{{#if hautreve.cacheTMR}}Montrer les TMR{{else}}Cacher les TMR{{/if}}</a>
 | 
			
		||||
    <a class="chat-card-button afficher-tmr"
 | 
			
		||||
      data-tooltip="{{#if hautreve.cacheTMR}}Montrer la position du demi-rêve au joueur{{else}}Cacher la position du demi-rêve au joueur{{/if}}">{{#if hautreve.cacheTMR}}Montrer les TMR{{else}}Cacher les TMR{{/if}}</a>
 | 
			
		||||
  </span>
 | 
			
		||||
</li>
 | 
			
		||||
{{/if}}
 | 
			
		||||
 
 | 
			
		||||
@@ -1,19 +1,19 @@
 | 
			
		||||
<div class="header-buttons">
 | 
			
		||||
  <span class="chance-appel">
 | 
			
		||||
    <a title="Appel à la chance"><img class="button-img" src="systems/foundryvtt-reve-de-dragon/styles/img/ui/appel-chance.svg" alt="Appel à la chance"/></a>
 | 
			
		||||
    <a><img class="button-img" src="systems/foundryvtt-reve-de-dragon/styles/img/ui/appel-chance.svg" data-tooltip="Appel à la chance"/></a>
 | 
			
		||||
  </span>
 | 
			
		||||
  <span class="encaisser-direct">
 | 
			
		||||
    <a title="Encaisser des dommages"><img class="button-img" src="icons/svg/bones.svg" alt="Encaisser des dommages"/></a>
 | 
			
		||||
    <a><img class="button-img" src="icons/svg/bones.svg" data-tooltip="Encaisser des dommages"/></a>
 | 
			
		||||
  </span>
 | 
			
		||||
  <span class="ethylisme-test">
 | 
			
		||||
    <a title="Jet d'Ethylisme"><img class="button-img" src="icons/svg/tankard.svg" alt="Boire"/></a>
 | 
			
		||||
    <a><img class="button-img" src="icons/svg/tankard.svg" data-tooltip="Boire"/></a>
 | 
			
		||||
  </span>
 | 
			
		||||
  <span class="repos">
 | 
			
		||||
    <a title="Repos"><img class="button-img" src="icons/svg/sleep.svg" alt="Se reposer"/></a>
 | 
			
		||||
    <a><img class="button-img" src="icons/svg/sleep.svg" data-tooltip="Se reposer"/></a>
 | 
			
		||||
  </span>
 | 
			
		||||
  {{#if @root.options.isGM}}
 | 
			
		||||
  <span class="remise-a-neuf">
 | 
			
		||||
    <a title="Remise à neuf"><img class="button-img" src="icons/svg/regen.svg" alt="Remise à neuf"/></a>
 | 
			
		||||
    <a><img class="button-img" src="icons/svg/regen.svg" data-tooltip="Remise à neuf"/></a>
 | 
			
		||||
  </span>
 | 
			
		||||
  {{/if}}
 | 
			
		||||
</div>
 | 
			
		||||
 
 | 
			
		||||
@@ -2,24 +2,24 @@
 | 
			
		||||
  <ul>
 | 
			
		||||
    <li data-attribute="vie">
 | 
			
		||||
      <label class="compteur">
 | 
			
		||||
        <a class="jet-vie" name="system.sante.vie.label">Vie</a>
 | 
			
		||||
        <a class="vie-moins"><i class="fas fa-minus-square"></i></a>
 | 
			
		||||
        <a class="jet-vie" name="system.sante.vie.label" data-tooltip="Faire un jet de vie">Vie</a>
 | 
			
		||||
        <a class="vie-moins"><i class="fa-solid fa-square-minus"></i></a>
 | 
			
		||||
        <input class="resource-content" type="text" name="system.sante.vie.value" value="{{system.sante.vie.value}}" data-dtype="Number" />
 | 
			
		||||
        / {{#if @root.options.vueDetaillee}}
 | 
			
		||||
        <input class="resource-content" type="text" name="system.sante.vie.max" value="{{system.sante.vie.max}}" data-dtype="Number"/>
 | 
			
		||||
        {{else}}{{system.sante.vie.max}}{{/if}}
 | 
			
		||||
        <a class="vie-plus"><i class="fas fa-plus-square"></i></a>
 | 
			
		||||
        <a class="vie-plus"><i class="fa-solid fa-square-plus"></i></a>
 | 
			
		||||
      </label>
 | 
			
		||||
    </li>
 | 
			
		||||
    <li data-attribute="endurance">
 | 
			
		||||
      <label class="compteur">
 | 
			
		||||
        <a class="jet-endurance" name="system.sante.endurance.label">Endurance</a>
 | 
			
		||||
        <a class="endurance-moins"><i class="fas fa-minus-square"></i></a>
 | 
			
		||||
        <a class="jet-endurance" name="system.sante.endurance.label" data-tooltip="Faire un jet d'endurance pour ne pas être sonné">Endurance</a>
 | 
			
		||||
        <a class="endurance-moins"><i class="fa-solid fa-square-minus"></i></a>
 | 
			
		||||
        <input class="resource-content" type="text" name="system.sante.endurance.value" value="{{system.sante.endurance.value}}" data-dtype="Number"/>
 | 
			
		||||
        / {{#if @root.options.vueDetaillee}}
 | 
			
		||||
        <input class="resource-content" type="text" name="system.sante.endurance.max" value="{{system.sante.endurance.max}}" data-dtype="Number"/>
 | 
			
		||||
        {{else}}{{system.sante.endurance.max}}{{/if}}
 | 
			
		||||
        <a class="endurance-plus"><i class="fas fa-plus-square"></i></a>
 | 
			
		||||
        <a class="endurance-plus"><i class="fa-solid fa-square-plus"></i></a>
 | 
			
		||||
      </label>
 | 
			
		||||
    </li>
 | 
			
		||||
  </ul>
 | 
			
		||||
 
 | 
			
		||||
@@ -4,12 +4,12 @@
 | 
			
		||||
    <li data-attribute="endurance">
 | 
			
		||||
      <label class="compteur">
 | 
			
		||||
        Endurance
 | 
			
		||||
        <a class="endurance-moins"><i class="fas fa-minus-square"></i></a>
 | 
			
		||||
        <a class="endurance-moins"><i class="fa-solid fa-square-minus"></i></a>
 | 
			
		||||
        <input class="resource-content" type="text" name="system.sante.endurance.value" value="{{system.sante.endurance.value}}" data-dtype="Number" />
 | 
			
		||||
        / {{#if @root.options.vueDetaillee}}
 | 
			
		||||
        <input class="resource-content" type="text" name="system.sante.endurance.max" value="{{system.sante.endurance.max}}" data-dtype="Number"/>
 | 
			
		||||
        {{else}}{{system.sante.endurance.max}}{{/if}}
 | 
			
		||||
        <a class="endurance-plus"><i class="fas fa-plus-square"></i></a>
 | 
			
		||||
        <a class="endurance-plus"><i class="fa-solid fa-square-plus"></i></a>
 | 
			
		||||
      </label>
 | 
			
		||||
    </li>
 | 
			
		||||
  </ul>
 | 
			
		||||
 
 | 
			
		||||
@@ -2,39 +2,39 @@
 | 
			
		||||
  <ul>
 | 
			
		||||
    <li>
 | 
			
		||||
      <label class="compteur">
 | 
			
		||||
        <a class="jet-vie">Vie</a>
 | 
			
		||||
        <a class="vie-moins"><i class="fas fa-minus-square"></i></a>
 | 
			
		||||
        <a class="jet-vie" data-tooltip="Faire un jet de vie">Vie</a>
 | 
			
		||||
        <a class="vie-moins"><i class="fa-solid fa-square-minus"></i></a>
 | 
			
		||||
        <input class="resource-content" type="text" name="system.sante.vie.value" value="{{system.sante.vie.value}}" data-dtype="Number"/>
 | 
			
		||||
        <span>/ {{system.sante.vie.max}}</span>
 | 
			
		||||
        <a class="vie-plus"><i class="fas fa-plus-square"></i></a>
 | 
			
		||||
        <a class="vie-plus"><i class="fa-solid fa-square-plus"></i></a>
 | 
			
		||||
      </label>
 | 
			
		||||
    </li>
 | 
			
		||||
    <li>
 | 
			
		||||
      <label class="compteur">
 | 
			
		||||
        <a class="jet-endurance">Endurance</a>
 | 
			
		||||
        <a class="endurance-moins"><i class="fas fa-minus-square"></i></a>
 | 
			
		||||
        <a class="jet-endurance"  data-tooltip="Faire un jet d'endurance pour ne pas être sonné">Endurance</a>
 | 
			
		||||
        <a class="endurance-moins"><i class="fa-solid fa-square-minus"></i></a>
 | 
			
		||||
        <input class="resource-content" type="text" name="system.sante.endurance.value" value="{{system.sante.endurance.value}}" data-dtype="Number"/>
 | 
			
		||||
        <span>/ {{system.sante.endurance.max}}</span>
 | 
			
		||||
        <a class="endurance-plus"><i class="fas fa-plus-square"></i></a>
 | 
			
		||||
        <a class="endurance-plus"><i class="fa-solid fa-square-plus"></i></a>
 | 
			
		||||
      </label>
 | 
			
		||||
    </li>
 | 
			
		||||
    <li>
 | 
			
		||||
      <label class="appliquerFatigue compteur tooltip">
 | 
			
		||||
        <span class="tooltiptext ttt-fatigue">{{{calc.fatigue.html}}}</span>
 | 
			
		||||
        Fatigue ({{calc.fatigue.malus}})
 | 
			
		||||
        <a class="fatigue-moins"><i class="fas fa-minus-square"></i></a>
 | 
			
		||||
        <a class="fatigue-moins"><i class="fa-solid fa-square-minus"></i></a>
 | 
			
		||||
        <input class="resource-content" type="text" name="system.sante.fatigue.value" value="{{system.sante.fatigue.value}}" data-dtype="Number" />
 | 
			
		||||
        <span>/ {{system.sante.fatigue.max}}</span>
 | 
			
		||||
        <a class="fatigue-plus"><i class="fas fa-plus-square"></i></a>
 | 
			
		||||
        <a class="fatigue-plus"><i class="fa-solid fa-square-plus"></i></a>
 | 
			
		||||
      </label>
 | 
			
		||||
    </li>
 | 
			
		||||
    <li>
 | 
			
		||||
      <label class="compteur">
 | 
			
		||||
        <span class="ptreve-actuel"><a>Rêve</a></span>
 | 
			
		||||
        <a class="ptreve-actuel-moins"><i class="fas fa-minus-square"></i></a>
 | 
			
		||||
        <span class="ptreve-actuel"  data-tooltip="Faire un jet de Rêve actuel (ou jet de résistance)"><a>Rêve</a></span>
 | 
			
		||||
        <a class="ptreve-actuel-moins"><i class="fa-solid fa-square-minus"></i></a>
 | 
			
		||||
        <input class="resource-content" class="pointsreve-value" type="text" name="system.reve.reve.value" value="{{system.reve.reve.value}}" data-dtype="Number" />
 | 
			
		||||
        <span>/ {{system.reve.seuil.value}}</span>
 | 
			
		||||
        <a class="ptreve-actuel-plus"><i class="fas fa-plus-square"></i></a>
 | 
			
		||||
        <a class="ptreve-actuel-plus"><i class="fa-solid fa-square-plus"></i></a>
 | 
			
		||||
      </label>
 | 
			
		||||
    </li>
 | 
			
		||||
  </ul>
 | 
			
		||||
 
 | 
			
		||||
@@ -1,8 +1,8 @@
 | 
			
		||||
<div>
 | 
			
		||||
  {{#if effects}}
 | 
			
		||||
    {{#each effects as |effect key|}}
 | 
			
		||||
    <span class="active-effect" data-effect="{{effect.flags.core.statusId}}">
 | 
			
		||||
      <img class="button-effect-img {{#if @root.options.isGM}}delete-active-effect{{/if}}" src="{{effect.icon}}" alt="{{localize effect.name}}" width="24" height="24" />
 | 
			
		||||
    <span class="active-effect" data-effect="{{effect.id}}">
 | 
			
		||||
      <img class="button-effect-img {{#if @root.options.isGM}}delete-active-effect{{/if}}" src="{{effect.icon}}" data-tooltip="{{localize effect.name}}" width="24" height="24" />
 | 
			
		||||
    </span>
 | 
			
		||||
    {{/each}}
 | 
			
		||||
    {{#if calc.surprise}}<span>{{calc.surprise}}!</span>{{/if}}
 | 
			
		||||
 
 | 
			
		||||
@@ -1,17 +1,19 @@
 | 
			
		||||
{{#if system.attributs.hautrevant.value}}
 | 
			
		||||
  <div class="tmr-buttons">
 | 
			
		||||
    <span class="monte-tmr">
 | 
			
		||||
      <a title="Montée dans les Terres Médianes !" {{#if hautreve.isDemiReve}}disabled{{/if}}>
 | 
			
		||||
        <img class="button-img" src="systems/foundryvtt-reve-de-dragon/styles/img/ui/icon-tmr-normal.svg" alt="Montée dans les Terres Médianes !"/>
 | 
			
		||||
      <a data-tooltip="Montée dans les Terres Médianes !" {{#if hautreve.isDemiReve}}disabled{{/if}}>
 | 
			
		||||
        <img class="button-img" src="systems/foundryvtt-reve-de-dragon/styles/img/ui/icon-tmr-normal.svg"/>
 | 
			
		||||
      </a>
 | 
			
		||||
    </span>
 | 
			
		||||
    <span class="monte-tmr-rapide">
 | 
			
		||||
      <a title="Montée accélérée dans les Terres Médianes !" {{#if hautreve.isDemiReve}}disabled{{/if}}>
 | 
			
		||||
        <img class="button-img" src="systems/foundryvtt-reve-de-dragon/styles/img/ui/icon-tmr-rapide.svg" alt="Montée accélérée dans les Terres Médianes !"/>
 | 
			
		||||
      <a data-tooltip="Montée accélérée dans les Terres Médianes !" {{#if hautreve.isDemiReve}}disabled{{/if}}>
 | 
			
		||||
        <img class="button-img" src="systems/foundryvtt-reve-de-dragon/styles/img/ui/icon-tmr-rapide.svg"/>
 | 
			
		||||
      </a>
 | 
			
		||||
    </span>
 | 
			
		||||
    <span class="visu-tmr">
 | 
			
		||||
      <a title="Regarder les Terres Médianes"><img class="button-img" src="systems/foundryvtt-reve-de-dragon/styles/img/ui/icon-tmr-view.svg" alt="Regarder les Terres Médianes"/></a>
 | 
			
		||||
      <a data-tooltip="Regarder les Terres Médianes">
 | 
			
		||||
        <img class="button-img" src="systems/foundryvtt-reve-de-dragon/styles/img/ui/icon-tmr-view.svg"/>
 | 
			
		||||
      </a>
 | 
			
		||||
    </span>
 | 
			
		||||
  </div>
 | 
			
		||||
{{/if}}
 | 
			
		||||
 
 | 
			
		||||
@@ -2,12 +2,12 @@
 | 
			
		||||
  <h3>Effets sur les cases des TMR</h3>
 | 
			
		||||
  <ul class="item-list alterne-list">
 | 
			
		||||
    {{#each casestmr as |casetmr key|}}
 | 
			
		||||
    <li class="item list-item flexrow" data-item-id="{{casetmr.id}}" data-attribute="{{key}}">
 | 
			
		||||
      <img class="sheet-competence-img" src="{{casetmr.img}}" />
 | 
			
		||||
    <li class="item list-item flexrow" data-item-id="{{casetmr.id}}" data-attribute="{{key}}" data-tooltip="Case TMR: {{casetmr.name}}" >
 | 
			
		||||
      <img class="sheet-competence-img" src="{{casetmr.img}}"/>
 | 
			
		||||
      <span class="item-edit"><a>{{casetmr.name}}</a></span>
 | 
			
		||||
      <span>{{casetmr.system.coord}} - {{caseTmr-label casetmr.system.coord}}</span> 
 | 
			
		||||
      <div class="item-controls flex-shrink">
 | 
			
		||||
        <a class="item-delete" title="Supprimer"><i class="fas fa-trash"></i></a>
 | 
			
		||||
        <a class="item-delete" data-tooltip="Supprimer"><i class="fas fa-trash"></i></a>
 | 
			
		||||
      </div>
 | 
			
		||||
    </li>
 | 
			
		||||
    {{/each}}
 | 
			
		||||
 
 | 
			
		||||
@@ -2,12 +2,12 @@
 | 
			
		||||
<h3>Méditations</h3>
 | 
			
		||||
<ul class="item-list">
 | 
			
		||||
  {{#each (trier meditations) as |meditation key|}}
 | 
			
		||||
  <li class="item flexrow" data-item-id="{{meditation._id}}" data-attribute="{{key}}">
 | 
			
		||||
    <img class="sheet-competence-img" src="{{meditation.img}}" />
 | 
			
		||||
  <li class="item flexrow" data-item-id="{{meditation._id}}" data-attribute="{{key}}" data-tooltip="Méditation: {{meditation.name}}">
 | 
			
		||||
    <img class="sheet-competence-img" src="{{meditation.img}}"/>
 | 
			
		||||
    <span class="meditation-label flex-grow"><a data-item-id="{{meditation._id}}">{{meditation.name}} - {{meditation.system.competence}}</a></span> 
 | 
			
		||||
    <div class="item-controls flex-shrink">
 | 
			
		||||
      <a class="item-edit" title="Editer"><i class="fas fa-edit"></i></a>
 | 
			
		||||
      <a class="item-delete" title="Supprimer"><i class="fas fa-trash"></i></a>
 | 
			
		||||
      <a class="item-edit" data-tooltip="Editer"><i class="fas fa-edit"></i></a>
 | 
			
		||||
      <a class="item-delete" data-tooltip="Supprimer"><i class="fas fa-trash"></i></a>
 | 
			
		||||
    </div>
 | 
			
		||||
  </li>
 | 
			
		||||
  {{/each}}
 | 
			
		||||
 
 | 
			
		||||
@@ -2,8 +2,8 @@
 | 
			
		||||
<h3>Rencontres en attente dans les TMR</h3>
 | 
			
		||||
<ul class="item-list">
 | 
			
		||||
  {{#each rencontres as |rencontre key|}}
 | 
			
		||||
  <li class="item flexrow" data-item-id="{{rencontre._id}}" data-attribute="{{key}}">
 | 
			
		||||
    <img class="sheet-competence-img" src="{{rencontre.img}}" />
 | 
			
		||||
  <li class="item flexrow" data-item-id="{{rencontre._id}}" data-attribute="{{key}}" data-tooltip="Rencontre: {{rencontre.name}}">
 | 
			
		||||
    <img class="sheet-competence-img" src="{{rencontre.img}}"/>
 | 
			
		||||
    <span class="item-edit flex-grow"><a>
 | 
			
		||||
      {{rencontre.name}} r{{rencontre.system.force}} ({{rencontre.system.coord}} - {{caseTmr-label rencontre.system.coord}})
 | 
			
		||||
    </a></span> 
 | 
			
		||||
@@ -11,7 +11,7 @@
 | 
			
		||||
    <span class="flex-shrink">{{upperFirst rencontre.system.heure}}, le {{rencontre.system.date}}</span> 
 | 
			
		||||
    {{/if}}
 | 
			
		||||
    <div class="item-controls flex-shrink">
 | 
			
		||||
      <a class="item-delete" title="Supprimer"><i class="fas fa-trash"></i></a>
 | 
			
		||||
      <a class="item-delete" data-tooltip="Supprimer"><i class="fas fa-trash"></i></a>
 | 
			
		||||
    </div>
 | 
			
		||||
  </li>
 | 
			
		||||
  {{/each}}
 | 
			
		||||
 
 | 
			
		||||
@@ -2,12 +2,12 @@
 | 
			
		||||
<h3>Signes draconiques</h3>
 | 
			
		||||
<ul class="item-list alterne-list">
 | 
			
		||||
  {{#each signesdraconiques as |signe key|}}
 | 
			
		||||
    <li class="item list-item flexrow" data-item-id="{{signe._id}}" data-attribute="{{key}}">
 | 
			
		||||
      <img class="sheet-competence-img" src="{{signe.img}}" />
 | 
			
		||||
    <li class="item list-item flexrow" data-item-id="{{signe._id}}" data-attribute="{{key}}" data-tooltip="Signe: {{signe.name}}">
 | 
			
		||||
      <img class="sheet-competence-img" src="{{signe.img}}"/>
 | 
			
		||||
      <span class="item-edit flex-grow"><a>{{signe.name}}</a></span> 
 | 
			
		||||
      <span class="flex-shrink">{{signe.system.difficulte}}</span>
 | 
			
		||||
      <div class="item-controls flex-shrink">
 | 
			
		||||
        <a class="item-delete" title="Supprimer"><i class="fas fa-trash"></i></a>
 | 
			
		||||
        <a class="item-delete" data-tooltip="Supprimer"><i class="fas fa-trash"></i></a>
 | 
			
		||||
      </div>
 | 
			
		||||
    </li>
 | 
			
		||||
  {{/each}}
 | 
			
		||||
 
 | 
			
		||||
@@ -2,12 +2,13 @@
 | 
			
		||||
<h3>Sorts en Réserve</h3>
 | 
			
		||||
<ul class="item-list alterne-list">
 | 
			
		||||
  {{#each (trier sortsReserve) as |sort key|}}
 | 
			
		||||
  <li class="item list-item flexrow" data-item-id="{{sort._id}}" data-attribute="{{key}}">
 | 
			
		||||
    <img class="sheet-competence-img" src="{{sort.img}}" />
 | 
			
		||||
  <li class="item list-item flexrow" data-item-id="{{sort._id}}" data-attribute="{{key}}"
 | 
			
		||||
      data-tooltip="Sort en réserve: {{sort.system.coord}} - {{sort.name}} r{{sort.system.ptreve}}">
 | 
			
		||||
    <img class="sheet-competence-img" src="{{sort.img}}"/>
 | 
			
		||||
    <span class="item-edit"><a>{{#if sort.system.echectotal}}Echec total: {{/if}}{{sort.name}} r{{sort.system.ptreve}}</a></span> 
 | 
			
		||||
    <span>{{sort.system.coord}} - {{caseTmr-label sort.system.coord}}</span> 
 | 
			
		||||
    <div class="item-controls flex-shrink">
 | 
			
		||||
      <a class="item-delete flex-shrink" title="Supprimer"><i class="fas fa-trash"></i></a>
 | 
			
		||||
      <a class="item-delete flex-shrink" data-tooltip="Supprimer"><i class="fas fa-trash"></i></a>
 | 
			
		||||
    </div>
 | 
			
		||||
  </li>
 | 
			
		||||
  {{/each}}
 | 
			
		||||
 
 | 
			
		||||
@@ -2,16 +2,17 @@
 | 
			
		||||
<h3>Sorts</h3>
 | 
			
		||||
<ul class="item-list alterne-list">
 | 
			
		||||
  {{#each (trier sorts) as |sort key|}}
 | 
			
		||||
  <li class="item list-item flexrow" data-item-id="{{sort._id}}" data-attribute="{{key}}">
 | 
			
		||||
    <img class="sheet-competence-img" src="{{sort.img}}" />
 | 
			
		||||
  <li class="item list-item flexrow" data-item-id="{{sort._id}}" data-attribute="{{key}}"  data-tooltip="{{#if sort.system.isrituel}}Rituel{{else}}Sort{{/if}}: {{sort.name}}">
 | 
			
		||||
    <img class="sheet-competence-img" src="{{sort.img}}"/>
 | 
			
		||||
    <span class="item-edit flex-grow-2">
 | 
			
		||||
      <a data-item-id="{{sort._id}}">{{sort.name}}
 | 
			
		||||
        - {{#if sort.system.caseTMRspeciale}}{{sort.system.caseTMRspeciale}}{{else}}{{upperFirst sort.system.caseTMR}}{{/if}}
 | 
			
		||||
      </a>
 | 
			
		||||
    </span>
 | 
			
		||||
    <span>{{#if sort.system.isrituel}}Rituel{{/if}}</span>
 | 
			
		||||
    <span>{{sort.system.draconic}} / {{sort.system.difficulte}}</span>
 | 
			
		||||
    <div class="item-controls flex-shrink">
 | 
			
		||||
      <a class="item-delete" title="Supprimer"><i class="fas fa-trash"></i></a>
 | 
			
		||||
      <a class="item-delete" data-tooltip="Supprimer"><i class="fas fa-trash"></i></a>
 | 
			
		||||
    </div>
 | 
			
		||||
  </li>
 | 
			
		||||
  {{/each}}
 | 
			
		||||
 
 | 
			
		||||
@@ -1,6 +1,6 @@
 | 
			
		||||
{{#unless item.system.isHidden}}
 | 
			
		||||
{{#if (or options.isObserver (ne item.type 'monnaie'))}}
 | 
			
		||||
<li class="item flexrow list-item" data-item-id="{{item._id}}" draggable="true">
 | 
			
		||||
<li class="item flexrow list-item" data-item-id="{{item._id}}" draggable="true" data-tooltip="{{#if (gt item.system.quantite 1)}}{{item.system.quantite}} {{/if}}{{item.name}}">
 | 
			
		||||
  <span class="equipement-nom {{#if (eq item.type 'conteneur')}}conteneur-name{{/if}} ">
 | 
			
		||||
    {{#if (eq item.type 'conteneur')}}
 | 
			
		||||
    <a>
 | 
			
		||||
@@ -8,11 +8,11 @@
 | 
			
		||||
      {{else if ouvert}}far fa-minus-square
 | 
			
		||||
      {{else}}far fa-plus-square
 | 
			
		||||
      {{/if~}}"></i>
 | 
			
		||||
      <img class="sheet-competence-img" src="{{item.img}}" title="{{item.name}}"/>
 | 
			
		||||
      <img class="sheet-competence-img" src="{{item.img}}"/>
 | 
			
		||||
      <span>{{item.name}}</span>
 | 
			
		||||
    </a>
 | 
			
		||||
    {{else}}
 | 
			
		||||
    <img class="sheet-competence-img" src="{{item.img}}" title="{{item.name}}"/>
 | 
			
		||||
    <img class="sheet-competence-img" src="{{item.img}}"/>
 | 
			
		||||
    <span>{{item.name}}
 | 
			
		||||
      {{#if (eq item.type 'arme')}}
 | 
			
		||||
      {{>"systems/foundryvtt-reve-de-dragon/templates/item/icon-arme-broken.hbs" item}}
 | 
			
		||||
@@ -22,11 +22,11 @@
 | 
			
		||||
  </span>
 | 
			
		||||
  <span class="equipement-detail">
 | 
			
		||||
    {{#if (gt item.system.quantite 1)}}
 | 
			
		||||
    <a class="item-quantite-moins"><i class="fas fa-minus-square"></i></a>
 | 
			
		||||
    <a class="item-quantite-moins" data-tooltip="Diminuer la quantité de {{item.name}}"><i class="fa-solid fa-square-minus"></i></a>
 | 
			
		||||
    {{/if}}
 | 
			
		||||
    {{item.system.quantite}}
 | 
			
		||||
    {{#if (gt item.system.quantite 1)}}
 | 
			
		||||
    <a class="item-split" title="Séparer"><i class="fas fa-unlink"></i></a>
 | 
			
		||||
    <a class="item-split" data-tooltip="Séparer le groupe de {{item.name}}"><i class="fas fa-unlink"></i></a>
 | 
			
		||||
    {{/if}}
 | 
			
		||||
  </span>
 | 
			
		||||
  <span class="equipement-detail">{{numberFormat item.system.encTotal decimals=2}}</span>
 | 
			
		||||
@@ -34,17 +34,17 @@
 | 
			
		||||
    {{#if options.isOwner}}
 | 
			
		||||
      {{#unless item.estContenu}}
 | 
			
		||||
        {{#if item.equipable}}
 | 
			
		||||
        <a class="item-equip" title="Equiper">{{#if item.system.equipe}}<i class="fas fa-hand-rock"></i>{{else}}<i class="far fa-hand-paper"></i>{{/if}}</a>
 | 
			
		||||
        <a class="item-equip" data-tooltip="Equiper">{{#if item.system.equipe}}<i class="fas fa-hand-rock"></i>{{else}}<i class="far fa-hand-paper"></i>{{/if}}</a>
 | 
			
		||||
        {{/if}}
 | 
			
		||||
      {{/unless}}
 | 
			
		||||
      <a class="item-edit" title="Editer"><i class="fas fa-edit"></i></a>
 | 
			
		||||
      <a class="item-delete" title="Supprimer"><i class="fas fa-trash"></i></a>
 | 
			
		||||
      <a class="item-edit" data-tooltip="Editer"><i class="fas fa-edit"></i></a>
 | 
			
		||||
      <a class="item-delete" data-tooltip="Supprimer"><i class="fas fa-trash"></i></a>
 | 
			
		||||
       
 | 
			
		||||
      {{#if (ne item.system.quantite 0)}}
 | 
			
		||||
      <a class="item-vendre" title="Vendre ou donner"><i class="fas fa-comments-dollar"></i></a>
 | 
			
		||||
      <a class="item-vendre" data-tooltip="Vendre ou donner"><i class="fas fa-comments-dollar"></i></a>
 | 
			
		||||
      {{/if}}
 | 
			
		||||
    {{/if}}
 | 
			
		||||
    <a class="item-montrer" title="Montrer"><i class="fas fa-comment"></i></a>
 | 
			
		||||
    <a class="item-montrer" data-tooltip="Montrer"><i class="fas fa-comment"></i></a>
 | 
			
		||||
    {{#if options.isOwner}}
 | 
			
		||||
      {{#if item.system.actionPrincipale}}
 | 
			
		||||
      <a class="item-action">{{item.system.actionPrincipale}}</a>
 | 
			
		||||
 
 | 
			
		||||
@@ -3,14 +3,14 @@
 | 
			
		||||
<ul class="item-list alterne-list">
 | 
			
		||||
  {{#each monnaies as |piece id|}}
 | 
			
		||||
  <li class="item flexrow list-item" data-item-id="{{piece._id}}">
 | 
			
		||||
    <img class="sheet-competence-img" src="{{piece.img}}" title="{{piece.name}}"/>
 | 
			
		||||
    <img class="sheet-competence-img" src="{{piece.img}}" data-tooltip="{{piece.name}}"/>
 | 
			
		||||
    <span class="equipement-nom">{{piece.name}}</span>
 | 
			
		||||
    <span class="equipement-valeur {{#unless (gt piece.system.cout 0)}}field-error{{/unless}}">
 | 
			
		||||
      ({{piece.system.cout}} Sols)
 | 
			
		||||
    </span>
 | 
			
		||||
    {{#if @root.options.isOwner}}
 | 
			
		||||
    <span class="equipement-button item-controls">
 | 
			
		||||
      <a class="item-quantite-moins"><i class="fas fa-minus-square"></i></a>
 | 
			
		||||
      <a class="item-quantite-moins"><i class="fa-solid fa-square-minus"></i></a>
 | 
			
		||||
    </span>
 | 
			
		||||
    {{/if}}
 | 
			
		||||
    <span class="equipement-detail">
 | 
			
		||||
@@ -18,13 +18,13 @@
 | 
			
		||||
    </span>
 | 
			
		||||
    {{#if @root.options.isOwner}}
 | 
			
		||||
    <span class="equipement-button item-controls">
 | 
			
		||||
      <a class="item-quantite-plus"><i class="fas fa-plus-square"></i></a>
 | 
			
		||||
      <a class="item-quantite-plus"><i class="fa-solid fa-square-plus"></i></a>
 | 
			
		||||
    </span>
 | 
			
		||||
    {{/if}}
 | 
			
		||||
    <span class="equipement-actions item-controls">
 | 
			
		||||
      {{#if @root.options.isOwner}}
 | 
			
		||||
      <a class="item-edit" title="Editer"><i class="fas fa-edit"></i></a>
 | 
			
		||||
      <a class="item-delete" title="Supprimer"><i class="fas fa-trash"></i></a>
 | 
			
		||||
      <a class="item-edit" data-tooltip="Editer"><i class="fas fa-edit"></i></a>
 | 
			
		||||
      <a class="item-delete" data-tooltip="Supprimer"><i class="fas fa-trash"></i></a>
 | 
			
		||||
      {{/if}}
 | 
			
		||||
    </span>
 | 
			
		||||
  </li>
 | 
			
		||||
 
 | 
			
		||||
@@ -1,13 +1,13 @@
 | 
			
		||||
<h4>Equipement</h4>
 | 
			
		||||
<span class="item-name">
 | 
			
		||||
  {{#if options.isOwner}}
 | 
			
		||||
  <a class="chat-card-button creer-un-objet">Nouvel objet</a>
 | 
			
		||||
  <a class="chat-card-button creer-un-objet" data-tooltip="Créer un nouvel objet">Nouvel objet</a>
 | 
			
		||||
  {{/if}}
 | 
			
		||||
  {{#if options.isGM}}
 | 
			
		||||
  <a class="chat-card-button nettoyer-conteneurs">Tout vider</a>
 | 
			
		||||
  <a class="chat-card-button nettoyer-conteneurs" data-tooltip="Vider tous les contenants">Tout vider</a>
 | 
			
		||||
  {{/if}}
 | 
			
		||||
  <span class="embed-inline">
 | 
			
		||||
    <input class="recherche flex-grow" type="text" value="{{options.recherche.text}}" name="recherche" size="8" data-dtype="String" placeholder=""/>
 | 
			
		||||
    <input class="recherche flex-grow" type="text" value="{{options.recherche.text}}" name="recherche" size="8" data-dtype="String" placeholder="" data-tooltip="Rechercher dans l'équipement"/>
 | 
			
		||||
  </span>
 | 
			
		||||
  {{#if calc.surEncombrementMessage}}<b>{{calc.surEncombrementMessage}}</b> ‐{{/if}}
 | 
			
		||||
  Encombrement: {{numberFormat calc.encTotal decimals=2}} (max: {{system.attributs.encombrement.value}})
 | 
			
		||||
 
 | 
			
		||||
@@ -2,10 +2,11 @@
 | 
			
		||||
<h3>Jeux :</h3>
 | 
			
		||||
<ul class="item-list alterne-list">
 | 
			
		||||
  {{#each jeux as |jeu id|}}
 | 
			
		||||
  <li class="item flexrow list-item" data-item-id="{{jeu._id}}"><span class="competence-title jeu-label"><a>{{jeu.name}} (base {{jeu.system.base}})</a></span>
 | 
			
		||||
  <li class="item flexrow list-item" data-item-id="{{jeu._id}}">
 | 
			
		||||
    <span class="competence-title jeu-label"><a>{{jeu.name}} (base {{jeu.system.base}})</a></span>
 | 
			
		||||
    <div class="item-controls flex-shrink">
 | 
			
		||||
      <a class="item-edit" title="Edit Item"><i class="fas fa-edit"></i></a>
 | 
			
		||||
      <a class="item-delete" title="Delete Item"><i class="fas fa-trash"></i></a>
 | 
			
		||||
      <a class="item-edit" data-tooltip="Edit Item"><i class="fas fa-edit"></i></a>
 | 
			
		||||
      <a class="item-delete" data-tooltip="Delete Item"><i class="fas fa-trash"></i></a>
 | 
			
		||||
    </div>
 | 
			
		||||
  </li>
 | 
			
		||||
  {{/each}}
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										12
									
								
								templates/actor/liens-animaux.hbs
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										12
									
								
								templates/actor/liens-animaux.hbs
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,12 @@
 | 
			
		||||
<span class="item-name"><h4>Compagnons animaux</h4></span>
 | 
			
		||||
<ul class="item-list alterne-list">
 | 
			
		||||
  {{#each subacteurs.montures as |monture id|}}
 | 
			
		||||
  <li class="item flexrow list-item" data-subactor-id="{{monture.id}}" data-tooltip="{{monture.name}}">
 | 
			
		||||
    <img class="sheet-competence-img subacteur-open" src="{{monture.img}}"/>
 | 
			
		||||
    <span class="subacteur-label subacteur-open"><a>{{monture.name}}</a></span>
 | 
			
		||||
    <div class="flex-shrink">
 | 
			
		||||
      <a class="subacteur-delete" data-tooltip="Supprimer"><i class="fas fa-trash"></i></a>
 | 
			
		||||
    </div>
 | 
			
		||||
  </li>
 | 
			
		||||
  {{/each}}
 | 
			
		||||
</ul>
 | 
			
		||||
@@ -1,12 +0,0 @@
 | 
			
		||||
<span class="item-name"><h4>Compagnons animaux</h4></span>
 | 
			
		||||
<ul class="item-list alterne-list">
 | 
			
		||||
  {{#each subacteurs.montures as |monture id|}}
 | 
			
		||||
  <li class="item flexrow list-item" data-actor-id="{{monture.id}}">
 | 
			
		||||
    <img class="sheet-competence-img" src="{{monture.img}}" title="{{monture.name}}"/>
 | 
			
		||||
    <span class="subacteur-label"><a>{{monture.name}}</a></span>
 | 
			
		||||
    <div class="flex-shrink">
 | 
			
		||||
      <a class="subacteur-delete" title="Supprimer"><i class="fas fa-trash"></i></a>
 | 
			
		||||
  </div>
 | 
			
		||||
  </li>
 | 
			
		||||
  {{/each}}
 | 
			
		||||
</ul>
 | 
			
		||||
							
								
								
									
										30
									
								
								templates/actor/liens-suivants.hbs
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										30
									
								
								templates/actor/liens-suivants.hbs
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,30 @@
 | 
			
		||||
<h4>Suivants/Compagnons/Amoureux</h4>
 | 
			
		||||
<ul class="item-list alterne-list">
 | 
			
		||||
  {{#each subacteurs.suivants as |suivant id|}}
 | 
			
		||||
  <li class="item flexrow list-item" data-subactor-id="{{suivant.id}}" data-tooltip="{{suivant.name}}">
 | 
			
		||||
    <img class="sheet-competence-img subacteur-open" src="{{suivant.img}}"/>
 | 
			
		||||
    <span class="competence-title subacteur-label subacteur-open">
 | 
			
		||||
      <a>{{suivant.name}}</a>
 | 
			
		||||
    </span>
 | 
			
		||||
    {{#if suivant.ephemere}}
 | 
			
		||||
      <span></span>
 | 
			
		||||
      <span></span>
 | 
			
		||||
    {{else}}
 | 
			
		||||
      <span class="competence-title subacteur-coeur-toggle">
 | 
			
		||||
        {{>'systems/foundryvtt-reve-de-dragon/templates/coeur/afficher-coeur.hbs' numero=1 courant=suivant.coeur prochain=suivant.prochainCoeur}}
 | 
			
		||||
        {{>'systems/foundryvtt-reve-de-dragon/templates/coeur/afficher-coeur.hbs' numero=2 courant=suivant.coeur prochain=suivant.prochainCoeur}}
 | 
			
		||||
        {{>'systems/foundryvtt-reve-de-dragon/templates/coeur/afficher-coeur.hbs' numero=3 courant=suivant.coeur prochain=suivant.prochainCoeur}}
 | 
			
		||||
        {{>'systems/foundryvtt-reve-de-dragon/templates/coeur/afficher-coeur.hbs' numero=4 courant=suivant.coeur prochain=suivant.prochainCoeur}}
 | 
			
		||||
      </span>
 | 
			
		||||
      <span class="competence-title subacteur-label">
 | 
			
		||||
        {{#if (gte suivant.coeur 1)}}
 | 
			
		||||
          <a class="subacteur-tendre-moment chat-card-button" data-tooltip="Proposer à {{suivant.name}} de passer un tendre moment">Tendre moment</a>
 | 
			
		||||
        {{/if}}
 | 
			
		||||
      </span>
 | 
			
		||||
    {{/if}}
 | 
			
		||||
    <div class="item-controls flex-shrink">
 | 
			
		||||
      <a class="subacteur-delete" data-tooltip="Supprimer"><i class="fas fa-trash"></i></a>
 | 
			
		||||
    </div>
 | 
			
		||||
  </li>
 | 
			
		||||
  {{/each}}
 | 
			
		||||
</ul>
 | 
			
		||||
@@ -1,12 +0,0 @@
 | 
			
		||||
<span class="item-name"><h4>Suivants</h4></span>
 | 
			
		||||
<ul class="item-list alterne-list">
 | 
			
		||||
  {{#each subacteurs.suivants as |suivant id|}}
 | 
			
		||||
  <li class="item flexrow list-item" data-actor-id="{{suivant.id}}">
 | 
			
		||||
    <img class="sheet-competence-img" src="{{suivant.img}}" title="{{suivant.name}}"/>
 | 
			
		||||
    <span class="competence-title subacteur-label"><a>{{suivant.name}}</a></span>
 | 
			
		||||
    <div class="item-controls flex-shrink">
 | 
			
		||||
      <a class="subacteur-delete" title="Supprimer"><i class="fas fa-trash"></i></a>
 | 
			
		||||
  </div>
 | 
			
		||||
  </li>
 | 
			
		||||
  {{/each}}
 | 
			
		||||
</ul>
 | 
			
		||||
@@ -11,18 +11,14 @@
 | 
			
		||||
  </li>
 | 
			
		||||
 | 
			
		||||
  {{#each subacteurs.vehicules as |vehicule id|}}
 | 
			
		||||
  <li class="item flexrow list-item" data-actor-id="{{vehicule.id}}">
 | 
			
		||||
    <span class="subacteur-label">
 | 
			
		||||
      <a>
 | 
			
		||||
        <img class="sheet-competence-img" src="{{vehicule.img}}" title="{{vehicule.name}}"/>
 | 
			
		||||
        {{vehicule.name}}
 | 
			
		||||
      </a>
 | 
			
		||||
    </span>
 | 
			
		||||
  <li class="item flexrow list-item" data-subactor-id="{{vehicule.id}}">
 | 
			
		||||
    <img class="sheet-competence-img subacteur-open" src="{{vehicule.img}}" data-tooltip="{{vehicule.name}}"/>
 | 
			
		||||
    <span class="subacteur-label subacteur-open"><a>{{vehicule.name}}</a></span>
 | 
			
		||||
    <span>{{vehicule.system.categorie}}</span>
 | 
			
		||||
    <span>{{vehicule.system.etat.resistance.max}}</span>
 | 
			
		||||
    <span>{{vehicule.system.etat.structure.max}}</span>
 | 
			
		||||
    <span>
 | 
			
		||||
      <a class="subacteur-delete" title="Supprimer"><i class="fas fa-trash"></i></a>
 | 
			
		||||
      <a class="subacteur-delete" data-tooltip="Supprimer"><i class="fas fa-trash"></i></a>
 | 
			
		||||
    </span>
 | 
			
		||||
  </li>
 | 
			
		||||
  {{/each}}
 | 
			
		||||
@@ -25,8 +25,8 @@
 | 
			
		||||
        {{/if}}
 | 
			
		||||
      </span>
 | 
			
		||||
      <div class="item-controls">
 | 
			
		||||
        <a class="item-edit" title="Modifier"><i class="fas fa-edit"></i></a>
 | 
			
		||||
        <a class="item-delete" title="Supprimer"><i class="fas fa-trash"></i></a>
 | 
			
		||||
        <a class="item-edit" data-tooltip="Modifier"><i class="fas fa-edit"></i></a>
 | 
			
		||||
        <a class="item-delete" data-tooltip="Supprimer"><i class="fas fa-trash"></i></a>
 | 
			
		||||
      </div>          
 | 
			
		||||
  </li>
 | 
			
		||||
  {{/each}}
 | 
			
		||||
 
 | 
			
		||||
@@ -1,12 +1,12 @@
 | 
			
		||||
<li class="item flexrow list-item" data-item-id="{{oeuvre._id}}">
 | 
			
		||||
  <img class="sheet-competence-img" src="{{oeuvre.img}}" />
 | 
			
		||||
  <img class="sheet-competence-img" src="{{oeuvre.img}}" data-tooltip="{{upperFirst typeOeuvre}}: {{oeuvre.name}}"/>
 | 
			
		||||
  <span>{{upperFirst typeOeuvre}}</span>
 | 
			
		||||
  <span class="competence-title {{classOeuvre}}">
 | 
			
		||||
    <a>{{oeuvre.name}} (niveau {{oeuvre.system.niveau}})</a>
 | 
			
		||||
  </span>
 | 
			
		||||
  <div class="item-controls">
 | 
			
		||||
    <a class="item-edit" title="Edit Item"><i class="fas fa-edit"></i></a>
 | 
			
		||||
    <a class="item-delete" title="Delete Item"><i class="fas fa-trash"></i></a>
 | 
			
		||||
    <a class="item-edit" data-tooltip="Edit Item"><i class="fas fa-edit"></i></a>
 | 
			
		||||
    <a class="item-delete" data-tooltip="Delete Item"><i class="fas fa-trash"></i></a>
 | 
			
		||||
  </div>
 | 
			
		||||
</li>
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -13,8 +13,8 @@
 | 
			
		||||
      </span>
 | 
			
		||||
      <span class="competence-label">{{possession.system.type}}</span>
 | 
			
		||||
      <div class="item-controls">
 | 
			
		||||
        <a class="item-edit" title="Modifier"><i class="fas fa-edit"></i></a>
 | 
			
		||||
        <a class="item-delete" title="Supprimer"><i class="fas fa-trash"></i></a>
 | 
			
		||||
        <a class="item-edit" data-tooltip="Modifier"><i class="fas fa-edit"></i></a>
 | 
			
		||||
        <a class="item-delete" data-tooltip="Supprimer"><i class="fas fa-trash"></i></a>
 | 
			
		||||
      </div>          
 | 
			
		||||
  </li>
 | 
			
		||||
  {{/each}}
 | 
			
		||||
 
 | 
			
		||||
@@ -2,10 +2,10 @@
 | 
			
		||||
<ul class="item-list alterne-list">
 | 
			
		||||
  {{#each resonances as |actor|}}
 | 
			
		||||
  <li class="item flexrow list-item" data-actor-id="{{actor.id}}">
 | 
			
		||||
    <img class="sheet-competence-img" src="{{actor.img}}" title="{{actor.name}}"/>
 | 
			
		||||
    <span class="subacteur-label"><a>{{actor.name}}</a></span>
 | 
			
		||||
    <img class="sheet-competence-img subacteur-open" src="{{actor.img}}" data-tooltip="{{actor.name}}"/>
 | 
			
		||||
    <span class="subacteur-label subacteur-open"><a>{{actor.name}}</a></span>
 | 
			
		||||
    <div class="flex-shrink">
 | 
			
		||||
      <a class="resonance-delete" title="Supprimer"><i class="fas fa-trash"></i></a>
 | 
			
		||||
      <a class="resonance-delete" data-tooltip="Supprimer"><i class="fas fa-trash"></i></a>
 | 
			
		||||
  </div>
 | 
			
		||||
  </li>
 | 
			
		||||
  {{/each}}
 | 
			
		||||
 
 | 
			
		||||
@@ -2,15 +2,15 @@
 | 
			
		||||
<ul class="item-list alterne-list">
 | 
			
		||||
  {{#each taches as |tache id|}}
 | 
			
		||||
    {{#unless (eq tache.system.competence 'Chirurgie')}}
 | 
			
		||||
    <li class="item flexrow list-item" data-item-id="{{tache._id}}">
 | 
			
		||||
      <img class="sheet-competence-img" src="{{tache.img}}" />
 | 
			
		||||
    <li class="item flexrow list-item" data-item-id="{{tache._id}}" data-tooltip="Tâche: {{tache.name}}" >
 | 
			
		||||
      <img class="sheet-competence-img" src="{{tache.img}}"/>
 | 
			
		||||
      <span class="competence-title tache-label"><a>{{tache.name}}
 | 
			
		||||
        ({{tache.system.points_de_tache_courant}}{{#if
 | 
			
		||||
          (or @root.options.isGM (not tache.system.cacher_points_de_tache))
 | 
			
		||||
        }}/{{tache.system.points_de_tache}}{{/if}})</a></span>
 | 
			
		||||
      <div class="item-controls flex-shrink">
 | 
			
		||||
        <a class="item-edit" title="Edit Item"><i class="fas fa-edit"></i></a>
 | 
			
		||||
        <a class="item-delete" title="Delete Item"><i class="fas fa-trash"></i></a>
 | 
			
		||||
        <a class="item-edit" data-tooltip="Edit Item"><i class="fas fa-edit"></i></a>
 | 
			
		||||
        <a class="item-delete" data-tooltip="Delete Item"><i class="fas fa-trash"></i></a>
 | 
			
		||||
      </div>
 | 
			
		||||
    </li>
 | 
			
		||||
    {{/unless}}
 | 
			
		||||
 
 | 
			
		||||
@@ -1,8 +1,8 @@
 | 
			
		||||
<span><a class="vue-detaillee">
 | 
			
		||||
  {{#if options.vueDetaillee}}
 | 
			
		||||
  <i class="fas fa-eye-slash"></i> Vue simplifiée
 | 
			
		||||
  <i class="fa-solid fa-eye-slash"></i> Vue simplifiée
 | 
			
		||||
  {{else}}
 | 
			
		||||
  <i class="fas fa-eye"></i> Vue détaillée
 | 
			
		||||
  <i class="fa-solid fa-eye"></i> Vue détaillée
 | 
			
		||||
  {{/if}}
 | 
			
		||||
  </a>
 | 
			
		||||
</span>
 | 
			
		||||
 
 | 
			
		||||
Some files were not shown because too many files have changed in this diff Show More
		Reference in New Issue
	
	Block a user