From e1ca7ab73819729954be1f3a2ce8fbe5bf79bbbe Mon Sep 17 00:00:00 2001 From: Vincent Vandemeulebrouck Date: Fri, 16 Sep 2022 02:22:09 +0200 Subject: [PATCH] =?UTF-8?q?Am=C3=A9lioration=20des=20monnaies?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit On peut maintenant supprimer es monnaies tant qu'on garde une monnaie pour chaque valeur de base --- module/actor.js | 1 - module/item-monnaie.js | 17 ++++++++++++----- module/rdd-utility.js | 2 +- 3 files changed, 13 insertions(+), 7 deletions(-) diff --git a/module/actor.js b/module/actor.js index 6085a5f9..b4bfe9c4 100644 --- a/module/actor.js +++ b/module/actor.js @@ -200,7 +200,6 @@ export class RdDActor extends Actor { async checkMonnaiePresence() { // Ajout opportuniste si les pièces n'existent pas. if (!this.items) return; // Sanity check during import let manquantes = Monnaie.monnaiesManquantes(this.itemTypes['monnaie']); - //console.log("Manque : ", manquantes); if (manquantes.length > 0) { await this.createEmbeddedDocuments('Item', manquantes, { renderSheet: false }); } diff --git a/module/item-monnaie.js b/module/item-monnaie.js index bff8385c..077d4d2a 100644 --- a/module/item-monnaie.js +++ b/module/item-monnaie.js @@ -22,12 +22,19 @@ const MONNAIES_STANDARD = [ system: { quantite: 0, valeur_deniers: 1000, encombrement: 0.004, description: "" } } ] +const VALEURS_STANDARDS = MONNAIES_STANDARD.map(it =>it.system.valeur_deniers); export class Monnaie { - static isSystemMonnaie(item) { - let present = MONNAIES_STANDARD.find(monnaie => monnaie.system.valeur_deniers == item?.system?.valeur_deniers); - return present; + static isSystemMonnaie(item, items) { + if (item.type == 'monnaie') { + const valeur = item.system.valeur_deniers; + if (VALEURS_STANDARDS.includes(valeur)) { + const monnaiesDeValeur = items.filter(it => it.type == 'monnaie' && it.system.valeur_deniers == valeur) + return monnaiesDeValeur.length<=1; + } + } + return false; } static monnaiesData() { @@ -40,10 +47,10 @@ export class Monnaie { static monnaiesManquantes(disponibles) { const manquantes = MONNAIES_STANDARD.filter(standard => !disponibles.find(disponible => Monnaie.deValeur(disponible, standard.system?.valeur_deniers))); - if (manquantes.length>0) { + if (manquantes.length > 0) { console.error('monnaiesManquantes', manquantes, ' avec monnaies', disponibles, MONNAIES_STANDARD); } - return []; //manquantes; + return manquantes; } static deValeur(monnaie, valeur) { diff --git a/module/rdd-utility.js b/module/rdd-utility.js index 3ceecdac..04bcb0c9 100644 --- a/module/rdd-utility.js +++ b/module/rdd-utility.js @@ -861,7 +861,7 @@ export class RdDUtility { let itemId = li.data("item-id"); let objet = actorSheet.actor.getObjet(itemId); - if (objet.type == 'monnaie' && Monnaie.isSystemMonnaie(objet)) { + if (Monnaie.isSystemMonnaie(objet, actorSheet.actor.items)) { ui.notifications.warn("Suppression des monnaies de base impossible"); return; }