diff --git a/module/applications/sheets/api/base-item.mjs b/module/applications/sheets/api/base-item.mjs
index 4ef5f048..00448e95 100644
--- a/module/applications/sheets/api/base-item.mjs
+++ b/module/applications/sheets/api/base-item.mjs
@@ -79,7 +79,9 @@ export default class DHBaseItemSheet extends DHApplicationMixin(ItemSheetV2) {
switch (partId) {
case 'description':
- context.enrichedDescription = await this.document.system.getEnrichedDescription(true);
+ context.enrichedDescription = await this.document.system.getEnrichedDescription({
+ headerStyle: 'large'
+ });
break;
case 'effects':
await this._prepareEffectsContext(context, options);
diff --git a/module/data/item/armor.mjs b/module/data/item/armor.mjs
index 8f8e87ac..c0de0eeb 100644
--- a/module/data/item/armor.mjs
+++ b/module/data/item/armor.mjs
@@ -55,7 +55,7 @@ export default class DHArmor extends AttachableItem {
}
/**@inheritdoc */
- async getDescriptionData(large) {
+ async getDescriptionData(options = {}) {
const baseDescription = await super.getDescriptionData();
const allFeatures = CONFIG.DH.ITEM.allArmorFeatures();
const features = this.armorFeatures.map(x => allFeatures[x.value]);
@@ -63,7 +63,7 @@ export default class DHArmor extends AttachableItem {
const prepend = await foundry.applications.handlebars.renderTemplate(
'systems/daggerheart/templates/sheets/items/armor/description.hbs',
- { features, large }
+ { features, headerStyle: options.headerStyle }
);
const mainDescription = baseDescription ? `\n
\n${baseDescription}` : '';
diff --git a/module/data/item/base.mjs b/module/data/item/base.mjs
index 65760be7..c98631cb 100644
--- a/module/data/item/base.mjs
+++ b/module/data/item/base.mjs
@@ -124,16 +124,24 @@ export default class BaseDataItem extends foundry.abstract.TypeDataModel {
return [source, page ? `pg ${page}.` : null].filter(x => x).join('. ');
}
- /** */
- async getDescriptionData() {
+ /**
+ * Augments the description for the item with type specific info to display. Implemented in applicable item subtypes.
+ * @param {object} [options] - Options that modify the styling of the rendered template. { headerStyle: undefined|'none'|'large' }
+ * @returns {string}
+ */
+ async getDescriptionData(_options) {
return this.description;
}
- /** */
- async getEnrichedDescription(large) {
+ /**
+ * Gets the enriched and augmented description for the item.
+ * @param {object} [options] - Options that modify the styling of the rendered template. { headerStyle: undefined|'none'|'large' }
+ * @returns {string}
+ */
+ async getEnrichedDescription(options) {
if (!this.metadata.hasDescription) return '';
- const description = await this.getDescriptionData(large);
+ const description = await this.getDescriptionData(options);
return await foundry.applications.ux.TextEditor.implementation.enrichHTML(description, {
relativeTo: this,
rollData: this.getRollData(),
diff --git a/module/data/item/weapon.mjs b/module/data/item/weapon.mjs
index 205fb02a..48a53e02 100644
--- a/module/data/item/weapon.mjs
+++ b/module/data/item/weapon.mjs
@@ -111,7 +111,7 @@ export default class DHWeapon extends AttachableItem {
}
/**@inheritdoc */
- async getDescriptionData(large) {
+ async getDescriptionData(options = {}) {
const baseDescription = await super.getDescriptionData();
const allFeatures = CONFIG.DH.ITEM.allWeaponFeatures();
const features = this.weaponFeatures.map(x => allFeatures[x.value]);
@@ -119,7 +119,7 @@ export default class DHWeapon extends AttachableItem {
const prepend = await foundry.applications.handlebars.renderTemplate(
'systems/daggerheart/templates/sheets/items/weapon/description.hbs',
- { features, large }
+ { features, headerStyle: options.headerStyle }
);
const mainDescription = baseDescription ? `\n
\n${baseDescription}` : '';
diff --git a/module/documents/tooltipManager.mjs b/module/documents/tooltipManager.mjs
index 3ea6703c..b25a4b21 100644
--- a/module/documents/tooltipManager.mjs
+++ b/module/documents/tooltipManager.mjs
@@ -220,12 +220,16 @@ export default class DhTooltipManager extends foundry.helpers.interaction.Toolti
for (const [index, itemValue] of pathValue.entries()) {
const itemIsAction = itemValue instanceof game.system.api.models.actions.actionsTypes.base;
const value = itemIsAction || !itemValue?.item ? itemValue : itemValue.item;
- const enrichedValue = await TextEditor.enrichHTML(value.system?.description ?? value.description);
+ const enrichedValue =
+ (await value.system?.getEnrichedDescription?.({ headerStyle: 'none' })) ??
+ (await TextEditor.enrichHTML(value.system?.description ?? value.description));
if (itemIsAction) value.enrichedDescription = enrichedValue;
else foundry.utils.setProperty(item, `${basePath}.${index}.enrichedDescription`, enrichedValue);
}
} else {
- const enrichedValue = await TextEditor.enrichHTML(pathValue);
+ const enrichedValue =
+ (await item.system?.getEnrichedDescription?.({ headerStyle: 'none' })) ??
+ (await TextEditor.enrichHTML(pathValue));
foundry.utils.setProperty(
item,
`${data.path ? `${data.path}.` : ''}enriched${data.name.capitalize()}`,
diff --git a/styles/less/ux/tooltip/tooltip.less b/styles/less/ux/tooltip/tooltip.less
index bfe0c01f..970c2ca4 100644
--- a/styles/less/ux/tooltip/tooltip.less
+++ b/styles/less/ux/tooltip/tooltip.less
@@ -11,7 +11,7 @@ aside[role='tooltip']:has(div.daggerheart.dh-style.tooltip.card-style) {
width: 18rem;
background-image: url('../assets/parchments/dh-parchment-dark.png');
outline: 1px solid light-dark(@dark-80, @beige-80);
- box-shadow: 0 0 25px rgba(0, 0, 0, 0.80);
+ box-shadow: 0 0 25px rgba(0, 0, 0, 0.8);
.tooltip-title {
font-size: var(--font-size-20);
@@ -235,7 +235,6 @@ aside[role='tooltip'].locked-tooltip:has(div.daggerheart.dh-style.tooltip.card-s
.theme-light aside[role='tooltip'].locked-tooltip:has(div.daggerheart.dh-style.tooltip) {
box-shadow: 0 0 25px @dark-blue-90;
outline: 1px solid light-dark(@dark-blue, @golden);
-
}
#tooltip,
@@ -283,6 +282,18 @@ aside[role='tooltip'].locked-tooltip:has(div.daggerheart.dh-style.tooltip.card-s
.tooltip-description {
font-style: italic;
text-align: start;
+
+ .feature-descriptions {
+ .features-header {
+ font-size: 14px;
+ font-weight: bold;
+ text-decoration: underline;
+
+ &.large {
+ font-size: 18px;
+ }
+ }
+ }
}
.simple-info {
diff --git a/templates/sheets/items/armor/description.hbs b/templates/sheets/items/armor/description.hbs
index efd5c1e5..d2c67604 100644
--- a/templates/sheets/items/armor/description.hbs
+++ b/templates/sheets/items/armor/description.hbs
@@ -1,5 +1,7 @@
-
+ {{#unless (eq headerStyle 'none')}}
+
+ {{/unless}}
{{#each features as | feature |}}
{{localize feature.label}}: {{{localize feature.description}}}
{{/each}}
diff --git a/templates/sheets/items/weapon/description.hbs b/templates/sheets/items/weapon/description.hbs
index efd5c1e5..d2c67604 100644
--- a/templates/sheets/items/weapon/description.hbs
+++ b/templates/sheets/items/weapon/description.hbs
@@ -1,5 +1,7 @@
-
+ {{#unless (eq headerStyle 'none')}}
+
+ {{/unless}}
{{#each features as | feature |}}
{{localize feature.label}}: {{{localize feature.description}}}
{{/each}}