Compare commits
17
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
36c771518d | ||
|
|
dd7a3700dc | ||
|
|
f0736015a7 | ||
|
|
aae603d798 | ||
|
|
d9bc6309fb | ||
|
|
c14361919c | ||
|
|
b26c39cf21 | ||
|
|
ca2d17bd25 | ||
|
|
a243209c90 | ||
|
|
90435c07b4 | ||
|
|
46d09c7bd9 | ||
|
|
05036877ed | ||
|
|
98e8c7a10c | ||
|
|
19cabe816e | ||
|
|
706aa657b1 | ||
|
|
fd3f988a4f | ||
|
|
981282d809 |
@@ -0,0 +1 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512" style="height: 256px; width: 256px;"><polygon points="256,512,0,256,256,0,512,256" fill="#000" fill-opacity="1"></polygon><g class="" transform="translate(8,-12)" style=""><path d="M282.83 18.877c21.567 6.146 36.328 15.205 40.572 28.77a71.007 71.007 0 0 0-4.066 2.363c-25.655 5.807-53.084 18.634-81.047 34.363 20.225-4.69 36.705-4.42 47.544 3.324-5.712 10.3-10.797 22.294-15.123 36.06-21.343 67.922-125.678-80.577-189.065-5.255C41.47 166.24 92.702 212.342 26.5 294.29c35.583-4.14 45.11-9.47 62.416-36.21 10.44-16.13 28.52-22.1 44.668-21.45-12.718 11.206-25.786 30.354-38.21 59.895 19.832-18.528 44.927-38.68 71.603-40.005.912 6.354-2.408 13.74-12.008 21.418C93.21 327.327 15.58 364.185 19.83 476.504c5.558-11.267 11.646-20.31 17.574-28.617 5.98 29.582 28.2 53.8 92.99 40.482-46.928-6.407-76.268-59.586-45.355-82.528 62.716-46.544 128.82 1.436 269.9-75.342a79.832 79.832 0 0 1 7.164-3.46c-2.246 19.6-12.367 39.84-22.362 57.14 14.26-10.38 25.415-20.147 33.928-29.262 2.14 26.14-11.748 54.65-25.393 78.268 43.26-31.49 61.19-57.976 63.207-78.422 9.334 36.678-1.895 95.547-25.03 123.492 77.553-39.433 106.608-77.127 109.76-190.664 1.662-59.824-66.23-60.536-56.435-101.344 11.945-49.756 6.768-84.69-7.565-107.947-19.6-49.73-79.99-59.74-149.385-59.423zM89.8 47.684C54.69 47.534 45.233 83.056 55.724 117c17.146-51.504 70.414-44.24 111.17-34.367-33.282-25.005-58.707-34.87-77.096-34.95zm254.595 30.742c18.643 21.37 29.373 43.02 10.105 65.732-26.562-16.677-26.985-39.252-10.105-65.732zm74.494 48.6c3.655-.013 7.78.35 12.473 1.09-1.706 30.506-14.4 33-46.634 32.154 8.335-22.146 14.416-33.176 34.16-33.245zm-84.677 40.316c9.652.1 20.258 2.84 30.598 8.918 44.65 26.246 21.934 73.314-4.1 74.78-15.174.855 1.443-23.842-16.17-38.476-15.258-12.678-38.596 12.53-45.204-5.78-8.218-22.693 10.21-39.696 34.877-39.442zm60.18 246.168c-24.195 27.825-58.89 60.1-99.444 31.41 16.625 45.643 68.87 70.465 99.443-31.41z" fill="#fff" fill-opacity="1" transform="translate(102.4, 102.4) scale(0.6, 0.6) rotate(0, 256, 256) skewX(0) skewY(0)"></path></g></svg>
|
||||
|
After Width: | Height: | Size: 2.0 KiB |
@@ -1,5 +1,23 @@
|
||||
# 13.0
|
||||
|
||||
## 13.0.21 - La folie d'Illysis
|
||||
|
||||
- Jets d'appréciation et de moral
|
||||
- concerne la danse, musique, chant, jeu, les oeuvres, la nourriture, les services
|
||||
- gestion des compétences d'appréciation pour les oeuvres
|
||||
- pas de jet de moral si la qualité n'est pas suffisante (inférieure au moral,
|
||||
à la compétence, moral déjà gagné pour la même raison)
|
||||
- jet d'appréciation avec en option la compétence et la qualité
|
||||
- jet de moral très heureux (pour Spasme)
|
||||
- les jets de moral sont liés à des "bon moments"
|
||||
- la liste des bons moments passés par un acteur est remise à zéro à Château Dormant
|
||||
- Fenêtre de jet v2
|
||||
- les possessions sont maintenant gérées avec les fenêtres V2
|
||||
- on peut choisir sa voie de draconic pour contrer une possession ou conjurer
|
||||
- La zone de saisie dans les journaux est mieux adaptée
|
||||
- Correction des bonus de caractéristiques des cyans
|
||||
|
||||
|
||||
## 13.0.20 - L'immobilisme d'Illysis
|
||||
|
||||
- Centrage du logo de pause
|
||||
|
||||
@@ -74,11 +74,12 @@ select,
|
||||
font-family: "CaslonAntique";
|
||||
/* For sheet parts; For nav and title */
|
||||
}
|
||||
:root {
|
||||
body {
|
||||
/* =================== 2. DEBUGGING HIGHLIGHTERS ============ */
|
||||
/* =================== 3. some constants ============ */
|
||||
--fieldset-background: url(/ui/parchment.jpg);
|
||||
--rdd-color-text-primary: hsla(0, 0%, 4%, 0.9);
|
||||
--color-text-primary: hsla(0, 0%, 4%, 0.9);
|
||||
--rdd-input-background: hsla(0, 0%, 0%, 0.1);
|
||||
--rdd-color-border-input: hsla(0, 0%, 0%, 0.2);
|
||||
--rdd-bg-input: hsla(0, 0%, 100%, 0.1);
|
||||
@@ -682,7 +683,7 @@ select,
|
||||
.system-foundryvtt-reve-de-dragon .dialog-content div.roll-chat {
|
||||
font-family: CaslonAntique;
|
||||
display: grid;
|
||||
grid-template-areas: "img header buttons" "img resume buttons" "details details details" "actions actions actions";
|
||||
grid-template-areas: "img header buttons" "img resume buttons" "details details details" "description description description" "actions actions actions";
|
||||
grid-template-columns: 3rem 1fr 1.4rem;
|
||||
grid-template-rows: max-content max-content max-content max-content;
|
||||
gap: 0 0.5rem;
|
||||
@@ -738,6 +739,17 @@ select,
|
||||
.system-foundryvtt-reve-de-dragon .dialog-content div.roll-chat div.chat-actions a img {
|
||||
margin-right: 0.5rem;
|
||||
}
|
||||
.system-foundryvtt-reve-de-dragon .chat-message div.roll-chat div.chat-description,
|
||||
.system-foundryvtt-reve-de-dragon .dialog-content div.roll-chat div.chat-description {
|
||||
grid-area: description;
|
||||
text-align: justify;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
}
|
||||
.system-foundryvtt-reve-de-dragon .chat-message div.roll-chat div.chat-description div,
|
||||
.system-foundryvtt-reve-de-dragon .dialog-content div.roll-chat div.chat-description div {
|
||||
display: block;
|
||||
}
|
||||
.system-foundryvtt-reve-de-dragon .chat-message div.roll-chat div.chat-buttons,
|
||||
.system-foundryvtt-reve-de-dragon .dialog-content div.roll-chat div.chat-buttons {
|
||||
grid-area: buttons;
|
||||
@@ -1388,12 +1400,22 @@ select,
|
||||
margin-inline: 0.1rem;
|
||||
margin-block: 0.1rem;
|
||||
}
|
||||
.system-foundryvtt-reve-de-dragon .prosemirror menu {
|
||||
background-color: var(--color-background-chat-message);
|
||||
}
|
||||
.system-foundryvtt-reve-de-dragon .app.sheet fieldset :is(label, input) {
|
||||
font-family: CaslonAntique;
|
||||
text-align: justify;
|
||||
font-size: 1rem;
|
||||
letter-spacing: 1px;
|
||||
}
|
||||
.system-foundryvtt-reve-de-dragon .app.sheet input.attribute-value {
|
||||
background-color: rgba(0, 0, 0, 0.05);
|
||||
border: 1px solid var(--color-border-light-tertiary);
|
||||
padding: 1px 3px;
|
||||
height: var(--form-field-height);
|
||||
border-radius: 3px;
|
||||
}
|
||||
.system-foundryvtt-reve-de-dragon .app.sheet div.form-group {
|
||||
clear: both;
|
||||
display: flex;
|
||||
@@ -1402,19 +1424,22 @@ select,
|
||||
margin: 0.1rem 0;
|
||||
align-items: center;
|
||||
}
|
||||
.system-foundryvtt-reve-de-dragon .prosemirror menu {
|
||||
background-color: var(--color-background-chat-message);
|
||||
}
|
||||
.system-foundryvtt-reve-de-dragon .app.sheet .editor.prosemirror {
|
||||
height: fit-content;
|
||||
min-height: 5rem;
|
||||
min-height: 6rem;
|
||||
}
|
||||
.system-foundryvtt-reve-de-dragon .app.sheet .editor.prosemirror .editor-container {
|
||||
min-height: 5rem;
|
||||
height: 8rem;
|
||||
min-height: 6rem;
|
||||
height: calc(100% - 3rem);
|
||||
margin: 0;
|
||||
flex: none;
|
||||
}
|
||||
.system-foundryvtt-reve-de-dragon .app.sheet.journal-entry-page .editor.prosemirror {
|
||||
height: 100%;
|
||||
}
|
||||
.system-foundryvtt-reve-de-dragon .app.sheet.journal-entry-page .editor.prosemirror .editor-container {
|
||||
height: calc(100% - 6rem);
|
||||
}
|
||||
.system-foundryvtt-reve-de-dragon .large-editor {
|
||||
border: 2;
|
||||
height: fit-content;
|
||||
@@ -1424,18 +1449,18 @@ select,
|
||||
.system-foundryvtt-reve-de-dragon .editor {
|
||||
border: 2;
|
||||
height: fit-content;
|
||||
min-height: 5rem;
|
||||
min-height: 6rem;
|
||||
padding: 0 3px;
|
||||
}
|
||||
.system-foundryvtt-reve-de-dragon .medium-editor {
|
||||
border: 2;
|
||||
min-height: 8rem;
|
||||
min-height: 9rem;
|
||||
padding: 0 3px;
|
||||
align-items: top;
|
||||
}
|
||||
.system-foundryvtt-reve-de-dragon .small-editor {
|
||||
border: 2;
|
||||
min-height: 2rem;
|
||||
min-height: 4rem;
|
||||
padding: 0 3px;
|
||||
}
|
||||
.system-foundryvtt-reve-de-dragon .foundryvtt-reve-de-dragon.sheet :is(.large-editor, .editor, .medium-editor, .small-editor) {
|
||||
|
||||
+2
-1
@@ -1,4 +1,4 @@
|
||||
:root {
|
||||
body {
|
||||
|
||||
/* =================== 2. DEBUGGING HIGHLIGHTERS ============ */
|
||||
// --debug-background-color-red: #ff000054;
|
||||
@@ -13,6 +13,7 @@
|
||||
/* =================== 3. some constants ============ */
|
||||
--fieldset-background: url(/ui/parchment.jpg);
|
||||
--rdd-color-text-primary: hsla(0, 0%, 4%, 0.9);
|
||||
--color-text-primary: hsla(0, 0%, 4%, 0.9);
|
||||
--rdd-input-background:hsla(0, 0%, 0%, 0.1);
|
||||
--rdd-color-border-input: hsla(0, 0%, 0%, 0.2);
|
||||
--rdd-bg-input: hsla(0, 0%, 100%, 0.1);
|
||||
|
||||
@@ -689,6 +689,7 @@
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
fieldset {
|
||||
border-style: groove;
|
||||
border-width: 0.1rem;
|
||||
@@ -697,36 +698,56 @@
|
||||
margin-inline: 0.1rem;
|
||||
margin-block: 0.1rem;
|
||||
}
|
||||
.app.sheet fieldset :is(label, input) {
|
||||
font-family: CaslonAntique;
|
||||
text-align: justify;
|
||||
font-size: 1rem;
|
||||
letter-spacing: 1px;
|
||||
}
|
||||
|
||||
.app.sheet div.form-group {
|
||||
clear: both;
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
flex-wrap: wrap;
|
||||
margin: 0.1rem 0;
|
||||
align-items: center;
|
||||
}
|
||||
.prosemirror {
|
||||
menu {
|
||||
background-color: var(--color-background-chat-message);
|
||||
}
|
||||
}
|
||||
.app.sheet .editor.prosemirror {
|
||||
height: fit-content;
|
||||
min-height: 5rem;
|
||||
}
|
||||
.app.sheet .editor.prosemirror .editor-container {
|
||||
min-height: 5rem;
|
||||
height: 8rem;
|
||||
margin: 0;
|
||||
flex: none;
|
||||
|
||||
.app.sheet{
|
||||
fieldset :is(label, input) {
|
||||
font-family: CaslonAntique;
|
||||
text-align: justify;
|
||||
font-size: 1rem;
|
||||
letter-spacing: 1px;
|
||||
}
|
||||
|
||||
input.attribute-value {
|
||||
background-color: rgba(0, 0, 0, 0.05);
|
||||
border: 1px solid var(--color-border-light-tertiary);
|
||||
padding: 1px 3px;
|
||||
height: var(--form-field-height);
|
||||
border-radius: 3px;
|
||||
}
|
||||
|
||||
div.form-group {
|
||||
clear: both;
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
flex-wrap: wrap;
|
||||
margin: 0.1rem 0;
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
.editor.prosemirror {
|
||||
height: fit-content;
|
||||
min-height: 6rem;
|
||||
|
||||
.editor-container {
|
||||
min-height: 6rem;
|
||||
height: calc(100% - 3rem);
|
||||
margin: 0;
|
||||
flex: none;
|
||||
}
|
||||
}
|
||||
}
|
||||
.app.sheet.journal-entry-page .editor.prosemirror{
|
||||
height: 100%;
|
||||
.editor-container {
|
||||
height: calc(100% - 6rem);
|
||||
}
|
||||
}
|
||||
|
||||
.large-editor {
|
||||
border: 2;
|
||||
@@ -738,20 +759,20 @@
|
||||
.editor {
|
||||
border: 2;
|
||||
height: fit-content;
|
||||
min-height: 5rem;
|
||||
min-height: 6rem;
|
||||
padding: 0 3px;
|
||||
}
|
||||
|
||||
.medium-editor {
|
||||
border: 2;
|
||||
min-height: 8rem;
|
||||
min-height: 9rem;
|
||||
padding: 0 3px;
|
||||
align-items: top;
|
||||
}
|
||||
|
||||
.small-editor {
|
||||
border: 2;
|
||||
min-height: 2rem;
|
||||
min-height: 4rem;
|
||||
padding: 0 3px;
|
||||
}
|
||||
|
||||
|
||||
+12
-1
@@ -6,7 +6,9 @@
|
||||
"img header buttons"
|
||||
"img resume buttons"
|
||||
"details details details"
|
||||
"actions actions actions";
|
||||
"description description description"
|
||||
"actions actions actions"
|
||||
;
|
||||
grid-template-columns: 3rem 1fr 1.4rem;
|
||||
grid-template-rows: max-content max-content max-content max-content;
|
||||
gap: 0 0.5rem;
|
||||
@@ -53,6 +55,15 @@
|
||||
}
|
||||
}
|
||||
}
|
||||
div.chat-description {
|
||||
grid-area: description;
|
||||
text-align: justify;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
div {
|
||||
display: block;
|
||||
}
|
||||
}
|
||||
|
||||
div.chat-buttons {
|
||||
grid-area: buttons;
|
||||
|
||||
@@ -18,6 +18,7 @@ import { RdDBaseActorSangSheet } from "./actor/base-actor-sang-sheet.js";
|
||||
import { RdDCoeur } from "./coeur/rdd-coeur.js";
|
||||
import { AppPersonnageAleatoire } from "./actor/random/app-personnage-aleatoire.js";
|
||||
import { RdDTextEditor } from "./apps/rdd-text-roll-editor.js";
|
||||
import { MORAL } from "./moral/apprecier.mjs";
|
||||
|
||||
/* -------------------------------------------- */
|
||||
/**
|
||||
@@ -275,9 +276,9 @@ export class RdDActorSheet extends RdDBaseActorSangSheet {
|
||||
this.html.find('.seuil-reve-value').change(async event => await this.actor.setPointsDeSeuil(event.currentTarget.value))
|
||||
|
||||
this.html.find('.stress-test').click(async event => await this.actor.transformerStress())
|
||||
this.html.find('.moral-malheureux').click(async event => await this.actor.jetDeMoral('malheureuse'))
|
||||
this.html.find('.moral-neutre').click(async event => await this.actor.jetDeMoral('neutre'))
|
||||
this.html.find('.moral-heureux').click(async event => await this.actor.jetDeMoral('heureuse'))
|
||||
this.html.find('.moral-malheureux').click(async event => await this.actor.jetDeMoral(MORAL.MALHEUREUX))
|
||||
this.html.find('.moral-neutre').click(async event => await this.actor.jetDeMoral(MORAL.NEUTRE))
|
||||
this.html.find('.moral-heureux').click(async event => await this.actor.jetDeMoral(MORAL.HEUREUX))
|
||||
this.html.find('.button-ethylisme').click(async event => await this.actor.jetEthylisme())
|
||||
|
||||
this.html.find('.ptreve-actuel-plus').click(async event => await this.actor.reveActuelIncDec(1))
|
||||
|
||||
+77
-58
@@ -41,17 +41,19 @@ import { RdDItemCompetence } from "./item-competence.js";
|
||||
import { RdDItemSigneDraconique } from "./item/signedraconique.js";
|
||||
import { RdDRencontre } from "./item/rencontre.js";
|
||||
import { DialogSelect } from "./dialog-select.js";
|
||||
import { PAS_DE_DRACONIC, POSSESSION_SANS_DRACONIC } from "./item/base-items.js";
|
||||
import { CATEGORIES_COMPETENCES, PAS_DE_DRACONIC, POSSESSION_SANS_DRACONIC } from "./item/base-items.js";
|
||||
|
||||
import { RdDRollResult } from "./rdd-roll-result.js";
|
||||
import { RdDInitiative } from "./initiative.mjs";
|
||||
import RollDialog from "./roll/roll-dialog.mjs";
|
||||
import { OptionsAvancees, ROLL_DIALOG_V2, ROLL_DIALOG_V2_TEST } from "./settings/options-avancees.js";
|
||||
import { OptionsAvancees, ROLL_DIALOG_V2 } from "./settings/options-avancees.js";
|
||||
import { ROLL_TYPE_JEU, ROLL_TYPE_MEDITATION, ROLL_TYPE_SORT } from "./roll/roll-constants.mjs";
|
||||
import { PART_TACHE } from "./roll/roll-part-tache.mjs";
|
||||
import { PART_COMP } from "./roll/roll-part-comp.mjs";
|
||||
import { PART_OEUVRE } from "./roll/roll-part-oeuvre.mjs";
|
||||
import { PART_CUISINE } from "./roll/roll-part-cuisine.mjs";
|
||||
import { RdDPossessionV2 } from "./rdd-possession-v2.mjs";
|
||||
import { Apprecier, MORAL, SITUATION_MORAL } from "./moral/apprecier.mjs";
|
||||
|
||||
export const MAINS_DIRECTRICES = ['Droitier', 'Gaucher', 'Ambidextre']
|
||||
|
||||
@@ -160,12 +162,15 @@ export class RdDActor extends RdDBaseActorSang {
|
||||
|
||||
/* -------------------------------------------- */
|
||||
getDemiReve() { return this.system.reve.tmrpos.coord }
|
||||
getDraconics() { return this.itemTypes[ITEM_TYPES.competence].filter(it => it.system.categorie == 'draconic') }
|
||||
getDraconics() {
|
||||
return this.isHautRevant()
|
||||
? this.itemTypes[ITEM_TYPES.competence].filter(it => it.system.categorie == CATEGORIES_COMPETENCES.draconic.key)
|
||||
: []
|
||||
}
|
||||
getBestDraconic() { return foundry.utils.duplicate([...this.getDraconics(), PAS_DE_DRACONIC].sort(Misc.descending(it => it.system.niveau)).find(it => true)) }
|
||||
getDraconicOuPossession() {
|
||||
return [...this.getDraconics().filter(it => it.system.niveau >= 0), POSSESSION_SANS_DRACONIC]
|
||||
.sort(Misc.descending(it => it.system.niveau))
|
||||
.find(it => true)
|
||||
|
||||
getConjurationNaturelle() {
|
||||
return new RdDItemCompetence(POSSESSION_SANS_DRACONIC)
|
||||
}
|
||||
|
||||
isForceInsuffisante(forceRequise) {
|
||||
@@ -358,15 +363,15 @@ export class RdDActor extends RdDBaseActorSang {
|
||||
content: ""
|
||||
};
|
||||
|
||||
await this._recuperationSante(message);
|
||||
await this._recupereMoralChateauDormant(message);
|
||||
await this._recupereChance();
|
||||
await this.transformerStress();
|
||||
await this.retourSeuilDeReve(message);
|
||||
await this.setBonusPotionSoin(0);
|
||||
await this.retourSust(message);
|
||||
await this.$perteReveEnchantementsChateauDormants();
|
||||
await this.$suppressionLancementsSort();
|
||||
await this._recuperationSante(message)
|
||||
await this._recupereMoralChateauDormant(message)
|
||||
await this._recupereChance()
|
||||
await this.transformerStress()
|
||||
await this.retourSeuilDeReve(message)
|
||||
await this.setBonusPotionSoin(0)
|
||||
await this.retourSust(message)
|
||||
await this.$perteReveEnchantementsChateauDormants()
|
||||
await this.$suppressionLancementsSort()
|
||||
await RdDCoeur.applyCoeurChateauDormant(this, message);
|
||||
if (message.content != "") {
|
||||
message.content = `A la fin Chateau Dormant, ${message.content}<br>Un nouveau jour se lève`;
|
||||
@@ -410,11 +415,13 @@ export class RdDActor extends RdDBaseActorSang {
|
||||
}
|
||||
|
||||
async _recupereMoralChateauDormant(message) {
|
||||
await this.update({ 'system.compteurs.bonmoments': [] }, { render: false })
|
||||
|
||||
if (!ReglesOptionnelles.isUsing("recuperation-moral")) { return }
|
||||
|
||||
const etatMoral = this.system.sommeil?.moral ?? 'neutre';
|
||||
const jetMoral = await this._jetDeMoral(etatMoral);
|
||||
message.content += ` -- le jet de moral est ${etatMoral}, le moral ` + this._messageAjustementMoral(jetMoral.ajustement);
|
||||
const etatMoral = this.system.sommeil?.moral ?? MORAL.NEUTRE
|
||||
const jetMoral = await this._jetDeMoral(etatMoral)
|
||||
message.content += ` -- le jet de moral est ${etatMoral}, le moral ` + this._messageAjustementMoral(jetMoral.ajustement)
|
||||
}
|
||||
|
||||
_messageAjustementMoral(ajustement) {
|
||||
@@ -688,7 +695,7 @@ export class RdDActor extends RdDBaseActorSang {
|
||||
const rencontre = await game.system.rdd.rencontresTMR.getReveDeDragon(force);
|
||||
let rollData = {
|
||||
actor: this,
|
||||
competence: this.getDraconicOuPossession(),
|
||||
competence: this.getDraconicOuPossession().find(it => true),
|
||||
canClose: false,
|
||||
rencontre: rencontre,
|
||||
tmr: true,
|
||||
@@ -1191,17 +1198,21 @@ export class RdDActor extends RdDBaseActorSang {
|
||||
}
|
||||
|
||||
/* -------------------------------------------- */
|
||||
async jetDeMoral(situation, messageReussi = undefined, messageManque = undefined) {
|
||||
const jetMoral = await this._jetDeMoral(situation);
|
||||
const finMessage = (jetMoral.succes ? messageReussi : messageManque) ?? (jetMoral.ajustement == 0 ? "Vous gardez votre moral" : jetMoral.ajustement > 0 ? "Vous gagnez du moral" : "Vous perdez du moral");
|
||||
async jetDeMoral(situation, bonmoment = "") {
|
||||
if (bonmoment != "" && bonmoment != undefined && this.system.compteurs.bonmoments.includes(bonmoment)) {
|
||||
ui.notifications.info(`${this.name} a déjà gagné du moral après avoir passé un bon moment (${bonmoment}) pendant la journée, pas de gain de moral`)
|
||||
return
|
||||
}
|
||||
const jetMoral = await this._jetDeMoral(situation, bonmoment)
|
||||
const finMessage = (jetMoral.ajustement == 0 ? "Vous gardez votre moral" : jetMoral.ajustement > 0 ? "Vous gagnez du moral" : "Vous perdez du moral");
|
||||
ChatMessage.create({
|
||||
whisper: ChatUtility.getOwners(this),
|
||||
content: `${finMessage} - jet ${jetMoral.succes ? "réussi" : "manqué"} en situation ${situation} (${jetMoral.jet}/${jetMoral.difficulte}).`
|
||||
});
|
||||
return jetMoral.ajustement;
|
||||
content: `${finMessage} - jet ${jetMoral.succes ? "réussi" : "manqué"} en situation ${SITUATION_MORAL[situation] ?? situation} (${jetMoral.jet}/${jetMoral.difficulte}).`
|
||||
})
|
||||
return jetMoral.ajustement
|
||||
}
|
||||
|
||||
async _jetDeMoral(situation) {
|
||||
async _jetDeMoral(situation, bonmoment = "") {
|
||||
const moralActuel = Misc.toInt(this.system.compteurs.moral.value);
|
||||
const jet = await RdDDice.rollTotal("1d20");
|
||||
const difficulte = 10 + moralActuel;
|
||||
@@ -1213,14 +1224,18 @@ export class RdDActor extends RdDBaseActorSang {
|
||||
difficulte: difficulte,
|
||||
succes: succes,
|
||||
ajustement: this._calculAjustementMoral(succes, moralActuel, situation)
|
||||
};
|
||||
await this.moralIncDec(jetMoral.ajustement);
|
||||
}
|
||||
await this.moralIncDec(jetMoral.ajustement, bonmoment);
|
||||
return jetMoral;
|
||||
}
|
||||
|
||||
/* -------------------------------------------- */
|
||||
async moralIncDec(ajustementMoral) {
|
||||
async moralIncDec(ajustementMoral, bonmoment = "") {
|
||||
if (ajustementMoral != 0) {
|
||||
if (ajustementMoral > 0 && bonmoment != "" && bonmoment != undefined) {
|
||||
const bonmoments = [...this.system.compteurs.bonmoments, bonmoment]
|
||||
await this.update({ 'system.compteurs.bonmoments': bonmoments }, { render: false })
|
||||
}
|
||||
const startMoral = parseInt(this.system.compteurs.moral.value)
|
||||
const moralTheorique = startMoral + ajustementMoral
|
||||
if (moralTheorique > 3) { // exaltation
|
||||
@@ -1241,13 +1256,14 @@ export class RdDActor extends RdDBaseActorSang {
|
||||
/* -------------------------------------------- */
|
||||
_calculAjustementMoral(succes, moral, situation) {
|
||||
switch (situation) {
|
||||
case 'heureux': case 'heureuse': return succes ? 1 : 0;
|
||||
case 'malheureuse': case 'malheureux': return succes ? 0 : -1;
|
||||
case 'neutre':
|
||||
if (succes && moral < 0) return 1;
|
||||
if (!succes && moral > 0) return -1;
|
||||
case MORAL.TRESHEUREUX: return succes ? 2 : 1
|
||||
case MORAL.HEUREUX: case 'heureuse': return succes ? 1 : 0
|
||||
case MORAL.MALHEUREUX: case 'malheureuse': return succes ? 0 : -1
|
||||
case MORAL.NEUTRE:
|
||||
if (succes && moral < 0) return 1
|
||||
if (!succes && moral > 0) return -1
|
||||
}
|
||||
return 0;
|
||||
return 0
|
||||
}
|
||||
|
||||
/* -------------------------------------------- */
|
||||
@@ -1306,33 +1322,31 @@ export class RdDActor extends RdDBaseActorSang {
|
||||
}
|
||||
const item = this.getItem(itemId)
|
||||
if (!item.getUtilisationCuisine()) {
|
||||
return;
|
||||
return
|
||||
}
|
||||
if (choix.doses > item.system.quantite) {
|
||||
ui.notifications.warn(`Il n'y a pas assez de ${item.name} pour manger ${choix.doses}`)
|
||||
return;
|
||||
return
|
||||
}
|
||||
if (!this._apprecierCuisine(item, choix.seForcer)) {
|
||||
ui.notifications.info(`${this.name} ne n'arrive pas à manger de ${item.name}`)
|
||||
return;
|
||||
}
|
||||
await this.manger(item, choix.doses, { diminuerQuantite: false });
|
||||
await this.boire(item, choix.doses, { diminuerQuantite: false });
|
||||
await item.diminuerQuantite(choix.doses, choix);
|
||||
}
|
||||
|
||||
async _apprecierCuisine(item, seForcer) {
|
||||
const surmonteExotisme = await this._surmonterExotisme(item, seForcer);
|
||||
if (surmonteExotisme) {
|
||||
await this.apprecier(CARACS.ODORATGOUT, 'cuisine', item.system.qualite, item.system.boisson ? "apprécie la boisson" : "apprécie le plat");
|
||||
const onManger = [
|
||||
async () => await this.manger(item, choix.doses, { diminuerQuantite: false }),
|
||||
async () => await this.boire(item, choix.doses, { diminuerQuantite: false }),
|
||||
async () => await item.diminuerQuantite(choix.doses, choix)
|
||||
]
|
||||
|
||||
if (await this._surmonterExotisme(item)) {
|
||||
const appreciation = item.system.appreciation;
|
||||
new Apprecier(this, appreciation, item.system.qualite)
|
||||
.apprecier(onManger)
|
||||
}
|
||||
else if (seForcer) {
|
||||
await this.jetDeMoral('malheureux');
|
||||
else if (choix.seForcer) {
|
||||
await this.jetDeMoral(MORAL.MALHEUREUX)
|
||||
await Promise.all(onManger.map(async callback => await callback()))
|
||||
}
|
||||
else {
|
||||
return false;
|
||||
ui.notifications.info(`${this.name} ne n'arrive pas à manger de ${item.name}`)
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
/* -------------------------------------------- */
|
||||
@@ -1358,7 +1372,7 @@ export class RdDActor extends RdDBaseActorSang {
|
||||
}
|
||||
const rolled = await this.doRollCaracCompetence(carac, undefined, 0, { title });
|
||||
if (rolled?.isSuccess) {
|
||||
await this.jetDeMoral('heureux');
|
||||
await this.jetDeMoral(MORAL.HEUREUX);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1425,7 +1439,7 @@ export class RdDActor extends RdDBaseActorSang {
|
||||
ethylismeData.perteEndurance = await this.santeIncDec("endurance", -perte);
|
||||
|
||||
if (!ethylisme.jet_moral) {
|
||||
ethylismeData.jetMoral = await this._jetDeMoral('heureuse');
|
||||
ethylismeData.jetMoral = await this._jetDeMoral(MORAL.HEUREUX, "Ethylisme");
|
||||
if (ethylismeData.jetMoral.ajustement == 1) {
|
||||
ethylismeData.moralAlcool = 'heureux';
|
||||
ethylisme.jet_moral = true;
|
||||
@@ -1433,7 +1447,7 @@ export class RdDActor extends RdDBaseActorSang {
|
||||
ethylismeData.jetMoral.ajustement = -1;
|
||||
ethylismeData.moralAlcool = 'triste';
|
||||
ethylisme.jet_moral = true;
|
||||
await this.moralIncDec(-1);
|
||||
await this.moralIncDec(-1, "Ethylisme");
|
||||
}
|
||||
}
|
||||
if (ethylisme.value < 0) {
|
||||
@@ -2564,7 +2578,12 @@ export class RdDActor extends RdDBaseActorSang {
|
||||
|
||||
/* -------------------------------------------- */
|
||||
conjurerPossession(possession) {
|
||||
RdDPossession.onConjurerPossession(this, possession)
|
||||
if (OptionsAvancees.isUsing(ROLL_DIALOG_V2)) {
|
||||
RdDPossessionV2.rollConjurerPossession(this, possession)
|
||||
}
|
||||
else {
|
||||
RdDPossession.onConjurerPossession(this, possession)
|
||||
}
|
||||
}
|
||||
|
||||
/* -------------------------------------------- */
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import { renderTemplate, SHOW_DICE, SYSTEM_RDD } from "../constants.js";
|
||||
import { RDD_CONFIG, renderTemplate, SHOW_DICE, SYSTEM_RDD } from "../constants.js";
|
||||
import { Grammar } from "../grammar.js";
|
||||
import { Misc } from "../misc.js";
|
||||
import { RdDResolutionTable } from "../rdd-resolution-table.js";
|
||||
@@ -22,13 +22,16 @@ import { DialogValidationEncaissement } from "../dialog-validation-encaissement.
|
||||
import { RdDCombat } from "../rdd-combat.js";
|
||||
import { RdDEmpoignade } from "../rdd-empoignade.js";
|
||||
import { RdDPossession } from "../rdd-possession.js";
|
||||
import { BASE_CORPS_A_CORPS, BASE_ESQUIVE, POSSESSION_SANS_DRACONIC } from "../item/base-items.js";
|
||||
import { BASE_CORPS_A_CORPS, BASE_ESQUIVE, CATEGORIES_COMPETENCES_CREATURES } from "../item/base-items.js";
|
||||
import { RollDataAjustements } from "../rolldata-ajustements-v1.js";
|
||||
import { MappingCreatureArme } from "../item/mapping-creature-arme.mjs";
|
||||
import RollDialog from "../roll/roll-dialog.mjs";
|
||||
import { ATTAQUE_ROLL_TYPES, DEFAULT_ROLL_TYPES, DIFF, DIFFS, ROLL_TYPE_ATTAQUE, ROLL_TYPE_COMP, ROLL_TYPE_JEU, ROLL_TYPE_MEDITATION, ROLL_TYPE_OEUVRE, ROLL_TYPE_TACHE } from "../roll/roll-constants.mjs";
|
||||
import { ATTAQUE_ROLL_TYPES, DEFAULT_ROLL_TYPES, DIFF, ROLL_TYPE_ATTAQUE} from "../roll/roll-constants.mjs";
|
||||
import { OptionsAvancees, ROLL_DIALOG_V2 } from "../settings/options-avancees.js";
|
||||
import { PART_COMP } from "../roll/roll-part-comp.mjs";
|
||||
import { RdDInitiative } from "../initiative.mjs";
|
||||
import { RdDItemCompetenceCreature } from "../item-competencecreature.js";
|
||||
import { RdDPossessionV2 } from "../rdd-possession-v2.mjs";
|
||||
|
||||
/**
|
||||
* Classe de base pour les acteurs disposant de rêve (donc, pas des objets)
|
||||
@@ -114,11 +117,54 @@ export class RdDBaseActorReve extends RdDBaseActor {
|
||||
return this.system.carac[competence.system.defaut_carac].value;
|
||||
}
|
||||
|
||||
getDraconics() { return [] }
|
||||
getDraconicOuPossession() {
|
||||
return [
|
||||
...this.getDraconics(),
|
||||
...this.itemTypes[ITEM_TYPES.competencecreature].filter(it => it.isCompetencePossession()),
|
||||
this.getConjurationNaturelle()
|
||||
].sort(Misc.descending(it => it.system.niveau));
|
||||
}
|
||||
|
||||
getConjurations() {
|
||||
return this.getDraconicOuPossession()
|
||||
.map(it => this.toActionConjuration(it))
|
||||
}
|
||||
|
||||
getConjurationNaturelle() {
|
||||
return new RdDItemCompetenceCreature({
|
||||
name: 'Sans compétence',
|
||||
type: ITEM_TYPES.competencecreature,
|
||||
img: RDD_CONFIG.icons.possession,
|
||||
system: {
|
||||
carac_value: this.getReveActuel(),
|
||||
niveau: 0,
|
||||
default_diffLibre: 0,
|
||||
categorie: CATEGORIES_COMPETENCES_CREATURES.possession.key,
|
||||
ispossession: true,
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
toActionConjuration(comp) {
|
||||
const caracCode = this.isPersonnage() ? CARACS.REVE_ACTUEL : CARACS.REVE
|
||||
const caracValue = this.getReveActuel()
|
||||
const ajustement = this.getEtatGeneral()
|
||||
return {
|
||||
label: `Conjuration (${comp.name})`,
|
||||
action: 'possession',
|
||||
initOnly: false,
|
||||
comp: comp,
|
||||
carac: { key: caracCode, value: caracValue },
|
||||
initiative: RdDInitiative.getRollInitiative(caracValue, comp.system.niveau, ajustement)
|
||||
}
|
||||
}
|
||||
|
||||
listActions({ isAttaque = false, isEquipe = false }) {
|
||||
return this.itemTypes[ITEM_TYPES.competencecreature]
|
||||
.filter(it => it.isAttaque())
|
||||
.map(it => it.attaqueCreature())
|
||||
.filter(it => it != undefined);
|
||||
.filter(it => it != undefined)
|
||||
}
|
||||
|
||||
async computeArmure(dmg) { return this.getProtectionNaturelle() }
|
||||
@@ -130,13 +176,14 @@ export class RdDBaseActorReve extends RdDBaseActor {
|
||||
async santeIncDec(name, inc, isCritique = false) { }
|
||||
|
||||
async finDeRound(options = { terminer: false }) {
|
||||
await this.$finDeRoundSuppressionEffetsTermines(options);
|
||||
await this.finDeRoundBlessures();
|
||||
await this.$finDeRoundSupprimerObsoletes();
|
||||
await this.$finDeRoundEmpoignade();
|
||||
await this.finDeRoundSuppressionEffetsTermines(options)
|
||||
await this.finDeRoundBlessures()
|
||||
await this.finDeRoundSupprimerObsoletes()
|
||||
await this.finDeRoundEmpoignade()
|
||||
await this.finDeRoundPossession()
|
||||
}
|
||||
|
||||
async $finDeRoundSuppressionEffetsTermines(options) {
|
||||
async finDeRoundSuppressionEffetsTermines(options) {
|
||||
for (let effect of this.getEffects()) {
|
||||
if (effect.duration.type !== 'none' && (effect.duration.remaining <= 0 || options.terminer)) {
|
||||
await effect.delete();
|
||||
@@ -148,20 +195,24 @@ export class RdDBaseActorReve extends RdDBaseActor {
|
||||
async finDeRoundBlessures() {
|
||||
}
|
||||
|
||||
async $finDeRoundSupprimerObsoletes() {
|
||||
async finDeRoundSupprimerObsoletes() {
|
||||
const obsoletes = []
|
||||
.concat(this.itemTypes[ITEM_TYPES.empoignade].filter(it => it.system.pointsemp <= 0))
|
||||
.concat(this.itemTypes[ITEM_TYPES.possession].filter(it => it.system.compteur < -2 || it.system.compteur > 2))
|
||||
.map(it => it.id);
|
||||
.map(it => it.id)
|
||||
await this.deleteEmbeddedDocuments('Item', obsoletes);
|
||||
}
|
||||
|
||||
async $finDeRoundEmpoignade() {
|
||||
async finDeRoundEmpoignade() {
|
||||
await Promise.all(this.itemTypes[ITEM_TYPES.empoignade]
|
||||
.filter(it => it.system.pointsemp >= 2 && it.system.empoigneurid == this.id)
|
||||
.map(async it => await RdDEmpoignade.onImmobilisation(this, it)))
|
||||
}
|
||||
|
||||
async finDeRoundPossession(){
|
||||
await Promise.all(this.itemTypes[ITEM_TYPES.possession]
|
||||
.map(async it => await RdDPossessionV2.onPossession(this, it)))
|
||||
}
|
||||
|
||||
async setSonne(sonne = true) { }
|
||||
|
||||
/* -------------------------------------------- */
|
||||
@@ -198,8 +249,6 @@ export class RdDBaseActorReve extends RdDBaseActor {
|
||||
return false
|
||||
}
|
||||
|
||||
getDraconicOuPossession() { return POSSESSION_SANS_DRACONIC }
|
||||
|
||||
getPossession(possessionId) {
|
||||
return this.itemTypes[ITEM_TYPES.possession].find(it => it.system.possessionid == possessionId);
|
||||
}
|
||||
@@ -555,6 +604,10 @@ export class RdDBaseActorReve extends RdDBaseActor {
|
||||
})
|
||||
}
|
||||
|
||||
rollPossession() {
|
||||
RdDPossessionV2.rollAttaquePossession(this)
|
||||
}
|
||||
|
||||
verifierForceMin(item) { }
|
||||
|
||||
/* -------------------------------------------- */
|
||||
|
||||
@@ -11,6 +11,7 @@ import { RdDUtility } from "../rdd-utility.js";
|
||||
import { SystemCompendiums } from "../settings/system-compendiums.js";
|
||||
import { RdDItem } from "../item.js";
|
||||
import { StatusEffects, STATUSES } from "../settings/status-effects.js";
|
||||
import { Apprecier } from "../moral/apprecier.mjs";
|
||||
|
||||
export class RdDBaseActor extends Actor {
|
||||
|
||||
@@ -220,6 +221,7 @@ export class RdDBaseActor extends Actor {
|
||||
isEntite() { return false }
|
||||
isEntiteIncarnee() { return false }
|
||||
isEntiteNonIncarnee() { return false }
|
||||
isEntiteBlurette() { return false }
|
||||
isHautRevant() { return false }
|
||||
isVehicule() { return false }
|
||||
isPersonnage() { return false }
|
||||
@@ -516,10 +518,13 @@ export class RdDBaseActor extends Actor {
|
||||
async acheter(item, quantite, cout, achat) {
|
||||
await this.depenserSols(cout)
|
||||
const createdItemId = await this.creerQuantiteItem(item, quantite)
|
||||
if (achat.choix.consommer && item.type == 'nourritureboisson' && createdItemId != undefined) {
|
||||
if (item.type == ITEM_TYPES.nourritureboisson && achat.choix.consommer && createdItemId != undefined) {
|
||||
achat.choix.doses = achat.choix.nombreLots;
|
||||
await this.consommerNourritureboisson(createdItemId, achat.choix, achat.vente.actingUserId);
|
||||
}
|
||||
if (item.type == ITEM_TYPES.service) {
|
||||
new Apprecier(this, item.system.appreciation, item.system.qualite).apprecier()
|
||||
}
|
||||
}
|
||||
|
||||
verifierFortune(cout) {
|
||||
@@ -848,6 +853,7 @@ export class RdDBaseActor extends Actor {
|
||||
|
||||
listActionsPossessions() {
|
||||
return this.itemTypes[ITEM_TYPES.possession]
|
||||
.filter(it => !it.system.possede)
|
||||
.map(p => {
|
||||
return {
|
||||
label: p.name,
|
||||
@@ -856,9 +862,4 @@ export class RdDBaseActor extends Actor {
|
||||
}
|
||||
})
|
||||
}
|
||||
listActionsCombat() {
|
||||
const possessions = this.listActionsPossessions()
|
||||
return possessions.length > 0 ? possessions : this.listActions({})
|
||||
|
||||
}
|
||||
}
|
||||
+11
-9
@@ -19,8 +19,8 @@ export class RdDEntite extends RdDBaseActorReve {
|
||||
|
||||
isEntite() { return true }
|
||||
isEntiteNonIncarnee() { return this.system.definition.typeentite == ENTITE_NONINCARNE }
|
||||
isEntiteIncarnee() { return [ENTITE_INCARNE, ENTITE_BLURETTE].includes(this.system.definition.typeentite) }
|
||||
isEntiteBlurette() { return this.system.definition.typeentite !== ENTITE_BLURETTE }
|
||||
isEntiteIncarnee() { return !this.isEntiteNonIncarnee() }
|
||||
isEntiteBlurette() { return this.system.definition.typeentite == ENTITE_BLURETTE }
|
||||
|
||||
getReveActuel() {
|
||||
return Misc.toInt(this.system.carac.reve?.value)
|
||||
@@ -41,13 +41,6 @@ export class RdDEntite extends RdDBaseActorReve {
|
||||
getChance() { return this.getReve() }
|
||||
getEnduranceMax() { return Math.max(1, this.getTaille() + this.getReve()) }
|
||||
|
||||
getDraconicOuPossession() {
|
||||
return this.itemTypes[ITEM_TYPES.competencecreature]
|
||||
.filter(it => it.system.categorie == 'possession')
|
||||
.sort(Misc.descending(it => it.system.niveau))
|
||||
.find(it => true);
|
||||
}
|
||||
|
||||
async remiseANeuf() {
|
||||
if (!this.isEntiteNonIncarnee()) {
|
||||
await this.update({
|
||||
@@ -108,6 +101,15 @@ export class RdDEntite extends RdDBaseActorReve {
|
||||
return true
|
||||
}
|
||||
|
||||
listActionsPossessions() {
|
||||
if (this.isEntiteNonIncarnee()) {
|
||||
return this.itemTypes[ITEM_TYPES.competencecreature]
|
||||
.filter(it => it.system.ispossession)
|
||||
.map(it => it.attaqueCreature())
|
||||
.filter(it => it != undefined)
|
||||
}
|
||||
return super.listActionsPossessions()
|
||||
}
|
||||
/* -------------------------------------------- */
|
||||
async setEntiteReveAccordee(actor) {
|
||||
if (this.isEntiteIncarnee()) {
|
||||
|
||||
@@ -76,6 +76,15 @@ export class ChatUtility {
|
||||
ChatUtility.removeMessages({ part: part });
|
||||
}
|
||||
|
||||
static remover(chatMessage) {
|
||||
const messageId = chatMessage.id;
|
||||
if (messageId) {
|
||||
return (..._) => ChatUtility.removeMessages({ messageId: messageId });
|
||||
|
||||
}
|
||||
return (..._) => { }
|
||||
}
|
||||
|
||||
static removeChatMessageId(messageId) {
|
||||
if (messageId) {
|
||||
ChatUtility.removeMessages({ messageId: messageId });
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
import { RdDBaseActor } from "../actor/base-actor.js";
|
||||
import { ChatUtility } from "../chat-utility.js";
|
||||
import { renderTemplate } from "../constants.js";
|
||||
import { MORAL } from "../moral/apprecier.mjs";
|
||||
|
||||
const INFO_COEUR = 'info-coeur';
|
||||
|
||||
@@ -122,7 +123,7 @@ export class RdDCoeur {
|
||||
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.situation = diff <= amoureux.coeur ? MORAL.HEUREUX : MORAL.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)
|
||||
|
||||
@@ -61,6 +61,7 @@ export const RDD_CONFIG = {
|
||||
armesDisparates: 'systems/foundryvtt-reve-de-dragon/assets/actions/armes-disparates.svg',
|
||||
demiReve: 'systems/foundryvtt-reve-de-dragon/assets/actions/sort.svg',
|
||||
empoignade: 'systems/foundryvtt-reve-de-dragon/assets/actions/empoignade.svg',
|
||||
possession: 'systems/foundryvtt-reve-de-dragon/assets/actions/possession.svg',
|
||||
forceWeak: 'systems/foundryvtt-reve-de-dragon/assets/actions/weak.svg',
|
||||
surenc: 'systems/foundryvtt-reve-de-dragon/assets/actions/surenc.svg',
|
||||
magique: 'systems/foundryvtt-reve-de-dragon/assets/actions/magique.svg',
|
||||
|
||||
@@ -3,6 +3,7 @@ import { renderTemplate } from "./constants.js"
|
||||
export class DialogSelect extends Dialog {
|
||||
static extractIdNameImg(it) { return { id: it.id, name: it.name, img: it.img } }
|
||||
|
||||
|
||||
static async select(selectionData, onSelectChoice) {
|
||||
const html = await renderTemplate("systems/foundryvtt-reve-de-dragon/templates/dialog-select.hbs", selectionData)
|
||||
|
||||
|
||||
@@ -14,6 +14,8 @@ import { RdDTimestamp } from "./time/rdd-timestamp.js";
|
||||
import { FLEUVE_COORD, TMRUtility } from "./tmr-utility.js";
|
||||
import { RdDTextEditor } from "./apps/rdd-text-roll-editor.js";
|
||||
import { ItemAction } from "./item/item-actions.js";
|
||||
import { SANS_COMPETENCE } from "./item/base-items.js";
|
||||
import { Apprecier } from "./moral/apprecier.mjs";
|
||||
|
||||
/**
|
||||
* Extend the basic ItemSheet for RdD specific items
|
||||
@@ -89,6 +91,7 @@ export class RdDItemSheetV1 extends foundry.appv1.sheets.ItemSheet {
|
||||
|
||||
/* -------------------------------------------- */
|
||||
async getData() {
|
||||
const competences = (await SystemCompendiums.getCompetences(ACTOR_TYPES.personnage))
|
||||
let formData = {
|
||||
title: this.item.name,
|
||||
id: this.item.id,
|
||||
@@ -101,8 +104,9 @@ export class RdDItemSheetV1 extends foundry.appv1.sheets.ItemSheet {
|
||||
descriptionmj: await RdDTextEditor.enrichHTML(this.item.system.descriptionmj, this.item),
|
||||
isComestible: this.item.getUtilisationCuisine(),
|
||||
options: RdDSheetUtility.mergeDocumentRights({}, this.item, this.isEditable),
|
||||
competences: await SystemCompendiums.getCompetences(ACTOR_TYPES.personnage),
|
||||
competences: [SANS_COMPETENCE, ...competences],
|
||||
categories: RdDItem.getCategories(this.item.type),
|
||||
isAppreciable: Apprecier.isAppreciable(this.item)
|
||||
}
|
||||
|
||||
if (this.item.type == ITEM_TYPES.competencecreature) {
|
||||
|
||||
+17
-12
@@ -28,7 +28,7 @@ const typesInventaireMateriel = [
|
||||
]
|
||||
const typesInventaire = {
|
||||
materiel: typesInventaireMateriel,
|
||||
all: ['service'].concat(typesInventaireMateriel),
|
||||
all: [ITEM_TYPES.service].concat(typesInventaireMateriel),
|
||||
}
|
||||
|
||||
const typesObjetsOeuvres = [ITEM_TYPES.oeuvre, ITEM_TYPES.recettecuisine, ITEM_TYPES.musique, ITEM_TYPES.chant, ITEM_TYPES.danse, ITEM_TYPES.jeu]
|
||||
@@ -36,6 +36,10 @@ const typesObjetsDraconiques = [ITEM_TYPES.queue, ITEM_TYPES.ombre, ITEM_TYPES.s
|
||||
const typesObjetsConnaissance = [ITEM_TYPES.meditation, ITEM_TYPES.recettealchimique, ITEM_TYPES.sort]
|
||||
const typesObjetsEffet = [ITEM_TYPES.possession, ITEM_TYPES.poison, ITEM_TYPES.maladie, ITEM_TYPES.blessure]
|
||||
const typesObjetsCompetence = [ITEM_TYPES.competence, ITEM_TYPES.competencecreature]
|
||||
const typesAppreciable = [
|
||||
ITEM_TYPES.oeuvre, ITEM_TYPES.musique, ITEM_TYPES.chant, ITEM_TYPES.danse, ITEM_TYPES.nourritureboisson,
|
||||
ITEM_TYPES.jeu, ITEM_TYPES.service
|
||||
]
|
||||
const typesObjetsTemporels = [ITEM_TYPES.blessure, ITEM_TYPES.poison, ITEM_TYPES.maladie, ITEM_TYPES.queue, ITEM_TYPES.ombre, ITEM_TYPES.souffle, ITEM_TYPES.signedraconique, ITEM_TYPES.rencontre]
|
||||
const typesObjetsEquipable = [ITEM_TYPES.arme, ITEM_TYPES.armure, ITEM_TYPES.objet];
|
||||
const typesEnvironnement = typesInventaireMateriel;
|
||||
@@ -96,14 +100,14 @@ export class RdDItem extends Item {
|
||||
switch (field) {
|
||||
case 'quantite':
|
||||
if (ITEM_TYPES.conteneur == type) {
|
||||
return false;
|
||||
return false
|
||||
}
|
||||
break;
|
||||
case 'cout':
|
||||
if (ITEM_TYPES.monnaie == type) {
|
||||
return game.user.isGM;
|
||||
}
|
||||
break;
|
||||
break
|
||||
}
|
||||
return true;
|
||||
}
|
||||
@@ -180,10 +184,10 @@ export class RdDItem extends Item {
|
||||
|
||||
isCompetencePersonnage() { return this.type == ITEM_TYPES.competence }
|
||||
isCompetenceCreature() { return this.type == ITEM_TYPES.competencecreature }
|
||||
isConteneur() { return this.type == ITEM_TYPES.conteneur; }
|
||||
isMonnaie() { return this.type == ITEM_TYPES.monnaie; }
|
||||
isConteneur() { return this.type == ITEM_TYPES.conteneur }
|
||||
isMonnaie() { return this.type == ITEM_TYPES.monnaie }
|
||||
isNourritureBoisson() { return this.type == ITEM_TYPES.nourritureboisson; }
|
||||
isService() { return this.type == ITEM_TYPES.service; }
|
||||
isService() { return this.type == ITEM_TYPES.service }
|
||||
isAttaque() { return false }
|
||||
isParade() { return false }
|
||||
isBouclier() { return false }
|
||||
@@ -205,7 +209,7 @@ export class RdDItem extends Item {
|
||||
return this.isCompetence() && ['melee', 'tir', 'lancer'].includes(this.system.categorie)
|
||||
}
|
||||
|
||||
isCompetencePossession() { return ITEM_TYPES.competencecreature == this.type && this.system.categorie == "possession" }
|
||||
isCompetencePossession() { return ITEM_TYPES.competencecreature == this.type && this.system.categorie == CATEGORIES_COMPETENCES_CREATURES.possession.key }
|
||||
isTemporel() { return typesObjetsTemporels.includes(this.type) }
|
||||
isOeuvre() { return typesObjetsOeuvres.includes(this.type) }
|
||||
isDraconique() { return RdDItem.getItemTypesDraconiques().includes(this.type) }
|
||||
@@ -214,6 +218,7 @@ export class RdDItem extends Item {
|
||||
isConnaissance() { return typesObjetsConnaissance.includes(this.type) }
|
||||
|
||||
isInventaire(mode = 'materiel') { return RdDItem.getItemTypesInventaire(mode).includes(this.type); }
|
||||
isAppreciable() { return typesAppreciable.includes(this.type) }
|
||||
isBoisson() { return this.isNourritureBoisson() && this.system.boisson; }
|
||||
isAlcool() { return this.isNourritureBoisson() && this.system.boisson && this.system.alcoolise; }
|
||||
isHerbeAPotion() { return this.type == ITEM_TYPES.herbe && (this.system.categorie == 'Soin' || this.system.categorie == 'Repos'); }
|
||||
@@ -364,11 +369,11 @@ export class RdDItem extends Item {
|
||||
getEnc() {
|
||||
switch (this.type) {
|
||||
case ITEM_TYPES.service:
|
||||
return 0;
|
||||
return 0
|
||||
case ITEM_TYPES.herbe:
|
||||
return this.getEncHerbe();
|
||||
return this.getEncHerbe()
|
||||
}
|
||||
return Math.max(this.system.encombrement ?? 0, 0);
|
||||
return Math.max(this.system.encombrement ?? 0.0, 0.0);
|
||||
}
|
||||
|
||||
getEncContenu() {
|
||||
@@ -384,9 +389,9 @@ export class RdDItem extends Item {
|
||||
getEncHerbe() {
|
||||
switch (this.system.categorie) {
|
||||
case 'Repos': case 'Soin': case 'Alchimie':
|
||||
return encBrin;
|
||||
return encBrin
|
||||
}
|
||||
return this.system.encombrement;
|
||||
return this.system.encombrement
|
||||
|
||||
}
|
||||
|
||||
|
||||
@@ -278,6 +278,10 @@ export class RdDItemArme extends RdDItem {
|
||||
return this.system.mortalite == RDD_CONFIG.encaissement.empoignade
|
||||
}
|
||||
|
||||
isPossession() {
|
||||
return this.system.mortalite == RDD_CONFIG.encaissement.possession
|
||||
}
|
||||
|
||||
isUtilisableEmpoigne() {
|
||||
return this.system.baseInit == 3 || this.system.baseInit == 4 || this.system.competence == "Dague"
|
||||
}
|
||||
|
||||
+24
-19
@@ -1,22 +1,5 @@
|
||||
export const POSSESSION_SANS_DRACONIC = { name: 'Sans draconic', type: 'competence', system: { niveau: 0, defaut_carac: "reve-actuel", }, img: 'systems/foundryvtt-reve-de-dragon/icons/entites/possession.webp' }
|
||||
export const PAS_DE_DRACONIC = { name: 'Pas de draconic', type: 'competence', system: { niveau: -11, defaut_carac: "reve" }, img: 'systems/foundryvtt-reve-de-dragon/icons/entites/possession.webp' }
|
||||
export const BASE_CORPS_A_CORPS = { name: 'Corps à Corps', type: 'competence', system: { niveau: -6, defaut_carac: "melee" }, img: 'systems/foundryvtt-reve-de-dragon/icons/competence_corps_a_corps.webp' }
|
||||
export const BASE_ESQUIVE = { name: 'Esquive', type: 'competence', system: { niveau: -6, defaut_carac: "derobee" }, img: 'systems/foundryvtt-reve-de-dragon/icons/competence_esquive.webp' }
|
||||
|
||||
export const SANS_COMPETENCE = {
|
||||
name: "Sans compétence",
|
||||
type: 'competence',
|
||||
system: {
|
||||
niveau: 0,
|
||||
default_diffLibre: 0,
|
||||
base: 0,
|
||||
categorie: "Aucune",
|
||||
description: "",
|
||||
descriptionmj: "",
|
||||
defaut_carac: "",
|
||||
},
|
||||
img: "systems/foundryvtt-reve-de-dragon/icons/templates/icone_parchement_vierge.webp"
|
||||
}
|
||||
import { ITEM_TYPES, RDD_CONFIG } from "../constants.js"
|
||||
import { CARACS } from "../rdd-carac.js"
|
||||
|
||||
export const CATEGORIES_COMPETENCES = {
|
||||
generale: { key: 'generale', base: -4, label: "Générales" },
|
||||
@@ -39,3 +22,25 @@ export const CATEGORIES_COMPETENCES_CREATURES = {
|
||||
lancer: { key: 'lancer', base: 0, label: "Lancer" },
|
||||
possession: { key: 'possession', base: 0, label: "Possession" },
|
||||
}
|
||||
|
||||
export const POSSESSION_SANS_DRACONIC = {
|
||||
name: 'Sans draconic',
|
||||
type: ITEM_TYPES.competence,
|
||||
img: RDD_CONFIG.icons.possession,
|
||||
system: { niveau: 0, defaut_carac: CARACS.REVE_ACTUEL, categorie: CATEGORIES_COMPETENCES.draconic.key }
|
||||
}
|
||||
|
||||
export const PAS_DE_DRACONIC = { name: 'Pas de draconic', type: 'competence', system: { niveau: -11, defaut_carac: "reve" }, img: 'systems/foundryvtt-reve-de-dragon/icons/entites/possession.webp' }
|
||||
export const BASE_CORPS_A_CORPS = { name: 'Corps à Corps', type: 'competence', system: { niveau: -6, defaut_carac: "melee" }, img: 'systems/foundryvtt-reve-de-dragon/icons/competence_corps_a_corps.webp' }
|
||||
export const BASE_ESQUIVE = { name: 'Esquive', type: 'competence', system: { niveau: -6, defaut_carac: "derobee" }, img: 'systems/foundryvtt-reve-de-dragon/icons/competence_esquive.webp' }
|
||||
|
||||
export const SANS_COMPETENCE = {
|
||||
name: "Sans compétence",
|
||||
type: ITEM_TYPES.competence,
|
||||
img: "systems/foundryvtt-reve-de-dragon/icons/templates/icone_parchement_vierge.webp",
|
||||
system: {
|
||||
niveau: 0,
|
||||
default_diffLibre: 0,
|
||||
categorie: CATEGORIES_COMPETENCES.generale.key,
|
||||
}
|
||||
}
|
||||
|
||||
+1
-1
@@ -76,7 +76,7 @@ export class RdDItemRace extends RdDItem {
|
||||
ui.notifications.warn("La Taille est inférieur au minimum racial")
|
||||
return min
|
||||
}
|
||||
const raceMax = this.system.carac.taille.max;
|
||||
const raceMax = this.system.carac.taille.max == undefined ? 15 + this.system.carac.taille.value : this.system.carac.taille.max
|
||||
const max = raceMax < 0 ? taille + 1 : raceMax
|
||||
if (max < taille) {
|
||||
ui.notifications.warn("La Taille est supérieure au maximum racial")
|
||||
|
||||
+37
-2
@@ -8,6 +8,7 @@ import { RdDTimestamp } from "./time/rdd-timestamp.js";
|
||||
import { RdDRaretes } from "./item/raretes.js";
|
||||
import { VOIES_DRACONIC } from "./item-sort.js";
|
||||
import { SystemCompendiums } from "./settings/system-compendiums.js";
|
||||
import { APPRECIATION } from "./moral/apprecier.mjs";
|
||||
|
||||
class Migration {
|
||||
get code() { return "sample"; }
|
||||
@@ -33,7 +34,6 @@ class Migration {
|
||||
await Item.updateDocuments(itemUpdates);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
class _1_5_34_migrationPngWebp {
|
||||
@@ -662,6 +662,37 @@ class _13_0_7_FixNiveauOeuvres extends Migration {
|
||||
}
|
||||
}
|
||||
|
||||
class _13_0_21_AjoutAppreciation extends Migration {
|
||||
get code() { return "ajout-appreciation" }
|
||||
get version() { return "13.0.21" }
|
||||
|
||||
async migrate() {
|
||||
await this.applyItemsUpdates(items => items
|
||||
.filter(it => it.isAppreciable())
|
||||
.filter(it => this.getBaseAppreciation(it))
|
||||
.map(it => {
|
||||
return { _id: it.id, 'system.appreciation': this.getBaseAppreciation(it) }
|
||||
})
|
||||
)
|
||||
}
|
||||
|
||||
getBaseAppreciation(item) {
|
||||
switch (item.type) {
|
||||
case ITEM_TYPES.nourritureboisson: return APPRECIATION.CUISINE
|
||||
case ITEM_TYPES.service: return APPRECIATION.SERVICE
|
||||
case ITEM_TYPES.musique: return APPRECIATION.MUSIQUE
|
||||
case ITEM_TYPES.chant: return APPRECIATION.CHANT
|
||||
case ITEM_TYPES.danse: return APPRECIATION.DANSE
|
||||
case ITEM_TYPES.oeuvre: {
|
||||
const appreciation = foundry.utils.duplicate(APPRECIATION.OEUVRE)
|
||||
appreciation.competence = item.system.competence
|
||||
return appreciation
|
||||
}
|
||||
}
|
||||
return undefined
|
||||
}
|
||||
}
|
||||
|
||||
export class Migrations {
|
||||
static getMigrations() {
|
||||
return [
|
||||
@@ -687,6 +718,7 @@ export class Migrations {
|
||||
new _12_0_38_TachesEcriture(),
|
||||
new _13_0_4_FixReveActuel(),
|
||||
new _13_0_7_FixNiveauOeuvres(),
|
||||
new _13_0_21_AjoutAppreciation(),
|
||||
];
|
||||
}
|
||||
|
||||
@@ -707,7 +739,10 @@ export class Migrations {
|
||||
}
|
||||
if (foundry.utils.isNewerVersion(game.system.version, currentVersion)) {
|
||||
// if (true) { /* comment previous and uncomment here to test before upgrade */
|
||||
const migrations = Migrations.getMigrations().filter(m => foundry.utils.isNewerVersion(m.version, currentVersion));
|
||||
const migrations = Migrations.getMigrations().filter(m => foundry.utils.isNewerVersion(m.version, currentVersion)
|
||||
/* uncomment and set the version to migrate to to force a migration */
|
||||
// ||m.version == "13.0.21"
|
||||
)
|
||||
if (migrations.length > 0) {
|
||||
migrations.sort((a, b) => this.compareVersions(a, b));
|
||||
migrations.forEach(async (m) => {
|
||||
|
||||
@@ -0,0 +1,177 @@
|
||||
import { ITEM_TYPES } from "../constants.js"
|
||||
import { SANS_COMPETENCE } from "../item/base-items.js"
|
||||
import { Misc } from "../misc.js"
|
||||
import { CARACS } from "../rdd-carac.js"
|
||||
import { RdDUtility } from "../rdd-utility.js"
|
||||
import { DIFF } from "../roll/roll-constants.mjs"
|
||||
import RollDialog from "../roll/roll-dialog.mjs"
|
||||
import { PART_COMP } from "../roll/roll-part-comp.mjs"
|
||||
|
||||
export const MORAL = {
|
||||
MALHEUREUX: "malheureux",
|
||||
NEUTRE: "neutre",
|
||||
HEUREUX: "heureux",
|
||||
TRESHEUREUX: "très heureux"
|
||||
}
|
||||
export const SITUATION_MORAL = {
|
||||
[MORAL.MALHEUREUX]: "malheureuse",
|
||||
[MORAL.NEUTRE]: "neutre",
|
||||
[MORAL.HEUREUX]: "heureuse",
|
||||
[MORAL.TRESHEUREUX]: "très heureuse",
|
||||
}
|
||||
export const APPRECIATION = {
|
||||
CUISINE: {
|
||||
bonmoment: "Cuisine", carac: CARACS.ODORATGOUT, competence: "Cuisine",
|
||||
moral: MORAL.HEUREUX, jetComp: false, jetQualite: false, compMinimum: true
|
||||
},
|
||||
MUSIQUE: {
|
||||
bonmoment: "Musique", carac: CARACS.OUIE, competence: "Musique",
|
||||
moral: MORAL.HEUREUX, jetComp: false, jetQualite: false, compMinimum: true
|
||||
},
|
||||
CHANT: {
|
||||
bonmoment: "Musique", carac: CARACS.OUIE, competence: "Chant",
|
||||
moral: MORAL.HEUREUX, jetComp: false, jetQualite: false, compMinimum: true
|
||||
},
|
||||
DANSE: {
|
||||
bonmoment: "Spectacle", carac: CARACS.EMPATHIE, competence: "Danse",
|
||||
moral: MORAL.HEUREUX, jetComp: false, jetQualite: false, compMinimum: true
|
||||
},
|
||||
JEU: {
|
||||
bonmoment: "Jeu", carac: CARACS.EMPATHIE, competence: "Jeu",
|
||||
moral: MORAL.HEUREUX, jetComp: false, jetQualite: false, compMinimum: true
|
||||
},
|
||||
OEUVRE: {
|
||||
bonmoment: "Spectacle", carac: CARACS.EMPATHIE, competence: "",
|
||||
moral: MORAL.HEUREUX, jetComp: false, jetQualite: false, compMinimum: true
|
||||
},
|
||||
SERVICE: {
|
||||
bonmoment: "Confort", carac: CARACS.EMPATHIE, competence: "",
|
||||
moral: MORAL.HEUREUX, jetComp: false, jetQualite: false, compMinimum: false
|
||||
},
|
||||
}
|
||||
|
||||
|
||||
export class Apprecier {
|
||||
|
||||
static isAppreciable(item) {
|
||||
switch (item.type) {
|
||||
case ITEM_TYPES.nourritureboisson:
|
||||
case ITEM_TYPES.service:
|
||||
return item.system.qualite > 0
|
||||
case ITEM_TYPES.chant:
|
||||
case ITEM_TYPES.musique:
|
||||
case ITEM_TYPES.danse:
|
||||
case ITEM_TYPES.oeuvre:
|
||||
case ITEM_TYPES.jeu:
|
||||
return true
|
||||
}
|
||||
return false
|
||||
}
|
||||
|
||||
static qualite(qualite, roll = undefined, comp = undefined) {
|
||||
if (roll && comp) {
|
||||
return roll.rolled.isSuccess ? qualite : Math.min(qualite, comp.system.niveau)
|
||||
}
|
||||
return
|
||||
}
|
||||
|
||||
static getAppreciation(qualite, appreciable, roll = undefined, comp = undefined) {
|
||||
return {
|
||||
qualite: (roll?.rolled.ptQualite ?? 0) + Apprecier.qualite(qualite, roll, comp),
|
||||
appreciation: foundry.utils.duplicate(appreciable.system.appreciation),
|
||||
messages: []
|
||||
}
|
||||
}
|
||||
|
||||
static onClickApprecier(roll) {
|
||||
const appreciation = roll.result.appreciation
|
||||
if (appreciation.moral == "") {
|
||||
return
|
||||
}
|
||||
RdDUtility.doWithSelectedActor(
|
||||
actor => new Apprecier(actor, appreciation, roll.result.qualite).apprecier(),
|
||||
actor => actor.isPersonnage())
|
||||
}
|
||||
|
||||
constructor(actor, appreciation, qualite) {
|
||||
this.actor = actor
|
||||
this.appreciation = foundry.utils.duplicate(appreciation)
|
||||
this.appreciation.situation = SITUATION_MORAL[appreciation.moral]
|
||||
this.qualite = qualite
|
||||
this.raisons = []
|
||||
}
|
||||
|
||||
apprecier(callbacks = []) {
|
||||
if (this.qualite <= 0) {
|
||||
this.raisons.push(`la qualité ${this.qualite} est négative.`)
|
||||
}
|
||||
if (this.qualite <= this.actor.getMoralTotal()) {
|
||||
this.raisons.push(`la qualité de ${this.qualite} est inférieure au moral de ${this.actor.getMoralTotal()}.`)
|
||||
}
|
||||
const competence = this.getCompetenceAppreciation()
|
||||
if (this.appreciation.compMinimum && this.qualite <= competence.system.niveau && competence.system.niveau > 0 && competence.id) {
|
||||
this.raisons.push(`la qualité ${this.qualite} est insuffisante pour le niveau ${competence.system.niveau} en ${competence.name}`)
|
||||
}
|
||||
const bonmoment = this.appreciation.bonmoment
|
||||
if (!["", undefined].includes(bonmoment) && this.actor.system.compteurs.bonmoments.includes(bonmoment)) {
|
||||
this.raisons.push(`du moral a déjà été gagné pour cause de ${bonmoment}`)
|
||||
}
|
||||
|
||||
if (this.appreciation.carac != "") {
|
||||
this.rollAppreciation(callbacks)
|
||||
}
|
||||
else {
|
||||
this.rollMoral()
|
||||
}
|
||||
}
|
||||
|
||||
getCompetenceAppreciation() {
|
||||
return [SANS_COMPETENCE.name, ""].includes(this.appreciation.competence) ? SANS_COMPETENCE : this.actor.getCompetence(this.appreciation.competence)
|
||||
}
|
||||
|
||||
rollAppreciation(rollCallbacks = []) {
|
||||
const competence = (this.appreciation.jetComp && this.appreciation.competence) ? this.appreciation.competence : ""
|
||||
const rollData = {
|
||||
ids: { actorId: this.actor.id },
|
||||
type: { allowed: [PART_COMP], current: PART_COMP, appreciation: true },
|
||||
selected: {
|
||||
carac: { key: this.appreciation.carac, forced: true },
|
||||
comp: { key: competence, forced: true },
|
||||
diff: { type: DIFF.IMPOSEE },
|
||||
apprecier: {
|
||||
appreciation: this.appreciation,
|
||||
qualite: this.qualite,
|
||||
raisons: this.raisons
|
||||
}
|
||||
}
|
||||
}
|
||||
RollDialog.create(rollData, {
|
||||
callbacks: [
|
||||
async r => await this.onRollAppreciation(r),
|
||||
...rollCallbacks
|
||||
]
|
||||
})
|
||||
}
|
||||
|
||||
async onRollAppreciation(roll) {
|
||||
if (roll.rolled.isSuccess) {
|
||||
await this.rollMoral()
|
||||
}
|
||||
else {
|
||||
if (this.appreciation.moral == MORAL.TRESHEUREUX) {
|
||||
await this.rollMoral(MORAL.HEUREUX)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
async rollMoral(moral = undefined) {
|
||||
if (this.raisons.length > 0) {
|
||||
ui.notifications.info('Pas de jet de moral:' + Misc.concat(this.raisons.map(r => `<br> - ${r}`)))
|
||||
return
|
||||
}
|
||||
|
||||
moral = moral ?? this.appreciation.moral
|
||||
// TODO: jet de moral
|
||||
await this.actor.jetDeMoral(moral, this.appreciation.bonmoment)
|
||||
}
|
||||
}
|
||||
@@ -369,8 +369,7 @@ export class RdDCombat {
|
||||
}
|
||||
|
||||
static rddCombatForAttackV2(attackerRoll) {
|
||||
const defenderRoll = RollBasicParts.prepareDefense(attackerRoll)
|
||||
return RdDCombat.rddCombatForDefenseV2(defenderRoll)
|
||||
return RdDCombat.rddCombatForDefenseV2(RollBasicParts.prepareDefense(attackerRoll))
|
||||
}
|
||||
|
||||
static rddCombatForDefenseV2(defenderRoll) {
|
||||
@@ -755,7 +754,7 @@ export class RdDCombat {
|
||||
}
|
||||
|
||||
async _chatMessageDefenseV2(paramDemandeDefense) {
|
||||
const attackerRoll = paramDemandeDefense.attackerRoll;
|
||||
const attackerRoll = paramDemandeDefense.attackerRoll
|
||||
RollBasicParts.loadSurprises(attackerRoll)
|
||||
attackerRoll.dmg = RdDBonus.dmgRollV2(attackerRoll, attackerRoll.current.attaque)
|
||||
|
||||
@@ -1086,7 +1085,6 @@ export class RdDCombat {
|
||||
|
||||
async defenseV2(attackerRoll, callbacks = []) {
|
||||
// this._prepareParade(attackerRoll, arme, competence);
|
||||
RollDialog.loadRollData(attackerRoll)
|
||||
await this.doRollDefense({
|
||||
ids: {
|
||||
actorId: this.defender.id,
|
||||
|
||||
@@ -89,20 +89,20 @@ export class RdDEmpoignade {
|
||||
const chatMessage = ChatUtility.getChatMessage(event);
|
||||
const rollData = RdDEmpoignade.$readRollEmpoignade(chatMessage);
|
||||
RdDEmpoignade.entrainerAuSol(rollData)
|
||||
ChatUtility.removeChatMessageId(chatMessage.id)
|
||||
ChatUtility.remover(chatMessage)()
|
||||
});
|
||||
$(html).on("click", '.empoignade-projeter-sol', event => {
|
||||
const chatMessage = ChatUtility.getChatMessage(event);
|
||||
const rollData = RdDEmpoignade.$readRollEmpoignade(chatMessage);
|
||||
RdDEmpoignade.projeterAuSol(rollData)
|
||||
ChatUtility.removeChatMessageId(chatMessage.id)
|
||||
ChatUtility.remover(chatMessage)()
|
||||
});
|
||||
$(html).on("change", '.empoignade-perte-endurance', event => {
|
||||
const chatMessage = ChatUtility.getChatMessage(event);
|
||||
const rollData = RdDEmpoignade.$readRollEmpoignade(chatMessage);
|
||||
if (event.currentTarget.value && event.currentTarget.value != "none") {
|
||||
RdDEmpoignade.perteEndurance(rollData, event.currentTarget.value)
|
||||
//ChatUtility.removeChatMessageId(chatMessage.id)
|
||||
ChatUtility.remover(chatMessage)()
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
@@ -0,0 +1,261 @@
|
||||
import { ITEM_TYPES, RDD_CONFIG } from "./constants.js";
|
||||
import { RollBasicParts } from "./roll/roll-basic-parts.mjs";
|
||||
import { ChatUtility } from "./chat-utility.js";
|
||||
import RollDialog from "./roll/roll-dialog.mjs";
|
||||
import { Targets } from "./targets.js";
|
||||
import { RdDUtility } from "./rdd-utility.js";
|
||||
import { ROLL_TYPE_POSSESSION } from "./roll/roll-constants.mjs";
|
||||
import { TokenActor } from "./technical/actor-token.mjs";
|
||||
|
||||
export const ACTIONS_POSSESSION = {
|
||||
ATTAQUE: 'attaque',
|
||||
POSSEDER: 'posseder',
|
||||
CONJURER: 'conjurer',
|
||||
DEFENSE: 'defense',
|
||||
DEFENSE_POSSESSION: 'defense-possession',
|
||||
DEFENSE_CONJURATION: 'defense-conjuration'
|
||||
}
|
||||
|
||||
export class RdDPossessionV2 {
|
||||
|
||||
static init() {
|
||||
}
|
||||
|
||||
static $isInverse(entite, victime) {
|
||||
return !entite.actor.isEntiteNonIncarnee() && victime.actor.isEntiteNonIncarnee()
|
||||
}
|
||||
|
||||
/* -------------------------------------------- */
|
||||
static findPossession(entite, victime) {
|
||||
if (RdDPossessionV2.$isInverse(entite, victime)) {
|
||||
return RdDPossessionV2.findPossession(victime, entite)
|
||||
}
|
||||
return victime.actor.itemTypes[ITEM_TYPES.possession].find(it => it.system.entiteid == entite.id)
|
||||
}
|
||||
|
||||
static async createPossessionIfMissing(entite, victime) {
|
||||
if (RdDPossessionV2.$isInverse(entite, victime)) {
|
||||
return await RdDPossessionV2.createPossessionIfMissing(victime, entite)
|
||||
}
|
||||
const existing = RdDPossessionV2.findPossession(entite, victime)
|
||||
if (!existing) {
|
||||
await victime.actor.createEmbeddedDocuments('Item', [{
|
||||
name: `Possession de ${entite.name}`,
|
||||
type: ITEM_TYPES.possession,
|
||||
img: RDD_CONFIG.icons.possession,
|
||||
system: {
|
||||
entiteid: entite.actor.id,
|
||||
entitetokenid: entite.token.id,
|
||||
victimeid: victime.actor.id,
|
||||
victimetokenid: victime.token.id,
|
||||
compteur: 0
|
||||
}
|
||||
}])
|
||||
}
|
||||
}
|
||||
|
||||
static getTypePossession(active, opponent) {
|
||||
const itemPossession = RdDPossessionV2.findPossession(active, opponent)
|
||||
const isEntite = active.actor.isEntiteNonIncarnee() && !opponent.actor.isEntiteNonIncarnee()
|
||||
const compteur = itemPossession?.system.compteur ?? 0
|
||||
|
||||
return {
|
||||
isEntite: isEntite,
|
||||
isPersonnage: active.actor.isPersonnage(),
|
||||
isCompteurPossession: Math.sign(compteur) >= 0,
|
||||
compteur: Math.abs(compteur)
|
||||
}
|
||||
}
|
||||
|
||||
static getTypePossessionAction(active, opponent, action) {
|
||||
const possession = RdDPossessionV2.getTypePossession(active, opponent)
|
||||
possession.isAttaque = RdDPossessionV2.isAttaque(action)
|
||||
possession.action = RdDPossessionV2.$getAction(possession.isAttaque, possession.isEntite)
|
||||
return possession
|
||||
}
|
||||
|
||||
static $getAction(isAttaque, isEntite) {
|
||||
if (isAttaque) {
|
||||
return isEntite ? ACTIONS_POSSESSION.POSSEDER : ACTIONS_POSSESSION.CONJURER
|
||||
}
|
||||
return isEntite ? ACTIONS_POSSESSION.DEFENSE_CONJURATION : ACTIONS_POSSESSION.DEFENSE_POSSESSION
|
||||
}
|
||||
|
||||
static actionTitle(action) {
|
||||
switch (action) {
|
||||
case ACTIONS_POSSESSION.POSSEDER: return "tente de posséder"
|
||||
case ACTIONS_POSSESSION.CONJURER: return "tente de conjurer"
|
||||
case ACTIONS_POSSESSION.DEFENSE_POSSESSION: return "résiste à la possession de"
|
||||
case ACTIONS_POSSESSION.DEFENSE_CONJURATION: return "résiste à la conjuration de"
|
||||
case ACTIONS_POSSESSION.DEFENSE: return "résiste à "
|
||||
}
|
||||
return "lutte contre"
|
||||
}
|
||||
|
||||
static isDefense(action) {
|
||||
return [ACTIONS_POSSESSION.DEFENSE, ACTIONS_POSSESSION.DEFENSE_POSSESSION, ACTIONS_POSSESSION.DEFENSE_CONJURATION].includes(action)
|
||||
}
|
||||
static isAttaque(action) {
|
||||
return [ACTIONS_POSSESSION.ATTAQUE, ACTIONS_POSSESSION.POSSEDER, ACTIONS_POSSESSION.CONJURER].includes(action)
|
||||
}
|
||||
|
||||
static async rollAttaquePossession(actor) {
|
||||
const selectedToken = RdDUtility.getSelectedToken(actor)
|
||||
Targets.selectOneTargetToken(async target => {
|
||||
RollDialog.create(
|
||||
{
|
||||
ids: {
|
||||
actorId: actor.id,
|
||||
actorTokenId: selectedToken.id,
|
||||
opponentId: target.actor.id,
|
||||
opponentTokenId: target.id
|
||||
},
|
||||
passeArme: foundry.utils.randomID(16),
|
||||
type: { allowed: [ROLL_TYPE_POSSESSION], current: ROLL_TYPE_POSSESSION, possession: { action: ACTIONS_POSSESSION.ATTAQUE } },
|
||||
},
|
||||
{
|
||||
onRollDone: RollDialog.onRollDoneClose,
|
||||
callbacks: [
|
||||
async (roll) => await RdDPossessionV2.createPossessionIfMissing(roll.active, roll.opponent),
|
||||
async (roll) => RdDPossessionV2.$setParticuliereFinesse(roll),
|
||||
async (roll) => await RdDPossessionV2.chatMessageDefensePossession(roll)
|
||||
]
|
||||
})
|
||||
})
|
||||
}
|
||||
|
||||
static async rollConjurerPossession(actor, possession) {
|
||||
if (possession.system.possede){
|
||||
ui.notifications.warn(`${actor.name} est totalement possédé, impossible de conjurer l'entité`)
|
||||
return
|
||||
}
|
||||
RollDialog.create(
|
||||
{
|
||||
ids: {
|
||||
actorId: possession.system.victimeid,
|
||||
actorTokenId: possession.system.victimetokenid,
|
||||
opponentId: possession.system.entiteid,
|
||||
opponentTokenId: possession.system.entitetokenid
|
||||
},
|
||||
passeArme: foundry.utils.randomID(16),
|
||||
type: { allowed: [ROLL_TYPE_POSSESSION], current: ROLL_TYPE_POSSESSION, possession: { action: ACTIONS_POSSESSION.ATTAQUE } },
|
||||
},
|
||||
{
|
||||
onRollDone: RollDialog.onRollDoneClose,
|
||||
callbacks: [
|
||||
async (roll) => await RdDPossessionV2.createPossessionIfMissing(roll.active, roll.opponent),
|
||||
async (roll) => RdDPossessionV2.$setParticuliereFinesse(roll),
|
||||
async (roll) => await RdDPossessionV2.chatMessageDefensePossession(roll)
|
||||
]
|
||||
})
|
||||
}
|
||||
|
||||
static $setParticuliereFinesse(roll) {
|
||||
if (roll.rolled.isPart) {
|
||||
roll.particuliere = RDD_CONFIG.particuliere.finesse.key
|
||||
}
|
||||
}
|
||||
|
||||
static async rollDefensePossession(savedRoll, chatMessage) {
|
||||
RollBasicParts.restore(savedRoll)
|
||||
const attackerRoll = savedRoll.attackerRoll
|
||||
RollDialog.create(
|
||||
{
|
||||
ids: savedRoll.ids,
|
||||
passeArme: attackerRoll.passeArme,
|
||||
type: { allowed: [ROLL_TYPE_POSSESSION], current: ROLL_TYPE_POSSESSION, possession: { action: ACTIONS_POSSESSION.DEFENSE } },
|
||||
selected: { diff: { value: attackerRoll.selected?.diff?.value ?? 0 } },
|
||||
attackerRoll: attackerRoll
|
||||
},
|
||||
{
|
||||
onRollDone: RollDialog.onRollDoneClose, callbacks: [
|
||||
async roll => await RdDPossessionV2.onRollDefense(roll),
|
||||
ChatUtility.remover(chatMessage)
|
||||
]
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
static async onRollDefense(defense) {
|
||||
if (defense.rolled.isEchec) {
|
||||
await RdDPossessionV2.addPointPossession(defense.opponent.actor, defense.active.actor)
|
||||
}
|
||||
RdDPossessionV2.resetPossession(defense)
|
||||
}
|
||||
|
||||
|
||||
static async onMarquerPointPossession(roll) {
|
||||
roll.type = {}
|
||||
await RdDPossessionV2.addPointPossession(roll.opponent, roll.active)
|
||||
RdDPossessionV2.resetPossession(roll)
|
||||
|
||||
await ChatMessage.create({
|
||||
// message privé: du défenseur à lui même (et aux GMs)
|
||||
speaker: ChatMessage.getSpeaker({ actor: roll.active.actor, token: roll.active.token }),
|
||||
alias: roll.opponent.name,
|
||||
whisper: ChatUtility.getOwners(roll.active.actor),
|
||||
content: await renderTemplate(`systems/foundryvtt-reve-de-dragon/templates/possession/chat-message-marquer.hbs`, roll)
|
||||
})
|
||||
}
|
||||
|
||||
static resetPossession(roll) {
|
||||
roll.type.possession = foundry.utils.mergeObject(
|
||||
roll.type.possession ?? {},
|
||||
RdDPossessionV2.getTypePossession(roll.opponent, roll.active))
|
||||
}
|
||||
|
||||
static async addPointPossession(entite, victime, points = 1) {
|
||||
if (RdDPossessionV2.$isInverse(entite, victime)) {
|
||||
return await RdDPossessionV2.addPointPossession(victime, entite, - points)
|
||||
}
|
||||
const existing = RdDPossessionV2.findPossession(entite, victime)
|
||||
if (existing) {
|
||||
const compteur = (existing.system.compteur ?? 0) + points
|
||||
await victime.actor.updateEmbeddedDocuments('Item', [{ _id: existing.id, 'system.compteur': compteur }])
|
||||
}
|
||||
}
|
||||
|
||||
static async chatMessageDefensePossession(attackerRoll) {
|
||||
|
||||
const defense = RollBasicParts.prepareDefense(attackerRoll)
|
||||
defense.type = {
|
||||
possession: RdDPossessionV2.getTypePossessionAction(defense.active, defense.opponent, ACTIONS_POSSESSION.DEFENSE)
|
||||
}
|
||||
|
||||
const chatDemandeDefense = await ChatMessage.create({
|
||||
// message privé: du défenseur à lui même (et aux GMs)
|
||||
speaker: ChatMessage.getSpeaker({ actor: defense.active.actor, token: defense.active.token }),
|
||||
alias: attackerRoll.active.name,
|
||||
whisper: ChatUtility.getOwners(defense.active.actor),
|
||||
content: await renderTemplate('systems/foundryvtt-reve-de-dragon/templates/possession/chat-demande-defense.hbs', defense)
|
||||
});
|
||||
ChatUtility.setMessageData(chatDemandeDefense, 'demande-defense', true)
|
||||
// // flag pour garder les jets d'attaque/defense
|
||||
ChatUtility.setMessageData(chatDemandeDefense, 'rollData', {
|
||||
ids: defense.ids,
|
||||
attackerRoll: RollDialog.saveParts(attackerRoll),
|
||||
passeArme: defense.passeArme
|
||||
})
|
||||
}
|
||||
|
||||
static async onPossession(actor, possession) {
|
||||
if (Math.abs(possession.system.compteur) >= 2) {
|
||||
await ChatMessage.create({
|
||||
alias: actor.getAlias(),
|
||||
whisper: ChatUtility.getOwners(actor),
|
||||
content: await renderTemplate('systems/foundryvtt-reve-de-dragon/templates/possession/chat-fin-possession.hbs', {
|
||||
possession,
|
||||
active: TokenActor.fromActor(actor),
|
||||
opponent: TokenActor.fromActor(game.actors.get(possession.system.entiteid))
|
||||
})
|
||||
})
|
||||
|
||||
if (possession.system.compteur <= -2) {
|
||||
await actor.deleteEmbeddedDocuments('Item', [possession.id])
|
||||
}
|
||||
if (possession.system.compteur >= 2) {
|
||||
await actor.updateEmbeddedDocuments('Item', [{ _id: possession.id, 'system.possede': true }])
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
+13
-10
@@ -18,9 +18,9 @@ export class RdDPossession {
|
||||
|
||||
/* -------------------------------------------- */
|
||||
static searchPossessionFromEntite(attacker, defender) {
|
||||
let poss = attacker.items.find(poss => poss.type == ITEM_TYPES.possession && poss.system.victime.actorid == defender.id);
|
||||
let poss = attacker.itemTypes[ITEM_TYPES.possession].find(poss => poss.system.victime.actorid == defender.id);
|
||||
if (!poss) {
|
||||
poss = defender.items.find(poss => poss.type == ITEM_TYPES.possession && poss.system.victime.actorid == defender.id);
|
||||
poss = defender.itemTypes[ITEM_TYPES.possession].find(poss => poss.system.victime.actorid == defender.id);
|
||||
}
|
||||
return poss && foundry.utils.duplicate(poss) || undefined;
|
||||
}
|
||||
@@ -94,7 +94,7 @@ export class RdDPossession {
|
||||
}
|
||||
|
||||
static selectCompetenceDraconicOuPossession(rollData, rollingActor) {
|
||||
rollData.competence = rollingActor.getDraconicOuPossession();
|
||||
rollData.competence = rollingActor.getDraconicOuPossession().find(it => true);
|
||||
if (rollingActor.isCreatureOuEntite()) {
|
||||
const carac = rollingActor.system.carac
|
||||
rollData.carac = carac
|
||||
@@ -132,7 +132,7 @@ export class RdDPossession {
|
||||
}
|
||||
const possession = (rollData.isECNIDefender ? rollData.attacker : rollData.defender).getPossession(rollData.possession.system.possessionid)
|
||||
RdDPossession.storePossessionAttaque(possession, rollData)
|
||||
await RdDRollResult.displayRollData(rollData, rollData.defender, 'chat-resultat-possession.hbs');
|
||||
await RdDRollResult.displayRollData(rollData, rollData.defender, 'chat-resultat-possession-v1.hbs');
|
||||
}
|
||||
|
||||
/* -------------------------------------------- */
|
||||
@@ -172,7 +172,7 @@ export class RdDPossession {
|
||||
rollData.possession = possession
|
||||
RdDPossession.$updateEtatPossession(rollData.possession)
|
||||
|
||||
await RdDRollResult.displayRollData(rollData, rollData.attacker, 'chat-resultat-possession.hbs')
|
||||
await RdDRollResult.displayRollData(rollData, rollData.attacker, 'chat-resultat-possession-v1.hbs')
|
||||
if (rollData.possession.isPosseder || rollData.possession.isConjurer) {
|
||||
// conjuration
|
||||
await victime.deleteEmbeddedDocuments("Item", [rollData.possession._id])
|
||||
@@ -226,15 +226,18 @@ export class RdDPossession {
|
||||
/* -------------------------------------------- */
|
||||
static async createPossession(attacker, defender) {
|
||||
return await Item.create({
|
||||
name: "Possession en cours de " + attacker.name, type: 'possession',
|
||||
img: "systems/foundryvtt-reve-de-dragon/icons/entites/possession2.webp",
|
||||
name: `Possession de ${entite.name}`,
|
||||
type: ITEM_TYPES.possession,
|
||||
img: RDD_CONFIG.icons.possession,
|
||||
system: {
|
||||
description: "", typepossession: attacker.name,
|
||||
typepossession: attacker.name,
|
||||
possede: false,
|
||||
possessionid: foundry.utils.randomID(16),
|
||||
entiteid: attacker.id,
|
||||
victimeid: defender.id,
|
||||
compteur: 0,
|
||||
entite: { actorid: attacker.id },
|
||||
victime: { actorid: defender.id },
|
||||
compteur: 0
|
||||
victime: { actorid: defender.id }
|
||||
}
|
||||
},
|
||||
{
|
||||
|
||||
@@ -16,7 +16,7 @@ export class RdDEncaisser extends Dialog {
|
||||
|
||||
/* -------------------------------------------- */
|
||||
constructor(html, actor) {
|
||||
if (actor.isEntiteNonIncarnee([ENTITE_NONINCARNE])) {
|
||||
if (actor.isEntiteNonIncarnee()) {
|
||||
throw `${actor.name} est une entité non incarnée et ne peut pas subnir de dommages`
|
||||
}
|
||||
|
||||
|
||||
+17
-5
@@ -34,7 +34,7 @@ export class RdDTokenHud {
|
||||
const actor = RdDCombatManager.getActorCombatant(combatant, { warning: false })
|
||||
if (actor) {
|
||||
if (OptionsAvancees.isUsing(ROLL_DIALOG_V2)) {
|
||||
await RdDTokenHud.addExtensionHudCombat(html, combatant, actor, token)
|
||||
await RdDTokenHud.addExtensionHudCombatV2(html, combatant, actor, token)
|
||||
}
|
||||
else {
|
||||
const actions = RdDCombatManager.listActionsActorCombatant(actor)
|
||||
@@ -47,17 +47,28 @@ export class RdDTokenHud {
|
||||
}
|
||||
}
|
||||
|
||||
static async addExtensionHudCombat(html, combatant, actor, token) {
|
||||
const actionsActor = actor.listActionsCombat();
|
||||
static async addExtensionHudCombatV2(html, combatant, actor, token) {
|
||||
const isPossession = actor.listActionsPossessions().length > 0;
|
||||
const actionsCombat = isPossession ? [] : actor.listAttaques()
|
||||
const ajustements = combatant?.initiative ?
|
||||
[
|
||||
{ label: 'Initiative +1', action: 'delta', value: 1 },
|
||||
{ label: 'Initiative -1', action: 'delta', value: -1 }
|
||||
] : []
|
||||
const autres = [{ label: "Autre action", action: 'autre' }]
|
||||
const actions = Misc.indexed(actionsActor.concat(ajustements).concat(autres))
|
||||
const actions = Misc.indexed([
|
||||
...actionsCombat,
|
||||
...ajustements,
|
||||
...autres
|
||||
])
|
||||
|
||||
const hudData = { combatant, token, actions };
|
||||
const hudData = {
|
||||
combatant,
|
||||
token,
|
||||
isPossession,
|
||||
isEntiteNonIncarnee: actor.isEntiteNonIncarnee(),
|
||||
actions,
|
||||
};
|
||||
const hud = $(await renderTemplate('systems/foundryvtt-reve-de-dragon/templates/hud-actor-combat.hbs', hudData))
|
||||
$(html).find('div.col.left').append(hud)
|
||||
|
||||
@@ -84,6 +95,7 @@ export class RdDTokenHud {
|
||||
}
|
||||
})
|
||||
list.find('.rdd-attaque-v2').click(event => combatant.actor.rollAttaque(token))
|
||||
list.find('.rdd-possession-v2').click(event => combatant.actor.rollPossession())
|
||||
}
|
||||
|
||||
static async addExtensionHudInit(html, combatant, actions) {
|
||||
|
||||
+34
-9
@@ -18,7 +18,7 @@ import { RdDEmpoignade } from "./rdd-empoignade.js";
|
||||
import { ExperienceLog } from "./actor/experience-log.js";
|
||||
import { RdDCoeur } from "./coeur/rdd-coeur.js";
|
||||
import { APP_ASTROLOGIE_REFRESH } from "./sommeil/app-astrologie.js";
|
||||
import { ITEM_TYPES, RDD_CONFIG, SYSTEM_RDD } from "./constants.js";
|
||||
import { ACTOR_TYPES, ITEM_TYPES, RDD_CONFIG, SYSTEM_RDD } from "./constants.js";
|
||||
import { RdDBaseActor } from "./actor/base-actor.js";
|
||||
import { RdDCarac } from "./rdd-carac.js";
|
||||
import { RdDTextEditor } from "./apps/rdd-text-roll-editor.js";
|
||||
@@ -26,6 +26,8 @@ import { RdDTextEditor } from "./apps/rdd-text-roll-editor.js";
|
||||
import { RdDItemCompetence } from "./item-competence.js";
|
||||
import { Monnaie } from "./item-monnaie.js";
|
||||
import { ItemAction } from "./item/item-actions.js";
|
||||
import { Targets } from "./targets.js";
|
||||
import { DialogSelect } from "./dialog-select.js";
|
||||
|
||||
/* -------------------------------------------- */
|
||||
// This table starts at 0 -> niveau -10
|
||||
@@ -180,9 +182,14 @@ export class RdDUtility {
|
||||
'systems/foundryvtt-reve-de-dragon/templates/item/partial-inventaire.hbs',
|
||||
'systems/foundryvtt-reve-de-dragon/templates/item/partial-environnement.hbs',
|
||||
'systems/foundryvtt-reve-de-dragon/templates/item/partial-tab-environnement.hbs',
|
||||
'systems/foundryvtt-reve-de-dragon/templates/header-item.hbs',
|
||||
|
||||
'systems/foundryvtt-reve-de-dragon/templates/item/queue-sheet.hbs',
|
||||
'systems/foundryvtt-reve-de-dragon/templates/item/partial-header.hbs',
|
||||
'systems/foundryvtt-reve-de-dragon/templates/item/partial-hautrevant.hbs',
|
||||
'systems/foundryvtt-reve-de-dragon/templates/item/partial-frequence.hbs',
|
||||
'systems/foundryvtt-reve-de-dragon/templates/item/partial-description.hbs',
|
||||
'systems/foundryvtt-reve-de-dragon/templates/item/partial-appreciable.hbs',
|
||||
'systems/foundryvtt-reve-de-dragon/templates/item/enum-appreciation-bonmoment.hbs',
|
||||
'systems/foundryvtt-reve-de-dragon/templates/item/enum-appreciation-carac.hbs',
|
||||
'systems/foundryvtt-reve-de-dragon/templates/item/enum-appreciation-moral.hbs',
|
||||
// partial enums
|
||||
'systems/foundryvtt-reve-de-dragon/templates/enum-aspect-tarot.hbs',
|
||||
'systems/foundryvtt-reve-de-dragon/templates/enum-base-competence.hbs',
|
||||
@@ -232,9 +239,6 @@ export class RdDUtility {
|
||||
'systems/foundryvtt-reve-de-dragon/templates/partial-roll-moral.hbs',
|
||||
'systems/foundryvtt-reve-de-dragon/templates/partial-roll-surenc.hbs',
|
||||
'systems/foundryvtt-reve-de-dragon/templates/partial-select-carac.hbs',
|
||||
'systems/foundryvtt-reve-de-dragon/templates/partial-item-hautrevant.hbs',
|
||||
'systems/foundryvtt-reve-de-dragon/templates/partial-item-frequence.hbs',
|
||||
'systems/foundryvtt-reve-de-dragon/templates/partial-item-description.hbs',
|
||||
'systems/foundryvtt-reve-de-dragon/templates/roll/explain.hbs',
|
||||
'systems/foundryvtt-reve-de-dragon/templates/resolution-table.hbs',
|
||||
// Dialogs
|
||||
@@ -776,8 +780,9 @@ export class RdDUtility {
|
||||
let sommeAPayer = Number(event.currentTarget.attributes['data-somme-a-payer']?.value ?? 0);
|
||||
let actor = RdDUtility.getSelectedActor("Pour effectuer le paiement:");
|
||||
if (actor) {
|
||||
actor.payerSols(sommeAPayer);
|
||||
ChatUtility.removeChatMessageId(RdDUtility.findChatMessageId(event.currentTarget));
|
||||
actor.payerSols(sommeAPayer)
|
||||
const chatMessage = RdDUtility.findChatMessageId(event.currentTarget)
|
||||
ChatUtility.remover(chatMessage)()
|
||||
}
|
||||
});
|
||||
$(html).on("click", '.rdd-world-content-link', async event => {
|
||||
@@ -846,6 +851,26 @@ export class RdDUtility {
|
||||
return undefined;
|
||||
}
|
||||
|
||||
static doWithSelectedActor(onSelected = () => { }, filter = actor => true) {
|
||||
const selected = RdDUtility.getSelectedActor()
|
||||
if (selected) {
|
||||
onSelected(selected)
|
||||
}
|
||||
else {
|
||||
const actors = game.actors
|
||||
.filter(it => it.getUserLevel(game.user) == CONST.DOCUMENT_OWNERSHIP_LEVELS.OWNER)
|
||||
.filter(it => ![ACTOR_TYPES.commerce, ACTOR_TYPES.vehicule].includes(it.type))
|
||||
.filter(filter)
|
||||
const selectData = {
|
||||
title: "Choisir un acteur",
|
||||
label: "Choisir un acteur",
|
||||
list: actors.map(it => Targets.extractActorData(it))
|
||||
};
|
||||
DialogSelect.select(selectData, it => onSelected(game.actors.get(it.id)))
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/* -------------------------------------------- */
|
||||
static createMonnaie(name, cout, img = "", enc = 0.01) {
|
||||
let piece = {
|
||||
|
||||
@@ -13,6 +13,9 @@ import { PART_ATTAQUE } from "./roll-part-attaque.mjs"
|
||||
import { RdDRollTables } from "../rdd-rolltables.js"
|
||||
import { RdDEmpoignade } from "../rdd-empoignade.js"
|
||||
import { Misc } from "../misc.js"
|
||||
import { RollBasicParts } from "./roll-basic-parts.mjs"
|
||||
import { RdDPossessionV2 } from "../rdd-possession-v2.mjs"
|
||||
import { Apprecier } from "../moral/apprecier.mjs"
|
||||
|
||||
export default class ChatRollResult {
|
||||
static init() {
|
||||
@@ -23,14 +26,16 @@ export default class ChatRollResult {
|
||||
|
||||
static onReady() {
|
||||
foundry.applications.handlebars.loadTemplates({
|
||||
'partial-infojet': 'systems/foundryvtt-reve-de-dragon/templates/roll/result/partial-infojet.hbs',
|
||||
'partial-appel-chance': 'systems/foundryvtt-reve-de-dragon/templates/roll/result/partial-appel-chance.hbs',
|
||||
'partial-apprecier': 'systems/foundryvtt-reve-de-dragon/templates/roll/result/partial-apprecier.hbs',
|
||||
'partial-appreciation': 'systems/foundryvtt-reve-de-dragon/templates/roll/result/partial-appreciation.hbs',
|
||||
'partial-attaque-particuliere': 'systems/foundryvtt-reve-de-dragon/templates/roll/result/partial-attaque-particuliere.hbs',
|
||||
'partial-choix-maladresse': 'systems/foundryvtt-reve-de-dragon/templates/roll/result/partial-choix-maladresse.hbs',
|
||||
'partial-maladresse': 'systems/foundryvtt-reve-de-dragon/templates/roll/result/partial-maladresse.hbs',
|
||||
'partial-encaissement': 'systems/foundryvtt-reve-de-dragon/templates/roll/result/partial-encaissement.hbs',
|
||||
'partial-recul-choc': 'systems/foundryvtt-reve-de-dragon/templates/roll/result/partial-recul-choc.hbs',
|
||||
'partial-infojet': 'systems/foundryvtt-reve-de-dragon/templates/roll/result/partial-infojet.hbs',
|
||||
'partial-info-appel-moral': 'systems/foundryvtt-reve-de-dragon/templates/roll/result/partial-info-appel-moral.hbs',
|
||||
'partial-maladresse': 'systems/foundryvtt-reve-de-dragon/templates/roll/result/partial-maladresse.hbs',
|
||||
'partial-recul-choc': 'systems/foundryvtt-reve-de-dragon/templates/roll/result/partial-recul-choc.hbs',
|
||||
})
|
||||
}
|
||||
|
||||
@@ -53,19 +58,20 @@ export default class ChatRollResult {
|
||||
prepareDisplay(roll) {
|
||||
roll.done = roll.done ?? {}
|
||||
roll.show = roll.show ?? {}
|
||||
roll.show.chance = this.isAppelChancePossible(roll)
|
||||
roll.show.encaissement = this.isShowEncaissement(roll)
|
||||
roll.show.recul = this.getRecul(roll)
|
||||
roll.show.maladresse = this.getMaladresse(roll)
|
||||
roll.show.chance = this.$isAppelChancePossible(roll)
|
||||
roll.show.encaissement = this.$isShowEncaissement(roll)
|
||||
roll.show.recul = this.$getRecul(roll)
|
||||
roll.show.maladresse = this.$getMaladresse(roll)
|
||||
}
|
||||
|
||||
isAppelChancePossible(roll) {
|
||||
$isAppelChancePossible(roll) {
|
||||
return roll.active.actor.isPersonnage() &&
|
||||
roll.rolled.isEchec &&
|
||||
RdDCarac.isActionPhysique(roll.current.carac?.key)
|
||||
RdDCarac.isActionPhysique(roll.current.carac?.key) &&
|
||||
!roll.type.appreciation
|
||||
}
|
||||
|
||||
isShowEncaissement(roll) {
|
||||
$isShowEncaissement(roll) {
|
||||
switch (roll.type.current) {
|
||||
case ROLL_TYPE_DEFENSE:
|
||||
return roll.rolled.isEchec
|
||||
@@ -73,7 +79,7 @@ export default class ChatRollResult {
|
||||
return false
|
||||
}
|
||||
|
||||
getMaladresse(roll) {
|
||||
$getMaladresse(roll) {
|
||||
switch (roll.type.current) {
|
||||
case ROLL_TYPE_DEFENSE:
|
||||
if (roll.rolled.isETotal) {
|
||||
@@ -91,7 +97,7 @@ export default class ChatRollResult {
|
||||
return undefined
|
||||
}
|
||||
|
||||
getRecul(roll, defender = roll.active.actor, attacker = roll.opponent?.actor) {
|
||||
$getRecul(roll, defender = roll.active.actor, attacker = roll.opponent?.actor) {
|
||||
switch (roll.type.current) {
|
||||
case ROLL_TYPE_DEFENSE:
|
||||
{
|
||||
@@ -134,10 +140,13 @@ export default class ChatRollResult {
|
||||
$(html).on("click", '.appel-chance', event => this.onClickAppelChance(event))
|
||||
$(html).on("click", '.appel-destinee', event => this.onClickAppelDestinee(event))
|
||||
$(html).on("click", '.button-defense', event => this.onClickDefense(event))
|
||||
$(html).on("click", '.button-defense-possession', event => this.onClickDefensePossession(event))
|
||||
$(html).on("click", '.marquer-point-possession', event => this.onClickMarquerPointPossession(event))
|
||||
$(html).on("click", '.encaissement', event => this.onClickEncaissement(event))
|
||||
$(html).on("click", '.resister-recul', event => this.onClickRecul(event))
|
||||
$(html).on("click", '.choix-particuliere', event => this.onClickChoixParticuliere(event))
|
||||
$(html).on("click", '.faire-gouter', event => this.onClickFaireGouter(event))
|
||||
$(html).on("click", '.apprecier', event => this.onClickApprecier(event))
|
||||
$(html).on("click", '.monter-tmr-normale', event => this.onClickMonteeTMR(event, 'normal'))
|
||||
$(html).on("click", '.monter-tmr-rapide', event => this.onClickMonteeTMR(event, 'rapide'))
|
||||
$(html).on("click", '.tirer-maladresse', event => this.onClickTirerMaladresse(event))
|
||||
@@ -187,7 +196,7 @@ export default class ChatRollResult {
|
||||
console.log('onAppelChanceSuccess savedRoll', savedRoll)
|
||||
reRoll.type.retry = true
|
||||
await this.updateChatMessage(chatMessage, reRoll)
|
||||
const callbacks = [r => ChatUtility.removeChatMessageId(chatMessage.id)]
|
||||
const callbacks = [ChatUtility.remover(chatMessage)]
|
||||
|
||||
// TODO: annuler les effets
|
||||
switch (reRoll.type.current) {
|
||||
@@ -195,7 +204,6 @@ export default class ChatRollResult {
|
||||
this.getCombat(reRoll)?.doRollDefense(reRoll, callbacks)
|
||||
break
|
||||
case ROLL_TYPE_ATTAQUE:
|
||||
// TODO
|
||||
this.getCombat(reRoll)?.doRollAttaque(reRoll, callbacks)
|
||||
break
|
||||
default: {
|
||||
@@ -227,12 +235,28 @@ export default class ChatRollResult {
|
||||
async onClickDefense(event) {
|
||||
const chatMessage = ChatUtility.getChatMessage(event)
|
||||
const savedRoll = this.loadChatMessageRoll(chatMessage)
|
||||
RollBasicParts.restore(savedRoll)
|
||||
const attackerRoll = savedRoll.attackerRoll
|
||||
RollDialog.loadRollData(attackerRoll)
|
||||
this.getCombat(attackerRoll)?.defenseV2(attackerRoll,
|
||||
[roll => { ChatUtility.removeChatMessageId(chatMessage.id) }]
|
||||
[ChatUtility.remover(chatMessage)]
|
||||
)
|
||||
}
|
||||
|
||||
async onClickDefensePossession(event) {
|
||||
const chatMessage = ChatUtility.getChatMessage(event)
|
||||
const savedRoll = this.loadChatMessageRoll(chatMessage)
|
||||
await RdDPossessionV2.rollDefensePossession(savedRoll, chatMessage)
|
||||
}
|
||||
|
||||
async onClickMarquerPointPossession(event) {
|
||||
const chatMessage = ChatUtility.getChatMessage(event)
|
||||
const savedRoll = this.loadChatMessageRoll(chatMessage)
|
||||
RollBasicParts.restore(savedRoll)
|
||||
await RdDPossessionV2.onMarquerPointPossession(savedRoll)
|
||||
ChatUtility.remover(chatMessage)()
|
||||
}
|
||||
|
||||
async onClickEncaissement(event) {
|
||||
const chatMessage = ChatUtility.getChatMessage(event)
|
||||
const isMessageDemande = ChatUtility.getMessageData(chatMessage, 'demande-defense')
|
||||
@@ -255,7 +279,7 @@ export default class ChatRollResult {
|
||||
break
|
||||
}
|
||||
if (isMessageDemande) {
|
||||
ChatUtility.removeChatMessageId(chatMessage.id)
|
||||
ChatUtility.remover(chatMessage)()
|
||||
} else {
|
||||
savedRoll.done.encaissement = true
|
||||
await this.updateChatMessage(chatMessage, savedRoll)
|
||||
@@ -294,6 +318,11 @@ export default class ChatRollResult {
|
||||
}
|
||||
await new RollTypeCuisine().onFaireGouter(savedRoll)
|
||||
}
|
||||
async onClickApprecier(event) {
|
||||
const chatMessage = ChatUtility.getChatMessage(event)
|
||||
const savedRoll = this.loadChatMessageRoll(chatMessage)
|
||||
await Apprecier.onClickApprecier(savedRoll)
|
||||
}
|
||||
|
||||
async onClickMonteeTMR(event, mode) {
|
||||
const chatMessage = ChatUtility.getChatMessage(event)
|
||||
|
||||
@@ -11,7 +11,7 @@ export class RollBasicParts {
|
||||
rollData.ids.sceneId = rollData.ids.sceneId ?? canvas.scene.id
|
||||
rollData.active = RollBasicParts.getTokenActor(rollData)
|
||||
rollData.opponent = RollBasicParts.getTokenActorOpponent(rollData)
|
||||
if (rollData.type.opposed == undefined) {
|
||||
if (rollData.type && rollData.type.opposed == undefined) {
|
||||
rollData.type.opposed = rollData.opponent != null
|
||||
}
|
||||
}
|
||||
@@ -46,10 +46,10 @@ export class RollBasicParts {
|
||||
type: rollData.type,
|
||||
ids: {
|
||||
sceneId: rollData.ids.sceneId,
|
||||
actorId: rollData.active.id,
|
||||
actorTokenId: rollData.active.tokenId,
|
||||
opponentId: isOpposed ? rollData.opponent.id : undefined,
|
||||
opponentTokenId: isOpposed ? rollData.opponent.tokenId : undefined,
|
||||
actorId: rollData.ids.actorId,
|
||||
actorTokenId: rollData.ids.actorTokenId,
|
||||
opponentId: isOpposed ? rollData.ids.opponentId : undefined,
|
||||
opponentTokenId: isOpposed ? rollData.ids.opponentTokenId : undefined,
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
|
||||
export const ROLL_TYPE_ATTAQUE = 'attaque'
|
||||
export const ROLL_TYPE_POSSESSION = 'possession'
|
||||
export const ROLL_TYPE_COMP = 'comp'
|
||||
export const ROLL_TYPE_CUISINE = 'cuisine'
|
||||
export const ROLL_TYPE_DEFENSE = 'defense'
|
||||
@@ -27,8 +28,8 @@ export const DIFF = {
|
||||
export const DIFFS = {
|
||||
[DIFF.LIBRE]: { key: DIFF.LIBRE, label: "Difficulté libre", libre: true, visible: true, max: 0 },
|
||||
[DIFF.ATTAQUE]: { key: DIFF.ATTAQUE, label: "Difficulté d'attaque", libre: true, visible: true, max: 0 },
|
||||
[DIFF.IMPOSEE]: { key: DIFF.IMPOSEE, label: "Diffficulté imposée", libre: false, visible: true, max: 0 },
|
||||
[DIFF.DEFENSE]: { key: DIFF.DEFENSE, label: "Diffficulté défense", libre: false, visible: true, max: 0 },
|
||||
[DIFF.IMPOSEE]: { key: DIFF.IMPOSEE, label: "Difficulté imposée", libre: false, visible: true, max: 20 },
|
||||
[DIFF.DEFENSE]: { key: DIFF.DEFENSE, label: "Difficulté défense", libre: false, visible: true, max: 0 },
|
||||
[DIFF.DEFAUT]: { key: DIFF.DEFAUT, label: "Difficulté", libre: true, visible: true, max: 5 },
|
||||
[DIFF.AUCUN]: { key: DIFF.AUCUN, label: "", libre: false, visible: false, max: 0 },
|
||||
}
|
||||
|
||||
+37
-11
@@ -48,6 +48,9 @@ import { RollPartEmpoignade } from "./roll-part-empoignade.mjs";
|
||||
import { RollPartEmpoignadeTaille } from "./roll-part-empoignade-taille.mjs";
|
||||
import { RollPartEcailles } from "./roll-part-ecailles.mjs";
|
||||
import { RollPartResistance } from "./roll-part-resistance.mjs";
|
||||
import { RollTypePossession } from "./roll-type-possession.mjs";
|
||||
import { RollPartPossession } from "./roll-part-possession.mjs";
|
||||
import { RollPartApprecier } from "./roll-part-apprecier.mjs";
|
||||
|
||||
|
||||
const { HandlebarsApplicationMixin, ApplicationV2 } = foundry.applications.api
|
||||
@@ -56,6 +59,7 @@ export const ALL_ROLL_TYPES = [
|
||||
new RollTypeComp(),
|
||||
new RollTypeTache(),
|
||||
new RollTypeAttaque(),
|
||||
new RollTypePossession(),
|
||||
new RollTypeDefense(),
|
||||
new RollTypeSort(),
|
||||
new RollTypeMeditation(),
|
||||
@@ -75,7 +79,9 @@ const ROLL_PARTS = [
|
||||
new RollPartComp(),
|
||||
|
||||
new RollPartDiff(),
|
||||
new RollPartApprecier(),
|
||||
new RollPartAttaque(),
|
||||
new RollPartPossession(),
|
||||
new RollPartDefense(),
|
||||
new RollPartMeditation(),
|
||||
new RollPartSort(),
|
||||
@@ -314,15 +320,33 @@ export default class RollDialog extends HandlebarsApplicationMixin(ApplicationV2
|
||||
return rollData
|
||||
}
|
||||
|
||||
static saveParts(rollData, impacts) {
|
||||
static saveParts(rollData, impacts = undefined) {
|
||||
if (rollData == undefined) {
|
||||
return undefined
|
||||
}
|
||||
|
||||
function saveBasics(from, to) {
|
||||
if (from) {
|
||||
to.passeArme = from.passeArme
|
||||
to.rolled = from.rolled
|
||||
to.particuliere = from.particuliere
|
||||
to.result = from.result
|
||||
to.done = from.done ?? {}
|
||||
to.dmg = from.dmg
|
||||
if (from.attackerRoll) {
|
||||
to.attackerRoll = {}
|
||||
saveBasics(from.attackerRoll, to.attackerRoll)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
const target = RollBasicParts.initFrom(rollData)
|
||||
ROLL_PARTS.filter(p => p.isActive(rollData))
|
||||
.forEach(p => p.storeClean(rollData, target))
|
||||
target.attackerRoll = rollData.attackerRoll
|
||||
target.rolled = rollData.rolled
|
||||
target.result = rollData.result
|
||||
target.done = rollData.done ?? {}
|
||||
target.dmg = rollData.dmg
|
||||
if (rollData.current) {
|
||||
// stockage de current
|
||||
ROLL_PARTS.filter(p => p.isActive(rollData))
|
||||
.forEach(p => p.storeClean(rollData, target))
|
||||
}
|
||||
saveBasics(rollData, target)
|
||||
if (impacts) {
|
||||
target.reverse = {
|
||||
active: impacts.active?.reverseImpacts(),
|
||||
@@ -330,6 +354,7 @@ export default class RollDialog extends HandlebarsApplicationMixin(ApplicationV2
|
||||
}
|
||||
}
|
||||
return target
|
||||
|
||||
}
|
||||
|
||||
constructor(rollData, rollOptions) {
|
||||
@@ -348,7 +373,7 @@ export default class RollDialog extends HandlebarsApplicationMixin(ApplicationV2
|
||||
}
|
||||
this.chatRollResult = new ChatRollResult()
|
||||
this.selectType()
|
||||
this.registerHooks(rollData);
|
||||
this.registerHooks(rollData)
|
||||
}
|
||||
|
||||
registerHooks(rollData) {
|
||||
@@ -366,10 +391,11 @@ export default class RollDialog extends HandlebarsApplicationMixin(ApplicationV2
|
||||
|
||||
|
||||
selectType() {
|
||||
const selectedType = this.getSelectedType();
|
||||
this.rollData.type.label = selectedType.title(this.rollData)
|
||||
const selectedType = this.getSelectedType()
|
||||
selectedType.prepare(this.rollData)
|
||||
selectedType.setRollDataType(this.rollData)
|
||||
selectedType.onSelect(this.rollData)
|
||||
this.rollData.type.label = selectedType.title(this.rollData)
|
||||
|
||||
ROLL_PARTS.find(it => it.code == PART_CARAC).filterCaracs(this.rollData)
|
||||
ROLL_PARTS.find(it => it.code == PART_COMP).filterComps(this.rollData)
|
||||
|
||||
@@ -0,0 +1,32 @@
|
||||
import { ROLLDIALOG_SECTION, RollPart } from "./roll-part.mjs";
|
||||
|
||||
export const PART_APPRECIER = "apprecier"
|
||||
|
||||
export class RollPartApprecier extends RollPart {
|
||||
|
||||
get code() { return PART_APPRECIER }
|
||||
get section() { return ROLLDIALOG_SECTION.CHOIX }
|
||||
|
||||
restore(rollData) {
|
||||
this.setCurrent(rollData, this.getSaved(rollData))
|
||||
}
|
||||
|
||||
store(rollData, targetData) {
|
||||
this.setSaved(targetData, this.getCurrent(rollData))
|
||||
}
|
||||
|
||||
visible(rollData) {
|
||||
return rollData.type.appreciation
|
||||
}
|
||||
|
||||
getAjustements(rollData) {
|
||||
const current = this.getCurrent(rollData)
|
||||
if (current.appreciation.jetQualite){
|
||||
return [{
|
||||
label: 'Qualité',
|
||||
value: Math.abs(current.qualite)
|
||||
}]
|
||||
}
|
||||
return []
|
||||
}
|
||||
}
|
||||
@@ -22,7 +22,12 @@ export class RollPartComp extends RollPartSelect {
|
||||
if (selected.forced) {
|
||||
refs.all = all.filter(comp => Grammar.equalsInsensitive(comp.label, selected.key))
|
||||
if (refs.all.length == 0) {
|
||||
refs.all = all.filter(comp => Grammar.includesLowerCaseNoAccent(comp.label, selected.key))
|
||||
if (selected.key.length > 0) {
|
||||
refs.all = all.filter(comp => Grammar.includesLowerCaseNoAccent(comp.label, selected.key))
|
||||
}
|
||||
else {
|
||||
refs.all = all.filter(comp => comp == SANS_COMPETENCE)
|
||||
}
|
||||
}
|
||||
}
|
||||
else {
|
||||
|
||||
@@ -16,8 +16,8 @@ export class RollPartDefense extends RollPartSelect {
|
||||
get code() { return PART_DEFENSE }
|
||||
get section() { return ROLLDIALOG_SECTION.CHOIX }
|
||||
|
||||
isValid(rollData) { return rollData.attackerRoll != undefined }
|
||||
visible(rollData) { return this.isRollType(rollData, ROLL_TYPE_DEFENSE) }
|
||||
isValid(rollData) { return this.isRollType(rollData, ROLL_TYPE_DEFENSE) && rollData.attackerRoll != undefined }
|
||||
visible(rollData) { return this.isRollType(rollData, ROLL_TYPE_DEFENSE) && rollData.attackerRoll != undefined }
|
||||
|
||||
static getDiffAttaque(attackerRoll) {
|
||||
// TODO: rollDataV2?
|
||||
|
||||
@@ -32,7 +32,7 @@ export class RollPartDiff extends RollPart {
|
||||
}
|
||||
|
||||
visible(rollData) {
|
||||
if (EXCLUDED_ROLL_TYPES.includes(rollData.type.current)) {
|
||||
if (EXCLUDED_ROLL_TYPES.includes(rollData.type.current) || rollData.type.appreciation) {
|
||||
return false
|
||||
}
|
||||
const current = this.getCurrent(rollData)
|
||||
|
||||
@@ -0,0 +1,85 @@
|
||||
import { CATEGORIES_COMPETENCES_CREATURES } from "../item/base-items.js"
|
||||
import { CARACS } from "../rdd-carac.js"
|
||||
import { RdDPossessionV2 } from "../rdd-possession-v2.mjs"
|
||||
import { ROLL_TYPE_POSSESSION } from "./roll-constants.mjs"
|
||||
import { PART_CARAC } from "./roll-part-carac.mjs"
|
||||
import { PART_COMP } from "./roll-part-comp.mjs"
|
||||
import { RollPartSelect } from "./roll-part-select.mjs"
|
||||
import { ROLLDIALOG_SECTION } from "./roll-part.mjs"
|
||||
|
||||
export const PART_POSSESSION = "possession"
|
||||
|
||||
export class RollPartPossession extends RollPartSelect {
|
||||
|
||||
/** TODO: remplacer selectOption par un sélecteur plus sympa (avec image de compétence, par exemple? */
|
||||
|
||||
get code() { return PART_POSSESSION }
|
||||
get name() { return 'Possession' }
|
||||
get section() { return ROLLDIALOG_SECTION.CHOIX }
|
||||
|
||||
visible(rollData) { return this.isRollType(rollData, ROLL_TYPE_POSSESSION) }
|
||||
|
||||
loadRefs(rollData) {
|
||||
const refs = this.getRefs(rollData)
|
||||
refs.all = this.$getActorConjurations(rollData)
|
||||
this.$selectPossession(rollData)
|
||||
}
|
||||
|
||||
|
||||
choices(refs) { return refs.all }
|
||||
|
||||
$getActorConjurations(rollData) {
|
||||
const competences = rollData.active.actor.getDraconicOuPossession()
|
||||
return competences.map(RollPartPossession.extractPossession)
|
||||
}
|
||||
|
||||
static extractPossession(comp) {
|
||||
return {
|
||||
key: comp.id ?? comp.name,
|
||||
label: `${comp.system.categorie == CATEGORIES_COMPETENCES_CREATURES.possession.key ? 'Possession' : 'Conjuration'} (${comp.name})`,
|
||||
value: comp.system.niveau,
|
||||
comp: comp
|
||||
}
|
||||
}
|
||||
|
||||
prepareContext(rollData) {
|
||||
this.$selectPossession(rollData)
|
||||
}
|
||||
|
||||
getAjustements(rollData) {
|
||||
return []
|
||||
}
|
||||
|
||||
async _onRender(rollDialog, context, options) {
|
||||
const rollData = rollDialog.rollData
|
||||
const select = rollDialog.element.querySelector(`roll-section[name="${this.code}"] select[name="select-possession"]`)
|
||||
const button = rollDialog.element.querySelector(`roll-section[name="${this.code}"] button[name="creer-possession"]`)
|
||||
select?.addEventListener("change", e => {
|
||||
const selectOptions = e.currentTarget.options
|
||||
const index = selectOptions.selectedIndex
|
||||
this.$selectPossession(rollData, selectOptions[index]?.value)
|
||||
rollDialog.render()
|
||||
})
|
||||
button?.addEventListener("click", async e => {
|
||||
e.preventDefault()
|
||||
await RdDPossessionV2.createPossessionIfMissing(rollData.active, rollData.opponent)
|
||||
rollDialog.render()
|
||||
})
|
||||
}
|
||||
|
||||
$selectPossession(rollData, key) {
|
||||
this.selectByKey(rollData, key, 0)
|
||||
}
|
||||
|
||||
impactOtherPart(part, rollData) {
|
||||
if (this.visible(rollData)) {
|
||||
const current = this.getCurrent(rollData)
|
||||
switch (part.code) {
|
||||
case PART_CARAC: return part.filterCaracs(rollData, [rollData.type.possession.isPersonnage ? CARACS.REVE_ACTUEL : CARACS.REVE])
|
||||
case PART_COMP: return part.filterComps(rollData, [current.comp?.name])
|
||||
}
|
||||
}
|
||||
return undefined
|
||||
}
|
||||
|
||||
}
|
||||
@@ -1,8 +1,9 @@
|
||||
import { RDD_CONFIG } from "../constants.js"
|
||||
import { Misc } from "../misc.js"
|
||||
import { RdDPossessionV2 } from "../rdd-possession-v2.mjs"
|
||||
import { ReglesOptionnelles } from "../settings/regles-optionnelles.js"
|
||||
import { demiReveStatusEffect, StatusEffects } from "../settings/status-effects.js"
|
||||
import { ROLL_TYPE_ATTAQUE, ROLL_TYPE_DEFENSE } from "./roll-constants.mjs"
|
||||
import { StatusEffects } from "../settings/status-effects.js"
|
||||
import { ROLL_TYPE_ATTAQUE, ROLL_TYPE_DEFENSE, ROLL_TYPE_POSSESSION } from "./roll-constants.mjs"
|
||||
import { ROLLDIALOG_SECTION, RollPart } from "./roll-part.mjs"
|
||||
|
||||
export const PART_SIGN = "sign"
|
||||
@@ -25,7 +26,7 @@ export class RollPartSign extends RollPart {
|
||||
}
|
||||
|
||||
isCombat(rollData) {
|
||||
return [ROLL_TYPE_ATTAQUE, ROLL_TYPE_DEFENSE].includes(rollData.type.current) || rollData.type.isCombat
|
||||
return [ROLL_TYPE_ATTAQUE, ROLL_TYPE_DEFENSE, ROLL_TYPE_POSSESSION].includes(rollData.type.current)
|
||||
}
|
||||
|
||||
prepareContext(rollData) {
|
||||
@@ -40,7 +41,7 @@ export class RollPartSign extends RollPart {
|
||||
const isCombat = this.isCombat(rollData)
|
||||
const current = this.getCurrent(rollData)
|
||||
current.armeDisparate = isCombat && current.armeDisparate
|
||||
current.surprise = actor.getSurprise(isCombat, current.forceRequise ?? 0)
|
||||
current.surprise = actor.getSurprise(isCombat, current.forceRequise ?? 0)
|
||||
current.reasons = actor.getEffects(it => StatusEffects.niveauSurprise(it, isCombat) > 0, current.forceRequise ?? 0)
|
||||
.map(it => { return { img: it.img, label: game.i18n.localize(it.name) } })
|
||||
current.diviseur = 1
|
||||
@@ -67,7 +68,16 @@ export class RollPartSign extends RollPart {
|
||||
}
|
||||
|
||||
isAttaqueFinesse(rollData) {
|
||||
return ROLL_TYPE_DEFENSE == rollData.type.current && rollData.attaque?.particuliere == 'finesse'
|
||||
const attackerRoll = rollData.attackerRoll
|
||||
if (rollData.attackerRoll){
|
||||
switch (rollData.type.current) {
|
||||
case ROLL_TYPE_DEFENSE:
|
||||
return attackerRoll?.particuliere == RDD_CONFIG.particuliere.finesse.key
|
||||
case ROLL_TYPE_POSSESSION:
|
||||
return RdDPossessionV2.isDefense(rollData.type.possession.action) && attackerRoll?.particuliere == RDD_CONFIG.particuliere.finesse.key
|
||||
}
|
||||
}
|
||||
return false
|
||||
}
|
||||
|
||||
isParadeArmeDisparate(current) {
|
||||
|
||||
@@ -5,7 +5,12 @@ export class RollTypeComp extends RollType {
|
||||
get code() { return ROLL_TYPE_COMP }
|
||||
get name() { return `Jet de caractéristique / compétence` }
|
||||
|
||||
title(rollData) { return `fait un jet ${rollData.type.opposed ? ' contre ' : ''}` }
|
||||
title(rollData) {
|
||||
if (rollData.type.appreciation) {
|
||||
return "fait un jet d'appéciation"
|
||||
}
|
||||
return `fait un jet ${rollData.type.opposed ? ' contre ' : ''}`
|
||||
}
|
||||
|
||||
|
||||
onSelect(rollData) {
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
import { ITEM_TYPES } from "../constants.js"
|
||||
import { APPRECIATION } from "../moral/apprecier.mjs"
|
||||
import { RollBasicParts } from "./roll-basic-parts.mjs"
|
||||
import { DIFF, ROLL_TYPE_CUISINE } from "./roll-constants.mjs"
|
||||
import { PART_CUISINE } from "./roll-part-cuisine.mjs"
|
||||
@@ -49,7 +50,7 @@ export class RollTypeCuisine extends RollType {
|
||||
return result
|
||||
}
|
||||
onApplyImpacts(roll, impacts) {
|
||||
if (roll.result.plat) {
|
||||
if (roll.result.plat) {
|
||||
// le plat n'est pas créé immédiatement, il faut donc retrouver l'id
|
||||
roll.result.plat.id = impacts.findCreatedId('Item', roll.result.plat.id)
|
||||
}
|
||||
@@ -69,6 +70,7 @@ export class RollTypeCuisine extends RollType {
|
||||
quantite: current.proportions,
|
||||
qualite: result.qualite,
|
||||
cout: result.qualite > 0 ? (result.qualite * 0.01) : 0.01,
|
||||
appreciation: APPRECIATION.CUISINE
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
import { PART_JEU, RollPartJeu } from "./roll-part-jeu.mjs"
|
||||
import { RollType } from "./roll-type.mjs"
|
||||
import { DIFF, ROLL_TYPE_JEU } from "./roll-constants.mjs"
|
||||
import { Apprecier } from "../moral/apprecier.mjs"
|
||||
|
||||
|
||||
export class RollTypeJeu extends RollType {
|
||||
@@ -20,4 +21,8 @@ export class RollTypeJeu extends RollType {
|
||||
RollPartJeu.forceCompJeu(rollData)
|
||||
}
|
||||
|
||||
}
|
||||
getResult(rollData, impacts) {
|
||||
const current = rollData.current[PART_JEU]
|
||||
return Apprecier.getAppreciation(current.qualite, current.jeu, rollData, current.comp)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
import { Apprecier } from "../moral/apprecier.mjs"
|
||||
import { DIFF, ROLL_TYPE_OEUVRE } from "./roll-constants.mjs"
|
||||
import { PART_OEUVRE } from "./roll-part-oeuvre.mjs"
|
||||
import { RollType } from "./roll-type.mjs"
|
||||
@@ -18,12 +19,7 @@ export class RollTypeOeuvre extends RollType {
|
||||
|
||||
getResult(rollData, impacts) {
|
||||
const current = rollData.current[PART_OEUVRE]
|
||||
const qualite = rollData.rolled.isSuccess ? current.qualite : Math.min(current.qualite, current.comp.system.niveau)
|
||||
return {
|
||||
qualite: qualite + rollData.rolled.ptQualite,
|
||||
messages: []
|
||||
}
|
||||
return Apprecier.getAppreciation(current.qualite, current.oeuvre, rollData, current.comp)
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
@@ -0,0 +1,28 @@
|
||||
import { RdDPossessionV2 } from "../rdd-possession-v2.mjs"
|
||||
import { DIFF, ROLL_TYPE_POSSESSION } from "./roll-constants.mjs"
|
||||
import { RollType } from "./roll-type.mjs"
|
||||
|
||||
export class RollTypePossession extends RollType {
|
||||
get code() { return ROLL_TYPE_POSSESSION }
|
||||
get name() { return "Posséder" }
|
||||
|
||||
prepare(rollData) {
|
||||
rollData.type.possession = RdDPossessionV2.getTypePossessionAction(rollData.active, rollData.opponent, rollData.type.possession?.action)
|
||||
}
|
||||
|
||||
title(rollData) {
|
||||
return RdDPossessionV2.actionTitle(rollData.type.possession.action)
|
||||
}
|
||||
|
||||
onSelect(rollData) {
|
||||
this.setDiffType(rollData, this.isAttaque(rollData) ? DIFF.ATTAQUE : DIFF.DEFENSE)
|
||||
}
|
||||
|
||||
isEntite(rollData) {
|
||||
return rollData.active.actor.isEntiteNonIncarnee()
|
||||
}
|
||||
|
||||
isAttaque(rollData) {
|
||||
return RdDPossessionV2.isAttaque(rollData.type.possession.action)
|
||||
}
|
||||
}
|
||||
@@ -16,6 +16,7 @@ export class RollType {
|
||||
return { code: this.code, name: this.name, icon: this.icon, section: 'type', template: this.template, selected: this.isSelected(rollData) }
|
||||
}
|
||||
|
||||
prepare(rollData){}
|
||||
isAllowed(rollData) { return rollData.type.allowed == undefined || rollData.type.allowed.includes(this.code) }
|
||||
visible(rollData) { return true }
|
||||
title(rollData) { return this.code }
|
||||
|
||||
@@ -68,18 +68,20 @@ export class SystemCompendiums extends FormApplication {
|
||||
if (pack?.metadata.type == docType) {
|
||||
return await pack.getDocuments();
|
||||
}
|
||||
return [];
|
||||
return []
|
||||
}
|
||||
|
||||
static async getCompetences(actorType) {
|
||||
switch (actorType ?? 'personnage') {
|
||||
case 'personnage':
|
||||
return await SystemCompendiums.getWorldOrCompendiumItems('competence', 'competences')
|
||||
.then(list => list.sort((a, b) => a.name.localeCompare(b.name)))
|
||||
case 'entite':
|
||||
case 'creature':
|
||||
return await SystemCompendiums.getWorldOrCompendiumItems('competencecreature', 'competences-creatures')
|
||||
case 'vehicule': return [];
|
||||
.then(list => list.sort((a, b) => a.name.localeCompare(b.name)))
|
||||
}
|
||||
return []
|
||||
}
|
||||
|
||||
/* -------------------------------------------- */
|
||||
|
||||
@@ -9,12 +9,12 @@ export class DialogRepos extends Dialog {
|
||||
return
|
||||
}
|
||||
if (!ReglesOptionnelles.isUsing("chateau-dormant-gardien") || !actor.hasPlayerOwner) {
|
||||
actor.system.sommeil = {
|
||||
foundry.utils.mergeObject(actor.system.sommeil, {
|
||||
"nouveaujour": true,
|
||||
"insomnie": EffetsDraconiques.isSujetInsomnie(actor),
|
||||
"moral": "neutre",
|
||||
"heures": 4
|
||||
}
|
||||
})
|
||||
}
|
||||
const html = await renderTemplate("systems/foundryvtt-reve-de-dragon/templates/sommeil/dialog-repos.hbs", actor);
|
||||
const dialog = new DialogRepos(html, actor);
|
||||
|
||||
+9
-1
@@ -18,6 +18,14 @@ export class Targets {
|
||||
}
|
||||
}
|
||||
|
||||
static extractActorData(actor) {
|
||||
return {
|
||||
id: actor.id,
|
||||
name: actor.prototypeToken?.name ?? actor.name,
|
||||
img: actor.prototypeToken?.texture.src ?? actor.img ?? 'icons/svg/mystery-man.svg'
|
||||
}
|
||||
}
|
||||
|
||||
static buildActorTokenData(tokenId, actor) {
|
||||
return { id: tokenId, name: actor.name, img: actor.img ?? 'icons/svg/mystery-man.svg' };
|
||||
}
|
||||
@@ -41,7 +49,7 @@ export class Targets {
|
||||
label: "Choisir une seule des cibles",
|
||||
list: targets.map(it => Targets.extractTokenData(it))
|
||||
};
|
||||
DialogSelect.select(selectData, t => onSelectTarget(t.target))
|
||||
DialogSelect.select(selectData, target => onSelectTarget(targets.find(it => it.id == target.id)))
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -30,7 +30,11 @@ items:
|
||||
_stats:
|
||||
systemId: foundryvtt-reve-de-dragon
|
||||
systemVersion: 12.0.22
|
||||
coreVersion: '12.331'
|
||||
coreVersion: '13.350'
|
||||
lastModifiedBy: null
|
||||
compendiumSource: null
|
||||
duplicateSource: null
|
||||
exportSource: null
|
||||
_key: '!actors.items!Igt8XPaL7NQrGYlq.shsUV8UpU18c0RJK'
|
||||
- _id: CYpxxf1uTa78NWR9
|
||||
name: Esquive
|
||||
@@ -59,7 +63,11 @@ items:
|
||||
_stats:
|
||||
systemId: foundryvtt-reve-de-dragon
|
||||
systemVersion: 12.0.22
|
||||
coreVersion: '12.331'
|
||||
coreVersion: '13.350'
|
||||
lastModifiedBy: null
|
||||
compendiumSource: null
|
||||
duplicateSource: null
|
||||
exportSource: null
|
||||
_key: '!actors.items!Igt8XPaL7NQrGYlq.CYpxxf1uTa78NWR9'
|
||||
- _id: lzEdMrKXbOYrWG5S
|
||||
name: Vigilance
|
||||
@@ -88,7 +96,11 @@ items:
|
||||
_stats:
|
||||
systemId: foundryvtt-reve-de-dragon
|
||||
systemVersion: 12.0.22
|
||||
coreVersion: '12.331'
|
||||
coreVersion: '13.350'
|
||||
lastModifiedBy: null
|
||||
compendiumSource: null
|
||||
duplicateSource: null
|
||||
exportSource: null
|
||||
_key: '!actors.items!Igt8XPaL7NQrGYlq.lzEdMrKXbOYrWG5S'
|
||||
- _id: NWmRryjNFkXcd1v9
|
||||
name: Piétinement
|
||||
@@ -116,7 +128,12 @@ items:
|
||||
_stats:
|
||||
systemId: foundryvtt-reve-de-dragon
|
||||
systemVersion: 12.0.22
|
||||
coreVersion: '12.331'
|
||||
coreVersion: '13.350'
|
||||
lastModifiedBy: null
|
||||
compendiumSource: null
|
||||
duplicateSource: null
|
||||
exportSource: null
|
||||
flags: {}
|
||||
_key: '!actors.items!Igt8XPaL7NQrGYlq.NWmRryjNFkXcd1v9'
|
||||
effects: []
|
||||
folder: null
|
||||
@@ -183,16 +200,16 @@ system:
|
||||
value: '+4'
|
||||
label: +dom
|
||||
derivee: true
|
||||
vitesse:
|
||||
type: string
|
||||
value: 10/40
|
||||
label: Vitesse
|
||||
derivee: true
|
||||
encombrement:
|
||||
type: number
|
||||
value: 20
|
||||
label: Encombrement
|
||||
derivee: false
|
||||
vitesse:
|
||||
type: string
|
||||
value: 10/40
|
||||
label: Vitesse
|
||||
derivee: true
|
||||
protection:
|
||||
type: number
|
||||
value: 4
|
||||
@@ -295,7 +312,6 @@ prototypeToken:
|
||||
detectionModes: []
|
||||
appendNumber: false
|
||||
prependAdjective: false
|
||||
hexagonalShape: 0
|
||||
occludable:
|
||||
radius: 0
|
||||
ring:
|
||||
@@ -307,9 +323,19 @@ prototypeToken:
|
||||
subject:
|
||||
scale: 1
|
||||
texture: null
|
||||
turnMarker:
|
||||
mode: 1
|
||||
animation: null
|
||||
src: null
|
||||
disposition: false
|
||||
movementAction: null
|
||||
_stats:
|
||||
systemId: foundryvtt-reve-de-dragon
|
||||
systemVersion: 12.0.22
|
||||
coreVersion: '12.331'
|
||||
coreVersion: '13.350'
|
||||
lastModifiedBy: null
|
||||
compendiumSource: null
|
||||
duplicateSource: null
|
||||
exportSource: null
|
||||
flags: {}
|
||||
_key: '!actors!Igt8XPaL7NQrGYlq'
|
||||
|
||||
|
||||
@@ -30,7 +30,11 @@ items:
|
||||
_stats:
|
||||
systemId: foundryvtt-reve-de-dragon
|
||||
systemVersion: 12.0.22
|
||||
coreVersion: '12.331'
|
||||
coreVersion: '13.350'
|
||||
lastModifiedBy: null
|
||||
compendiumSource: null
|
||||
duplicateSource: null
|
||||
exportSource: null
|
||||
_key: '!actors.items!ppjPZoSKp7j841bp.shsUV8UpU18c0RJK'
|
||||
- _id: yDHZfK4RmwQW4YaW
|
||||
name: Discrétion
|
||||
@@ -59,7 +63,11 @@ items:
|
||||
_stats:
|
||||
systemId: foundryvtt-reve-de-dragon
|
||||
systemVersion: 12.0.22
|
||||
coreVersion: '12.331'
|
||||
coreVersion: '13.350'
|
||||
lastModifiedBy: null
|
||||
compendiumSource: null
|
||||
duplicateSource: null
|
||||
exportSource: null
|
||||
_key: '!actors.items!ppjPZoSKp7j841bp.yDHZfK4RmwQW4YaW'
|
||||
- _id: CYpxxf1uTa78NWR9
|
||||
name: Esquive
|
||||
@@ -88,7 +96,11 @@ items:
|
||||
_stats:
|
||||
systemId: foundryvtt-reve-de-dragon
|
||||
systemVersion: 12.0.22
|
||||
coreVersion: '12.331'
|
||||
coreVersion: '13.350'
|
||||
lastModifiedBy: null
|
||||
compendiumSource: null
|
||||
duplicateSource: null
|
||||
exportSource: null
|
||||
_key: '!actors.items!ppjPZoSKp7j841bp.CYpxxf1uTa78NWR9'
|
||||
- _id: 6DK46pyO0hzEuuUg
|
||||
name: Morsure
|
||||
@@ -117,7 +129,11 @@ items:
|
||||
_stats:
|
||||
systemId: foundryvtt-reve-de-dragon
|
||||
systemVersion: 12.0.22
|
||||
coreVersion: '12.331'
|
||||
coreVersion: '13.350'
|
||||
lastModifiedBy: null
|
||||
compendiumSource: null
|
||||
duplicateSource: null
|
||||
exportSource: null
|
||||
_key: '!actors.items!ppjPZoSKp7j841bp.6DK46pyO0hzEuuUg'
|
||||
- _id: lzEdMrKXbOYrWG5S
|
||||
name: Vigilance
|
||||
@@ -146,7 +162,11 @@ items:
|
||||
_stats:
|
||||
systemId: foundryvtt-reve-de-dragon
|
||||
systemVersion: 12.0.22
|
||||
coreVersion: '12.331'
|
||||
coreVersion: '13.350'
|
||||
lastModifiedBy: null
|
||||
compendiumSource: null
|
||||
duplicateSource: null
|
||||
exportSource: null
|
||||
_key: '!actors.items!ppjPZoSKp7j841bp.lzEdMrKXbOYrWG5S'
|
||||
effects: []
|
||||
folder: null
|
||||
@@ -213,16 +233,16 @@ system:
|
||||
value: -2
|
||||
label: +dom
|
||||
derivee: true
|
||||
vitesse:
|
||||
type: string
|
||||
value: 14/36
|
||||
label: Vitesse
|
||||
derivee: true
|
||||
encombrement:
|
||||
type: number
|
||||
value: 0
|
||||
label: Encombrement
|
||||
derivee: false
|
||||
vitesse:
|
||||
type: string
|
||||
value: 14/36
|
||||
label: Vitesse
|
||||
derivee: true
|
||||
protection:
|
||||
type: number
|
||||
value: -3
|
||||
@@ -327,7 +347,6 @@ prototypeToken:
|
||||
detectionModes: []
|
||||
appendNumber: false
|
||||
prependAdjective: false
|
||||
hexagonalShape: 0
|
||||
occludable:
|
||||
radius: 0
|
||||
ring:
|
||||
@@ -339,9 +358,19 @@ prototypeToken:
|
||||
subject:
|
||||
scale: 1
|
||||
texture: null
|
||||
turnMarker:
|
||||
mode: 1
|
||||
animation: null
|
||||
src: null
|
||||
disposition: false
|
||||
movementAction: null
|
||||
_stats:
|
||||
systemId: foundryvtt-reve-de-dragon
|
||||
systemVersion: 12.0.22
|
||||
coreVersion: '12.331'
|
||||
coreVersion: '13.350'
|
||||
lastModifiedBy: null
|
||||
compendiumSource: null
|
||||
duplicateSource: null
|
||||
exportSource: null
|
||||
flags: {}
|
||||
_key: '!actors!ppjPZoSKp7j841bp'
|
||||
|
||||
|
||||
@@ -30,7 +30,11 @@ items:
|
||||
_stats:
|
||||
systemId: foundryvtt-reve-de-dragon
|
||||
systemVersion: 12.0.22
|
||||
coreVersion: '12.331'
|
||||
coreVersion: '13.350'
|
||||
lastModifiedBy: null
|
||||
compendiumSource: null
|
||||
duplicateSource: null
|
||||
exportSource: null
|
||||
_key: '!actors.items!Q0i8frS62Mn7SW5c.shsUV8UpU18c0RJK'
|
||||
- _id: yDHZfK4RmwQW4YaW
|
||||
name: Discrétion
|
||||
@@ -59,7 +63,11 @@ items:
|
||||
_stats:
|
||||
systemId: foundryvtt-reve-de-dragon
|
||||
systemVersion: 12.0.22
|
||||
coreVersion: '12.331'
|
||||
coreVersion: '13.350'
|
||||
lastModifiedBy: null
|
||||
compendiumSource: null
|
||||
duplicateSource: null
|
||||
exportSource: null
|
||||
_key: '!actors.items!Q0i8frS62Mn7SW5c.yDHZfK4RmwQW4YaW'
|
||||
- _id: CYpxxf1uTa78NWR9
|
||||
name: Esquive
|
||||
@@ -88,7 +96,11 @@ items:
|
||||
_stats:
|
||||
systemId: foundryvtt-reve-de-dragon
|
||||
systemVersion: 12.0.22
|
||||
coreVersion: '12.331'
|
||||
coreVersion: '13.350'
|
||||
lastModifiedBy: null
|
||||
compendiumSource: null
|
||||
duplicateSource: null
|
||||
exportSource: null
|
||||
_key: '!actors.items!Q0i8frS62Mn7SW5c.CYpxxf1uTa78NWR9'
|
||||
- _id: 6DK46pyO0hzEuuUg
|
||||
name: Morsure
|
||||
@@ -117,7 +129,11 @@ items:
|
||||
_stats:
|
||||
systemId: foundryvtt-reve-de-dragon
|
||||
systemVersion: 12.0.22
|
||||
coreVersion: '12.331'
|
||||
coreVersion: '13.350'
|
||||
lastModifiedBy: null
|
||||
compendiumSource: null
|
||||
duplicateSource: null
|
||||
exportSource: null
|
||||
_key: '!actors.items!Q0i8frS62Mn7SW5c.6DK46pyO0hzEuuUg'
|
||||
- _id: lzEdMrKXbOYrWG5S
|
||||
name: Vigilance
|
||||
@@ -146,7 +162,11 @@ items:
|
||||
_stats:
|
||||
systemId: foundryvtt-reve-de-dragon
|
||||
systemVersion: 12.0.22
|
||||
coreVersion: '12.331'
|
||||
coreVersion: '13.350'
|
||||
lastModifiedBy: null
|
||||
compendiumSource: null
|
||||
duplicateSource: null
|
||||
exportSource: null
|
||||
_key: '!actors.items!Q0i8frS62Mn7SW5c.lzEdMrKXbOYrWG5S'
|
||||
effects: []
|
||||
folder: null
|
||||
@@ -213,16 +233,16 @@ system:
|
||||
value: '+4'
|
||||
label: +dom
|
||||
derivee: true
|
||||
vitesse:
|
||||
type: string
|
||||
value: 10/24
|
||||
label: Vitesse
|
||||
derivee: true
|
||||
encombrement:
|
||||
type: number
|
||||
value: 0
|
||||
label: Encombrement
|
||||
derivee: false
|
||||
vitesse:
|
||||
type: string
|
||||
value: 10/24
|
||||
label: Vitesse
|
||||
derivee: true
|
||||
protection:
|
||||
type: number
|
||||
value: 2
|
||||
@@ -317,7 +337,6 @@ prototypeToken:
|
||||
detectionModes: []
|
||||
appendNumber: false
|
||||
prependAdjective: false
|
||||
hexagonalShape: 0
|
||||
occludable:
|
||||
radius: 0
|
||||
ring:
|
||||
@@ -329,9 +348,19 @@ prototypeToken:
|
||||
subject:
|
||||
scale: 1
|
||||
texture: null
|
||||
turnMarker:
|
||||
mode: 1
|
||||
animation: null
|
||||
src: null
|
||||
disposition: false
|
||||
movementAction: null
|
||||
_stats:
|
||||
systemId: foundryvtt-reve-de-dragon
|
||||
systemVersion: 12.0.22
|
||||
coreVersion: '12.331'
|
||||
coreVersion: '13.350'
|
||||
lastModifiedBy: null
|
||||
compendiumSource: null
|
||||
duplicateSource: null
|
||||
exportSource: null
|
||||
flags: {}
|
||||
_key: '!actors!Q0i8frS62Mn7SW5c'
|
||||
|
||||
|
||||
@@ -30,7 +30,11 @@ items:
|
||||
_stats:
|
||||
systemId: foundryvtt-reve-de-dragon
|
||||
systemVersion: 12.0.22
|
||||
coreVersion: '12.331'
|
||||
coreVersion: '13.350'
|
||||
lastModifiedBy: null
|
||||
compendiumSource: null
|
||||
duplicateSource: null
|
||||
exportSource: null
|
||||
_key: '!actors.items!ZLROmHLm6G9pElkk.shsUV8UpU18c0RJK'
|
||||
- _id: CYpxxf1uTa78NWR9
|
||||
name: Esquive
|
||||
@@ -59,7 +63,11 @@ items:
|
||||
_stats:
|
||||
systemId: foundryvtt-reve-de-dragon
|
||||
systemVersion: 12.0.22
|
||||
coreVersion: '12.331'
|
||||
coreVersion: '13.350'
|
||||
lastModifiedBy: null
|
||||
compendiumSource: null
|
||||
duplicateSource: null
|
||||
exportSource: null
|
||||
_key: '!actors.items!ZLROmHLm6G9pElkk.CYpxxf1uTa78NWR9'
|
||||
- _id: BjqRrGtHtTzuNpZB
|
||||
name: Griffes et Crocs
|
||||
@@ -88,7 +96,11 @@ items:
|
||||
_stats:
|
||||
systemId: foundryvtt-reve-de-dragon
|
||||
systemVersion: 12.0.22
|
||||
coreVersion: '12.331'
|
||||
coreVersion: '13.350'
|
||||
lastModifiedBy: null
|
||||
compendiumSource: null
|
||||
duplicateSource: null
|
||||
exportSource: null
|
||||
_key: '!actors.items!ZLROmHLm6G9pElkk.BjqRrGtHtTzuNpZB'
|
||||
- _id: lzEdMrKXbOYrWG5S
|
||||
name: Vigilance
|
||||
@@ -117,7 +129,11 @@ items:
|
||||
_stats:
|
||||
systemId: foundryvtt-reve-de-dragon
|
||||
systemVersion: 12.0.22
|
||||
coreVersion: '12.331'
|
||||
coreVersion: '13.350'
|
||||
lastModifiedBy: null
|
||||
compendiumSource: null
|
||||
duplicateSource: null
|
||||
exportSource: null
|
||||
_key: '!actors.items!ZLROmHLm6G9pElkk.lzEdMrKXbOYrWG5S'
|
||||
effects: []
|
||||
folder: null
|
||||
@@ -184,16 +200,16 @@ system:
|
||||
value: '+9'
|
||||
label: +dom
|
||||
derivee: true
|
||||
vitesse:
|
||||
type: string
|
||||
value: 16/60
|
||||
label: Vitesse
|
||||
derivee: true
|
||||
encombrement:
|
||||
type: number
|
||||
value: 0
|
||||
label: Encombrement
|
||||
derivee: false
|
||||
vitesse:
|
||||
type: string
|
||||
value: 16/60
|
||||
label: Vitesse
|
||||
derivee: true
|
||||
protection:
|
||||
type: number
|
||||
value: 10
|
||||
@@ -304,7 +320,6 @@ prototypeToken:
|
||||
detectionModes: []
|
||||
appendNumber: false
|
||||
prependAdjective: false
|
||||
hexagonalShape: 0
|
||||
occludable:
|
||||
radius: 0
|
||||
ring:
|
||||
@@ -316,9 +331,19 @@ prototypeToken:
|
||||
subject:
|
||||
scale: 1
|
||||
texture: null
|
||||
turnMarker:
|
||||
mode: 1
|
||||
animation: null
|
||||
src: null
|
||||
disposition: false
|
||||
movementAction: null
|
||||
_stats:
|
||||
systemId: foundryvtt-reve-de-dragon
|
||||
systemVersion: 12.0.22
|
||||
coreVersion: '12.331'
|
||||
coreVersion: '13.350'
|
||||
lastModifiedBy: null
|
||||
compendiumSource: null
|
||||
duplicateSource: null
|
||||
exportSource: null
|
||||
flags: {}
|
||||
_key: '!actors!ZLROmHLm6G9pElkk'
|
||||
|
||||
|
||||
@@ -30,7 +30,11 @@ items:
|
||||
_stats:
|
||||
systemId: foundryvtt-reve-de-dragon
|
||||
systemVersion: 12.0.22
|
||||
coreVersion: '12.331'
|
||||
coreVersion: '13.350'
|
||||
lastModifiedBy: null
|
||||
compendiumSource: null
|
||||
duplicateSource: null
|
||||
exportSource: null
|
||||
_key: '!actors.items!zMvyRrp10dkfcS43.LWQHz5ymNBzh6ZEr'
|
||||
- _id: shsUV8UpU18c0RJK
|
||||
name: Course
|
||||
@@ -59,7 +63,11 @@ items:
|
||||
_stats:
|
||||
systemId: foundryvtt-reve-de-dragon
|
||||
systemVersion: 12.0.22
|
||||
coreVersion: '12.331'
|
||||
coreVersion: '13.350'
|
||||
lastModifiedBy: null
|
||||
compendiumSource: null
|
||||
duplicateSource: null
|
||||
exportSource: null
|
||||
_key: '!actors.items!zMvyRrp10dkfcS43.shsUV8UpU18c0RJK'
|
||||
- _id: CYpxxf1uTa78NWR9
|
||||
name: Esquive
|
||||
@@ -88,7 +96,11 @@ items:
|
||||
_stats:
|
||||
systemId: foundryvtt-reve-de-dragon
|
||||
systemVersion: 12.0.22
|
||||
coreVersion: '12.331'
|
||||
coreVersion: '13.350'
|
||||
lastModifiedBy: null
|
||||
compendiumSource: null
|
||||
duplicateSource: null
|
||||
exportSource: null
|
||||
_key: '!actors.items!zMvyRrp10dkfcS43.CYpxxf1uTa78NWR9'
|
||||
- _id: lzEdMrKXbOYrWG5S
|
||||
name: Vigilance
|
||||
@@ -117,7 +129,11 @@ items:
|
||||
_stats:
|
||||
systemId: foundryvtt-reve-de-dragon
|
||||
systemVersion: 12.0.22
|
||||
coreVersion: '12.331'
|
||||
coreVersion: '13.350'
|
||||
lastModifiedBy: null
|
||||
compendiumSource: null
|
||||
duplicateSource: null
|
||||
exportSource: null
|
||||
_key: '!actors.items!zMvyRrp10dkfcS43.lzEdMrKXbOYrWG5S'
|
||||
- _id: iwQo9KoK5tfIN7sw
|
||||
name: Saut
|
||||
@@ -145,7 +161,12 @@ items:
|
||||
_stats:
|
||||
systemId: foundryvtt-reve-de-dragon
|
||||
systemVersion: 12.0.22
|
||||
coreVersion: '12.331'
|
||||
coreVersion: '13.350'
|
||||
lastModifiedBy: null
|
||||
compendiumSource: null
|
||||
duplicateSource: null
|
||||
exportSource: null
|
||||
flags: {}
|
||||
_key: '!actors.items!zMvyRrp10dkfcS43.iwQo9KoK5tfIN7sw'
|
||||
effects: []
|
||||
folder: null
|
||||
@@ -212,16 +233,16 @@ system:
|
||||
value: '+4'
|
||||
label: +dom
|
||||
derivee: true
|
||||
vitesse:
|
||||
type: string
|
||||
value: 14/54
|
||||
label: Vitesse
|
||||
derivee: true
|
||||
encombrement:
|
||||
type: number
|
||||
value: 0
|
||||
label: Encombrement
|
||||
derivee: false
|
||||
vitesse:
|
||||
type: string
|
||||
value: 14/54
|
||||
label: Vitesse
|
||||
derivee: true
|
||||
protection:
|
||||
type: number
|
||||
value: 1
|
||||
@@ -319,7 +340,6 @@ prototypeToken:
|
||||
detectionModes: []
|
||||
appendNumber: false
|
||||
prependAdjective: false
|
||||
hexagonalShape: 0
|
||||
occludable:
|
||||
radius: 0
|
||||
ring:
|
||||
@@ -331,9 +351,19 @@ prototypeToken:
|
||||
subject:
|
||||
scale: 1
|
||||
texture: null
|
||||
turnMarker:
|
||||
mode: 1
|
||||
animation: null
|
||||
src: null
|
||||
disposition: false
|
||||
movementAction: null
|
||||
_stats:
|
||||
systemId: foundryvtt-reve-de-dragon
|
||||
systemVersion: 12.0.22
|
||||
coreVersion: '12.331'
|
||||
coreVersion: '13.350'
|
||||
lastModifiedBy: null
|
||||
compendiumSource: null
|
||||
duplicateSource: null
|
||||
exportSource: null
|
||||
flags: {}
|
||||
_key: '!actors!zMvyRrp10dkfcS43'
|
||||
|
||||
|
||||
@@ -30,7 +30,11 @@ items:
|
||||
_stats:
|
||||
systemId: foundryvtt-reve-de-dragon
|
||||
systemVersion: 12.0.22
|
||||
coreVersion: '12.331'
|
||||
coreVersion: '13.350'
|
||||
lastModifiedBy: null
|
||||
compendiumSource: null
|
||||
duplicateSource: null
|
||||
exportSource: null
|
||||
_key: '!actors.items!twCuK1GjVBTUFGXF.shsUV8UpU18c0RJK'
|
||||
- _id: 4GmpkphbsmQjvVVK
|
||||
name: Escalade
|
||||
@@ -59,7 +63,11 @@ items:
|
||||
_stats:
|
||||
systemId: foundryvtt-reve-de-dragon
|
||||
systemVersion: 12.0.22
|
||||
coreVersion: '12.331'
|
||||
coreVersion: '13.350'
|
||||
lastModifiedBy: null
|
||||
compendiumSource: null
|
||||
duplicateSource: null
|
||||
exportSource: null
|
||||
_key: '!actors.items!twCuK1GjVBTUFGXF.4GmpkphbsmQjvVVK'
|
||||
- _id: CYpxxf1uTa78NWR9
|
||||
name: Esquive
|
||||
@@ -88,7 +96,11 @@ items:
|
||||
_stats:
|
||||
systemId: foundryvtt-reve-de-dragon
|
||||
systemVersion: 12.0.22
|
||||
coreVersion: '12.331'
|
||||
coreVersion: '13.350'
|
||||
lastModifiedBy: null
|
||||
compendiumSource: null
|
||||
duplicateSource: null
|
||||
exportSource: null
|
||||
_key: '!actors.items!twCuK1GjVBTUFGXF.CYpxxf1uTa78NWR9'
|
||||
- _id: BjqRrGtHtTzuNpZB
|
||||
name: Griffes et Crocs
|
||||
@@ -117,7 +129,11 @@ items:
|
||||
_stats:
|
||||
systemId: foundryvtt-reve-de-dragon
|
||||
systemVersion: 12.0.22
|
||||
coreVersion: '12.331'
|
||||
coreVersion: '13.350'
|
||||
lastModifiedBy: null
|
||||
compendiumSource: null
|
||||
duplicateSource: null
|
||||
exportSource: null
|
||||
_key: '!actors.items!twCuK1GjVBTUFGXF.BjqRrGtHtTzuNpZB'
|
||||
- _id: lzEdMrKXbOYrWG5S
|
||||
name: Vigilance
|
||||
@@ -146,7 +162,11 @@ items:
|
||||
_stats:
|
||||
systemId: foundryvtt-reve-de-dragon
|
||||
systemVersion: 12.0.22
|
||||
coreVersion: '12.331'
|
||||
coreVersion: '13.350'
|
||||
lastModifiedBy: null
|
||||
compendiumSource: null
|
||||
duplicateSource: null
|
||||
exportSource: null
|
||||
_key: '!actors.items!twCuK1GjVBTUFGXF.lzEdMrKXbOYrWG5S'
|
||||
- _id: plIWZXJT0XGKJ5ar
|
||||
name: Saut
|
||||
@@ -174,7 +194,12 @@ items:
|
||||
_stats:
|
||||
systemId: foundryvtt-reve-de-dragon
|
||||
systemVersion: 12.0.22
|
||||
coreVersion: '12.331'
|
||||
coreVersion: '13.350'
|
||||
lastModifiedBy: null
|
||||
compendiumSource: null
|
||||
duplicateSource: null
|
||||
exportSource: null
|
||||
flags: {}
|
||||
_key: '!actors.items!twCuK1GjVBTUFGXF.plIWZXJT0XGKJ5ar'
|
||||
effects: []
|
||||
folder: null
|
||||
@@ -241,16 +266,16 @@ system:
|
||||
value: '+0'
|
||||
label: +dom
|
||||
derivee: true
|
||||
vitesse:
|
||||
type: string
|
||||
value: 12/24
|
||||
label: Vitesse
|
||||
derivee: true
|
||||
encombrement:
|
||||
type: number
|
||||
value: 0
|
||||
label: Encombrement
|
||||
derivee: false
|
||||
vitesse:
|
||||
type: string
|
||||
value: 12/24
|
||||
label: Vitesse
|
||||
derivee: true
|
||||
protection:
|
||||
type: number
|
||||
value: 0
|
||||
@@ -300,9 +325,8 @@ system:
|
||||
déchirure. Celle-là se contente de chercher à fuir en
|
||||
cas d’agression, ou attaque toutes griffes dehors si elle se sent
|
||||
acculée. Pour la distinguer (visuellement) de la rieuse,
|
||||
réussir @roll[VUE/Zoologie/-5]. Les caractéristiques de
|
||||
combat indiquées ne s’appliquent qu’à la
|
||||
pointue.</p>
|
||||
réussir @roll[VUE/Zoologie/-5]. Les caractéristiques de combat
|
||||
indiquées ne s’appliquent qu’à la pointue.</p>
|
||||
race: ''
|
||||
notesmj: ''
|
||||
ownership:
|
||||
@@ -371,7 +395,6 @@ prototypeToken:
|
||||
detectionModes: []
|
||||
appendNumber: false
|
||||
prependAdjective: false
|
||||
hexagonalShape: 0
|
||||
occludable:
|
||||
radius: 0
|
||||
ring:
|
||||
@@ -383,9 +406,19 @@ prototypeToken:
|
||||
subject:
|
||||
scale: 1
|
||||
texture: null
|
||||
turnMarker:
|
||||
mode: 1
|
||||
animation: null
|
||||
src: null
|
||||
disposition: false
|
||||
movementAction: null
|
||||
_stats:
|
||||
systemId: foundryvtt-reve-de-dragon
|
||||
systemVersion: 12.0.22
|
||||
coreVersion: '12.331'
|
||||
coreVersion: '13.350'
|
||||
lastModifiedBy: null
|
||||
compendiumSource: null
|
||||
duplicateSource: null
|
||||
exportSource: null
|
||||
flags: {}
|
||||
_key: '!actors!twCuK1GjVBTUFGXF'
|
||||
|
||||
|
||||
@@ -31,7 +31,11 @@ items:
|
||||
_stats:
|
||||
systemId: foundryvtt-reve-de-dragon
|
||||
systemVersion: 12.0.22
|
||||
coreVersion: '12.331'
|
||||
coreVersion: '13.350'
|
||||
lastModifiedBy: null
|
||||
compendiumSource: null
|
||||
duplicateSource: null
|
||||
exportSource: null
|
||||
_key: '!actors.items!LqYHIJf9LVGxRT7S.shsUV8UpU18c0RJK'
|
||||
- _id: CYpxxf1uTa78NWR9
|
||||
name: Esquive
|
||||
@@ -60,7 +64,11 @@ items:
|
||||
_stats:
|
||||
systemId: foundryvtt-reve-de-dragon
|
||||
systemVersion: 12.0.22
|
||||
coreVersion: '12.331'
|
||||
coreVersion: '13.350'
|
||||
lastModifiedBy: null
|
||||
compendiumSource: null
|
||||
duplicateSource: null
|
||||
exportSource: null
|
||||
_key: '!actors.items!LqYHIJf9LVGxRT7S.CYpxxf1uTa78NWR9'
|
||||
- _id: 6DK46pyO0hzEuuUg
|
||||
name: Morsure
|
||||
@@ -89,7 +97,11 @@ items:
|
||||
_stats:
|
||||
systemId: foundryvtt-reve-de-dragon
|
||||
systemVersion: 12.0.22
|
||||
coreVersion: '12.331'
|
||||
coreVersion: '13.350'
|
||||
lastModifiedBy: null
|
||||
compendiumSource: null
|
||||
duplicateSource: null
|
||||
exportSource: null
|
||||
_key: '!actors.items!LqYHIJf9LVGxRT7S.6DK46pyO0hzEuuUg'
|
||||
- _id: lzEdMrKXbOYrWG5S
|
||||
name: Vigilance
|
||||
@@ -118,7 +130,11 @@ items:
|
||||
_stats:
|
||||
systemId: foundryvtt-reve-de-dragon
|
||||
systemVersion: 12.0.22
|
||||
coreVersion: '12.331'
|
||||
coreVersion: '13.350'
|
||||
lastModifiedBy: null
|
||||
compendiumSource: null
|
||||
duplicateSource: null
|
||||
exportSource: null
|
||||
_key: '!actors.items!LqYHIJf9LVGxRT7S.lzEdMrKXbOYrWG5S'
|
||||
- _id: 3MgAaUHeKGBcbyr5
|
||||
name: Coup de pied
|
||||
@@ -146,7 +162,12 @@ items:
|
||||
_stats:
|
||||
systemId: foundryvtt-reve-de-dragon
|
||||
systemVersion: 12.0.22
|
||||
coreVersion: '12.331'
|
||||
coreVersion: '13.350'
|
||||
lastModifiedBy: null
|
||||
compendiumSource: null
|
||||
duplicateSource: null
|
||||
exportSource: null
|
||||
flags: {}
|
||||
_key: '!actors.items!LqYHIJf9LVGxRT7S.3MgAaUHeKGBcbyr5'
|
||||
effects: []
|
||||
system:
|
||||
@@ -211,16 +232,16 @@ system:
|
||||
value: '+4'
|
||||
label: +dom
|
||||
derivee: true
|
||||
vitesse:
|
||||
type: string
|
||||
value: 12/40
|
||||
label: Vitesse
|
||||
derivee: true
|
||||
encombrement:
|
||||
type: number
|
||||
value: 18
|
||||
label: Encombrement
|
||||
derivee: false
|
||||
vitesse:
|
||||
type: string
|
||||
value: 12/40
|
||||
label: Vitesse
|
||||
derivee: true
|
||||
protection:
|
||||
type: number
|
||||
value: 1
|
||||
@@ -324,7 +345,6 @@ prototypeToken:
|
||||
detectionModes: []
|
||||
appendNumber: false
|
||||
prependAdjective: false
|
||||
hexagonalShape: 0
|
||||
occludable:
|
||||
radius: 0
|
||||
ring:
|
||||
@@ -336,10 +356,20 @@ prototypeToken:
|
||||
subject:
|
||||
scale: 1
|
||||
texture: null
|
||||
turnMarker:
|
||||
mode: 1
|
||||
animation: null
|
||||
src: null
|
||||
disposition: false
|
||||
movementAction: null
|
||||
folder: null
|
||||
_stats:
|
||||
systemId: foundryvtt-reve-de-dragon
|
||||
systemVersion: 12.0.22
|
||||
coreVersion: '12.331'
|
||||
coreVersion: '13.350'
|
||||
lastModifiedBy: null
|
||||
compendiumSource: null
|
||||
duplicateSource: null
|
||||
exportSource: null
|
||||
flags: {}
|
||||
_key: '!actors!LqYHIJf9LVGxRT7S'
|
||||
|
||||
|
||||
@@ -30,7 +30,11 @@ items:
|
||||
_stats:
|
||||
systemId: foundryvtt-reve-de-dragon
|
||||
systemVersion: 12.0.22
|
||||
coreVersion: '12.331'
|
||||
coreVersion: '13.350'
|
||||
lastModifiedBy: null
|
||||
compendiumSource: null
|
||||
duplicateSource: null
|
||||
exportSource: null
|
||||
_key: '!actors.items!76I21ASdWYBqsg8I.shsUV8UpU18c0RJK'
|
||||
- _id: CYpxxf1uTa78NWR9
|
||||
name: Esquive
|
||||
@@ -59,7 +63,11 @@ items:
|
||||
_stats:
|
||||
systemId: foundryvtt-reve-de-dragon
|
||||
systemVersion: 12.0.22
|
||||
coreVersion: '12.331'
|
||||
coreVersion: '13.350'
|
||||
lastModifiedBy: null
|
||||
compendiumSource: null
|
||||
duplicateSource: null
|
||||
exportSource: null
|
||||
_key: '!actors.items!76I21ASdWYBqsg8I.CYpxxf1uTa78NWR9'
|
||||
- _id: ndNshntOYb1JFNqi
|
||||
name: Ruade
|
||||
@@ -88,7 +96,11 @@ items:
|
||||
_stats:
|
||||
systemId: foundryvtt-reve-de-dragon
|
||||
systemVersion: 12.0.22
|
||||
coreVersion: '12.331'
|
||||
coreVersion: '13.350'
|
||||
lastModifiedBy: null
|
||||
compendiumSource: null
|
||||
duplicateSource: null
|
||||
exportSource: null
|
||||
_key: '!actors.items!76I21ASdWYBqsg8I.ndNshntOYb1JFNqi'
|
||||
- _id: lzEdMrKXbOYrWG5S
|
||||
name: Vigilance
|
||||
@@ -117,7 +129,11 @@ items:
|
||||
_stats:
|
||||
systemId: foundryvtt-reve-de-dragon
|
||||
systemVersion: 12.0.22
|
||||
coreVersion: '12.331'
|
||||
coreVersion: '13.350'
|
||||
lastModifiedBy: null
|
||||
compendiumSource: null
|
||||
duplicateSource: null
|
||||
exportSource: null
|
||||
_key: '!actors.items!76I21ASdWYBqsg8I.lzEdMrKXbOYrWG5S'
|
||||
effects: []
|
||||
folder: null
|
||||
@@ -184,16 +200,16 @@ system:
|
||||
value: '+5'
|
||||
label: +dom
|
||||
derivee: true
|
||||
vitesse:
|
||||
type: string
|
||||
value: 14/58
|
||||
label: Vitesse
|
||||
derivee: true
|
||||
encombrement:
|
||||
type: number
|
||||
value: 22
|
||||
label: Encombrement
|
||||
derivee: false
|
||||
vitesse:
|
||||
type: string
|
||||
value: 14/58
|
||||
label: Vitesse
|
||||
derivee: true
|
||||
protection:
|
||||
type: number
|
||||
value: 2
|
||||
@@ -287,7 +303,6 @@ prototypeToken:
|
||||
detectionModes: []
|
||||
appendNumber: false
|
||||
prependAdjective: false
|
||||
hexagonalShape: 0
|
||||
occludable:
|
||||
radius: 0
|
||||
ring:
|
||||
@@ -299,9 +314,19 @@ prototypeToken:
|
||||
subject:
|
||||
scale: 1
|
||||
texture: null
|
||||
turnMarker:
|
||||
mode: 1
|
||||
animation: null
|
||||
src: null
|
||||
disposition: false
|
||||
movementAction: null
|
||||
_stats:
|
||||
systemId: foundryvtt-reve-de-dragon
|
||||
systemVersion: 12.0.22
|
||||
coreVersion: '12.331'
|
||||
coreVersion: '13.350'
|
||||
lastModifiedBy: null
|
||||
compendiumSource: null
|
||||
duplicateSource: null
|
||||
exportSource: null
|
||||
flags: {}
|
||||
_key: '!actors!76I21ASdWYBqsg8I'
|
||||
|
||||
|
||||
@@ -31,7 +31,11 @@ items:
|
||||
_stats:
|
||||
systemId: foundryvtt-reve-de-dragon
|
||||
systemVersion: 12.0.22
|
||||
coreVersion: '12.331'
|
||||
coreVersion: '13.350'
|
||||
lastModifiedBy: null
|
||||
compendiumSource: null
|
||||
duplicateSource: null
|
||||
exportSource: null
|
||||
_key: '!actors.items!XuDpG772k6PAQ5LJ.shsUV8UpU18c0RJK'
|
||||
- _id: CYpxxf1uTa78NWR9
|
||||
name: Esquive
|
||||
@@ -60,7 +64,11 @@ items:
|
||||
_stats:
|
||||
systemId: foundryvtt-reve-de-dragon
|
||||
systemVersion: 12.0.22
|
||||
coreVersion: '12.331'
|
||||
coreVersion: '13.350'
|
||||
lastModifiedBy: null
|
||||
compendiumSource: null
|
||||
duplicateSource: null
|
||||
exportSource: null
|
||||
_key: '!actors.items!XuDpG772k6PAQ5LJ.CYpxxf1uTa78NWR9'
|
||||
- _id: 6DK46pyO0hzEuuUg
|
||||
name: Morsure
|
||||
@@ -89,7 +97,11 @@ items:
|
||||
_stats:
|
||||
systemId: foundryvtt-reve-de-dragon
|
||||
systemVersion: 12.0.22
|
||||
coreVersion: '12.331'
|
||||
coreVersion: '13.350'
|
||||
lastModifiedBy: null
|
||||
compendiumSource: null
|
||||
duplicateSource: null
|
||||
exportSource: null
|
||||
_key: '!actors.items!XuDpG772k6PAQ5LJ.6DK46pyO0hzEuuUg'
|
||||
- _id: lzEdMrKXbOYrWG5S
|
||||
name: Vigilance
|
||||
@@ -118,7 +130,11 @@ items:
|
||||
_stats:
|
||||
systemId: foundryvtt-reve-de-dragon
|
||||
systemVersion: 12.0.22
|
||||
coreVersion: '12.331'
|
||||
coreVersion: '13.350'
|
||||
lastModifiedBy: null
|
||||
compendiumSource: null
|
||||
duplicateSource: null
|
||||
exportSource: null
|
||||
_key: '!actors.items!XuDpG772k6PAQ5LJ.lzEdMrKXbOYrWG5S'
|
||||
- _id: Rtt7bny59v2jBhuO
|
||||
name: Saut
|
||||
@@ -146,7 +162,12 @@ items:
|
||||
_stats:
|
||||
systemId: foundryvtt-reve-de-dragon
|
||||
systemVersion: 12.0.22
|
||||
coreVersion: '12.331'
|
||||
coreVersion: '13.350'
|
||||
lastModifiedBy: null
|
||||
compendiumSource: null
|
||||
duplicateSource: null
|
||||
exportSource: null
|
||||
flags: {}
|
||||
_key: '!actors.items!XuDpG772k6PAQ5LJ.Rtt7bny59v2jBhuO'
|
||||
effects: []
|
||||
system:
|
||||
@@ -211,16 +232,16 @@ system:
|
||||
value: '+0'
|
||||
label: +dom
|
||||
derivee: true
|
||||
vitesse:
|
||||
type: string
|
||||
value: 12/36
|
||||
label: Vitesse
|
||||
derivee: true
|
||||
encombrement:
|
||||
type: number
|
||||
value: 0
|
||||
label: Encombrement
|
||||
derivee: false
|
||||
vitesse:
|
||||
type: string
|
||||
value: 12/36
|
||||
label: Vitesse
|
||||
derivee: true
|
||||
protection:
|
||||
type: number
|
||||
value: -1
|
||||
@@ -313,7 +334,6 @@ prototypeToken:
|
||||
detectionModes: []
|
||||
appendNumber: false
|
||||
prependAdjective: false
|
||||
hexagonalShape: 0
|
||||
occludable:
|
||||
radius: 0
|
||||
ring:
|
||||
@@ -325,10 +345,20 @@ prototypeToken:
|
||||
subject:
|
||||
scale: 1
|
||||
texture: null
|
||||
turnMarker:
|
||||
mode: 1
|
||||
animation: null
|
||||
src: null
|
||||
disposition: false
|
||||
movementAction: null
|
||||
folder: null
|
||||
_stats:
|
||||
systemId: foundryvtt-reve-de-dragon
|
||||
systemVersion: 12.0.22
|
||||
coreVersion: '12.331'
|
||||
coreVersion: '13.350'
|
||||
lastModifiedBy: null
|
||||
compendiumSource: null
|
||||
duplicateSource: null
|
||||
exportSource: null
|
||||
flags: {}
|
||||
_key: '!actors!XuDpG772k6PAQ5LJ'
|
||||
|
||||
|
||||
@@ -30,7 +30,11 @@ items:
|
||||
_stats:
|
||||
systemId: foundryvtt-reve-de-dragon
|
||||
systemVersion: 12.0.22
|
||||
coreVersion: '12.331'
|
||||
coreVersion: '13.350'
|
||||
lastModifiedBy: null
|
||||
compendiumSource: null
|
||||
duplicateSource: null
|
||||
exportSource: null
|
||||
_key: '!actors.items!yL1XStIKWxGnhKvR.shsUV8UpU18c0RJK'
|
||||
- _id: CYpxxf1uTa78NWR9
|
||||
name: Esquive
|
||||
@@ -59,7 +63,11 @@ items:
|
||||
_stats:
|
||||
systemId: foundryvtt-reve-de-dragon
|
||||
systemVersion: 12.0.22
|
||||
coreVersion: '12.331'
|
||||
coreVersion: '13.350'
|
||||
lastModifiedBy: null
|
||||
compendiumSource: null
|
||||
duplicateSource: null
|
||||
exportSource: null
|
||||
_key: '!actors.items!yL1XStIKWxGnhKvR.CYpxxf1uTa78NWR9'
|
||||
- _id: XgfRxSj8Ty1d3JFM
|
||||
name: Mandibules
|
||||
@@ -88,7 +96,11 @@ items:
|
||||
_stats:
|
||||
systemId: foundryvtt-reve-de-dragon
|
||||
systemVersion: 12.0.22
|
||||
coreVersion: '12.331'
|
||||
coreVersion: '13.350'
|
||||
lastModifiedBy: null
|
||||
compendiumSource: null
|
||||
duplicateSource: null
|
||||
exportSource: null
|
||||
_key: '!actors.items!yL1XStIKWxGnhKvR.XgfRxSj8Ty1d3JFM'
|
||||
- _id: lzEdMrKXbOYrWG5S
|
||||
name: Vigilance
|
||||
@@ -117,7 +129,11 @@ items:
|
||||
_stats:
|
||||
systemId: foundryvtt-reve-de-dragon
|
||||
systemVersion: 12.0.22
|
||||
coreVersion: '12.331'
|
||||
coreVersion: '13.350'
|
||||
lastModifiedBy: null
|
||||
compendiumSource: null
|
||||
duplicateSource: null
|
||||
exportSource: null
|
||||
_key: '!actors.items!yL1XStIKWxGnhKvR.lzEdMrKXbOYrWG5S'
|
||||
effects: []
|
||||
folder: null
|
||||
@@ -288,7 +304,6 @@ prototypeToken:
|
||||
detectionModes: []
|
||||
appendNumber: false
|
||||
prependAdjective: false
|
||||
hexagonalShape: 0
|
||||
occludable:
|
||||
radius: 0
|
||||
ring:
|
||||
@@ -300,15 +315,21 @@ prototypeToken:
|
||||
subject:
|
||||
scale: 1
|
||||
texture: null
|
||||
turnMarker:
|
||||
mode: 1
|
||||
animation: null
|
||||
src: null
|
||||
disposition: false
|
||||
movementAction: null
|
||||
_stats:
|
||||
systemId: foundryvtt-reve-de-dragon
|
||||
systemVersion: 12.0.32
|
||||
coreVersion: '12.331'
|
||||
coreVersion: '13.350'
|
||||
createdTime: null
|
||||
modifiedTime: 1736537299708
|
||||
lastModifiedBy: Hp9ImM4o9YRTSdfu
|
||||
compendiumSource: null
|
||||
duplicateSource: null
|
||||
exportSource: null
|
||||
flags: {}
|
||||
_key: '!actors!yL1XStIKWxGnhKvR'
|
||||
|
||||
|
||||
@@ -30,7 +30,11 @@ items:
|
||||
_stats:
|
||||
systemId: foundryvtt-reve-de-dragon
|
||||
systemVersion: 12.0.22
|
||||
coreVersion: '12.331'
|
||||
coreVersion: '13.350'
|
||||
lastModifiedBy: null
|
||||
compendiumSource: null
|
||||
duplicateSource: null
|
||||
exportSource: null
|
||||
_key: '!actors.items!VsEw24DEekBbU69Z.LWQHz5ymNBzh6ZEr'
|
||||
- _id: shsUV8UpU18c0RJK
|
||||
name: Course
|
||||
@@ -59,7 +63,11 @@ items:
|
||||
_stats:
|
||||
systemId: foundryvtt-reve-de-dragon
|
||||
systemVersion: 12.0.22
|
||||
coreVersion: '12.331'
|
||||
coreVersion: '13.350'
|
||||
lastModifiedBy: null
|
||||
compendiumSource: null
|
||||
duplicateSource: null
|
||||
exportSource: null
|
||||
_key: '!actors.items!VsEw24DEekBbU69Z.shsUV8UpU18c0RJK'
|
||||
- _id: yDHZfK4RmwQW4YaW
|
||||
name: Discrétion
|
||||
@@ -88,7 +96,11 @@ items:
|
||||
_stats:
|
||||
systemId: foundryvtt-reve-de-dragon
|
||||
systemVersion: 12.0.22
|
||||
coreVersion: '12.331'
|
||||
coreVersion: '13.350'
|
||||
lastModifiedBy: null
|
||||
compendiumSource: null
|
||||
duplicateSource: null
|
||||
exportSource: null
|
||||
_key: '!actors.items!VsEw24DEekBbU69Z.yDHZfK4RmwQW4YaW'
|
||||
- _id: CYpxxf1uTa78NWR9
|
||||
name: Esquive
|
||||
@@ -117,7 +129,11 @@ items:
|
||||
_stats:
|
||||
systemId: foundryvtt-reve-de-dragon
|
||||
systemVersion: 12.0.22
|
||||
coreVersion: '12.331'
|
||||
coreVersion: '13.350'
|
||||
lastModifiedBy: null
|
||||
compendiumSource: null
|
||||
duplicateSource: null
|
||||
exportSource: null
|
||||
_key: '!actors.items!VsEw24DEekBbU69Z.CYpxxf1uTa78NWR9'
|
||||
- _id: lzEdMrKXbOYrWG5S
|
||||
name: Vigilance
|
||||
@@ -146,7 +162,11 @@ items:
|
||||
_stats:
|
||||
systemId: foundryvtt-reve-de-dragon
|
||||
systemVersion: 12.0.22
|
||||
coreVersion: '12.331'
|
||||
coreVersion: '13.350'
|
||||
lastModifiedBy: null
|
||||
compendiumSource: null
|
||||
duplicateSource: null
|
||||
exportSource: null
|
||||
_key: '!actors.items!VsEw24DEekBbU69Z.lzEdMrKXbOYrWG5S'
|
||||
effects: []
|
||||
folder: null
|
||||
@@ -213,16 +233,16 @@ system:
|
||||
value: '+4'
|
||||
label: +dom
|
||||
derivee: true
|
||||
vitesse:
|
||||
type: string
|
||||
value: 12/36
|
||||
label: Vitesse
|
||||
derivee: true
|
||||
encombrement:
|
||||
type: number
|
||||
value: 0
|
||||
label: Encombrement
|
||||
derivee: false
|
||||
vitesse:
|
||||
type: string
|
||||
value: 12/36
|
||||
label: Vitesse
|
||||
derivee: true
|
||||
protection:
|
||||
type: number
|
||||
value: 3
|
||||
@@ -323,7 +343,6 @@ prototypeToken:
|
||||
detectionModes: []
|
||||
appendNumber: false
|
||||
prependAdjective: false
|
||||
hexagonalShape: 0
|
||||
occludable:
|
||||
radius: 0
|
||||
ring:
|
||||
@@ -335,9 +354,19 @@ prototypeToken:
|
||||
subject:
|
||||
scale: 1
|
||||
texture: null
|
||||
turnMarker:
|
||||
mode: 1
|
||||
animation: null
|
||||
src: null
|
||||
disposition: false
|
||||
movementAction: null
|
||||
_stats:
|
||||
systemId: foundryvtt-reve-de-dragon
|
||||
systemVersion: 12.0.22
|
||||
coreVersion: '12.331'
|
||||
coreVersion: '13.350'
|
||||
lastModifiedBy: null
|
||||
compendiumSource: null
|
||||
duplicateSource: null
|
||||
exportSource: null
|
||||
flags: {}
|
||||
_key: '!actors!VsEw24DEekBbU69Z'
|
||||
|
||||
|
||||
@@ -30,7 +30,11 @@ items:
|
||||
_stats:
|
||||
systemId: foundryvtt-reve-de-dragon
|
||||
systemVersion: 12.0.22
|
||||
coreVersion: '12.331'
|
||||
coreVersion: '13.350'
|
||||
lastModifiedBy: null
|
||||
compendiumSource: null
|
||||
duplicateSource: null
|
||||
exportSource: null
|
||||
_key: '!actors.items!IdZUNtuYcDBffZKn.shsUV8UpU18c0RJK'
|
||||
- _id: CYpxxf1uTa78NWR9
|
||||
name: Esquive
|
||||
@@ -59,7 +63,11 @@ items:
|
||||
_stats:
|
||||
systemId: foundryvtt-reve-de-dragon
|
||||
systemVersion: 12.0.22
|
||||
coreVersion: '12.331'
|
||||
coreVersion: '13.350'
|
||||
lastModifiedBy: null
|
||||
compendiumSource: null
|
||||
duplicateSource: null
|
||||
exportSource: null
|
||||
_key: '!actors.items!IdZUNtuYcDBffZKn.CYpxxf1uTa78NWR9'
|
||||
- _id: BjqRrGtHtTzuNpZB
|
||||
name: Griffes et Crocs
|
||||
@@ -88,7 +96,11 @@ items:
|
||||
_stats:
|
||||
systemId: foundryvtt-reve-de-dragon
|
||||
systemVersion: 12.0.22
|
||||
coreVersion: '12.331'
|
||||
coreVersion: '13.350'
|
||||
lastModifiedBy: null
|
||||
compendiumSource: null
|
||||
duplicateSource: null
|
||||
exportSource: null
|
||||
_key: '!actors.items!IdZUNtuYcDBffZKn.BjqRrGtHtTzuNpZB'
|
||||
- _id: lzEdMrKXbOYrWG5S
|
||||
name: Vigilance
|
||||
@@ -117,7 +129,11 @@ items:
|
||||
_stats:
|
||||
systemId: foundryvtt-reve-de-dragon
|
||||
systemVersion: 12.0.22
|
||||
coreVersion: '12.331'
|
||||
coreVersion: '13.350'
|
||||
lastModifiedBy: null
|
||||
compendiumSource: null
|
||||
duplicateSource: null
|
||||
exportSource: null
|
||||
_key: '!actors.items!IdZUNtuYcDBffZKn.lzEdMrKXbOYrWG5S'
|
||||
- _id: 0bTL8SzhNJoPrXd4
|
||||
name: Saut
|
||||
@@ -145,7 +161,12 @@ items:
|
||||
_stats:
|
||||
systemId: foundryvtt-reve-de-dragon
|
||||
systemVersion: 12.0.22
|
||||
coreVersion: '12.331'
|
||||
coreVersion: '13.350'
|
||||
lastModifiedBy: null
|
||||
compendiumSource: null
|
||||
duplicateSource: null
|
||||
exportSource: null
|
||||
flags: {}
|
||||
_key: '!actors.items!IdZUNtuYcDBffZKn.0bTL8SzhNJoPrXd4'
|
||||
effects: []
|
||||
folder: null
|
||||
@@ -212,16 +233,16 @@ system:
|
||||
value: '+1'
|
||||
label: +dom
|
||||
derivee: true
|
||||
vitesse:
|
||||
type: string
|
||||
value: 14/38
|
||||
label: Vitesse
|
||||
derivee: true
|
||||
encombrement:
|
||||
type: number
|
||||
value: 0
|
||||
label: Encombrement
|
||||
derivee: false
|
||||
vitesse:
|
||||
type: string
|
||||
value: 14/38
|
||||
label: Vitesse
|
||||
derivee: true
|
||||
protection:
|
||||
type: number
|
||||
value: 3
|
||||
@@ -326,7 +347,6 @@ prototypeToken:
|
||||
detectionModes: []
|
||||
appendNumber: false
|
||||
prependAdjective: false
|
||||
hexagonalShape: 0
|
||||
occludable:
|
||||
radius: 0
|
||||
ring:
|
||||
@@ -338,9 +358,19 @@ prototypeToken:
|
||||
subject:
|
||||
scale: 1
|
||||
texture: null
|
||||
turnMarker:
|
||||
mode: 1
|
||||
animation: null
|
||||
src: null
|
||||
disposition: false
|
||||
movementAction: null
|
||||
_stats:
|
||||
systemId: foundryvtt-reve-de-dragon
|
||||
systemVersion: 12.0.22
|
||||
coreVersion: '12.331'
|
||||
coreVersion: '13.350'
|
||||
lastModifiedBy: null
|
||||
compendiumSource: null
|
||||
duplicateSource: null
|
||||
exportSource: null
|
||||
flags: {}
|
||||
_key: '!actors!IdZUNtuYcDBffZKn'
|
||||
|
||||
|
||||
@@ -30,7 +30,11 @@ items:
|
||||
_stats:
|
||||
systemId: foundryvtt-reve-de-dragon
|
||||
systemVersion: 12.0.22
|
||||
coreVersion: '12.331'
|
||||
coreVersion: '13.350'
|
||||
lastModifiedBy: null
|
||||
compendiumSource: null
|
||||
duplicateSource: null
|
||||
exportSource: null
|
||||
_key: '!actors.items!kPDswxsWVnSYitfL.CYpxxf1uTa78NWR9'
|
||||
- _id: 6DK46pyO0hzEuuUg
|
||||
name: Morsure
|
||||
@@ -59,7 +63,11 @@ items:
|
||||
_stats:
|
||||
systemId: foundryvtt-reve-de-dragon
|
||||
systemVersion: 12.0.22
|
||||
coreVersion: '12.331'
|
||||
coreVersion: '13.350'
|
||||
lastModifiedBy: null
|
||||
compendiumSource: null
|
||||
duplicateSource: null
|
||||
exportSource: null
|
||||
_key: '!actors.items!kPDswxsWVnSYitfL.6DK46pyO0hzEuuUg'
|
||||
- _id: Kt7WlB5Ui97X211z
|
||||
name: Vol
|
||||
@@ -88,7 +96,11 @@ items:
|
||||
_stats:
|
||||
systemId: foundryvtt-reve-de-dragon
|
||||
systemVersion: 12.0.22
|
||||
coreVersion: '12.331'
|
||||
coreVersion: '13.350'
|
||||
lastModifiedBy: null
|
||||
compendiumSource: null
|
||||
duplicateSource: null
|
||||
exportSource: null
|
||||
_key: '!actors.items!kPDswxsWVnSYitfL.Kt7WlB5Ui97X211z'
|
||||
effects: []
|
||||
folder: null
|
||||
@@ -155,16 +167,16 @@ system:
|
||||
value: -1
|
||||
label: +dom
|
||||
derivee: true
|
||||
vitesse:
|
||||
type: string
|
||||
value: 12/38
|
||||
label: Vitesse
|
||||
derivee: true
|
||||
encombrement:
|
||||
type: number
|
||||
value: 0
|
||||
label: Encombrement
|
||||
derivee: false
|
||||
vitesse:
|
||||
type: string
|
||||
value: 12/38
|
||||
label: Vitesse
|
||||
derivee: true
|
||||
protection:
|
||||
type: number
|
||||
value: -3
|
||||
@@ -206,8 +218,8 @@ system:
|
||||
à sa victime qui perd alors automatiquement @roll[1d6] points
|
||||
d’endurance par round sous l’effet de la saignée. Quand
|
||||
l’endurance tombe à zéro, le drakkule continue à
|
||||
la vider de son sang à raison de @roll[1d6] points de vie par round. Le
|
||||
drakkule ne se détache que <em>blessé gravement </em>ou
|
||||
la vider de son sang à raison de @roll[1d6] points de vie par round.
|
||||
Le drakkule ne se détache que <em>blessé gravement </em>ou
|
||||
<em>sonné</em>. Pour se dégager, la victime ne peut utiliser
|
||||
que Corps à corps (totaliser 2 points d’empoignade) ou une
|
||||
dague. Tant qu’il est accroché, le drakkule ne joue plus de jet
|
||||
@@ -281,7 +293,6 @@ prototypeToken:
|
||||
detectionModes: []
|
||||
appendNumber: false
|
||||
prependAdjective: false
|
||||
hexagonalShape: 0
|
||||
occludable:
|
||||
radius: 0
|
||||
ring:
|
||||
@@ -293,9 +304,19 @@ prototypeToken:
|
||||
subject:
|
||||
scale: 1
|
||||
texture: null
|
||||
turnMarker:
|
||||
mode: 1
|
||||
animation: null
|
||||
src: null
|
||||
disposition: false
|
||||
movementAction: null
|
||||
_stats:
|
||||
systemId: foundryvtt-reve-de-dragon
|
||||
systemVersion: 12.0.22
|
||||
coreVersion: '12.331'
|
||||
coreVersion: '13.350'
|
||||
lastModifiedBy: null
|
||||
compendiumSource: null
|
||||
duplicateSource: null
|
||||
exportSource: null
|
||||
flags: {}
|
||||
_key: '!actors!kPDswxsWVnSYitfL'
|
||||
|
||||
|
||||
@@ -30,7 +30,11 @@ items:
|
||||
_stats:
|
||||
systemId: foundryvtt-reve-de-dragon
|
||||
systemVersion: 12.0.22
|
||||
coreVersion: '12.331'
|
||||
coreVersion: '13.350'
|
||||
lastModifiedBy: null
|
||||
compendiumSource: null
|
||||
duplicateSource: null
|
||||
exportSource: null
|
||||
_key: '!actors.items!tbBCUzaYThtcq3Ch.CYpxxf1uTa78NWR9'
|
||||
- _id: lzEdMrKXbOYrWG5S
|
||||
name: Vigilance
|
||||
@@ -59,7 +63,11 @@ items:
|
||||
_stats:
|
||||
systemId: foundryvtt-reve-de-dragon
|
||||
systemVersion: 12.0.22
|
||||
coreVersion: '12.331'
|
||||
coreVersion: '13.350'
|
||||
lastModifiedBy: null
|
||||
compendiumSource: null
|
||||
duplicateSource: null
|
||||
exportSource: null
|
||||
_key: '!actors.items!tbBCUzaYThtcq3Ch.lzEdMrKXbOYrWG5S'
|
||||
- _id: Kt7WlB5Ui97X211z
|
||||
name: Vol
|
||||
@@ -88,7 +96,11 @@ items:
|
||||
_stats:
|
||||
systemId: foundryvtt-reve-de-dragon
|
||||
systemVersion: 12.0.22
|
||||
coreVersion: '12.331'
|
||||
coreVersion: '13.350'
|
||||
lastModifiedBy: null
|
||||
compendiumSource: null
|
||||
duplicateSource: null
|
||||
exportSource: null
|
||||
_key: '!actors.items!tbBCUzaYThtcq3Ch.Kt7WlB5Ui97X211z'
|
||||
effects: []
|
||||
folder: null
|
||||
@@ -155,16 +167,16 @@ system:
|
||||
value: -4
|
||||
label: +dom
|
||||
derivee: true
|
||||
vitesse:
|
||||
type: string
|
||||
value: 10/30 vol
|
||||
label: Vitesse
|
||||
derivee: true
|
||||
encombrement:
|
||||
type: number
|
||||
value: 0
|
||||
label: Encombrement
|
||||
derivee: false
|
||||
vitesse:
|
||||
type: string
|
||||
value: 10/30 vol
|
||||
label: Vitesse
|
||||
derivee: true
|
||||
protection:
|
||||
type: number
|
||||
value: -6
|
||||
@@ -268,7 +280,6 @@ prototypeToken:
|
||||
detectionModes: []
|
||||
appendNumber: false
|
||||
prependAdjective: false
|
||||
hexagonalShape: 0
|
||||
occludable:
|
||||
radius: 0
|
||||
ring:
|
||||
@@ -280,9 +291,19 @@ prototypeToken:
|
||||
subject:
|
||||
scale: 1
|
||||
texture: null
|
||||
turnMarker:
|
||||
mode: 1
|
||||
animation: null
|
||||
src: null
|
||||
disposition: false
|
||||
movementAction: null
|
||||
_stats:
|
||||
systemId: foundryvtt-reve-de-dragon
|
||||
systemVersion: 12.0.22
|
||||
coreVersion: '12.331'
|
||||
coreVersion: '13.350'
|
||||
lastModifiedBy: null
|
||||
compendiumSource: null
|
||||
duplicateSource: null
|
||||
exportSource: null
|
||||
flags: {}
|
||||
_key: '!actors!tbBCUzaYThtcq3Ch'
|
||||
|
||||
|
||||
@@ -30,7 +30,11 @@ items:
|
||||
_stats:
|
||||
systemId: foundryvtt-reve-de-dragon
|
||||
systemVersion: 12.0.22
|
||||
coreVersion: '12.331'
|
||||
coreVersion: '13.350'
|
||||
lastModifiedBy: null
|
||||
compendiumSource: null
|
||||
duplicateSource: null
|
||||
exportSource: null
|
||||
_key: '!actors.items!f31jeCsQgw3hWjk6.shsUV8UpU18c0RJK'
|
||||
- _id: yDHZfK4RmwQW4YaW
|
||||
name: Discrétion
|
||||
@@ -59,7 +63,11 @@ items:
|
||||
_stats:
|
||||
systemId: foundryvtt-reve-de-dragon
|
||||
systemVersion: 12.0.22
|
||||
coreVersion: '12.331'
|
||||
coreVersion: '13.350'
|
||||
lastModifiedBy: null
|
||||
compendiumSource: null
|
||||
duplicateSource: null
|
||||
exportSource: null
|
||||
_key: '!actors.items!f31jeCsQgw3hWjk6.yDHZfK4RmwQW4YaW'
|
||||
- _id: 4GmpkphbsmQjvVVK
|
||||
name: Escalade
|
||||
@@ -88,7 +96,11 @@ items:
|
||||
_stats:
|
||||
systemId: foundryvtt-reve-de-dragon
|
||||
systemVersion: 12.0.22
|
||||
coreVersion: '12.331'
|
||||
coreVersion: '13.350'
|
||||
lastModifiedBy: null
|
||||
compendiumSource: null
|
||||
duplicateSource: null
|
||||
exportSource: null
|
||||
_key: '!actors.items!f31jeCsQgw3hWjk6.4GmpkphbsmQjvVVK'
|
||||
- _id: CYpxxf1uTa78NWR9
|
||||
name: Esquive
|
||||
@@ -117,7 +129,11 @@ items:
|
||||
_stats:
|
||||
systemId: foundryvtt-reve-de-dragon
|
||||
systemVersion: 12.0.22
|
||||
coreVersion: '12.331'
|
||||
coreVersion: '13.350'
|
||||
lastModifiedBy: null
|
||||
compendiumSource: null
|
||||
duplicateSource: null
|
||||
exportSource: null
|
||||
_key: '!actors.items!f31jeCsQgw3hWjk6.CYpxxf1uTa78NWR9'
|
||||
- _id: 6DK46pyO0hzEuuUg
|
||||
name: Morsure
|
||||
@@ -146,7 +162,11 @@ items:
|
||||
_stats:
|
||||
systemId: foundryvtt-reve-de-dragon
|
||||
systemVersion: 12.0.22
|
||||
coreVersion: '12.331'
|
||||
coreVersion: '13.350'
|
||||
lastModifiedBy: null
|
||||
compendiumSource: null
|
||||
duplicateSource: null
|
||||
exportSource: null
|
||||
_key: '!actors.items!f31jeCsQgw3hWjk6.6DK46pyO0hzEuuUg'
|
||||
- _id: lzEdMrKXbOYrWG5S
|
||||
name: Vigilance
|
||||
@@ -175,7 +195,11 @@ items:
|
||||
_stats:
|
||||
systemId: foundryvtt-reve-de-dragon
|
||||
systemVersion: 12.0.22
|
||||
coreVersion: '12.331'
|
||||
coreVersion: '13.350'
|
||||
lastModifiedBy: null
|
||||
compendiumSource: null
|
||||
duplicateSource: null
|
||||
exportSource: null
|
||||
_key: '!actors.items!f31jeCsQgw3hWjk6.lzEdMrKXbOYrWG5S'
|
||||
effects: []
|
||||
folder: null
|
||||
@@ -242,16 +266,16 @@ system:
|
||||
value: '+0'
|
||||
label: +dom
|
||||
derivee: true
|
||||
vitesse:
|
||||
type: string
|
||||
value: 12/30
|
||||
label: Vitesse
|
||||
derivee: true
|
||||
encombrement:
|
||||
type: number
|
||||
value: 0
|
||||
label: Encombrement
|
||||
derivee: false
|
||||
vitesse:
|
||||
type: string
|
||||
value: 12/30
|
||||
label: Vitesse
|
||||
derivee: true
|
||||
protection:
|
||||
type: number
|
||||
value: 0
|
||||
@@ -352,7 +376,6 @@ prototypeToken:
|
||||
detectionModes: []
|
||||
appendNumber: false
|
||||
prependAdjective: false
|
||||
hexagonalShape: 0
|
||||
occludable:
|
||||
radius: 0
|
||||
ring:
|
||||
@@ -364,9 +387,19 @@ prototypeToken:
|
||||
subject:
|
||||
scale: 1
|
||||
texture: null
|
||||
turnMarker:
|
||||
mode: 1
|
||||
animation: null
|
||||
src: null
|
||||
disposition: false
|
||||
movementAction: null
|
||||
_stats:
|
||||
systemId: foundryvtt-reve-de-dragon
|
||||
systemVersion: 12.0.22
|
||||
coreVersion: '12.331'
|
||||
coreVersion: '13.350'
|
||||
lastModifiedBy: null
|
||||
compendiumSource: null
|
||||
duplicateSource: null
|
||||
exportSource: null
|
||||
flags: {}
|
||||
_key: '!actors!f31jeCsQgw3hWjk6'
|
||||
|
||||
|
||||
@@ -29,7 +29,12 @@ items:
|
||||
_stats:
|
||||
systemId: foundryvtt-reve-de-dragon
|
||||
systemVersion: 12.0.22
|
||||
coreVersion: '12.331'
|
||||
coreVersion: '13.350'
|
||||
lastModifiedBy: null
|
||||
compendiumSource: null
|
||||
duplicateSource: null
|
||||
exportSource: null
|
||||
flags: {}
|
||||
_key: '!actors.items!igtHarwizNIUhd8M.bwJZ6nTLX9hohV7Q'
|
||||
- _id: 7td0EmFMtpwNyWwo
|
||||
name: Esquive
|
||||
@@ -57,7 +62,12 @@ items:
|
||||
_stats:
|
||||
systemId: foundryvtt-reve-de-dragon
|
||||
systemVersion: 12.0.22
|
||||
coreVersion: '12.331'
|
||||
coreVersion: '13.350'
|
||||
lastModifiedBy: null
|
||||
compendiumSource: null
|
||||
duplicateSource: null
|
||||
exportSource: null
|
||||
flags: {}
|
||||
_key: '!actors.items!igtHarwizNIUhd8M.7td0EmFMtpwNyWwo'
|
||||
- _id: d2yxJ5c57vMatAQV
|
||||
name: Discrétion
|
||||
@@ -85,7 +95,12 @@ items:
|
||||
_stats:
|
||||
systemId: foundryvtt-reve-de-dragon
|
||||
systemVersion: 12.0.22
|
||||
coreVersion: '12.331'
|
||||
coreVersion: '13.350'
|
||||
lastModifiedBy: null
|
||||
compendiumSource: null
|
||||
duplicateSource: null
|
||||
exportSource: null
|
||||
flags: {}
|
||||
_key: '!actors.items!igtHarwizNIUhd8M.d2yxJ5c57vMatAQV'
|
||||
- _id: aGm8xRr55CPUo5rM
|
||||
name: Pickpocket
|
||||
@@ -113,7 +128,12 @@ items:
|
||||
_stats:
|
||||
systemId: foundryvtt-reve-de-dragon
|
||||
systemVersion: 12.0.22
|
||||
coreVersion: '12.331'
|
||||
coreVersion: '13.350'
|
||||
lastModifiedBy: null
|
||||
compendiumSource: null
|
||||
duplicateSource: null
|
||||
exportSource: null
|
||||
flags: {}
|
||||
_key: '!actors.items!igtHarwizNIUhd8M.aGm8xRr55CPUo5rM'
|
||||
- _id: bL7lL688cp1s1Vke
|
||||
name: Vigilance
|
||||
@@ -141,7 +161,12 @@ items:
|
||||
_stats:
|
||||
systemId: foundryvtt-reve-de-dragon
|
||||
systemVersion: 12.0.22
|
||||
coreVersion: '12.331'
|
||||
coreVersion: '13.350'
|
||||
lastModifiedBy: null
|
||||
compendiumSource: null
|
||||
duplicateSource: null
|
||||
exportSource: null
|
||||
flags: {}
|
||||
_key: '!actors.items!igtHarwizNIUhd8M.bL7lL688cp1s1Vke'
|
||||
- _id: Fu61NMCeLxi9nfSD
|
||||
name: Course
|
||||
@@ -169,7 +194,12 @@ items:
|
||||
_stats:
|
||||
systemId: foundryvtt-reve-de-dragon
|
||||
systemVersion: 12.0.22
|
||||
coreVersion: '12.331'
|
||||
coreVersion: '13.350'
|
||||
lastModifiedBy: null
|
||||
compendiumSource: null
|
||||
duplicateSource: null
|
||||
exportSource: null
|
||||
flags: {}
|
||||
_key: '!actors.items!igtHarwizNIUhd8M.Fu61NMCeLxi9nfSD'
|
||||
- _id: uW9fTmhw6GBnf1e9
|
||||
name: Saut
|
||||
@@ -197,7 +227,12 @@ items:
|
||||
_stats:
|
||||
systemId: foundryvtt-reve-de-dragon
|
||||
systemVersion: 12.0.22
|
||||
coreVersion: '12.331'
|
||||
coreVersion: '13.350'
|
||||
lastModifiedBy: null
|
||||
compendiumSource: null
|
||||
duplicateSource: null
|
||||
exportSource: null
|
||||
flags: {}
|
||||
_key: '!actors.items!igtHarwizNIUhd8M.uW9fTmhw6GBnf1e9'
|
||||
effects: []
|
||||
folder: null
|
||||
@@ -264,16 +299,16 @@ system:
|
||||
value: -1
|
||||
label: +dom
|
||||
derivee: true
|
||||
vitesse:
|
||||
type: string
|
||||
value: 12/26
|
||||
label: Vitesse
|
||||
derivee: true
|
||||
encombrement:
|
||||
type: number
|
||||
value: 0
|
||||
label: Encombrement
|
||||
derivee: false
|
||||
vitesse:
|
||||
type: string
|
||||
value: 12/26
|
||||
label: Vitesse
|
||||
derivee: true
|
||||
protection:
|
||||
type: number
|
||||
value: 0
|
||||
@@ -384,7 +419,6 @@ prototypeToken:
|
||||
detectionModes: []
|
||||
appendNumber: false
|
||||
prependAdjective: false
|
||||
hexagonalShape: 0
|
||||
occludable:
|
||||
radius: 0
|
||||
ring:
|
||||
@@ -396,9 +430,19 @@ prototypeToken:
|
||||
subject:
|
||||
scale: 1
|
||||
texture: null
|
||||
turnMarker:
|
||||
mode: 1
|
||||
animation: null
|
||||
src: null
|
||||
disposition: false
|
||||
movementAction: null
|
||||
_stats:
|
||||
systemId: foundryvtt-reve-de-dragon
|
||||
systemVersion: 12.0.22
|
||||
coreVersion: '12.331'
|
||||
coreVersion: '13.350'
|
||||
lastModifiedBy: null
|
||||
compendiumSource: null
|
||||
duplicateSource: null
|
||||
exportSource: null
|
||||
flags: {}
|
||||
_key: '!actors!igtHarwizNIUhd8M'
|
||||
|
||||
|
||||
@@ -30,7 +30,11 @@ items:
|
||||
_stats:
|
||||
systemId: foundryvtt-reve-de-dragon
|
||||
systemVersion: 12.0.22
|
||||
coreVersion: '12.331'
|
||||
coreVersion: '13.350'
|
||||
lastModifiedBy: null
|
||||
compendiumSource: null
|
||||
duplicateSource: null
|
||||
exportSource: null
|
||||
_key: '!actors.items!X7j6D136KAhFvItD.shsUV8UpU18c0RJK'
|
||||
- _id: JTuBQCPdumw3DfxH
|
||||
name: Crête
|
||||
@@ -59,7 +63,11 @@ items:
|
||||
_stats:
|
||||
systemId: foundryvtt-reve-de-dragon
|
||||
systemVersion: 12.0.22
|
||||
coreVersion: '12.331'
|
||||
coreVersion: '13.350'
|
||||
lastModifiedBy: null
|
||||
compendiumSource: null
|
||||
duplicateSource: null
|
||||
exportSource: null
|
||||
_key: '!actors.items!X7j6D136KAhFvItD.JTuBQCPdumw3DfxH'
|
||||
- _id: yDHZfK4RmwQW4YaW
|
||||
name: Discrétion
|
||||
@@ -88,7 +96,11 @@ items:
|
||||
_stats:
|
||||
systemId: foundryvtt-reve-de-dragon
|
||||
systemVersion: 12.0.22
|
||||
coreVersion: '12.331'
|
||||
coreVersion: '13.350'
|
||||
lastModifiedBy: null
|
||||
compendiumSource: null
|
||||
duplicateSource: null
|
||||
exportSource: null
|
||||
_key: '!actors.items!X7j6D136KAhFvItD.yDHZfK4RmwQW4YaW'
|
||||
- _id: CYpxxf1uTa78NWR9
|
||||
name: Esquive
|
||||
@@ -117,7 +129,11 @@ items:
|
||||
_stats:
|
||||
systemId: foundryvtt-reve-de-dragon
|
||||
systemVersion: 12.0.22
|
||||
coreVersion: '12.331'
|
||||
coreVersion: '13.350'
|
||||
lastModifiedBy: null
|
||||
compendiumSource: null
|
||||
duplicateSource: null
|
||||
exportSource: null
|
||||
_key: '!actors.items!X7j6D136KAhFvItD.CYpxxf1uTa78NWR9'
|
||||
- _id: efl1HdDSKpBfImQ1
|
||||
name: Pierre Lancée
|
||||
@@ -146,7 +162,11 @@ items:
|
||||
_stats:
|
||||
systemId: foundryvtt-reve-de-dragon
|
||||
systemVersion: 12.0.22
|
||||
coreVersion: '12.331'
|
||||
coreVersion: '13.350'
|
||||
lastModifiedBy: null
|
||||
compendiumSource: null
|
||||
duplicateSource: null
|
||||
exportSource: null
|
||||
_key: '!actors.items!X7j6D136KAhFvItD.efl1HdDSKpBfImQ1'
|
||||
- _id: OzHBowOMADRwcVXR
|
||||
name: Pierre Tenue
|
||||
@@ -175,7 +195,11 @@ items:
|
||||
_stats:
|
||||
systemId: foundryvtt-reve-de-dragon
|
||||
systemVersion: 12.0.22
|
||||
coreVersion: '12.331'
|
||||
coreVersion: '13.350'
|
||||
lastModifiedBy: null
|
||||
compendiumSource: null
|
||||
duplicateSource: null
|
||||
exportSource: null
|
||||
_key: '!actors.items!X7j6D136KAhFvItD.OzHBowOMADRwcVXR'
|
||||
- _id: lzEdMrKXbOYrWG5S
|
||||
name: Vigilance
|
||||
@@ -204,7 +228,11 @@ items:
|
||||
_stats:
|
||||
systemId: foundryvtt-reve-de-dragon
|
||||
systemVersion: 12.0.22
|
||||
coreVersion: '12.331'
|
||||
coreVersion: '13.350'
|
||||
lastModifiedBy: null
|
||||
compendiumSource: null
|
||||
duplicateSource: null
|
||||
exportSource: null
|
||||
_key: '!actors.items!X7j6D136KAhFvItD.lzEdMrKXbOYrWG5S'
|
||||
- _id: 2G5PanD98Nj91PQD
|
||||
name: Saut
|
||||
@@ -232,7 +260,12 @@ items:
|
||||
_stats:
|
||||
systemId: foundryvtt-reve-de-dragon
|
||||
systemVersion: 12.0.22
|
||||
coreVersion: '12.331'
|
||||
coreVersion: '13.350'
|
||||
lastModifiedBy: null
|
||||
compendiumSource: null
|
||||
duplicateSource: null
|
||||
exportSource: null
|
||||
flags: {}
|
||||
_key: '!actors.items!X7j6D136KAhFvItD.2G5PanD98Nj91PQD'
|
||||
effects: []
|
||||
folder: null
|
||||
@@ -299,16 +332,16 @@ system:
|
||||
value: '+2'
|
||||
label: +dom
|
||||
derivee: true
|
||||
vitesse:
|
||||
type: string
|
||||
value: 14/26
|
||||
label: Vitesse
|
||||
derivee: true
|
||||
encombrement:
|
||||
type: number
|
||||
value: 0
|
||||
label: Encombrement
|
||||
derivee: false
|
||||
vitesse:
|
||||
type: string
|
||||
value: 14/26
|
||||
label: Vitesse
|
||||
derivee: true
|
||||
protection:
|
||||
type: number
|
||||
value: 4
|
||||
@@ -413,7 +446,6 @@ prototypeToken:
|
||||
detectionModes: []
|
||||
appendNumber: false
|
||||
prependAdjective: false
|
||||
hexagonalShape: 0
|
||||
occludable:
|
||||
radius: 0
|
||||
ring:
|
||||
@@ -425,9 +457,19 @@ prototypeToken:
|
||||
subject:
|
||||
scale: 1
|
||||
texture: null
|
||||
turnMarker:
|
||||
mode: 1
|
||||
animation: null
|
||||
src: null
|
||||
disposition: false
|
||||
movementAction: null
|
||||
_stats:
|
||||
systemId: foundryvtt-reve-de-dragon
|
||||
systemVersion: 12.0.22
|
||||
coreVersion: '12.331'
|
||||
coreVersion: '13.350'
|
||||
lastModifiedBy: null
|
||||
compendiumSource: null
|
||||
duplicateSource: null
|
||||
exportSource: null
|
||||
flags: {}
|
||||
_key: '!actors!X7j6D136KAhFvItD'
|
||||
|
||||
|
||||
@@ -30,7 +30,11 @@ items:
|
||||
_stats:
|
||||
systemId: foundryvtt-reve-de-dragon
|
||||
systemVersion: 12.0.22
|
||||
coreVersion: '12.331'
|
||||
coreVersion: '13.350'
|
||||
lastModifiedBy: null
|
||||
compendiumSource: null
|
||||
duplicateSource: null
|
||||
exportSource: null
|
||||
_key: '!actors.items!f6wzOaOzdwy51prt.shsUV8UpU18c0RJK'
|
||||
- _id: yDHZfK4RmwQW4YaW
|
||||
name: Discrétion
|
||||
@@ -59,7 +63,11 @@ items:
|
||||
_stats:
|
||||
systemId: foundryvtt-reve-de-dragon
|
||||
systemVersion: 12.0.22
|
||||
coreVersion: '12.331'
|
||||
coreVersion: '13.350'
|
||||
lastModifiedBy: null
|
||||
compendiumSource: null
|
||||
duplicateSource: null
|
||||
exportSource: null
|
||||
_key: '!actors.items!f6wzOaOzdwy51prt.yDHZfK4RmwQW4YaW'
|
||||
- _id: CYpxxf1uTa78NWR9
|
||||
name: Esquive
|
||||
@@ -88,7 +96,11 @@ items:
|
||||
_stats:
|
||||
systemId: foundryvtt-reve-de-dragon
|
||||
systemVersion: 12.0.22
|
||||
coreVersion: '12.331'
|
||||
coreVersion: '13.350'
|
||||
lastModifiedBy: null
|
||||
compendiumSource: null
|
||||
duplicateSource: null
|
||||
exportSource: null
|
||||
_key: '!actors.items!f6wzOaOzdwy51prt.CYpxxf1uTa78NWR9'
|
||||
- _id: BjqRrGtHtTzuNpZB
|
||||
name: Griffes et Crocs
|
||||
@@ -117,7 +129,11 @@ items:
|
||||
_stats:
|
||||
systemId: foundryvtt-reve-de-dragon
|
||||
systemVersion: 12.0.22
|
||||
coreVersion: '12.331'
|
||||
coreVersion: '13.350'
|
||||
lastModifiedBy: null
|
||||
compendiumSource: null
|
||||
duplicateSource: null
|
||||
exportSource: null
|
||||
_key: '!actors.items!f6wzOaOzdwy51prt.BjqRrGtHtTzuNpZB'
|
||||
- _id: lzEdMrKXbOYrWG5S
|
||||
name: Vigilance
|
||||
@@ -146,7 +162,11 @@ items:
|
||||
_stats:
|
||||
systemId: foundryvtt-reve-de-dragon
|
||||
systemVersion: 12.0.22
|
||||
coreVersion: '12.331'
|
||||
coreVersion: '13.350'
|
||||
lastModifiedBy: null
|
||||
compendiumSource: null
|
||||
duplicateSource: null
|
||||
exportSource: null
|
||||
_key: '!actors.items!f6wzOaOzdwy51prt.lzEdMrKXbOYrWG5S'
|
||||
effects: []
|
||||
folder: null
|
||||
@@ -213,16 +233,16 @@ system:
|
||||
value: '+1'
|
||||
label: +dom
|
||||
derivee: true
|
||||
vitesse:
|
||||
type: string
|
||||
value: 12/24
|
||||
label: Vitesse
|
||||
derivee: true
|
||||
encombrement:
|
||||
type: number
|
||||
value: 0
|
||||
label: Encombrement
|
||||
derivee: false
|
||||
vitesse:
|
||||
type: string
|
||||
value: 12/24
|
||||
label: Vitesse
|
||||
derivee: true
|
||||
protection:
|
||||
type: number
|
||||
value: 0
|
||||
@@ -335,7 +355,6 @@ prototypeToken:
|
||||
detectionModes: []
|
||||
appendNumber: false
|
||||
prependAdjective: false
|
||||
hexagonalShape: 0
|
||||
occludable:
|
||||
radius: 0
|
||||
ring:
|
||||
@@ -347,9 +366,19 @@ prototypeToken:
|
||||
subject:
|
||||
scale: 1
|
||||
texture: null
|
||||
turnMarker:
|
||||
mode: 1
|
||||
animation: null
|
||||
src: null
|
||||
disposition: false
|
||||
movementAction: null
|
||||
_stats:
|
||||
systemId: foundryvtt-reve-de-dragon
|
||||
systemVersion: 12.0.22
|
||||
coreVersion: '12.331'
|
||||
coreVersion: '13.350'
|
||||
lastModifiedBy: null
|
||||
compendiumSource: null
|
||||
duplicateSource: null
|
||||
exportSource: null
|
||||
flags: {}
|
||||
_key: '!actors!f6wzOaOzdwy51prt'
|
||||
|
||||
|
||||
@@ -30,7 +30,11 @@ items:
|
||||
_stats:
|
||||
systemId: foundryvtt-reve-de-dragon
|
||||
systemVersion: 12.0.22
|
||||
coreVersion: '12.331'
|
||||
coreVersion: '13.350'
|
||||
lastModifiedBy: null
|
||||
compendiumSource: null
|
||||
duplicateSource: null
|
||||
exportSource: null
|
||||
_key: '!actors.items!VCRmWnhzCF9tJTD0.yDHZfK4RmwQW4YaW'
|
||||
effects: []
|
||||
folder: null
|
||||
@@ -97,16 +101,16 @@ system:
|
||||
value: '-'
|
||||
label: +dom
|
||||
derivee: true
|
||||
vitesse:
|
||||
type: string
|
||||
value: '-'
|
||||
label: Vitesse
|
||||
derivee: true
|
||||
encombrement:
|
||||
type: number
|
||||
value: '-'
|
||||
label: Encombrement
|
||||
derivee: false
|
||||
vitesse:
|
||||
type: string
|
||||
value: '-'
|
||||
label: Vitesse
|
||||
derivee: true
|
||||
protection:
|
||||
type: number
|
||||
value: '-'
|
||||
@@ -212,7 +216,6 @@ prototypeToken:
|
||||
detectionModes: []
|
||||
appendNumber: false
|
||||
prependAdjective: false
|
||||
hexagonalShape: 0
|
||||
occludable:
|
||||
radius: 0
|
||||
ring:
|
||||
@@ -224,9 +227,19 @@ prototypeToken:
|
||||
subject:
|
||||
scale: 1
|
||||
texture: null
|
||||
turnMarker:
|
||||
mode: 1
|
||||
animation: null
|
||||
src: null
|
||||
disposition: false
|
||||
movementAction: null
|
||||
_stats:
|
||||
systemId: foundryvtt-reve-de-dragon
|
||||
systemVersion: 12.0.22
|
||||
coreVersion: '12.331'
|
||||
coreVersion: '13.350'
|
||||
lastModifiedBy: null
|
||||
compendiumSource: null
|
||||
duplicateSource: null
|
||||
exportSource: null
|
||||
flags: {}
|
||||
_key: '!actors!VCRmWnhzCF9tJTD0'
|
||||
|
||||
|
||||
@@ -30,7 +30,11 @@ items:
|
||||
_stats:
|
||||
systemId: foundryvtt-reve-de-dragon
|
||||
systemVersion: 12.0.22
|
||||
coreVersion: '12.331'
|
||||
coreVersion: '13.350'
|
||||
lastModifiedBy: null
|
||||
compendiumSource: null
|
||||
duplicateSource: null
|
||||
exportSource: null
|
||||
_key: '!actors.items!OWuf2ryyCtipWnpE.shsUV8UpU18c0RJK'
|
||||
- _id: 4GmpkphbsmQjvVVK
|
||||
name: Escalade
|
||||
@@ -59,7 +63,11 @@ items:
|
||||
_stats:
|
||||
systemId: foundryvtt-reve-de-dragon
|
||||
systemVersion: 12.0.22
|
||||
coreVersion: '12.331'
|
||||
coreVersion: '13.350'
|
||||
lastModifiedBy: null
|
||||
compendiumSource: null
|
||||
duplicateSource: null
|
||||
exportSource: null
|
||||
_key: '!actors.items!OWuf2ryyCtipWnpE.4GmpkphbsmQjvVVK'
|
||||
- _id: CYpxxf1uTa78NWR9
|
||||
name: Esquive
|
||||
@@ -88,7 +96,11 @@ items:
|
||||
_stats:
|
||||
systemId: foundryvtt-reve-de-dragon
|
||||
systemVersion: 12.0.22
|
||||
coreVersion: '12.331'
|
||||
coreVersion: '13.350'
|
||||
lastModifiedBy: null
|
||||
compendiumSource: null
|
||||
duplicateSource: null
|
||||
exportSource: null
|
||||
_key: '!actors.items!OWuf2ryyCtipWnpE.CYpxxf1uTa78NWR9'
|
||||
- _id: BjqRrGtHtTzuNpZB
|
||||
name: Griffes et Crocs
|
||||
@@ -117,7 +129,11 @@ items:
|
||||
_stats:
|
||||
systemId: foundryvtt-reve-de-dragon
|
||||
systemVersion: 12.0.22
|
||||
coreVersion: '12.331'
|
||||
coreVersion: '13.350'
|
||||
lastModifiedBy: null
|
||||
compendiumSource: null
|
||||
duplicateSource: null
|
||||
exportSource: null
|
||||
_key: '!actors.items!OWuf2ryyCtipWnpE.BjqRrGtHtTzuNpZB'
|
||||
- _id: lzEdMrKXbOYrWG5S
|
||||
name: Vigilance
|
||||
@@ -146,7 +162,11 @@ items:
|
||||
_stats:
|
||||
systemId: foundryvtt-reve-de-dragon
|
||||
systemVersion: 12.0.22
|
||||
coreVersion: '12.331'
|
||||
coreVersion: '13.350'
|
||||
lastModifiedBy: null
|
||||
compendiumSource: null
|
||||
duplicateSource: null
|
||||
exportSource: null
|
||||
_key: '!actors.items!OWuf2ryyCtipWnpE.lzEdMrKXbOYrWG5S'
|
||||
- _id: wxT2H9CD43z4LlnS
|
||||
name: Saut
|
||||
@@ -174,7 +194,12 @@ items:
|
||||
_stats:
|
||||
systemId: foundryvtt-reve-de-dragon
|
||||
systemVersion: 12.0.22
|
||||
coreVersion: '12.331'
|
||||
coreVersion: '13.350'
|
||||
lastModifiedBy: null
|
||||
compendiumSource: null
|
||||
duplicateSource: null
|
||||
exportSource: null
|
||||
flags: {}
|
||||
_key: '!actors.items!OWuf2ryyCtipWnpE.wxT2H9CD43z4LlnS'
|
||||
effects: []
|
||||
folder: null
|
||||
@@ -241,16 +266,16 @@ system:
|
||||
value: '+5'
|
||||
label: +dom
|
||||
derivee: true
|
||||
vitesse:
|
||||
type: string
|
||||
value: 12/36
|
||||
label: Vitesse
|
||||
derivee: true
|
||||
encombrement:
|
||||
type: number
|
||||
value: 0
|
||||
label: Encombrement
|
||||
derivee: false
|
||||
vitesse:
|
||||
type: string
|
||||
value: 12/36
|
||||
label: Vitesse
|
||||
derivee: true
|
||||
protection:
|
||||
type: number
|
||||
value: 3
|
||||
@@ -353,7 +378,6 @@ prototypeToken:
|
||||
detectionModes: []
|
||||
appendNumber: false
|
||||
prependAdjective: false
|
||||
hexagonalShape: 0
|
||||
occludable:
|
||||
radius: 0
|
||||
ring:
|
||||
@@ -365,9 +389,19 @@ prototypeToken:
|
||||
subject:
|
||||
scale: 1
|
||||
texture: null
|
||||
turnMarker:
|
||||
mode: 1
|
||||
animation: null
|
||||
src: null
|
||||
disposition: false
|
||||
movementAction: null
|
||||
_stats:
|
||||
systemId: foundryvtt-reve-de-dragon
|
||||
systemVersion: 12.0.22
|
||||
coreVersion: '12.331'
|
||||
coreVersion: '13.350'
|
||||
lastModifiedBy: null
|
||||
compendiumSource: null
|
||||
duplicateSource: null
|
||||
exportSource: null
|
||||
flags: {}
|
||||
_key: '!actors!OWuf2ryyCtipWnpE'
|
||||
|
||||
|
||||
@@ -30,7 +30,11 @@ items:
|
||||
_stats:
|
||||
systemId: foundryvtt-reve-de-dragon
|
||||
systemVersion: 12.0.22
|
||||
coreVersion: '12.331'
|
||||
coreVersion: '13.350'
|
||||
lastModifiedBy: null
|
||||
compendiumSource: null
|
||||
duplicateSource: null
|
||||
exportSource: null
|
||||
_key: '!actors.items!BgXjyfnolHRQNWCj.CYpxxf1uTa78NWR9'
|
||||
- _id: ndNshntOYb1JFNqi
|
||||
name: Serres
|
||||
@@ -59,7 +63,11 @@ items:
|
||||
_stats:
|
||||
systemId: foundryvtt-reve-de-dragon
|
||||
systemVersion: 12.0.22
|
||||
coreVersion: '12.331'
|
||||
coreVersion: '13.350'
|
||||
lastModifiedBy: null
|
||||
compendiumSource: null
|
||||
duplicateSource: null
|
||||
exportSource: null
|
||||
_key: '!actors.items!BgXjyfnolHRQNWCj.ndNshntOYb1JFNqi'
|
||||
effects: []
|
||||
folder: null
|
||||
@@ -126,16 +134,16 @@ system:
|
||||
value: '+0'
|
||||
label: +dom
|
||||
derivee: true
|
||||
vitesse:
|
||||
type: string
|
||||
value: 12/36
|
||||
label: Vitesse
|
||||
derivee: true
|
||||
encombrement:
|
||||
type: number
|
||||
value: 0
|
||||
label: Encombrement
|
||||
derivee: false
|
||||
vitesse:
|
||||
type: string
|
||||
value: 12/36
|
||||
label: Vitesse
|
||||
derivee: true
|
||||
protection:
|
||||
type: number
|
||||
value: 4
|
||||
@@ -174,15 +182,14 @@ system:
|
||||
agressivité s’appliquant aux humanoïdes. S’agissant
|
||||
d’un pouvoir inné, elles n’ont ni à monter dans
|
||||
les TMR, ni à dépenser de points de rêve. La victime
|
||||
doit jouer un jet de résistance standard, @roll[reve-actuel/-8], et en cas
|
||||
d’échec, réussir un jet de @roll[Volonté/-3]
|
||||
pour pouvoir attaquer la harpie. Le JR n’est à jouer
|
||||
qu’une seule fois, tandis qu’en cas d’échec, le jet
|
||||
de VOLONTÉ est à jouer tous les rounds. La non
|
||||
agressivité ne s’applique qu’à
|
||||
l’égard de la harpie qui l’a lancée, et une harpie
|
||||
ne peut pas réutiliser son pouvoir sur un personnage qui a
|
||||
réussi son JR.</p>
|
||||
doit jouer un jet de résistance standard, @roll[reve-actuel/-8], et
|
||||
en cas d’échec, réussir un jet de @roll[Volonté/-3] pour
|
||||
pouvoir attaquer la harpie. Le JR n’est à jouer qu’une
|
||||
seule fois, tandis qu’en cas d’échec, le jet de
|
||||
VOLONTÉ est à jouer tous les rounds. La non agressivité
|
||||
ne s’applique qu’à l’égard de la harpie qui
|
||||
l’a lancée, et une harpie ne peut pas réutiliser son
|
||||
pouvoir sur un personnage qui a réussi son JR.</p>
|
||||
race: ''
|
||||
notesmj: ''
|
||||
ownership:
|
||||
@@ -251,7 +258,6 @@ prototypeToken:
|
||||
detectionModes: []
|
||||
appendNumber: false
|
||||
prependAdjective: false
|
||||
hexagonalShape: 0
|
||||
occludable:
|
||||
radius: 0
|
||||
ring:
|
||||
@@ -263,9 +269,19 @@ prototypeToken:
|
||||
subject:
|
||||
scale: 1
|
||||
texture: null
|
||||
turnMarker:
|
||||
mode: 1
|
||||
animation: null
|
||||
src: null
|
||||
disposition: false
|
||||
movementAction: null
|
||||
_stats:
|
||||
systemId: foundryvtt-reve-de-dragon
|
||||
systemVersion: 12.0.22
|
||||
coreVersion: '12.331'
|
||||
coreVersion: '13.350'
|
||||
lastModifiedBy: null
|
||||
compendiumSource: null
|
||||
duplicateSource: null
|
||||
exportSource: null
|
||||
flags: {}
|
||||
_key: '!actors!BgXjyfnolHRQNWCj'
|
||||
|
||||
|
||||
@@ -30,7 +30,11 @@ items:
|
||||
_stats:
|
||||
systemId: foundryvtt-reve-de-dragon
|
||||
systemVersion: 12.0.22
|
||||
coreVersion: '12.331'
|
||||
coreVersion: '13.350'
|
||||
lastModifiedBy: null
|
||||
compendiumSource: null
|
||||
duplicateSource: null
|
||||
exportSource: null
|
||||
_key: '!actors.items!lHt8Tyexy3qzAerO.shsUV8UpU18c0RJK'
|
||||
- _id: CYpxxf1uTa78NWR9
|
||||
name: Esquive
|
||||
@@ -59,7 +63,11 @@ items:
|
||||
_stats:
|
||||
systemId: foundryvtt-reve-de-dragon
|
||||
systemVersion: 12.0.22
|
||||
coreVersion: '12.331'
|
||||
coreVersion: '13.350'
|
||||
lastModifiedBy: null
|
||||
compendiumSource: null
|
||||
duplicateSource: null
|
||||
exportSource: null
|
||||
_key: '!actors.items!lHt8Tyexy3qzAerO.CYpxxf1uTa78NWR9'
|
||||
- _id: BjqRrGtHtTzuNpZB
|
||||
name: Griffes et Crocs
|
||||
@@ -88,7 +96,11 @@ items:
|
||||
_stats:
|
||||
systemId: foundryvtt-reve-de-dragon
|
||||
systemVersion: 12.0.22
|
||||
coreVersion: '12.331'
|
||||
coreVersion: '13.350'
|
||||
lastModifiedBy: null
|
||||
compendiumSource: null
|
||||
duplicateSource: null
|
||||
exportSource: null
|
||||
_key: '!actors.items!lHt8Tyexy3qzAerO.BjqRrGtHtTzuNpZB'
|
||||
- _id: lzEdMrKXbOYrWG5S
|
||||
name: Vigilance
|
||||
@@ -117,7 +129,11 @@ items:
|
||||
_stats:
|
||||
systemId: foundryvtt-reve-de-dragon
|
||||
systemVersion: 12.0.22
|
||||
coreVersion: '12.331'
|
||||
coreVersion: '13.350'
|
||||
lastModifiedBy: null
|
||||
compendiumSource: null
|
||||
duplicateSource: null
|
||||
exportSource: null
|
||||
_key: '!actors.items!lHt8Tyexy3qzAerO.lzEdMrKXbOYrWG5S'
|
||||
- _id: 4JttwOCHxLNbsW4R
|
||||
name: Saut
|
||||
@@ -145,7 +161,12 @@ items:
|
||||
_stats:
|
||||
systemId: foundryvtt-reve-de-dragon
|
||||
systemVersion: 12.0.22
|
||||
coreVersion: '12.331'
|
||||
coreVersion: '13.350'
|
||||
lastModifiedBy: null
|
||||
compendiumSource: null
|
||||
duplicateSource: null
|
||||
exportSource: null
|
||||
flags: {}
|
||||
_key: '!actors.items!lHt8Tyexy3qzAerO.4JttwOCHxLNbsW4R'
|
||||
effects: []
|
||||
folder: null
|
||||
@@ -212,16 +233,16 @@ system:
|
||||
value: '+1'
|
||||
label: +dom
|
||||
derivee: true
|
||||
vitesse:
|
||||
type: string
|
||||
value: 12/24
|
||||
label: Vitesse
|
||||
derivee: true
|
||||
encombrement:
|
||||
type: number
|
||||
value: 0
|
||||
label: Encombrement
|
||||
derivee: false
|
||||
vitesse:
|
||||
type: string
|
||||
value: 12/24
|
||||
label: Vitesse
|
||||
derivee: true
|
||||
protection:
|
||||
type: number
|
||||
value: 2
|
||||
@@ -320,7 +341,6 @@ prototypeToken:
|
||||
detectionModes: []
|
||||
appendNumber: false
|
||||
prependAdjective: false
|
||||
hexagonalShape: 0
|
||||
occludable:
|
||||
radius: 0
|
||||
ring:
|
||||
@@ -332,9 +352,19 @@ prototypeToken:
|
||||
subject:
|
||||
scale: 1
|
||||
texture: null
|
||||
turnMarker:
|
||||
mode: 1
|
||||
animation: null
|
||||
src: null
|
||||
disposition: false
|
||||
movementAction: null
|
||||
_stats:
|
||||
systemId: foundryvtt-reve-de-dragon
|
||||
systemVersion: 12.0.22
|
||||
coreVersion: '12.331'
|
||||
coreVersion: '13.350'
|
||||
lastModifiedBy: null
|
||||
compendiumSource: null
|
||||
duplicateSource: null
|
||||
exportSource: null
|
||||
flags: {}
|
||||
_key: '!actors!lHt8Tyexy3qzAerO'
|
||||
|
||||
|
||||
@@ -30,7 +30,11 @@ items:
|
||||
_stats:
|
||||
systemId: foundryvtt-reve-de-dragon
|
||||
systemVersion: 12.0.22
|
||||
coreVersion: '12.331'
|
||||
coreVersion: '13.350'
|
||||
lastModifiedBy: null
|
||||
compendiumSource: null
|
||||
duplicateSource: null
|
||||
exportSource: null
|
||||
_key: '!actors.items!YjBDfNoLA7rlofsh.CYpxxf1uTa78NWR9'
|
||||
- _id: h9ASt4vrvEgxfj7j
|
||||
name: Tronçonneuse
|
||||
@@ -59,7 +63,11 @@ items:
|
||||
_stats:
|
||||
systemId: foundryvtt-reve-de-dragon
|
||||
systemVersion: 12.0.22
|
||||
coreVersion: '12.331'
|
||||
coreVersion: '13.350'
|
||||
lastModifiedBy: null
|
||||
compendiumSource: null
|
||||
duplicateSource: null
|
||||
exportSource: null
|
||||
_key: '!actors.items!YjBDfNoLA7rlofsh.h9ASt4vrvEgxfj7j'
|
||||
- _id: lzEdMrKXbOYrWG5S
|
||||
name: Vigilance
|
||||
@@ -88,7 +96,11 @@ items:
|
||||
_stats:
|
||||
systemId: foundryvtt-reve-de-dragon
|
||||
systemVersion: 12.0.22
|
||||
coreVersion: '12.331'
|
||||
coreVersion: '13.350'
|
||||
lastModifiedBy: null
|
||||
compendiumSource: null
|
||||
duplicateSource: null
|
||||
exportSource: null
|
||||
_key: '!actors.items!YjBDfNoLA7rlofsh.lzEdMrKXbOYrWG5S'
|
||||
- _id: Kt7WlB5Ui97X211z
|
||||
name: Vol
|
||||
@@ -117,7 +129,11 @@ items:
|
||||
_stats:
|
||||
systemId: foundryvtt-reve-de-dragon
|
||||
systemVersion: 12.0.22
|
||||
coreVersion: '12.331'
|
||||
coreVersion: '13.350'
|
||||
lastModifiedBy: null
|
||||
compendiumSource: null
|
||||
duplicateSource: null
|
||||
exportSource: null
|
||||
_key: '!actors.items!YjBDfNoLA7rlofsh.Kt7WlB5Ui97X211z'
|
||||
effects: []
|
||||
folder: null
|
||||
@@ -184,16 +200,16 @@ system:
|
||||
value: 0
|
||||
label: +dom
|
||||
derivee: true
|
||||
vitesse:
|
||||
type: string
|
||||
value: '-/40'
|
||||
label: Vitesse
|
||||
derivee: true
|
||||
encombrement:
|
||||
type: number
|
||||
value: 0
|
||||
label: Encombrement
|
||||
derivee: false
|
||||
vitesse:
|
||||
type: string
|
||||
value: '-/40'
|
||||
label: Vitesse
|
||||
derivee: true
|
||||
protection:
|
||||
type: number
|
||||
value: -6
|
||||
@@ -299,7 +315,6 @@ prototypeToken:
|
||||
detectionModes: []
|
||||
appendNumber: false
|
||||
prependAdjective: false
|
||||
hexagonalShape: 0
|
||||
occludable:
|
||||
radius: 0
|
||||
ring:
|
||||
@@ -311,9 +326,19 @@ prototypeToken:
|
||||
subject:
|
||||
scale: 1
|
||||
texture: null
|
||||
turnMarker:
|
||||
mode: 1
|
||||
animation: null
|
||||
src: null
|
||||
disposition: false
|
||||
movementAction: null
|
||||
_stats:
|
||||
systemId: foundryvtt-reve-de-dragon
|
||||
systemVersion: 12.0.22
|
||||
coreVersion: '12.331'
|
||||
coreVersion: '13.350'
|
||||
lastModifiedBy: null
|
||||
compendiumSource: null
|
||||
duplicateSource: null
|
||||
exportSource: null
|
||||
flags: {}
|
||||
_key: '!actors!YjBDfNoLA7rlofsh'
|
||||
|
||||
|
||||
@@ -30,7 +30,11 @@ items:
|
||||
_stats:
|
||||
systemId: foundryvtt-reve-de-dragon
|
||||
systemVersion: 12.0.22
|
||||
coreVersion: '12.331'
|
||||
coreVersion: '13.350'
|
||||
lastModifiedBy: null
|
||||
compendiumSource: null
|
||||
duplicateSource: null
|
||||
exportSource: null
|
||||
_key: '!actors.items!99I06oTwCziLTnnl.shsUV8UpU18c0RJK'
|
||||
- _id: yDHZfK4RmwQW4YaW
|
||||
name: Discrétion
|
||||
@@ -59,7 +63,11 @@ items:
|
||||
_stats:
|
||||
systemId: foundryvtt-reve-de-dragon
|
||||
systemVersion: 12.0.22
|
||||
coreVersion: '12.331'
|
||||
coreVersion: '13.350'
|
||||
lastModifiedBy: null
|
||||
compendiumSource: null
|
||||
duplicateSource: null
|
||||
exportSource: null
|
||||
_key: '!actors.items!99I06oTwCziLTnnl.yDHZfK4RmwQW4YaW'
|
||||
- _id: CYpxxf1uTa78NWR9
|
||||
name: Esquive
|
||||
@@ -88,7 +96,11 @@ items:
|
||||
_stats:
|
||||
systemId: foundryvtt-reve-de-dragon
|
||||
systemVersion: 12.0.22
|
||||
coreVersion: '12.331'
|
||||
coreVersion: '13.350'
|
||||
lastModifiedBy: null
|
||||
compendiumSource: null
|
||||
duplicateSource: null
|
||||
exportSource: null
|
||||
_key: '!actors.items!99I06oTwCziLTnnl.CYpxxf1uTa78NWR9'
|
||||
- _id: 6DK46pyO0hzEuuUg
|
||||
name: Morsure
|
||||
@@ -117,7 +129,11 @@ items:
|
||||
_stats:
|
||||
systemId: foundryvtt-reve-de-dragon
|
||||
systemVersion: 12.0.22
|
||||
coreVersion: '12.331'
|
||||
coreVersion: '13.350'
|
||||
lastModifiedBy: null
|
||||
compendiumSource: null
|
||||
duplicateSource: null
|
||||
exportSource: null
|
||||
_key: '!actors.items!99I06oTwCziLTnnl.6DK46pyO0hzEuuUg'
|
||||
- _id: lzEdMrKXbOYrWG5S
|
||||
name: Vigilance
|
||||
@@ -146,7 +162,11 @@ items:
|
||||
_stats:
|
||||
systemId: foundryvtt-reve-de-dragon
|
||||
systemVersion: 12.0.22
|
||||
coreVersion: '12.331'
|
||||
coreVersion: '13.350'
|
||||
lastModifiedBy: null
|
||||
compendiumSource: null
|
||||
duplicateSource: null
|
||||
exportSource: null
|
||||
_key: '!actors.items!99I06oTwCziLTnnl.lzEdMrKXbOYrWG5S'
|
||||
- _id: PBS6YfmZLbSbwzpH
|
||||
name: Saut
|
||||
@@ -174,7 +194,12 @@ items:
|
||||
_stats:
|
||||
systemId: foundryvtt-reve-de-dragon
|
||||
systemVersion: 12.0.22
|
||||
coreVersion: '12.331'
|
||||
coreVersion: '13.350'
|
||||
lastModifiedBy: null
|
||||
compendiumSource: null
|
||||
duplicateSource: null
|
||||
exportSource: null
|
||||
flags: {}
|
||||
_key: '!actors.items!99I06oTwCziLTnnl.PBS6YfmZLbSbwzpH'
|
||||
effects: []
|
||||
folder: null
|
||||
@@ -241,16 +266,16 @@ system:
|
||||
value: '+0'
|
||||
label: +dom
|
||||
derivee: true
|
||||
vitesse:
|
||||
type: string
|
||||
value: 12/38
|
||||
label: Vitesse
|
||||
derivee: true
|
||||
encombrement:
|
||||
type: number
|
||||
value: 0
|
||||
label: Encombrement
|
||||
derivee: false
|
||||
vitesse:
|
||||
type: string
|
||||
value: 12/38
|
||||
label: Vitesse
|
||||
derivee: true
|
||||
protection:
|
||||
type: number
|
||||
value: 0
|
||||
@@ -353,7 +378,6 @@ prototypeToken:
|
||||
detectionModes: []
|
||||
appendNumber: false
|
||||
prependAdjective: false
|
||||
hexagonalShape: 0
|
||||
occludable:
|
||||
radius: 0
|
||||
ring:
|
||||
@@ -365,9 +389,19 @@ prototypeToken:
|
||||
subject:
|
||||
scale: 1
|
||||
texture: null
|
||||
turnMarker:
|
||||
mode: 1
|
||||
animation: null
|
||||
src: null
|
||||
disposition: false
|
||||
movementAction: null
|
||||
_stats:
|
||||
systemId: foundryvtt-reve-de-dragon
|
||||
systemVersion: 12.0.22
|
||||
coreVersion: '12.331'
|
||||
coreVersion: '13.350'
|
||||
lastModifiedBy: null
|
||||
compendiumSource: null
|
||||
duplicateSource: null
|
||||
exportSource: null
|
||||
flags: {}
|
||||
_key: '!actors!99I06oTwCziLTnnl'
|
||||
|
||||
|
||||
@@ -30,7 +30,11 @@ items:
|
||||
_stats:
|
||||
systemId: foundryvtt-reve-de-dragon
|
||||
systemVersion: 12.0.22
|
||||
coreVersion: '12.331'
|
||||
coreVersion: '13.350'
|
||||
lastModifiedBy: null
|
||||
compendiumSource: null
|
||||
duplicateSource: null
|
||||
exportSource: null
|
||||
_key: '!actors.items!DsE2xomX97onO2mN.shsUV8UpU18c0RJK'
|
||||
- _id: yDHZfK4RmwQW4YaW
|
||||
name: Discrétion
|
||||
@@ -59,7 +63,11 @@ items:
|
||||
_stats:
|
||||
systemId: foundryvtt-reve-de-dragon
|
||||
systemVersion: 12.0.22
|
||||
coreVersion: '12.331'
|
||||
coreVersion: '13.350'
|
||||
lastModifiedBy: null
|
||||
compendiumSource: null
|
||||
duplicateSource: null
|
||||
exportSource: null
|
||||
_key: '!actors.items!DsE2xomX97onO2mN.yDHZfK4RmwQW4YaW'
|
||||
- _id: CYpxxf1uTa78NWR9
|
||||
name: Esquive
|
||||
@@ -88,7 +96,11 @@ items:
|
||||
_stats:
|
||||
systemId: foundryvtt-reve-de-dragon
|
||||
systemVersion: 12.0.22
|
||||
coreVersion: '12.331'
|
||||
coreVersion: '13.350'
|
||||
lastModifiedBy: null
|
||||
compendiumSource: null
|
||||
duplicateSource: null
|
||||
exportSource: null
|
||||
_key: '!actors.items!DsE2xomX97onO2mN.CYpxxf1uTa78NWR9'
|
||||
- _id: 6DK46pyO0hzEuuUg
|
||||
name: Morsure
|
||||
@@ -117,7 +129,11 @@ items:
|
||||
_stats:
|
||||
systemId: foundryvtt-reve-de-dragon
|
||||
systemVersion: 12.0.22
|
||||
coreVersion: '12.331'
|
||||
coreVersion: '13.350'
|
||||
lastModifiedBy: null
|
||||
compendiumSource: null
|
||||
duplicateSource: null
|
||||
exportSource: null
|
||||
_key: '!actors.items!DsE2xomX97onO2mN.6DK46pyO0hzEuuUg'
|
||||
- _id: efl1HdDSKpBfImQ1
|
||||
name: Pierre Lancée
|
||||
@@ -146,7 +162,11 @@ items:
|
||||
_stats:
|
||||
systemId: foundryvtt-reve-de-dragon
|
||||
systemVersion: 12.0.22
|
||||
coreVersion: '12.331'
|
||||
coreVersion: '13.350'
|
||||
lastModifiedBy: null
|
||||
compendiumSource: null
|
||||
duplicateSource: null
|
||||
exportSource: null
|
||||
_key: '!actors.items!DsE2xomX97onO2mN.efl1HdDSKpBfImQ1'
|
||||
- _id: lzEdMrKXbOYrWG5S
|
||||
name: Vigilance
|
||||
@@ -175,7 +195,11 @@ items:
|
||||
_stats:
|
||||
systemId: foundryvtt-reve-de-dragon
|
||||
systemVersion: 12.0.22
|
||||
coreVersion: '12.331'
|
||||
coreVersion: '13.350'
|
||||
lastModifiedBy: null
|
||||
compendiumSource: null
|
||||
duplicateSource: null
|
||||
exportSource: null
|
||||
_key: '!actors.items!DsE2xomX97onO2mN.lzEdMrKXbOYrWG5S'
|
||||
- _id: WJq3afIoq0xUV2dF
|
||||
name: Saut
|
||||
@@ -203,7 +227,12 @@ items:
|
||||
_stats:
|
||||
systemId: foundryvtt-reve-de-dragon
|
||||
systemVersion: 12.0.22
|
||||
coreVersion: '12.331'
|
||||
coreVersion: '13.350'
|
||||
lastModifiedBy: null
|
||||
compendiumSource: null
|
||||
duplicateSource: null
|
||||
exportSource: null
|
||||
flags: {}
|
||||
_key: '!actors.items!DsE2xomX97onO2mN.WJq3afIoq0xUV2dF'
|
||||
effects: []
|
||||
folder: null
|
||||
@@ -270,16 +299,16 @@ system:
|
||||
value: -1
|
||||
label: +dom
|
||||
derivee: true
|
||||
vitesse:
|
||||
type: string
|
||||
value: 12/30
|
||||
label: Vitesse
|
||||
derivee: true
|
||||
encombrement:
|
||||
type: number
|
||||
value: 0
|
||||
label: Encombrement
|
||||
derivee: false
|
||||
vitesse:
|
||||
type: string
|
||||
value: 12/30
|
||||
label: Vitesse
|
||||
derivee: true
|
||||
protection:
|
||||
type: number
|
||||
value: 0
|
||||
@@ -391,7 +420,6 @@ prototypeToken:
|
||||
detectionModes: []
|
||||
appendNumber: false
|
||||
prependAdjective: false
|
||||
hexagonalShape: 0
|
||||
occludable:
|
||||
radius: 0
|
||||
ring:
|
||||
@@ -403,9 +431,19 @@ prototypeToken:
|
||||
subject:
|
||||
scale: 1
|
||||
texture: null
|
||||
turnMarker:
|
||||
mode: 1
|
||||
animation: null
|
||||
src: null
|
||||
disposition: false
|
||||
movementAction: null
|
||||
_stats:
|
||||
systemId: foundryvtt-reve-de-dragon
|
||||
systemVersion: 12.0.22
|
||||
coreVersion: '12.331'
|
||||
coreVersion: '13.350'
|
||||
lastModifiedBy: null
|
||||
compendiumSource: null
|
||||
duplicateSource: null
|
||||
exportSource: null
|
||||
flags: {}
|
||||
_key: '!actors!DsE2xomX97onO2mN'
|
||||
|
||||
|
||||
@@ -30,7 +30,11 @@ items:
|
||||
_stats:
|
||||
systemId: foundryvtt-reve-de-dragon
|
||||
systemVersion: 12.0.22
|
||||
coreVersion: '12.331'
|
||||
coreVersion: '13.350'
|
||||
lastModifiedBy: null
|
||||
compendiumSource: null
|
||||
duplicateSource: null
|
||||
exportSource: null
|
||||
_key: '!actors.items!i7pvn7kgTwIdKYtP.shsUV8UpU18c0RJK'
|
||||
- _id: CYpxxf1uTa78NWR9
|
||||
name: Esquive
|
||||
@@ -59,7 +63,11 @@ items:
|
||||
_stats:
|
||||
systemId: foundryvtt-reve-de-dragon
|
||||
systemVersion: 12.0.22
|
||||
coreVersion: '12.331'
|
||||
coreVersion: '13.350'
|
||||
lastModifiedBy: null
|
||||
compendiumSource: null
|
||||
duplicateSource: null
|
||||
exportSource: null
|
||||
_key: '!actors.items!i7pvn7kgTwIdKYtP.CYpxxf1uTa78NWR9'
|
||||
- _id: 6DK46pyO0hzEuuUg
|
||||
name: Morsure
|
||||
@@ -88,7 +96,11 @@ items:
|
||||
_stats:
|
||||
systemId: foundryvtt-reve-de-dragon
|
||||
systemVersion: 12.0.22
|
||||
coreVersion: '12.331'
|
||||
coreVersion: '13.350'
|
||||
lastModifiedBy: null
|
||||
compendiumSource: null
|
||||
duplicateSource: null
|
||||
exportSource: null
|
||||
_key: '!actors.items!i7pvn7kgTwIdKYtP.6DK46pyO0hzEuuUg'
|
||||
- _id: lzEdMrKXbOYrWG5S
|
||||
name: Vigilance
|
||||
@@ -117,7 +129,11 @@ items:
|
||||
_stats:
|
||||
systemId: foundryvtt-reve-de-dragon
|
||||
systemVersion: 12.0.22
|
||||
coreVersion: '12.331'
|
||||
coreVersion: '13.350'
|
||||
lastModifiedBy: null
|
||||
compendiumSource: null
|
||||
duplicateSource: null
|
||||
exportSource: null
|
||||
_key: '!actors.items!i7pvn7kgTwIdKYtP.lzEdMrKXbOYrWG5S'
|
||||
- _id: 3MgAaUHeKGBcbyr5
|
||||
name: Coup de pied
|
||||
@@ -145,7 +161,12 @@ items:
|
||||
_stats:
|
||||
systemId: foundryvtt-reve-de-dragon
|
||||
systemVersion: 12.0.22
|
||||
coreVersion: '12.331'
|
||||
coreVersion: '13.350'
|
||||
lastModifiedBy: null
|
||||
compendiumSource: null
|
||||
duplicateSource: null
|
||||
exportSource: null
|
||||
flags: {}
|
||||
_key: '!actors.items!i7pvn7kgTwIdKYtP.3MgAaUHeKGBcbyr5'
|
||||
effects: []
|
||||
folder: null
|
||||
@@ -212,16 +233,16 @@ system:
|
||||
value: '+4'
|
||||
label: +dom
|
||||
derivee: true
|
||||
vitesse:
|
||||
type: string
|
||||
value: 12/40
|
||||
label: Vitesse
|
||||
derivee: true
|
||||
encombrement:
|
||||
type: number
|
||||
value: 18
|
||||
label: Encombrement
|
||||
derivee: false
|
||||
vitesse:
|
||||
type: string
|
||||
value: 12/40
|
||||
label: Vitesse
|
||||
derivee: true
|
||||
protection:
|
||||
type: number
|
||||
value: 1
|
||||
@@ -307,7 +328,6 @@ prototypeToken:
|
||||
detectionModes: []
|
||||
appendNumber: false
|
||||
prependAdjective: false
|
||||
hexagonalShape: 0
|
||||
occludable:
|
||||
radius: 0
|
||||
ring:
|
||||
@@ -319,9 +339,19 @@ prototypeToken:
|
||||
subject:
|
||||
scale: 1
|
||||
texture: null
|
||||
turnMarker:
|
||||
mode: 1
|
||||
animation: null
|
||||
src: null
|
||||
disposition: false
|
||||
movementAction: null
|
||||
_stats:
|
||||
systemId: foundryvtt-reve-de-dragon
|
||||
systemVersion: 12.0.22
|
||||
coreVersion: '12.331'
|
||||
coreVersion: '13.350'
|
||||
lastModifiedBy: null
|
||||
compendiumSource: null
|
||||
duplicateSource: null
|
||||
exportSource: null
|
||||
flags: {}
|
||||
_key: '!actors!i7pvn7kgTwIdKYtP'
|
||||
|
||||
|
||||
@@ -30,7 +30,11 @@ items:
|
||||
_stats:
|
||||
systemId: foundryvtt-reve-de-dragon
|
||||
systemVersion: 12.0.22
|
||||
coreVersion: '12.331'
|
||||
coreVersion: '13.350'
|
||||
lastModifiedBy: null
|
||||
compendiumSource: null
|
||||
duplicateSource: null
|
||||
exportSource: null
|
||||
_key: '!actors.items!0ogeNTXl7IwYfWZR.Kt7WlB5Ui97X211z'
|
||||
effects: []
|
||||
folder: null
|
||||
@@ -97,16 +101,16 @@ system:
|
||||
value: '-'
|
||||
label: +dom
|
||||
derivee: true
|
||||
vitesse:
|
||||
type: string
|
||||
value: '-/40'
|
||||
label: Vitesse
|
||||
derivee: true
|
||||
encombrement:
|
||||
type: number
|
||||
value: 0
|
||||
label: Encombrement
|
||||
derivee: false
|
||||
vitesse:
|
||||
type: string
|
||||
value: '-/40'
|
||||
label: Vitesse
|
||||
derivee: true
|
||||
protection:
|
||||
type: number
|
||||
value: -8
|
||||
@@ -214,7 +218,6 @@ prototypeToken:
|
||||
detectionModes: []
|
||||
appendNumber: false
|
||||
prependAdjective: false
|
||||
hexagonalShape: 0
|
||||
occludable:
|
||||
radius: 0
|
||||
ring:
|
||||
@@ -226,9 +229,19 @@ prototypeToken:
|
||||
subject:
|
||||
scale: 1
|
||||
texture: null
|
||||
turnMarker:
|
||||
mode: 1
|
||||
animation: null
|
||||
src: null
|
||||
disposition: false
|
||||
movementAction: null
|
||||
_stats:
|
||||
systemId: foundryvtt-reve-de-dragon
|
||||
systemVersion: 12.0.22
|
||||
coreVersion: '12.331'
|
||||
coreVersion: '13.350'
|
||||
lastModifiedBy: null
|
||||
compendiumSource: null
|
||||
duplicateSource: null
|
||||
exportSource: null
|
||||
flags: {}
|
||||
_key: '!actors!0ogeNTXl7IwYfWZR'
|
||||
|
||||
|
||||
@@ -30,7 +30,11 @@ items:
|
||||
_stats:
|
||||
systemId: foundryvtt-reve-de-dragon
|
||||
systemVersion: 12.0.22
|
||||
coreVersion: '12.331'
|
||||
coreVersion: '13.350'
|
||||
lastModifiedBy: null
|
||||
compendiumSource: null
|
||||
duplicateSource: null
|
||||
exportSource: null
|
||||
_key: '!actors.items!c2CVCRQY3FiZXFre.shsUV8UpU18c0RJK'
|
||||
- _id: qilRzXpVaGceNmQp
|
||||
name: Dague
|
||||
@@ -59,7 +63,11 @@ items:
|
||||
_stats:
|
||||
systemId: foundryvtt-reve-de-dragon
|
||||
systemVersion: 12.0.22
|
||||
coreVersion: '12.331'
|
||||
coreVersion: '13.350'
|
||||
lastModifiedBy: null
|
||||
compendiumSource: null
|
||||
duplicateSource: null
|
||||
exportSource: null
|
||||
_key: '!actors.items!c2CVCRQY3FiZXFre.qilRzXpVaGceNmQp'
|
||||
- _id: yDHZfK4RmwQW4YaW
|
||||
name: Discrétion
|
||||
@@ -88,7 +96,11 @@ items:
|
||||
_stats:
|
||||
systemId: foundryvtt-reve-de-dragon
|
||||
systemVersion: 12.0.22
|
||||
coreVersion: '12.331'
|
||||
coreVersion: '13.350'
|
||||
lastModifiedBy: null
|
||||
compendiumSource: null
|
||||
duplicateSource: null
|
||||
exportSource: null
|
||||
_key: '!actors.items!c2CVCRQY3FiZXFre.yDHZfK4RmwQW4YaW'
|
||||
- _id: CYpxxf1uTa78NWR9
|
||||
name: Esquive
|
||||
@@ -117,7 +129,11 @@ items:
|
||||
_stats:
|
||||
systemId: foundryvtt-reve-de-dragon
|
||||
systemVersion: 12.0.22
|
||||
coreVersion: '12.331'
|
||||
coreVersion: '13.350'
|
||||
lastModifiedBy: null
|
||||
compendiumSource: null
|
||||
duplicateSource: null
|
||||
exportSource: null
|
||||
_key: '!actors.items!c2CVCRQY3FiZXFre.CYpxxf1uTa78NWR9'
|
||||
- _id: BjqRrGtHtTzuNpZB
|
||||
name: Griffes et Crocs
|
||||
@@ -146,7 +162,11 @@ items:
|
||||
_stats:
|
||||
systemId: foundryvtt-reve-de-dragon
|
||||
systemVersion: 12.0.22
|
||||
coreVersion: '12.331'
|
||||
coreVersion: '13.350'
|
||||
lastModifiedBy: null
|
||||
compendiumSource: null
|
||||
duplicateSource: null
|
||||
exportSource: null
|
||||
_key: '!actors.items!c2CVCRQY3FiZXFre.BjqRrGtHtTzuNpZB'
|
||||
- _id: lzEdMrKXbOYrWG5S
|
||||
name: Vigilance
|
||||
@@ -175,7 +195,11 @@ items:
|
||||
_stats:
|
||||
systemId: foundryvtt-reve-de-dragon
|
||||
systemVersion: 12.0.22
|
||||
coreVersion: '12.331'
|
||||
coreVersion: '13.350'
|
||||
lastModifiedBy: null
|
||||
compendiumSource: null
|
||||
duplicateSource: null
|
||||
exportSource: null
|
||||
_key: '!actors.items!c2CVCRQY3FiZXFre.lzEdMrKXbOYrWG5S'
|
||||
- _id: tqslo53FM201P3PM
|
||||
name: Saut
|
||||
@@ -203,7 +227,12 @@ items:
|
||||
_stats:
|
||||
systemId: foundryvtt-reve-de-dragon
|
||||
systemVersion: 12.0.22
|
||||
coreVersion: '12.331'
|
||||
coreVersion: '13.350'
|
||||
lastModifiedBy: null
|
||||
compendiumSource: null
|
||||
duplicateSource: null
|
||||
exportSource: null
|
||||
flags: {}
|
||||
_key: '!actors.items!c2CVCRQY3FiZXFre.tqslo53FM201P3PM'
|
||||
effects: []
|
||||
folder: null
|
||||
@@ -270,16 +299,16 @@ system:
|
||||
value: '+2'
|
||||
label: +dom
|
||||
derivee: true
|
||||
vitesse:
|
||||
type: string
|
||||
value: 14/42
|
||||
label: Vitesse
|
||||
derivee: true
|
||||
encombrement:
|
||||
type: number
|
||||
value: 0
|
||||
label: Encombrement
|
||||
derivee: false
|
||||
vitesse:
|
||||
type: string
|
||||
value: 14/42
|
||||
label: Vitesse
|
||||
derivee: true
|
||||
protection:
|
||||
type: number
|
||||
value: 2
|
||||
@@ -383,7 +412,6 @@ prototypeToken:
|
||||
detectionModes: []
|
||||
appendNumber: false
|
||||
prependAdjective: false
|
||||
hexagonalShape: 0
|
||||
occludable:
|
||||
radius: 0
|
||||
ring:
|
||||
@@ -395,9 +423,19 @@ prototypeToken:
|
||||
subject:
|
||||
scale: 1
|
||||
texture: null
|
||||
turnMarker:
|
||||
mode: 1
|
||||
animation: null
|
||||
src: null
|
||||
disposition: false
|
||||
movementAction: null
|
||||
_stats:
|
||||
systemId: foundryvtt-reve-de-dragon
|
||||
systemVersion: 12.0.22
|
||||
coreVersion: '12.331'
|
||||
coreVersion: '13.350'
|
||||
lastModifiedBy: null
|
||||
compendiumSource: null
|
||||
duplicateSource: null
|
||||
exportSource: null
|
||||
flags: {}
|
||||
_key: '!actors!c2CVCRQY3FiZXFre'
|
||||
|
||||
|
||||
@@ -30,7 +30,11 @@ items:
|
||||
_stats:
|
||||
systemId: foundryvtt-reve-de-dragon
|
||||
systemVersion: 12.0.22
|
||||
coreVersion: '12.331'
|
||||
coreVersion: '13.350'
|
||||
lastModifiedBy: null
|
||||
compendiumSource: null
|
||||
duplicateSource: null
|
||||
exportSource: null
|
||||
_key: '!actors.items!eGvgsF9uiR4vKLB2.shsUV8UpU18c0RJK'
|
||||
- _id: 4GmpkphbsmQjvVVK
|
||||
name: Escalade
|
||||
@@ -59,7 +63,11 @@ items:
|
||||
_stats:
|
||||
systemId: foundryvtt-reve-de-dragon
|
||||
systemVersion: 12.0.22
|
||||
coreVersion: '12.331'
|
||||
coreVersion: '13.350'
|
||||
lastModifiedBy: null
|
||||
compendiumSource: null
|
||||
duplicateSource: null
|
||||
exportSource: null
|
||||
_key: '!actors.items!eGvgsF9uiR4vKLB2.4GmpkphbsmQjvVVK'
|
||||
- _id: CYpxxf1uTa78NWR9
|
||||
name: Esquive
|
||||
@@ -88,7 +96,11 @@ items:
|
||||
_stats:
|
||||
systemId: foundryvtt-reve-de-dragon
|
||||
systemVersion: 12.0.22
|
||||
coreVersion: '12.331'
|
||||
coreVersion: '13.350'
|
||||
lastModifiedBy: null
|
||||
compendiumSource: null
|
||||
duplicateSource: null
|
||||
exportSource: null
|
||||
_key: '!actors.items!eGvgsF9uiR4vKLB2.CYpxxf1uTa78NWR9'
|
||||
- _id: BjqRrGtHtTzuNpZB
|
||||
name: Griffes et Crocs
|
||||
@@ -117,7 +129,11 @@ items:
|
||||
_stats:
|
||||
systemId: foundryvtt-reve-de-dragon
|
||||
systemVersion: 12.0.22
|
||||
coreVersion: '12.331'
|
||||
coreVersion: '13.350'
|
||||
lastModifiedBy: null
|
||||
compendiumSource: null
|
||||
duplicateSource: null
|
||||
exportSource: null
|
||||
_key: '!actors.items!eGvgsF9uiR4vKLB2.BjqRrGtHtTzuNpZB'
|
||||
- _id: lzEdMrKXbOYrWG5S
|
||||
name: Vigilance
|
||||
@@ -146,7 +162,11 @@ items:
|
||||
_stats:
|
||||
systemId: foundryvtt-reve-de-dragon
|
||||
systemVersion: 12.0.22
|
||||
coreVersion: '12.331'
|
||||
coreVersion: '13.350'
|
||||
lastModifiedBy: null
|
||||
compendiumSource: null
|
||||
duplicateSource: null
|
||||
exportSource: null
|
||||
_key: '!actors.items!eGvgsF9uiR4vKLB2.lzEdMrKXbOYrWG5S'
|
||||
- _id: 8O8e3Msr2KPZqwkY
|
||||
name: Saut
|
||||
@@ -174,7 +194,12 @@ items:
|
||||
_stats:
|
||||
systemId: foundryvtt-reve-de-dragon
|
||||
systemVersion: 12.0.22
|
||||
coreVersion: '12.331'
|
||||
coreVersion: '13.350'
|
||||
lastModifiedBy: null
|
||||
compendiumSource: null
|
||||
duplicateSource: null
|
||||
exportSource: null
|
||||
flags: {}
|
||||
_key: '!actors.items!eGvgsF9uiR4vKLB2.8O8e3Msr2KPZqwkY'
|
||||
effects: []
|
||||
folder: null
|
||||
@@ -241,16 +266,16 @@ system:
|
||||
value: '+3'
|
||||
label: +dom
|
||||
derivee: true
|
||||
vitesse:
|
||||
type: string
|
||||
value: 14/28
|
||||
label: Vitesse
|
||||
derivee: true
|
||||
encombrement:
|
||||
type: number
|
||||
value: 0
|
||||
label: Encombrement
|
||||
derivee: false
|
||||
vitesse:
|
||||
type: string
|
||||
value: 14/28
|
||||
label: Vitesse
|
||||
derivee: true
|
||||
protection:
|
||||
type: number
|
||||
value: 5
|
||||
@@ -357,7 +382,6 @@ prototypeToken:
|
||||
detectionModes: []
|
||||
appendNumber: false
|
||||
prependAdjective: false
|
||||
hexagonalShape: 0
|
||||
occludable:
|
||||
radius: 0
|
||||
ring:
|
||||
@@ -369,9 +393,19 @@ prototypeToken:
|
||||
subject:
|
||||
scale: 1
|
||||
texture: null
|
||||
turnMarker:
|
||||
mode: 1
|
||||
animation: null
|
||||
src: null
|
||||
disposition: false
|
||||
movementAction: null
|
||||
_stats:
|
||||
systemId: foundryvtt-reve-de-dragon
|
||||
systemVersion: 12.0.22
|
||||
coreVersion: '12.331'
|
||||
coreVersion: '13.350'
|
||||
lastModifiedBy: null
|
||||
compendiumSource: null
|
||||
duplicateSource: null
|
||||
exportSource: null
|
||||
flags: {}
|
||||
_key: '!actors!eGvgsF9uiR4vKLB2'
|
||||
|
||||
|
||||
@@ -29,7 +29,12 @@ items:
|
||||
_stats:
|
||||
systemId: foundryvtt-reve-de-dragon
|
||||
systemVersion: 12.0.22
|
||||
coreVersion: '12.331'
|
||||
coreVersion: '13.350'
|
||||
lastModifiedBy: null
|
||||
compendiumSource: null
|
||||
duplicateSource: null
|
||||
exportSource: null
|
||||
flags: {}
|
||||
_key: '!actors.items!icS4ht40EGkUbUus.0z35nbSeViandim4'
|
||||
- _id: w1BjJ6evq83ZMieY
|
||||
name: Esquive
|
||||
@@ -57,7 +62,12 @@ items:
|
||||
_stats:
|
||||
systemId: foundryvtt-reve-de-dragon
|
||||
systemVersion: 12.0.22
|
||||
coreVersion: '12.331'
|
||||
coreVersion: '13.350'
|
||||
lastModifiedBy: null
|
||||
compendiumSource: null
|
||||
duplicateSource: null
|
||||
exportSource: null
|
||||
flags: {}
|
||||
_key: '!actors.items!icS4ht40EGkUbUus.w1BjJ6evq83ZMieY'
|
||||
- _id: dv9QLfHGa5ZwDN7l
|
||||
name: Course
|
||||
@@ -85,7 +95,12 @@ items:
|
||||
_stats:
|
||||
systemId: foundryvtt-reve-de-dragon
|
||||
systemVersion: 12.0.22
|
||||
coreVersion: '12.331'
|
||||
coreVersion: '13.350'
|
||||
lastModifiedBy: null
|
||||
compendiumSource: null
|
||||
duplicateSource: null
|
||||
exportSource: null
|
||||
flags: {}
|
||||
_key: '!actors.items!icS4ht40EGkUbUus.dv9QLfHGa5ZwDN7l'
|
||||
- _id: VdLbNp5bz8hU6KDl
|
||||
name: Discrétion
|
||||
@@ -113,7 +128,12 @@ items:
|
||||
_stats:
|
||||
systemId: foundryvtt-reve-de-dragon
|
||||
systemVersion: 12.0.22
|
||||
coreVersion: '12.331'
|
||||
coreVersion: '13.350'
|
||||
lastModifiedBy: null
|
||||
compendiumSource: null
|
||||
duplicateSource: null
|
||||
exportSource: null
|
||||
flags: {}
|
||||
_key: '!actors.items!icS4ht40EGkUbUus.VdLbNp5bz8hU6KDl'
|
||||
- _id: TXC25fwUDxF6Qp5A
|
||||
name: Vigilance
|
||||
@@ -141,7 +161,12 @@ items:
|
||||
_stats:
|
||||
systemId: foundryvtt-reve-de-dragon
|
||||
systemVersion: 12.0.22
|
||||
coreVersion: '12.331'
|
||||
coreVersion: '13.350'
|
||||
lastModifiedBy: null
|
||||
compendiumSource: null
|
||||
duplicateSource: null
|
||||
exportSource: null
|
||||
flags: {}
|
||||
_key: '!actors.items!icS4ht40EGkUbUus.TXC25fwUDxF6Qp5A'
|
||||
effects: []
|
||||
folder: null
|
||||
@@ -208,16 +233,16 @@ system:
|
||||
value: 0
|
||||
label: +dom
|
||||
derivee: true
|
||||
vitesse:
|
||||
type: string
|
||||
value: 0
|
||||
label: Vitesse
|
||||
derivee: true
|
||||
encombrement:
|
||||
type: number
|
||||
value: 0
|
||||
label: Encombrement
|
||||
derivee: false
|
||||
vitesse:
|
||||
type: string
|
||||
value: 0
|
||||
label: Vitesse
|
||||
derivee: true
|
||||
protection:
|
||||
type: number
|
||||
value: 0
|
||||
@@ -364,7 +389,6 @@ prototypeToken:
|
||||
detectionModes: []
|
||||
appendNumber: false
|
||||
prependAdjective: false
|
||||
hexagonalShape: 0
|
||||
occludable:
|
||||
radius: 0
|
||||
ring:
|
||||
@@ -376,9 +400,19 @@ prototypeToken:
|
||||
subject:
|
||||
scale: 1
|
||||
texture: null
|
||||
turnMarker:
|
||||
mode: 1
|
||||
animation: null
|
||||
src: null
|
||||
disposition: false
|
||||
movementAction: null
|
||||
_stats:
|
||||
systemId: foundryvtt-reve-de-dragon
|
||||
systemVersion: 12.0.22
|
||||
coreVersion: '12.331'
|
||||
coreVersion: '13.350'
|
||||
lastModifiedBy: null
|
||||
compendiumSource: null
|
||||
duplicateSource: null
|
||||
exportSource: null
|
||||
flags: {}
|
||||
_key: '!actors!icS4ht40EGkUbUus'
|
||||
|
||||
|
||||
@@ -30,7 +30,11 @@ items:
|
||||
_stats:
|
||||
systemId: foundryvtt-reve-de-dragon
|
||||
systemVersion: 12.0.22
|
||||
coreVersion: '12.331'
|
||||
coreVersion: '13.350'
|
||||
lastModifiedBy: null
|
||||
compendiumSource: null
|
||||
duplicateSource: null
|
||||
exportSource: null
|
||||
_key: '!actors.items!sAcoQO3vvDDEJFva.shsUV8UpU18c0RJK'
|
||||
- _id: yDHZfK4RmwQW4YaW
|
||||
name: Discrétion
|
||||
@@ -59,7 +63,11 @@ items:
|
||||
_stats:
|
||||
systemId: foundryvtt-reve-de-dragon
|
||||
systemVersion: 12.0.22
|
||||
coreVersion: '12.331'
|
||||
coreVersion: '13.350'
|
||||
lastModifiedBy: null
|
||||
compendiumSource: null
|
||||
duplicateSource: null
|
||||
exportSource: null
|
||||
_key: '!actors.items!sAcoQO3vvDDEJFva.yDHZfK4RmwQW4YaW'
|
||||
- _id: CYpxxf1uTa78NWR9
|
||||
name: Esquive
|
||||
@@ -88,7 +96,11 @@ items:
|
||||
_stats:
|
||||
systemId: foundryvtt-reve-de-dragon
|
||||
systemVersion: 12.0.22
|
||||
coreVersion: '12.331'
|
||||
coreVersion: '13.350'
|
||||
lastModifiedBy: null
|
||||
compendiumSource: null
|
||||
duplicateSource: null
|
||||
exportSource: null
|
||||
_key: '!actors.items!sAcoQO3vvDDEJFva.CYpxxf1uTa78NWR9'
|
||||
- _id: BjqRrGtHtTzuNpZB
|
||||
name: Griffes et Crocs
|
||||
@@ -117,7 +129,11 @@ items:
|
||||
_stats:
|
||||
systemId: foundryvtt-reve-de-dragon
|
||||
systemVersion: 12.0.22
|
||||
coreVersion: '12.331'
|
||||
coreVersion: '13.350'
|
||||
lastModifiedBy: null
|
||||
compendiumSource: null
|
||||
duplicateSource: null
|
||||
exportSource: null
|
||||
_key: '!actors.items!sAcoQO3vvDDEJFva.BjqRrGtHtTzuNpZB'
|
||||
- _id: lzEdMrKXbOYrWG5S
|
||||
name: Vigilance
|
||||
@@ -146,7 +162,11 @@ items:
|
||||
_stats:
|
||||
systemId: foundryvtt-reve-de-dragon
|
||||
systemVersion: 12.0.22
|
||||
coreVersion: '12.331'
|
||||
coreVersion: '13.350'
|
||||
lastModifiedBy: null
|
||||
compendiumSource: null
|
||||
duplicateSource: null
|
||||
exportSource: null
|
||||
_key: '!actors.items!sAcoQO3vvDDEJFva.lzEdMrKXbOYrWG5S'
|
||||
- _id: WML1KyyQrFRbmsLn
|
||||
name: Saut
|
||||
@@ -174,7 +194,12 @@ items:
|
||||
_stats:
|
||||
systemId: foundryvtt-reve-de-dragon
|
||||
systemVersion: 12.0.22
|
||||
coreVersion: '12.331'
|
||||
coreVersion: '13.350'
|
||||
lastModifiedBy: null
|
||||
compendiumSource: null
|
||||
duplicateSource: null
|
||||
exportSource: null
|
||||
flags: {}
|
||||
_key: '!actors.items!sAcoQO3vvDDEJFva.WML1KyyQrFRbmsLn'
|
||||
effects: []
|
||||
folder: null
|
||||
@@ -241,16 +266,16 @@ system:
|
||||
value: '+0'
|
||||
label: +dom
|
||||
derivee: true
|
||||
vitesse:
|
||||
type: string
|
||||
value: 12/32
|
||||
label: Vitesse
|
||||
derivee: true
|
||||
encombrement:
|
||||
type: number
|
||||
value: 0
|
||||
label: Encombrement
|
||||
derivee: false
|
||||
vitesse:
|
||||
type: string
|
||||
value: 12/32
|
||||
label: Vitesse
|
||||
derivee: true
|
||||
protection:
|
||||
type: number
|
||||
value: 0
|
||||
@@ -354,7 +379,6 @@ prototypeToken:
|
||||
detectionModes: []
|
||||
appendNumber: false
|
||||
prependAdjective: false
|
||||
hexagonalShape: 0
|
||||
occludable:
|
||||
radius: 0
|
||||
ring:
|
||||
@@ -366,9 +390,19 @@ prototypeToken:
|
||||
subject:
|
||||
scale: 1
|
||||
texture: null
|
||||
turnMarker:
|
||||
mode: 1
|
||||
animation: null
|
||||
src: null
|
||||
disposition: false
|
||||
movementAction: null
|
||||
_stats:
|
||||
systemId: foundryvtt-reve-de-dragon
|
||||
systemVersion: 12.0.22
|
||||
coreVersion: '12.331'
|
||||
coreVersion: '13.350'
|
||||
lastModifiedBy: null
|
||||
compendiumSource: null
|
||||
duplicateSource: null
|
||||
exportSource: null
|
||||
flags: {}
|
||||
_key: '!actors!sAcoQO3vvDDEJFva'
|
||||
|
||||
|
||||
@@ -30,7 +30,11 @@ items:
|
||||
_stats:
|
||||
systemId: foundryvtt-reve-de-dragon
|
||||
systemVersion: 12.0.22
|
||||
coreVersion: '12.331'
|
||||
coreVersion: '13.350'
|
||||
lastModifiedBy: null
|
||||
compendiumSource: null
|
||||
duplicateSource: null
|
||||
exportSource: null
|
||||
_key: '!actors.items!YwqgGvzxMTgYZFyc.yDHZfK4RmwQW4YaW'
|
||||
- _id: CYpxxf1uTa78NWR9
|
||||
name: Esquive
|
||||
@@ -59,7 +63,11 @@ items:
|
||||
_stats:
|
||||
systemId: foundryvtt-reve-de-dragon
|
||||
systemVersion: 12.0.22
|
||||
coreVersion: '12.331'
|
||||
coreVersion: '13.350'
|
||||
lastModifiedBy: null
|
||||
compendiumSource: null
|
||||
duplicateSource: null
|
||||
exportSource: null
|
||||
_key: '!actors.items!YwqgGvzxMTgYZFyc.CYpxxf1uTa78NWR9'
|
||||
- _id: 6DK46pyO0hzEuuUg
|
||||
name: Morsure
|
||||
@@ -88,7 +96,11 @@ items:
|
||||
_stats:
|
||||
systemId: foundryvtt-reve-de-dragon
|
||||
systemVersion: 12.0.22
|
||||
coreVersion: '12.331'
|
||||
coreVersion: '13.350'
|
||||
lastModifiedBy: null
|
||||
compendiumSource: null
|
||||
duplicateSource: null
|
||||
exportSource: null
|
||||
_key: '!actors.items!YwqgGvzxMTgYZFyc.6DK46pyO0hzEuuUg'
|
||||
- _id: lzEdMrKXbOYrWG5S
|
||||
name: Vigilance
|
||||
@@ -117,7 +129,11 @@ items:
|
||||
_stats:
|
||||
systemId: foundryvtt-reve-de-dragon
|
||||
systemVersion: 12.0.22
|
||||
coreVersion: '12.331'
|
||||
coreVersion: '13.350'
|
||||
lastModifiedBy: null
|
||||
compendiumSource: null
|
||||
duplicateSource: null
|
||||
exportSource: null
|
||||
_key: '!actors.items!YwqgGvzxMTgYZFyc.lzEdMrKXbOYrWG5S'
|
||||
effects: []
|
||||
folder: null
|
||||
@@ -184,16 +200,16 @@ system:
|
||||
value: -4
|
||||
label: +dom
|
||||
derivee: true
|
||||
vitesse:
|
||||
type: string
|
||||
value: 8/14
|
||||
label: Vitesse
|
||||
derivee: true
|
||||
encombrement:
|
||||
type: number
|
||||
value: 0
|
||||
label: Encombrement
|
||||
derivee: false
|
||||
vitesse:
|
||||
type: string
|
||||
value: 8/14
|
||||
label: Vitesse
|
||||
derivee: true
|
||||
protection:
|
||||
type: number
|
||||
value: -8
|
||||
@@ -289,7 +305,6 @@ prototypeToken:
|
||||
detectionModes: []
|
||||
appendNumber: false
|
||||
prependAdjective: false
|
||||
hexagonalShape: 0
|
||||
occludable:
|
||||
radius: 0
|
||||
ring:
|
||||
@@ -301,9 +316,19 @@ prototypeToken:
|
||||
subject:
|
||||
scale: 1
|
||||
texture: null
|
||||
turnMarker:
|
||||
mode: 1
|
||||
animation: null
|
||||
src: null
|
||||
disposition: false
|
||||
movementAction: null
|
||||
_stats:
|
||||
systemId: foundryvtt-reve-de-dragon
|
||||
systemVersion: 12.0.22
|
||||
coreVersion: '12.331'
|
||||
coreVersion: '13.350'
|
||||
lastModifiedBy: null
|
||||
compendiumSource: null
|
||||
duplicateSource: null
|
||||
exportSource: null
|
||||
flags: {}
|
||||
_key: '!actors!YwqgGvzxMTgYZFyc'
|
||||
|
||||
|
||||
@@ -30,7 +30,11 @@ items:
|
||||
_stats:
|
||||
systemId: foundryvtt-reve-de-dragon
|
||||
systemVersion: 12.0.22
|
||||
coreVersion: '12.331'
|
||||
coreVersion: '13.350'
|
||||
lastModifiedBy: null
|
||||
compendiumSource: null
|
||||
duplicateSource: null
|
||||
exportSource: null
|
||||
_key: '!actors.items!NZfwIplunfOuuzuD.CYpxxf1uTa78NWR9'
|
||||
- _id: BjqRrGtHtTzuNpZB
|
||||
name: Griffes et Crocs
|
||||
@@ -59,7 +63,11 @@ items:
|
||||
_stats:
|
||||
systemId: foundryvtt-reve-de-dragon
|
||||
systemVersion: 12.0.22
|
||||
coreVersion: '12.331'
|
||||
coreVersion: '13.350'
|
||||
lastModifiedBy: null
|
||||
compendiumSource: null
|
||||
duplicateSource: null
|
||||
exportSource: null
|
||||
_key: '!actors.items!NZfwIplunfOuuzuD.BjqRrGtHtTzuNpZB'
|
||||
- _id: wDH57NvDsoN8IwhS
|
||||
name: Esquive (sol)
|
||||
@@ -87,7 +95,12 @@ items:
|
||||
_stats:
|
||||
systemId: foundryvtt-reve-de-dragon
|
||||
systemVersion: 12.0.22
|
||||
coreVersion: '12.331'
|
||||
coreVersion: '13.350'
|
||||
lastModifiedBy: null
|
||||
compendiumSource: null
|
||||
duplicateSource: null
|
||||
exportSource: null
|
||||
flags: {}
|
||||
_key: '!actors.items!NZfwIplunfOuuzuD.wDH57NvDsoN8IwhS'
|
||||
effects: []
|
||||
folder: null
|
||||
@@ -154,16 +167,16 @@ system:
|
||||
value: '+0'
|
||||
label: +dom
|
||||
derivee: true
|
||||
vitesse:
|
||||
type: string
|
||||
value: 'Sol : 4/0 Eau : 12/24'
|
||||
label: Vitesse
|
||||
derivee: true
|
||||
encombrement:
|
||||
type: number
|
||||
value: 0
|
||||
label: Encombrement
|
||||
derivee: false
|
||||
vitesse:
|
||||
type: string
|
||||
value: 'Sol : 4/0 Eau : 12/24'
|
||||
label: Vitesse
|
||||
derivee: true
|
||||
protection:
|
||||
type: number
|
||||
value: 2
|
||||
@@ -220,10 +233,10 @@ system:
|
||||
corps, même visage. Certaines sirènes, plus rarement, donnent
|
||||
des illusions d’hommes. Contrairement aux illusions des Yeux
|
||||
d’Hypnos, l’illusion des sirènes donne lieu à un
|
||||
jet de résistance (standard, @roll[reve-actuel/-8]). Comme pour les chants, ce JR est
|
||||
global : s’il réussit, toutes les sirènes apparaissent
|
||||
sous leur véritable apparence; s’il échoue, toutes sont
|
||||
perçues sous leur apparence illusoire.</p>
|
||||
jet de résistance (standard, @roll[reve-actuel/-8]). Comme pour les
|
||||
chants, ce JR est global : s’il réussit, toutes les
|
||||
sirènes apparaissent sous leur véritable apparence; s’il
|
||||
échoue, toutes sont perçues sous leur apparence illusoire.</p>
|
||||
|
||||
<h1>Alternatives</h1>
|
||||
|
||||
@@ -310,7 +323,6 @@ prototypeToken:
|
||||
detectionModes: []
|
||||
appendNumber: false
|
||||
prependAdjective: false
|
||||
hexagonalShape: 0
|
||||
occludable:
|
||||
radius: 0
|
||||
ring:
|
||||
@@ -322,9 +334,19 @@ prototypeToken:
|
||||
subject:
|
||||
scale: 1
|
||||
texture: null
|
||||
turnMarker:
|
||||
mode: 1
|
||||
animation: null
|
||||
src: null
|
||||
disposition: false
|
||||
movementAction: null
|
||||
_stats:
|
||||
systemId: foundryvtt-reve-de-dragon
|
||||
systemVersion: 12.0.22
|
||||
coreVersion: '12.331'
|
||||
coreVersion: '13.350'
|
||||
lastModifiedBy: null
|
||||
compendiumSource: null
|
||||
duplicateSource: null
|
||||
exportSource: null
|
||||
flags: {}
|
||||
_key: '!actors!NZfwIplunfOuuzuD'
|
||||
|
||||
|
||||
@@ -30,7 +30,11 @@ items:
|
||||
_stats:
|
||||
systemId: foundryvtt-reve-de-dragon
|
||||
systemVersion: 12.0.22
|
||||
coreVersion: '12.331'
|
||||
coreVersion: '13.350'
|
||||
lastModifiedBy: null
|
||||
compendiumSource: null
|
||||
duplicateSource: null
|
||||
exportSource: null
|
||||
_key: '!actors.items!dfssLNfeAGrUe70T.shsUV8UpU18c0RJK'
|
||||
- _id: yDHZfK4RmwQW4YaW
|
||||
name: Discrétion
|
||||
@@ -59,7 +63,11 @@ items:
|
||||
_stats:
|
||||
systemId: foundryvtt-reve-de-dragon
|
||||
systemVersion: 12.0.22
|
||||
coreVersion: '12.331'
|
||||
coreVersion: '13.350'
|
||||
lastModifiedBy: null
|
||||
compendiumSource: null
|
||||
duplicateSource: null
|
||||
exportSource: null
|
||||
_key: '!actors.items!dfssLNfeAGrUe70T.yDHZfK4RmwQW4YaW'
|
||||
- _id: CYpxxf1uTa78NWR9
|
||||
name: Esquive
|
||||
@@ -87,7 +95,12 @@ items:
|
||||
_stats:
|
||||
systemId: foundryvtt-reve-de-dragon
|
||||
systemVersion: 12.0.22
|
||||
coreVersion: '12.331'
|
||||
coreVersion: '13.350'
|
||||
lastModifiedBy: null
|
||||
compendiumSource: null
|
||||
duplicateSource: null
|
||||
exportSource: null
|
||||
flags: {}
|
||||
_key: '!actors.items!dfssLNfeAGrUe70T.CYpxxf1uTa78NWR9'
|
||||
- _id: BjqRrGtHtTzuNpZB
|
||||
name: Griffes et Crocs
|
||||
@@ -115,7 +128,12 @@ items:
|
||||
_stats:
|
||||
systemId: foundryvtt-reve-de-dragon
|
||||
systemVersion: 12.0.22
|
||||
coreVersion: '12.331'
|
||||
coreVersion: '13.350'
|
||||
lastModifiedBy: null
|
||||
compendiumSource: null
|
||||
duplicateSource: null
|
||||
exportSource: null
|
||||
flags: {}
|
||||
_key: '!actors.items!dfssLNfeAGrUe70T.BjqRrGtHtTzuNpZB'
|
||||
- _id: lzEdMrKXbOYrWG5S
|
||||
name: Vigilance
|
||||
@@ -144,7 +162,11 @@ items:
|
||||
_stats:
|
||||
systemId: foundryvtt-reve-de-dragon
|
||||
systemVersion: 12.0.22
|
||||
coreVersion: '12.331'
|
||||
coreVersion: '13.350'
|
||||
lastModifiedBy: null
|
||||
compendiumSource: null
|
||||
duplicateSource: null
|
||||
exportSource: null
|
||||
_key: '!actors.items!dfssLNfeAGrUe70T.lzEdMrKXbOYrWG5S'
|
||||
- _id: MBJkmpxzFM0ZJyyS
|
||||
name: Saut
|
||||
@@ -172,7 +194,12 @@ items:
|
||||
_stats:
|
||||
systemId: foundryvtt-reve-de-dragon
|
||||
systemVersion: 12.0.22
|
||||
coreVersion: '12.331'
|
||||
coreVersion: '13.350'
|
||||
lastModifiedBy: null
|
||||
compendiumSource: null
|
||||
duplicateSource: null
|
||||
exportSource: null
|
||||
flags: {}
|
||||
_key: '!actors.items!dfssLNfeAGrUe70T.MBJkmpxzFM0ZJyyS'
|
||||
effects: []
|
||||
folder: null
|
||||
@@ -239,16 +266,16 @@ system:
|
||||
value: '+5'
|
||||
label: +dom
|
||||
derivee: true
|
||||
vitesse:
|
||||
type: string
|
||||
value: 14/48
|
||||
label: Vitesse
|
||||
derivee: true
|
||||
encombrement:
|
||||
type: number
|
||||
value: 0
|
||||
label: Encombrement
|
||||
derivee: false
|
||||
vitesse:
|
||||
type: string
|
||||
value: 14/48
|
||||
label: Vitesse
|
||||
derivee: true
|
||||
protection:
|
||||
type: number
|
||||
value: 4
|
||||
@@ -345,7 +372,6 @@ prototypeToken:
|
||||
detectionModes: []
|
||||
appendNumber: false
|
||||
prependAdjective: false
|
||||
hexagonalShape: 0
|
||||
occludable:
|
||||
radius: 0
|
||||
ring:
|
||||
@@ -357,9 +383,19 @@ prototypeToken:
|
||||
subject:
|
||||
scale: 1
|
||||
texture: null
|
||||
turnMarker:
|
||||
mode: 1
|
||||
animation: null
|
||||
src: null
|
||||
disposition: false
|
||||
movementAction: null
|
||||
_stats:
|
||||
systemId: foundryvtt-reve-de-dragon
|
||||
systemVersion: 12.0.22
|
||||
coreVersion: '12.331'
|
||||
coreVersion: '13.350'
|
||||
lastModifiedBy: null
|
||||
compendiumSource: null
|
||||
duplicateSource: null
|
||||
exportSource: null
|
||||
flags: {}
|
||||
_key: '!actors!dfssLNfeAGrUe70T'
|
||||
|
||||
|
||||
@@ -30,7 +30,11 @@ items:
|
||||
_stats:
|
||||
systemId: foundryvtt-reve-de-dragon
|
||||
systemVersion: 12.0.22
|
||||
coreVersion: '12.331'
|
||||
coreVersion: '13.350'
|
||||
lastModifiedBy: null
|
||||
compendiumSource: null
|
||||
duplicateSource: null
|
||||
exportSource: null
|
||||
_key: '!actors.items!e4KXDpAj4seWov6A.NctG7suzvGE7ZZzj'
|
||||
- _id: shsUV8UpU18c0RJK
|
||||
name: Course
|
||||
@@ -59,7 +63,11 @@ items:
|
||||
_stats:
|
||||
systemId: foundryvtt-reve-de-dragon
|
||||
systemVersion: 12.0.22
|
||||
coreVersion: '12.331'
|
||||
coreVersion: '13.350'
|
||||
lastModifiedBy: null
|
||||
compendiumSource: null
|
||||
duplicateSource: null
|
||||
exportSource: null
|
||||
_key: '!actors.items!e4KXDpAj4seWov6A.shsUV8UpU18c0RJK'
|
||||
- _id: CYpxxf1uTa78NWR9
|
||||
name: Esquive
|
||||
@@ -88,7 +96,11 @@ items:
|
||||
_stats:
|
||||
systemId: foundryvtt-reve-de-dragon
|
||||
systemVersion: 12.0.22
|
||||
coreVersion: '12.331'
|
||||
coreVersion: '13.350'
|
||||
lastModifiedBy: null
|
||||
compendiumSource: null
|
||||
duplicateSource: null
|
||||
exportSource: null
|
||||
_key: '!actors.items!e4KXDpAj4seWov6A.CYpxxf1uTa78NWR9'
|
||||
- _id: lzEdMrKXbOYrWG5S
|
||||
name: Vigilance
|
||||
@@ -117,7 +129,11 @@ items:
|
||||
_stats:
|
||||
systemId: foundryvtt-reve-de-dragon
|
||||
systemVersion: 12.0.22
|
||||
coreVersion: '12.331'
|
||||
coreVersion: '13.350'
|
||||
lastModifiedBy: null
|
||||
compendiumSource: null
|
||||
duplicateSource: null
|
||||
exportSource: null
|
||||
_key: '!actors.items!e4KXDpAj4seWov6A.lzEdMrKXbOYrWG5S'
|
||||
effects: []
|
||||
folder: null
|
||||
@@ -184,16 +200,16 @@ system:
|
||||
value: '+7'
|
||||
label: +dom
|
||||
derivee: true
|
||||
vitesse:
|
||||
type: string
|
||||
value: 14/30
|
||||
label: Vitesse
|
||||
derivee: true
|
||||
encombrement:
|
||||
type: number
|
||||
value: 0
|
||||
label: Encombrement
|
||||
derivee: false
|
||||
vitesse:
|
||||
type: string
|
||||
value: 14/30
|
||||
label: Vitesse
|
||||
derivee: true
|
||||
protection:
|
||||
type: number
|
||||
value: 8
|
||||
@@ -228,18 +244,18 @@ system:
|
||||
désolations et autres lieux où Thanatos a laissé son
|
||||
empreinte. Ils possèdent le même pouvoir de non
|
||||
agressivité s’appliquant aux humanoïdes que la harpie. La
|
||||
victime doit jouer un jet de résistance standard, @roll[reve-actuel/-8], et en cas
|
||||
d’échec, réussir un jet de @roll[Volonté/-3]
|
||||
pour pouvoir attaquer le tournedent. Le JR n’est à jouer
|
||||
qu’une seule fois, et en cas d’échec, le jet de
|
||||
VOLONTÉ est à jouer tous les rounds. La non agressivité
|
||||
ne s’applique qu’à l’égard du tournedent qui
|
||||
l’a lancée, et il ne peut pas réutiliser son pouvoir sur
|
||||
un personnage qui a réussi son JR. En combat, les bras-bouches du
|
||||
tournedent sont capables de parer comme s’ils étaient des
|
||||
épées (mêmes limitations). Ses réussites
|
||||
particulières sont usuellement passées en
|
||||
<em>rapidité</em>.</p>
|
||||
victime doit jouer un jet de résistance standard,
|
||||
@roll[reve-actuel/-8], et en cas d’échec, réussir un jet
|
||||
de @roll[Volonté/-3] pour pouvoir attaquer le tournedent. Le JR n’est
|
||||
à jouer qu’une seule fois, et en cas d’échec, le
|
||||
jet de VOLONTÉ est à jouer tous les rounds. La non
|
||||
agressivité ne s’applique qu’à
|
||||
l’égard du tournedent qui l’a lancée, et il ne
|
||||
peut pas réutiliser son pouvoir sur un personnage qui a réussi
|
||||
son JR. En combat, les bras-bouches du tournedent sont capables de parer
|
||||
comme s’ils étaient des épées (mêmes
|
||||
limitations). Ses réussites particulières sont usuellement
|
||||
passées en <em>rapidité</em>.</p>
|
||||
race: ''
|
||||
notesmj: ''
|
||||
ownership:
|
||||
@@ -308,7 +324,6 @@ prototypeToken:
|
||||
detectionModes: []
|
||||
appendNumber: false
|
||||
prependAdjective: false
|
||||
hexagonalShape: 0
|
||||
occludable:
|
||||
radius: 0
|
||||
ring:
|
||||
@@ -320,9 +335,19 @@ prototypeToken:
|
||||
subject:
|
||||
scale: 1
|
||||
texture: null
|
||||
turnMarker:
|
||||
mode: 1
|
||||
animation: null
|
||||
src: null
|
||||
disposition: false
|
||||
movementAction: null
|
||||
_stats:
|
||||
systemId: foundryvtt-reve-de-dragon
|
||||
systemVersion: 12.0.22
|
||||
coreVersion: '12.331'
|
||||
coreVersion: '13.350'
|
||||
lastModifiedBy: null
|
||||
compendiumSource: null
|
||||
duplicateSource: null
|
||||
exportSource: null
|
||||
flags: {}
|
||||
_key: '!actors!e4KXDpAj4seWov6A'
|
||||
|
||||
|
||||
@@ -30,7 +30,11 @@ items:
|
||||
_stats:
|
||||
systemId: foundryvtt-reve-de-dragon
|
||||
systemVersion: 12.0.22
|
||||
coreVersion: '12.331'
|
||||
coreVersion: '13.350'
|
||||
lastModifiedBy: null
|
||||
compendiumSource: null
|
||||
duplicateSource: null
|
||||
exportSource: null
|
||||
_key: '!actors.items!PwcnOb8HIb6mBcFo.yDHZfK4RmwQW4YaW'
|
||||
- _id: CYpxxf1uTa78NWR9
|
||||
name: Esquive
|
||||
@@ -59,7 +63,11 @@ items:
|
||||
_stats:
|
||||
systemId: foundryvtt-reve-de-dragon
|
||||
systemVersion: 12.0.22
|
||||
coreVersion: '12.331'
|
||||
coreVersion: '13.350'
|
||||
lastModifiedBy: null
|
||||
compendiumSource: null
|
||||
duplicateSource: null
|
||||
exportSource: null
|
||||
_key: '!actors.items!PwcnOb8HIb6mBcFo.CYpxxf1uTa78NWR9'
|
||||
- _id: 6DK46pyO0hzEuuUg
|
||||
name: Morsure
|
||||
@@ -88,7 +96,11 @@ items:
|
||||
_stats:
|
||||
systemId: foundryvtt-reve-de-dragon
|
||||
systemVersion: 12.0.22
|
||||
coreVersion: '12.331'
|
||||
coreVersion: '13.350'
|
||||
lastModifiedBy: null
|
||||
compendiumSource: null
|
||||
duplicateSource: null
|
||||
exportSource: null
|
||||
_key: '!actors.items!PwcnOb8HIb6mBcFo.6DK46pyO0hzEuuUg'
|
||||
- _id: lzEdMrKXbOYrWG5S
|
||||
name: Vigilance
|
||||
@@ -117,7 +129,11 @@ items:
|
||||
_stats:
|
||||
systemId: foundryvtt-reve-de-dragon
|
||||
systemVersion: 12.0.22
|
||||
coreVersion: '12.331'
|
||||
coreVersion: '13.350'
|
||||
lastModifiedBy: null
|
||||
compendiumSource: null
|
||||
duplicateSource: null
|
||||
exportSource: null
|
||||
_key: '!actors.items!PwcnOb8HIb6mBcFo.lzEdMrKXbOYrWG5S'
|
||||
effects: []
|
||||
folder: null
|
||||
@@ -184,16 +200,16 @@ system:
|
||||
value: -5
|
||||
label: +dom
|
||||
derivee: true
|
||||
vitesse:
|
||||
type: string
|
||||
value: 10/16
|
||||
label: Vitesse
|
||||
derivee: true
|
||||
encombrement:
|
||||
type: number
|
||||
value: 0
|
||||
label: Encombrement
|
||||
derivee: false
|
||||
vitesse:
|
||||
type: string
|
||||
value: 10/16
|
||||
label: Vitesse
|
||||
derivee: true
|
||||
protection:
|
||||
type: number
|
||||
value: -8
|
||||
@@ -285,7 +301,6 @@ prototypeToken:
|
||||
detectionModes: []
|
||||
appendNumber: false
|
||||
prependAdjective: false
|
||||
hexagonalShape: 0
|
||||
occludable:
|
||||
radius: 0
|
||||
ring:
|
||||
@@ -297,9 +312,19 @@ prototypeToken:
|
||||
subject:
|
||||
scale: 1
|
||||
texture: null
|
||||
turnMarker:
|
||||
mode: 1
|
||||
animation: null
|
||||
src: null
|
||||
disposition: false
|
||||
movementAction: null
|
||||
_stats:
|
||||
systemId: foundryvtt-reve-de-dragon
|
||||
systemVersion: 12.0.22
|
||||
coreVersion: '12.331'
|
||||
coreVersion: '13.350'
|
||||
lastModifiedBy: null
|
||||
compendiumSource: null
|
||||
duplicateSource: null
|
||||
exportSource: null
|
||||
flags: {}
|
||||
_key: '!actors!PwcnOb8HIb6mBcFo'
|
||||
|
||||
|
||||
@@ -30,7 +30,11 @@ items:
|
||||
_stats:
|
||||
systemId: foundryvtt-reve-de-dragon
|
||||
systemVersion: 12.0.22
|
||||
coreVersion: '12.331'
|
||||
coreVersion: '13.350'
|
||||
lastModifiedBy: null
|
||||
compendiumSource: null
|
||||
duplicateSource: null
|
||||
exportSource: null
|
||||
_key: '!actors.items!ZjE5HioS5N2GX88S.CYpxxf1uTa78NWR9'
|
||||
- _id: 5LRlcObZfaefTV6j
|
||||
name: Pinces
|
||||
@@ -58,7 +62,12 @@ items:
|
||||
_stats:
|
||||
systemId: foundryvtt-reve-de-dragon
|
||||
systemVersion: 12.0.22
|
||||
coreVersion: '12.331'
|
||||
coreVersion: '13.350'
|
||||
lastModifiedBy: null
|
||||
compendiumSource: null
|
||||
duplicateSource: null
|
||||
exportSource: null
|
||||
flags: {}
|
||||
_key: '!actors.items!ZjE5HioS5N2GX88S.5LRlcObZfaefTV6j'
|
||||
effects: []
|
||||
folder: null
|
||||
@@ -125,16 +134,16 @@ system:
|
||||
value: '+2'
|
||||
label: +dom
|
||||
derivee: true
|
||||
vitesse:
|
||||
type: string
|
||||
value: 12/24
|
||||
label: Vitesse
|
||||
derivee: true
|
||||
encombrement:
|
||||
type: number
|
||||
value: 0
|
||||
label: Encombrement
|
||||
derivee: false
|
||||
vitesse:
|
||||
type: string
|
||||
value: 12/24
|
||||
label: Vitesse
|
||||
derivee: true
|
||||
protection:
|
||||
type: number
|
||||
value: 4
|
||||
@@ -230,7 +239,6 @@ prototypeToken:
|
||||
detectionModes: []
|
||||
appendNumber: false
|
||||
prependAdjective: false
|
||||
hexagonalShape: 0
|
||||
occludable:
|
||||
radius: 0
|
||||
ring:
|
||||
@@ -242,9 +250,19 @@ prototypeToken:
|
||||
subject:
|
||||
scale: 1
|
||||
texture: null
|
||||
turnMarker:
|
||||
mode: 1
|
||||
animation: null
|
||||
src: null
|
||||
disposition: false
|
||||
movementAction: null
|
||||
_stats:
|
||||
systemId: foundryvtt-reve-de-dragon
|
||||
systemVersion: 12.0.22
|
||||
coreVersion: '12.331'
|
||||
coreVersion: '13.350'
|
||||
lastModifiedBy: null
|
||||
compendiumSource: null
|
||||
duplicateSource: null
|
||||
exportSource: null
|
||||
flags: {}
|
||||
_key: '!actors!ZjE5HioS5N2GX88S'
|
||||
|
||||
|
||||
@@ -30,7 +30,11 @@ items:
|
||||
_stats:
|
||||
systemId: foundryvtt-reve-de-dragon
|
||||
systemVersion: 12.0.22
|
||||
coreVersion: '12.331'
|
||||
coreVersion: '13.350'
|
||||
lastModifiedBy: null
|
||||
compendiumSource: null
|
||||
duplicateSource: null
|
||||
exportSource: null
|
||||
_key: '!actors.items!m5clAUpf4PKPD7E9.os88Rsp7mBkahqmh'
|
||||
- _id: CYpxxf1uTa78NWR9
|
||||
name: Esquive (vol)
|
||||
@@ -59,7 +63,11 @@ items:
|
||||
_stats:
|
||||
systemId: foundryvtt-reve-de-dragon
|
||||
systemVersion: 12.0.22
|
||||
coreVersion: '12.331'
|
||||
coreVersion: '13.350'
|
||||
lastModifiedBy: null
|
||||
compendiumSource: null
|
||||
duplicateSource: null
|
||||
exportSource: null
|
||||
_key: '!actors.items!m5clAUpf4PKPD7E9.CYpxxf1uTa78NWR9'
|
||||
- _id: lzEdMrKXbOYrWG5S
|
||||
name: Vigilance
|
||||
@@ -88,7 +96,11 @@ items:
|
||||
_stats:
|
||||
systemId: foundryvtt-reve-de-dragon
|
||||
systemVersion: 12.0.22
|
||||
coreVersion: '12.331'
|
||||
coreVersion: '13.350'
|
||||
lastModifiedBy: null
|
||||
compendiumSource: null
|
||||
duplicateSource: null
|
||||
exportSource: null
|
||||
_key: '!actors.items!m5clAUpf4PKPD7E9.lzEdMrKXbOYrWG5S'
|
||||
effects: []
|
||||
folder: null
|
||||
@@ -155,16 +167,16 @@ system:
|
||||
value: '+1'
|
||||
label: +dom
|
||||
derivee: true
|
||||
vitesse:
|
||||
type: string
|
||||
value: 12/36
|
||||
label: Vitesse
|
||||
derivee: true
|
||||
encombrement:
|
||||
type: number
|
||||
value: 0
|
||||
label: Encombrement
|
||||
derivee: false
|
||||
vitesse:
|
||||
type: string
|
||||
value: 12/36
|
||||
label: Vitesse
|
||||
derivee: true
|
||||
protection:
|
||||
type: number
|
||||
value: 2
|
||||
@@ -264,7 +276,6 @@ prototypeToken:
|
||||
detectionModes: []
|
||||
appendNumber: false
|
||||
prependAdjective: false
|
||||
hexagonalShape: 0
|
||||
occludable:
|
||||
radius: 0
|
||||
ring:
|
||||
@@ -276,9 +287,19 @@ prototypeToken:
|
||||
subject:
|
||||
scale: 1
|
||||
texture: null
|
||||
turnMarker:
|
||||
mode: 1
|
||||
animation: null
|
||||
src: null
|
||||
disposition: false
|
||||
movementAction: null
|
||||
_stats:
|
||||
systemId: foundryvtt-reve-de-dragon
|
||||
systemVersion: 12.0.22
|
||||
coreVersion: '12.331'
|
||||
coreVersion: '13.350'
|
||||
lastModifiedBy: null
|
||||
compendiumSource: null
|
||||
duplicateSource: null
|
||||
exportSource: null
|
||||
flags: {}
|
||||
_key: '!actors!m5clAUpf4PKPD7E9'
|
||||
|
||||
|
||||
@@ -30,7 +30,11 @@ items:
|
||||
_stats:
|
||||
systemId: foundryvtt-reve-de-dragon
|
||||
systemVersion: 12.0.22
|
||||
coreVersion: '12.331'
|
||||
coreVersion: '13.350'
|
||||
lastModifiedBy: null
|
||||
compendiumSource: null
|
||||
duplicateSource: null
|
||||
exportSource: null
|
||||
_key: '!actors.items!31XA4x5Yk04TGUHR.os88Rsp7mBkahqmh'
|
||||
- _id: shsUV8UpU18c0RJK
|
||||
name: Course
|
||||
@@ -59,7 +63,11 @@ items:
|
||||
_stats:
|
||||
systemId: foundryvtt-reve-de-dragon
|
||||
systemVersion: 12.0.22
|
||||
coreVersion: '12.331'
|
||||
coreVersion: '13.350'
|
||||
lastModifiedBy: null
|
||||
compendiumSource: null
|
||||
duplicateSource: null
|
||||
exportSource: null
|
||||
_key: '!actors.items!31XA4x5Yk04TGUHR.shsUV8UpU18c0RJK'
|
||||
- _id: CYpxxf1uTa78NWR9
|
||||
name: Esquive
|
||||
@@ -88,7 +96,11 @@ items:
|
||||
_stats:
|
||||
systemId: foundryvtt-reve-de-dragon
|
||||
systemVersion: 12.0.22
|
||||
coreVersion: '12.331'
|
||||
coreVersion: '13.350'
|
||||
lastModifiedBy: null
|
||||
compendiumSource: null
|
||||
duplicateSource: null
|
||||
exportSource: null
|
||||
_key: '!actors.items!31XA4x5Yk04TGUHR.CYpxxf1uTa78NWR9'
|
||||
- _id: lzEdMrKXbOYrWG5S
|
||||
name: Vigilance
|
||||
@@ -117,7 +129,11 @@ items:
|
||||
_stats:
|
||||
systemId: foundryvtt-reve-de-dragon
|
||||
systemVersion: 12.0.22
|
||||
coreVersion: '12.331'
|
||||
coreVersion: '13.350'
|
||||
lastModifiedBy: null
|
||||
compendiumSource: null
|
||||
duplicateSource: null
|
||||
exportSource: null
|
||||
_key: '!actors.items!31XA4x5Yk04TGUHR.lzEdMrKXbOYrWG5S'
|
||||
effects: []
|
||||
folder: null
|
||||
@@ -184,16 +200,16 @@ system:
|
||||
value: '+1'
|
||||
label: +dom
|
||||
derivee: true
|
||||
vitesse:
|
||||
type: string
|
||||
value: 12/36
|
||||
label: Vitesse
|
||||
derivee: true
|
||||
encombrement:
|
||||
type: number
|
||||
value: 12
|
||||
label: Encombrement
|
||||
derivee: false
|
||||
vitesse:
|
||||
type: string
|
||||
value: 12/36
|
||||
label: Vitesse
|
||||
derivee: true
|
||||
protection:
|
||||
type: number
|
||||
value: 0
|
||||
@@ -306,7 +322,6 @@ prototypeToken:
|
||||
detectionModes: []
|
||||
appendNumber: false
|
||||
prependAdjective: false
|
||||
hexagonalShape: 0
|
||||
occludable:
|
||||
radius: 0
|
||||
ring:
|
||||
@@ -318,9 +333,19 @@ prototypeToken:
|
||||
subject:
|
||||
scale: 1
|
||||
texture: null
|
||||
turnMarker:
|
||||
mode: 1
|
||||
animation: null
|
||||
src: null
|
||||
disposition: false
|
||||
movementAction: null
|
||||
_stats:
|
||||
systemId: foundryvtt-reve-de-dragon
|
||||
systemVersion: 12.0.22
|
||||
coreVersion: '12.331'
|
||||
coreVersion: '13.350'
|
||||
lastModifiedBy: null
|
||||
compendiumSource: null
|
||||
duplicateSource: null
|
||||
exportSource: null
|
||||
flags: {}
|
||||
_key: '!actors!31XA4x5Yk04TGUHR'
|
||||
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user