feat: tests de résistance (2d8+TR, auto-blessure sur échec)
- rollResistance(statId) dans character.mjs : formule 2d8 + bonus TR + malus blessures - Dialog sans Modificateur/Aspect/Lune/Destin/Fortune/Puiser en mode résistance - Auto-cochage de la prochaine case de blessure sur échec - Chat message : notification blessure cochée (woundTaken) - Stat-res cliquable (rollable) en mode jeu dans l'onglet compétences - base-actor-sheet : routing clic stat-res → rollResistance - CSS : .resistance-wound-notice - i18n : resistanceTest, resistanceClickToRoll, woundTaken Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
This commit is contained in:
@@ -226,4 +226,31 @@ export default class CelestopolCharacter extends foundry.abstract.TypeDataModel
|
||||
fortuneValue: this.attributs.fortune.value,
|
||||
})
|
||||
}
|
||||
|
||||
/**
|
||||
* Lance un test de résistance pour une stat donnée.
|
||||
* Formule : 2d8 + resBonus + woundMalus
|
||||
* Pas de lune, Puiser, Fortune ou Destin.
|
||||
* Échec → blessure automatique.
|
||||
* @param {string} statId - Id de la stat (ame, corps, coeur, esprit)
|
||||
*/
|
||||
async rollResistance(statId) {
|
||||
const { CelestopolRoll } = await import("../documents/roll.mjs")
|
||||
const statData = this.stats[statId]
|
||||
if (!statData) return null
|
||||
|
||||
return CelestopolRoll.prompt({
|
||||
actorId: this.parent.id,
|
||||
actorName: this.parent.name,
|
||||
actorImage: this.parent.img,
|
||||
statId,
|
||||
statLabel: SYSTEM.STATS[statId]?.label,
|
||||
skillLabel: "CELESTOPOL.Roll.resistanceTest",
|
||||
skillValue: statData.res ?? 0,
|
||||
woundMalus: this.getWoundMalus(),
|
||||
woundLevel: this.blessures.lvl,
|
||||
difficulty: this.prefs.difficulty,
|
||||
isResistance: true,
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user