Fixed our templates taking custom scene distance into account

This commit is contained in:
WBHarry 2026-04-02 23:38:18 +02:00
parent bbc521ece0
commit 8ee5db2832
2 changed files with 22 additions and 8 deletions

View file

@ -18,7 +18,7 @@ export default class DhMeasuredTemplate extends foundry.canvas.placeables.Measur
static getRangeLabels(distanceValue, settings) {
let result = { distance: distanceValue, units: '' };
if (!settings.enabled) return result;
if (!settings.enabled || !canvas.scene) return result;
const sceneRangeMeasurement = canvas.scene.flags.daggerheart?.rangeMeasurement;
const { disable, custom } = CONFIG.DH.GENERAL.sceneRangeMeasurementSetting;

View file

@ -65,13 +65,7 @@ export const renderMeasuredTemplate = async event => {
? '180'
: undefined;
let baseDistance = range;
if (Number.isNaN(Number(range))) {
baseDistance = game.settings.get(CONFIG.DH.id, CONFIG.DH.SETTINGS.gameSettings.variantRules).rangeMeasurement[
range
];
}
const distance = type === CONFIG.DH.GENERAL.templateTypes.EMANATION ? baseDistance + 2.5 : baseDistance;
const distance = getTemplateDistance(range, type);
const { width, height } = game.canvas.scene.dimensions;
const data = {
@ -86,3 +80,23 @@ export const renderMeasuredTemplate = async event => {
CONFIG.ux.TemplateManager.createPreview(data);
};
const getTemplateDistance = (range, type) => {
const rangeNumber = Number(range);
if (!Number.isNaN(rangeNumber)) return rangeNumber;
const { custom } = CONFIG.DH.GENERAL.sceneRangeMeasurementSetting;
const sceneMeasurements = canvas.scene?.flags.daggerheart?.rangeMeasurement;
const globalMeasurements = game.settings.get(
CONFIG.DH.id,
CONFIG.DH.SETTINGS.gameSettings.variantRules
).rangeMeasurement;
const settings = sceneMeasurements?.setting === custom.id ? sceneMeasurements : globalMeasurements;
const baseDistance = settings[range];
if (type !== CONFIG.DH.GENERAL.templateTypes.EMANATION) return baseDistance;
const emanationAddDistance = settings.melee / 2;
return baseDistance + emanationAddDistance;
};