From 9a220b4e16aa0f3e80a08098a050cba31a2ef904 Mon Sep 17 00:00:00 2001 From: WBHarry <89362246+WBHarry@users.noreply.github.com> Date: Tue, 9 Jun 2026 08:34:25 +0200 Subject: [PATCH] [Fix] Companion Rolls (#1982) --- module/applications/dialogs/d20RollDialog.mjs | 3 ++- module/dice/d20Roll.mjs | 17 +++++++---------- 2 files changed, 9 insertions(+), 11 deletions(-) diff --git a/module/applications/dialogs/d20RollDialog.mjs b/module/applications/dialogs/d20RollDialog.mjs index 9a98b197..e9140b56 100644 --- a/module/applications/dialogs/d20RollDialog.mjs +++ b/module/applications/dialogs/d20RollDialog.mjs @@ -224,7 +224,8 @@ export default class D20RollDialog extends HandlebarsApplicationMixin(Applicatio this.render(); } - static async submitRoll() { + static async submitRoll(event) { + event.preventDefault(); await this.close({ submitted: true }); } diff --git a/module/dice/d20Roll.mjs b/module/dice/d20Roll.mjs index b1d3bd0b..c0069822 100644 --- a/module/dice/d20Roll.mjs +++ b/module/dice/d20Roll.mjs @@ -100,16 +100,13 @@ export default class D20Roll extends DHRoll { this.options.roll.modifiers = this.applyBaseBonus(); - const actorExperiences = this.options.roll.companionRoll - ? (this.options.data?.companion?.system.experiences ?? {}) - : (this.options.data.system?.experiences ?? {}); - this.options.experiences?.forEach(m => { - if (actorExperiences[m]) - this.options.roll.modifiers.push({ - label: actorExperiences[m].name, - value: actorExperiences[m].value - }); - }); + let actorExperiences = this.options.data.system?.experiences ?? {}; + if (this.options.roll.companionRoll) { + const companion = typeof this.options.data.companion === 'string' ? + foundry.utils.fromUuidSync(this.options.data.companion) : + this.options.data.companion; + actorExperiences = companion?.system?.experiences ?? {}; + } this.addModifiers(); if (this.options.extraFormula) {