Compare commits

..

No commits in common. "v11" and "12.0.29" have entirely different histories.
v11 ... 12.0.29

27 changed files with 303 additions and 159 deletions

View File

@ -1,12 +1,4 @@
# 12.0 # 12.0
## 12.0.31 - le mausolée d'Astrobazzarh
- Correction: les automatisation de combat jouer-MJ fonctionnentde nouveau
## 12.0.30 - le cauchemar d'Astrobazzarh
- calcul automatique du niveau des entités selon leur rêve
- la description des créatures venimeuses contient un lien vers leur venin
- Correction: les messages de combats ne marchaient plus (Changement combiné Foundry + rêve de Dragon)
## 12.0.29 - L'indexation d'Astrobazzarh ## 12.0.29 - L'indexation d'Astrobazzarh
- les liens dans la descriptions des sorts pointent vers les sorts du compendium - les liens dans la descriptions des sorts pointent vers les sorts du compendium
- la description du chrasme contient le lien vers son venin plutôt qu'un tableau - la description du chrasme contient le lien vers son venin plutôt qu'un tableau

View File

@ -37,15 +37,6 @@ export class RdDBaseActorReve extends RdDBaseActor {
this.system.sante.endurance.value = Math.min(this.system.sante.endurance.value, this.system.sante.endurance.max) this.system.sante.endurance.value = Math.min(this.system.sante.endurance.value, this.system.sante.endurance.max)
} }
getCarac() {
return foundry.utils.mergeObject(this.system.carac,
{
'reve-actuel': this.getCaracReveActuel(),
'chance-actuelle': this.getCaracChanceActuelle()
},
{ inplace: false })
}
getCaracChanceActuelle() { getCaracChanceActuelle() {
return { return {
label: 'Chance actuelle', label: 'Chance actuelle',
@ -62,6 +53,7 @@ export class RdDBaseActorReve extends RdDBaseActor {
}; };
} }
getTaille() { return Misc.toInt(this.system.carac.taille?.value) } getTaille() { return Misc.toInt(this.system.carac.taille?.value) }
getConstitution() { return this.getReve() } getConstitution() { return this.getReve() }
getForce() { return this.getReve() } getForce() { return this.getReve() }
@ -314,6 +306,16 @@ export class RdDBaseActorReve extends RdDBaseActor {
}); });
} }
getCarac() {
// TODO: le niveau d'une entité de cauchemar devrait être exclu...
return foundry.utils.mergeObject(this.system.carac,
{
'reve-actuel': this.getCaracReveActuel(),
'chance-actuelle': this.getCaracChanceActuelle()
},
{ inplace: false })
}
/* -------------------------------------------- */ /* -------------------------------------------- */
async rollCarac(caracName, jetResistance = undefined) { async rollCarac(caracName, jetResistance = undefined) {
if (Grammar.equalsInsensitive(caracName, 'taille')) { if (Grammar.equalsInsensitive(caracName, 'taille')) {
@ -497,7 +499,7 @@ export class RdDBaseActorReve extends RdDBaseActor {
|| entite.isEntiteAccordee(this)) { || entite.isEntiteAccordee(this)) {
return true; return true;
} }
const rolled = await RdDResolutionTable.roll(this.getReveActuel(), - Number(entite.getNiveau())); const rolled = await RdDResolutionTable.roll(this.getReveActuel(), - Number(entite.system.carac.niveau.value));
const rollData = { const rollData = {
alias: this.getAlias(), alias: this.getAlias(),
rolled: rolled, rolled: rolled,

View File

@ -15,8 +15,6 @@ export class RdDActorEntiteSheet extends RdDBaseActorReveSheet {
async getData() { async getData() {
let formData = await super.getData(); let formData = await super.getData();
formData.niveau = this.actor.getNiveau()
delete formData.system.carac.niveau
formData.resonances = this.actor.system.sante.resonnance.actors.map(actorId => game.actors.get(actorId)) formData.resonances = this.actor.system.sante.resonnance.actors.map(actorId => game.actors.get(actorId))
.map(actor => { return { id: actor.id, name: actor.name, img: actor.img } }) .map(actor => { return { id: actor.id, name: actor.name, img: actor.img } })
return formData return formData
@ -35,6 +33,10 @@ export class RdDActorEntiteSheet extends RdDBaseActorReveSheet {
let compName = event.currentTarget.attributes.compname.value; let compName = event.currentTarget.attributes.compname.value;
this.actor.updateCreatureCompetence(compName, "carac_value", parseInt(event.target.value)); this.actor.updateCreatureCompetence(compName, "carac_value", parseInt(event.target.value));
}); });
this.html.find('.creature-niveau').change(async event => {
let compName = event.currentTarget.attributes.compname.value;
this.actor.updateCreatureCompetence(compName, "niveau", parseInt(event.target.value));
})
this.html.find('.creature-dommages').change(async event => { this.html.find('.creature-dommages').change(async event => {
let compName = event.currentTarget.attributes.compname.value; let compName = event.currentTarget.attributes.compname.value;
this.actor.updateCreatureCompetence(compName, "dommages", parseInt(event.target.value)); this.actor.updateCreatureCompetence(compName, "dommages", parseInt(event.target.value));

View File

@ -1,7 +1,6 @@
import { ENTITE_INCARNE, ENTITE_NONINCARNE } from "../constants.js"; import { ENTITE_INCARNE, ENTITE_NONINCARNE } from "../constants.js";
import { ITEM_TYPES } from "../item.js"; import { ITEM_TYPES } from "../item.js";
import { Misc } from "../misc.js"; import { Misc } from "../misc.js";
import { RdDCarac } from "../rdd-carac.js";
import { RdDEncaisser } from "../rdd-roll-encaisser.js"; import { RdDEncaisser } from "../rdd-roll-encaisser.js";
import { STATUSES } from "../settings/status-effects.js"; import { STATUSES } from "../settings/status-effects.js";
import { RdDBaseActorReve } from "./base-actor-reve.js"; import { RdDBaseActorReve } from "./base-actor-reve.js";
@ -19,23 +18,12 @@ export class RdDEntite extends RdDBaseActorReve {
isEntite(typeentite = []) { isEntite(typeentite = []) {
return (typeentite.length == 0 || typeentite.includes(this.system.definition.typeentite)); return (typeentite.length == 0 || typeentite.includes(this.system.definition.typeentite));
} }
isNonIncarnee() { return this.isEntite([ENTITE_NONINCARNE]) } isNonIncarnee() { return this.isEntite([ENTITE_NONINCARNE]) }
getReveActuel() { getReveActuel() {
return Misc.toInt(this.system.carac.reve?.value) return Misc.toInt(this.system.carac.reve?.value)
} }
getCarac() {
const carac = super.getCarac()
delete carac.niveau
return carac
}
getNiveau() {
const reve = this.getReve()
return RdDCarac.getCaracDerivee(reve).niveau
}
getForce() { return this.getReve() } getForce() { return this.getReve() }
getAgilite() { return this.getReve() } getAgilite() { return this.getReve() }
getChance() { return this.getReve() } getChance() { return this.getReve() }
@ -76,7 +64,6 @@ export class RdDEntite extends RdDBaseActorReve {
} }
return {} return {}
} }
async encaisser() { async encaisser() {
if (this.isNonIncarnee()) { if (this.isNonIncarnee()) {
return return

View File

@ -279,7 +279,7 @@ export class Mapping {
const race = ['', 'humain'].includes(Grammar.toLowerCaseNoAccent(actor.system.race)) ? '' : (actor.system.race + ' ') const race = ['', 'humain'].includes(Grammar.toLowerCaseNoAccent(actor.system.race)) ? '' : (actor.system.race + ' ')
const heure = actor.system.heure const heure = actor.system.heure
const hn = `${sexeFeminin} à l'heure ${RdDTimestamp.definition(heure).avecArticle}` const hn = `${sexeFeminin} à l'heure ${RdDTimestamp.definition(heure).avecArticle}`
const age = (actor.system.age && actor.system.age >0) ? `${actor.system.age} ans` : undefined const age = actor.system.age ? `${actor.system.age} ans` : undefined
const taille = actor.system.taille const taille = actor.system.taille
const poids = actor.system.poids const poids = actor.system.poids
const cheveux = actor.system.cheveux ? `cheveux ${actor.system.cheveux}` : undefined const cheveux = actor.system.cheveux ? `cheveux ${actor.system.cheveux}` : undefined

View File

@ -429,9 +429,9 @@ export class RdDStatBlockParser {
actorData.taille = taille.value; actorData.taille = taille.value;
} }
// Get weight // Get weight
const poids = XRegExp.exec(statString, XRegExp(",\\s+(?<value>\\d+)\\s+kg", 'giu')); const poids = XRegExp.exec(statString, XRegExp("(?<value>\\d+ kg)", 'giu'));
if (poids?.value) { if (poids?.value) {
actorData.poids = poids.value + ' kg'; actorData.poids = poids.value;
} }
// Get cheveux // Get cheveux
const cheveux = XRegExp.exec(statString, XRegExp("kg,\\s+(?<value>[A-Za-zÀ-ÖØ-öø-ÿ\\s\\-]+),\\s+yeux", 'giu')); const cheveux = XRegExp.exec(statString, XRegExp("kg,\\s+(?<value>[A-Za-zÀ-ÖØ-öø-ÿ\\s\\-]+),\\s+yeux", 'giu'));
@ -496,9 +496,9 @@ export class RdDStatBlockParser {
let namePersonnage = "Importé" let namePersonnage = "Importé"
if (statString.includes(", né")) { if (statString.includes(", né")) {
// Name is all string before first comma ',' // Name is all string before first comma ','
namePersonnage = XRegExp.exec(statString, XRegExp("(?<value>[\\p{Letter}\'\\-\\s\\d]+),", 'giu')); namePersonnage = XRegExp.exec(statString, XRegExp("(?<value>[\\p{Letter}\\'\\-\\s\\d]+),", 'giu'));
} else { } else {
namePersonnage = XRegExp.exec(statString, XRegExp("(?<value>[\\p{Letter}\'\\-\\s\\d]+)\\s+TAILLE", 'giu')); namePersonnage = XRegExp.exec(statString, XRegExp("(?<value>[\\p{Letter}\\'\\-\\s\\d]+)\\s+TAILLE", 'giu'));
} }
if (namePersonnage?.value) { if (namePersonnage?.value) {
return Misc.upperFirst(namePersonnage?.value.toLowerCase()); return Misc.upperFirst(namePersonnage?.value.toLowerCase());

View File

@ -3,38 +3,38 @@ import { Misc } from "./misc.js";
const TABLE_CARACTERISTIQUES_DERIVEES = { const TABLE_CARACTERISTIQUES_DERIVEES = {
// xp: coût pour passer du niveau inférieur à ce niveau // xp: coût pour passer du niveau inférieur à ce niveau
1: { xp: 3, niveau: -5, poids: "moins de 1kg", poidsMin: 0, poidsMax: 1, plusdom: -5, sconst: 0.5, sust: 0.1 }, 1: { xp: 3, poids: "moins de 1kg", poidsMin: 0, poidsMax: 1, plusdom: -5, sconst: 0.5, sust: 0.1 },
2: { xp: 3, niveau: -4, poids: "1-5", poidsMin: 1, poidsMax: 5, plusdom: -4, sconst: 0.5, sust: 0.3 }, 2: { xp: 3, poids: "1-5", poidsMin: 1, poidsMax: 5, plusdom: -4, sconst: 0.5, sust: 0.3 },
3: { xp: 4, niveau: -3, poids: "6-10", poidsMin: 6, poidsMax: 10, plusdom: -3, sconst: 1, sust: 0.5, beaute: 'hideux' }, 3: { xp: 4, poids: "6-10", poidsMin: 6, poidsMax: 10, plusdom: -3, sconst: 1, sust: 0.5, beaute: 'hideux' },
4: { xp: 4, niveau: -2, poids: "11-20", poidsMin: 11, poidsMax: 20, plusdom: -3, sconst: 1, sust: 1, beaute: 'repoussant' }, 4: { xp: 4, poids: "11-20", poidsMin: 11, poidsMax: 20, plusdom: -3, sconst: 1, sust: 1, beaute: 'repoussant' },
5: { xp: 5, niveau: -1, poids: "21-30", poidsMin: 21, poidsMax: 30, plusdom: -2, sconst: 1, sust: 1, beaute: 'franchement très laid' }, 5: { xp: 5, poids: "21-30", poidsMin: 21, poidsMax: 30, plusdom: -2, sconst: 1, sust: 1, beaute: 'franchement très laid' },
6: { xp: 5, niveau: 0, poids: "31-40", poidsMin: 31, poidsMax: 40, plusdom: -1, sconst: 2, sust: 2, beaute: 'laid' }, 6: { xp: 5, poids: "31-40", poidsMin: 31, poidsMax: 40, plusdom: -1, sconst: 2, sust: 2, beaute: 'laid' },
7: { xp: 6, niveau: 0, poids: "41-50", poidsMin: 41, poidsMax: 50, plusdom: -1, sconst: 2, sust: 2, beaute: 'très désavantagé' }, 7: { xp: 6, poids: "41-50", poidsMin: 41, poidsMax: 50, plusdom: -1, sconst: 2, sust: 2, beaute: 'très désavantagé' },
8: { xp: 6, niveau: 0, poids: "51-60", poidsMin: 51, poidsMax: 60, plusdom: 0, sconst: 2, sust: 2, beaute: 'désavantagé' }, 8: { xp: 6, poids: "51-60", poidsMin: 51, poidsMax: 60, plusdom: 0, sconst: 2, sust: 2, beaute: 'désavantagé' },
9: { xp: 7, niveau: 0, poids: "61-65", poidsMin: 61, poidsMax: 65, plusdom: 0, sconst: 3, sust: 2, beaute: 'pas terrible' }, 9: { xp: 7, poids: "61-65", poidsMin: 61, poidsMax: 65, plusdom: 0, sconst: 3, sust: 2, beaute: 'pas terrible' },
10: { xp: 7, niveau: 0, poids: "66-70", poidsMin: 66, poidsMax: 70, plusdom: 0, sconst: 3, sust: 3, beaute: 'commun' }, 10: { xp: 7, poids: "66-70", poidsMin: 66, poidsMax: 70, plusdom: 0, sconst: 3, sust: 3, beaute: 'commun' },
11: { xp: 8, niveau: 1, poids: "71-75", poidsMin: 71, poidsMax: 75, plusdom: 0, sconst: 3, sust: 3, beaute: 'pas mal' }, 11: { xp: 8, poids: "71-75", poidsMin: 71, poidsMax: 75, plusdom: 0, sconst: 3, sust: 3, beaute: 'pas mal' },
12: { xp: 8, niveau: 1, poids: "76-80", poidsMin: 76, poidsMax: 80, plusdom: +1, sconst: 4, sust: 3, beaute: 'avantagé' }, 12: { xp: 8, poids: "76-80", poidsMin: 76, poidsMax: 80, plusdom: +1, sconst: 4, sust: 3, beaute: 'avantagé' },
13: { xp: 9, niveau: 2, poids: "81-90", poidsMin: 81, poidsMax: 90, plusdom: +1, sconst: 4, sust: 3, beaute: 'mignon' }, 13: { xp: 9, poids: "81-90", poidsMin: 81, poidsMax: 90, plusdom: +1, sconst: 4, sust: 3, beaute: 'mignon' },
14: { xp: 9, niveau: 2, poids: "91-100", poidsMin: 91, poidsMax: 100, plusdom: +2, sconst: 4, sust: 4, beaute: 'beau' }, 14: { xp: 9, poids: "91-100", poidsMin: 91, poidsMax: 100, plusdom: +2, sconst: 4, sust: 4, beaute: 'beau' },
15: { xp: 10, niveau: 3, poids: "101-110", poidsMin: 101, poidsMax: 110, plusdom: +2, sconst: 5, sust: 4, beaute: 'très beau' }, 15: { xp: 10, poids: "101-110", poidsMin: 101, poidsMax: 110, plusdom: +2, sconst: 5, sust: 4, beaute: 'très beau' },
16: { xp: 20, niveau: 3, poids: "111-120", poidsMin: 111, poidsMax: 120, plusdom: +3, sconst: 5, sust: 4, beaute: 'éblouissant' }, 16: { xp: 20, poids: "111-120", poidsMin: 111, poidsMax: 120, plusdom: +3, sconst: 5, sust: 4, beaute: 'éblouissant' },
17: { xp: 30, niveau: 4, poids: "121-131", poidsMin: 121, poidsMax: 131, plusdom: +3, sconst: 5, sust: 5 }, 17: { xp: 30, poids: "121-131", poidsMin: 121, poidsMax: 131, plusdom: +3, sconst: 5, sust: 5 },
18: { xp: 40, niveau: 4, poids: "131-141", poidsMin: 131, poidsMax: 141, plusdom: +4, sconst: 6, sust: 5 }, 18: { xp: 40, poids: "131-141", poidsMin: 131, poidsMax: 141, plusdom: +4, sconst: 6, sust: 5 },
19: { xp: 50, niveau: 5, poids: "141-150", poidsMin: 141, poidsMax: 150, plusdom: +4, sconst: 6, sust: 5 }, 19: { xp: 50, poids: "141-150", poidsMin: 141, poidsMax: 150, plusdom: +4, sconst: 6, sust: 5 },
20: { xp: 60, niveau: 5, poids: "151-160", poidsMin: 151, poidsMax: 160, plusdom: +4, sconst: 6, sust: 6 }, 20: { xp: 60, poids: "151-160", poidsMin: 151, poidsMax: 160, plusdom: +4, sconst: 6, sust: 6 },
21: { xp: 70, niveau: 6, poids: "161-180", poidsMin: 161, poidsMax: 180, plusdom: +5, sconst: 7, sust: 6 }, 21: { xp: 70, poids: "161-180", poidsMin: 161, poidsMax: 180, plusdom: +5, sconst: 7, sust: 6 },
22: { xp: 80, niveau: 6, poids: "181-200", poidsMin: 181, poidsMax: 200, plusdom: +5, sconst: 7, sust: 7 }, 22: { xp: 80, poids: "181-200", poidsMin: 181, poidsMax: 200, plusdom: +5, sconst: 7, sust: 7 },
23: { xp: 90, niveau: 7, poids: "201-300", poidsMin: 201, poidsMax: 300, plusdom: +6, sconst: 7, sust: 8 }, 23: { xp: 90, poids: "201-300", poidsMin: 201, poidsMax: 300, plusdom: +6, sconst: 7, sust: 8 },
24: { xp: 100, niveau: 7, poids: "301-400", poidsMin: 301, poidsMax: 400, plusdom: +6, sconst: 8, sust: 9 }, 24: { xp: 100, poids: "301-400", poidsMin: 301, poidsMax: 400, plusdom: +6, sconst: 8, sust: 9 },
25: { xp: 110, niveau: 8, poids: "401-500", poidsMin: 401, poidsMax: 500, plusdom: +7, sconst: 8, sust: 10 }, 25: { xp: 110, poids: "401-500", poidsMin: 401, poidsMax: 500, plusdom: +7, sconst: 8, sust: 10 },
26: { xp: 120, niveau: 8, poids: "501-600", poidsMin: 501, poidsMax: 600, plusdom: +7, sconst: 8, sust: 11 }, 26: { xp: 120, poids: "501-600", poidsMin: 501, poidsMax: 600, plusdom: +7, sconst: 8, sust: 11 },
27: { xp: 130, niveau: 9, poids: "601-700", poidsMin: 601, poidsMax: 700, plusdom: +8, sconst: 9, sust: 12 }, 27: { xp: 130, poids: "601-700", poidsMin: 601, poidsMax: 700, plusdom: +8, sconst: 9, sust: 12 },
28: { xp: 140, niveau: 9, poids: "701-800", poidsMin: 701, poidsMax: 800, plusdom: +8, sconst: 9, sust: 13 }, 28: { xp: 140, poids: "701-800", poidsMin: 701, poidsMax: 800, plusdom: +8, sconst: 9, sust: 13 },
29: { xp: 150, niveau: 10, poids: "801-900", poidsMin: 801, poidsMax: 900, plusdom: +9, sconst: 9, sust: 14 }, 29: { xp: 150, poids: "801-900", poidsMin: 801, poidsMax: 900, plusdom: +9, sconst: 9, sust: 14 },
30: { xp: 160, niveau: 10, poids: "901-1000", poidsMin: 901, poidsMax: 1000, plusdom: +9, sconst: 10, sust: 15 }, 30: { xp: 160, poids: "901-1000", poidsMin: 901, poidsMax: 1000, plusdom: +9, sconst: 10, sust: 15 },
31: { xp: 170, niveau: 11, poids: "1001-1500", poidsMin: 1001, poidsMax: 1500, plusdom: +10, sconst: 10, sust: 16 }, 31: { xp: 170, poids: "1001-1500", poidsMin: 1001, poidsMax: 1500, plusdom: +10, sconst: 10, sust: 16 },
32: { xp: 180, niveau: 11, poids: "1501-2000", poidsMin: 1501, poidsMax: 2000, plusdom: +11, sconst: 10, sust: 17 } 32: { xp: 180, poids: "1501-2000", poidsMin: 1501, poidsMax: 2000, plusdom: +11, sconst: 10, sust: 17 }
}; };
export class RdDCarac { export class RdDCarac {

View File

@ -752,6 +752,7 @@ export class RdDCombat {
dialog.render(true); dialog.render(true);
} }
/* -------------------------------------------- */ /* -------------------------------------------- */
_prepareAttaque(competence, arme) { _prepareAttaque(competence, arme) {
let rollData = { let rollData = {

View File

@ -14,14 +14,13 @@ export class Targets {
return { return {
id: target?.id, id: target?.id,
name: target?.document.name, name: target?.document.name,
img: target?.document.texture.src ?? target?.actor.img ?? 'icons/svg/mystery-man.svg' img: target?.document.texture.src ?? target?.actor.img ?? 'icons/svg/mystery-man.svg',
target
};
} }
}
static buildActorTokenData(tokenId, actor) { static buildActorTokenData(tokenId, actor) {
return { id: tokenId, name: actor.name, img: actor.img ?? 'icons/svg/mystery-man.svg' }; return { id: tokenId, name: actor.name, img: actor.img ?? 'icons/svg/mystery-man.svg' };
} }
static isTargetEntite(target) { static isTargetEntite(target) {
return target?.actor.type == 'entite' && target?.actor.system.definition.typeentite == ENTITE_NONINCARNE; return target?.actor.type == 'entite' && target?.actor.system.definition.typeentite == ENTITE_NONINCARNE;
} }

View File

@ -257,8 +257,47 @@ system:
d&eacute;vore.</p> d&eacute;vore.</p>
<h1>Venin</h1> <h1>Venin</h1>
<p>@UUID[Compendium.foundryvtt-reve-de-dragon.maladies-et-poisons.Item.v7yZidE9mObKO566]{Venin d'Araflate}</p>
<p></p> <table style="width: 65.039%; height: 65px;" border="1">
<tbody>
<tr style="height: 16px;">
<td style="width: 30.8567%; height: 16px;">Malignit&eacute;</td>
<td style="width: 68.3263%; height: 16px;">6</td>
</tr>
<tr style="height: 16px;">
<td style="width: 30.8567%; height: 16px;">P&eacute;riodicit&eacute;</td>
<td style="width: 68.3263%; height: 16px;">1 round</td>
</tr>
<tr style="height: 16px;">
<td style="width: 30.8567%; height: 16px;">Dommages</td>
<td style="width: 68.3263%; height: 16px;">-1d6 points d'endurance</td>
</tr>
<tr style="height: 17px;">
<td style="width: 30.8567%; height: 17px;">Antidotes</td>
<td style="width: 68.3263%; height: 17px;">-3 \ Liqueur de Bagdol +12, Lait
de lune +6</td>
</tr>
</tbody>
</table>
race: '' race: ''
notesmj: '' notesmj: ''
ownership: ownership:

View File

@ -228,7 +228,7 @@ system:
<h1>Venin</h1> <h1>Venin</h1>
<p>@UUID[Compendium.foundryvtt-reve-de-dragon.maladies-et-poisons.Item.cFMUtU6LZG0mKeDl]{Venin de chrasme}</p> <p>@UUID[Compendium.foundryvtt-reve-de-dragon.maladies-et-poisons.Item.cFMUtU6LZG0mKeDl]{Venin de chrasme}</p>
<p></p>
race: '' race: ''
notesmj: '' notesmj: ''
ownership: ownership:

View File

@ -257,7 +257,56 @@ system:
<h1 style="box-sizing: border-box; user-select: text; color: #191813; <h1 style="box-sizing: border-box; user-select: text; color: #191813;
font-family: GoudyAcc, sans-serif;">Venin</h1> font-family: GoudyAcc, sans-serif;">Venin</h1>
<p>@UUID[Compendium.foundryvtt-reve-de-dragon.maladies-et-poisons.Item.IF19EUvrY1HL87lr]{Venin paralysant de goule}</p>
<table style="box-sizing: border-box; user-select: text; width: 395px;
color: #191813; font-family: GoudyAcc, sans-serif; height: 65px;"
border="1">
<tbody style="box-sizing: border-box; user-select: text;">
<tr style="box-sizing: border-box; user-select: text; height: 16px;">
<td style="box-sizing: border-box; user-select: text; width: 122px; height:
16px;">Malignit&eacute;</td>
<td style="box-sizing: border-box; user-select: text; width: 272px; height:
16px;">6</td>
</tr>
<tr style="box-sizing: border-box; user-select: text; height: 16px;">
<td style="box-sizing: border-box; user-select: text; width: 122px; height:
16px;">P&eacute;riodicit&eacute;</td>
<td style="box-sizing: border-box; user-select: text; width: 272px; height:
16px;">1 round</td>
</tr>
<tr style="box-sizing: border-box; user-select: text; height: 16px;">
<td style="box-sizing: border-box; user-select: text; width: 122px; height:
16px;">Dommages</td>
<td style="box-sizing: border-box; user-select: text; width: 272px; height:
16px;">1 ligne de fatigue</td>
</tr>
<tr style="box-sizing: border-box; user-select: text; height: 17px;">
<td style="box-sizing: border-box; user-select: text; width: 122px; height:
17px;">Antidotes</td>
<td style="box-sizing: border-box; user-select: text; width: 272px; height:
17px;">-4 \ Floume-dhu +16</td>
</tr>
</tbody>
</table>
<p>La paralysie intervient quand toutes les lignes de fatigue sont pleines <p>La paralysie intervient quand toutes les lignes de fatigue sont pleines
et dure 6 heures.</p> et dure 6 heures.</p>

View File

@ -219,8 +219,50 @@ system:
attaque d&egrave;s qu&rsquo;il est surpris ou se croit en danger.</p> attaque d&egrave;s qu&rsquo;il est surpris ou se croit en danger.</p>
<h1>Venin</h1> <h1>Venin</h1>
<p>@UUID[Compendium.foundryvtt-reve-de-dragon.maladies-et-poisons.Item.iwlN0bNJ5XNNfjgj]{Venin de scologriffe}</p>
<p></p> <p>Sensation aigu&euml; de d&eacute;s&eacute;quilibre. Jouer VOLONT&Eacute;
&agrave; -3. En cas d&rsquo;&eacute;chec, on chute sans parvenir &agrave; se
relever.</p>
<table style="width: 59.506%;" border="1">
<tbody>
<tr>
<td style="width: 21.6667%;">Malignit&eacute;</td>
<td style="width: 77.5%;">3</td>
</tr>
<tr>
<td style="width: 21.6667%;">P&eacute;riodicit&eacute;</td>
<td style="width: 77.5%;">1 minute</td>
</tr>
<tr>
<td style="width: 21.6667%;">Dommages</td>
<td style="width: 77.5%;">-1 point de vie</td>
</tr>
<tr>
<td style="width: 21.6667%;">Antidotes</td>
<td style="width: 77.5%;">-3 \ Liqueur de Bagdol +16, Topazo&iuml;ne +8</td>
</tr>
</tbody>
</table>
race: '' race: ''
notesmj: '' notesmj: ''
ownership: ownership:

View File

@ -215,8 +215,47 @@ system:
est mortel.</p> est mortel.</p>
<h1>Venin</h1> <h1>Venin</h1>
<p>@UUID[Compendium.foundryvtt-reve-de-dragon.maladies-et-poisons.Item.lUeNPc0ECKqHglbG]{Venin de vipère jaune}</p>
<p></p> <table style="width: 61.5572%;" border="1">
<tbody>
<tr>
<td style="width: 21.1221%;">Malignit&eacute;</td>
<td style="width: 78.0528%;">2</td>
</tr>
<tr>
<td style="width: 21.1221%;">P&eacute;riodicit&eacute;</td>
<td style="width: 78.0528%;">6 rounds</td>
</tr>
<tr>
<td style="width: 21.1221%;">Dommages</td>
<td style="width: 78.0528%;">-1 point de vie</td>
</tr>
<tr>
<td style="width: 21.1221%;">Antidotes</td>
<td style="width: 78.0528%;">-3 \ Liqueur de Bagdol +14, Topazo&iuml;ne
+10</td>
</tr>
</tbody>
</table>
race: '' race: ''
notesmj: '' notesmj: ''
ownership: ownership:

View File

@ -6,7 +6,7 @@ _id: v7yZidE9mObKO566
system: system:
description: >- description: >-
<p>Venin de l'araflate. Sa morsure inflige un venin anesth&eacute;siant, <p>Venin de l'araflate. Sa morsure inflige un venin anesth&eacute;siant,
inocul&eacute; sur toute blessure sauf contusion/&eacute;raflure.</p> inocul&eacute; sur toute blessure sauf contusion\ &eacute;raflure.</p>
<p>Chaque perte d&rsquo;endurance s&rsquo;accompagne de la fatigue <p>Chaque perte d&rsquo;endurance s&rsquo;accompagne de la fatigue
&eacute;quivalente. &Agrave; z&eacute;ro d&rsquo;endurance, la victime est &eacute;quivalente. &Agrave; z&eacute;ro d&rsquo;endurance, la victime est

View File

@ -4,7 +4,7 @@ img: systems/foundryvtt-reve-de-dragon/icons/maladies_venins/venin.webp
effects: [] effects: []
_id: cFMUtU6LZG0mKeDl _id: cFMUtU6LZG0mKeDl
system: system:
description: '' description: <p>Venin du chrasme.&nbsp;</p>
descriptionmj: '' descriptionmj: ''
temporel: temporel:
debut: debut:

View File

@ -5,8 +5,10 @@ effects: []
_id: iwlN0bNJ5XNNfjgj _id: iwlN0bNJ5XNNfjgj
system: system:
description: >- description: >-
<p>Sensation aigu&euml; de d&eacute;s&eacute;quilibre. <p>Venin du scologriffe. Il provoque une sensation aigu&euml; de
Jouer VOLONT&Eacute; &agrave; -3. En cas d&rsquo;&eacute;chec, on chute d&eacute;s&eacute;quilibre.</p>
<p>Jouer VOLONT&Eacute; &agrave; -3. En cas d&rsquo;&eacute;chec, on chute
sans parvenir &agrave; se relever.</p> sans parvenir &agrave; se relever.</p>
descriptionmj: '' descriptionmj: ''
temporel: temporel:
@ -24,7 +26,7 @@ system:
nombre: 1 nombre: 1
remedesconnus: false remedesconnus: false
remedes: '-3 \ Liqueur de Bagdol +16 Topazoïne +8' remedes: '-3 \ Liqueur de Bagdol +16 Topazoïne +8'
dommages: 1 pt de Vie, sensation de déséquilibre dommages: 1 pt de Vie
periodicite: 1 minute periodicite: 1 minute
ownership: ownership:
default: 0 default: 0

View File

@ -4,7 +4,7 @@ img: systems/foundryvtt-reve-de-dragon/icons/maladies_venins/venin.webp
effects: [] effects: []
_id: lUeNPc0ECKqHglbG _id: lUeNPc0ECKqHglbG
system: system:
description: '' description: <p>Venin de la vip&egrave;re jaune. Il provoque des spasmes musculaires.</p>
descriptionmj: '' descriptionmj: ''
temporel: temporel:
debut: debut:
@ -21,7 +21,7 @@ system:
nombre: 6 nombre: 6
remedesconnus: false remedesconnus: false
remedes: '-3\ Liqueur de Bagdol +14, Topazoïne +10' remedes: '-3\ Liqueur de Bagdol +14, Topazoïne +10'
dommages: 1 pt de Vie, spasmes musculaires dommages: 1 pt de Vie
periodicite: 6 rounds periodicite: 6 rounds
ownership: ownership:
default: 0 default: 0

View File

@ -797,9 +797,6 @@ input:is(.blessure-premiers_soins, .blessure-soins_complets) {
padding: 0; padding: 0;
overflow-y: auto; overflow-y: auto;
} }
.item-list-title{
flex: 0;
}
.foundryvtt-reve-de-dragon .item-list .item-header { .foundryvtt-reve-de-dragon .item-list .item-header {
font-weight: bold; font-weight: bold;

View File

@ -16,9 +16,9 @@
}, },
"background": { "background": {
"metier": "", "metier": "",
"biographie": "", "biographie": "Histoire personnelle...",
"notes": "", "notes": "Notes",
"notesmj": "", "notesmj": "Notes du MJ",
"race": "Humain", "race": "Humain",
"yeux": "", "yeux": "",
"cheveux": "", "cheveux": "",
@ -191,18 +191,18 @@
"label": "+dom", "label": "+dom",
"derivee": true "derivee": true
}, },
"encombrement": {
"type": "number",
"value": 0,
"label": "Encombrement",
"derivee": true
},
"vitesse": { "vitesse": {
"type": "string", "type": "string",
"value": 0, "value": 0,
"label": "Vitesse", "label": "Vitesse",
"derivee": false "derivee": false
}, },
"encombrement": {
"type": "number",
"value": 0,
"label": "Encombrement",
"derivee": true
},
"protection": { "protection": {
"type": "number", "type": "number",
"value": 0, "value": 0,

View File

@ -47,10 +47,8 @@
</div> </div>
<div class="grid grid-2col"> <div class="grid grid-2col">
<div class="flex-group-left flexcol"> <div class="flex-group-left flexcol">
<ul class="carac-list alterne-list">
{{>"systems/foundryvtt-reve-de-dragon/templates/actor/carac-main.html"}} {{>"systems/foundryvtt-reve-de-dragon/templates/actor/carac-main.html"}}
{{>"systems/foundryvtt-reve-de-dragon/templates/actor/carac-creature.html"}} {{>"systems/foundryvtt-reve-de-dragon/templates/actor/carac-creature.html"}}
</ul>
</div> </div>
<div class="flex-group-left flexcol competence-column"> <div class="flex-group-left flexcol competence-column">
{{>"systems/foundryvtt-reve-de-dragon/templates/actor/comp-creature.html"}} {{>"systems/foundryvtt-reve-de-dragon/templates/actor/comp-creature.html"}}

View File

@ -33,10 +33,8 @@
</div> </div>
<div class="grid grid-2col"> <div class="grid grid-2col">
<div class="flex-group-left flexcol"> <div class="flex-group-left flexcol">
<ul class="carac-list alterne-list">
{{>"systems/foundryvtt-reve-de-dragon/templates/actor/carac-main.html"}} {{>"systems/foundryvtt-reve-de-dragon/templates/actor/carac-main.html"}}
{{>"systems/foundryvtt-reve-de-dragon/templates/actor/carac-entitee.html"}} {{>"systems/foundryvtt-reve-de-dragon/templates/actor/carac-entitee.html"}}
</ul>
</div> </div>
<div class="flex-group-left flexcol"> <div class="flex-group-left flexcol">
<div class="flex-group-left flexcol competence-column"> <div class="flex-group-left flexcol competence-column">

View File

@ -41,10 +41,8 @@
</div> </div>
<div class="grid grid-2col"> <div class="grid grid-2col">
<div class="flex-group-left flexcol"> <div class="flex-group-left flexcol">
<ul class="carac-list alterne-list">
{{>"systems/foundryvtt-reve-de-dragon/templates/actor/carac-main.html"}} {{>"systems/foundryvtt-reve-de-dragon/templates/actor/carac-main.html"}}
{{>"systems/foundryvtt-reve-de-dragon/templates/actor/carac-total.html"}} {{>"systems/foundryvtt-reve-de-dragon/templates/actor/carac-total.html"}}
</ul>
</div> </div>
<div class="flex-group-left flexcol" > <div class="flex-group-left flexcol" >
{{>"systems/foundryvtt-reve-de-dragon/templates/actor/carac-derivee.html"}} {{>"systems/foundryvtt-reve-de-dragon/templates/actor/carac-derivee.html"}}

View File

@ -1,10 +1,11 @@
<ol class="carac-list alterne-list">
{{#each system.attributs as |attr key|}} {{#each system.attributs as |attr key|}}
{{#if (and (eq key 'plusdom') (eq @root.system.definition.typeentite 'nonincarne'))}} {{#if (and (eq key 'plusdom') (eq @root.system.definition.typeentite 'nonincarne'))}}
{{else}} {{else}}
<li class="caracteristique flexrow list-item" data-attribute="{{key}}"> <li class="caracteristique flexrow list-item" data-attribute="{{key}}">
<span class="carac-label" name="system.attributs.{{key}}.label">{{attr.label}}</span> <span class="carac-label" name="system.attributs.{{key}}.label">{{attr.label}}</span>
{{#if (actor-default @root.type 'attributs' key 'derivee')}} {{#if (actor-default @root.type 'attributs' key 'derivee')}}
<input class="carac-value" type="text" name="system.attributs.{{key}}.value" <input class="caracteristique streched" type="text" name="system.attributs.{{key}}.value"
{{#if (eq key 'plusdom')}} {{#if (eq key 'plusdom')}}
value="{{numberFormat attr.value decimals=0 sign=true}}" value="{{numberFormat attr.value decimals=0 sign=true}}"
{{else}} {{else}}
@ -14,7 +15,7 @@
{{else}} {{else}}
<input class="caracteristique streched" type="text" name="system.attributs.{{key}}.value" value="{{attr.value}}" data-dtype="{{attr.type}}" {{#unless @root.options.vueDetaillee}}disabled{{/unless}}/> <input class="caracteristique streched" type="text" name="system.attributs.{{key}}.value" value="{{attr.value}}" data-dtype="{{attr.type}}" {{#unless @root.options.vueDetaillee}}disabled{{/unless}}/>
{{/if}} {{/if}}
<label class="carac-xp"/>
</li> </li>
{{/if}} {{/if}}
{{/each}} {{/each}}
</ol>

View File

@ -1,21 +1,16 @@
<ol class="carac-list alterne-list">
<li class="caracteristique flexrow list-item"> <li class="caracteristique flexrow list-item">
<span class="carac-label">Niveau</span> <span class="carac-label" name="catEntite">Catégorie : </span>
<label class="carac-value">{{numberFormat niveau decimals=0 sign=true}}
</label>
<label class="carac-xp"/>
</li>
{{>"systems/foundryvtt-reve-de-dragon/templates/actor/carac-creature.html"}}
<li class="caracteristique flexrow list-item">
<span class="carac-label" name="catEntite">Catégorie</span>
<select name="system.definition.categorieentite" value="{{system.definition.categorieentite}}" data-dtype="String" {{#unless @root.options.vueDetaillee}}disabled{{/unless}}> <select name="system.definition.categorieentite" value="{{system.definition.categorieentite}}" data-dtype="String" {{#unless @root.options.vueDetaillee}}disabled{{/unless}}>
{{selectOptions (RDD_CONFIG 'categorieEntite') selected=system.definition.categorieentite}} {{selectOptions (RDD_CONFIG 'categorieEntite') selected=system.definition.categorieentite}}
</select> </select>
<label class="carac-xp"/>
</li> </li>
<li class="caracteristique flexrow list-item"> <li class="caracteristique flexrow list-item">
<span class="carac-label" name="typeEntite">Type d'entité</span> <span class="carac-label" name="typeEntite">Type d'entité : </span>
<select name="system.definition.typeentite" value="{{system.definition.typeentite}}" data-dtype="String" {{#unless @root.options.vueDetaillee}}disabled{{/unless}}> <select name="system.definition.typeentite" value="{{system.definition.typeentite}}" data-dtype="String" {{#unless @root.options.vueDetaillee}}disabled{{/unless}}>
{{selectOptions (RDD_CONFIG 'typeEntite') selected=system.definition.typeentite}} {{selectOptions (RDD_CONFIG 'typeEntite') selected=system.definition.typeentite}}
</select> </select>
<label class="carac-xp"/>
</li> </li>
</ol>
{{> "systems/foundryvtt-reve-de-dragon/templates/actor/carac-creature.html"}}

View File

@ -1,7 +1,8 @@
{{#each system.carac as |carac key|}} <ul class="carac-list alterne-list">
{{#if (and (eq key 'taille') (eq @root.system.definition.typeentite 'nonincarne'))}} {{#each system.carac as |carac key|}}
{{else}} {{#if (and (eq key 'taille') (eq @root.system.definition.typeentite 'nonincarne'))}}
<li class="caracteristique flexrow list-item {{#if carac.isLevelUp}}xp-level-up{{/if}}" data-attribute="{{key}}"> {{else}}
<li class="caracteristique flexrow list-item{{#if carac.isLevelUp}} xp-level-up{{/if}}" data-attribute="{{key}}">
{{#if (eq key 'taille')}} {{#if (eq key 'taille')}}
<span class="carac-label" name="system.carac.{{key}}.label">{{carac.label}}</span> <span class="carac-label" name="system.carac.{{key}}.label">{{carac.label}}</span>
<input class="carac-value" type="text" name="system.carac.{{key}}.value" value="{{carac.value}}" data-dtype="{{carac.type}}" {{#unless @root.options.vueDetaillee}}disabled{{/unless}} /> <input class="carac-value" type="text" name="system.carac.{{key}}.value" value="{{carac.value}}" data-dtype="{{carac.type}}" {{#unless @root.options.vueDetaillee}}disabled{{/unless}} />
@ -9,7 +10,7 @@
{{else}} {{else}}
{{#if (actor-default @root.type 'carac' key 'derivee')}} {{#if (actor-default @root.type 'carac' key 'derivee')}}
<span class="carac-label" name="system.carac.{{key}}.label"><a class="roll-carac" data-carac-name={{key}}>{{carac.label}}</a></span> <span class="carac-label" name="system.carac.{{key}}.label"><a class="roll-carac" data-carac-name={{key}}>{{carac.label}}</a></span>
<label class="carac-value">{{carac.value}}</label> <label class="competence-value">{{carac.value}}</label>
<label class="carac-xp"/> <label class="carac-xp"/>
{{else}} {{else}}
{{#if carac.isLevelUp}} {{#if carac.isLevelUp}}
@ -34,4 +35,5 @@
{{/if}} {{/if}}
</li> </li>
{{/if}} {{/if}}
{{/each}} {{/each}}
</ul>

View File

@ -1,13 +1,14 @@
<h4 class="item-list-title">Compétences{{#if @root.options.vueDetaillee}} <a class="competence-add" data-tooltip="Ajouter une compétence"> <h4>Compétences{{#if @root.options.vueDetaillee}} <a class="competence-add" data-tooltip="Ajouter une compétence">
<i class="fa-solid fa-books-medical"></i> <i class="fa-solid fa-books-medical"></i>
</a>{{/if}}</h4> </a>{{/if}}</h4>
<ul class="item-list alterne-list"> <ol class="item-list alterne-list">
{{#each (trier competences) as |comp key|}} {{#each (trier competences) as |comp key|}}
<li class="item flexrow list-item" data-item-id="{{comp._id}}"> <li class="item flexrow list-item" data-item-id="{{comp._id}}">
<a class="competence-label roll-competence"> <a class="competence-label roll-competence">
<img class="sheet-competence-img" src="{{comp.img}}" data-tooltip="{{comp.name}}"/> <img class="sheet-competence-img" src="{{comp.img}}" data-tooltip="{{comp.name}}"/>
<span>{{comp.name}}</span> <span>{{comp.name}}</span>
</a> </a>
<input class="competence-carac creature-carac" type="text" compname="{{comp.name}}" name="{{comp._id}}.carac" <input class="competence-carac creature-carac" type="text" compname="{{comp.name}}" name="{{comp._id}}.carac"
value="{{comp.system.carac_value}}" data-dtype="number" value="{{comp.system.carac_value}}" data-dtype="number"
{{#unless @root.options.vueDetaillee}}disabled{{/unless}}/> {{#unless @root.options.vueDetaillee}}disabled{{/unless}}/>
@ -31,4 +32,4 @@
{{/if}} {{/if}}
</li> </li>
{{/each}} {{/each}}
</ul> </ol>