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