From 03e6570d68c76ee5b74769cb432d751c47b5e6f1 Mon Sep 17 00:00:00 2001 From: Dapoulp <74197441+Dapoulp@users.noreply.github.com> Date: Sun, 17 Aug 2025 14:42:55 +0200 Subject: [PATCH] Feature/519 auto expand roll message (#959) * Add settings to auto expand roll message sections * Change Settings labels to match roll message ones * Add setting to auto expand chat card desc --- lang/en.json | 7 +++- module/data/settings/Appearance.mjs | 18 ++++++++++ module/documents/chatMessage.mjs | 41 +++++++++++++++------- templates/settings/appearance-settings.hbs | 8 +++++ templates/ui/chat/parts/damage-part.hbs | 4 +-- templates/ui/chat/roll.hbs | 2 +- 6 files changed, 64 insertions(+), 16 deletions(-) diff --git a/lang/en.json b/lang/en.json index 632846c0..1088a94f 100755 --- a/lang/en.json +++ b/lang/en.json @@ -2107,7 +2107,12 @@ "extendCharacterDescriptions": { "label": "Characters" }, "extendAdversaryDescriptions": { "label": "Adversaries" }, "extendEnvironmentDescriptions": { "label": "Environments" }, - "extendItemDescriptions": { "label": "Items" } + "extendItemDescriptions": { "label": "Items" }, + "expandRollMessage": "Auto-expand Message Sections", + "expandRollMessageDesc": { "label": "Description" }, + "expandRollMessageRoll": { "label": "Formula" }, + "expandRollMessageDamage": { "label": "Damage/Healing" }, + "expandRollMessageTarget": { "label": "Target" } }, "fearDisplay": { "token": "Tokens", diff --git a/module/data/settings/Appearance.mjs b/module/data/settings/Appearance.mjs index ac980346..e493b187 100644 --- a/module/data/settings/Appearance.mjs +++ b/module/data/settings/Appearance.mjs @@ -71,6 +71,24 @@ export default class DhAppearance extends foundry.abstract.DataModel { extendItemDescriptions: new fields.BooleanField({ initial: false, label: 'DAGGERHEART.SETTINGS.Appearance.FIELDS.extendItemDescriptions.label' + }), + expandRollMessage: new fields.SchemaField({ + desc: new fields.BooleanField({ + initial: false, + label: 'DAGGERHEART.SETTINGS.Appearance.FIELDS.expandRollMessageDesc.label' + }), + roll: new fields.BooleanField({ + initial: false, + label: 'DAGGERHEART.SETTINGS.Appearance.FIELDS.expandRollMessageRoll.label' + }), + damage: new fields.BooleanField({ + initial: false, + label: 'DAGGERHEART.SETTINGS.Appearance.FIELDS.expandRollMessageDamage.label' + }), + target: new fields.BooleanField({ + initial: false, + label: 'DAGGERHEART.SETTINGS.Appearance.FIELDS.expandRollMessageTarget.label' + }) }) }; } diff --git a/module/documents/chatMessage.mjs b/module/documents/chatMessage.mjs index 43743ef1..e36c1df3 100644 --- a/module/documents/chatMessage.mjs +++ b/module/documents/chatMessage.mjs @@ -54,19 +54,36 @@ export default class DhpChatMessage extends foundry.documents.ChatMessage { e.setAttribute('data-use-perm', document.testUserPermission(game.user, 'OWNER')); }); - if (this.isContentVisible && this.type === 'dualityRoll') { - html.classList.add('duality'); - switch (this.system.roll?.result?.duality) { - case 1: - html.classList.add('hope'); - break; - case -1: - html.classList.add('fear'); - break; - default: - html.classList.add('critical'); - break; + if (this.isContentVisible) { + if(this.type === 'dualityRoll') { + html.classList.add('duality'); + switch (this.system.roll?.result?.duality) { + case 1: + html.classList.add('hope'); + break; + case -1: + html.classList.add('fear'); + break; + default: + html.classList.add('critical'); + break; + } } + + const autoExpandRoll = game.settings.get(CONFIG.DH.id, CONFIG.DH.SETTINGS.gameSettings.appearance).expandRollMessage, + rollSections = html.querySelectorAll(".roll-part"), + itemDesc = html.querySelector(".domain-card-move"); + rollSections.forEach(s => { + if(s.classList.contains("roll-section")) { + const toExpand = s.querySelector('[data-action="expandRoll"]'); + toExpand.classList.toggle("expanded", autoExpandRoll.roll); + } else if(s.classList.contains("damage-section")) + s.classList.toggle("expanded", autoExpandRoll.damage); + else if(s.classList.contains("target-section")) + s.classList.toggle("expanded", autoExpandRoll.target); + }); + if(itemDesc && autoExpandRoll.desc) + itemDesc.setAttribute("open", ""); } if(!game.user.isGM) { diff --git a/templates/settings/appearance-settings.hbs b/templates/settings/appearance-settings.hbs index d4d41d62..cd0fab3e 100644 --- a/templates/settings/appearance-settings.hbs +++ b/templates/settings/appearance-settings.hbs @@ -17,6 +17,14 @@ {{formGroup settingFields.schema.fields.extendItemDescriptions value=settingFields._source.extendItemDescriptions localize=true}} +
+ {{localize 'DAGGERHEART.SETTINGS.Appearance.FIELDS.expandRollMessage'}} + {{formGroup settingFields.schema.fields.expandRollMessage.fields.desc value=settingFields.expandRollMessage.desc localize=true}} + {{formGroup settingFields.schema.fields.expandRollMessage.fields.roll value=settingFields.expandRollMessage.roll localize=true}} + {{formGroup settingFields.schema.fields.expandRollMessage.fields.damage value=settingFields.expandRollMessage.damage localize=true}} + {{formGroup settingFields.schema.fields.expandRollMessage.fields.target value=settingFields.expandRollMessage.target localize=true}} +
+ {{#if showDiceSoNice}}
{{localize "DAGGERHEART.SETTINGS.Menu.appearance.diceSoNice.title"}} diff --git a/templates/ui/chat/parts/damage-part.hbs b/templates/ui/chat/parts/damage-part.hbs index 346e9621..05b6b825 100644 --- a/templates/ui/chat/parts/damage-part.hbs +++ b/templates/ui/chat/parts/damage-part.hbs @@ -1,4 +1,4 @@ -
+
{{localize (ifThen hasHealing "DAGGERHEART.ACTIONS.TYPES.healing.name" "DAGGERHEART.ACTIONS.TYPES.damage.name")}}
@@ -12,7 +12,7 @@
{{#each damage as | roll index | }}
- {{log @root}} + {{localize (concat 'DAGGERHEART.CONFIG.HealingType.' index '.inChatRoll')}}
{{localize "DAGGERHEART.GENERAL.total"}}: {{roll.total}}
{{#if (and (eq index "hitPoints")../isDirect)}}
{{localize "DAGGERHEART.CONFIG.DamageType.direct.short"}}
{{/if}}
{{#each roll.parts}} diff --git a/templates/ui/chat/roll.hbs b/templates/ui/chat/roll.hbs index 2e6f5d24..be51969f 100644 --- a/templates/ui/chat/roll.hbs +++ b/templates/ui/chat/roll.hbs @@ -1,7 +1,7 @@
{{title}}
{{#if hasRoll}}{{> 'systems/daggerheart/templates/ui/chat/parts/roll-part.hbs'}}{{/if}} - {{#if (and (not (empty damage)) (or hasDamage hasHealing))}}{{> 'systems/daggerheart/templates/ui/chat/parts/damage-part.hbs'}}{{/if}} + {{#if (or hasDamage hasHealing)}}{{> 'systems/daggerheart/templates/ui/chat/parts/damage-part.hbs'}}{{/if}} {{#if hasTarget}}{{> 'systems/daggerheart/templates/ui/chat/parts/target-part.hbs'}}{{/if}}