diff --git a/module/data/action/macroAction.mjs b/module/data/action/macroAction.mjs index c4a08df7..58b8eba5 100644 --- a/module/data/action/macroAction.mjs +++ b/module/data/action/macroAction.mjs @@ -1,19 +1,13 @@ import DHBaseAction from './baseAction.mjs'; export default class DHMacroAction extends DHBaseAction { - static defineSchema() { - const fields = foundry.data.fields; - return { - ...super.defineSchema(), - documentUUID: new fields.DocumentUUIDField({ type: 'Macro' }) - }; - } + static extraSchemas = [...super.extraSchemas, 'macro']; async trigger(event, ...args) { - const fixUUID = !this.documentUUID.includes('Macro.') ? `Macro.${this.documentUUID}` : this.documentUUID, + const fixUUID = !this.macro.includes('Macro.') ? `Macro.${this.macro}` : this.macro, macro = await fromUuid(fixUUID); try { - if (!macro) throw new Error(`No macro found for the UUID: ${this.documentUUID}.`); + if (!macro) throw new Error(`No macro found for the UUID: ${this.macro}.`); macro.execute(); } catch (error) { ui.notifications.error(error); diff --git a/module/data/fields/action/_module.mjs b/module/data/fields/action/_module.mjs index 192341e7..e6caa963 100644 --- a/module/data/fields/action/_module.mjs +++ b/module/data/fields/action/_module.mjs @@ -8,3 +8,4 @@ export { default as BeastformField } from './beastformField.mjs'; export { default as DamageField } from './damageField.mjs'; export { default as HealingField } from './healingField.mjs'; export { default as RollField } from './rollField.mjs'; +export { default as MacroField } from './macroField.mjs'; diff --git a/module/data/fields/action/macroField.mjs b/module/data/fields/action/macroField.mjs new file mode 100644 index 00000000..62da0da0 --- /dev/null +++ b/module/data/fields/action/macroField.mjs @@ -0,0 +1,7 @@ +const fields = foundry.data.fields; + +export default class MacroField extends fields.DocumentUUIDField { + constructor(context = {}) { + super({ type: "Macro" }, context); + } +} diff --git a/module/data/fields/actionField.mjs b/module/data/fields/actionField.mjs index 8d865562..dc567da9 100644 --- a/module/data/fields/actionField.mjs +++ b/module/data/fields/actionField.mjs @@ -84,7 +84,7 @@ export class ActionField extends foundry.data.fields.ObjectField { getModel(value) { return ( game.system.api.models.actions.actionsTypes[value.type] ?? - game.system.api.models.actions.actionsTypes.attack + null ); } @@ -93,7 +93,6 @@ export class ActionField extends foundry.data.fields.ObjectField { /** @override */ _cleanType(value, options) { if (!(typeof value === 'object')) value = {}; - const cls = this.getModel(value); if (cls) return cls.cleanData(value, options); return value; diff --git a/module/systemRegistration/handlebars.mjs b/module/systemRegistration/handlebars.mjs index 48a99735..ff741b91 100644 --- a/module/systemRegistration/handlebars.mjs +++ b/module/systemRegistration/handlebars.mjs @@ -15,9 +15,8 @@ export const preloadHandlebarsTemplates = async function () { 'systems/daggerheart/templates/sheets/global/partials/feature-section-item.hbs', 'systems/daggerheart/templates/ui/combatTracker/combatTrackerSection.hbs', 'systems/daggerheart/templates/actionTypes/damage.hbs', - 'systems/daggerheart/templates/actionTypes/healing.hbs', 'systems/daggerheart/templates/actionTypes/resource.hbs', - 'systems/daggerheart/templates/actionTypes/uuid.hbs', + 'systems/daggerheart/templates/actionTypes/macro.hbs', 'systems/daggerheart/templates/actionTypes/uses.hbs', 'systems/daggerheart/templates/actionTypes/roll.hbs', 'systems/daggerheart/templates/actionTypes/save.hbs', diff --git a/templates/actionTypes/healing.hbs b/templates/actionTypes/healing.hbs deleted file mode 100644 index 4b8023d7..00000000 --- a/templates/actionTypes/healing.hbs +++ /dev/null @@ -1,41 +0,0 @@ - -
- -{{#*inline "formula"}} - {{formField fields.custom.fields.enabled value=source.custom.enabled name=(concat "healing." target ".custom.enabled") classes="checkbox"}} - {{#if source.custom.enabled}} - {{formField fields.custom.fields.formula value=source.custom.formula name=(concat "healing." target ".custom.formula") localize=true}} - {{else}} -