feat: validation de phase d'Expérience (réinitialisation des limites)

- Nouveau bouton « Valider la phase » sur les fiches Personnage et
  Groupe : incrémente experience.phase et réinitialise les limites
  d'apprentissage (learned.*) pour recommencer une nouvelle phase,
  sans repasser par le dialogue d'attribution du MJ.
- Helper VermineExperience.completePhase(actor) mutualisé
  (personnage ou Groupe) ; i18n FR/EN.
This commit is contained in:
2026-08-05 20:58:46 +02:00
parent 46b9512256
commit 282fb2794a
7 changed files with 48 additions and 2 deletions
+22
View File
@@ -213,4 +213,26 @@ export class VermineExperience {
const preferred = actor.system?.skill_categories?.preferred
return Boolean(category && preferred && category === preferred)
}
/**
* Valide la phase d'Expérience courante : passe à la phase suivante et
* réinitialise toutes les limites d'apprentissage (learned.*), pour un
* personnage ou un Groupe.
* @param {foundry.abstract.Document} actor personnage ou Groupe
* @returns {Promise<void>}
*/
static async completePhase(actor) {
const ex = actor.system?.experience
if (!ex) return
const phase = (ex.phase || 0) + 1
const update = { "system.experience.phase": phase }
if (ex.learned && typeof ex.learned === "object") {
update["system.experience.learned.phase"] = phase
for (const key of Object.keys(ex.learned)) {
if (key === "phase") continue
update[`system.experience.learned.${key}`] = false
}
}
await actor.update(update)
}
}