From 66ee916572e2d5b5c2a16cf2c45c8c32a0537f3e Mon Sep 17 00:00:00 2001 From: Mike Bloy Date: Mon, 18 Dec 2023 15:34:29 -0600 Subject: [PATCH] add quick damage roll macro --- CHANGELOG.md | 1 + macros/blind.js | 45 ------ macros/boost-lower-trait.js | 133 ------------------ macros/confusion.js | 62 -------- macros/deflection.js | 37 ----- macros/entangle.js | 74 ---------- macros/glow.js | 58 -------- macros/hinder.js | 38 ----- macros/hurry.js | 38 ----- macros/intangibility.js | 41 ------ macros/invisibility.js | 44 ------ macros/lingering-damage.js | 32 ----- macros/protection.js | 45 ------ macros/quickDamage.js | 39 +++++ macros/{requestDialog.js => requestRoll.js} | 0 macros/shroud.js | 58 -------- macros/smite.js | 74 ---------- macros/summon.js | 74 ---------- packs/common-actions/000005.ldb | Bin 0 -> 11401 bytes packs/common-actions/000335.ldb | Bin 11404 -> 0 bytes packs/common-actions/CURRENT | 2 +- packs/common-actions/LOG | 8 +- packs/common-actions/LOG.old | 8 -- packs/common-actions/MANIFEST-000002 | Bin 0 -> 136 bytes packs/common-actions/MANIFEST-000356 | Bin 193 -> 0 bytes packs/gear/CURRENT | 2 +- packs/gear/LOG | 8 +- packs/gear/LOG.old | 5 - packs/gear/MANIFEST-000002 | Bin 0 -> 134 bytes packs/gear/MANIFEST-000006 | Bin 119 -> 0 bytes .../helper-actors/{000232.ldb => 000005.ldb} | Bin 1751 -> 1751 bytes packs/helper-actors/CURRENT | 2 +- packs/helper-actors/LOG | 8 +- packs/helper-actors/LOG.old | 8 -- packs/helper-actors/MANIFEST-000002 | Bin 0 -> 136 bytes packs/helper-actors/MANIFEST-000251 | Bin 194 -> 0 bytes packs/helper-macros/000005.ldb | Bin 0 -> 10218 bytes packs/helper-macros/000373.ldb | Bin 9006 -> 0 bytes packs/helper-macros/CURRENT | 2 +- packs/helper-macros/LOG | 8 +- packs/helper-macros/LOG.old | 8 -- packs/helper-macros/MANIFEST-000002 | Bin 0 -> 137 bytes packs/helper-macros/MANIFEST-000382 | Bin 160 -> 0 bytes .../Quick_Damage_Roll_NANSnFATVJntUfL7.json | 27 ++++ packs/module-docs/000005.ldb | Bin 0 -> 9796 bytes packs/module-docs/000379.ldb | Bin 9134 -> 0 bytes packs/module-docs/CURRENT | 2 +- packs/module-docs/LOG | 8 +- packs/module-docs/LOG.old | 15 -- packs/module-docs/MANIFEST-000002 | Bin 0 -> 161 bytes packs/module-docs/MANIFEST-000380 | Bin 209 -> 0 bytes .../_source/Macros_Mw1g2Fx5dp4SoqVP.json | 41 +++++- 52 files changed, 137 insertions(+), 918 deletions(-) delete mode 100644 macros/blind.js delete mode 100644 macros/boost-lower-trait.js delete mode 100644 macros/confusion.js delete mode 100644 macros/deflection.js delete mode 100644 macros/entangle.js delete mode 100644 macros/glow.js delete mode 100644 macros/hinder.js delete mode 100644 macros/hurry.js delete mode 100644 macros/intangibility.js delete mode 100644 macros/invisibility.js delete mode 100644 macros/lingering-damage.js delete mode 100644 macros/protection.js create mode 100644 macros/quickDamage.js rename macros/{requestDialog.js => requestRoll.js} (100%) delete mode 100644 macros/shroud.js delete mode 100644 macros/smite.js delete mode 100644 macros/summon.js create mode 100644 packs/common-actions/000005.ldb delete mode 100644 packs/common-actions/000335.ldb delete mode 100644 packs/common-actions/LOG.old create mode 100644 packs/common-actions/MANIFEST-000002 delete mode 100644 packs/common-actions/MANIFEST-000356 delete mode 100644 packs/gear/LOG.old create mode 100644 packs/gear/MANIFEST-000002 delete mode 100644 packs/gear/MANIFEST-000006 rename packs/helper-actors/{000232.ldb => 000005.ldb} (89%) delete mode 100644 packs/helper-actors/LOG.old create mode 100644 packs/helper-actors/MANIFEST-000002 delete mode 100644 packs/helper-actors/MANIFEST-000251 create mode 100644 packs/helper-macros/000005.ldb delete mode 100644 packs/helper-macros/000373.ldb delete mode 100644 packs/helper-macros/LOG.old create mode 100644 packs/helper-macros/MANIFEST-000002 delete mode 100644 packs/helper-macros/MANIFEST-000382 create mode 100644 packs/helper-macros/_source/Quick_Damage_Roll_NANSnFATVJntUfL7.json create mode 100644 packs/module-docs/000005.ldb delete mode 100644 packs/module-docs/000379.ldb delete mode 100644 packs/module-docs/LOG.old create mode 100644 packs/module-docs/MANIFEST-000002 delete mode 100644 packs/module-docs/MANIFEST-000380 diff --git a/CHANGELOG.md b/CHANGELOG.md index 466fcdd..6bb8b28 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -9,6 +9,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ### Added +- New macro: Quick Damage Roll - New Vision mode: Low Light Vision - Power Effect for Zombie - Sample fixed request roll macro diff --git a/macros/blind.js b/macros/blind.js deleted file mode 100644 index 30ad41e..0000000 --- a/macros/blind.js +++ /dev/null @@ -1,45 +0,0 @@ -swadeMBHelpers.runOnTargetOrSelectedTokens(main) - -async function main (tokens) { - const tokenList = tokens.map(t => t.name).join(', ') - const menuOptions = { - title: 'Blind', - defaultButton: 'Cancel', - options: {} - } - - const menuData = { - inputs: [ - { type: 'header', label: 'Blind' }, - { type: 'info', label: `Apply Blind to ${tokenList}` }, - { type: 'checkbox', label: 'Strong', options: false } - ], - buttons: [ - { label: 'Apply', value: 'apply' }, - { label: 'Raise', value: 'raise' }, - { label: 'Cancel', value: 'cancel' } - ] - } - - const { buttons, inputs } = await warpgate.menu(menuData, menuOptions) - if (buttons && buttons !== 'cancel') { - const options = { - raise: (buttons === 'raise'), - strong: (!!inputs[2]) - } - await createEffect(tokens, options) - } -} - -async function createEffect (tokens, options) { - const effectDetails = (options.raise ? '-4' : '-2') - const effectEnd = (options.strong ? 'Vigor -2' : 'Vigor') - const effectName = `Blind (${effectDetails}) ${effectEnd} ends` - const baseEffect = CONFIG.statusEffects.find(se => se.label === 'EFFECT.StatusBlind') - for (const token of tokens) { - const mutate = swadeMBHelpers.createMutationWithEffect(baseEffect.icon, effectName, 1, []) - mutate.embedded.ActiveEffect[effectName].flags.core = { statusId: baseEffect.id } - const mutateOptions = swadeMBHelpers.defaultMutationOptions('Blind') - await warpgate.mutate(token.document, mutate, {}, mutateOptions) - } -} diff --git a/macros/boost-lower-trait.js b/macros/boost-lower-trait.js deleted file mode 100644 index 98c1643..0000000 --- a/macros/boost-lower-trait.js +++ /dev/null @@ -1,133 +0,0 @@ -swadeMBHelpers.runOnTargetOrSelectedTokens(main) - -async function main (tokens) { - let traitOptions = [ - 'Agility', 'Smarts', 'Spirit', 'Strength', 'Vigor' - ] - const allSkills = [] - const traits = {} - for (const traitName of traitOptions) { - const lower = traitName.toLowerCase() - traits[traitName] = { - name: traitName, - type: 'attribute', - modkey: `system.attributes.${lower}.die.modifier`, - diekey: `system.attributes.${lower}.die.sides` - } - } - - const tokenList = tokens.map(t => t.name).join(', ') - for (const token of tokens) { - const skills = token.actor.items.filter(item => item.type === 'skill') - for (const skill of skills) { - const name = skill.name - traits[name] = { - type: 'skill', - name, - modkey: `@Skill{${name}}[system.die.modifier]`, - diekey: `@Skill{${name}}[system.die.sides]` - } - if (name !== 'Unskilled' && !allSkills.find(v => v === name)) { - allSkills.push(name) - } - } - } - traitOptions = traitOptions.concat(allSkills.sort()) - - const menuOptions = { - title: 'Boost/Lower Trait', - defaultButton: 'Cancel', - options: {} - } - const menuData = { - inputs: [ - { type: 'header', label: 'Boost/Lower Trait' }, - { type: 'info', label: `Affected Tokens ${tokenList}` }, - { type: 'select', label: 'Trait', options: traitOptions }, - { type: 'info', label: 'Boost or Lower?' }, - { type: 'radio', label: 'Boost', options: ['isBoost', true] }, - { type: 'radio', label: 'Lower', options: ['isBoost', false] }, - { type: 'checkbox', label: 'Greater', options: false }, - { type: 'checkbox', label: 'Strong (lower only)', options: false } - ], - 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 options = { - action: buttons, - name: inputs[2], - trait: traits[inputs[2]], - direction: inputs[4] || inputs[5], - greater: inputs[6], - strong: inputs[7] - } - createEffect(tokens, options) - } -} - -const UPICON = 'icons/magic/life/cross-embers-glow-yellow-purple.webp' -const DOWNICON = 'icons/magic/movement/chevrons-down-yellow.webp' - -async function createEffect (tokens, options) { - const raise = (options.action === 'raise') - const icon = (options.direction === 'Boost' ? UPICON : DOWNICON) - let namePart = `${options.direction} ${options.trait.name}` - const mode = CONST.ACTIVE_EFFECT_MODES.ADD - const mods = [] - if (options.strong && options.direction === 'Lower') { - mods.push('strong') - } - if (options.greater) { - mods.push('greater') - } - if (mods.length > 0) { - namePart = `${namePart} (${mods.join(', ')})` - } - const minorEffect = swadeMBHelpers.createEffectDocument( - icon, `minor ${namePart}`, 5, [ - { - key: options.trait.diekey, - mode, - value: (options.direction === 'Boost' ? '+2' : '-2'), - priority: 0 - } - ] - ) - const majorEffect = swadeMBHelpers.createEffectDocument( - icon, `major ${namePart}`, 5, [ - { - key: options.trait.diekey, - mode, - value: (options.direction === 'Boost' ? '+2' : '-2'), - priority: 0 - } - ] - ) - if (options.direction === 'Lower' && options.greater === 'Greater') { - minorEffect.changes.push({ - key: options.trait.modkey, - mode, - value: '-2', - priority: 0 - }) - } - const mutate = { - embedded: { - ActiveEffect: { - } - } - } - mutate.embedded.ActiveEffect[minorEffect.id] = minorEffect - if (raise) { - mutate.embedded.ActiveEffect[majorEffect.id] = majorEffect - } - const mutateOptions = swadeMBHelpers.defaultMutationOptions(namePart) - for (const token of tokens) { - await warpgate.mutate(token.document, mutate, {}, mutateOptions) - } -} diff --git a/macros/confusion.js b/macros/confusion.js deleted file mode 100644 index a60049c..0000000 --- a/macros/confusion.js +++ /dev/null @@ -1,62 +0,0 @@ -swadeMBHelpers.runOnTargetOrSelectedTokens(main) - -async function main (tokens) { - const tokenList = tokens.map(t => t.name).join(', ') - const menuOptions = { - title: 'Confusion', - defaultButton: 'Cancel', - options: {} - } - - const menuData = { - inputs: [ - { type: 'header', label: 'Confusion' }, - { type: 'info', label: `Apply Confusion to ${tokenList}` }, - { type: 'checkbox', label: 'Greater (adds shaken)', options: false } - ], - buttons: [ - { label: 'Distracted', value: 'distracted' }, - { label: 'Vulnerable', value: 'vulnerable' }, - { label: 'Raise (both)', value: 'raise' }, - { label: 'Cancel', value: 'cancel' } - ] - } - - const { buttons, inputs } = await warpgate.menu(menuData, menuOptions) - const greater = (inputs[2] === 'Greater (adds shaken)') - if (buttons && buttons !== 'cancel') { - await createEffect(tokens, buttons, greater) - } -} - -function getStatus (label, name) { - const effect = JSON.parse(JSON.stringify( - CONFIG.statusEffects.find(se => se.label === label))) - effect.label = name - effect.flags.core = { statusId: effect.id } - effect.id = name - return effect -} - -async function createEffect (tokens, choice, greater) { - const effects = [] - if (choice === 'distracted' || choice === 'raise') { - effects.push(getStatus('SWADE.Distr', 'Distracted')) - } - if (choice === 'vulnerable' || choice === 'raise') { - effects.push(getStatus('SWADE.Vuln', 'Vulnerable')) - } - if (greater) { - effects.push(getStatus('SWADE.Shaken', 'Shaken')) - } - for (const token of tokens) { - const mutateOptions = swadeMBHelpers.defaultMutationOptions('Confusion') - const mutate = { - embedded: { ActiveEffect: {} } - } - for (const effect of effects) { - mutate.embedded.ActiveEffect[effect.id] = effect - } - await warpgate.mutate(token.document, mutate, {}, mutateOptions) - } -} diff --git a/macros/deflection.js b/macros/deflection.js deleted file mode 100644 index 630ca28..0000000 --- a/macros/deflection.js +++ /dev/null @@ -1,37 +0,0 @@ -swadeMBHelpers.runOnTargetOrSelectedTokens(main) - -async function main (tokens) { - const tokenList = tokens.map(t => t.name).join(', ') - const dialogOptions = { - title: 'Deflection', - content: `Apply Deflection to ${tokenList}`, - default: 'cancel', - buttons: [ - { label: 'Apply (melee)', value: 'melee' }, - { label: 'Apply (ranged)', value: 'ranged' }, - { label: 'Apply with raise (both)', value: 'raise' }, - { label: 'Cancel', value: 'cancel' } - ] - } - - const choice = await warpgate.buttonDialog(dialogOptions) - - if (choice && choice !== 'cancel') { - await createEffect(tokens, choice) - } -} - -async function createEffect (tokens, choice) { - const icon = 'icons/magic/defensive/shield-barrier-deflect-teal.webp' - let effectName = 'Deflection' - if (choice === 'raise') { - effectName = `${effectName} (all)` - } else { - effectName = `${effectName} (${choice})` - } - for (const token of tokens) { - const mutate = swadeMBHelpers.createMutationWithEffect(icon, effectName, 5, []) - const mutateOptions = swadeMBHelpers.defaultMutationOptions(effectName) - await warpgate.mutate(token.document, mutate, {}, mutateOptions) - } -} diff --git a/macros/entangle.js b/macros/entangle.js deleted file mode 100644 index 0f47916..0000000 --- a/macros/entangle.js +++ /dev/null @@ -1,74 +0,0 @@ -swadeMBHelpers.runOnTargetOrSelectedTokens(main) - -async function main (tokens) { - const tokenList = tokens.map(t => t.name).join(', ') - const menuOptions = { - title: 'Entangle', - defaultButton: 'Cancel', - options: {} - } - - const menuData = { - inputs: [ - { type: 'header', label: 'Entangle' }, - { type: 'info', label: `Apply Entangle to ${tokenList}` }, - { type: 'radio', label: 'Not Damaging', options: ['dmg', true] }, - { type: 'radio', label: 'Damaging', options: ['dmg', false] }, - { type: 'radio', label: 'Deadly', options: ['dmg', false] }, - { type: 'checkbox', label: 'Tough', options: false } - ], - buttons: [ - { label: 'Entangled', value: 'apply' }, - { label: 'Bound (raise)', value: 'raise' }, - { label: 'Cancel', value: 'cancel' } - ] - } - - const { buttons, inputs } = await warpgate.menu(menuData, menuOptions) - if (buttons && buttons !== 'cancel') { - const options = { - apply: (buttons === 'raise' ? 'bound' : 'entangled'), - damage: (inputs[3] ? '2d4' : (inputs[4] ? '2d6' : null)), - tough: (!!inputs[5]) - } - await createEffect(tokens, options) - } -} - -function getStatus (label, name) { - const effect = JSON.parse(JSON.stringify( - CONFIG.statusEffects.find(se => se.label === label))) - effect.label = name - if (!effect.flags) { - effect.flags = {} - } - effect.flags.core = { statusId: effect.id } - effect.id = name - return effect -} - -async function createEffect (tokens, options) { - const effectSearch = (options.apply === 'bound' ? 'SWADE.Bound' : 'SWADE.Entangled') - const effectName = (options.apply === 'bound' ? 'Bound' : 'Entangled') - const effect = getStatus(effectSearch, effectName) - const extraIcon = 'icons/magic/nature/root-vine-barrier-wall-brown.webp' - const extraEffect = swadeMBHelpers.createEffectDocument(extraIcon, 'Entangle Modifier', 1, []) - - if (options.damage) { - extraEffect.id = `${extraEffect.id} - ${options.damage} dmg` - extraEffect.label = `${extraEffect.label} - ${options.damage} dmg` - } - if (options.tough) { - extraEffect.id = `Tough ${extraEffect.id}` - extraEffect.label = `Tough ${extraEffect.label}` - } - for (const token of tokens) { - const mutateOptions = swadeMBHelpers.defaultMutationOptions('Entangle') - const mutate = { embedded: { ActiveEffect: {} } } - mutate.embedded.ActiveEffect[effect.id] = effect - if (options.damage || options.tough) { - mutate.embedded.ActiveEffect[extraEffect.id] = extraEffect - } - await warpgate.mutate(token.document, mutate, {}, mutateOptions) - } -} diff --git a/macros/glow.js b/macros/glow.js deleted file mode 100644 index af28c53..0000000 --- a/macros/glow.js +++ /dev/null @@ -1,58 +0,0 @@ -swadeMBHelpers.runOnTargetOrSelectedTokens(main) - -async function main (tokens) { - const tokenList = tokens.map(t => t.name).join(', ') - const dialogOptions = { - title: 'Glow', - content: `Apply Glow to ${tokenList}`, - default: 'cancel', - buttons: [ - { label: 'OK', value: 'ok' }, - { label: 'Mutate token lighting', value: 'mutate' }, - { label: 'Cancel', value: 'cancel' } - ] - } - - const choice = await warpgate.buttonDialog(dialogOptions) - - if (choice === 'ok' || choice === 'mutate') { - await createEffect(tokens, choice) - } -} - -async function createEffect (tokens, choice) { - const icon = 'icons/magic/light/explosion-star-blue-large.webp' - const effectName = 'Glow' - for (const token of tokens) { - const mutate = swadeMBHelpers.createMutationWithEffect(icon, effectName, 5, []) - const mutateOptions = swadeMBHelpers.defaultMutationOptions(effectName) - await warpgate.mutate(token.document, mutate, {}, mutateOptions) - if (choice === 'mutate') { - const mutate2 = { - token: { - light: { - alpha: 0.5, - angle: 360, - attenuation: 0.5, - animation: { - intensity: 5, - reverse: false, - speed: 5, - type: 'starlight' - }, - bright: 0, - color: '#0f3fff', - coloration: 1, - contrast: 0, - dim: 0.5, - luminosity: 0.5, - saturation: 0, - shadows: 0 - } - } - } - mutateOptions.permanent = false - await warpgate.mutate(token.document, mutate2, {}, mutateOptions) - } - } -} diff --git a/macros/hinder.js b/macros/hinder.js deleted file mode 100644 index 0c1df96..0000000 --- a/macros/hinder.js +++ /dev/null @@ -1,38 +0,0 @@ -swadeMBHelpers.runOnTargetOrSelectedTokens(main) - -async function main (tokens) { - const tokenList = tokens.map(t => t.name).join(', ') - const dialogOptions = { - title: 'Hinder', - content: `Apply Hinder to ${tokenList}`, - default: 'cancel', - buttons: [ - { label: 'OK', value: 'ok' }, - { label: 'Cancel', value: 'cancel' } - ] - } - - const choice = await warpgate.buttonDialog(dialogOptions, 'column') - - if (choice === 'ok') { - await createEffect(tokens, choice) - } -} - -async function createEffect (tokens, choice) { - const icon = 'icons/magic/movement/abstract-ribbons-red-orange.webp' - const effectName = 'Hinder' - const changes = [ - { - key: 'system.stats.speed.value', - mode: foundry.CONST.ACTIVE_EFFECT_MODES.ADD, - value: -2, - priority: 0 - } - ] - for (const token of tokens) { - const mutate = swadeMBHelpers.createMutationWithEffect(icon, effectName, 5, changes) - const mutateOptions = swadeMBHelpers.defaultMutationOptions(effectName) - await warpgate.mutate(token.document, mutate, {}, mutateOptions) - } -} diff --git a/macros/hurry.js b/macros/hurry.js deleted file mode 100644 index 6c5811f..0000000 --- a/macros/hurry.js +++ /dev/null @@ -1,38 +0,0 @@ -swadeMBHelpers.runOnTargetOrSelectedTokens(main) - -async function main (tokens) { - const tokenList = tokens.map(t => t.name).join(', ') - const dialogOptions = { - title: 'Hurry', - content: `Apply Hurry to ${tokenList}`, - default: 'cancel', - buttons: [ - { label: 'OK', value: 'ok' }, - { label: 'Cancel', value: 'cancel' } - ] - } - - const choice = await warpgate.buttonDialog(dialogOptions, 'column') - - if (choice === 'ok') { - await createEffect(tokens, choice) - } -} - -async function createEffect (tokens, choice) { - const icon = 'icons/skills/movement/feet-winged-boots-blue.webp' - const effectName = 'Hurry' - const changes = [ - { - key: 'system.stats.speed.value', - mode: foundry.CONST.ACTIVE_EFFECT_MODES.ADD, - value: 2, - priority: 0 - } - ] - for (const token of tokens) { - const mutate = swadeMBHelpers.createMutationWithEffect(icon, effectName, 5, changes) - const mutateOptions = swadeMBHelpers.defaultMutationOptions(effectName) - await warpgate.mutate(token.document, mutate, {}, mutateOptions) - } -} diff --git a/macros/intangibility.js b/macros/intangibility.js deleted file mode 100644 index 8407b13..0000000 --- a/macros/intangibility.js +++ /dev/null @@ -1,41 +0,0 @@ -swadeMBHelpers.runOnTargetOrSelectedTokens(main) - -async function main (tokens) { - const tokenList = tokens.map(t => t.name).join(', ') - const menuOptions = { - title: 'Intangibility', - defaultButton: 'Cancel', - options: {} - } - - const menuData = { - inputs: [ - { type: 'header', label: 'Intangibility' }, - { type: 'info', label: `Apply Intangibility to ${tokenList}` }, - { type: 'checkbox', label: 'Duration', options: false } - ], - buttons: [ - { label: 'Apply', value: 'apply' }, - { label: 'Cancel', value: 'cancel' } - ] - } - - const { buttons, inputs } = await warpgate.menu(menuData, menuOptions) - if (buttons && buttons !== 'cancel') { - const options = { - duration: (!!inputs[2]) - } - await createEffect(tokens, options) - } -} - -async function createEffect (tokens, options) { - const effectName = 'Intangibility' - const duration = (options.duration ? 5 * 6 * 60 : 5) - const icon = 'icons/magic/control/debuff-energy-hold-levitate-blue-yellow.webp' - for (const token of tokens) { - const mutate = swadeMBHelpers.createMutationWithEffect(icon, effectName, duration, []) - const mutateOptions = swadeMBHelpers.defaultMutationOptions('Intangibility') - await warpgate.mutate(token.document, mutate, {}, mutateOptions) - } -} diff --git a/macros/invisibility.js b/macros/invisibility.js deleted file mode 100644 index 9e007fb..0000000 --- a/macros/invisibility.js +++ /dev/null @@ -1,44 +0,0 @@ -swadeMBHelpers.runOnTargetOrSelectedTokens(main) - -async function main (tokens) { - const tokenList = tokens.map(t => t.name).join(', ') - const menuOptions = { - title: 'Invisibility', - defaultButton: 'Cancel', - options: {} - } - - const menuData = { - inputs: [ - { type: 'header', label: 'Invisibility' }, - { type: 'info', label: `Apply Invisibility to ${tokenList}` }, - { type: 'checkbox', label: 'Duration', options: false } - ], - buttons: [ - { label: 'Apply', value: 'apply' }, - { label: 'Raise', value: 'raise' }, - { label: 'Cancel', value: 'cancel' } - ] - } - - const { buttons, inputs } = await warpgate.menu(menuData, menuOptions) - if (buttons && buttons !== 'cancel') { - const options = { - raise: (buttons === 'raise'), - duration: (!!inputs[2]) - } - await createEffect(tokens, options) - } -} - -async function createEffect (tokens, options) { - const effectName = `${options.raise ? 'major' : 'minor'} Invisibility` - const baseEffect = CONFIG.statusEffects.find(se => se.label === 'EFFECT.StatusInvisible') - const duration = (options.duration ? 5 * 6 * 60 : 5) - for (const token of tokens) { - const mutate = swadeMBHelpers.createMutationWithEffect(baseEffect.icon, effectName, duration, []) - mutate.embedded.ActiveEffect[effectName].flags.core = { statusId: baseEffect.id } - const mutateOptions = swadeMBHelpers.defaultMutationOptions('Invisibility') - await warpgate.mutate(token.document, mutate, {}, mutateOptions) - } -} diff --git a/macros/lingering-damage.js b/macros/lingering-damage.js deleted file mode 100644 index 1d1e6c4..0000000 --- a/macros/lingering-damage.js +++ /dev/null @@ -1,32 +0,0 @@ -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) - } -} diff --git a/macros/protection.js b/macros/protection.js deleted file mode 100644 index d35e5ad..0000000 --- a/macros/protection.js +++ /dev/null @@ -1,45 +0,0 @@ -swadeMBHelpers.runOnTargetOrSelectedTokens(main) - -async function main (tokens) { - const tokenList = tokens.map(t => t.name).join(', ') - const dialogOptions = { - title: 'Protection', - content: `Apply Protection to ${tokenList}`, - default: 'cancel', - buttons: [ - { label: 'Apply (+2 armor)', value: 'apply' }, - { label: 'Apply with raise (+2 toughness)', value: 'raise' }, - { label: 'Cancel', value: 'cancel' } - ] - } - - const choice = await warpgate.buttonDialog(dialogOptions) - - if (choice && choice !== 'cancel') { - await createEffect(tokens, choice) - } -} - -async function createEffect (tokens, choice) { - const baseEffect = CONFIG.statusEffects.find(se => se.label === 'SWADE.Protection') - const changes = [ - { - key: 'system.stats.toughness.armor', - mode: foundry.CONST.ACTIVE_EFFECT_MODES.UPGRADE, - value: 2, - priority: 0 - } - ] - let effectName = 'minor Protection' - if (choice === 'raise') { - changes[0].key = 'system.stats.toughness.value' - effectName = 'major Protection' - } - for (const token of tokens) { - const mutate = swadeMBHelpers.createMutationWithEffect( - baseEffect.icon, effectName, 5, changes) - mutate.embedded.ActiveEffect[effectName].flags.core = { statusId: baseEffect.id } - const mutateOptions = swadeMBHelpers.defaultMutationOptions(effectName) - await warpgate.mutate(token.document, mutate, {}, mutateOptions) - } -} diff --git a/macros/quickDamage.js b/macros/quickDamage.js new file mode 100644 index 0000000..50b316c --- /dev/null +++ b/macros/quickDamage.js @@ -0,0 +1,39 @@ +new Dialog({ + title: 'Damage Roll Configuration', + content: ` +
+
+ + +
+
+ + +
+
+ + +
+
+ `, + buttons: { + ok: { + label: 'Roll Damage', + callback: (html) => { + const damageRoll = html.find('input[name="damageRoll"]').val() + let flavor = html.find('input[name="flavor"]').val() + const ap = parseInt(html.find('input[name="ap"]').val()) || 0 + const options = {} + if (ap > 0) { + flavor = `${flavor ? flavor + ' - ' : ''}AP: ${ap}` + options.ap = ap + } + // Perform the damage roll and send the message + new CONFIG.Dice.DamageRoll(damageRoll, null, options).toMessage({ flavor }) + } + }, + cancel: { + label: 'Cancel' + } + } +}).render(true) diff --git a/macros/requestDialog.js b/macros/requestRoll.js similarity index 100% rename from macros/requestDialog.js rename to macros/requestRoll.js diff --git a/macros/shroud.js b/macros/shroud.js deleted file mode 100644 index 48ce381..0000000 --- a/macros/shroud.js +++ /dev/null @@ -1,58 +0,0 @@ -swadeMBHelpers.runOnTargetOrSelectedTokens(main) - -async function main (tokens) { - const tokenList = tokens.map(t => t.name).join(', ') - const dialogOptions = { - title: 'Shroud', - content: `Apply Shroud to ${tokenList}`, - default: 'cancel', - buttons: [ - { label: 'OK', value: 'ok' }, - { label: 'Mutate token lighting', value: 'mutate' }, - { label: 'Cancel', value: 'cancel' } - ] - } - - const choice = await warpgate.buttonDialog(dialogOptions) - - if (choice === 'ok' || choice === 'mutate') { - await createEffect(tokens, choice) - } -} - -async function createEffect (tokens, choice) { - const icon = 'icons/magic/perception/silhouette-stealth-shadow.webp' - const effectName = 'Shroud' - for (const token of tokens) { - const mutate = swadeMBHelpers.createMutationWithEffect(icon, effectName, 5, []) - const mutateOptions = swadeMBHelpers.defaultMutationOptions(effectName) - await warpgate.mutate(token.document, mutate, {}, mutateOptions) - if (choice === 'mutate') { - const mutate2 = { - token: { - light: { - alpha: 0.5, - angle: 360, - attenuation: 0.1, - animation: { - intensity: 5, - reverse: false, - speed: 5, - type: 'roiling' - }, - bright: 0, - color: null, - coloration: 0, - contrast: 0, - dim: 0.1, - luminosity: -0.15, - saturation: 0, - shadows: 0.25 - } - } - } - mutateOptions.permanent = false - await warpgate.mutate(token.document, mutate2, {}, mutateOptions) - } - } -} diff --git a/macros/smite.js b/macros/smite.js deleted file mode 100644 index 41402d0..0000000 --- a/macros/smite.js +++ /dev/null @@ -1,74 +0,0 @@ -swadeMBHelpers.runOnTargetOrSelectedTokens(main) - -async function main (tokens) { - const tokenList = tokens.map(t => t.name).join(', ') - const menuOptions = { - title: 'Smite', - defaultButton: 'Cancel', - options: {} - } - - const menuData = { - inputs: [ - { type: 'header', label: 'Smite' }, - { type: 'info', label: `Apply Smite to ${tokenList}` }, - { type: 'checkbox', label: 'Greater', options: false } - ], - buttons: [ - { label: 'Apply', value: 'apply' }, - { label: 'Apply with Raise', value: 'raise' }, - { label: 'Cancel', value: 'cancel' } - ] - } - - const tokenWeapons = {} - let index = 2 - for (const token of tokens) { - index += 2 - tokenWeapons[token.id] = index - menuData.inputs.push({ type: 'info', label: `

${token.name}

` }) - const weapons = token.actor.items.filter(i => i.type === 'weapon').map( - i => { return { value: i.name, html: i.name } }) - weapons.unshift({ value: '', html: 'None' }) - menuData.inputs.push({ type: 'select', label: token.name, options: weapons }) - } - const { buttons, inputs } = await warpgate.menu(menuData, menuOptions) - for (const tokenId in tokenWeapons) { - tokenWeapons[tokenId] = inputs[tokenWeapons[tokenId]] - } - const greater = (inputs[2] === 'Greater') - if (buttons && buttons !== 'cancel') { - await createEffect(tokens, tokenWeapons, buttons, greater) - } -} - -async function createEffect (tokens, tokenWeapons, choice, greater) { - const baseEffect = CONFIG.statusEffects.find(se => se.label === 'SWADE.Smite') - const effectIcon = baseEffect.icon - let changeValue = (choice === 'raise' ? '+4' : '+2') - if (greater) { - changeValue = (choice === 'raise' ? '+6' : '+4') - } - for (const token of tokens) { - const weaponName = tokenWeapons[token.id] - const weaponId = token.actor.items.getName(weaponName)?.id - const changeKey = `@Weapon{${weaponName}}[system.damage]` - if (!weaponId) { - continue - } - const effectName = `${choice === 'raise' ? 'major' : 'minor'} Smite${greater ? '(greater)' : ''} (${weaponName})` - const changes = [ - { - key: changeKey, - mode: foundry.CONST.ACTIVE_EFFECT_MODES.ADD, - value: changeValue, - priority: 0 - } - ] - const mutate = swadeMBHelpers.createMutationWithEffect( - effectIcon, effectName, 5, changes) - mutate.embedded.ActiveEffect[effectName].flags.core = { statusId: baseEffect.id } - const mutateOptions = swadeMBHelpers.defaultMutationOptions(effectName) - await warpgate.mutate(token.document, mutate, {}, mutateOptions) - } -} diff --git a/macros/summon.js b/macros/summon.js deleted file mode 100644 index 5474f47..0000000 --- a/macros/summon.js +++ /dev/null @@ -1,74 +0,0 @@ -const ACTORFOLDER = 'Summonables' -const SUMMONICON = 'icons/magic/symbols/runes-star-orange.webp' - -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.prototypeToken.texture.src - summonData.token = summonData.actor.prototypeToken - - doWork(summonData, token) - } -} - -async function doWork (summonData, token) { - console.log('Summon ', token, summonData) - const effectName = `Summoned ${summonData.actorName} (${summonData.number})` - const tokenEffectMutation = swadeMBHelpers.createMutationWithEffect(SUMMONICON, effectName, 5, []) - const mutateOptions = swadeMBHelpers.defaultMutationOptions(effectName) - await warpgate.mutate(token.document, tokenEffectMutation, {}, mutateOptions) - - const spawnOptions = { - controllingActor: token.actor, - duplicates: summonData.number, - comparisonKeys: { ActiveEffect: 'label' }, - crosshairs: { - icon: summonData.icon, - label: `Summon ${summonData.actorName}`, - drawOutline: false, - rememberControlled: true - } - } - const spawnMutation = { - token: { - actorLink: false, - name: `${token.name}'s ${summonData.token.name}` - } - } - await warpgate.spawn(summonData.actorName, spawnMutation, {}, spawnOptions) -} diff --git a/packs/common-actions/000005.ldb b/packs/common-actions/000005.ldb new file mode 100644 index 0000000000000000000000000000000000000000..6c4315df67513603e5974c5e65bad0a1553f14eb GIT binary patch literal 11401 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 N{q4G4Rmru#`v3po{KWtO literal 0 HcmV?d00001 diff --git a/packs/common-actions/000335.ldb b/packs/common-actions/000335.ldb deleted file mode 100644 index b3636281bd562045753ed27228f7f0cf1cad1114..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 11404 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 NeRA#Ys^q#~{eS!u_`U!D diff --git a/packs/common-actions/CURRENT b/packs/common-actions/CURRENT index 4926ab4..1a84852 100644 --- a/packs/common-actions/CURRENT +++ b/packs/common-actions/CURRENT @@ -1 +1 @@ -MANIFEST-000356 +MANIFEST-000002 diff --git a/packs/common-actions/LOG b/packs/common-actions/LOG index 319244b..dedeab7 100644 --- a/packs/common-actions/LOG +++ b/packs/common-actions/LOG @@ -1,3 +1,5 @@ -2023/12/18-12:05:43.940479 7fce577fe700 Recovering log #354 -2023/12/18-12:05:43.960190 7fce577fe700 Delete type=0 #354 -2023/12/18-12:05:43.960210 7fce577fe700 Delete type=3 #352 +2023/12/18-15:37:09.644182 7f63a67bd700 Delete type=3 #1 +2023/12/18-15:37:09.646809 7f63a5542700 Level-0 table #5: started +2023/12/18-15:37:09.654066 7f63a5542700 Level-0 table #5: 11401 bytes OK +2023/12/18-15:37:09.663437 7f63a5542700 Delete type=0 #3 +2023/12/18-15:37:09.663538 7f63a5542700 Manual compaction at level-0 from '!folders!0nDRFmMBs5DBJU9M' @ 72057594037927935 : 1 .. '!items!xA7qKMmugJv7z6j1' @ 0 : 0; will stop at (end) diff --git a/packs/common-actions/LOG.old b/packs/common-actions/LOG.old deleted file mode 100644 index ec6ab51..0000000 --- a/packs/common-actions/LOG.old +++ /dev/null @@ -1,8 +0,0 @@ -2023/12/17-21:54:41.311951 7fa92bfff700 Recovering log #350 -2023/12/17-21:54:41.319557 7fa92bfff700 Delete type=3 #348 -2023/12/17-21:54:41.319574 7fa92bfff700 Delete type=0 #350 -2023/12/18-00:47:25.700106 7fa92a3f0700 Level-0 table #355: started -2023/12/18-00:47:25.700130 7fa92a3f0700 Level-0 table #355: 0 bytes OK -2023/12/18-00:47:25.708833 7fa92a3f0700 Delete type=0 #353 -2023/12/18-00:47:25.718045 7fa92a3f0700 Manual compaction at level-0 from '!folders!0nDRFmMBs5DBJU9M' @ 72057594037927935 : 1 .. '!items!xA7qKMmugJv7z6j1' @ 0 : 0; will stop at (end) -2023/12/18-00:47:25.733637 7fa92a3f0700 Manual compaction at level-1 from '!folders!0nDRFmMBs5DBJU9M' @ 72057594037927935 : 1 .. '!items!xA7qKMmugJv7z6j1' @ 0 : 0; will stop at (end) diff --git a/packs/common-actions/MANIFEST-000002 b/packs/common-actions/MANIFEST-000002 new file mode 100644 index 0000000000000000000000000000000000000000..8389ff4de47b396b4518c25c1bcdc0c19c3df277 GIT binary patch literal 136 zcmWIhx#Ncn10$nUPHI_dPD+xVQ)NkNd1i5{bAE0?Vo_pAe$kRS-TOEg7@3$k8JJmE z7=Q?aRwlUJyvFQXs>7|1JT dmZatuD^@s~7kc~VmZp1^nOB)*88UJ}r`y&;^Y-- f>C4CrHi)22;u*U;xfvLlo-%PVFh65rInD$C!OAqm diff --git a/packs/gear/CURRENT b/packs/gear/CURRENT index f7753e2..1a84852 100644 --- a/packs/gear/CURRENT +++ b/packs/gear/CURRENT @@ -1 +1 @@ -MANIFEST-000006 +MANIFEST-000002 diff --git a/packs/gear/LOG b/packs/gear/LOG index 4e345ff..fcf2940 100644 --- a/packs/gear/LOG +++ b/packs/gear/LOG @@ -1,3 +1,5 @@ -2023/12/18-12:05:44.063624 7f8a68cfb700 Recovering log #4 -2023/12/18-12:05:44.092055 7f8a68cfb700 Delete type=3 #2 -2023/12/18-12:05:44.092083 7f8a68cfb700 Delete type=0 #4 +2023/12/18-15:37:12.778941 7fed4efbf700 Delete type=3 #1 +2023/12/18-15:37:12.781115 7fed4cfbb700 Level-0 table #5: started +2023/12/18-15:37:12.803917 7fed4cfbb700 Level-0 table #5: 6787 bytes OK +2023/12/18-15:37:12.812861 7fed4cfbb700 Delete type=0 #3 +2023/12/18-15:37:12.812959 7fed4cfbb700 Manual compaction at level-0 from '!items!JWyBQe4tnOYljFAF' @ 72057594037927935 : 1 .. '!items!tWWSfEMmLmws6Yb1' @ 0 : 0; will stop at (end) diff --git a/packs/gear/LOG.old b/packs/gear/LOG.old deleted file mode 100644 index 571ebce..0000000 --- a/packs/gear/LOG.old +++ /dev/null @@ -1,5 +0,0 @@ -2023/12/18-11:55:17.263220 7f822affd700 Delete type=3 #1 -2023/12/18-11:55:17.265600 7f822a583700 Level-0 table #5: started -2023/12/18-11:55:17.272736 7f822a583700 Level-0 table #5: 6787 bytes OK -2023/12/18-11:55:17.281677 7f822a583700 Delete type=0 #3 -2023/12/18-11:55:17.281771 7f822a583700 Manual compaction at level-0 from '!items!JWyBQe4tnOYljFAF' @ 72057594037927935 : 1 .. '!items!tWWSfEMmLmws6Yb1' @ 0 : 0; will stop at (end) diff --git a/packs/gear/MANIFEST-000002 b/packs/gear/MANIFEST-000002 new file mode 100644 index 0000000000000000000000000000000000000000..aa2beac868330c9e061a9a5b02a78303ce5c0afe GIT binary patch literal 134 zcmWIhx#Ncn10$nUPHI_dPD+xVQ)NkNd1i5{bAE0?Vo_pAe$kRS-TOEg7@3$k8JJmE z7~0N1p5zPUvH-bkEX?dotj(tKikT&;xy6cJ;gwE-sU{_P{*gIZZjNq@OblQElP?Jm W4^DIS&GpGGFE)!zGGt_g$O8bs`Xp@t literal 0 HcmV?d00001 diff --git a/packs/gear/MANIFEST-000006 b/packs/gear/MANIFEST-000006 deleted file mode 100644 index 671a0d44dd5dc7059e473e453c2e271b62366e88..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 119 zcmeBv&dHp}z{n_-lUkOVlai$8R9TW*o>`pgoS$2eSd>_jU&PMD+H5MXm|2pVTde36 zUg;E=YEqKtADNTo=IF-A!~g~``I7MP;51j?T%X+XVzbC3LqHq)$ diff --git a/packs/helper-actors/000232.ldb b/packs/helper-actors/000005.ldb similarity index 89% rename from packs/helper-actors/000232.ldb rename to packs/helper-actors/000005.ldb index 1bf824ac68337a534253bf5eded5546cc33225c4..1854340d3270152ecf8d27dd24b51ffd29480545 100644 GIT binary patch delta 21 dcmcc4d!2WJ0wd!_MJYCxp3PzVC)=~l002$^2Q>fy delta 21 dcmcc4d!2WJ0we22MJYCx({E$-C)=~l002)Q2Ppsm diff --git a/packs/helper-actors/CURRENT b/packs/helper-actors/CURRENT index a224704..1a84852 100644 --- a/packs/helper-actors/CURRENT +++ b/packs/helper-actors/CURRENT @@ -1 +1 @@ -MANIFEST-000251 +MANIFEST-000002 diff --git a/packs/helper-actors/LOG b/packs/helper-actors/LOG index d1e5315..6b2cbd6 100644 --- a/packs/helper-actors/LOG +++ b/packs/helper-actors/LOG @@ -1,3 +1,5 @@ -2023/12/18-12:05:44.190837 7f21c2ffd700 Recovering log #249 -2023/12/18-12:05:44.212114 7f21c2ffd700 Delete type=3 #247 -2023/12/18-12:05:44.212136 7f21c2ffd700 Delete type=0 #249 +2023/12/18-15:37:14.322677 7f3e267fc700 Delete type=3 #1 +2023/12/18-15:37:14.324789 7f3e25ffb700 Level-0 table #5: started +2023/12/18-15:37:14.331866 7f3e25ffb700 Level-0 table #5: 1751 bytes OK +2023/12/18-15:37:14.340858 7f3e25ffb700 Delete type=0 #3 +2023/12/18-15:37:14.340981 7f3e25ffb700 Manual compaction at level-0 from '!actors!U5v4gFHquo0Y1SAq' @ 72057594037927935 : 1 .. '!actors!U5v4gFHquo0Y1SAq' @ 0 : 0; will stop at (end) diff --git a/packs/helper-actors/LOG.old b/packs/helper-actors/LOG.old deleted file mode 100644 index 6da71a4..0000000 --- a/packs/helper-actors/LOG.old +++ /dev/null @@ -1,8 +0,0 @@ -2023/12/17-21:54:41.321169 7fa92affd700 Recovering log #245 -2023/12/17-21:54:41.329240 7fa92affd700 Delete type=0 #245 -2023/12/17-21:54:41.329262 7fa92affd700 Delete type=3 #243 -2023/12/18-00:47:25.708908 7fa92a3f0700 Level-0 table #250: started -2023/12/18-00:47:25.709018 7fa92a3f0700 Level-0 table #250: 0 bytes OK -2023/12/18-00:47:25.717936 7fa92a3f0700 Delete type=0 #248 -2023/12/18-00:47:25.718070 7fa92a3f0700 Manual compaction at level-0 from '!actors!U5v4gFHquo0Y1SAq' @ 72057594037927935 : 1 .. '!actors!U5v4gFHquo0Y1SAq' @ 0 : 0; will stop at (end) -2023/12/18-00:47:25.733666 7fa92a3f0700 Manual compaction at level-1 from '!actors!U5v4gFHquo0Y1SAq' @ 72057594037927935 : 1 .. '!actors!U5v4gFHquo0Y1SAq' @ 0 : 0; will stop at (end) diff --git a/packs/helper-actors/MANIFEST-000002 b/packs/helper-actors/MANIFEST-000002 new file mode 100644 index 0000000000000000000000000000000000000000..e01a0798097e19c97d5b5d8f178a7a7f6fed5743 GIT binary patch literal 136 zcmWIhx#Ncn10$nUPHI_dPD+xVQ)NkNd1i5{bAE0?Vo_pAe$kRS-TOEg7@3$k8JJmE z7_18a#`y!eEI=+B3nM!d>vdiQ#l&Qw%3{S((=wBEH;=;7e1k~CV8=p6Mg}k-r~m-a C4F7&#f3|1z?$0su!r BGZO#+ diff --git a/packs/helper-macros/000005.ldb b/packs/helper-macros/000005.ldb new file mode 100644 index 0000000000000000000000000000000000000000..4738783851c8c0552e97233692527ef9a377f76f GIT binary patch literal 10218 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 literal 0 HcmV?d00001 diff --git a/packs/helper-macros/000373.ldb b/packs/helper-macros/000373.ldb deleted file mode 100644 index 1ac4bfa7f0fc8e533fbcf95e00d0f29b698ba0bd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 9006 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 diff --git a/packs/helper-macros/_source/Quick_Damage_Roll_NANSnFATVJntUfL7.json b/packs/helper-macros/_source/Quick_Damage_Roll_NANSnFATVJntUfL7.json new file mode 100644 index 0000000..ccfbc9a --- /dev/null +++ b/packs/helper-macros/_source/Quick_Damage_Roll_NANSnFATVJntUfL7.json @@ -0,0 +1,27 @@ +{ + "name": "Quick Damage Roll", + "type": "script", + "scope": "global", + "author": "sVoCvBU1knmXzoYe", + "img": "icons/sundries/gaming/dice-runed-brown.webp", + "command": "new Dialog({\n title: \"Damage Roll Configuration\",\n content: `\n

\n
\n \n \n
\n
\n \n \n
\n
\n \n \n
\n
\n `,\n buttons: {\n ok: {\n label: \"Roll Damage\",\n callback: (html) => {\n const damageRoll = html.find('input[name=\"damageRoll\"]').val();\n let flavor = html.find('input[name=\"flavor\"]').val();\n const ap = parseInt(html.find('input[name=\"ap\"]').val()) || 0;\n const options = {};\n if (ap > 0) {\n flavor = `${flavor ? flavor + \" - \" : \"\"}AP: ${ap}`\n options.ap = ap;\n }\n // Perform the damage roll and send the message\n new CONFIG.Dice.DamageRoll(damageRoll, null, options).toMessage({ flavor });\n },\n },\n cancel: {\n label: \"Cancel\",\n },\n },\n}).render(true);", + "folder": null, + "ownership": { + "default": 0, + "sVoCvBU1knmXzoYe": 3 + }, + "flags": { + "core": {} + }, + "_stats": { + "systemId": "swade", + "systemVersion": "3.2.5", + "coreVersion": "11.315", + "createdTime": 1702933790652, + "modifiedTime": 1702934856387, + "lastModifiedBy": "sVoCvBU1knmXzoYe" + }, + "_id": "NANSnFATVJntUfL7", + "sort": 0, + "_key": "!macros!NANSnFATVJntUfL7" +} diff --git a/packs/module-docs/000005.ldb b/packs/module-docs/000005.ldb new file mode 100644 index 0000000000000000000000000000000000000000..f77efe97dc7c169bbfc605ce77879f626b7adfdf GIT binary patch literal 9796 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 Px9YFkeppjj`1=0_iylR7 diff --git a/packs/module-docs/CURRENT b/packs/module-docs/CURRENT index de273b7..1a84852 100644 --- a/packs/module-docs/CURRENT +++ b/packs/module-docs/CURRENT @@ -1 +1 @@ -MANIFEST-000380 +MANIFEST-000002 diff --git a/packs/module-docs/LOG b/packs/module-docs/LOG index 66c2bdf..5e600ee 100644 --- a/packs/module-docs/LOG +++ b/packs/module-docs/LOG @@ -1,3 +1,5 @@ -2023/12/18-12:05:44.432285 7f8c15fbf700 Recovering log #377 -2023/12/18-12:05:44.452354 7f8c15fbf700 Delete type=3 #375 -2023/12/18-12:05:44.452375 7f8c15fbf700 Delete type=0 #377 +2023/12/18-15:37:20.266975 7f00037bf700 Delete type=3 #1 +2023/12/18-15:37:20.269045 7f0001542700 Level-0 table #5: started +2023/12/18-15:37:20.276064 7f0001542700 Level-0 table #5: 9796 bytes OK +2023/12/18-15:37:20.285028 7f0001542700 Delete type=0 #3 +2023/12/18-15:37:20.285119 7f0001542700 Manual compaction at level-0 from '!journal!HbtPlHNFO1L6RVj0' @ 72057594037927935 : 1 .. '!journal.pages!YSuk1v59tLaL9XUK.BlDoYgdTxhyCBP3Y' @ 0 : 0; will stop at (end) diff --git a/packs/module-docs/LOG.old b/packs/module-docs/LOG.old deleted file mode 100644 index 6449627..0000000 --- a/packs/module-docs/LOG.old +++ /dev/null @@ -1,15 +0,0 @@ -2023/12/17-21:54:41.293906 7fa92bfff700 Recovering log #373 -2023/12/17-21:54:41.301255 7fa92bfff700 Delete type=0 #373 -2023/12/17-21:54:41.301270 7fa92bfff700 Delete type=3 #371 -2023/12/18-00:47:25.674406 7fa92a3f0700 Level-0 table #378: started -2023/12/18-00:47:25.681673 7fa92a3f0700 Level-0 table #378: 1126 bytes OK -2023/12/18-00:47:25.690462 7fa92a3f0700 Delete type=0 #376 -2023/12/18-00:47:25.717980 7fa92a3f0700 Manual compaction at level-0 from '!journal!HbtPlHNFO1L6RVj0' @ 72057594037927935 : 1 .. '!journal.pages!YSuk1v59tLaL9XUK.BlDoYgdTxhyCBP3Y' @ 0 : 0; will stop at (end) -2023/12/18-00:47:25.718095 7fa92a3f0700 Manual compaction at level-1 from '!journal!HbtPlHNFO1L6RVj0' @ 72057594037927935 : 1 .. '!journal.pages!YSuk1v59tLaL9XUK.BlDoYgdTxhyCBP3Y' @ 0 : 0; will stop at '!journal.pages!YSuk1v59tLaL9XUK.BlDoYgdTxhyCBP3Y' @ 237 : 1 -2023/12/18-00:47:25.718101 7fa92a3f0700 Compacting 1@1 + 1@2 files -2023/12/18-00:47:25.724568 7fa92a3f0700 Generated table #379@1: 14 keys, 9134 bytes -2023/12/18-00:47:25.724576 7fa92a3f0700 Compacted 1@1 + 1@2 files => 9134 bytes -2023/12/18-00:47:25.733464 7fa92a3f0700 compacted to: files[ 0 0 1 0 0 0 0 ] -2023/12/18-00:47:25.733517 7fa92a3f0700 Delete type=2 #370 -2023/12/18-00:47:25.733560 7fa92a3f0700 Delete type=2 #378 -2023/12/18-00:47:25.733678 7fa92a3f0700 Manual compaction at level-1 from '!journal.pages!YSuk1v59tLaL9XUK.BlDoYgdTxhyCBP3Y' @ 237 : 1 .. '!journal.pages!YSuk1v59tLaL9XUK.BlDoYgdTxhyCBP3Y' @ 0 : 0; will stop at (end) diff --git a/packs/module-docs/MANIFEST-000002 b/packs/module-docs/MANIFEST-000002 new file mode 100644 index 0000000000000000000000000000000000000000..1d10c0a58efb5d98a758a6f24ff06c78621888a5 GIT binary patch literal 161 zcmWIhx#Ncn10$nUPHI_dPD+xVQ)NkNd1i5{bAE0?Vo_pAe$kRS-TOEg7@3$k8JJmE z7$%Bd(8&ODS%6$N7Jhan)+0WOidp%kMR|!iiXKTN0XZIiZvKWoWU|<1L xp;wTYo?5IJ8C;reSY~Qj;*;oO84>EO=al1;ADNyKQjt;V>=a-e$;c1U2mldAEXV)= literal 0 HcmV?d00001 diff --git a/packs/module-docs/MANIFEST-000380 b/packs/module-docs/MANIFEST-000380 deleted file mode 100644 index 0c67e6ee98be1864012f5e6292bd0b5790e94397..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 209 zcmbQ=D_gmPfss)vC$%g!CnZVGsj?)sJhM2}IX|}`u_&=5zlfF5LNP19v?wnzN3S3; zJ+)XdGPpF`u*}r5#3#|mG9uJl&nd?xKQcWfq#~oz*(ty{lJPAA7_c+_W?JX22-B|U tkyH|pThe Quick Damage Roll macro will a dialog to configure a damage roll, with its chat card and Apply Damage button, for cases where it's not worth creating an actor, token, and action for a single roll.

" + }, + "video": { + "controls": true, + "volume": 0.5 + }, + "src": null, + "system": {}, + "ownership": { + "default": -1, + "sVoCvBU1knmXzoYe": 3 + }, + "flags": { + "core": { + "sourceId": "Compendium.swade-mb-helpers.module-docs.JournalEntry.Mw1g2Fx5dp4SoqVP.JournalEntryPage.8OcZYeZTJWqJpeBs" + } + }, + "_stats": { + "systemId": "swade", + "systemVersion": "3.2.5", + "coreVersion": "11.315", + "createdTime": 1702934117575, + "modifiedTime": 1702934796555, + "lastModifiedBy": "sVoCvBU1knmXzoYe" + }, + "_id": "ruuxf72hwlcRzymt", + "_key": "!journal.pages!Mw1g2Fx5dp4SoqVP.ruuxf72hwlcRzymt" } ], "flags": { @@ -187,7 +226,7 @@ "systemVersion": "3.2.5", "coreVersion": "11.315", "createdTime": 1678169291843, - "modifiedTime": 1702859968781, + "modifiedTime": 1702934832358, "lastModifiedBy": "sVoCvBU1knmXzoYe" }, "_id": "Mw1g2Fx5dp4SoqVP",