Petits fixes suite à tests #552
@ -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 : ""}`);
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user