From 4f52d541b4c88b4525a29879c885f38fa89ef630 Mon Sep 17 00:00:00 2001 From: WBHarry Date: Sun, 1 Feb 2026 21:05:50 +0100 Subject: [PATCH] Fixed so that the description message always comes first with the action workflow --- module/data/action/baseAction.mjs | 2 +- module/data/fields/action/damageField.mjs | 2 ++ module/dice/dhRoll.mjs | 7 +++++++ 3 files changed, 10 insertions(+), 1 deletion(-) diff --git a/module/data/action/baseAction.mjs b/module/data/action/baseAction.mjs index e843027b..d39426ae 100644 --- a/module/data/action/baseAction.mjs +++ b/module/data/action/baseAction.mjs @@ -229,7 +229,7 @@ export default class DHBaseAction extends ActionMixin(foundry.abstract.DataModel if (Hooks.call(`${CONFIG.DH.id}.postUseAction`, this, config) === false) return; - if (this.chatDisplay) await this.toChat(); + if (this.chatDisplay && !config.actionChatMessageHandled) await this.toChat(); return config; } diff --git a/module/data/fields/action/damageField.mjs b/module/data/fields/action/damageField.mjs index ef91c64e..56eb51e5 100644 --- a/module/data/fields/action/damageField.mjs +++ b/module/data/fields/action/damageField.mjs @@ -68,6 +68,8 @@ export default class DamageField extends fields.SchemaField { const damageResult = await CONFIG.Dice.daggerheart.DamageRoll.build(damageConfig); if (!damageResult) return false; + if (damageResult.actionChatMessageHandled) config.actionChatMessageHandled = true; + config.damage = damageResult.damage; config.message ??= damageConfig.message; } diff --git a/module/dice/dhRoll.mjs b/module/dice/dhRoll.mjs index 1977c7ea..ba9dc163 100644 --- a/module/dice/dhRoll.mjs +++ b/module/dice/dhRoll.mjs @@ -96,6 +96,13 @@ export default class DHRoll extends Roll { } static async toMessage(roll, config) { + const item = config.data.parent?.items?.get?.(config.source.item) ?? null; + const action = item ? item.system.actions.get(config.source.action) : null; + if (action?.chatDisplay && !config.actionChatMessageHandled) { + await action.toChat(); + config.actionChatMessageHandled = true; + } + const cls = getDocumentClass('ChatMessage'), msgData = { type: this.messageType,