From 18b6194afeaca73bccb45940c1fe85618467caab Mon Sep 17 00:00:00 2001 From: joaquinpereyra98 <24190917+joaquinpereyra98@users.noreply.github.com> Date: Sun, 17 Aug 2025 13:55:33 -0300 Subject: [PATCH] [Feature] Improves ForeignDocumentUUIDArrayField for can use documents to update it. (#963) Fixes #389 Co-authored-by: Joaquin Pereyra --- module/data/fields/foreignDocumentUUIDField.mjs | 9 +++++++++ module/helpers/utils.mjs | 2 +- 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/module/data/fields/foreignDocumentUUIDField.mjs b/module/data/fields/foreignDocumentUUIDField.mjs index 0efa60da..cf68ace3 100644 --- a/module/data/fields/foreignDocumentUUIDField.mjs +++ b/module/data/fields/foreignDocumentUUIDField.mjs @@ -38,4 +38,13 @@ export default class ForeignDocumentUUIDField extends foundry.data.fields.Docume toObject(value) { return value?.uuid ?? value; } + + /** @override */ + _cast(value) { + if (typeof value === 'string') return value; + if (value instanceof foundry.abstract.Document) return value.uuid; + throw new Error( + `The value provided to a ForeignDocumentUUIDField must be a ${foundry.abstract.Document.name} instance or a UUID string.` + ); + } } diff --git a/module/helpers/utils.mjs b/module/helpers/utils.mjs index 6f4e5a26..47b6d904 100644 --- a/module/helpers/utils.mjs +++ b/module/helpers/utils.mjs @@ -177,7 +177,7 @@ Roll.replaceFormulaData = function (formula, data = {}, { missing, warn = false return nativeReplaceFormulaData(formula, data, { missing, warn }); }; -foundry.dice.terms.Die.MODIFIERS.sc = 'selfCorrecting'; +foundry.utils.setProperty(foundry, 'dice.terms.Die.MODIFIERS.sc', 'selfCorrecting'); /** * Return the configured value as result if 1 is rolled