Merge branch 'v1.3' into 'v1.3'

#142 ajout du prix de l'équipement

See merge request LeRatierBretonnien/foundryvtt-reve-de-dragon!138
This commit is contained in:
Leratier Bretonnien 2021-01-29 22:42:34 +00:00
commit 01ccf9e364
3 changed files with 29 additions and 1 deletions

View File

@ -102,11 +102,14 @@ export class RdDActorSheet extends ActorSheet {
data.data.compteurs.chance.isChance = true; data.data.compteurs.chance.isChance = true;
data.data.blessures.resume = this.actor.computeResumeBlessure(data.data.blessures); 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.computeEncombrementTotalEtMalusArmure();
this.actor.computePrixTotalEquipement();
// Common data // Common data
data.data.competenceByCategory = data.competenceByCategory; data.data.competenceByCategory = data.competenceByCategory;
data.data.encTotal = this.actor.encTotal; data.data.encTotal = this.actor.encTotal;
data.data.prixTotalEquipement = this.actor.prixTotalEquipement;
data.data.surprise = RdDBonus.find(this.actor.getSurprise(false)).descr; data.data.surprise = RdDBonus.find(this.actor.getSurprise(false)).descr;
data.data.isGM = game.user.isGM; data.data.isGM = game.user.isGM;
data.ajustementsConditions = CONFIG.RDD.ajustementsConditions; data.ajustementsConditions = CONFIG.RDD.ajustementsConditions;

View File

@ -90,6 +90,7 @@ export class RdDActor extends Actor {
// Dynamic computing fields // Dynamic computing fields
this.encTotal = 0; this.encTotal = 0;
this.prixTotalEquipement = 0;
/* /*
// Auto-resize token // Auto-resize token
@ -124,6 +125,7 @@ export class RdDActor extends Actor {
// Initialize empty items // Initialize empty items
RdDUtility.computeCarac(actorData.data); RdDUtility.computeCarac(actorData.data);
this.computeEncombrementTotalEtMalusArmure(); this.computeEncombrementTotalEtMalusArmure();
this.computePrixTotalEquipement();
this.computeEtatGeneral(); this.computeEtatGeneral();
// Sanity check // Sanity check
await this.checkMonnaiePresence(actorData.items); await this.checkMonnaiePresence(actorData.items);
@ -233,6 +235,9 @@ export class RdDActor extends Actor {
getEncTotal() { getEncTotal() {
return Math.floor(this.encTotal ?? 0); return Math.floor(this.encTotal ?? 0);
} }
getPrixTotalEquipement() {
return Math.floor(this.prixTotalEquipement ?? 0);
}
getSurenc() { getSurenc() {
return Misc.toInt(this.data.data.compteurs.surenc?.value); 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 }); 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) { 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 }; let update = { _id: item._id, "data.equipe": !item.data.data.equipe };
await this.updateEmbeddedEntity("OwnedItem", update); await this.updateEmbeddedEntity("OwnedItem", update);
this.computeEncombrementTotalEtMalusArmure(); // Mise à jour encombrement this.computeEncombrementTotalEtMalusArmure(); // Mise à jour encombrement
this.computePrixTotalEquipement(); // Mis à jour du prix total de l'équipement
} }
} }

View File

@ -895,6 +895,7 @@
<span class="item-name"><h4>Equipement porté</h4></span> <span class="item-name"><h4>Equipement porté</h4></span>
<span class="item-name">Encombrement total/max : {{numberFormat data.encTotal decimals=1}} / {{data.attributs.encombrement.value}} <b>{{data.surEncombrementMessage}}</b></span> - <span class="item-name">Encombrement total/max : {{numberFormat data.encTotal decimals=1}} / {{data.attributs.encombrement.value}} <b>{{data.surEncombrementMessage}}</b></span> -
<span class="item-name">Prix total de l'équipement : {{numberFormat data.prixTotalEquipement decimals=2}}</span> -
<span class="item-name"><a id="creer-un-objet">Créer un objet</a></span> <span class="item-name"><a id="creer-un-objet">Créer un objet</a></span>
{{#if data.isGM}} {{#if data.isGM}}
<span class="item-name"> - <a id="nettoyer-conteneurs">Vider tout les conteneurs</a></span> <span class="item-name"> - <a id="nettoyer-conteneurs">Vider tout les conteneurs</a></span>