diff --git a/module/applications/sheets-configs/activeEffectConfig.mjs b/module/applications/sheets-configs/activeEffectConfig.mjs index 051b1d6d..8abc0b79 100644 --- a/module/applications/sheets-configs/activeEffectConfig.mjs +++ b/module/applications/sheets-configs/activeEffectConfig.mjs @@ -5,6 +5,24 @@ export default class DhActiveEffectConfig extends foundry.applications.sheets.Ac super(options); const ignoredActorKeys = ['config', 'DhEnvironment', 'DhParty']; + + const getAllLeaves = (root, group, parentPath = '') => { + const leaves = []; + const rootKey = `${parentPath ? `${parentPath}.` : ''}${root.name}`; + for (const field of Object.values(root.fields)) { + if (field instanceof foundry.data.fields.SchemaField) + leaves.push(...getAllLeaves(field, group, rootKey)); + else + leaves.push({ + value: `${rootKey}.${field.name}`, + label: game.i18n.localize(field.label), + hint: game.i18n.localize(field.hint), + group + }); + } + + return leaves; + }; this.changeChoices = Object.keys(game.system.api.models.actors).reduce((acc, key) => { if (ignoredActorKeys.includes(key)) return acc; @@ -30,25 +48,8 @@ export default class DhActiveEffectConfig extends foundry.applications.sheets.Ac return { value: joined, label: getLabel(joined), group }; }); - const getAllLeaves = (root, parentPath = '') => { - const leaves = []; - const rootKey = `${parentPath ? `${parentPath}.` : ''}${root.name}`; - for (const field of Object.values(root.fields)) { - if (field instanceof foundry.data.fields.SchemaField) leaves.push(...getAllLeaves(field, rootKey)); - else - leaves.push({ - value: `${rootKey}.${field.name}`, - label: game.i18n.localize(field.label), - hint: game.i18n.localize(field.hint), - group - }); - } - - return leaves; - }; - - const bonuses = getAllLeaves(model.schema.fields.bonuses); - const rules = getAllLeaves(model.schema.fields.rules); + const bonuses = getAllLeaves(model.schema.fields.bonuses, group); + const rules = getAllLeaves(model.schema.fields.rules, group); acc.push(...bars, ...values, ...rules, ...bonuses);