Ajout arme morsure au chafouin

retravail sur les competences;

- standardiser les noms de fichiers de templates
- méthodes classify pour construire une multimap par type
- méthodes pour charger les entrées du compendium
- méthodes spécifiques au compétences déplacées
This commit is contained in:
Vincent Vandemeulebrouck
2021-01-08 22:23:50 +01:00
parent 4dbab303f3
commit a338bb144e
25 changed files with 543 additions and 595 deletions

View File

@ -3,16 +3,26 @@
export class RdDItem {
/* -------------------------------------------- */
static buildItemsClassification( items ) {
let itemsByType = {};
static buildItemsClassification(items) {
return RdDItem.classify(items, it => it.type)
}
static classify(items, classifier = it => it.type, transform = it => it) {
let itemsBy = {};
RdDItem.classifyInto(itemsBy, items, classifier, transform);
return itemsBy;
}
static classifyInto(itemsBy, items, classifier = it => it.type, transform = it => it) {
for (const item of items) {
let list = itemsByType[item.type];
const classification = classifier(item);
let list = itemsBy[classification];
if (!list) {
list = [];
itemsByType[item.type] = list;
itemsBy[classification] = list;
}
list.push(item);
list.push(transform(item));
}
return itemsByType;
}
}