Ame/Ame max

This commit is contained in:
2025-10-26 08:49:38 +01:00
parent cddc4ce48a
commit 2dc7665a25
72 changed files with 376 additions and 257 deletions

View File

@@ -534,6 +534,71 @@ export class MournbladeCYD2Utility {
return list
}
/* -------------------------------------------- */
static getAmeList(nbAme, ameMin = null) {
// ameMin représente le meilleur état accessible (le minimum où l'âme peut remonter)
// Si ameMin = 3 (Stressé 3), la liste commence à Stressé 3 et va jusqu'à Brisé
// Si ameMin = 0 (Serein), tous les états sont disponibles
let minEffectif = ameMin !== null && ameMin !== undefined ? Math.min(ameMin, nbAme) : 0
let list = []
// Ajouter Serein seulement si ameMin <= 0
if (minEffectif <= 0) {
list.push({ value: String(0), label: "Serein" })
}
// Génération des états Stressé
let nbStresseTotal = Math.max(0, nbAme - 3)
for (let i = 1; i <= nbStresseTotal; i++) {
if (i >= minEffectif) {
list.push({ value: String(i), label: "Stressé " + i })
}
}
// Ajout des états finaux
let traumatiseValue = nbAme - 2
let tresTraumatiseValue = nbAme - 1
let briseValue = nbAme
if (traumatiseValue >= minEffectif) {
list.push({ value: String(traumatiseValue), label: "Traumatisé" })
}
if (tresTraumatiseValue >= minEffectif) {
list.push({ value: String(tresTraumatiseValue), label: "Très Traumatisé" })
}
if (briseValue >= minEffectif) {
list.push({ value: String(briseValue), label: "Brisé" })
}
return list
}
/* -------------------------------------------- */
static getAmeMaxList(nbAme) {
// Génère la liste complète des états d'âme pour le dropdown "Max"
let list = [{ value: String(0), label: "Serein" }]
// Génération des états Stressé (de 1 à nbAme-3)
let nbStresse = Math.max(0, nbAme - 3)
for (let i = 1; i <= nbStresse; i++) {
list.push({ value: String(i), label: "Stressé " + i })
}
// Ajout des états finaux
if (nbAme >= 3) {
list.push({ value: String(nbAme - 2), label: "Traumatisé" })
}
if (nbAme >= 2) {
list.push({ value: String(nbAme - 1), label: "Très Traumatisé" })
}
if (nbAme >= 1) {
list.push({ value: String(nbAme), label: "Brisé" })
}
return list
}
/* -------------------------------------------- */
static async bonusRollMournbladeCYD2(rollData) {
rollData.bonusFormula = rollData.addedBonus