From a1b8e5c1f769e524055e65c3e063f79f5060b87e Mon Sep 17 00:00:00 2001 From: Carlos Fernandez Date: Fri, 30 Jan 2026 07:34:40 -0500 Subject: [PATCH] Use range labels function for distance hover --- module/canvas/placeables/measuredTemplate.mjs | 28 +++---------------- module/canvas/placeables/token.mjs | 7 ++--- 2 files changed, 7 insertions(+), 28 deletions(-) diff --git a/module/canvas/placeables/measuredTemplate.mjs b/module/canvas/placeables/measuredTemplate.mjs index ef7d284b..7e52013c 100644 --- a/module/canvas/placeables/measuredTemplate.mjs +++ b/module/canvas/placeables/measuredTemplate.mjs @@ -27,31 +27,11 @@ export default class DhMeasuredTemplate extends foundry.canvas.placeables.Measur return result; } - const melee = sceneRangeMeasurement?.setting === custom.id ? sceneRangeMeasurement.melee : settings.melee; - const veryClose = - sceneRangeMeasurement?.setting === custom.id ? sceneRangeMeasurement.veryClose : settings.veryClose; - const close = sceneRangeMeasurement?.setting === custom.id ? sceneRangeMeasurement.close : settings.close; - const far = sceneRangeMeasurement?.setting === custom.id ? sceneRangeMeasurement.far : settings.far; - if (distanceValue <= melee) { - result.distance = game.i18n.localize('DAGGERHEART.CONFIG.Range.melee.name'); - return result; + const ranges = sceneRangeMeasurement?.setting === custom.id ? sceneRangeMeasurement : settings; + const distanceKey = ['melee', 'veryClose', 'close', 'far'].find(r => ranges[r] >= distanceValue); + if (distanceKey) { + result.distance = game.i18n.localize(`DAGGERHEART.CONFIG.Range.${distanceKey}.name`); } - if (distanceValue <= veryClose) { - result.distance = game.i18n.localize('DAGGERHEART.CONFIG.Range.veryClose.name'); - return result; - } - if (distanceValue <= close) { - result.distance = game.i18n.localize('DAGGERHEART.CONFIG.Range.close.name'); - return result; - } - if (distanceValue <= far) { - result.distance = game.i18n.localize('DAGGERHEART.CONFIG.Range.far.name'); - return result; - } - if (distanceValue > far) { - result.distance = game.i18n.localize('DAGGERHEART.CONFIG.Range.veryFar.name'); - } - return result; } } diff --git a/module/canvas/placeables/token.mjs b/module/canvas/placeables/token.mjs index 9a8ed0a3..a2b71063 100644 --- a/module/canvas/placeables/token.mjs +++ b/module/canvas/placeables/token.mjs @@ -1,3 +1,5 @@ +import DhMeasuredTemplate from "./measuredTemplate.mjs"; + export default class DhTokenPlaceable extends foundry.canvas.placeables.Token { /** @inheritdoc */ async _draw(options) { @@ -101,11 +103,8 @@ export default class DhTokenPlaceable extends foundry.canvas.placeables.Token { // Determine the actual range const ranges = game.settings.get(CONFIG.DH.id, CONFIG.DH.SETTINGS.gameSettings.variantRules).rangeMeasurement; - if (!ranges.enabled) return; const distanceNum = originToken.distanceTo(this); - const distanceKey = ['melee', 'veryClose', 'close', 'far', 'very far'].find(r => ranges[r] >= distanceNum); - const distanceLabel = distanceKey ? game.i18n.localize(`DAGGERHEART.CONFIG.Range.${distanceKey}.name`) : null; - if (!distanceLabel) return; // todo: out of bounds instead + const distanceLabel = DhMeasuredTemplate.getRangeLabels(distanceNum, ranges).distance; // Create the element const element = document.createElement('div');