Fix: Correction des taux de conversion monétaire selon le lore Mournblade

- Ancienne conversion : 1 PO = 400 SC, 1 PA = 20 SC (incorrect)
- Nouvelle conversion : 1 PO = 100 SC, 1 PA = 10 SC (selon le lore)

Selon le lore des Jeunes Royaumes :
- 1 Sou d'Argent (SA) = 10 Pièces de Bronze (PB)
- 1 Pièce d'Or (PO) = 10 Sous d'Argent = 100 Pièces de Bronze

Correspondance dans le code :
- SC = Pièces de Bronze (PB)
- PA/CA = Sous d'Argent (SA)
- PO = Pièces d'Or (PO)

Fichiers modifiés :
- mournblade-cyd2-utility.js : Helper calculateItemValueSC et computeMonnaieDetails
- mournblade-cyd2-actor.js : computeValeurEquipement()

Generated by Mistral Vibe.
Co-Authored-By: Mistral Vibe <vibe@mistral.ai>
This commit is contained in:
2026-06-07 19:12:17 +02:00
parent 4f675cb5c1
commit 59fa8c72ff
2 changed files with 20 additions and 5 deletions
+2 -2
View File
@@ -646,8 +646,8 @@ export class MournbladeCYD2Actor extends Actor {
for (let equip of this.items) { for (let equip of this.items) {
if (equip.type == "equipement" || equip.type == "arme" || equip.type == "protection") { if (equip.type == "equipement" || equip.type == "arme" || equip.type == "protection") {
valueSC += Number(equip.system.prixsc) * Number(equip.system.quantite ?? 1) valueSC += Number(equip.system.prixsc) * Number(equip.system.quantite ?? 1)
valueSC += (Number(equip.system.prixca) * Number(equip.system.quantite ?? 1)) * 20 valueSC += (Number(equip.system.prixca) * Number(equip.system.quantite ?? 1)) * 10
valueSC += (Number(equip.system.prixpo) * Number(equip.system.quantite ?? 1)) * 400 valueSC += (Number(equip.system.prixpo) * Number(equip.system.quantite ?? 1)) * 100
} }
} }
return MournbladeCYD2Utility.computeMonnaieDetails(valueSC) return MournbladeCYD2Utility.computeMonnaieDetails(valueSC)
+18 -3
View File
@@ -49,6 +49,19 @@ export class MournbladeCYD2Utility {
Handlebars.registerHelper('subtract', function (a, b) { Handlebars.registerHelper('subtract', function (a, b) {
return parseInt(a) - parseInt(b); return parseInt(a) - parseInt(b);
}) })
// Helper pour calculer la valeur totale d'un item en SC (Sous de Cuivre / Pièces de Bronze)
// Conversion selon le lore Mournblade :
// 1 SA (Sou d'Argent / Pièce d'Argent) = 10 PB (Pièces de Bronze / Sous de Cuivre)
// 1 PO (Pièce d'Or) = 10 SA = 100 PB
// Donc : 1 CA = 10 SC, 1 PO = 100 SC
Handlebars.registerHelper('calculateItemValueSC', function (prixpo, prixca, prixsc) {
const po = parseInt(prixpo) || 0;
const ca = parseInt(prixca) || 0;
const sc = parseInt(prixsc) || 0;
return po * 100 + ca * 10 + sc;
});
Handlebars.registerHelper('select', function(value, options) { Handlebars.registerHelper('select', function(value, options) {
const html = options.fn(this); const html = options.fn(this);
const escaped = String(value).replace(/[.*+?^${}()|[\]\\]/g, '\\$&'); const escaped = String(value).replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
@@ -333,9 +346,11 @@ export class MournbladeCYD2Utility {
/* -------------------------------------------- */ /* -------------------------------------------- */
static computeMonnaieDetails(valueSC) { static computeMonnaieDetails(valueSC) {
let po = Math.floor(valueSC / 400) // Conversion selon le lore Mournblade :
let pa = Math.floor((valueSC - (po * 400)) / 20) // 1 PO = 100 SC, 1 CA (PA) = 10 SC
let sc = valueSC - (po * 400) - (pa * 20) let po = Math.floor(valueSC / 100)
let pa = Math.floor((valueSC - (po * 100)) / 10)
let sc = valueSC - (po * 100) - (pa * 10)
return { return {
po, pa, sc, valueSC po, pa, sc, valueSC
} }