diff --git a/module/rdd-calendrier.js b/module/rdd-calendrier.js index 2e2bb34d..72aed10b 100644 --- a/module/rdd-calendrier.js +++ b/module/rdd-calendrier.js @@ -312,7 +312,8 @@ export class RdDCalendrier extends Application { let rollData = { caracValue: request.carac_vue, finalLevel: niveau, - showDice: false + showDice: false, + rollMode: "blindroll" }; await RdDResolutionTable.rollData(rollData); let nbAstral = this.getNombreAstral(request.date); diff --git a/module/rdd-dice.js b/module/rdd-dice.js index 0b77bf57..ec3afc10 100644 --- a/module/rdd-dice.js +++ b/module/rdd-dice.js @@ -134,9 +134,7 @@ export class RdDDice { static async roll(formula, options = { showDice: false, rollMode: undefined }) { const roll = new Roll(formula); await roll.evaluate({ async: true }); - if (options.showDice) { - roll.showDice = options.showDice; - } + roll.showDice = options.showDice; await RdDDice.show(roll, options.rollMode ?? game.settings.get("core", "rollMode")); return roll; } diff --git a/module/rdd-resolution-table.js b/module/rdd-resolution-table.js index 3367b6a2..2649d1fc 100644 --- a/module/rdd-resolution-table.js +++ b/module/rdd-resolution-table.js @@ -102,22 +102,23 @@ export class RdDResolutionTable { /* -------------------------------------------- */ static async rollData(rollData) { - rollData.rolled = await this.roll(rollData.caracValue, rollData.finalLevel, rollData.bonus, rollData.diviseurSignificative, rollData.showDice); + rollData.rolled = await this.roll(rollData.caracValue, rollData.finalLevel, rollData); return rollData; } /* -------------------------------------------- */ - static async roll(caracValue, finalLevel, bonus = undefined, diviseur = undefined, showDice = true) { + static async roll(caracValue, finalLevel, rollData = {}){ let chances = this.computeChances(caracValue, finalLevel); - this._updateChancesWithBonus(chances, bonus); - this._updateChancesFactor(chances, diviseur); - chances.showDice = showDice; + this._updateChancesWithBonus(chances, rollData.bonus); + this._updateChancesFactor(chances, rollData.diviseurSignificative); + chances.showDice = rollData.showDice; + chances.rollMode = rollData.rollMode; - let rolled = await this.rollChances(chances, diviseur); + let rolled = await this.rollChances(chances, rollData.diviseurSignificative); rolled.caracValue = caracValue; rolled.finalLevel = finalLevel; - rolled.bonus = bonus; - rolled.factorHtml = Misc.getFractionHtml(diviseur); + rolled.bonus = rollData.bonus; + rolled.factorHtml = Misc.getFractionHtml(rollData.diviseurSignificative); rolled.niveauNecessaire = this.findNiveauNecessaire(caracValue, rolled.roll ); rolled.ajustementNecessaire = rolled.niveauNecessaire - finalLevel; return rolled; @@ -163,7 +164,7 @@ export class RdDResolutionTable { /* -------------------------------------------- */ static async rollChances(chances, diviseur) { - chances.roll = await RdDDice.rollTotal("1d100", {showDice:chances.showDice}); + chances.roll = await RdDDice.rollTotal("1d100", chances); mergeObject(chances, this.computeReussite(chances, chances.roll, diviseur), { overwrite: true }); return chances; }