diff --git a/macros/powerMenu.js b/macros/powerMenu.js new file mode 100644 index 0000000..f20d4fc --- /dev/null +++ b/macros/powerMenu.js @@ -0,0 +1,4 @@ +game.modules.get('swade-mb-helpers').api.powerEffectsMenu({ + token, + targets: game.user.targets, +}); diff --git a/src/module/api.js b/src/module/api.js index 9f5244d..3cff21f 100644 --- a/src/module/api.js +++ b/src/module/api.js @@ -1,6 +1,6 @@ import { log, moduleHelpers } from './globals.js'; import { requestFearRollFromTokens, requestRollFromTokens } from './helpers.js'; -import { powers } from './powers/powers.js'; +import { powers, powerEffectsMenu } from './powers/powers.js'; import { setSummonCosts } from './powers/summonSupport.js'; export class api { @@ -14,6 +14,7 @@ export class api { game.modules.get(moduleName).api = { fearTable: moduleHelpers.fearTableHelper, powerEffects: powers, + powerEffectsMenu, requestFearRollFromTokens, requestRollFromTokens, rulesVersion: moduleHelpers.rulesVersion, diff --git a/src/module/powers/powers.js b/src/module/powers/powers.js index 87aa50e..5f40ba9 100644 --- a/src/module/powers/powers.js +++ b/src/module/powers/powers.js @@ -295,3 +295,48 @@ export async function powers(options = {}) { } ui.notifications.error(`No power effect found for ${swid}`); } + +export async function powerEffectsMenu(options = {}) { + const powers = {}; + for (const powerClass of new Set(Object.values(PowerClasses))) { + const powerInst = new powerClass(); + powers[powerInst.name] = powerClass; + } + let form = `
`; + const formResult = await Dialog.wait({ + title: 'Select a power', + content: form, + buttons: { + submit: { + label: 'Submit', + callback: (html) => { + const formElement = html[0].querySelector('form'); + const formData = new FormDataExtended(formElement); + const formDataObject = formData.toObject(); + return formDataObject; + }, + }, + cancel: { label: 'Cancel' }, + }, + }); + console.log(formResult); +}