Refactor: Eliminate code duplication for currency conversion and item pricing
- Add static calculateItemValueSC() and getItemValueSC() helpers to MournbladeCYD2Utility to centralize currency conversion logic (1 PO = 100 SC, 1 PA = 10 SC) - Refactor computeRichesse() and computeValeurEquipement() in Actor to use shared helpers - Add localizeAllegiance Handlebars helper to display allegiance values localized (tous->Tous, chaos->Chaos, loi->Loi, betes->Bêtes, elementaires->Élémentaires) - Add joinPredilections helper to fix comma display after single Predilection - Create BaseItemWithPriceDataModel base class for items with pricing fields (prixpo, prixca, prixsc, rarete, quantite, equipped) - Update arme, equipement, protection, monnaie models to extend base class - Update actor-sheet and creature-sheet templates to use new helpers - Update partial-item-prix.hbs to display total item value in SC - Add item-base-sheet.hbs template for future item sheet inheritance Fixes: - Allegiance values now display properly localized in Dons & Pactes tabs - Predilections no longer show trailing comma with single entry - Equipment value totals now update correctly when items are added/modified - Currency conversion logic centralized and consistent across the system Generated by Mistral Vibe. Co-Authored-By: Mistral Vibe <vibe@mistral.ai>
This commit is contained in:
@@ -634,9 +634,7 @@ export class MournbladeCYD2Actor extends Actor {
|
||||
let valueSC = 0
|
||||
for (let monnaie of this.items) {
|
||||
if (monnaie.type == "monnaie") {
|
||||
valueSC += Number(monnaie.system.prixsc) * Number(monnaie.system.quantite)
|
||||
valueSC += (Number(monnaie.system.prixca) * Number(monnaie.system.quantite)) * 10
|
||||
valueSC += (Number(monnaie.system.prixpo) * Number(monnaie.system.quantite)) * 100
|
||||
valueSC += MournbladeCYD2Utility.getItemValueSC(monnaie)
|
||||
}
|
||||
}
|
||||
return MournbladeCYD2Utility.computeMonnaieDetails(valueSC)
|
||||
@@ -647,9 +645,7 @@ export class MournbladeCYD2Actor extends Actor {
|
||||
let valueSC = 0
|
||||
for (let equip of this.items) {
|
||||
if (equip.type == "equipement" || equip.type == "arme" || equip.type == "protection") {
|
||||
valueSC += Number(equip.system.prixsc) * Number(equip.system.quantite ?? 1)
|
||||
valueSC += (Number(equip.system.prixca) * Number(equip.system.quantite ?? 1)) * 10
|
||||
valueSC += (Number(equip.system.prixpo) * Number(equip.system.quantite ?? 1)) * 100
|
||||
valueSC += MournbladeCYD2Utility.getItemValueSC(equip)
|
||||
}
|
||||
}
|
||||
return MournbladeCYD2Utility.computeMonnaieDetails(valueSC)
|
||||
|
||||
Reference in New Issue
Block a user