diff --git a/module/actor-sheet.js b/module/actor-sheet.js index 250e5bd5..0a4d9abd 100644 --- a/module/actor-sheet.js +++ b/module/actor-sheet.js @@ -102,11 +102,14 @@ export class RdDActorSheet extends ActorSheet { data.data.compteurs.chance.isChance = true; data.data.blessures.resume = this.actor.computeResumeBlessure(data.data.blessures); - // Mise à jour de l'encombrement total + // Mise à jour de l'encombrement total et du prix de l'équipement this.actor.computeEncombrementTotalEtMalusArmure(); + this.actor.computePrixTotalEquipement(); + // Common data data.data.competenceByCategory = data.competenceByCategory; data.data.encTotal = this.actor.encTotal; + data.data.prixTotalEquipement = this.actor.prixTotalEquipement; data.data.surprise = RdDBonus.find(this.actor.getSurprise(false)).descr; data.data.isGM = game.user.isGM; data.ajustementsConditions = CONFIG.RDD.ajustementsConditions; diff --git a/module/actor.js b/module/actor.js index 1a3cbe7b..232d4235 100644 --- a/module/actor.js +++ b/module/actor.js @@ -90,6 +90,7 @@ export class RdDActor extends Actor { // Dynamic computing fields this.encTotal = 0; + this.prixTotalEquipement = 0; /* // Auto-resize token @@ -124,6 +125,7 @@ export class RdDActor extends Actor { // Initialize empty items RdDUtility.computeCarac(actorData.data); this.computeEncombrementTotalEtMalusArmure(); + this.computePrixTotalEquipement(); this.computeEtatGeneral(); // Sanity check await this.checkMonnaiePresence(actorData.items); @@ -233,6 +235,9 @@ export class RdDActor extends Actor { getEncTotal() { return Math.floor(this.encTotal ?? 0); } + getPrixTotalEquipement() { + return Math.floor(this.prixTotalEquipement ?? 0); + } getSurenc() { return Misc.toInt(this.data.data.compteurs.surenc?.value); } @@ -909,6 +914,24 @@ export class RdDActor extends Actor { await this.update({ "data.attributs.malusarmure": malusArmureData }); } } + + /* -------------------------------------------- */ + async computePrixTotalEquipement() { + let prixTotalEquipement = 0; + + // prix total de l'équipement est la somme du cout de chaque équipement multiplié par sa quantité. + for (const item of this.data.items) { + if (item.data && item.data.cout != undefined) { + if (!Number(item.data.cout)) item.data.cout = 0; // Auto-fix + if (item.data.quantite == undefined) item.data.quantite = 1; // Auto-fix + if (item.data.cout < 0) item.data.cout = 0; // Auto-fix + prixTotalEquipement += Number(item.data.cout) * Number(item.data.quantite); + console.log("cout équipement : ", item.name, item.data.cout, item.data.quantite, prixTotalEquipement); + } + } + // Mise à jour valeur totale de l'équipement + this.prixTotalEquipement = prixTotalEquipement; + } /* -------------------------------------------- */ computeResumeBlessure(blessures = this.data.data.blessures) { @@ -2462,6 +2485,7 @@ export class RdDActor extends Actor { let update = { _id: item._id, "data.equipe": !item.data.data.equipe }; await this.updateEmbeddedEntity("OwnedItem", update); this.computeEncombrementTotalEtMalusArmure(); // Mise à jour encombrement + this.computePrixTotalEquipement(); // Mis à jour du prix total de l'équipement } } diff --git a/templates/actor-sheet.html b/templates/actor-sheet.html index ab276cab..70c5b13a 100644 --- a/templates/actor-sheet.html +++ b/templates/actor-sheet.html @@ -895,6 +895,7 @@

Equipement porté

Encombrement total/max : {{numberFormat data.encTotal decimals=1}} / {{data.attributs.encombrement.value}} {{data.surEncombrementMessage}} - + Prix total de l'équipement : {{numberFormat data.prixTotalEquipement decimals=2}} - Créer un objet {{#if data.isGM}} - Vider tout les conteneurs