Petits fixes suite à tests #552

Merged
uberwald merged 4 commits from VincentVk/foundryvtt-reve-de-dragon:v10-fixes into v10 2022-09-16 08:34:19 +02:00
Showing only changes of commit 5daf15901a - Show all commits

View File

@ -929,26 +929,27 @@ export class RdDActor extends Actor {
if (!competence) { if (!competence) {
return; return;
} }
const stress = this.system.compteurs.experience.value;
const niveau = Number(competence.system.niveau); const niveau = Number(competence.system.niveau);
const stressTransforme = this.system.compteurs.experience.value; const xpSuivant = RdDItemCompetence.getCompetenceNextXp(niveau);
const xpRequis = RdDItemCompetence.getCompetenceNextXp(niveau) - competence.system.xp; const xpRequis = xpSuivant - competence.system.xp;
if (stressTransforme <= 0 || niveau >= competence.system.niveau_archetype || xpRequis <= 0) { if (stress <= 0 || niveau >= competence.system.niveau_archetype) {
ui.notifications.info(`La compétence ne peut pas augmenter! ui.notifications.info(`La compétence ne peut pas augmenter!
stress disponible: ${stressTransforme} stress disponible: ${stress}
expérience requise: ${xpRequis} expérience requise: ${xpRequis}
niveau : ${niveau} niveau : ${niveau}
archétype : ${competence.system.niveau_archetype}`); archétype : ${competence.system.niveau_archetype}`);
return; return;
} }
const xpUtilise = Math.min(stressTransforme, xpRequis); const xpUtilise = Math.max(0, Math.min(stress, xpRequis));
const gainNiveau = xpUtilise >= xpRequis ? 1 : 0; const gainNiveau = (xpUtilise >= xpRequis || xpRequis <=0) ? 1 : 0;
const nouveauNiveau = niveau + gainNiveau; 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({ await competence.update({
"system.xp": nouveauXp, "system.xp": nouveauXp,
"system.niveau": nouveauNiveau, "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 }); await this.update({ "system.compteurs.experience.value": stressTransformeRestant });
this.updateExperienceLog('Dépense stress', xpUtilise, `Stress en ${competence.name} ${gainNiveau ? "pour passer à " + nouveauNiveau : ""}`); this.updateExperienceLog('Dépense stress', xpUtilise, `Stress en ${competence.name} ${gainNiveau ? "pour passer à " + nouveauNiveau : ""}`);
} }