#45 : Verification encombrement et amelioration

This commit is contained in:
2020-11-27 09:40:48 +01:00
parent 317a89202a
commit dca4e28044
6 changed files with 40 additions and 18 deletions

View File

@ -705,11 +705,17 @@ export class RdDActor extends Actor {
}
/* -------------------------------------------- */
computeEncombrementTotal( ) {
computeEncombrementTotal( ) {
let totalEnc = 0;
for (const item of this.data.items) {
if ( item.data && item.data.encombrement ) { // Enc value filtering
totalEnc += Number(item.data.encombrement) * Number(((item.data.quantite)?item.data.quantite:1));
if ( item.data && item.data.encombrement != undefined ) {
if ( !Number(item.data.encombrement) ) item.data.encombrement = 0; // Auto-fix
if (!item.data.quantite) item.data.quantite = 1; // Auto-fix
item.data.encTotal = Number(item.data.encombrement) * Number(item.data.quantite);
//console.log("Enc:", item.name, item.data.encombrement, item.data.quantite, item.data.encTotal);
totalEnc += item.data.encTotal;
} else {
item.data.encTotal = 0; // Force default enc
}
}
this.encombrementTotal = totalEnc;

View File

@ -209,14 +209,16 @@ export class RdDUtility {
// Attribution des objets aux conteneurs
for (let conteneur of data.data.conteneurs) {
conteneur.subItems = [];
conteneur.encTotal = 0;
if (!conteneur.data.encTotal) conteneur.data.encTotal = 0;
//conteneur.data.encTotal = ; Deja calculé
if (conteneur.data.contenu) {
for (let id of conteneur.data.contenu) {
let objet = data.data.objets.find( objet => (id == objet._id) );
if (objet) {
objet.estContenu = true; // Permet de filtrer ce qui est porté dans le template
if (!objet.data.encombrement) objet.data.encombrement = 0; // Auto-fix
objet.estContenu = true; // Permet de filtrer ce qifui est porté dans le template
actorSheet.objetVersConteneur[id] = conteneur._id;
conteneur.encTotal += objet.data.encombrement * ((objet.data.quantite)?objet.data.quantite:1);
conteneur.data.encTotal += Number(objet.data.encombrement) * Number(((objet.data.quantite)?objet.data.quantite:1));
conteneur.subItems.push( objet );
}
}
@ -235,11 +237,11 @@ export class RdDUtility {
if (!niveau) niveau = 1;
let str = Handlebars.partials['systems/foundryvtt-reve-de-dragon/templates/actor-inventaire-conteneur.html']( { item: objet} );
if (objet.type == 'conteneur') {
str = str + "<ol class='item-list'>";
str = str + "<ul class='item-list alterne-list list-item-margin"+niveau+"1'>";
for (let subItem of objet.subItems) {
str = str + this.buildConteneur(subItem, niveau+1);
}
str = str + "</ol>";
str = str + "</ul>";
}
return new Handlebars.SafeString(str);
}