Docs: Update CORRECTIONS.md with new refactoring details and fixes
- Document code duplication elimination in item models - Document currency conversion logic centralization - Document new Handlebars helpers (localizeAllegiance, joinPredilections) - Fix monetary conversion rates in documentation (1 PO = 100 SC, 1 PA = 10 SC) Generated by Mistral Vibe. Co-Authored-By: Mistral Vibe <vibe@mistral.ai>
This commit is contained in:
+68
-3
@@ -562,9 +562,9 @@ Les chemins doivent être **relatifs au répertoire `systems/`** :
|
||||
| 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 |
|
||||
| Valeurs d'Allégeance | ✅ Complété | Affichage propre : Tous, Chaos, Loi, Bêtes, Élémentaires (via helper localizeAllegiance) |
|
||||
| Orthographe Talent | ✅ Complété | "scéance" → "séance" |
|
||||
| Totaux argent/équipement | ✅ Complété | Calcul automatique activé + conversion lore |
|
||||
| Totaux argent/équipement | ✅ Complété | Calcul automatique activé avec conversion lore (1 PO = 100 SC, 1 PA = 10 SC) |
|
||||
|
||||
---
|
||||
|
||||
@@ -611,6 +611,71 @@ Utilisation du helper `subtract` pour vérifier si c'est la dernière prédilect
|
||||
|
||||
---
|
||||
|
||||
### 18. ✅ Réduction de la duplication de code dans les modèles items
|
||||
|
||||
**Problème :**
|
||||
Les modèles `equipement.mjs`, `arme.mjs`, `protection.mjs`, et `monnaie.mjs` dupliquaient les champs communs : `prixpo`, `prixca`, `prixsc`, `rarete`, `quantite`, `equipped`, `description`.
|
||||
|
||||
**Solution :**
|
||||
Création d'une classe de base `BaseItemWithPriceDataModel` dans `base-item.mjs` qui contient tous les champs communs. Les 4 modèles étendent maintenant cette classe.
|
||||
|
||||
**Avantages :**
|
||||
- Élimination de la duplication de code
|
||||
- Maintenance plus facile (changement dans un seul endroit)
|
||||
- Cohérence garantie entre tous les items avec prix
|
||||
|
||||
**Fichiers modifiés :**
|
||||
- `modules/models/base-item.mjs` - Ajout de `BaseItemWithPriceDataModel`
|
||||
- `modules/models/equipement.mjs` - Étend `BaseItemWithPriceDataModel`
|
||||
- `modules/models/arme.mjs` - Étend `BaseItemWithPriceDataModel`
|
||||
- `modules/models/protection.mjs` - Étend `BaseItemWithPriceDataModel`
|
||||
- `modules/models/monnaie.mjs` - Étend `BaseItemWithPriceDataModel`
|
||||
|
||||
---
|
||||
|
||||
### 19. ✅ Centralisation de la logique de conversion monétaire
|
||||
|
||||
**Problème :**
|
||||
La logique de conversion entre PO, PA et SC était dupliquée dans `computeRichesse()` et `computeValeurEquipement()`.
|
||||
|
||||
**Solution :**
|
||||
- Créé `MournbladeCYD2Utility.calculateItemValueSC(prixpo, prixca, prixsc)` - méthode statique pour calculer la valeur SC
|
||||
- Créé `MournbladeCYD2Utility.getItemValueSC(item)` - méthode qui calcule la valeur totale d'un item (prix × quantité)
|
||||
- Refactorisé les deux méthodes de l'Actor pour utiliser ces helpers
|
||||
- Le helper Handlebars `calculateItemValueSC` utilise maintenant la méthode statique
|
||||
|
||||
**Avantages :**
|
||||
- Une seule source de vérité pour les conversions monétaires
|
||||
- Maintenance plus facile
|
||||
- Réutilisable dans tout le codebase
|
||||
- Cohérent avec le lore Mournblade (1 PO = 100 SC, 1 PA = 10 SC)
|
||||
|
||||
**Fichiers modifiés :**
|
||||
- `modules/mournblade-cyd2-utility.js` - Ajout des méthodes statiques
|
||||
- `modules/mournblade-cyd2-actor.js` - Refactorisation pour utiliser les helpers
|
||||
|
||||
---
|
||||
|
||||
### 20. ✅ Amélioration des helpers Handlebars
|
||||
|
||||
**Nouveaux helpers ajoutés :**
|
||||
|
||||
1. **`localizeAllegiance(value)`** - Localise les valeurs d'allégeance
|
||||
- Mappe : tous→MNBL.all, chaos→MNBL.chaos, loi→MNBL.law, betes→MNBL.betes, elementaires→MNBL.elementaires, balance→MNBL.balance
|
||||
- Utilise `game.i18n.localize()` pour la traduction
|
||||
|
||||
2. **`joinPredilections(predilections)`** - Joint les prédilections avec des virgules
|
||||
- Filtre les prédilections acquises et non utilisées
|
||||
- Retourne une chaîne vide si aucune prédilection applicable
|
||||
- Évite la virgule finale superflue
|
||||
|
||||
**Fichiers modifiés :**
|
||||
- `modules/mournblade-cyd2-utility.js` - Ajout des helpers
|
||||
- `templates/actor-sheet.hbs` - Utilisation de `joinPredilections` et `localizeAllegiance`
|
||||
- `templates/creature-sheet.hbs` - Utilisation de `joinPredilections`
|
||||
|
||||
---
|
||||
|
||||
## Auteurs
|
||||
|
||||
Corrections réalisées par : Mistral Vibe (via Vibe CLI)
|
||||
@@ -695,7 +760,7 @@ Ajout des appels à ces méthodes dans `_prepareContext()` de la feuille personn
|
||||
- **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
|
||||
- **Conversions :** 1 PO = 100 SC, 1 PA = 10 SC (selon le lore : 1 PO = 10 SA, 1 SA = 10 PB)
|
||||
|
||||
**Code ajouté dans `mournblade-cyd2-personnage-sheet.mjs` :**
|
||||
```javascript
|
||||
|
||||
Reference in New Issue
Block a user