swadeMBHelpers.runOnTargetOrSelectedTokens(main) async function main (tokens) { const tokenList = tokens.map(t => t.name).join(', ') const dialogOptions = { title: 'Lingering Damage', content: `Apply Lingering Damage to ${tokenList}`, default: 'cancel', buttons: [ { label: 'Ok', value: 'ok' }, { label: 'Cancel', value: 'cancel' } ] } const choice = await warpgate.buttonDialog(dialogOptions) if (choice === 'ok') { await createEffect(tokens) } } async function createEffect (tokens) { const icon = 'icons/magic/acid/dissolve-arm-flesh.webp' const effectName = 'Lingering Damage' for (const token of tokens) { const mutate = swadeMBHelpers.createMutationWithEffect(icon, effectName, 1, []) mutate.embedded.ActiveEffect['Lingering Damage'].flags.swade.expiration = CONFIG.SWADE.CONST.STATUS_EFFECT_EXPIRATION.StartOfTurnPrompt const mutateOptions = swadeMBHelpers.defaultMutationOptions(effectName) await warpgate.mutate(token.document, mutate, {}, mutateOptions) } }