v10 migration, ongoing WIP

This commit is contained in:
2022-05-03 09:01:10 +02:00
parent 4538439c02
commit a3fb328b7d
11 changed files with 60 additions and 65 deletions

View File

@ -239,7 +239,7 @@ export class RdDUtility {
if (b.name.includes("Extérieur")) return 1;
return a.name.localeCompare(b.name);
}
if (a.data.categorie.startsWith("melee") && b.data.categorie.startsWith("melee")) {
if (a.system.categorie.startsWith("melee") && b.system.categorie.startsWith("melee")) {
if (a.name.includes("Corps")) return -1;
if (b.name.includes("Corps")) return 1;
if (a.name.includes("Dague")) return -1;
@ -414,38 +414,37 @@ export class RdDUtility {
/* -------------------------------------------- */
static buildArbreDeConteneurs(conteneurs, objets) {
let objetVersConteneur = {};
let objetVersConteneur = {}
// Attribution des objets aux conteneurs
for (let conteneur of conteneurs) {
conteneur.subItems = [];
for (let id of conteneur.data.contenu ?? []) {
let objet = objets.find(objet => (id == objet._id));
conteneur.subItems = []
for (let id of conteneur.system.contenu ?? []) {
let objet = objets.find(objet => (id == objet._id))
if (objet) {
objet.estContenu = true; // Permet de filtrer ce qui est porté dans le template
objetVersConteneur[id] = conteneur._id;
conteneur.subItems.push(objet);
objetVersConteneur[id] = conteneur._id
conteneur.subItems.push(objet)
}
}
}
for (let conteneur of conteneurs) {
conteneur.data.encTotal = RdDUtility.calculEncContenu(conteneur, objets);
conteneur.system.encTotal = RdDUtility.calculEncContenu(conteneur, objets)
}
return objetVersConteneur;
return objetVersConteneur
}
/* -------------------------------------------- */
static calculEncContenu(conteneur, objets) {
const itemData = Misc.data(conteneur);
const contenuDatas = (itemData.data.contenu ?? []).filter(id => id != undefined)
.map(id => Misc.data(objets.find(it => (id == it._id))))
.filter(it => it);
let enc = Number(itemData.data.encombrement ?? 0) * Number(itemData.data.quantite ?? 1);
for (let itemData of contenuDatas) {
if (itemData.type == 'conteneur') {
enc += RdDUtility.calculEncContenu(itemData, objets);
const contenuDatas = (conteneur.system.contenu ?? []).filter(id => id != undefined)
.map(id => objets.find(it => (id == it._id)) )
.filter(it => it)
let enc = Number(conteneur.system.encombrement ?? 0) * Number(conteneur.system.quantite ?? 1)
for (let subContenu of contenuDatas) {
if (subContenu.type == 'conteneur') {
enc += RdDUtility.calculEncContenu(subContenu, objets)
}
else {
enc += Number(itemData.data.encombrement ?? 0) * Number(itemData.data.quantite ?? 1);
enc += Number(subContenu.system.encombrement ?? 0) * Number(subContenu.system.quantite ?? 1)
}
}
return enc;