feat: ajoute la règle Fortune dans les jets
Règle : si Fortune > 0, le joueur peut cocher 'Fortune' pour lancer 1d8 + 8 au lieu de 2d8 (contraint les probabilités vers le haut). - character.mjs : passe fortuneValue dans roll.prompt() - roll.mjs : checkbox Fortune, formule 1d8 + 8 + totalModifier si cochée - roll-dialog.hbs : bloc Fortune (visible si fortuneValue > 0), preview mis à jour - chat-message.hbs : affiche '+8' dans la zone dés, ligne formule avec badge Fortune - roll.less : styles .form-fortune-row, .fl-mod.fortune, .fortune-fixed-badge - lang/fr.json : Roll.fortune/fortuneBonus/fortuneFixed/usedFortune Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
This commit is contained in:
@@ -38,6 +38,7 @@ export class CelestopolRoll extends Roll {
|
||||
const skillValue = options.skillValue ?? 0
|
||||
const woundLevelId = options.woundLevel ?? 0
|
||||
const destGaugeFull = options.destGaugeFull ?? false
|
||||
const fortuneValue = options.fortuneValue ?? 0
|
||||
const woundLabel = woundLevelId > 0
|
||||
? game.i18n.localize(SYSTEM.WOUND_LEVELS[woundLevelId]?.label ?? "")
|
||||
: null
|
||||
@@ -59,6 +60,7 @@ export class CelestopolRoll extends Roll {
|
||||
destGaugeFull,
|
||||
defaultRollMoonDie: options.rollMoonDie ?? false,
|
||||
modifierChoices,
|
||||
fortuneValue,
|
||||
}
|
||||
|
||||
const content = await foundry.applications.handlebars.renderTemplate(
|
||||
@@ -98,10 +100,15 @@ export class CelestopolRoll extends Roll {
|
||||
const modifier = parseInt(rollContext.modifier ?? 0) || 0
|
||||
const aspectMod = parseInt(rollContext.aspectModifier ?? 0) || 0
|
||||
const useDestin = destGaugeFull && (rollContext.useDestin === true || rollContext.useDestin === "true")
|
||||
const useFortune = fortuneValue > 0 && (rollContext.useFortune === true || rollContext.useFortune === "true")
|
||||
const rollMoonDie = rollContext.rollMoonDie === true || rollContext.rollMoonDie === "true"
|
||||
|
||||
// Fortune : 1d8 + 8 ; Destin : 3d8 ; sinon : 2d8
|
||||
const nbDice = useDestin ? 3 : 2
|
||||
const totalModifier = skillValue + woundMalus + aspectMod + modifier
|
||||
const formula = buildFormula(nbDice, totalModifier)
|
||||
const formula = useFortune
|
||||
? buildFormula(1, totalModifier + 8)
|
||||
: buildFormula(nbDice, totalModifier)
|
||||
|
||||
// Jet du dé de lune séparé (narratif)
|
||||
let moonDieResult = null
|
||||
@@ -121,7 +128,8 @@ export class CelestopolRoll extends Roll {
|
||||
modifier,
|
||||
aspectMod,
|
||||
useDestin,
|
||||
nbDice,
|
||||
useFortune,
|
||||
nbDice: useFortune ? 1 : nbDice,
|
||||
formula,
|
||||
rollMode: rollContext.visibility ?? "publicroll",
|
||||
rollMoonDie,
|
||||
@@ -245,6 +253,7 @@ export class CelestopolRoll extends Roll {
|
||||
aspectMod: this.options.aspectMod ?? 0,
|
||||
skillValue,
|
||||
useDestin: this.options.useDestin ?? false,
|
||||
useFortune: this.options.useFortune ?? false,
|
||||
nbDice: this.options.nbDice ?? diceResults.length,
|
||||
woundMalus,
|
||||
woundLabel,
|
||||
|
||||
Reference in New Issue
Block a user