From d0b92774e2e443f95b20e3d09d42683d2b00ca9c Mon Sep 17 00:00:00 2001 From: tobifroe Date: Fri, 5 Sep 2025 18:38:15 +0200 Subject: [PATCH] fix(#255, #252): refactor skill tooltip preparation --- module/sheets/base-actor-sheet.js | 24 ++++++++++++++++++++++++ templates/actor/parts/skills-tab.html | 2 +- 2 files changed, 25 insertions(+), 1 deletion(-) diff --git a/module/sheets/base-actor-sheet.js b/module/sheets/base-actor-sheet.js index 0ffcaa3..95fca9d 100644 --- a/module/sheets/base-actor-sheet.js +++ b/module/sheets/base-actor-sheet.js @@ -83,6 +83,9 @@ export default class DGActorSheet extends DGSheetMixin(ActorSheetV2) { this._sortSkills(); this._sortCustomSkills(); + // Setup tooltips + this._prepareSkillTooltips(); + // Set sanity block per actor type. context.sanityInputs = await foundry.applications.handlebars.renderTemplate( `${DGActorSheet.TEMPLATE_PATH}/partials/sanity-${this.actor.type}.html`, @@ -390,6 +393,27 @@ export default class DGActorSheet extends DGSheetMixin(ActorSheetV2) { } } + /** + * Sets up the list of sorted skills with their respective tooltips. + * + * @returns {void} + */ + _prepareSkillTooltips() { + const skillsWithTooltips = []; + for (const [_, skill] of Object.entries(this.actor.system.sortedSkills)) { + skill.tooltip = game.i18n.localize(`DG.Skills.Tooltip.${skill.key}`); + if (!skill.proficiency) { + skill.tooltip = skill.tooltip.concat( + skill.tooltip, + "

", + game.i18n.localize("DG.Tooltip.CannotRollSkillLabel"), + ); + } + skillsWithTooltips.push(skill); + } + this.actor.system.sortedSkills = skillsWithTooltips; + } + /** * Prepares a simplified version of the special training for display on sheet. * diff --git a/templates/actor/parts/skills-tab.html b/templates/actor/parts/skills-tab.html index 2bfead3..456794b 100644 --- a/templates/actor/parts/skills-tab.html +++ b/templates/actor/parts/skills-tab.html @@ -25,7 +25,7 @@ data-rolltype="skill" for="system.skills.{{skill.key}}.value" {{#unless (hideSkillTooltips) }} - data-tooltip="{{concat (localize (concat 'DG.Skills.Tooltip.' skill.key)) '

' (localize (ifThen skill.proficiency 'DG.Tooltip.SkillLabel' 'DG.Tooltip.CannotRollSkillLabel')) }}" + data-tooltip="{{ skill.tooltip }}" {{/unless }} > {{localizeWithFallback (concat "DG.Skills." skill.key) skill.label }}