Fix recherche competence

La recherche de compétence cherchait dans tous les items (y compris les
armes), ce qui affichait des messages ui
This commit is contained in:
Vincent Vandemeulebrouck
2021-11-20 01:04:22 +01:00
parent 0f655bd89d
commit f91dfd04a2
4 changed files with 73 additions and 40 deletions

View File

@ -79,18 +79,12 @@ export class RdDItemCompetence extends Item {
return Misc.data(competence)?.data.categorie;
}
static isDraconic(competence) {
return Misc.data(competence).data.categorie == 'draconic';
return Misc.data(competence)?.data.categorie == 'draconic';
}
/* -------------------------------------------- */
static getVoieDraconic(competences, voie) {
voie = Grammar.toLowerCaseNoAccent(voie);
return competences.find(it => RdDItemCompetence.isDraconic(it) && Grammar.toLowerCaseNoAccent(Misc.data(it).name).includes(voie));
}
/* -------------------------------------------- */
static getEsquive(competences) {
return { name: 'Esquive', niveau: RdDItemCompetence.findCompetence(competences, 'Esquive')?.data.niveau ?? -6 };
return RdDItemCompetence.findCompetence(competences.filter(it => RdDItemCompetence.isDraconic(it) ), voie);
}
/* -------------------------------------------- */
@ -208,8 +202,22 @@ export class RdDItemCompetence extends Item {
}
/* -------------------------------------------- */
static findCompetence(list, name) {
return Misc.findFirstLike(name, list, it => it.name, 'compétences');
static findCompetence(list, idOrName, options = {}) {
options = mergeObject(options, {
filter: it => RdDItemCompetence.isCompetence(it),
description: 'compétence',
});
return list.find(it => it.id == idOrName && RdDItemCompetence.isCompetence(it))
?? Misc.findFirstLike(idOrName, list, options);
}
/* -------------------------------------------- */
static findCompetences(list, name) {
return Misc.findAllLike(name, list, { filter: it => RdDItemCompetence.isCompetence(it), description: 'compétence' });
}
static isCompetence(item) {
return item.type == 'competence' || item.type == 'competencecreature';
}
/* -------------------------------------------- */