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}} +
+ {{#if showDiceSoNice}}