diff --git a/module/item-competence.js b/module/item-competence.js index 85d38ef6..03939d03 100644 --- a/module/item-competence.js +++ b/module/item-competence.js @@ -151,11 +151,11 @@ export class RdDItemCompetence extends Item { static computeEconomieXPTronc(competences) { return competenceTroncs.map( list => list.map(name => RdDItemCompetence.findCompetence(competences, name)) - // calcul du coût xp jusqu'au niveau 0 maximum - .map(it => RdDItemCompetence.computeDeltaXP(it?.data.base ?? -11, Math.min(it?.data.niveau ?? -11, 0))) - .sort(Misc.descending(x => x)) - .splice(0, 1) // ignorer le coût xp le plus élevé - .reduce(Misc.sum(), 0) + // calcul du coût xp jusqu'au niveau 0 maximum + .map(it => RdDItemCompetence.computeDeltaXP(it?.data.base ?? -11, Math.min(it?.data.niveau ?? -11, 0))) + .sort(Misc.ascending()) + .splice(0, list.length-1) // prendre toutes les valeurs sauf l'une des plus élevées + .reduce(Misc.sum(), 0) ).reduce(Misc.sum(), 0); } diff --git a/module/misc.js b/module/misc.js index c6e2597f..0661b44b 100644 --- a/module/misc.js +++ b/module/misc.js @@ -22,11 +22,11 @@ export class Misc { return (a, b) => a + b; } - static ascending(orderFunction) { + static ascending(orderFunction = x=>x) { return (a, b) => Misc.sortingBy(orderFunction(a), orderFunction(b)); } - static descending(orderFunction) { + static descending(orderFunction = x=>x) { return (a, b) => Misc.sortingBy(orderFunction(b), orderFunction(a)); }