50 lines
1.4 KiB
JavaScript

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)
}