From 5daf15901acdd124a1bd102f83a0d31c89157565 Mon Sep 17 00:00:00 2001 From: Vincent Vandemeulebrouck Date: Fri, 16 Sep 2022 02:20:00 +0200 Subject: [PATCH] Correction erreur xp restant --- module/actor.js | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/module/actor.js b/module/actor.js index f1496e1f..6085a5f9 100644 --- a/module/actor.js +++ b/module/actor.js @@ -929,26 +929,27 @@ export class RdDActor extends Actor { if (!competence) { return; } + const stress = this.system.compteurs.experience.value; const niveau = Number(competence.system.niveau); - const stressTransforme = this.system.compteurs.experience.value; - const xpRequis = RdDItemCompetence.getCompetenceNextXp(niveau) - competence.system.xp; - if (stressTransforme <= 0 || niveau >= competence.system.niveau_archetype || xpRequis <= 0) { + const xpSuivant = RdDItemCompetence.getCompetenceNextXp(niveau); + const xpRequis = xpSuivant - competence.system.xp; + if (stress <= 0 || niveau >= competence.system.niveau_archetype) { ui.notifications.info(`La compétence ne peut pas augmenter! - stress disponible: ${stressTransforme} + stress disponible: ${stress} expérience requise: ${xpRequis} niveau : ${niveau} archétype : ${competence.system.niveau_archetype}`); return; } - const xpUtilise = Math.min(stressTransforme, xpRequis); - const gainNiveau = xpUtilise >= xpRequis ? 1 : 0; + const xpUtilise = Math.max(0, Math.min(stress, xpRequis)); + const gainNiveau = (xpUtilise >= xpRequis || xpRequis <=0) ? 1 : 0; const nouveauNiveau = niveau + gainNiveau; - const nouveauXp = gainNiveau > 0 ? Math.max(competence.system.xp - xpRequis, 0) : (competence.system.xp + xpUtilise); + const nouveauXp = gainNiveau > 0 ? Math.max(competence.system.xp - xpSuivant, 0) : (competence.system.xp + xpUtilise); await competence.update({ "system.xp": nouveauXp, "system.niveau": nouveauNiveau, }); - const stressTransformeRestant = Math.max(0, stressTransforme - xpUtilise); + const stressTransformeRestant = Math.max(0, stress - xpUtilise); await this.update({ "system.compteurs.experience.value": stressTransformeRestant }); this.updateExperienceLog('Dépense stress', xpUtilise, `Stress en ${competence.name} ${gainNiveau ? "pour passer à " + nouveauNiveau : ""}`); }