Generated by Mistral Vibe. Co-Authored-By: Mistral Vibe <vibe@mistral.ai>
24 KiB
Corrections apportées au module Mournblade CYD 2.0
Date : 2026-06-07
Dernière mise à jour : 2026-06-07
Nouveautés et Améliorations (2026-06-07)
Problèmes identifiés et corrigés
1. ❌ Erreur de chargement des partials Handlebars
Problème : Les feuilles de personnage et de créature généraient une erreur lors du rendu :
Failed to render template part "sheet":
The partial systems/fvtt-mournblade-cyd-2-0/templates/partial-active-effects.hbs could not be found
Cause :
La fonction preloadHandlebarsTemplates() dans modules/mournblade-cyd2-utility.js ne préchargeait pas tous les partials nécessaires. Seuls 7 templates étaient préchargés sur 9 utilisés.
Partials manquants :
partial-active-effects.hbs- Utilisé dans les feuilles actor-sheet.hbs et creature-sheet.hbspartial-item-effects.hbs- Utilisé dans de nombreux templates d'items
Solution :
Ajout des deux partials manquants à la liste des templates préchargés dans la fonction preloadHandlebarsTemplates().
Fichier modifié :
modules/mournblade-cyd2-utility.js(lignes 189-201)
Code avant :
const templatePaths = [
'systems/fvtt-mournblade-cyd-2-0/templates/editor-notes-gm.hbs',
'systems/fvtt-mournblade-cyd-2-0/templates/partial-item-header.hbs',
'systems/fvtt-mournblade-cyd-2-0/templates/partial-item-description.hbs',
'systems/fvtt-mournblade-cyd-2-0/templates/partial-item-nav.hbs',
'systems/fvtt-mournblade-cyd-2-0/templates/partial-item-prix.hbs',
'systems/fvtt-mournblade-cyd-2-0/templates/partial-automation.hbs',
'systems/fvtt-mournblade-cyd-2-0/templates/hud-adversites.hbs',
]
Code après :
const templatePaths = [
'systems/fvtt-mournblade-cyd-2-0/templates/editor-notes-gm.hbs',
'systems/fvtt-mournblade-cyd-2-0/templates/partial-item-header.hbs',
'systems/fvtt-mournblade-cyd-2-0/templates/partial-item-description.hbs',
'systems/fvtt-mournblade-cyd-2-0/templates/partial-item-nav.hbs',
'systems/fvtt-mournblade-cyd-2-0/templates/partial-item-prix.hbs',
'systems/fvtt-mournblade-cyd-2-0/templates/partial-automation.hbs',
'systems/fvtt-mournblade-cyd-2-0/templates/partial-active-effects.hbs', // ✅ Ajouté
'systems/fvtt-mournblade-cyd-2-0/templates/partial-item-effects.hbs', // ✅ Ajouté
'systems/fvtt-mournblade-cyd-2-0/templates/hud-adversites.hbs',
]
2. ❌ Erreur de création d'effet actif
Problème :
base-actor-sheet.mjs:357 MournbladeCYD2 | Failed to create effect: TypeError:
Cannot read properties of undefined (reading 'create')
Cause :
La fonction ActiveEffectDialog.create() n'existe pas dans Foundry VTT v14. L'API a changé et cette méthode a été supprimée.
Solution :
Remplacement de l'appel à foundry.applications.api.ActiveEffectDialog.create() par une création directe via document.createEmbeddedDocuments("ActiveEffect", [data]), suivie de l'ouverture de la feuille d'édition.
Fichiers modifiés :
modules/applications/sheets/base-actor-sheet.mjs(lignes 328-363)modules/applications/sheets/base-item-sheet.mjs(lignes 189-224)
Code avant :
const effect = await foundry.applications.api.ActiveEffectDialog.create({
document: this.document,
effect: defaultEffectData
});
if (effect) {
await this.document.createEmbeddedDocuments("ActiveEffect", [effect.toObject()]);
}
Code après :
const [effect] = await this.document.createEmbeddedDocuments("ActiveEffect", [defaultEffectData]);
if (effect) {
effect.sheet.render(true);
}
3. ❌ Boucle infinie de chargement d'icône (effect.webp introuvable) ✅
Problème :
404 (Not Found) - GET https://localhost:31000/systems/fvtt-mournblade-cyd-2-0/assets/icons/effect.webp
Boucle infinie de tentatives de chargement
Cause :
L'icône effect.webp était référencée dans plusieurs fichiers mais n'existait pas dans le dossier assets/icons/. Chaque fois que la dialog de création d'effet s'ouvrait, le navigateur essayait de charger cette image manquante en boucle.
Fichiers concernés :
modules/applications/sheets/base-actor-sheet.mjs(ligne 336)modules/applications/sheets/base-item-sheet.mjs(ligne 197)modules/mournblade-cyd2-effects.js(lignes 120, 180)templates/partial-active-effects.hbs(ligne 30)templates/partial-item-effects.hbs(ligne 30)
Solution :
Remplacement de toutes les références à effect.webp par capacite.webp, une icône existante dans le dossier assets/icons/.
Code avant :
icon: "systems/fvtt-mournblade-cyd-2-0/assets/icons/effect.webp"
Code après :
icon: "systems/fvtt-mournblade-cyd-2-0/assets/icons/capacite.webp"
4. ❌ Propriété dépréciée ActiveEffectDuration.type ✅
Problème :
foundry.mjs:1555 Error: You are accessing ActiveEffectDuration#type,
which is now at ActiveEffectDuration#units.
Deprecated since Version 14
Backwards-compatible support will be removed in Version 16
Cause :
En Foundry VTT v14, la propriété duration.type a été renommée en duration.units. L'ancien nom était encore supporté pour la compatibilité, mais générait des avertissements et sera supprimé en v16.
Fichiers concernés :
templates/partial-active-effects.hbs(lignes 55-61)templates/partial-item-effects.hbs(lignes 51-56)
Solution :
Remplacement de toutes les occurrences de effect.duration.type par effect.duration.units dans les templates.
Code avant :
{{#if effect.duration.type}}
{{#if (eq effect.duration.type "rounds")}}🔄{{/if}}
{{#if (eq effect.duration.type "turns")}}🎭{{/if}}
{{/if}}
Code après :
{{#if effect.duration.units}}
{{#if (eq effect.duration.units "rounds")}}🔄{{/if}}
{{#if (eq effect.duration.units "turns")}}🎭{{/if}}
{{/if}}
5. ❌ Helper Handlebars "subtract" manquant ✅
Problème :
Failed to render Application "MournbladeCYD2PersonnageSheet":
Missing helper: "subtract"
Cause :
Le template utilisait le helper subtract dans {{#unless (eq index (subtract effect.changes.length 1))}} mais ce helper n'était pas enregistré dans Handlebars.
Fichiers concernés :
templates/partial-active-effects.hbs(ligne 44)templates/partial-item-effects.hbs(ligne 44)modules/mournblade-cyd2-utility.js(helper non enregistré)
Solution :
Ajout du helper subtract dans la méthode init() de MournbladeCYD2Utility :
Code ajouté :
Handlebars.registerHelper('subtract', function (a, b) {
return parseInt(a) - parseInt(b);
});
Fonctionnalité : Le helper permet de soustraire deux nombres dans les templates Handlebars, utilisé pour détecter le dernier élément d'une liste.
6. ❌ Clés i18n manquantes pour les effets ✅
Problème :
Les clés de localisation pour les messages d'erreur des effets actifs étaient manquantes dans lang/fr.json, ce qui pouvait entraîner l'affichage de messages en anglais ou vides.
Clés manquantes identifiées :
MOURNBLADECYD2.EFFECT.createErrorMOURNBLADECYD2.EFFECT.deleteErrorMOURNBLADECYD2.EFFECT.applyErrorMOURNBLADECYD2.EFFECT.applyItemErrorMOURNBLADECYD2.EFFECT.selectActorMOURNBLADECYD2.EFFECT.toggleError
Solution :
Ajout de toutes les clés manquantes dans la section EFFECT du fichier lang/fr.json.
Traductions ajoutées :
{
"createError": "Erreur lors de la création de l'effet",
"deleteError": "Erreur lors de la suppression de l'effet",
"applyError": "Erreur lors de l'application de l'effet",
"applyItemError": "Erreur lors de l'application de l'effet sur l'item",
"selectActor": "Sélectionnez un acteur pour appliquer l'effet",
"toggleError": "Erreur lors de l'activation/désactivation de l'effet"
}
Fichier modifié : lang/fr.json
7. ❌ Clés i18n MNBL manquantes ✅
Problème :
Les clés de localisation MNBL.details et MNBL.description étaient manquantes dans lang/fr.json, ce qui entraînait l'affichage de la clé elle-même au lieu d'une traduction.
Clés manquantes identifiées :
MNBL.details- Utilisée dans l'onglet "Détails" des fiches d'itemsMNBL.description- Utilisée dans l'onglet "Description" des fiches d'items
Solution :
Ajout des deux clés manquantes dans la section MNBL du fichier lang/fr.json.
Traductions ajoutées :
{
"details": "Détails",
"description": "Description"
}
Fichier modifié : lang/fr.json
8. ❌ Onglet "Effets" manquant dans les fiches d'items ✅
Problème : L'onglet "Effets" n'apparaissait pas dans les fiches d'items, empêchant l'accès à la gestion des effets actifs sur les items.
Cause :
Dans templates/partial-item-nav.hbs, l'onglet "Effets" n'était affiché que si l'item avait déjà des effets ({{#if item.effects.length}}).
Solution : Suppression de la condition pour toujours afficher l'onglet "Effets", même lorsque l'item n'a pas encore d'effets actifs.
Fichier modifié : templates/partial-item-nav.hbs
Code avant :
{{#if item.effects.length}}
<a class="item" data-tab="effects" ...>{{localize "MOURNBLADECYD2.EFFECT.activeEffects"}}</a>
{{/if}}
Code après :
<a class="item" data-tab="effects" ...>{{localize "MOURNBLADECYD2.EFFECT.activeEffects"}}</a>
9. ❌ Erreur de parsing JSON (historique)
Problème mentionné :
SyntaxError: Expected ',' or '}' after property value in JSON at position 3753 (line 118 column 4)
Statut :
Cette erreur concernait probablement une ancienne version du fichier lang/fr.json. Le fichier actuel est valide et ne contient pas d'erreur de syntaxe.
Vérification :
# Le fichier passe la validation JSON
node -e "require('./lang/fr.json')" # ✅ Pas d'erreur
Nouveautés et Améliorations (2026-06-07)
10. ✅ Amélioration du popup de bienvenue
Modification : Simplification de la mention des droits dans le popup de bienvenue.
Avant :
Mournblade est un jeu publié par Titam France / Sombres Projets, tous les droits leur appartiennent.
Après :
Mournblade est un jeu Titam.
Fichier modifié : modules/mournblade-cyd2-main.js (ligne 141)
11. ✅ Ajout du coût en Pouvoir pour les invocations en cours
Nouveauté : Ajout d'un champ numérique pour suivre le coût en Pouvoir des invocations en cours dans l'onglet Sorcellerie.
Fichiers modifiés :
modules/models/personnage.mjs- Ajout du champcoutPouvoirInvocationsdans le schéma sorcellerielang/fr.json- Ajout de la cléSORCELLERIE.coutPouvoirInvocationstemplates/actor-sheet.hbs- Ajout du champ dans le template
Clé i18n ajoutée :
{
"coutPouvoirInvocations": "Coût en Pouvoir des invocations"
}
Schémas modifié :
sorcellerie: new fields.SchemaField({
runes: new fields.HTMLField({ initial: "" }),
creaturesinvoquees: new fields.HTMLField({ initial: "" }),
demonslies: new fields.HTMLField({ initial: "" }),
enchantements: new fields.HTMLField({ initial: "" }),
invocationsencours: new fields.HTMLField({ initial: "" }),
coutPouvoirInvocations: new fields.NumberField({ initial: 0, integer: true }) // ✅ Ajouté
})
12. ✅ Amélioration de l'onglet Détails des Profils
Problème : Les sections de texte (Compétences exercées, Talents Initié, etc.) avaient un rendu peu esthétique.
Solution :
Remplacement des sections de texte simples par des div class="sheet-box" pour un meilleur rendu visuel.
Fichier modifié : templates/item-profil-sheet.hbs
Avant :
<h3>{{localize "MNBL.exercisedskills"}}</h3>
<div class="small-editor item-text-long-line">
{{editor competences target="system.competences" button=true owner=owner editable=editable}}
</div>
Après :
<div class="sheet-box">
<h3><label class="items-title-text">{{localize "MNBL.exercisedskills"}}</label></h3>
<div class="small-editor item-text-long-line">
{{editor competences target="system.competences" button=true owner=owner editable=editable}}
</div>
</div>
Impact :
- Meilleure cohérence visuelle avec le reste de l'interface
- Permet une meilleure organisation des sections
- Facilite l'ajout futur de fonctionnalités comme les liens vers le compendium
Liste complète des partials Handlebars
Partials utilisés dans le système :
| Partial | Utilisation | Pré-chargé ? |
|---|---|---|
partial-item-header.hbs |
En-têtes des items | ✅ Oui |
partial-item-description.hbs |
Descriptions des items | ✅ Oui |
partial-item-nav.hbs |
Navigation des items | ✅ Oui |
partial-item-prix.hbs |
Prix des items | ✅ Oui |
partial-item-effects.hbs |
Effets des items | ✅ Oui (ajouté) |
partial-active-effects.hbs |
Effets actifs (actors) | ✅ Oui (ajouté) |
partial-automation.hbs |
Automatisation | ✅ Oui |
editor-notes-gm.hbs |
Notes GM | ✅ Oui |
hud-adversites.hbs |
HUD Adversités | ✅ Oui |
Templates principaux
Fiches d'acteurs :
actor-sheet.hbs- Feuille de personnagecreature-sheet.hbs- Feuille de créature
Fiches d'items :
item-arme-sheet.hbsitem-capaciteautomata-sheet.hbsitem-competence-sheet.hbsitem-don-sheet.hbsitem-equipement-sheet.hbsitem-historique-sheet.hbsitem-monnaie-sheet.hbsitem-pacte-sheet.hbsitem-pouvoirselementaire-sheet.hbsitem-profil-sheet.hbsitem-protection-sheet.hbsitem-ressource-sheet.hbsitem-rune-sheet.hbsitem-runeeffect-sheet.hbsitem-talent-sheet.hbsitem-tendance-sheet.hbsitem-traitchaotique-sheet.hbsitem-traitdemoniaque-sheet.hbsitem-traitespece-sheet.hbs
Outils de test
Un script de test a été créé pour valider les corrections :
- Fichier :
test-templates.js - Exécution :
node test-templates.js
Fonctionnalités du test :
- ✅ Vérifie que tous les templates préchargés existent
- ✅ Scanne tous les templates pour trouver les partials utilisés
- ✅ Vérifie que tous les partials utilisés sont préchargés
- ✅ Valide le fichier de localisation JSON
Bonnes pratiques rappelées
Pré-chargement des templates Handlebars
En Foundry VTT v12+, il est obligatoire de pré-charger tous les partials Handlebars utilisés via la fonction foundry.applications.handlebars.loadTemplates() dans le hook init.
Pourquoi ?
- Les partials ne sont pas chargés automatiquement
- Sans pré-chargement, le rendu échouera avec une erreur "partial could not be found"
- Le pré-chargement améliore les performances en cacheant les templates
Où ?
Dans le hook init, avant l'enregistrement des feuilles (sheets) :
Hooks.once("init", async function () {
// Pré-charger les templates AVANT d'enregistrer les feuilles
await MournbladeCYD2Utility.preloadHandlebarsTemplates();
// Ensuite enregistrer les feuilles
Actors.registerSheet(...);
Items.registerSheet(...);
});
Gestion des chemins des templates
Les chemins doivent être relatifs au répertoire systems/ :
- ✅ Bon :
'systems/fvtt-mournblade-cyd-2-0/templates/partial-active-effects.hbs' - ❌ Mauvais :
'./templates/partial-active-effects.hbs'
Impact des corrections
Avant les corrections :
- ❌ Ouverture des feuilles de personnage → Erreur
- ❌ Ouverture des feuilles de créature → Erreur
- ❌ Affichage des effets actifs → Impossible
- ❌ Utilisation des effets d'items → Problèmes potentiels
- ❌ Création d'effets actifs → Erreur TypeError
- ❌ Boucle infinie de 404 sur effect.webp
- ❌ Avertissements duration.type déprécié
- ❌ Helper subtract manquant → Erreur de rendu
- ❌ Clés i18n manquantes → Messages en anglais
- ❌ Clés MNBL.details et MNBL.description manquantes
- ❌ Onglet "Effets" manquant dans les fiches d'items
Après les corrections :
- ✅ Toutes les feuilles s'ouvrent correctement
- ✅ Les effets actifs s'affichent correctement
- ✅ Tous les items affichent leurs effets
- ✅ Plus d'erreurs de templates manquants
- ✅ Création d'effets actifs fonctionne correctement
- ✅ Plus de boucles infinies de chargement d'icônes
- ✅ Plus d'avertissements de compatibilité
- ✅ Helper subtract disponible et fonctionnel
- ✅ Toutes les clés i18n présentes → Localisation complète
- ✅ Toutes les clés MNBL présentes
- ✅ Onglet "Effets" toujours visible dans les fiches d'items
Recommandations pour le développement futur
- Toujours pré-charger les nouveaux partials lorsqu'ils sont ajoutés
- Utiliser un script de test pour valider les templates après modification
- Maintenir une liste à jour des partials utilisés dans le projet
- Vérifier les erreurs de console lors du développement
- Tester toutes les feuilles après ajout de nouveaux partials
Fichiers modifiés
| Fichier | Modification | Statut |
|---|---|---|
modules/mournblade-cyd2-utility.js |
Ajout partials + helper subtract | ✅ Corrigé |
modules/applications/sheets/base-actor-sheet.mjs |
Correction création effets + icône | ✅ Corrigé |
modules/applications/sheets/base-item-sheet.mjs |
Correction création effets + icône | ✅ Corrigé |
modules/mournblade-cyd2-effects.js |
Remplacement effect.webp par capacite.webp | ✅ Corrigé |
templates/partial-active-effects.hbs |
Remplacement effect.webp + duration.type → duration.units | ✅ Corrigé |
templates/partial-item-effects.hbs |
Remplacement effect.webp + duration.type → duration.units | ✅ Corrigé |
templates/partial-item-nav.hbs |
Affichage permanent onglet Effets + clés MNBL | ✅ Corrigé |
test-templates.js |
Nouveau fichier de test | ✅ Ajouté |
CORRECTIONS.md |
Documentation des corrections | ✅ Ajouté |
lang/fr.json |
Ajout des clés i18n EFFECT + MNBL manquantes | ✅ Corrigé |
Fichiers modifiés (Nouveautés 2026-06-07)
| Fichier | Modification | Statut |
|---|---|---|
modules/mournblade-cyd2-main.js |
Simplification mention Titam dans popup | ✅ Corrigé |
modules/models/personnage.mjs |
Ajout champ coutPouvoirInvocations | ✅ Corrigé |
lang/fr.json |
Ajout clé SORCELLERIE.coutPouvoirInvocations | ✅ Corrigé |
templates/actor-sheet.hbs |
Ajout champ coût Pouvoir dans onglet Sorcellerie | ✅ Corrigé |
templates/item-profil-sheet.hbs |
Amélioration rendu sections avec sheet-box | ✅ Corrigé |
État des fonctionnalités demandées
| Fonctionnalité | Statut | Remarques |
|---|---|---|
| Clés i18n manquantes | ✅ Complété | Toutes les clés EFFECT et MNBL sont présentes |
| Onglet Effets des items | ✅ Complété | Toujours visible, même sans effets |
| Popup de lancement | ✅ Complété | Lien vers règles PAO 0.9 présent, mention Titam simplifiée |
| Onglet Sorcellerie | ✅ Déjà présent | Avec sections Runes, Créatures invoquées, Démons liés, Enchantements/Automata |
| Section Invocations en cours | ✅ Complété | Avec champ coût en Pouvoir ajouté |
| Case bleue Combat | ✅ Déjà présente | Affiche Initiative, Défense, Protection sur fiche personnage |
| Cases PO/PA/SC sur items | ✅ Déjà présent | Via partial-item-prix.hbs avec calcul automatique |
| Sections blanches dans Profils | ✅ Complété | Remplacement des blocs simples par sheet-box |
| Virgules après Prédilections | ✅ Complété | Plus de virgule finale lorsqu'il n'y a qu'une seule Prédilection |
| Valeurs d'Allégeance | ✅ Complété | Affichage propre : Tous, Chaos, Loi, Bêtes, Élémentaires |
| Orthographe Talent | ✅ Complété | "scéance" → "séance" |
| Totaux argent/équipement | ✅ Complété | Calcul automatique activé |
13. ✅ Correction de l'affichage des virgules après les Prédilections
Problème : Une virgule apparaît après une Prédilection même s'il n'y en a qu'une seule affichée.
Exemple avant :
Compétence (Prédilection1,)
Exemple après :
Compétence (Prédilection1)
Compétence (Prédilection1, Prédilection2) // Virgule uniquement entre les éléments
Solution :
Utilisation du helper subtract pour vérifier si c'est la dernière prédilection dans la liste et ne pas afficher la virgule dans ce cas.
Code avant :
{{#each skill.system.predilections as |pred key|}}
{{#if (and pred.acquise (not pred.used))}}
{{pred.name}},
{{/if}}
{{/each}}
Code après :
{{#each skill.system.predilections as |pred key|}}
{{#if (and pred.acquise (not pred.used))}}
{{pred.name}}{{#unless (eq key (subtract skill.system.predilections.length 1))}}, {{/unless}}
{{/if}}
{{/each}}
Fichiers modifiés :
templates/actor-sheet.hbs(ligne 278)templates/creature-sheet.hbs(ligne 270)
Auteurs
Corrections réalisées par : Mistral Vibe (via Vibe CLI) Date : 2026-06-07
14. ✅ Correction de l'affichage des valeurs d'Allégeance
Problème : Les valeurs d'allégeance étaient affichées avec des noms trop longs ou non capitalisés.
Solution : Ajout de nouvelles clés de localisation et mise à jour de la configuration des options d'allégeance.
Clés i18n ajoutées dans lang/fr.json :
{
"betes": "Bêtes",
"elementaires": "Élémentaires"
}
Configuration mise à jour dans mournblade-cyd2-config.js :
allegeanceOptions: {
tous: localizeOrFallback("MNBL.all", "Tous"),
chaos: localizeOrFallback("MNBL.chaos", "Chaos"),
loi: localizeOrFallback("MNBL.law", "Loi"),
balance: localizeOrFallback("MNBL.balance", "Balance"),
betes: localizeOrFallback("MNBL.betes", "Bêtes"),
elementaires: localizeOrFallback("MNBL.elementaires", "Élémentaires")
}
Résultat : Les allégeances sont maintenant affichées ainsi :
- "Tous", "Chaos", "Loi", "Balance", "Bêtes", "Élémentaires"
Fichiers modifiés :
lang/fr.json- Ajout des clés MNBL.betes et MNBL.elementairesmodules/mournblade-cyd2-config.js- Mise à jour des allegeanceOptions
15. ✅ Correction orthographique "scéance" → "séance"
Problème : Faute d'orthographe dans l'option d'utilisation des Talents : "Une fois par scéance" au lieu de "Une fois par séance".
Solution : Correction directe dans la configuration des options.
Modification dans modules/mournblade-cyd2-config.js :
// Avant
{ key: "sceance", label: "Une fois par scéance" },
// Après
{ key: "sceance", label: "Une fois par séance" },
Fichier modifié :
modules/mournblade-cyd2-config.js(ligne 214)
16. ✅ Activation du calcul automatique des totaux d'argent et d'équipement
Problème : Dans l'onglet Équipement des fiches de personnage, les lignes "Argent Total" et "Valeur Total Équipement" affichaient des valeurs vides ou non mises à jour. Ajouter un équipement avec une valeur en pièces ne changeait rien nulle part.
Cause :
Les méthodes computeRichesse() et computeValeurEquipement() existaient déjà dans mournblade-cyd2-actor.js, mais elles n'étaient pas appelées dans le contexte de la feuille.
Solution :
Ajout des appels à ces méthodes dans _prepareContext() de la feuille personnage.
Fonctionnement :
- Argent Total : Somme de toutes les monnaies (type "monnaie") converties en SC
- Valeur Total Équipement : Somme de tous les équipements, armes et protections converties en SC
- Les deux utilisent
computeMonnaieDetails()pour convertir une valeur SC en {po, pa, sc, valueSC} - Conversions : 1 PO = 400 SC, 1 PA = 20 SC
Code ajouté dans mournblade-cyd2-personnage-sheet.mjs :
context.richesse = actor.computeRichesse?.() ?? { po: 0, pa: 0, sc: 0, valueSC: 0 };
context.valeurEquipement = actor.computeValeurEquipement?.() ?? { po: 0, pa: 0, sc: 0, valueSC: 0 };
Fichier modifié :
modules/applications/sheets/mournblade-cyd2-personnage-sheet.mjs
Réponse à la question :
- Les totaux sont des additions (pas des soustractions)
- Ils apparaissent dans l'onglet Équipement et sont maintenant mis à jour automatiquement