From 8b864ba388cb38f5d88b4410f90a0e405638069f Mon Sep 17 00:00:00 2001 From: WBHarry Date: Sat, 25 Oct 2025 19:36:32 +0200 Subject: [PATCH] . --- lang/en.json | 3 +++ module/data/chat-message/_modules.mjs | 4 +++- module/data/chat-message/systemMessage.mjs | 9 +++++++++ module/data/fields/action/damageField.mjs | 7 +++++++ module/data/fields/action/effectsField.mjs | 8 ++++++++ module/data/settings/Automation.mjs | 4 ++++ module/documents/chatMessage.mjs | 7 +++++++ styles/less/ui/index.less | 1 + system.json | 3 ++- templates/settings/automation-settings/general.hbs | 6 +++++- templates/ui/chat/damageSummary.hbs | 2 +- 11 files changed, 50 insertions(+), 4 deletions(-) create mode 100644 module/data/chat-message/systemMessage.mjs diff --git a/lang/en.json b/lang/en.json index aaef3b19..4ae42f70 100755 --- a/lang/en.json +++ b/lang/en.json @@ -2281,6 +2281,9 @@ "label": "Apply Effects", "hint": "Automatically apply effects. Targets must be selected before the action is made and Reaction Roll Automation must be different than Never. Bypass users permissions." } + }, + "summaryMessages": { + "label": "Summary Messages" } }, "defeated": { diff --git a/module/data/chat-message/_modules.mjs b/module/data/chat-message/_modules.mjs index 7e301906..67046248 100644 --- a/module/data/chat-message/_modules.mjs +++ b/module/data/chat-message/_modules.mjs @@ -1,9 +1,11 @@ import DHAbilityUse from './abilityUse.mjs'; import DHActorRoll from './actorRoll.mjs'; +import DHSystemMessage from './systemMessage.mjs'; export const config = { abilityUse: DHAbilityUse, adversaryRoll: DHActorRoll, damageRoll: DHActorRoll, - dualityRoll: DHActorRoll + dualityRoll: DHActorRoll, + systemMessage: DHSystemMessage }; diff --git a/module/data/chat-message/systemMessage.mjs b/module/data/chat-message/systemMessage.mjs new file mode 100644 index 00000000..cd2a06a1 --- /dev/null +++ b/module/data/chat-message/systemMessage.mjs @@ -0,0 +1,9 @@ +export default class DHSystemMessage extends foundry.abstract.TypeDataModel { + static defineSchema() { + const fields = foundry.data.fields; + + return { + useTitle: new fields.BooleanField({ initial: true }) + }; + } +} diff --git a/module/data/fields/action/damageField.mjs b/module/data/fields/action/damageField.mjs index 86e4a419..43b94e5e 100644 --- a/module/data/fields/action/damageField.mjs +++ b/module/data/fields/action/damageField.mjs @@ -111,8 +111,15 @@ export default class DamageField extends fields.SchemaField { } Promise.all(damagePromises).then(async _ => { + const summaryMessageSettings = game.settings.get( + CONFIG.DH.id, + CONFIG.DH.SETTINGS.gameSettings.Automation + ).summaryMessages; + if (!summaryMessageSettings.damage) return; + const cls = getDocumentClass('ChatMessage'); const msg = { + type: 'systemMessage', user: game.user.id, speaker: cls.getSpeaker(), title: game.i18n.localize( diff --git a/module/data/fields/action/effectsField.mjs b/module/data/fields/action/effectsField.mjs index ec148aba..887607ba 100644 --- a/module/data/fields/action/effectsField.mjs +++ b/module/data/fields/action/effectsField.mjs @@ -65,8 +65,16 @@ export default class EffectsField extends fields.ArrayField { }); if (messageTargets.length === 0) return; + + const summaryMessageSettings = game.settings.get( + CONFIG.DH.id, + CONFIG.DH.SETTINGS.gameSettings.Automation + ).summaryMessages; + if (!summaryMessageSettings.effects) return; + const cls = getDocumentClass('ChatMessage'); const msg = { + type: 'systemMessage', user: game.user.id, speaker: cls.getSpeaker(), title: game.i18n.localize('DAGGERHEART.UI.Chat.effectSummary.title'), diff --git a/module/data/settings/Automation.mjs b/module/data/settings/Automation.mjs index beefac0b..c54a1c31 100644 --- a/module/data/settings/Automation.mjs +++ b/module/data/settings/Automation.mjs @@ -2,6 +2,10 @@ export default class DhAutomation extends foundry.abstract.DataModel { static defineSchema() { const fields = foundry.data.fields; return { + summaryMessages: new fields.SchemaField({ + damage: new fields.BooleanField({ initial: true, label: 'DAGGERHEART.GENERAL.damage' }), + effects: new fields.BooleanField({ initial: true, label: 'DAGGERHEART.GENERAL.Effect.plural' }) + }), hopeFear: new fields.SchemaField({ gm: new fields.BooleanField({ required: true, diff --git a/module/documents/chatMessage.mjs b/module/documents/chatMessage.mjs index 8fd44c5e..d795aec0 100644 --- a/module/documents/chatMessage.mjs +++ b/module/documents/chatMessage.mjs @@ -210,8 +210,15 @@ export default class DhpChatMessage extends foundry.documents.ChatMessage { } Promise.all(damagePromises).then(async _ => { + const summaryMessageSettings = game.settings.get( + CONFIG.DH.id, + CONFIG.DH.SETTINGS.gameSettings.Automation + ).summaryMessages; + if (!summaryMessageSettings.damage) return; + const cls = getDocumentClass('ChatMessage'); const msg = { + type: 'systemMessage', user: game.user.id, speaker: cls.getSpeaker(), title: game.i18n.localize( diff --git a/styles/less/ui/index.less b/styles/less/ui/index.less index 9dbe7a29..a21b47a4 100644 --- a/styles/less/ui/index.less +++ b/styles/less/ui/index.less @@ -3,6 +3,7 @@ @import './chat/chat.less'; @import './chat/damage-summary.less'; @import './chat/downtime.less'; +@import './chat/effect-summary.less'; @import './chat/refresh-message.less'; @import './chat/sheet.less'; diff --git a/system.json b/system.json index 4eeeff1a..2caeca2b 100644 --- a/system.json +++ b/system.json @@ -266,7 +266,8 @@ "dualityRoll": {}, "adversaryRoll": {}, "damageRoll": {}, - "abilityUse": {} + "abilityUse": {}, + "systemMessage": {} } }, "background": "systems/daggerheart/assets/logos/FoundrybornBackgroundLogo.png", diff --git a/templates/settings/automation-settings/general.hbs b/templates/settings/automation-settings/general.hbs index 211ee68e..8921ab6a 100644 --- a/templates/settings/automation-settings/general.hbs +++ b/templates/settings/automation-settings/general.hbs @@ -7,7 +7,11 @@ {{formGroup settingFields.schema.fields.hopeFear.fields.gm value=settingFields._source.hopeFear.gm localize=true}} {{formGroup settingFields.schema.fields.hopeFear.fields.players value=settingFields._source.hopeFear.players localize=true}} - + +
+ + {{formGroup settingFields.schema.fields.summaryMessages.fields.damage value=settingFields._source.summaryMessages.damage localize=true}} + {{formGroup settingFields.schema.fields.summaryMessages.fields.effects value=settingFields._source.summaryMessages.effects localize=true}}
{{formGroup settingFields.schema.fields.actionPoints value=settingFields._source.actionPoints localize=true}} {{formGroup settingFields.schema.fields.hordeDamage value=settingFields._source.hordeDamage localize=true}} diff --git a/templates/ui/chat/damageSummary.hbs b/templates/ui/chat/damageSummary.hbs index 5b3b8b1b..aa8246e1 100644 --- a/templates/ui/chat/damageSummary.hbs +++ b/templates/ui/chat/damageSummary.hbs @@ -8,7 +8,7 @@