Fix xp des compétences tronc #182

La méthode splice retourne les éléments supprimées, et non pas
le tableau après suppression
This commit is contained in:
Vincent Vandemeulebrouck 2021-04-09 01:03:51 +02:00
parent f25ae66de1
commit 0ae77f6889
2 changed files with 7 additions and 7 deletions

View File

@ -153,8 +153,8 @@ export class RdDItemCompetence extends Item {
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é
.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);
}

View File

@ -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));
}