From be323e6f68691247add7a9fa3eef6f07e46a987f Mon Sep 17 00:00:00 2001 From: LeRatierBretonnier Date: Sun, 29 Mar 2026 16:57:49 +0200 Subject: [PATCH] =?UTF-8?q?Domaines/Factions=20:=20calcul=20automatique=20?= =?UTF-8?q?de=20la=20valeur=20depuis=20les=20cases=20coch=C3=A9es?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit prepareDerivedData() calcule désormais : - skill.value = count(level1..level8 cochés) pour chaque domaine - faction.value = count(level1..level9 cochés) pour chaque faction - initiative recalculée après (dépend de mobilite.value et inspiration.value) Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> --- module/models/character.mjs | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/module/models/character.mjs b/module/models/character.mjs index 090bb0f..1fae852 100644 --- a/module/models/character.mjs +++ b/module/models/character.mjs @@ -153,7 +153,22 @@ export default class CelestopolCharacter extends foundry.abstract.TypeDataModel prepareDerivedData() { super.prepareDerivedData() - // Initiative PJ : 4 + Mobilité (Corps) + Inspiration (Cœur) + + // Calcul automatique de la valeur de chaque domaine = nombre de cases cochées + for (const stat of Object.values(this.stats)) { + for (const skill of Object.values(stat)) { + if (typeof skill !== "object" || !("level1" in skill)) continue + skill.value = [1,2,3,4,5,6,7,8].filter(i => skill[`level${i}`]).length + } + } + + // Calcul automatique de la valeur de chaque faction = nombre de cases cochées + for (const faction of Object.values(this.factions)) { + if (typeof faction !== "object" || !("level1" in faction)) continue + faction.value = [1,2,3,4,5,6,7,8,9].filter(i => faction[`level${i}`]).length + } + + // Initiative PJ : 4 + Mobilité (Corps) + Inspiration (Cœur) [après calcul des domaines] this.initiative = 4 + (this.stats.corps.mobilite?.value ?? 0) + (this.stats.coeur.inspiration?.value ?? 0) }