From 179bd1d106eec97cabbb41d116b8770e8d635709 Mon Sep 17 00:00:00 2001 From: Mike Bloy Date: Sun, 5 Mar 2023 00:16:50 -0600 Subject: [PATCH] summon macro selection part is complete. --- macros/summon.js | 49 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 49 insertions(+) create mode 100644 macros/summon.js diff --git a/macros/summon.js b/macros/summon.js new file mode 100644 index 0000000..3381fdd --- /dev/null +++ b/macros/summon.js @@ -0,0 +1,49 @@ +const ACTORFOLDER = 'Summonables' + +swadeMBHelpers.runOnTargetOrSelectedTokens(main) + +async function main (tokens) { + const token = tokens[0] + const tokenList = token.name + const folder = swadeMBHelpers.getActorFolderByPath(ACTORFOLDER) + const actors = swadeMBHelpers.getActorsInFolder(folder) + const menuOptions = { + title: 'Summon Creature', + defaultButton: 'cancel', + options: {} + } + const menuData = { + inputs: [ + { type: 'header', label: 'Summon Creature' }, + { type: 'info', label: `${tokenList} is summoning` }, + { + type: 'select', + label: 'Ally to summon', + options: Object.keys(actors).sort().map(k => { return { value: actors[k].id, html: k } }) + }, + { type: 'number', label: 'Number to spawn (+half base cost per)', options: 1 } + ], + buttons: [ + { label: 'Apply', value: 'apply' }, + { label: 'Apply with raise', value: 'raise' }, + { label: 'Cancel', value: 'cancel' } + ] + } + const { buttons, inputs } = await warpgate.menu(menuData, menuOptions) + if (buttons && buttons !== 'cancel') { + const summonData = { + raise: (buttons === 'raise'), + actorId: inputs[2], + number: inputs[3] + } + summonData.actor = game.actors.get(summonData.actorId) + summonData.actorName = summonData.actor.name + summonData.icon = summonData.actor.token.img + + doWork(summonData, token) + } +} + +function doWork (summonData, token) { + console.log(summonData, token) +}