Compare commits

..

13 Commits

Author SHA1 Message Date
63265e0d1c Suppression items inutiles
Les compétences de personnages ne sont pas
utilisables/visibles sur les entités
2024-12-07 19:22:11 +01:00
5afe8a0193 Rename compétence Équitation 2024-12-07 19:20:44 +01:00
78a0b7717a Import compétences avec spécialisations
ie: Musique (Harpe) +6
2024-12-07 19:20:01 +01:00
87179f31b8 rename méthodes handlebars 2024-12-07 17:44:49 +01:00
2e2684ad6e Corresction des ajouts de blessures
- la contusion n'ajoute plus de blessure légère
- les pertes d'endurance fonctionnent
2024-12-07 17:21:24 +01:00
ab365e9780 Affichage des armures
Afficher la liste des armures avec les caractéristiques
2024-12-07 17:20:22 +01:00
3739519610 Fix imports divers
- gestion du malus armure (esquive ou autres)
- gestion des sous-listes competences au même niveau
- gestion des armes avec plusieurs maniements
- un personnage ayant du draconic est haut-rêvant
  (cas des haut-rêvants connaissant "tous les sorts" ou une liste
 non précisée)
2024-12-07 01:20:33 +01:00
f7fc7fbefb Ouverture de l'acteur après import 2024-12-07 01:20:33 +01:00
d5686b81ed Ajout "kg" au poids 2024-12-07 01:20:33 +01:00
5bf1ecaea3 Fix typos 2024-12-07 01:20:33 +01:00
81d826ee2e Fix import de creatures sans heure de naissance 2024-12-06 13:29:25 +01:00
2a164f6a32 Fix import de creatures sans heure de naissance 2024-12-06 13:21:22 +01:00
6479f00642 Fix import de creatures sans heure de naissance 2024-12-06 13:11:19 +01:00
68 changed files with 267 additions and 364 deletions

View File

@ -3,7 +3,7 @@
- bouton pour le don de haut-rêve en un clic
- les compétences de draconic ne sont plus précédées de "Voie de"
- migration des compétences & compendiums
- Correction feuille simplifiée qui ne s'affichait pas en ccas de sort variable
- Correction feuille simplifiée qui ne s'affichait pas en cas de sort variable
## 12.0.24 - Les ajustements d'Astrobazzarh
- amélioration

View File

@ -21,7 +21,7 @@ export class RdDBaseActorSangSheet extends RdDBaseActorReveSheet {
this.html.find('.creer-blessure-grave').click(async event => RdDItemBlessure.createBlessure(this.actor, 4));
this.html.find('.creer-blessure-critique').click(async event => RdDItemBlessure.createBlessure(this.actor, 6));
this.html.find('.subir-blessure-contusion').click(async event => RdDItemBlessure.applyFullBlessure(this.actor, 2));
this.html.find('.subir-blessure-contusion').click(async event => RdDItemBlessure.applyFullBlessure(this.actor, 0));
this.html.find('.subir-blessure-legere').click(async event => RdDItemBlessure.applyFullBlessure(this.actor, 2));
this.html.find('.subir-blessure-grave').click(async event => RdDItemBlessure.applyFullBlessure(this.actor, 4));
this.html.find('.subir-blessure-critique').click(async event => RdDItemBlessure.applyFullBlessure(this.actor, 6));

View File

@ -17,11 +17,20 @@ const XREGEXP_COMP_CREATURE = WHITESPACES + "(?<carac>\\d+)"
// Skill parser depending on the type of actor
const compParser = {
personnage: "(\\D+)*" + WHITESPACES + NUMERIC_VALUE,
personnage: "(\\s+\\((?<special>[^\\)]+)\\))?(,\\s*\\p{Letter}+)*(\\s+(?<malus>avec armure))?" + WHITESPACES + NUMERIC_VALUE,
creature: XREGEXP_COMP_CREATURE,
entite: XREGEXP_COMP_CREATURE
}
const MANIEMENTS = {
'de lancer': (weapon) => { return { name: weapon.system.lancer, categorie: 'lancer' } },
'de jet': (weapon) => { return { name: weapon.system.lancer, categorie: 'lancer' } },
'à une main': (weapon) => { return { name: weapon.system.competence, categorie: 'melee' } },
'à deux main': (weapon) => { return { name: weapon.system.competence.replace("à 1 main", "à 2 main"), categorie: 'melee' } },
'mêlée': (weapon) => { return { name: weapon.system.competence, categorie: 'melee' } },
}
const XREGEXP_WEAPON_MANIEMENT = "(?<maniement>(" + Misc.join(Object.keys(MANIEMENTS), '|') + "))"
const XREGEXP_SORT_VOIE = "(?<voies>[OHNT](\\/[OHNT])*)"
const XREGEXP_SORT_NAME = "(?<name>[^\\(]+)"
const XREGEXP_SORT_CASE = "\\((?<case>([A-Za-zÀ-ÖØ-öø-ÿ\\s\\-]+|[A-M]\\d{1,2})+)\\)";
@ -105,6 +114,12 @@ export class RdDStatBlockParser {
return "vaisseau";
}
static fixCompName(name) {
name = name.replace("Voie d'", "");
name = name.replace("Voie de ", "");
return name
}
static async parseStatBlock(statString) {
//statString = statBlock03;
@ -127,6 +142,9 @@ export class RdDStatBlockParser {
// Now start carac
let actorData = foundry.utils.deepClone(game.model.Actor[type]);
let items = [];
actorData.flags = { hautRevant: false, malusArmure: 0, type }
for (let key in actorData.carac) {
let caracDef = actorData.carac[key];
// Parse the stat string for each caracteristic
@ -145,91 +163,135 @@ export class RdDStatBlockParser {
RdDStatBlockParser.parseEntite(statString, actorData)
break
}
if (type == "personnage") {
// Now process armors
await RdDStatBlockParser.parseArmors(statString, actorData, items);
}
let items = [];
// Get skills from compendium
const competences = await SystemCompendiums.getCompetences(type);
await RdDStatBlockParser.parseCompetences(statString, actorData, items);
if (type == "personnage") {
// Now process weapons
await RdDStatBlockParser.parseWeapons(statString, items);
await RdDStatBlockParser.parseHautReve(statString, actorData, items);
RdDStatBlockParser.parsePersonnage(statString, actorData);
}
const name = RdDStatBlockParser.extractName(type, statString);
actorData.flags = undefined
console.log(actorData);
let newActor = await RdDBaseActorReve.create({ name, type, system: actorData, items });
await newActor.remiseANeuf()
await RdDStatBlockParser.setValeursActuelles(newActor, statString)
await newActor?.sheet.render(true)
}
static async parseCompetences(statString, actorData, items) {
const competences = await SystemCompendiums.getCompetences(actorData.flags.type);
//console.log("Competences : ", competences);
for (let comp of competences) {
let compMatch = XRegExp.exec(statString, XRegExp(comp.name + compParser[type], 'giu'));
if (compMatch) {
comp = comp.toObject()
comp.system.niveau = Number(compMatch.value);
if (type == "creature" || type == "entite") {
comp.system.carac_value = Number(compMatch.carac);
if (compMatch.dommages != undefined) {
comp.system.dommages = Number(compMatch.dommages);
comp.system.iscombat = true;
}
}
items.push(comp)
for (let competence of competences) {
let compSourceString = statString
let compNameToSearch = RdDStatBlockParser.fixCompName(competence.name)
let compMatch = XRegExp.exec(compSourceString, XRegExp("\\s" + compNameToSearch + compParser[actorData.flags.type], 'giu'))
while (compMatch) {
items.push(RdDStatBlockParser.prepareCompetence(actorData, competence, compMatch))
// pour gérer les compétences avec spécialisations, si elle est trouvée, chercher si elle apparaît dans la suite
compSourceString = compSourceString.substring(compSourceString.indexOf(compNameToSearch) + compNameToSearch.length)
compMatch = XRegExp.exec(compSourceString, XRegExp("\\s" + compNameToSearch + compParser[actorData.flags.type], 'giu'))
}
else if (type == "personnage") {
comp = comp.toObject()
items.push(comp)
if (actorData.flags.type == "personnage" && compSourceString.length == statString.length) {
// ajout niveau de base
items.push(competence.toObject())
}
}
}
static prepareCompetence(actorData, competence, compMatch) {
const comp = competence.toObject();
if (compMatch.special) {
comp._id = undefined
comp.name = `${comp.name} (${compMatch.special})`
}
comp.system.niveau = Number(compMatch.value);
if (compMatch.malus) {
comp.system.niveau = Number(compMatch.value) - actorData.flags.malusArmure
}
if (comp.system.categorie == 'draconic' && comp.system.niveau > -11) {
actorData.flags.hautRevant = true
}
if (["creature", "entite"].includes(actorData.flags.type)) {
comp.system.carac_value = Number(compMatch.carac);
if (compMatch.dommages != undefined) {
comp.system.dommages = Number(compMatch.dommages)
comp.system.iscombat = true
}
}
return comp
}
// Now process weapons
const weapons = await SystemCompendiums.getWorldOrCompendiumItems("arme", "equipement")
//console.log("Equipement : ", equipment);
// TODO: les noms d'armes peuvent avoir un suffixe (à une main, lancée) qui détermine la compétence correspondante
// TODO: une arme peut être spécifique ("fourche"), ajouter une compétence dans ces cas là?
for (let weapon of weapons) {
let weapMatch = XRegExp.exec(statString, XRegExp(weapon.name + "\\s+(?<value>\\+\\d+)", 'giu'));
if (weapMatch) {
weapon = weapon.toObject()
weapon.system.equipe = 'true'
items.push(weapon)
// now process the skill
if (weapon.system?.competence != "") {
let wComp = items.find(i => Grammar.equalsInsensitive(i.name, weapon.system.competence))
if (wComp) {
wComp.system.niveau = Number(weapMatch.value);
}
}
if (weapon.system?.tir != "") {
let wComp = items.find(i => Grammar.equalsInsensitive(i.name, weapon.system.tir))
if (wComp) {
wComp.system.niveau = Number(weapMatch.value);
}
}
if (weapon.system?.lancer != "") {
let wComp = items.find(i => Grammar.equalsInsensitive(i.name, weapon.system.lancer))
if (wComp) {
wComp.system.niveau = Number(weapMatch.value);
}
}
}
}
// Now process armors
const armors = await SystemCompendiums.getWorldOrCompendiumItems("armure", "equipement")
static async parseArmors(statString, actorData, items) {
const armors = await SystemCompendiums.getWorldOrCompendiumItems("armure", "equipement");
for (let armor of armors) {
let matchArmor = XRegExp.exec(statString, XRegExp(armor.name, 'giu'));
if (matchArmor) {
armor = armor.toObject()
armor.system.equipe = true
items.push(armor);
actorData.flags.malusArmure = armor.system.malus
items.push(armor)
break
}
}
if (type == "personnage") {
await RdDStatBlockParser.parseHautReve(statString, actorData, items);
RdDStatBlockParser.parsePersonnage(statString, actorData);
}
let name = RdDStatBlockParser.extractName(type, statString);
let newActor = await RdDBaseActorReve.create({ name, type: type, system: actorData, items });
await newActor.remiseANeuf()
await RdDStatBlockParser.setValActuelle(newActor, statString)
// DUmp....
console.log(actorData);
}
static async setValActuelle(newActor, statString) {
static async parseWeapons(statString, items) {
const weapons = await SystemCompendiums.getWorldOrCompendiumItems("arme", "equipement");
//console.log("Equipement : ", equipment);
// TODO: les noms d'armes peuvent avoir un suffixe (à une main, lancée) qui détermine la compétence correspondante
// TODO: une arme peut être spécifique ("fourche"), ajouter une compétence dans ces cas là?
for (let weapon of weapons) {
let nomArmeManiement = XRegExp.exec(weapon.name, XRegExp(".*" + XREGEXP_WEAPON_MANIEMENT));
if (nomArmeManiement) {
continue // ignore les objets 'Dague de jet" ou "dague mêlée"
}
let weapMatch = XRegExp.exec(statString, XRegExp(weapon.name
+ "(\\s*" + XREGEXP_WEAPON_MANIEMENT + ")?"
+ "\\s+(?<value>\\+\\d+)", 'giu'));
if (weapMatch) {
weapon = weapon.toObject();
weapon.system.equipe = 'true';
items.push(weapon);
const niveau = Number(weapMatch.value);
// now process the skill
if (weapMatch?.maniement) {
RdDStatBlockParser.setNiveauCompetenceArme(items, MANIEMENTS[weapMatch.maniement](weapon), niveau)
}
else {
RdDStatBlockParser.setNiveauCompetenceArme(items, { name: weapon.system.competence, categorie: 'melee' }, niveau)
RdDStatBlockParser.setNiveauCompetenceArme(items, { name: weapon.system.tir, categorie: 'tir' }, niveau)
RdDStatBlockParser.setNiveauCompetenceArme(items, { name: weapon.system.lancer, categorie: 'lancer' }, niveau)
}
}
}
}
static setNiveauCompetenceArme(items, competence, niveau) {
if (competence != "") {
const item = items.find(i => i.system.categorie == competence.categorie && Grammar.equalsInsensitive(i.name, competence.name))
if (item) {
item.system.niveau = niveau
}
}
}
static async setValeursActuelles(newActor, statString) {
const updates = {
}
const endurance = XRegExp.exec(statString, XRegExp("endurance\\s+(?<value>\\d+)\\s+(\\(actuelle\\s*:\\s+(?<actuelle>\\d+)\\))?", 'giu'));
@ -255,7 +317,6 @@ export class RdDStatBlockParser {
}
static async parseHautReve(statString, actorData, items) {
let hautRevant = false;
// Attemp to detect spell
let sorts = await SystemCompendiums.getWorldOrCompendiumItems("sort", "sorts-oniros");
sorts = sorts.concat(await SystemCompendiums.getWorldOrCompendiumItems("sort", "sorts-hypnos"));
@ -267,7 +328,7 @@ export class RdDStatBlockParser {
const sortName = Grammar.toLowerCaseNoAccent(matchSort.name).trim().replace("", "'");
let sort = sorts.find(s => Grammar.toLowerCaseNoAccent(s.name) == sortName)
if (sort) {
hautRevant = true;
actorData.flags.hautRevant = true
sort = sort.toObject();
if (matchSort.bonus && matchSort.bonuscase) {
sort.system.bonuscase = `${matchSort.bonuscase}:${matchSort.bonus}`;
@ -279,7 +340,7 @@ export class RdDStatBlockParser {
}
});
if (hautRevant) {
if (actorData.flags.hautRevant) {
const donHR = await RdDItemTete.teteDonDeHautReve();
if (donHR) {
items.push(donHR.toObject());
@ -292,6 +353,7 @@ export class RdDStatBlockParser {
static parsePersonnage(statString, actorData) {
actorData.reve.seuil.value = actorData.carac.reve.value
actorData.compteurs.chance.value = actorData.carac.chance.value
const reveActuel = XRegExp.exec(statString, XRegExp("Rêve actuel\\s+(?<value>\\d+)", 'giu'))
actorData.reve.reve.value = reveActuel?.value ? Number(reveActuel.value) : actorData.reve.seuil.value
@ -314,7 +376,7 @@ export class RdDStatBlockParser {
actorData.taille = taille.value;
}
// Get weight
const poids = XRegExp.exec(statString, XRegExp("(?<value>\\d+) kg", 'giu'));
const poids = XRegExp.exec(statString, XRegExp("(?<value>\\d+ kg)", 'giu'));
if (poids?.value) {
actorData.poids = poids.value;
}
@ -377,8 +439,14 @@ export class RdDStatBlockParser {
static extractName(actorType, statString) {
switch (actorType) {
case "personnage":
// Name is all string before first comma ','
const namePersonnage = XRegExp.exec(statString, XRegExp("(?<value>[\\p{Letter}\\s\\d]+),", 'giu'));
// Check if ',né le' is present
let namePersonnage = "Importé"
if (statString.includes(", né")) {
// Name is all string before first comma ','
namePersonnage = XRegExp.exec(statString, XRegExp("(?<value>[\\p{Letter}\\s\\d]+),", 'giu'));
} else {
namePersonnage = XRegExp.exec(statString, XRegExp("(?<value>[\\p{Letter}\\s\\d]+)\\s+TAILLE", 'giu'));
}
if (namePersonnage?.value) {
return Misc.upperFirst(namePersonnage?.value);
}

View File

@ -48,8 +48,9 @@ export class RdDItemBlessure extends RdDItem {
let lostEndurance = 0
let lostVie = 0
if (definition.endurance) {
lostEndurance = await new Roll(definition.endurance).roll().total;
actor.santeIncDec("endurance", -Number(lostEndurance));
lostEndurance = new Roll(definition.endurance)
await lostEndurance.roll();
actor.santeIncDec("endurance", -Number(lostEndurance.total));
}
if (definition.vie) {
lostVie = definition.vie

View File

@ -122,6 +122,7 @@ export class RdDUtility {
'systems/foundryvtt-reve-de-dragon/templates/actor/header-hautreve.html',
'systems/foundryvtt-reve-de-dragon/templates/actor/archetype.hbs',
'systems/foundryvtt-reve-de-dragon/templates/actor/vue-detaillee.html',
'systems/foundryvtt-reve-de-dragon/templates/actor/armures.hbs',
'systems/foundryvtt-reve-de-dragon/templates/actor/carac-main.html',
'systems/foundryvtt-reve-de-dragon/templates/actor/carac-derivee.html',
'systems/foundryvtt-reve-de-dragon/templates/actor/carac-creature.html',
@ -264,12 +265,12 @@ export class RdDUtility {
Handlebars.registerHelper('either', (a, b) => a ?? b);
Handlebars.registerHelper('upperFirst', str => Misc.upperFirst(str ?? 'Null'));
Handlebars.registerHelper('lowerFirst', str => Misc.lowerFirst(str ?? 'Null'));
Handlebars.registerHelper('upper', str => str?.toUpperCase() ?? '');
Handlebars.registerHelper('uppercase', str => str?.toUpperCase() ?? '');
Handlebars.registerHelper('lowercase', str => str?.toLowerCase() ?? '');
Handlebars.registerHelper('le', str => Grammar.articleDetermine(str));
Handlebars.registerHelper('apostrophe', (article, str) => Grammar.apostrophe(article, str));
Handlebars.registerHelper('un', str => Grammar.articleIndetermine(str));
Handlebars.registerHelper('accord', (genre, ...args) => Grammar.accord(genre, args));
Handlebars.registerHelper('grammar-le', str => Grammar.articleDetermine(str));
Handlebars.registerHelper('grammar-apostrophe', (article, str) => Grammar.apostrophe(article, str));
Handlebars.registerHelper('grammar-un', str => Grammar.articleIndetermine(str));
Handlebars.registerHelper('grammar-accord', (genre, ...args) => Grammar.accord(genre, args));
Handlebars.registerHelper('RDD_CONFIG', path => RDD_CONFIG[path])
Handlebars.registerHelper('computeResolutionScore', (row, col) => RdDResolutionTable.computePercentage(row, col));

View File

@ -1400,7 +1400,7 @@ items:
coreVersion: '12.331'
_key: '!actors.items!1Nng9d8r6lrPHCaJ.MxFDPQmm1900bWin'
- _id: bNUVmIoLEROEIOIm
name: Cuir / Metal
name: Cuir / Métal
type: armure
img: systems/foundryvtt-reve-de-dragon/icons/armes_armures/cuir_metal.webp
effects: []

View File

@ -767,7 +767,7 @@ items:
coreVersion: '12.331'
_key: '!actors.items!ryUZTa17LzNv25UY.MLIEbxSJHkY1m3No'
- _id: F5iQNrZSeJsfyTnV
name: Equitation
name: Équitation
type: competence
sort: 2600000
flags: {}

View File

@ -767,7 +767,7 @@ items:
coreVersion: '12.331'
_key: '!actors.items!ohmz9Jn4jxD88Kll.MLIEbxSJHkY1m3No'
- _id: F5iQNrZSeJsfyTnV
name: Equitation
name: Équitation
type: competence
sort: 2600000
flags: {}

View File

@ -767,7 +767,7 @@ items:
coreVersion: '12.331'
_key: '!actors.items!JARnWt2MQWDyRwQt.MLIEbxSJHkY1m3No'
- _id: F5iQNrZSeJsfyTnV
name: Equitation
name: Équitation
type: competence
sort: 2600000
flags: {}

View File

@ -742,7 +742,7 @@ items:
coreVersion: '12.331'
_key: '!actors.items!SJb0c8FDcYdd41rB.MLIEbxSJHkY1m3No'
- _id: F5iQNrZSeJsfyTnV
name: Equitation
name: Équitation
type: competence
sort: 2600000
img: systems/foundryvtt-reve-de-dragon/icons/competence_equitation.webp

View File

@ -767,7 +767,7 @@ items:
coreVersion: '12.331'
_key: '!actors.items!JQCwAOK64Yijwtch.MLIEbxSJHkY1m3No'
- _id: F5iQNrZSeJsfyTnV
name: Equitation
name: Équitation
type: competence
sort: 2600000
flags: {}
@ -2297,7 +2297,7 @@ items:
coreVersion: '12.331'
_key: '!actors.items!JQCwAOK64Yijwtch.9mOVjXVNdvnf7isr'
- _id: ISONFNOaWkW2TaE8
name: Cuir / Metal
name: Cuir / Métal
type: armure
sort: 8400000
img: systems/foundryvtt-reve-de-dragon/icons/armes_armures/cuir_metal.webp

View File

@ -767,7 +767,7 @@ items:
coreVersion: '12.331'
_key: '!actors.items!CRRP8ucJpljX6tq8.MLIEbxSJHkY1m3No'
- _id: F5iQNrZSeJsfyTnV
name: Equitation
name: Équitation
type: competence
sort: 2600000
flags: {}

View File

@ -767,7 +767,7 @@ items:
coreVersion: '12.331'
_key: '!actors.items!51vL4MhEE0asjgF2.MLIEbxSJHkY1m3No'
- _id: F5iQNrZSeJsfyTnV
name: Equitation
name: Équitation
type: competence
sort: 2600000
flags: {}

View File

@ -767,7 +767,7 @@ items:
coreVersion: '12.331'
_key: '!actors.items!NX1nAqKKIcQlyGua.MLIEbxSJHkY1m3No'
- _id: F5iQNrZSeJsfyTnV
name: Equitation
name: Équitation
type: competence
sort: 2600000
flags: {}

View File

@ -767,7 +767,7 @@ items:
coreVersion: '12.331'
_key: '!actors.items!IeKSXignUpfUTU4m.MLIEbxSJHkY1m3No'
- _id: F5iQNrZSeJsfyTnV
name: Equitation
name: Équitation
type: competence
sort: 2600000
flags: {}

View File

@ -767,7 +767,7 @@ items:
coreVersion: '12.331'
_key: '!actors.items!2bRaEDuwZezKAyEq.MLIEbxSJHkY1m3No'
- _id: F5iQNrZSeJsfyTnV
name: Equitation
name: Équitation
type: competence
sort: 2600000
flags: {}

View File

@ -743,7 +743,7 @@ items:
coreVersion: '12.331'
_key: '!actors.items!pSM0ku0RJNLvHSvF.MLIEbxSJHkY1m3No'
- _id: F5iQNrZSeJsfyTnV
name: Equitation
name: Équitation
type: competence
sort: 2600000
img: systems/foundryvtt-reve-de-dragon/icons/competence_equitation.webp

View File

@ -743,7 +743,7 @@ items:
coreVersion: '12.331'
_key: '!actors.items!5xPFHgrY5AIP9Mnb.MLIEbxSJHkY1m3No'
- _id: F5iQNrZSeJsfyTnV
name: Equitation
name: Équitation
type: competence
sort: 2600000
img: systems/foundryvtt-reve-de-dragon/icons/competence_equitation.webp

View File

@ -767,7 +767,7 @@ items:
coreVersion: '12.331'
_key: '!actors.items!U9NNcXQBJmsI9Ttk.MLIEbxSJHkY1m3No'
- _id: F5iQNrZSeJsfyTnV
name: Equitation
name: Équitation
type: competence
sort: 2600000
flags: {}

View File

@ -742,7 +742,7 @@ items:
coreVersion: '12.331'
_key: '!actors.items!oLDROOdwfctyRusH.MLIEbxSJHkY1m3No'
- _id: F5iQNrZSeJsfyTnV
name: Equitation
name: Équitation
type: competence
sort: 2600000
img: systems/foundryvtt-reve-de-dragon/icons/competence_equitation.webp

View File

@ -742,7 +742,7 @@ items:
coreVersion: '12.331'
_key: '!actors.items!2KN3nKGZ36Qkn7Mf.MLIEbxSJHkY1m3No'
- _id: F5iQNrZSeJsfyTnV
name: Equitation
name: Équitation
type: competence
sort: 2600000
img: systems/foundryvtt-reve-de-dragon/icons/competence_equitation.webp

View File

@ -768,7 +768,7 @@ items:
coreVersion: '12.331'
_key: '!actors.items!V2WOs8deCYdBT2Jo.MLIEbxSJHkY1m3No'
- _id: F5iQNrZSeJsfyTnV
name: Equitation
name: Équitation
type: competence
sort: 2600000
flags: {}

View File

@ -768,7 +768,7 @@ items:
coreVersion: '12.331'
_key: '!actors.items!UNs4RBLYiGbfxd1c.MLIEbxSJHkY1m3No'
- _id: F5iQNrZSeJsfyTnV
name: Equitation
name: Équitation
type: competence
sort: 1050000
flags: {}

View File

@ -768,7 +768,7 @@ items:
coreVersion: '12.331'
_key: '!actors.items!jfXs7qaHEWQpIHud.MLIEbxSJHkY1m3No'
- _id: F5iQNrZSeJsfyTnV
name: Equitation
name: Équitation
type: competence
sort: 1050000
flags: {}

View File

@ -767,7 +767,7 @@ items:
coreVersion: '12.331'
_key: '!actors.items!awZg7bGbTjEGRMiw.MLIEbxSJHkY1m3No'
- _id: F5iQNrZSeJsfyTnV
name: Equitation
name: Équitation
type: competence
sort: 2600000
flags: {}

View File

@ -767,7 +767,7 @@ items:
coreVersion: '12.331'
_key: '!actors.items!dMdBctaRRdGJgced.MLIEbxSJHkY1m3No'
- _id: F5iQNrZSeJsfyTnV
name: Equitation
name: Équitation
type: competence
sort: 2600000
flags: {}

View File

@ -1,4 +1,4 @@
name: Equitation
name: Équitation
type: competence
img: systems/foundryvtt-reve-de-dragon/icons/competence_equitation.webp
_id: F5iQNrZSeJsfyTnV

View File

@ -4,98 +4,6 @@ type: entite
sort: 100001
img: systems/foundryvtt-reve-de-dragon/icons/entites/squelette.webp
items:
- _id: QNJH22nturvz1CnL
name: Épée à 2 mains
type: competence
sort: 100000
img: systems/foundryvtt-reve-de-dragon/icons/competence_epee_2_mains.webp
effects: []
system:
description: >-
<p>Ces compétences permettent lutilisation des sept types dépées de
Rêve de Dragon pour attaquer ou parer.</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
descriptionmj: ''
niveau: -6
default_diffLibre: 0
base: -6
categorie: melee
xp: 0
defaut_carac: melee
niveau_archetype: 0
xp_sort: 0
folder: null
ownership:
default: 0
_stats:
systemId: foundryvtt-reve-de-dragon
systemVersion: 12.0.22
coreVersion: '12.331'
_key: '!actors.items!Fl95F6S0OrCbqQbY.QNJH22nturvz1CnL'
- _id: 9rHJziIIEQlwezim
name: Épée à 2 mains
type: competence
sort: 200000
img: systems/foundryvtt-reve-de-dragon/icons/competence_epee_2_mains.webp
effects: []
system:
description: >-
<p>Ces compétences permettent lutilisation des sept types dépées de
Rêve de Dragon pour attaquer ou parer.</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
descriptionmj: ''
niveau: -6
default_diffLibre: 0
base: -6
categorie: melee
xp: 0
defaut_carac: melee
niveau_archetype: 0
xp_sort: 0
folder: null
ownership:
default: 0
_stats:
systemId: foundryvtt-reve-de-dragon
systemVersion: 12.0.22
coreVersion: '12.331'
_key: '!actors.items!Fl95F6S0OrCbqQbY.9rHJziIIEQlwezim'
- _id: ltZQyOyxJdWsIkpK
name: Equitation
type: competence
sort: 300000
img: systems/foundryvtt-reve-de-dragon/icons/competence_equitation.webp
effects: []
system:
description: >-
<p>Monter à cheval, et, dune manière générale, connaissance des
chevaux. Peut sappliquer aux autres montures de Rêve de&nbsp;Dragon :
aligates, zyglutes, etc.</p>
<p>&nbsp;</p>
descriptionmj: ''
niveau: -8
default_diffLibre: 0
base: -8
categorie: particuliere
xp: 0
defaut_carac: agilite
niveau_archetype: 0
xp_sort: 0
folder: null
ownership:
default: 0
_stats:
systemId: foundryvtt-reve-de-dragon
systemVersion: 12.0.22
coreVersion: '12.331'
_key: '!actors.items!Fl95F6S0OrCbqQbY.ltZQyOyxJdWsIkpK'
- _id: iwfr7ekbLFzDCayP
name: Esquive
type: competencecreature

View File

@ -4,98 +4,6 @@ type: entite
sort: 100001
img: systems/foundryvtt-reve-de-dragon/icons/entites/vaseux.webp
items:
- _id: QNJH22nturvz1CnL
name: Épée à 2 mains
type: competence
sort: 100000
img: systems/foundryvtt-reve-de-dragon/icons/competence_epee_2_mains.webp
effects: []
system:
description: >-
<p>Ces compétences permettent lutilisation des sept types dépées de
Rêve de Dragon pour attaquer ou parer.</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
descriptionmj: ''
niveau: -6
default_diffLibre: 0
base: -6
categorie: melee
xp: 0
defaut_carac: melee
niveau_archetype: 0
xp_sort: 0
folder: null
ownership:
default: 0
_stats:
systemId: foundryvtt-reve-de-dragon
systemVersion: 12.0.22
coreVersion: '12.331'
_key: '!actors.items!cmWQYuyzVsz02NMt.QNJH22nturvz1CnL'
- _id: 9rHJziIIEQlwezim
name: Épée à 2 mains
type: competence
sort: 200000
img: systems/foundryvtt-reve-de-dragon/icons/competence_epee_2_mains.webp
effects: []
system:
description: >-
<p>Ces compétences permettent lutilisation des sept types dépées de
Rêve de Dragon pour attaquer ou parer.</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
descriptionmj: ''
niveau: -6
default_diffLibre: 0
base: -6
categorie: melee
xp: 0
defaut_carac: melee
niveau_archetype: 0
xp_sort: 0
folder: null
ownership:
default: 0
_stats:
systemId: foundryvtt-reve-de-dragon
systemVersion: 12.0.22
coreVersion: '12.331'
_key: '!actors.items!cmWQYuyzVsz02NMt.9rHJziIIEQlwezim'
- _id: ltZQyOyxJdWsIkpK
name: Equitation
type: competence
sort: 300000
img: systems/foundryvtt-reve-de-dragon/icons/competence_equitation.webp
effects: []
system:
description: >-
<p>Monter à cheval, et, dune manière générale, connaissance des
chevaux. Peut sappliquer aux autres montures de Rêve de&nbsp;Dragon :
aligates, zyglutes, etc.</p>
<p>&nbsp;</p>
descriptionmj: ''
niveau: -8
default_diffLibre: 0
base: -8
categorie: particuliere
xp: 0
defaut_carac: agilite
niveau_archetype: 0
xp_sort: 0
folder: null
ownership:
default: 0
_stats:
systemId: foundryvtt-reve-de-dragon
systemVersion: 12.0.22
coreVersion: '12.331'
_key: '!actors.items!cmWQYuyzVsz02NMt.ltZQyOyxJdWsIkpK'
- _id: NDwCYUzJVRIUFc77
name: Tentacules
type: competencecreature

View File

@ -1,5 +1,5 @@
_id: fDwsTMuug0Z5BdaA
name: Cuir / Metal
name: Cuir / Métal
type: armure
img: systems/foundryvtt-reve-de-dragon/icons/armes_armures/cuir_metal.webp
effects: []

View File

@ -742,7 +742,7 @@ items:
coreVersion: '12.331'
_key: '!actors.items!qscItDC5z6Hr2Lrh.MLIEbxSJHkY1m3No'
- _id: F5iQNrZSeJsfyTnV
name: Equitation
name: Équitation
type: competence
sort: 2600000
img: systems/foundryvtt-reve-de-dragon/icons/competence_equitation.webp

View File

@ -741,7 +741,7 @@ items:
coreVersion: '12.331'
_key: '!actors.items!zACge7QxwyJkC6nD.MLIEbxSJHkY1m3No'
- _id: F5iQNrZSeJsfyTnV
name: Equitation
name: Équitation
type: competence
sort: 2700000
img: systems/foundryvtt-reve-de-dragon/icons/competence_equitation.webp

View File

@ -742,7 +742,7 @@ items:
coreVersion: '12.331'
_key: '!actors.items!esJWonwDGLFaMRK3.MLIEbxSJHkY1m3No'
- _id: F5iQNrZSeJsfyTnV
name: Equitation
name: Équitation
type: competence
sort: 2600000
img: systems/foundryvtt-reve-de-dragon/icons/competence_equitation.webp

View File

@ -742,7 +742,7 @@ items:
coreVersion: '12.331'
_key: '!actors.items!gscYFtwk73WrGvA5.MLIEbxSJHkY1m3No'
- _id: F5iQNrZSeJsfyTnV
name: Equitation
name: Équitation
type: competence
sort: 2600000
img: systems/foundryvtt-reve-de-dragon/icons/competence_equitation.webp

View File

@ -742,7 +742,7 @@ items:
coreVersion: '12.331'
_key: '!actors.items!dW4RMKpz2WaXbW3h.MLIEbxSJHkY1m3No'
- _id: F5iQNrZSeJsfyTnV
name: Equitation
name: Équitation
type: competence
sort: 2600000
img: systems/foundryvtt-reve-de-dragon/icons/competence_equitation.webp

View File

@ -742,7 +742,7 @@ items:
coreVersion: '12.331'
_key: '!actors.items!ncXFs8oaZWG68Tzn.MLIEbxSJHkY1m3No'
- _id: F5iQNrZSeJsfyTnV
name: Equitation
name: Équitation
type: competence
sort: 2600000
img: systems/foundryvtt-reve-de-dragon/icons/competence_equitation.webp

View File

@ -742,7 +742,7 @@ items:
coreVersion: '12.331'
_key: '!actors.items!OKMXH6YpPXUyvqzN.MLIEbxSJHkY1m3No'
- _id: F5iQNrZSeJsfyTnV
name: Equitation
name: Équitation
type: competence
sort: 2600000
img: systems/foundryvtt-reve-de-dragon/icons/competence_equitation.webp

View File

@ -742,7 +742,7 @@ items:
coreVersion: '12.331'
_key: '!actors.items!EzV1Zxuwi7jwa6bj.MLIEbxSJHkY1m3No'
- _id: F5iQNrZSeJsfyTnV
name: Equitation
name: Équitation
type: competence
sort: 2600000
img: systems/foundryvtt-reve-de-dragon/icons/competence_equitation.webp

View File

@ -742,7 +742,7 @@ items:
coreVersion: '12.331'
_key: '!actors.items!YQ6vavAVyZecPvGQ.MLIEbxSJHkY1m3No'
- _id: F5iQNrZSeJsfyTnV
name: Equitation
name: Équitation
type: competence
sort: 2600000
img: systems/foundryvtt-reve-de-dragon/icons/competence_equitation.webp

View File

@ -742,7 +742,7 @@ items:
coreVersion: '12.331'
_key: '!actors.items!b7ThiitioBVXxU7D.MLIEbxSJHkY1m3No'
- _id: F5iQNrZSeJsfyTnV
name: Equitation
name: Équitation
type: competence
sort: 2600000
img: systems/foundryvtt-reve-de-dragon/icons/competence_equitation.webp

View File

@ -742,7 +742,7 @@ items:
coreVersion: '12.331'
_key: '!actors.items!XnBXyRyE2BUVVT1k.MLIEbxSJHkY1m3No'
- _id: F5iQNrZSeJsfyTnV
name: Equitation
name: Équitation
type: competence
sort: 2600000
img: systems/foundryvtt-reve-de-dragon/icons/competence_equitation.webp

View File

@ -742,7 +742,7 @@ items:
coreVersion: '12.331'
_key: '!actors.items!kKI9izKrKftYVnvs.MLIEbxSJHkY1m3No'
- _id: F5iQNrZSeJsfyTnV
name: Equitation
name: Équitation
type: competence
sort: 2600000
img: systems/foundryvtt-reve-de-dragon/icons/competence_equitation.webp

View File

@ -742,7 +742,7 @@ items:
coreVersion: '12.331'
_key: '!actors.items!nzw2q9BHSDN6TIQQ.MLIEbxSJHkY1m3No'
- _id: F5iQNrZSeJsfyTnV
name: Equitation
name: Équitation
type: competence
sort: 2600000
img: systems/foundryvtt-reve-de-dragon/icons/competence_equitation.webp

View File

@ -742,7 +742,7 @@ items:
coreVersion: '12.331'
_key: '!actors.items!Pf4cLn0kandYzviD.MLIEbxSJHkY1m3No'
- _id: F5iQNrZSeJsfyTnV
name: Equitation
name: Équitation
type: competence
sort: 2600000
img: systems/foundryvtt-reve-de-dragon/icons/competence_equitation.webp

View File

@ -768,7 +768,7 @@ items:
coreVersion: '12.331'
_key: '!actors.items!xGtM3z3KM6N6lpd5.MLIEbxSJHkY1m3No'
- _id: F5iQNrZSeJsfyTnV
name: Equitation
name: Équitation
type: competence
flags: {}
img: systems/foundryvtt-reve-de-dragon/icons/competence_equitation.webp

View File

@ -743,7 +743,7 @@ items:
coreVersion: '12.331'
_key: '!actors.items!z87rV5CJ3inc6ZPc.MLIEbxSJHkY1m3No'
- _id: F5iQNrZSeJsfyTnV
name: Equitation
name: Équitation
type: competence
sort: 2600000
img: systems/foundryvtt-reve-de-dragon/icons/competence_equitation.webp

View File

@ -743,7 +743,7 @@ items:
coreVersion: '12.331'
_key: '!actors.items!I8Q3Aj4ZUrsU4yBg.MLIEbxSJHkY1m3No'
- _id: F5iQNrZSeJsfyTnV
name: Equitation
name: Équitation
type: competence
sort: 2600000
img: systems/foundryvtt-reve-de-dragon/icons/competence_equitation.webp

View File

@ -742,7 +742,7 @@ items:
coreVersion: '12.331'
_key: '!actors.items!kB7OSWKvd6m9v0dB.MLIEbxSJHkY1m3No'
- _id: F5iQNrZSeJsfyTnV
name: Equitation
name: Équitation
type: competence
sort: 2600000
img: systems/foundryvtt-reve-de-dragon/icons/competence_equitation.webp

View File

@ -814,7 +814,7 @@ pages:
Epais}</td><td style="width:25%;height:10px">2</td><td
style="width:15%;height:10px">10s</td></tr><tr style="height:10px"><td
style="width:60%;height:10px">@Compendium[foundryvtt-reve-de-dragon.equipement.fDwsTMuug0Z5BdaA]{Cuir
/ Metal}</td><td style="width:25%;height:10px">4</td><td
/ Métal}</td><td style="width:25%;height:10px">4</td><td
style="width:15%;height:10px">20s</td></tr><tr style="height:10px"><td
style="width:60%;height:10px">@Compendium[foundryvtt-reve-de-dragon.equipement.KQZIK8ltQ3sQiDGe]{Mailles
de Fer}</td><td style="width:25%;height:10px">6</td><td

View File

@ -743,7 +743,7 @@ items:
coreVersion: '12.331'
_key: '!actors.items!GJWEoGXy5kSd4sT8.MLIEbxSJHkY1m3No'
- _id: F5iQNrZSeJsfyTnV
name: Equitation
name: Équitation
type: competence
sort: 2600000
img: systems/foundryvtt-reve-de-dragon/icons/competence_equitation.webp

View File

@ -743,7 +743,7 @@ items:
coreVersion: '12.331'
_key: '!actors.items!m63oPEPvCrds4akp.MLIEbxSJHkY1m3No'
- _id: F5iQNrZSeJsfyTnV
name: Equitation
name: Équitation
type: competence
sort: 2600000
img: systems/foundryvtt-reve-de-dragon/icons/competence_equitation.webp

View File

@ -743,7 +743,7 @@ items:
coreVersion: '12.331'
_key: '!actors.items!jtJqqegMrF3fuND3.MLIEbxSJHkY1m3No'
- _id: F5iQNrZSeJsfyTnV
name: Equitation
name: Équitation
type: competence
sort: 2600000
img: systems/foundryvtt-reve-de-dragon/icons/competence_equitation.webp

View File

@ -743,7 +743,7 @@ items:
coreVersion: '12.331'
_key: '!actors.items!8Jeas59CdpnnYabL.MLIEbxSJHkY1m3No'
- _id: F5iQNrZSeJsfyTnV
name: Equitation
name: Équitation
type: competence
sort: 2600000
img: systems/foundryvtt-reve-de-dragon/icons/competence_equitation.webp

View File

@ -743,7 +743,7 @@ items:
coreVersion: '12.331'
_key: '!actors.items!7WgNJwO7p5QNraXA.MLIEbxSJHkY1m3No'
- _id: F5iQNrZSeJsfyTnV
name: Equitation
name: Équitation
type: competence
sort: 2600000
img: systems/foundryvtt-reve-de-dragon/icons/competence_equitation.webp

View File

@ -742,7 +742,7 @@ items:
coreVersion: '12.331'
_key: '!actors.items!N5ybrpVwbpL8aPG0.MLIEbxSJHkY1m3No'
- _id: F5iQNrZSeJsfyTnV
name: Equitation
name: Équitation
type: competence
img: systems/foundryvtt-reve-de-dragon/icons/competence_equitation.webp
effects: []

View File

@ -742,7 +742,7 @@ items:
coreVersion: '12.331'
_key: '!actors.items!X9d5McdSAT1Ivp39.MLIEbxSJHkY1m3No'
- _id: F5iQNrZSeJsfyTnV
name: Equitation
name: Équitation
type: competence
img: systems/foundryvtt-reve-de-dragon/icons/competence_equitation.webp
effects: []

View File

@ -743,7 +743,7 @@ items:
coreVersion: '12.331'
_key: '!actors.items!hvNej1XRliayVZu1.MLIEbxSJHkY1m3No'
- _id: F5iQNrZSeJsfyTnV
name: Equitation
name: Équitation
type: competence
sort: 2600000
img: systems/foundryvtt-reve-de-dragon/icons/competence_equitation.webp

View File

@ -743,7 +743,7 @@ items:
coreVersion: '12.331'
_key: '!actors.items!4bI9HX4oomMEXrOT.MLIEbxSJHkY1m3No'
- _id: F5iQNrZSeJsfyTnV
name: Equitation
name: Équitation
type: competence
sort: 2600000
img: systems/foundryvtt-reve-de-dragon/icons/competence_equitation.webp

View File

@ -743,7 +743,7 @@ items:
coreVersion: '12.331'
_key: '!actors.items!AZBxORb7IYgXaOfb.MLIEbxSJHkY1m3No'
- _id: F5iQNrZSeJsfyTnV
name: Equitation
name: Équitation
type: competence
sort: 2600000
img: systems/foundryvtt-reve-de-dragon/icons/competence_equitation.webp

View File

@ -743,7 +743,7 @@ items:
coreVersion: '12.331'
_key: '!actors.items!OOIjBdFjCKdgJKff.MLIEbxSJHkY1m3No'
- _id: F5iQNrZSeJsfyTnV
name: Equitation
name: Équitation
type: competence
sort: 2600000
img: systems/foundryvtt-reve-de-dragon/icons/competence_equitation.webp

View File

@ -743,7 +743,7 @@ items:
coreVersion: '12.331'
_key: '!actors.items!Jas7Wr22jSllfkin.MLIEbxSJHkY1m3No'
- _id: F5iQNrZSeJsfyTnV
name: Equitation
name: Équitation
type: competence
sort: 2600000
img: systems/foundryvtt-reve-de-dragon/icons/competence_equitation.webp

View File

@ -459,7 +459,7 @@
"chance": {
"value": 0,
"max": 0,
"label": "Chance",
"label": "Chance actuelle",
"isInput": true
},
"destinee": {

View File

@ -0,0 +1,25 @@
{{#if armures}}
{{#each armures as |armure|}}
<li class="caracteristique item flexrow list-item" data-item-id="{{armure.id}}">
<span class="flex-grow">
<img class="sheet-competence-img subacteur-open" src="{{armure.img}}" data-tooltip="{{armure.name}}"/>
<a class="item-equip" data-tooltip="Equiper">{{#if armure.system.equipe}}<i class="fas fa-hand-rock"></i>{{else}}<i class="far fa-hand-paper"></i>{{/if}}</a>
<a>{{armure.name}}</a>
{{#if armure.system.malus}}
<span class="derivee-value">({{armure.system.malus}})</span>
{{/if}}
</span>
<input class="derivee-value" type="text" disabled value="{{armure.system.protection}}"/>
</li>
{{/each}}
{{/if}}
{{#if (or options.isGM (gt system.attributs.protection.value 0))}}
<li class="caracteristique flexrow list-item">
<label for="system.attributs.protection.value" >Protection naturelle</label>
<input class="derivee-value" type="number" {{#unless options.isGM}}disabled{{/unless}} name="system.attributs.protection.value" value="{{system.attributs.protection.value}}" data-dtype="number"/>
</li>
{{/if}}
<li class="caracteristique flexrow list-item" >
<label class="derivee-label">Malus armure</label>
<input class="derivee-value" type="number" disabled value="{{calc.malusArmure}}" data-dtype="number"/>
</li>

View File

@ -5,15 +5,23 @@
<label class="derivee-value"></label>
</li>
<br>
<li class="caracteristique flexrow list-item">
<label class="flexrow derivee-label">{{system.compteurs.stress.label}}
<a class="stress-test" data-tooltip="Transformer le stress"><i class="fa-regular fa-moon"></i></a>
</label>
<input class="derivee-value" type="number" name="system.compteurs.stress.value" value="{{system.compteurs.stress.value}}" data-dtype="number"/>
{{>"systems/foundryvtt-reve-de-dragon/templates/actor/armures.hbs"}}
<br>
<li class="caracteristique flexrow list-item" >
<label class="derivee-label">Seuil enc.</label>
<input class="derivee-value" type="number" disabled value="{{system.attributs.encombrement.value}}"/>
</li>
<li class="caracteristique flexrow list-item" >
<label class="derivee-label">Bonus dom.</label>
<input class="derivee-value" type="text" disabled value="{{plusMoins system.attributs.plusdom.value}}"/>
</li>
<li class="caracteristique flexrow list-item" >
<label class="derivee-label" name="system.attributs.sconst.label">{{system.attributs.sconst.label}}</label>
<input class="derivee-value" type="number" disabled value="{{system.attributs.sconst.value}}"/>
</li>
<br>
<li class="caracteristique flexrow list-item">
<label class="derivee-label">{{system.compteurs.moral.label}}
<span>
<a class="flex-shrink moral-malheureux" data-tooltip="Jet de moral situation malheureuse"><i class="fa-regular fa-face-frown"></i></a>
<a class="flex-shrink moral-neutre" data-tooltip="Jet de moral situation neutre"><i class="fa-regular fa-face-meh"></i></a>
@ -38,6 +46,12 @@
<label class="derivee-label">voyage</label>
<input class="derivee-value" type="number" name="system.compteurs.voyage.value" value="{{system.compteurs.voyage.value}}" data-dtype="number"/>
</li>
<li class="caracteristique flexrow list-item">
<label class="flexrow derivee-label">{{system.compteurs.stress.label}}
<a class="stress-test" data-tooltip="Transformer le stress"><i class="fa-regular fa-moon"></i></a>
</label>
<input class="derivee-value" type="number" name="system.compteurs.stress.value" value="{{system.compteurs.stress.value}}" data-dtype="number"/>
</li>
<br>
<li class="caracteristique flexrow list-item">
@ -45,40 +59,18 @@
<input class="derivee-value" type="number" disabled value="{{system.attributs.sust.value}}"/>
<label class="derivee-label" for="system.compteurs.sust.value">mangé</label>
<input class="derivee-value" type="number" name="system.compteurs.sust.value" value="{{system.compteurs.sust.value}}" data-dtype="number"/>
</li>
</li>
<li class="caracteristique flexrow list-item">
<label class="derivee-label"></label>
<label class="derivee-value"></label>
<label class="derivee-label" for="system.compteurs.eau.value">bu</label>
<input class="derivee-value" type="number" name="system.compteurs.eau.value" value="{{system.compteurs.eau.value}}" data-dtype="number"/>
</li>
</li>
<li class="caracteristique flexrow list-item" data-tooltip="Niveau d'éthylisme">
<label class="derivee-label" for="system.compteurs.ethylisme.value">{{system.compteurs.ethylisme.label}}</label>
<select class="derivee-value" name="system.compteurs.ethylisme.value" data-dtype="Number">
{{selectOptions (RDD_CONFIG 'niveauEthylisme') selected=system.compteurs.ethylisme.value valueAttr="value" nameAttr="value" labelAttr="label"}}
</select>
</li>
<br>
<li class="caracteristique flexrow list-item" >
<label class="carac-label">Seuil enc.</label>
<input class="derivee-value" type="number" disabled value="{{system.attributs.encombrement.value}}"/>
</li>
<li class="caracteristique flexrow list-item" >
<label class="carac-label">Bonus dom.</label>
<input class="derivee-value" type="text" disabled value="{{plusMoins system.attributs.plusdom.value}}"/>
</li>
<li class="caracteristique flexrow list-item" >
<label class="carac-label">Malus armure</label>
<input class="derivee-value" type="number" disabled value="{{calc.malusArmure}}" data-dtype="number"/>
</li>
<li class="caracteristique flexrow list-item">
<label class="carac-label" for="system.attributs.protection.value" >Protection naturelle</label>
<input class="derivee-value" type="number" {{#unless options.isGM}}disabled{{/unless}} name="system.attributs.protection.value" value="{{system.attributs.protection.value}}" data-dtype="number"/>
</li>
<li class="caracteristique flexrow list-item" >
<label class="carac-label" name="system.attributs.sconst.label">{{system.attributs.sconst.label}}</label>
<input class="derivee-value" type="number" disabled value="{{system.attributs.sconst.value}}"/>
</select>
</li>
<br>
</ul>

View File

@ -2,10 +2,10 @@
<div>
{{#if carac.rollClass}}
<a class="{{carac.rollClass}}" data-carac-name="{{carac.column}}">
{{upper carac.colName}}
{{uppercase carac.colName}}
</a>
{{else}}
{{upper carac.colName}}
{{uppercase carac.colName}}
{{/if}}
<a class="{{button-name}}-moins"><i class="fa-regular fa-square-minus"></i></a>
<a class="{{button-name}}-plus"><i class="fa-regular fa-square-plus"></i></a>

View File

@ -1,9 +1,9 @@
<div class="flexrow">
<div>
{{#if carac.rollClass}}
<a class="{{carac.rollClass}}" data-carac-name="{{carac.column}}">{{upper carac.colName}}</a>
<a class="{{carac.rollClass}}" data-carac-name="{{carac.column}}">{{uppercase carac.colName}}</a>
{{else}}
{{upper carac.colName}}
{{uppercase carac.colName}}
{{/if}}
</div>
<div class="flex-group-right">{{carac.value}}</div>

View File

@ -1,6 +1,6 @@
<img class="chat-icon" src="{{competence.img}}" data-tooltip="{{competence.name}}"/>
<h4 data-categorie="tmr" data-actor-id="{{actor._id}}">
{{alias}} tente de {{maitrise.verbe}} {{le tmr.genre}}
{{alias}} tente de {{maitrise.verbe}} {{grammar-le tmr.genre}}
{{#if isTMRCache}}
{{caseTmr-type tmr.coord}}
{{else}}
@ -18,7 +18,7 @@
<span>
{{alias}}
{{#if rolled.isSuccess}}parvient à{{else}}échoue à{{/if}}
{{maitrise.verbe}} {{le tmr.genre}}
{{maitrise.verbe}} {{grammar-le tmr.genre}}
{{#if isTMRCache}}
{{caseTmr-type tmr.coord}}
{{else}}

View File

@ -1,8 +1,8 @@
<img class="chat-icon" src="icons/svg/lightning.svg" data-tooltip="Météo" />
<h4>Météo aléatoire</h4>
<ul>
<li>Vent: {{lowerFirst vent.description}} {{apostrophe 'de' vent.direction}}, force {{vent.force}}</li>
<li>Mer {{lowerFirst mer.description}}, {{apostrophe 'de' mer.direction}}, force {{mer.force}}</li>
<li>Vent: {{lowerFirst vent.description}} {{grammar-apostrophe 'de' vent.direction}}, force {{vent.force}}</li>
<li>Mer {{lowerFirst mer.description}}, {{grammar-apostrophe 'de' mer.direction}}, force {{mer.force}}</li>
<li>Température {{lowerFirst temperature.description}} ({{plusMoins temperature.force}})</li>
<li>Couverture nuageuse: {{lowerFirst nuage.description}}</li>
<li>Pluie: {{lowerFirst pluie.description}}</li>