Fixed so that replaceFormulaValue doesn't loose getter values (#1836)
Some checks are pending
Project CI / build (24.x) (push) Waiting to run

This commit is contained in:
WBHarry 2026-04-25 13:01:13 +02:00 committed by GitHub
parent ccb0073cef
commit e5ae56f45c
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -189,17 +189,14 @@ export const getDeleteKeys = (property, innerProperty, innerPropertyDefaultValue
// Fix on Foundry native formula replacement for DH // Fix on Foundry native formula replacement for DH
const nativeReplaceFormulaData = Roll.replaceFormulaData; const nativeReplaceFormulaData = Roll.replaceFormulaData;
Roll.replaceFormulaData = function (formula, baseData = {}, { missing, warn = false } = {}) { Roll.replaceFormulaData = function (formula, data = {}, { missing, warn = false } = {}) {
/* Inserting global data */ /* Inserting global data */
const data = { const defaultingTypes = [
...baseData, ...Object.keys(CONFIG.DH.GENERAL.multiplierTypes).map(x => ({ term: x, default: 1 })),
partySize: game.actors?.party?.system.partyMembers.length ?? 0 { term: 'partySize', default: game.actors?.party?.system.partyMembers.length ?? 0 }
}; ];
const terms = Object.keys(CONFIG.DH.GENERAL.multiplierTypes).map(type => { formula = defaultingTypes.reduce((a, c) => a.replaceAll(`@${c.term}`, data[c.term] ?? c.default), formula);
return { term: type, default: 1 };
});
formula = terms.reduce((a, c) => a.replaceAll(`@${c.term}`, data[c.term] ?? c.default), formula);
return nativeReplaceFormulaData(formula, data, { missing, warn }); return nativeReplaceFormulaData(formula, data, { missing, warn });
}; };