From 54da536518909d8fe405556bf5d54705050967eb Mon Sep 17 00:00:00 2001 From: Mike Bloy Date: Sun, 17 Dec 2023 09:33:05 -0600 Subject: [PATCH 1/9] untested addition to shape change and summon --- scripts/powerEffects.js | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/scripts/powerEffects.js b/scripts/powerEffects.js index 9765507..f86d1c0 100644 --- a/scripts/powerEffects.js +++ b/scripts/powerEffects.js @@ -822,7 +822,10 @@ class ShapeChangeEffect extends TargetedPowerEffect { actorLink: false, name: `${this.targets[0].name} (${this.protoDoc.name} form) `, elevation: this.targets[0].document.elevation, - disposition: this.targets[0].document.disposition + disposition: this.targets[0].document.disposition, + sight: { + enabled: true + } }, embedded: { ActiveEffect: {}, Item: {} } } @@ -1098,7 +1101,11 @@ class SummonEffect extends PowerEffect { }, token: { actorLink: false, - name: `${this.token.name}'s ${this.protoDoc.name}` + name: `${this.token.name}'s ${this.protoDoc.name}`, + disposition: this.token.document.disposition, + sight: { + enabled: true + } }, embedded: { ActiveEffect: {}, Item: {} } } From af70593334b12508c9df9a23d5b1207bff15d0f0 Mon Sep 17 00:00:00 2001 From: Mike Bloy Date: Sun, 17 Dec 2023 17:57:43 -0600 Subject: [PATCH 2/9] add zombie to power effects --- scripts/powerEffects.js | 160 +++++++++++++++++++++++++++++++++++++++- 1 file changed, 159 insertions(+), 1 deletion(-) diff --git a/scripts/powerEffects.js b/scripts/powerEffects.js index f86d1c0..0bb816d 100644 --- a/scripts/powerEffects.js +++ b/scripts/powerEffects.js @@ -1036,6 +1036,7 @@ class SummonEffect extends PowerEffect { async prepMenu () { this.menuData.inputs[1].label = `${this.token.name} is summoning...` + this.menuData.buttons = this.menuData.buttons.filter(b => b.value !== 'raise') const actors = await this.prepActors() if (Object.keys(actors).length < 1) { shim.notifications.error('No summonables found') @@ -1196,6 +1197,11 @@ class SummonAllyEffect extends SummonEffect { async prepMenu () { await super.prepMenu() + this.menuData.buttons = [ + this.menuData.buttons[0], + { label: 'Apply with Raise', value: 'raise' }, + this.menuData.buttons[1] + ] this.menuData.inputs = this.menuData.inputs.concat([ { type: 'checkbox', @@ -1374,6 +1380,158 @@ class SummonUndeadEffect extends SummonEffect { } } +class ZombieEffect extends SummonEffect { + get name () { + return 'Zombie' + } + + async prepMenu () { + await super.prepMenu() + this.menuData.buttons = [ + this.menuData.buttons[0], + { label: 'Apply with Raise', value: 'raise' }, + this.menuData.buttons[1] + ] + this.menuData.inputs.pop() + this.menuData.inputs = this.menuData.inputs.concat([ + { + type: 'checkbox', + label: 'Armed (Hand Weapon (Str+d6) or Ranged Weapon (2d6)', + options: false + }, { + type: 'checkbox', + label: '+2 Armor', + options: false + }, { + type: 'info', + label: 'Skeletal creatures +1 per zombie' + } + ]) + } + + async prepResult () { + this.raise = (this.buttons === 'raise') + this.actorId = this.inputs[this.inputIndex] + this.number = this.inputs[this.inputIndex + 1] + this.actor = shim.actors.get(this.actorId) + this.icon = this.actor.prototypeToken.texture.src + this.protoDoc = await this.actor.getTokenDocument() + this.increasedTrait = this.raise + this.armed = this.inputs[this.inputIndex + 2] + this.armor = this.inputs[this.inputIndex + 3] + this.spawnOptions = { + controllingActor: this.token.actor, + duplicates: this.number, + updateOpts: { + embedded: { + Item: { renderSheet: null } + } + }, + crosshairs: { + icon: this.icon, + label: `Summon ${this.actor.name}`, + drawOutline: true, + rememberControlled: true + } + } + this.spawnMutation = { + actor: { + name: `${this.token.name}'s ${this.actor.name}` + }, + token: { + actorLink: false, + name: `${this.token.name}'s ${this.protoDoc.name}`, + disposition: this.token.document.disposition, + sight: { enabled: true } + }, + embedded: { ActiveEffect: {}, Item: {} } + } + if (this.armed && ('armed_template' in this.summonableActors)) { + const armedTemplate = this.summonableActors.armed_template + for (const item of armedTemplate.items) { + const itemDoc = await armedTemplate.getEmbeddedDocument('Item', item.id) + this.spawnMutation.embedded.Item[item.name] = itemDoc + } + } + if (this.armor) { + const effectDoc = shim.createEffectDocument( + 'icons/equipment/chest/breastplate-layered-leather-stitched.webp', + 'Rotting Armor', + 0) + delete effectDoc.duration + delete effectDoc.flags.swade.expiration + effectDoc.changes = [{ + key: 'system.stats.toughness.armor', + mode: CONST.FOUNDRY.ACTIVE_EFFECT_MODES.ADD, + value: '+2', + priority: 0 + }] + this.spawnMutation.embedded.ActiveEffect[effectDoc.name] = effectDoc + } + for (const effectDocument of this.effectDocs) { + this.spawnMutation.embedded.ActiveEffect[effectDocument.name] = effectDocument + } + } + + async prepAdditional () { + if (!this.increasedTrait) { + return + } + const traitMenuOptions = { + title: `${this.name} Raise Trait Increase`, + defaultButton: 'Cancel', + options: {} + } + const skillSet = new Set() + for (const skill of this.actor.items.filter(i => i.type === 'skill')) { + skillSet.add(skill.name) + } + for (const item of Object.values(this.spawnMutation.embedded.Item).filter(i => i.type === 'skill')) { + skillSet.add(item.name) + } + const skillList = Array.from(skillSet) + const attrList = ['Agility', 'Smarts', 'Spirit', 'Strength', 'Vigor'] + skillList.sort() + const traitMenuData = { + inputs: [ + { type: 'header', label: 'Raise! Increase an attribute' } + ], + buttons: [ + { label: 'Apply', value: 'apply' }, + { label: 'Increase no traits', value: 'cancel' } + ] + } + traitMenuData.inputs = traitMenuData.inputs.concat( + attrList.map((x) => { return { type: 'radio', label: x, options: ['trait', false] } })) + traitMenuData.inputs.push({ type: 'header', label: 'Increase Skills (+1 each)' }) + traitMenuData.inputs = traitMenuData.inputs.concat( + skillList.map((x) => { return { type: 'radio', label: x, options: ['trait', false] } })) + const { buttons, inputs } = await shim.warpgateMenu(traitMenuData, traitMenuOptions) + if (!buttons || buttons === 'cancel') { + return + } + const modKeys = [] + for (let i = 0; i < attrList.length; i++) { + if (inputs[i + 1]) { + modKeys.push(`system.attributes.${attrList[i].toLowerCase()}.die.sides`) + } + } + for (let i = 0; i < skillList.length; i++) { + if (inputs[i + 7]) { + modKeys.push(`@Skill{${skillList[i]}}[system.die.sides]`) + } + } + const effectDoc = shim.createEffectDocument( + this.ICON, 'Increased Trait', this.durationRounds) + effectDoc.changes = modKeys.map(key => { + return { + key, mode: CONST.FOUNDRY.ACTIVE_EFFECT_MODES.ADD, value: '+2', priority: 0 + } + }) + this.spawnMutation.embedded.ActiveEffect[effectDoc.name] = effectDoc + } +} + const PowerClasses = { 'arcane protection': ArcaneProtectionEffect, 'arcane-protection': ArcaneProtectionEffect, @@ -1422,7 +1580,7 @@ const PowerClasses = { 'summon-planar-ally': SummonPlanarAllyEffect, 'summon undead': SummonUndeadEffect, 'summon-undead': SummonUndeadEffect, - zombie: SummonUndeadEffect + zombie: ZombieEffect } export async function powerEffects (options = {}) { From 8f7881051b3b674e532b62d1163402729860c2d7 Mon Sep 17 00:00:00 2001 From: Mike Bloy Date: Sun, 17 Dec 2023 18:44:22 -0600 Subject: [PATCH 3/9] added docs for zombie --- .gitignore | 1 + packs/common-actions/000215.ldb | Bin 11463 -> 0 bytes packs/common-actions/000335.ldb | Bin 0 -> 11404 bytes packs/common-actions/CURRENT | 2 +- packs/common-actions/LOG | 23 ++++++------------ packs/common-actions/LOG.old | 16 ++++++------ packs/common-actions/MANIFEST-000211 | Bin 379 -> 0 bytes packs/common-actions/MANIFEST-000348 | Bin 0 -> 211 bytes packs/gear/{000069.ldb => 000156.ldb} | Bin 6792 -> 6787 bytes packs/gear/CURRENT | 2 +- packs/gear/LOG | 16 ++++++------ packs/gear/LOG.old | 16 ++++++------ packs/gear/MANIFEST-000102 | Bin 168 -> 0 bytes packs/gear/MANIFEST-000169 | Bin 0 -> 207 bytes .../helper-actors/{000068.ldb => 000232.ldb} | Bin 1737 -> 1751 bytes packs/helper-actors/CURRENT | 2 +- packs/helper-actors/LOG | 16 ++++++------ packs/helper-actors/LOG.old | 16 ++++++------ packs/helper-actors/MANIFEST-000109 | Bin 171 -> 0 bytes packs/helper-actors/MANIFEST-000243 | Bin 0 -> 211 bytes .../helper-macros/{000223.ldb => 000373.ldb} | Bin 7922 -> 9006 bytes packs/helper-macros/CURRENT | 2 +- packs/helper-macros/LOG | 16 ++++++------ packs/helper-macros/LOG.old | 23 ++++++++++++------ packs/helper-macros/MANIFEST-000240 | Bin 177 -> 0 bytes packs/helper-macros/MANIFEST-000374 | Bin 0 -> 177 bytes packs/module-docs/000221.ldb | Bin 8028 -> 0 bytes packs/module-docs/000370.ldb | Bin 0 -> 8535 bytes packs/module-docs/CURRENT | 2 +- packs/module-docs/LOG | 16 ++++++------ packs/module-docs/LOG.old | 23 ++++++++++++------ packs/module-docs/MANIFEST-000238 | Bin 227 -> 0 bytes packs/module-docs/MANIFEST-000371 | Bin 0 -> 227 bytes 33 files changed, 100 insertions(+), 92 deletions(-) delete mode 100644 packs/common-actions/000215.ldb create mode 100644 packs/common-actions/000335.ldb delete mode 100644 packs/common-actions/MANIFEST-000211 create mode 100644 packs/common-actions/MANIFEST-000348 rename packs/gear/{000069.ldb => 000156.ldb} (66%) delete mode 100644 packs/gear/MANIFEST-000102 create mode 100644 packs/gear/MANIFEST-000169 rename packs/helper-actors/{000068.ldb => 000232.ldb} (78%) delete mode 100644 packs/helper-actors/MANIFEST-000109 create mode 100644 packs/helper-actors/MANIFEST-000243 rename packs/helper-macros/{000223.ldb => 000373.ldb} (73%) delete mode 100644 packs/helper-macros/MANIFEST-000240 create mode 100644 packs/helper-macros/MANIFEST-000374 delete mode 100644 packs/module-docs/000221.ldb create mode 100644 packs/module-docs/000370.ldb delete mode 100644 packs/module-docs/MANIFEST-000238 create mode 100644 packs/module-docs/MANIFEST-000371 diff --git a/.gitignore b/.gitignore index a001aa5..26ad8fc 100644 --- a/.gitignore +++ b/.gitignore @@ -130,3 +130,4 @@ dist .yarn/install-state.gz .pnp.* swade-mb-helpers.lock +_source diff --git a/packs/common-actions/000215.ldb b/packs/common-actions/000215.ldb deleted file mode 100644 index 7400b24ec5fb65ba9665acc6a0533d16c3b4460c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 11463 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 diff --git a/packs/common-actions/000335.ldb b/packs/common-actions/000335.ldb new file mode 100644 index 0000000000000000000000000000000000000000..b3636281bd562045753ed27228f7f0cf1cad1114 GIT binary patch literal 11404 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 NeRA#Ys^q#~{eS!u_`U!D literal 0 HcmV?d00001 diff --git a/packs/common-actions/CURRENT b/packs/common-actions/CURRENT index 12fd282..549acb4 100644 --- a/packs/common-actions/CURRENT +++ b/packs/common-actions/CURRENT @@ -1 +1 @@ -MANIFEST-000211 +MANIFEST-000348 diff --git a/packs/common-actions/LOG b/packs/common-actions/LOG index c1deeb5..c0cb70e 100644 --- a/packs/common-actions/LOG +++ b/packs/common-actions/LOG @@ -1,15 +1,8 @@ -2023/11/20-21:06:40.386610 7f1f87fff640 Recovering log #209 -2023/11/20-21:06:40.392165 7f1f87fff640 Delete type=0 #209 -2023/11/20-21:06:40.392245 7f1f87fff640 Delete type=3 #207 -2023/11/20-21:52:53.117342 7f1f7fab1640 Level-0 table #214: started -2023/11/20-21:52:53.119155 7f1f7fab1640 Level-0 table #214: 1361 bytes OK -2023/11/20-21:52:53.120662 7f1f7fab1640 Delete type=0 #212 -2023/11/20-21:52:53.122863 7f1f7fab1640 Manual compaction at level-0 from '!folders!0nDRFmMBs5DBJU9M' @ 72057594037927935 : 1 .. '!items!xA7qKMmugJv7z6j1' @ 0 : 0; will stop at (end) -2023/11/20-21:52:53.123064 7f1f7fab1640 Manual compaction at level-1 from '!folders!0nDRFmMBs5DBJU9M' @ 72057594037927935 : 1 .. '!items!xA7qKMmugJv7z6j1' @ 0 : 0; will stop at '!items!6fkUnnyILsETRfjI' @ 267 : 1 -2023/11/20-21:52:53.123073 7f1f7fab1640 Compacting 1@1 + 1@2 files -2023/11/20-21:52:53.125481 7f1f7fab1640 Generated table #215@1: 23 keys, 11463 bytes -2023/11/20-21:52:53.125500 7f1f7fab1640 Compacted 1@1 + 1@2 files => 11463 bytes -2023/11/20-21:52:53.126584 7f1f7fab1640 compacted to: files[ 0 0 1 0 0 0 0 ] -2023/11/20-21:52:53.126649 7f1f7fab1640 Delete type=2 #214 -2023/11/20-21:52:53.126731 7f1f7fab1640 Delete type=2 #194 -2023/11/20-21:52:53.130970 7f1f7fab1640 Manual compaction at level-1 from '!items!6fkUnnyILsETRfjI' @ 267 : 1 .. '!items!xA7qKMmugJv7z6j1' @ 0 : 0; will stop at (end) +2023/12/17-18:42:00.638841 7fe10effd700 Recovering log #346 +2023/12/17-18:42:00.646294 7fe10effd700 Delete type=0 #346 +2023/12/17-18:42:00.646313 7fe10effd700 Delete type=3 #344 +2023/12/17-18:43:13.346528 7fe10daa2700 Level-0 table #351: started +2023/12/17-18:43:13.346543 7fe10daa2700 Level-0 table #351: 0 bytes OK +2023/12/17-18:43:13.349468 7fe10daa2700 Delete type=0 #349 +2023/12/17-18:43:13.349582 7fe10daa2700 Manual compaction at level-0 from '!folders!0nDRFmMBs5DBJU9M' @ 72057594037927935 : 1 .. '!items!xA7qKMmugJv7z6j1' @ 0 : 0; will stop at (end) +2023/12/17-18:43:13.352774 7fe10daa2700 Manual compaction at level-1 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 index 8cfcbe5..9a27341 100644 --- a/packs/common-actions/LOG.old +++ b/packs/common-actions/LOG.old @@ -1,8 +1,8 @@ -2023/11/19-23:28:00.231858 7f1f877fe640 Recovering log #205 -2023/11/19-23:28:00.235312 7f1f877fe640 Delete type=0 #205 -2023/11/19-23:28:00.235339 7f1f877fe640 Delete type=3 #203 -2023/11/19-23:53:02.984028 7f1f7fab1640 Level-0 table #210: started -2023/11/19-23:53:02.984051 7f1f7fab1640 Level-0 table #210: 0 bytes OK -2023/11/19-23:53:02.985426 7f1f7fab1640 Delete type=0 #208 -2023/11/19-23:53:02.987037 7f1f7fab1640 Manual compaction at level-0 from '!folders!0nDRFmMBs5DBJU9M' @ 72057594037927935 : 1 .. '!items!xA7qKMmugJv7z6j1' @ 0 : 0; will stop at (end) -2023/11/19-23:53:02.987301 7f1f7fab1640 Manual compaction at level-1 from '!folders!0nDRFmMBs5DBJU9M' @ 72057594037927935 : 1 .. '!items!xA7qKMmugJv7z6j1' @ 0 : 0; will stop at (end) +2023/12/17-18:28:35.306573 7fe10f7fe700 Recovering log #342 +2023/12/17-18:28:35.314253 7fe10f7fe700 Delete type=0 #342 +2023/12/17-18:28:35.314270 7fe10f7fe700 Delete type=3 #340 +2023/12/17-18:41:54.039511 7fe10daa2700 Level-0 table #347: started +2023/12/17-18:41:54.039529 7fe10daa2700 Level-0 table #347: 0 bytes OK +2023/12/17-18:41:54.043395 7fe10daa2700 Delete type=0 #345 +2023/12/17-18:41:54.046395 7fe10daa2700 Manual compaction at level-0 from '!folders!0nDRFmMBs5DBJU9M' @ 72057594037927935 : 1 .. '!items!xA7qKMmugJv7z6j1' @ 0 : 0; will stop at (end) +2023/12/17-18:41:54.052308 7fe10daa2700 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-000211 b/packs/common-actions/MANIFEST-000211 deleted file mode 100644 index 23b580b850248c3e02f60ea0d5aa13496ede5e6a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 379 zcmbOt{fVuOfss)vC$%g!CnZVGsj?)sJhM2}IX|}`u_&=5zlfDlUNN&IHMdx?!qL3Y z+c&o~-K)&J$}G!}k&}@D1lXAlG0u)uR7}gyNl7g#Ry4?S33AKzbt*P>aqRpBcg2o$*r61mRE(#^!qc#ZKQ7tAEHwCvEl zyh=}>V%LzMv@B0XZitHr$(t|a|5FPy_XfyZgfDTK$p*BU4d_#Lrt6Hyso+}xGbLk6 diff --git a/packs/common-actions/MANIFEST-000348 b/packs/common-actions/MANIFEST-000348 new file mode 100644 index 0000000000000000000000000000000000000000..318f36c3a0cf77d1531c28421f72c855b717befe GIT binary patch literal 211 zcmeB4?cKkEfss)vC$%g!CnZVGsj?)sJhM2}IX|}`u_&=5zlfDVUNN&IHMdx?!qL3Y z+c&o~-K)&J$}G!}(VdY21XvjfsbFV1&(ssCsF;?Ylag9gtZ0zu66BWa>r`y&;^Y-- r>C4CrHi)22ya^hX+zgCNcbPaDnC~&M9A|oJ@bn-^x literal 0 HcmV?d00001 diff --git a/packs/gear/000069.ldb b/packs/gear/000156.ldb similarity index 66% rename from packs/gear/000069.ldb rename to packs/gear/000156.ldb index 0f0c6ced937a6d641d837df72b1d895581600dbf..1a2b5a85bb1a95d8a094d829e182e7d011fa8817 100644 GIT binary patch delta 259 zcmeA$Z8n`C&nUA|VImu!sge$>gQS>%p`o6!A?xG=Y_j}6aU}R;{RA7|bypuzSi7hqJK%qQi^F^-79E{H<=L$=(q^ya|ncOKX4^**I zcm}IG&}gOP{GwF2>EZ`_c~VnCG9T_XFf_9?Gq*G`v@kceFqv8?D4T(7rH)cgVsVLY zeoAIqX6od2NlTVV56`$yJ|gKWu-{mj0SFjD#4R6z+R2JiBAWly7&uv!82>{+v-)-( ekhB;OGl3X3Qrv#ejSc3Q7)?%;lAl~F#SH)>+DFp> delta 313 zcmZoR?J%7n&nUc6VImv9k&+IpgQS>26QQ-Kl&`CS5vnI);Y#fl~2;lXLHzPUcR<;7-^NrsG~n->euU=;zn zMkzVJC{j8I?xsFm!VsVLYeoEscmdQ<$mMmAd{0W`BU((n2 zh_N!vRt7`E{dNoj%upLM8UI57LyI~CCyNq{+o`^d2c$&|h?zhPp|y)L-WVG!G%=c- UC?z$yK#GGS{C7jQN~!y80FrQCLI3~& diff --git a/packs/gear/CURRENT b/packs/gear/CURRENT index e333c89..b0fe36e 100644 --- a/packs/gear/CURRENT +++ b/packs/gear/CURRENT @@ -1 +1 @@ -MANIFEST-000102 +MANIFEST-000169 diff --git a/packs/gear/LOG b/packs/gear/LOG index 9e094c1..3bfe9c3 100644 --- a/packs/gear/LOG +++ b/packs/gear/LOG @@ -1,8 +1,8 @@ -2023/11/20-21:06:40.409700 7f1f87fff640 Recovering log #100 -2023/11/20-21:06:40.414561 7f1f87fff640 Delete type=3 #98 -2023/11/20-21:06:40.414639 7f1f87fff640 Delete type=0 #100 -2023/11/20-21:52:53.126794 7f1f7fab1640 Level-0 table #105: started -2023/11/20-21:52:53.126822 7f1f7fab1640 Level-0 table #105: 0 bytes OK -2023/11/20-21:52:53.127902 7f1f7fab1640 Delete type=0 #103 -2023/11/20-21:52:53.130985 7f1f7fab1640 Manual compaction at level-0 from '!items!JWyBQe4tnOYljFAF' @ 72057594037927935 : 1 .. '!items!tWWSfEMmLmws6Yb1' @ 0 : 0; will stop at (end) -2023/11/20-21:52:53.131222 7f1f7fab1640 Manual compaction at level-1 from '!items!JWyBQe4tnOYljFAF' @ 72057594037927935 : 1 .. '!items!tWWSfEMmLmws6Yb1' @ 0 : 0; will stop at (end) +2023/12/17-18:42:00.658910 7fe10effd700 Recovering log #167 +2023/12/17-18:42:00.666210 7fe10effd700 Delete type=0 #167 +2023/12/17-18:42:00.666226 7fe10effd700 Delete type=3 #165 +2023/12/17-18:43:13.352802 7fe10daa2700 Level-0 table #172: started +2023/12/17-18:43:13.352816 7fe10daa2700 Level-0 table #172: 0 bytes OK +2023/12/17-18:43:13.355850 7fe10daa2700 Delete type=0 #170 +2023/12/17-18:43:13.362569 7fe10daa2700 Manual compaction at level-0 from '!items!JWyBQe4tnOYljFAF' @ 72057594037927935 : 1 .. '!items!tWWSfEMmLmws6Yb1' @ 0 : 0; will stop at (end) +2023/12/17-18:43:13.362683 7fe10daa2700 Manual compaction at level-1 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 index 2218deb..7d5235a 100644 --- a/packs/gear/LOG.old +++ b/packs/gear/LOG.old @@ -1,8 +1,8 @@ -2023/11/19-23:28:00.254245 7f1f877fe640 Recovering log #96 -2023/11/19-23:28:00.258969 7f1f877fe640 Delete type=3 #94 -2023/11/19-23:28:00.259068 7f1f877fe640 Delete type=0 #96 -2023/11/19-23:53:02.987311 7f1f7fab1640 Level-0 table #101: started -2023/11/19-23:53:02.987354 7f1f7fab1640 Level-0 table #101: 0 bytes OK -2023/11/19-23:53:02.989583 7f1f7fab1640 Delete type=0 #99 -2023/11/19-23:53:02.994695 7f1f7fab1640 Manual compaction at level-0 from '!items!JWyBQe4tnOYljFAF' @ 72057594037927935 : 1 .. '!items!tWWSfEMmLmws6Yb1' @ 0 : 0; will stop at (end) -2023/11/19-23:53:02.997387 7f1f7fab1640 Manual compaction at level-1 from '!items!JWyBQe4tnOYljFAF' @ 72057594037927935 : 1 .. '!items!tWWSfEMmLmws6Yb1' @ 0 : 0; will stop at (end) +2023/12/17-18:28:35.326168 7fe10f7fe700 Recovering log #163 +2023/12/17-18:28:35.339353 7fe10f7fe700 Delete type=3 #161 +2023/12/17-18:28:35.339377 7fe10f7fe700 Delete type=0 #163 +2023/12/17-18:41:54.052337 7fe10daa2700 Level-0 table #168: started +2023/12/17-18:41:54.052358 7fe10daa2700 Level-0 table #168: 0 bytes OK +2023/12/17-18:41:54.056397 7fe10daa2700 Delete type=0 #166 +2023/12/17-18:41:54.062403 7fe10daa2700 Manual compaction at level-0 from '!items!JWyBQe4tnOYljFAF' @ 72057594037927935 : 1 .. '!items!tWWSfEMmLmws6Yb1' @ 0 : 0; will stop at (end) +2023/12/17-18:41:54.065904 7fe10daa2700 Manual compaction at level-1 from '!items!JWyBQe4tnOYljFAF' @ 72057594037927935 : 1 .. '!items!tWWSfEMmLmws6Yb1' @ 0 : 0; will stop at (end) diff --git a/packs/gear/MANIFEST-000102 b/packs/gear/MANIFEST-000102 deleted file mode 100644 index abbfc24eda250265f21a600deecf279e089e313e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 168 zcmdmCD{;7)fss)vC$%g!CnZVGsj?)sJhM2}IX|}`u_&=5zlfDlUNN&IHMdx?Bs@Gg z&DA&8C%3%VEHcTEQIr7;*qK~AOks+=!YiEuQ%y?p{3CO++#KB)g&~Sy^0*9HrSMeeCIN!P{ZuJ+=#0D z$W*1;S_U9s1mV+fWA!H+ve_8z=MjPlGQ6){o5jG%ti<>q0vLAjAmlWz@m=FF=;jrl TypTAPIl*J_mq&c^MmD+02iRC9pJ(F$ E0A%4UdH?_b diff --git a/packs/helper-actors/CURRENT b/packs/helper-actors/CURRENT index 8d5e72e..7635e11 100644 --- a/packs/helper-actors/CURRENT +++ b/packs/helper-actors/CURRENT @@ -1 +1 @@ -MANIFEST-000109 +MANIFEST-000243 diff --git a/packs/helper-actors/LOG b/packs/helper-actors/LOG index 378bdd2..bcb2a85 100644 --- a/packs/helper-actors/LOG +++ b/packs/helper-actors/LOG @@ -1,8 +1,8 @@ -2023/11/20-21:06:40.400000 7f1f8cafa640 Recovering log #107 -2023/11/20-21:06:40.405266 7f1f8cafa640 Delete type=3 #105 -2023/11/20-21:06:40.405349 7f1f8cafa640 Delete type=0 #107 -2023/11/20-21:52:53.120803 7f1f7fab1640 Level-0 table #112: started -2023/11/20-21:52:53.120825 7f1f7fab1640 Level-0 table #112: 0 bytes OK -2023/11/20-21:52:53.122805 7f1f7fab1640 Delete type=0 #110 -2023/11/20-21:52:53.122942 7f1f7fab1640 Manual compaction at level-0 from '!actors!U5v4gFHquo0Y1SAq' @ 72057594037927935 : 1 .. '!actors!U5v4gFHquo0Y1SAq' @ 0 : 0; will stop at (end) -2023/11/20-21:52:53.122987 7f1f7fab1640 Manual compaction at level-1 from '!actors!U5v4gFHquo0Y1SAq' @ 72057594037927935 : 1 .. '!actors!U5v4gFHquo0Y1SAq' @ 0 : 0; will stop at (end) +2023/12/17-18:42:00.648307 7fe10e7fc700 Recovering log #241 +2023/12/17-18:42:00.656761 7fe10e7fc700 Delete type=0 #241 +2023/12/17-18:42:00.656790 7fe10e7fc700 Delete type=3 #239 +2023/12/17-18:43:13.349651 7fe10daa2700 Level-0 table #246: started +2023/12/17-18:43:13.349665 7fe10daa2700 Level-0 table #246: 0 bytes OK +2023/12/17-18:43:13.352736 7fe10daa2700 Delete type=0 #244 +2023/12/17-18:43:13.359504 7fe10daa2700 Manual compaction at level-0 from '!actors!U5v4gFHquo0Y1SAq' @ 72057594037927935 : 1 .. '!actors!U5v4gFHquo0Y1SAq' @ 0 : 0; will stop at (end) +2023/12/17-18:43:13.362629 7fe10daa2700 Manual compaction at level-1 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 index 068b571..1ebe3ef 100644 --- a/packs/helper-actors/LOG.old +++ b/packs/helper-actors/LOG.old @@ -1,8 +1,8 @@ -2023/11/19-23:28:00.240421 7f1f86ffd640 Recovering log #103 -2023/11/19-23:28:00.246181 7f1f86ffd640 Delete type=0 #103 -2023/11/19-23:28:00.246268 7f1f86ffd640 Delete type=3 #101 -2023/11/19-23:53:02.985473 7f1f7fab1640 Level-0 table #108: started -2023/11/19-23:53:02.985488 7f1f7fab1640 Level-0 table #108: 0 bytes OK -2023/11/19-23:53:02.987004 7f1f7fab1640 Delete type=0 #106 -2023/11/19-23:53:02.987267 7f1f7fab1640 Manual compaction at level-0 from '!actors!U5v4gFHquo0Y1SAq' @ 72057594037927935 : 1 .. '!actors!U5v4gFHquo0Y1SAq' @ 0 : 0; will stop at (end) -2023/11/19-23:53:02.992459 7f1f7fab1640 Manual compaction at level-1 from '!actors!U5v4gFHquo0Y1SAq' @ 72057594037927935 : 1 .. '!actors!U5v4gFHquo0Y1SAq' @ 0 : 0; will stop at (end) +2023/12/17-18:28:35.316270 7fe10effd700 Recovering log #237 +2023/12/17-18:28:35.323541 7fe10effd700 Delete type=0 #237 +2023/12/17-18:28:35.323557 7fe10effd700 Delete type=3 #235 +2023/12/17-18:41:54.043433 7fe10daa2700 Level-0 table #242: started +2023/12/17-18:41:54.043450 7fe10daa2700 Level-0 table #242: 0 bytes OK +2023/12/17-18:41:54.046299 7fe10daa2700 Delete type=0 #240 +2023/12/17-18:41:54.046420 7fe10daa2700 Manual compaction at level-0 from '!actors!U5v4gFHquo0Y1SAq' @ 72057594037927935 : 1 .. '!actors!U5v4gFHquo0Y1SAq' @ 0 : 0; will stop at (end) +2023/12/17-18:41:54.052278 7fe10daa2700 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-000109 b/packs/helper-actors/MANIFEST-000109 deleted file mode 100644 index 6bd5ecd7fba54187e562fad7dc9d755cc362cf83..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 171 zcmZ2D^)YuF10$nUPHI_dPD+xVQ)NkNd1i5{bAE0?Vo_pAei199f?{GakWs7{YFcKJ z?&eWgnr{$k80=Wc$ix5!>`X2vc?qf_s6gspZv_VfBU2tH19LtL)66?-+d=PIEvEng diff --git a/packs/helper-actors/MANIFEST-000243 b/packs/helper-actors/MANIFEST-000243 new file mode 100644 index 0000000000000000000000000000000000000000..3b57f4fe401980ec4b9d2c520ec18341f04341bf GIT binary patch literal 211 zcmebDI1{#tfss)vC$%g!CnZVGsj?)sJhM2}IX|}`u_&=5zlfDVK`}8I$S76}H7zqq zck?JL%{PcN40bGJWMu#YRz`wK*qL51UgssKjGzM9H$I_U42(=)7&#f3zcRA0o@=`O N8zk@*B=8+5008jqID7yA literal 0 HcmV?d00001 diff --git a/packs/helper-macros/000223.ldb b/packs/helper-macros/000373.ldb similarity index 73% rename from packs/helper-macros/000223.ldb rename to packs/helper-macros/000373.ldb index 451ea8ef8f846aa053c938f3b9d0f954f007d8e3..1ac4bfa7f0fc8e533fbcf95e00d0f29b698ba0bd 100644 GIT binary patch delta 1884 zcmXX{du&@*89(Rt-o|d@;Dn@!wKzL=li7jm>+5H1(|EDtICV)pmc)59S=Vd(*tyMp zxc5;f&4M>nO0$OFMr)2eJ+1`pp~oK;89qzi%SiXzXSRTnU^73C^% z6-%n3`*l+(Ya-VDRY4Y&s=rM3@YMuS^VOF{1N*8P#tK)*#Ts!esj^IpL!9?~4WwDG zz;E5oYN|Y=u3$w+!>D=Vp~1A4Pl47YWl4coVg@oaK{WCt8KU+KLf{GZ0?W)=jp?1y zS42tjAip1}8uAE+p@~J)fW8aOl*JKPUs4c~Fp1E9-J8-hVU4Shy}Zm#-qf+i8G=^D zhCWF07AweWFwOIpseSOSxA~ss;o(Udp~1)cWvrMP!4S}}b=QlKsMJhDPoPD}LP)Qp z)bUILc|@h6dRQb0MJy%I$;tE0xYgN6T^||bPN|~eB|6XG#!0lncAaRq0u-$RNB6NB z00LZo+zK|B1~}Osa4xn_bt6&g-ogf*s+>b1%tV7q#jt00M6HCN3P*v z1pj4@2j8G_H+obFbCO!MeQE6P)^}Y|JINUh+rA07+`IH*ka-a72d>xCUI0P~FL>dx zF$K1|9(81GqfFm3-*)s(PP+;Nk1%&>RbsBdJAm){v+WC8PI$skFRllEW%I*wp~coo zqYdT<^4mbmhZx`$Hv!9p;0@~mYu;v92A33ObPGP^9VBg9QKd50+zG{$B-X9g6|CvY zV$GdccTcX{-3gv`r&Ifz=RSuTz51GNU^!R5`SjL*Xg6#7{Kzb^CXA3K4{_v}yIE$$ zamXGBaG?Ox-K&u+0+(mRJIs;55YLB0d?XwTM1!nb7Juz<9tp;xJRb>0VneK35_Chp zXDO%G;4?|s0)GfZcsco03;aG!&gRGS8c21l@(mzAyV1he)H>G2Disn|_r7|0EDP91>h@a|T2E}h4a`puFb{A2 zgS4n;3c^;;lCr@)NgZ)7=Zf0gYBiu_Ok;Gq-u4sAu1vitQhH?3WWeVtRob^J}eCTjvSE7gnCCa%|DBe3qZ=So_O?iig;_+yN55}%_*=qwWnFr)~@xzg+c;k3=fzO?plVa+boH^r;uC{J|XxG=| zqMCYcM9^1!Ygm%hx=+;vrHXgAX(G{WI)4Zj&I5IOJbw#5{@t7Ub!W@fi~P3K{dw8Z2t`UCTvEMOh%b^dEAgbC92S+-blY%} z=i{WEOl6Y5_Uph9N(mbe--48Y9wDa4TAMa2h@$ZmZzxOiToMkon360+7@tcy<86_( zZc@f^kSq4%&9%AZ=1Dnw9=fJPHldOJMbZe=pRFOvi_>hJFquy=W4x*fiVOqXtz)82a`+T&Qax*Tc(Q%@F3A>yDcLR?=O%}!}Vw@+onCUR5Mi&xJIi#n$ zhttFdTuI9?aau@%gO)fy#p+^;^i%fUF97qq!5>5b-va@(rLef7!jYE(U_4t~wS%Qc zT~csVPP>PqzPW273<&qIH@PdiBq=f;VV6?6$~S9xP!u!$v#41OM3B}M^wN-TB5{KX z&qqZ@nGfqDB)x*RNNhrgwP_iNQ-W(DR-1KXcu`c+4n<|<1mBv^qEK`e?LQ4h?;*<6 z4j6n+yg;=42Fh)qEk2Kja=Scknr?@k;6~Vs)cJxQjIvLyp_dPV-S5u+|L`A8y%D2? ztafz0dl1(f_r`0Bz%w+24FGFV;VQ}@)sO~=9b!QqSDkrj43p=|_d0^G@$YUBZoO&W zxKH+ZQ`V}Q+=U}EV#Y{o`N<>it_g&%RzhC@G6s<$CJ4B7_^I|uC-t#&&agJv47{PJ PfEkJAme(5fzOR1)@xADV diff --git a/packs/helper-macros/CURRENT b/packs/helper-macros/CURRENT index 803ffe2..b87ade1 100644 --- a/packs/helper-macros/CURRENT +++ b/packs/helper-macros/CURRENT @@ -1 +1 @@ -MANIFEST-000240 +MANIFEST-000374 diff --git a/packs/helper-macros/LOG b/packs/helper-macros/LOG index 4ece3e4..ce42350 100644 --- a/packs/helper-macros/LOG +++ b/packs/helper-macros/LOG @@ -1,8 +1,8 @@ -2023/11/20-21:06:40.379066 7f1f8cafa640 Recovering log #238 -2023/11/20-21:06:40.383341 7f1f8cafa640 Delete type=0 #238 -2023/11/20-21:06:40.383379 7f1f8cafa640 Delete type=3 #236 -2023/11/20-21:52:53.115026 7f1f7fab1640 Level-0 table #243: started -2023/11/20-21:52:53.115074 7f1f7fab1640 Level-0 table #243: 0 bytes OK -2023/11/20-21:52:53.117191 7f1f7fab1640 Delete type=0 #241 -2023/11/20-21:52:53.120794 7f1f7fab1640 Manual compaction at level-0 from '!folders!hIbrWxg1nDutCSwt' @ 72057594037927935 : 1 .. '!macros!wU2mAUnw3RW9qMT8' @ 0 : 0; will stop at (end) -2023/11/20-21:52:53.122890 7f1f7fab1640 Manual compaction at level-1 from '!folders!hIbrWxg1nDutCSwt' @ 72057594037927935 : 1 .. '!macros!wU2mAUnw3RW9qMT8' @ 0 : 0; will stop at (end) +2023/12/17-18:42:00.629710 7fe10e7fc700 Recovering log #371 +2023/12/17-18:42:00.637182 7fe10e7fc700 Delete type=3 #369 +2023/12/17-18:42:00.637209 7fe10e7fc700 Delete type=0 #371 +2023/12/17-18:43:13.343531 7fe10daa2700 Level-0 table #377: started +2023/12/17-18:43:13.343549 7fe10daa2700 Level-0 table #377: 0 bytes OK +2023/12/17-18:43:13.346491 7fe10daa2700 Delete type=0 #375 +2023/12/17-18:43:13.349558 7fe10daa2700 Manual compaction at level-0 from '!folders!hIbrWxg1nDutCSwt' @ 72057594037927935 : 1 .. '!macros!wU2mAUnw3RW9qMT8' @ 0 : 0; will stop at (end) +2023/12/17-18:43:13.349630 7fe10daa2700 Manual compaction at level-1 from '!folders!hIbrWxg1nDutCSwt' @ 72057594037927935 : 1 .. '!macros!wU2mAUnw3RW9qMT8' @ 0 : 0; will stop at (end) diff --git a/packs/helper-macros/LOG.old b/packs/helper-macros/LOG.old index a868491..62a7ded 100644 --- a/packs/helper-macros/LOG.old +++ b/packs/helper-macros/LOG.old @@ -1,8 +1,15 @@ -2023/11/19-23:28:00.222566 7f1f86ffd640 Recovering log #234 -2023/11/19-23:28:00.228468 7f1f86ffd640 Delete type=0 #234 -2023/11/19-23:28:00.228572 7f1f86ffd640 Delete type=3 #232 -2023/11/19-23:53:02.980676 7f1f7fab1640 Level-0 table #239: started -2023/11/19-23:53:02.980736 7f1f7fab1640 Level-0 table #239: 0 bytes OK -2023/11/19-23:53:02.982353 7f1f7fab1640 Delete type=0 #237 -2023/11/19-23:53:02.985462 7f1f7fab1640 Manual compaction at level-0 from '!folders!hIbrWxg1nDutCSwt' @ 72057594037927935 : 1 .. '!macros!wU2mAUnw3RW9qMT8' @ 0 : 0; will stop at (end) -2023/11/19-23:53:02.987044 7f1f7fab1640 Manual compaction at level-1 from '!folders!hIbrWxg1nDutCSwt' @ 72057594037927935 : 1 .. '!macros!wU2mAUnw3RW9qMT8' @ 0 : 0; will stop at (end) +2023/12/17-18:28:35.298023 7fe10effd700 Recovering log #368 +2023/12/17-18:28:35.305552 7fe10effd700 Delete type=0 #368 +2023/12/17-18:28:35.305566 7fe10effd700 Delete type=3 #367 +2023/12/17-18:41:54.025235 7fe10daa2700 Level-0 table #372: started +2023/12/17-18:41:54.029424 7fe10daa2700 Level-0 table #372: 1605 bytes OK +2023/12/17-18:41:54.033534 7fe10daa2700 Delete type=0 #370 +2023/12/17-18:41:54.046342 7fe10daa2700 Manual compaction at level-0 from '!folders!hIbrWxg1nDutCSwt' @ 72057594037927935 : 1 .. '!macros!wU2mAUnw3RW9qMT8' @ 0 : 0; will stop at (end) +2023/12/17-18:41:54.046432 7fe10daa2700 Manual compaction at level-1 from '!folders!hIbrWxg1nDutCSwt' @ 72057594037927935 : 1 .. '!macros!wU2mAUnw3RW9qMT8' @ 0 : 0; will stop at '!macros!pnLnFrfTTJeodFRy' @ 93 : 1 +2023/12/17-18:41:54.046435 7fe10daa2700 Compacting 1@1 + 1@2 files +2023/12/17-18:41:54.049148 7fe10daa2700 Generated table #373@1: 28 keys, 9006 bytes +2023/12/17-18:41:54.049161 7fe10daa2700 Compacted 1@1 + 1@2 files => 9006 bytes +2023/12/17-18:41:54.052132 7fe10daa2700 compacted to: files[ 0 0 1 0 0 0 0 ] +2023/12/17-18:41:54.052190 7fe10daa2700 Delete type=2 #223 +2023/12/17-18:41:54.052232 7fe10daa2700 Delete type=2 #372 +2023/12/17-18:41:54.056438 7fe10daa2700 Manual compaction at level-1 from '!macros!pnLnFrfTTJeodFRy' @ 93 : 1 .. '!macros!wU2mAUnw3RW9qMT8' @ 0 : 0; will stop at (end) diff --git a/packs/helper-macros/MANIFEST-000240 b/packs/helper-macros/MANIFEST-000240 deleted file mode 100644 index de84bde98f3c234a8672e10321fda9e3a56543eb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 177 zcmdmz+-%jsz{n_-lUkOVlai$8R9TW*o>`pgoS$2eSd>_jU&P9&pqQJOT$Ep|80ec< zVVPW7S#DvN9TaSo<@B2JB4t89&)7DyHSihl49zPy4hpv{^bN6K^n@t*(stw!7Xu^HM@CKt=1+_)(F=qs_k#pJfdsw) F1pq8WGq(T$ diff --git a/packs/helper-macros/MANIFEST-000374 b/packs/helper-macros/MANIFEST-000374 new file mode 100644 index 0000000000000000000000000000000000000000..ad291024f08e167d9eb8a50951d8592e2a1c3e77 GIT binary patch literal 177 zcmZpBll8HKfss)vC$%g!CnZVGsj?)sJhM2}IX|}`u_&=5zlfDlK`}QmxhTI_u^`VU z&#fpeB*ZHEpZMmFJTOW zsDm3+9%_{97@AjZ929O@=o@0e=m}BaX%tk##lXn)or#ly`3DnAY~iNJNg#nAAc0>% F0RXyWGi3k( literal 0 HcmV?d00001 diff --git a/packs/module-docs/000221.ldb b/packs/module-docs/000221.ldb deleted file mode 100644 index 11a7d7baabc7ba74a2a3d06e80036e624bed9e26..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8028 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 VU7m;k{e_=RzuWV*rsB$<{U7Yy@DTt2 diff --git a/packs/module-docs/000370.ldb b/packs/module-docs/000370.ldb new file mode 100644 index 0000000000000000000000000000000000000000..272f63f9bc18473c6568c48ff9b0ac9f88afb8cd GIT binary patch literal 8535 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 8535 bytes +2023/12/17-18:41:54.039405 7fe10daa2700 compacted to: files[ 0 0 1 0 0 0 0 ] +2023/12/17-18:41:54.039440 7fe10daa2700 Delete type=2 #221 +2023/12/17-18:41:54.039471 7fe10daa2700 Delete type=2 #369 +2023/12/17-18:41:54.046370 7fe10daa2700 Manual compaction at level-1 from '!journal.pages!Mw1g2Fx5dp4SoqVP.lhULHNp4gz9IjOR3' @ 201 : 1 .. '!journal.pages!Q4iS1LIiyy7acuaF.zvPWCYx402kk2hsE' @ 0 : 0; will stop at (end) diff --git a/packs/module-docs/MANIFEST-000238 b/packs/module-docs/MANIFEST-000238 deleted file mode 100644 index 05a5b89c17298da2f33249cb71c7a42e1bcdeb09..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 227 zcmd=3soA}Qfss)vC$%g!CnZVGsj?)sJhM2}IX|}`u_&=5zlfF5LNP19v?wnzN3S3; zJ+)Xd&?Gb1(8n{gveG;;xiryDuc|B{+&Qws#K0&!+bE;hmGKY*7_c+lWxQjj2-B|U zkyH|p@hC(cx&?tInZbrWo|%=E=84IriEesTWdY&NkrgHeM%md$ q8O5%Qhaei0@9Xw(GcYoJVd7+9{>sGihS4hbiW5lWD@f!!NCW^#TST@1 literal 0 HcmV?d00001 From 85923d9e8eed73a32aaa769f9e62a6aeb524895d Mon Sep 17 00:00:00 2001 From: Mike Bloy Date: Mon, 18 Dec 2023 12:13:27 -0600 Subject: [PATCH 4/9] unpacked source for packs --- .gitattributes | 1 + .gitignore | 1 - packs/common-actions/CURRENT | 2 +- packs/common-actions/LOG | 11 +- packs/common-actions/LOG.old | 16 +- .../{MANIFEST-000348 => MANIFEST-000356} | Bin 211 -> 193 bytes .../_source/Barrier_YBfJFr0Q0Hnz3Z0Z.json | 78 ++++++ .../_source/Blast_Burst_uOfqTXUyHk6M5tcp.json | 88 +++++++ .../_source/Bolt_8fL0gIyNIxr2hr2s.json | 110 +++++++++ .../_source/Burrow_Ne3oDoPl3hc8eEX1.json | 66 +++++ .../Damage_Field_pSztYcH5w4VNI2nb.json | 88 +++++++ .../_source/Disarm_Lijthu5ONJvcIzDX.json | 69 ++++++ .../_source/Disguise_TteEFvR0yPWKNbI5.json | 66 +++++ .../_source/Evade_xA7qKMmugJv7z6j1.json | 61 +++++ .../_source/Frenzy_hTRU6MiIYlFUVk4T.json | 63 +++++ .../Grapple__Tentacles__6fkUnnyILsETRfjI.json | 108 +++++++++ .../_source/Grapple_jcWvDnoBNyVdXnsu.json | 108 +++++++++ .../_source/Havoc_Sjg9D9FQ0uxZQrD0.json | 94 +++++++ .../_source/Networking_ZlN2t7I05FjampmX.json | 87 +++++++ .../_source/Oppose_5OjjkiKDo8RxHpGz.json | 19 ++ .../Oppose__Spirit__O1bgJSYRjxmSW3R5.json | 57 +++++ .../Power_Effect_vrfo9zsECbxan4dt.json | 59 +++++ .../Power_Effects_0nDRFmMBs5DBJU9M.json | 19 ++ .../_source/Push_DKs4DNcTRYtcdrri.json | 108 +++++++++ .../_source/Rending_kOfyB9sMhLPoA4DI.json | 62 +++++ .../Savage_Pathfinder_rXqlP1phfPHNZrRT.json | 19 ++ .../Shake_Off__Spirit__Tj9Pbdh9tu3ngd03.json | 67 +++++ .../Shake_off__Vigor__XJYoBJcpr0Ar3cES.json | 65 +++++ .../Work_the_Room_NhwZbABEXrt8OzT3.json | 87 +++++++ packs/gear/{000156.ldb => 000005.ldb} | Bin 6787 -> 6787 bytes packs/gear/CURRENT | 2 +- packs/gear/LOG | 11 +- packs/gear/LOG.old | 13 +- packs/gear/MANIFEST-000006 | Bin 0 -> 119 bytes packs/gear/MANIFEST-000169 | Bin 207 -> 0 bytes .../Bladed_Scarf_tWWSfEMmLmws6Yb1.json | 126 ++++++++++ .../_source/Ogre_Hook_JWyBQe4tnOYljFAF.json | 93 +++++++ .../_source/Wayfinder_hK9zTAIl26eBbK84.json | 129 ++++++++++ packs/helper-actors/CURRENT | 2 +- packs/helper-actors/LOG | 11 +- packs/helper-actors/LOG.old | 16 +- .../{MANIFEST-000243 => MANIFEST-000251} | Bin 211 -> 194 bytes ...Non_Character_Target_U5v4gFHquo0Y1SAq.json | 229 ++++++++++++++++++ packs/helper-macros/CURRENT | 2 +- packs/helper-macros/LOG | 11 +- packs/helper-macros/LOG.old | 23 +- .../{MANIFEST-000374 => MANIFEST-000382} | Bin 177 -> 160 bytes .../_source/Blind_e9HvLMtaDw2qpcE8.json | 25 ++ .../Boost_Lower_Trait_1AqIFHAcX5TRdE8X.json | 25 ++ .../_source/Burrow_e4LvHlTNDy5zcGIG.json | 27 +++ .../_source/Confusion_L2IstecV7ivcrgUI.json | 25 ++ .../_source/Darksight_YIdF96EfItR641oP.json | 27 +++ .../_source/Deflection_HYTiftQW0pwwOQGH.json | 25 ++ ...etect_Conceal_Arcana_stHHxnYfGW0X1l5R.json | 27 +++ .../_source/Disguise_MYfrVZpLSrpp0vYW.json | 27 +++ .../Effect_Macros_hIbrWxg1nDutCSwt.json | 19 ++ .../_source/Entangle_2TOeRNCJT3T2px8D.json | 25 ++ .../_source/Gold_Totals_QMnx9cuyw81kRS2o.json | 39 +++ .../_source/Havoc_0CalvjuxtMvY2enn.json | 27 +++ .../Intangibility_OMDjgWLJyE9BJAwT.json | 25 ++ .../Invisibility_11GOryzx2Q8MXbT6.json | 25 ++ ..._Effects_Item_Action_AjuA11hQ48UJNwlH.json | 27 +++ .../_source/Protection_YETsNWOWfIxyLPdC.json | 25 ++ .../Request_Notice_Roll_pnLnFrfTTJeodFRy.json | 27 +++ .../Request_Roll_G9ksuYJo1512PTo9.json | 27 +++ .../Shape_Change_8gxeYSUJ1FQhmJRw.json | 25 ++ .../_source/Sloth_Speed_uWF4I2mnDkV8NZ6j.json | 27 +++ .../_source/Smite_C1vGk7AKQDpcvKyP.json | 27 +++ .../_source/Summon_Ally_RV09eJi9iG5bfupo.json | 25 ++ .../Summon_Animal_745gcs8ytsCLPXe1.json | 25 ++ .../Summon_Monster_V8r5hugGBQfqlhYt.json | 25 ++ ...Summon_Nature_s_Ally_wU2mAUnw3RW9qMT8.json | 25 ++ .../Summon_Planar_Ally_jACgJo0HAmkyzFjZ.json | 25 ++ .../Summon_Undead_eeX3Hoy2Uxo5BeUC.json | 25 ++ .../_source/Zombie_mdci1DSM3UTaLzrb.json | 27 +++ packs/module-docs/000370.ldb | Bin 8535 -> 0 bytes packs/module-docs/000379.ldb | Bin 0 -> 9134 bytes packs/module-docs/CURRENT | 2 +- packs/module-docs/LOG | 11 +- packs/module-docs/LOG.old | 30 +-- packs/module-docs/MANIFEST-000371 | Bin 227 -> 0 bytes packs/module-docs/MANIFEST-000380 | Bin 0 -> 209 bytes .../API_Documentation_Q4iS1LIiyy7acuaF.json | 129 ++++++++++ .../Common_Actions_HbtPlHNFO1L6RVj0.json | 59 +++++ .../_source/Macros_Mw1g2Fx5dp4SoqVP.json | 201 +++++++++++++++ .../Setting_Adjustments_YSuk1v59tLaL9XUK.json | 59 +++++ scripts/module.js | 55 +++++ tsconfig.json | 9 + 88 files changed, 3532 insertions(+), 100 deletions(-) rename packs/common-actions/{MANIFEST-000348 => MANIFEST-000356} (60%) create mode 100644 packs/common-actions/_source/Barrier_YBfJFr0Q0Hnz3Z0Z.json create mode 100644 packs/common-actions/_source/Blast_Burst_uOfqTXUyHk6M5tcp.json create mode 100644 packs/common-actions/_source/Bolt_8fL0gIyNIxr2hr2s.json create mode 100644 packs/common-actions/_source/Burrow_Ne3oDoPl3hc8eEX1.json create mode 100644 packs/common-actions/_source/Damage_Field_pSztYcH5w4VNI2nb.json create mode 100644 packs/common-actions/_source/Disarm_Lijthu5ONJvcIzDX.json create mode 100644 packs/common-actions/_source/Disguise_TteEFvR0yPWKNbI5.json create mode 100644 packs/common-actions/_source/Evade_xA7qKMmugJv7z6j1.json create mode 100644 packs/common-actions/_source/Frenzy_hTRU6MiIYlFUVk4T.json create mode 100644 packs/common-actions/_source/Grapple__Tentacles__6fkUnnyILsETRfjI.json create mode 100644 packs/common-actions/_source/Grapple_jcWvDnoBNyVdXnsu.json create mode 100644 packs/common-actions/_source/Havoc_Sjg9D9FQ0uxZQrD0.json create mode 100644 packs/common-actions/_source/Networking_ZlN2t7I05FjampmX.json create mode 100644 packs/common-actions/_source/Oppose_5OjjkiKDo8RxHpGz.json create mode 100644 packs/common-actions/_source/Oppose__Spirit__O1bgJSYRjxmSW3R5.json create mode 100644 packs/common-actions/_source/Power_Effect_vrfo9zsECbxan4dt.json create mode 100644 packs/common-actions/_source/Power_Effects_0nDRFmMBs5DBJU9M.json create mode 100644 packs/common-actions/_source/Push_DKs4DNcTRYtcdrri.json create mode 100644 packs/common-actions/_source/Rending_kOfyB9sMhLPoA4DI.json create mode 100644 packs/common-actions/_source/Savage_Pathfinder_rXqlP1phfPHNZrRT.json create mode 100644 packs/common-actions/_source/Shake_Off__Spirit__Tj9Pbdh9tu3ngd03.json create mode 100644 packs/common-actions/_source/Shake_off__Vigor__XJYoBJcpr0Ar3cES.json create mode 100644 packs/common-actions/_source/Work_the_Room_NhwZbABEXrt8OzT3.json rename packs/gear/{000156.ldb => 000005.ldb} (94%) create mode 100644 packs/gear/MANIFEST-000006 delete mode 100644 packs/gear/MANIFEST-000169 create mode 100644 packs/gear/_source/Bladed_Scarf_tWWSfEMmLmws6Yb1.json create mode 100644 packs/gear/_source/Ogre_Hook_JWyBQe4tnOYljFAF.json create mode 100644 packs/gear/_source/Wayfinder_hK9zTAIl26eBbK84.json rename packs/helper-actors/{MANIFEST-000243 => MANIFEST-000251} (60%) create mode 100644 packs/helper-actors/_source/Non_Character_Target_U5v4gFHquo0Y1SAq.json rename packs/helper-macros/{MANIFEST-000374 => MANIFEST-000382} (72%) create mode 100644 packs/helper-macros/_source/Blind_e9HvLMtaDw2qpcE8.json create mode 100644 packs/helper-macros/_source/Boost_Lower_Trait_1AqIFHAcX5TRdE8X.json create mode 100644 packs/helper-macros/_source/Burrow_e4LvHlTNDy5zcGIG.json create mode 100644 packs/helper-macros/_source/Confusion_L2IstecV7ivcrgUI.json create mode 100644 packs/helper-macros/_source/Darksight_YIdF96EfItR641oP.json create mode 100644 packs/helper-macros/_source/Deflection_HYTiftQW0pwwOQGH.json create mode 100644 packs/helper-macros/_source/Detect_Conceal_Arcana_stHHxnYfGW0X1l5R.json create mode 100644 packs/helper-macros/_source/Disguise_MYfrVZpLSrpp0vYW.json create mode 100644 packs/helper-macros/_source/Effect_Macros_hIbrWxg1nDutCSwt.json create mode 100644 packs/helper-macros/_source/Entangle_2TOeRNCJT3T2px8D.json create mode 100644 packs/helper-macros/_source/Gold_Totals_QMnx9cuyw81kRS2o.json create mode 100644 packs/helper-macros/_source/Havoc_0CalvjuxtMvY2enn.json create mode 100644 packs/helper-macros/_source/Intangibility_OMDjgWLJyE9BJAwT.json create mode 100644 packs/helper-macros/_source/Invisibility_11GOryzx2Q8MXbT6.json create mode 100644 packs/helper-macros/_source/Power_Effects_Item_Action_AjuA11hQ48UJNwlH.json create mode 100644 packs/helper-macros/_source/Protection_YETsNWOWfIxyLPdC.json create mode 100644 packs/helper-macros/_source/Request_Notice_Roll_pnLnFrfTTJeodFRy.json create mode 100644 packs/helper-macros/_source/Request_Roll_G9ksuYJo1512PTo9.json create mode 100644 packs/helper-macros/_source/Shape_Change_8gxeYSUJ1FQhmJRw.json create mode 100644 packs/helper-macros/_source/Sloth_Speed_uWF4I2mnDkV8NZ6j.json create mode 100644 packs/helper-macros/_source/Smite_C1vGk7AKQDpcvKyP.json create mode 100644 packs/helper-macros/_source/Summon_Ally_RV09eJi9iG5bfupo.json create mode 100644 packs/helper-macros/_source/Summon_Animal_745gcs8ytsCLPXe1.json create mode 100644 packs/helper-macros/_source/Summon_Monster_V8r5hugGBQfqlhYt.json create mode 100644 packs/helper-macros/_source/Summon_Nature_s_Ally_wU2mAUnw3RW9qMT8.json create mode 100644 packs/helper-macros/_source/Summon_Planar_Ally_jACgJo0HAmkyzFjZ.json create mode 100644 packs/helper-macros/_source/Summon_Undead_eeX3Hoy2Uxo5BeUC.json create mode 100644 packs/helper-macros/_source/Zombie_mdci1DSM3UTaLzrb.json delete mode 100644 packs/module-docs/000370.ldb create mode 100644 packs/module-docs/000379.ldb delete mode 100644 packs/module-docs/MANIFEST-000371 create mode 100644 packs/module-docs/MANIFEST-000380 create mode 100644 packs/module-docs/_source/API_Documentation_Q4iS1LIiyy7acuaF.json create mode 100644 packs/module-docs/_source/Common_Actions_HbtPlHNFO1L6RVj0.json create mode 100644 packs/module-docs/_source/Macros_Mw1g2Fx5dp4SoqVP.json create mode 100644 packs/module-docs/_source/Setting_Adjustments_YSuk1v59tLaL9XUK.json create mode 100644 tsconfig.json diff --git a/.gitattributes b/.gitattributes index eec4eb9..eab0ec5 100644 --- a/.gitattributes +++ b/.gitattributes @@ -1,4 +1,5 @@ packs/** binary +packs/**/_source text *.webp filter=lfs diff=lfs merge=lfs -text *.jpeg filter=lfs diff=lfs merge=lfs -text *.jpg filter=lfs diff=lfs merge=lfs -text diff --git a/.gitignore b/.gitignore index 26ad8fc..a001aa5 100644 --- a/.gitignore +++ b/.gitignore @@ -130,4 +130,3 @@ dist .yarn/install-state.gz .pnp.* swade-mb-helpers.lock -_source diff --git a/packs/common-actions/CURRENT b/packs/common-actions/CURRENT index 549acb4..4926ab4 100644 --- a/packs/common-actions/CURRENT +++ b/packs/common-actions/CURRENT @@ -1 +1 @@ -MANIFEST-000348 +MANIFEST-000356 diff --git a/packs/common-actions/LOG b/packs/common-actions/LOG index c0cb70e..319244b 100644 --- a/packs/common-actions/LOG +++ b/packs/common-actions/LOG @@ -1,8 +1,3 @@ -2023/12/17-18:42:00.638841 7fe10effd700 Recovering log #346 -2023/12/17-18:42:00.646294 7fe10effd700 Delete type=0 #346 -2023/12/17-18:42:00.646313 7fe10effd700 Delete type=3 #344 -2023/12/17-18:43:13.346528 7fe10daa2700 Level-0 table #351: started -2023/12/17-18:43:13.346543 7fe10daa2700 Level-0 table #351: 0 bytes OK -2023/12/17-18:43:13.349468 7fe10daa2700 Delete type=0 #349 -2023/12/17-18:43:13.349582 7fe10daa2700 Manual compaction at level-0 from '!folders!0nDRFmMBs5DBJU9M' @ 72057594037927935 : 1 .. '!items!xA7qKMmugJv7z6j1' @ 0 : 0; will stop at (end) -2023/12/17-18:43:13.352774 7fe10daa2700 Manual compaction at level-1 from '!folders!0nDRFmMBs5DBJU9M' @ 72057594037927935 : 1 .. '!items!xA7qKMmugJv7z6j1' @ 0 : 0; will stop at (end) +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 diff --git a/packs/common-actions/LOG.old b/packs/common-actions/LOG.old index 9a27341..ec6ab51 100644 --- a/packs/common-actions/LOG.old +++ b/packs/common-actions/LOG.old @@ -1,8 +1,8 @@ -2023/12/17-18:28:35.306573 7fe10f7fe700 Recovering log #342 -2023/12/17-18:28:35.314253 7fe10f7fe700 Delete type=0 #342 -2023/12/17-18:28:35.314270 7fe10f7fe700 Delete type=3 #340 -2023/12/17-18:41:54.039511 7fe10daa2700 Level-0 table #347: started -2023/12/17-18:41:54.039529 7fe10daa2700 Level-0 table #347: 0 bytes OK -2023/12/17-18:41:54.043395 7fe10daa2700 Delete type=0 #345 -2023/12/17-18:41:54.046395 7fe10daa2700 Manual compaction at level-0 from '!folders!0nDRFmMBs5DBJU9M' @ 72057594037927935 : 1 .. '!items!xA7qKMmugJv7z6j1' @ 0 : 0; will stop at (end) -2023/12/17-18:41:54.052308 7fe10daa2700 Manual compaction at level-1 from '!folders!0nDRFmMBs5DBJU9M' @ 72057594037927935 : 1 .. '!items!xA7qKMmugJv7z6j1' @ 0 : 0; will stop at (end) +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-000348 b/packs/common-actions/MANIFEST-000356 similarity index 60% rename from packs/common-actions/MANIFEST-000348 rename to packs/common-actions/MANIFEST-000356 index 318f36c3a0cf77d1531c28421f72c855b717befe..ae47841bf400134eca83c61334a2e699cfeb9aff 100644 GIT binary patch delta 25 hcmcc2c#v_zdLi+Q-JRSFj7(3NI2o9qF|izH0sw7<2VnpJ delta 43 tcmX@ec$sm+dKKOT4NGnYMy9(=oD9tOm{^W8JvDfG5F~OBB=P_x0ss%L3(^1p diff --git a/packs/common-actions/_source/Barrier_YBfJFr0Q0Hnz3Z0Z.json b/packs/common-actions/_source/Barrier_YBfJFr0Q0Hnz3Z0Z.json new file mode 100644 index 0000000..f569d06 --- /dev/null +++ b/packs/common-actions/_source/Barrier_YBfJFr0Q0Hnz3Z0Z.json @@ -0,0 +1,78 @@ +{ + "folder": "0nDRFmMBs5DBJU9M", + "name": "Barrier", + "type": "action", + "_id": "YBfJFr0Q0Hnz3Z0Z", + "img": "icons/magic/water/barrier-ice-wall-snow.webp", + "system": { + "description": "", + "notes": "", + "source": "", + "additionalStats": {}, + "favorite": false, + "category": "Power Action", + "templates": { + "cone": false, + "stream": false, + "small": false, + "medium": false, + "large": false + }, + "actions": { + "trait": "", + "traitMod": "", + "dmgMod": "", + "additional": { + "KBEgoqgT": { + "name": "Damage", + "type": "damage", + "override": "2d4", + "modifier": "", + "dice": null, + "resourcesUsed": null + }, + "rppj3jdl": { + "name": "Deadly", + "type": "damage", + "override": "2d6", + "modifier": "", + "dice": null, + "resourcesUsed": null + }, + "R19q7be2": { + "name": "Lingering Damage", + "type": "damage", + "override": "2d4-2", + "modifier": "", + "dice": null, + "resourcesUsed": null + }, + "nVD7h2EG": { + "name": "Lingering Deadly Damage", + "type": "damage", + "override": "2d4", + "modifier": "", + "dice": null, + "resourcesUsed": null + } + } + }, + "swid": "barrier" + }, + "effects": [], + "sort": 600000, + "ownership": { + "default": 0, + "R9ZgY0IvWl8ovIuT": 3 + }, + "flags": {}, + "_stats": { + "systemId": "swade", + "systemVersion": "3.2.5", + "coreVersion": "11.315", + "createdTime": 1695165795303, + "modifiedTime": 1702839170547, + "lastModifiedBy": "sVoCvBU1knmXzoYe" + }, + "_key": "!items!YBfJFr0Q0Hnz3Z0Z" +} diff --git a/packs/common-actions/_source/Blast_Burst_uOfqTXUyHk6M5tcp.json b/packs/common-actions/_source/Blast_Burst_uOfqTXUyHk6M5tcp.json new file mode 100644 index 0000000..90824eb --- /dev/null +++ b/packs/common-actions/_source/Blast_Burst_uOfqTXUyHk6M5tcp.json @@ -0,0 +1,88 @@ +{ + "folder": "0nDRFmMBs5DBJU9M", + "name": "Blast/Burst", + "type": "action", + "_id": "uOfqTXUyHk6M5tcp", + "img": "icons/magic/fire/explosion-fireball-large-purple-orange.webp", + "system": { + "description": "", + "notes": "", + "source": "", + "additionalStats": {}, + "favorite": false, + "category": "Power Action", + "templates": { + "cone": false, + "stream": false, + "small": false, + "medium": false, + "large": false + }, + "actions": { + "trait": "", + "traitMod": "", + "dmgMod": "", + "additional": { + "syarnXHm": { + "name": "Damage (+2)", + "type": "damage", + "override": "3d6", + "modifier": "", + "dice": null, + "resourcesUsed": null + }, + "72RI01JA": { + "name": "Greater (+4)", + "type": "damage", + "override": "4d6", + "modifier": "", + "dice": null, + "resourcesUsed": null, + "isHeavyWeapon": true + }, + "bJStUmyi": { + "name": "Lingering Damage", + "type": "damage", + "override": "2d4", + "modifier": "", + "dice": null, + "resourcesUsed": null + }, + "ETr8eRwJ": { + "name": "Lingering Extra Damage (+2)", + "type": "damage", + "override": "3d4", + "modifier": "", + "dice": null, + "resourcesUsed": null + }, + "DvnTrhtg": { + "name": "Lingering Greater Damage (+4)", + "type": "damage", + "override": "4d4", + "modifier": "", + "dice": null, + "resourcesUsed": null, + "isHeavyWeapon": true + } + } + }, + "swid": "blastburst" + }, + "effects": [], + "sort": 800000, + "ownership": { + "default": 0, + "R9ZgY0IvWl8ovIuT": 3 + }, + "flags": {}, + "_stats": { + "systemId": "swade", + "systemVersion": "3.2.5", + "coreVersion": "11.315", + "createdTime": 1695165983064, + "modifiedTime": 1702839170549, + "lastModifiedBy": "sVoCvBU1knmXzoYe" + }, + "_key": "!items!uOfqTXUyHk6M5tcp" +} diff --git a/packs/common-actions/_source/Bolt_8fL0gIyNIxr2hr2s.json b/packs/common-actions/_source/Bolt_8fL0gIyNIxr2hr2s.json new file mode 100644 index 0000000..09d25b7 --- /dev/null +++ b/packs/common-actions/_source/Bolt_8fL0gIyNIxr2hr2s.json @@ -0,0 +1,110 @@ +{ + "name": "Bolt", + "type": "action", + "img": "icons/magic/lightning/bolt-beam-strike-blue.webp", + "system": { + "description": "", + "notes": "", + "source": "", + "additionalStats": {}, + "favorite": false, + "category": "Power Action", + "templates": { + "cone": false, + "stream": false, + "small": false, + "medium": false, + "large": false + }, + "actions": { + "trait": "", + "traitMod": "", + "dmgMod": "", + "additional": { + "U0ReLbPz": { + "name": "Damage (+2)", + "type": "damage", + "dice": null, + "resourcesUsed": null, + "modifier": "", + "override": "3d6", + "isHeavyWeapon": false + }, + "bgEDx2DC": { + "name": "Distegrate (+2) Resist (Vigor)", + "type": "resist", + "dice": null, + "resourcesUsed": null, + "modifier": "", + "override": "Vigor", + "isHeavyWeapon": false + }, + "rc9YFNrJ": { + "name": "Greater Bolt (+4)", + "type": "damage", + "dice": null, + "resourcesUsed": null, + "modifier": "", + "override": "4d6", + "isHeavyWeapon": true + }, + "mL2g1HXb": { + "name": "Rate of Fire (+2)", + "type": "trait", + "dice": 2, + "resourcesUsed": null, + "modifier": "", + "override": "", + "isHeavyWeapon": false + }, + "yaUtp0a1": { + "name": "Lingering Damage", + "type": "damage", + "override": "2d4", + "modifier": "", + "dice": null, + "resourcesUsed": null, + "isHeavyWeapon": false + }, + "enYZVtNT": { + "name": "Lingering Extra Damage (+2)", + "type": "damage", + "override": "3d4", + "modifier": "", + "dice": null, + "resourcesUsed": null + }, + "Oy39lfJP": { + "name": "Lingering Greater Damage (+4)", + "type": "damage", + "override": "4d4", + "modifier": "", + "dice": null, + "resourcesUsed": null, + "isHeavyWeapon": true + } + } + }, + "swid": "bolt" + }, + "effects": [], + "folder": "0nDRFmMBs5DBJU9M", + "flags": { + "core": {} + }, + "_stats": { + "systemId": "swade", + "systemVersion": "3.2.5", + "coreVersion": "11.315", + "createdTime": 1695082141993, + "modifiedTime": 1702839170544, + "lastModifiedBy": "sVoCvBU1knmXzoYe" + }, + "_id": "8fL0gIyNIxr2hr2s", + "sort": 400000, + "ownership": { + "default": 0, + "R9ZgY0IvWl8ovIuT": 3 + }, + "_key": "!items!8fL0gIyNIxr2hr2s" +} diff --git a/packs/common-actions/_source/Burrow_Ne3oDoPl3hc8eEX1.json b/packs/common-actions/_source/Burrow_Ne3oDoPl3hc8eEX1.json new file mode 100644 index 0000000..959c2a7 --- /dev/null +++ b/packs/common-actions/_source/Burrow_Ne3oDoPl3hc8eEX1.json @@ -0,0 +1,66 @@ +{ + "name": "Burrow", + "type": "action", + "img": "icons/magic/earth/projectile-stone-landslide.webp", + "system": { + "description": "", + "notes": "", + "source": "", + "additionalStats": {}, + "favorite": false, + "category": "Power Action", + "templates": { + "cone": false, + "stream": false, + "small": false, + "medium": false, + "large": false + }, + "actions": { + "trait": "", + "traitMod": "", + "dmgMod": "", + "additional": { + "hx9EGBvx": { + "name": "Surprise (Stealth)", + "type": "trait", + "dice": null, + "resourcesUsed": null, + "modifier": "", + "override": "Stealth", + "isHeavyWeapon": false + }, + "m0xSkgHw": { + "name": "Oppose Surprise (Notice)", + "type": "resist", + "dice": null, + "resourcesUsed": null, + "modifier": "", + "override": "Notice", + "isHeavyWeapon": false + } + } + }, + "swid": "burrow" + }, + "effects": [], + "folder": "0nDRFmMBs5DBJU9M", + "ownership": { + "default": 0, + "sVoCvBU1knmXzoYe": 3 + }, + "flags": { + "core": {} + }, + "_stats": { + "systemId": "swade", + "systemVersion": "3.2.5", + "coreVersion": "11.315", + "createdTime": 1696130722637, + "modifiedTime": 1702839170544, + "lastModifiedBy": "sVoCvBU1knmXzoYe" + }, + "_id": "Ne3oDoPl3hc8eEX1", + "sort": 300000, + "_key": "!items!Ne3oDoPl3hc8eEX1" +} diff --git a/packs/common-actions/_source/Damage_Field_pSztYcH5w4VNI2nb.json b/packs/common-actions/_source/Damage_Field_pSztYcH5w4VNI2nb.json new file mode 100644 index 0000000..c69c94a --- /dev/null +++ b/packs/common-actions/_source/Damage_Field_pSztYcH5w4VNI2nb.json @@ -0,0 +1,88 @@ +{ + "folder": "0nDRFmMBs5DBJU9M", + "name": "Damage Field", + "type": "action", + "_id": "pSztYcH5w4VNI2nb", + "img": "icons/magic/defensive/armor-shield-barrier-steel.webp", + "system": { + "description": "", + "notes": "", + "source": "", + "additionalStats": {}, + "favorite": false, + "category": "Power Action", + "templates": { + "cone": false, + "stream": false, + "small": false, + "medium": false, + "large": false + }, + "actions": { + "trait": "", + "traitMod": "", + "dmgMod": "", + "additional": { + "vzxICJES": { + "name": "Damage (+2)", + "type": "damage", + "override": "2d6", + "modifier": "", + "dice": null, + "resourcesUsed": null + }, + "B5Vbtiut": { + "name": "⭐ Greater (+4)", + "type": "damage", + "override": "3d6", + "modifier": "", + "dice": null, + "resourcesUsed": null, + "isHeavyWeapon": true + }, + "Ldobq3c1": { + "name": "Lingering Damage", + "type": "damage", + "override": "2d4-2", + "modifier": "", + "dice": null, + "resourcesUsed": null + }, + "xQjPiDKU": { + "name": "Lingering Extra Damage (+2)", + "type": "damage", + "override": "2d4", + "modifier": "", + "dice": null, + "resourcesUsed": null + }, + "bLXiZ53I": { + "name": "Lingering Greater Damage", + "type": "damage", + "override": "3d4", + "modifier": "", + "dice": null, + "resourcesUsed": null, + "isHeavyWeapon": true + } + } + }, + "swid": "damage-field" + }, + "effects": [], + "sort": 700000, + "ownership": { + "default": 0, + "R9ZgY0IvWl8ovIuT": 3 + }, + "flags": {}, + "_stats": { + "systemId": "swade", + "systemVersion": "3.2.5", + "coreVersion": "11.315", + "createdTime": 1695250911715, + "modifiedTime": 1702839170549, + "lastModifiedBy": "sVoCvBU1knmXzoYe" + }, + "_key": "!items!pSztYcH5w4VNI2nb" +} diff --git a/packs/common-actions/_source/Disarm_Lijthu5ONJvcIzDX.json b/packs/common-actions/_source/Disarm_Lijthu5ONJvcIzDX.json new file mode 100644 index 0000000..767f6dd --- /dev/null +++ b/packs/common-actions/_source/Disarm_Lijthu5ONJvcIzDX.json @@ -0,0 +1,69 @@ +{ + "name": "Disarm", + "type": "action", + "img": "icons/skills/melee/sword-damaged-broken-orange.webp", + "system": { + "description": "

@UUID[Compendium.swpf-core-rules.swpf-rules.swpfcore03rules0.JournalEntryPage.03situationalr00#disarm]{DISARM}

", + "notes": "", + "additionalStats": {}, + "actions": { + "dmgMod": "", + "additional": { + "nRh9e5kO": { + "name": "Resist Disarm (Arm Hit)", + "type": "resist", + "override": "Strength", + "modifier": "-2", + "isHeavyWeapon": false + }, + "HxIXbUus": { + "name": "Resist Disarm (Hand Hit)", + "type": "resist", + "override": "Strength", + "modifier": "-4", + "dice": null, + "resourcesUsed": null + } + }, + "trait": "", + "traitMod": "" + }, + "favorite": false, + "source": "SWAD MB Common Actions", + "category": "Savage Pathfinder", + "templates": { + "cone": false, + "stream": false, + "small": false, + "medium": false, + "large": false + }, + "swid": "disarm" + }, + "effects": [], + "flags": { + "core": {}, + "exportSource": { + "world": "swpf-rotr", + "system": "swade", + "coreVersion": "10.291", + "systemVersion": "2.2.5" + } + }, + "_stats": { + "systemId": "swade", + "systemVersion": "3.2.5", + "coreVersion": "11.315", + "createdTime": 1679667342015, + "modifiedTime": 1702839170544, + "lastModifiedBy": "sVoCvBU1knmXzoYe" + }, + "folder": "rXqlP1phfPHNZrRT", + "_id": "Lijthu5ONJvcIzDX", + "sort": 300000, + "ownership": { + "default": 0, + "R9ZgY0IvWl8ovIuT": 3 + }, + "_key": "!items!Lijthu5ONJvcIzDX" +} diff --git a/packs/common-actions/_source/Disguise_TteEFvR0yPWKNbI5.json b/packs/common-actions/_source/Disguise_TteEFvR0yPWKNbI5.json new file mode 100644 index 0000000..7ee9063 --- /dev/null +++ b/packs/common-actions/_source/Disguise_TteEFvR0yPWKNbI5.json @@ -0,0 +1,66 @@ +{ + "name": "Disguise", + "type": "action", + "img": "icons/skills/social/diplomacy-peace-alliance.webp", + "system": { + "description": "", + "notes": "", + "source": "", + "additionalStats": {}, + "favorite": false, + "category": "Power Action", + "templates": { + "cone": false, + "stream": false, + "small": false, + "medium": false, + "large": false + }, + "actions": { + "trait": "", + "traitMod": "", + "dmgMod": "", + "additional": { + "m0xSkgHw": { + "name": "Detect Disguise (Notice -2)", + "type": "resist", + "override": "Notice", + "modifier": "-2", + "dice": null, + "resourcesUsed": null, + "isHeavyWeapon": false + }, + "oJYREpI8": { + "name": "Detect major Disguise (Notice -4)", + "type": "resist", + "dice": null, + "resourcesUsed": null, + "modifier": "-4", + "override": "Notice", + "isHeavyWeapon": false + } + } + }, + "swid": "disguise" + }, + "effects": [], + "folder": "0nDRFmMBs5DBJU9M", + "ownership": { + "default": 0, + "sVoCvBU1knmXzoYe": 3 + }, + "flags": { + "core": {} + }, + "_stats": { + "systemId": "swade", + "systemVersion": "3.2.5", + "coreVersion": "11.315", + "createdTime": 1696130722637, + "modifiedTime": 1702839170546, + "lastModifiedBy": "sVoCvBU1knmXzoYe" + }, + "_id": "TteEFvR0yPWKNbI5", + "sort": 200000, + "_key": "!items!TteEFvR0yPWKNbI5" +} diff --git a/packs/common-actions/_source/Evade_xA7qKMmugJv7z6j1.json b/packs/common-actions/_source/Evade_xA7qKMmugJv7z6j1.json new file mode 100644 index 0000000..e74bfe9 --- /dev/null +++ b/packs/common-actions/_source/Evade_xA7qKMmugJv7z6j1.json @@ -0,0 +1,61 @@ +{ + "name": "Evade", + "type": "action", + "img": "icons/skills/movement/figure-running-gray.webp", + "system": { + "description": "

@UUID[Compendium.swpf-core-rules.swpf-rules.swpfcore03rules0.JournalEntryPage.03situationalr00#evasion]{Evasion}

", + "notes": "", + "additionalStats": {}, + "actions": { + "dmgMod": "", + "additional": { + "L0XtU5KM": { + "name": "Evade (Agility)", + "type": "resist", + "override": "Agility", + "modifier": "-2", + "isHeavyWeapon": false + } + }, + "trait": "", + "traitMod": "" + }, + "favorite": false, + "source": "SWADE MB Common Actions", + "category": "Savage Pathfinder", + "templates": { + "cone": false, + "stream": false, + "small": false, + "medium": false, + "large": false + }, + "swid": "evade" + }, + "effects": [], + "flags": { + "core": {}, + "exportSource": { + "world": "swpf-rotr", + "system": "swade", + "coreVersion": "10.291", + "systemVersion": "2.2.5" + } + }, + "_stats": { + "systemId": "swade", + "systemVersion": "3.2.5", + "coreVersion": "11.315", + "createdTime": 1674019466231, + "modifiedTime": 1702839170550, + "lastModifiedBy": "sVoCvBU1knmXzoYe" + }, + "folder": "rXqlP1phfPHNZrRT", + "_id": "xA7qKMmugJv7z6j1", + "sort": 900000, + "ownership": { + "default": 0, + "R9ZgY0IvWl8ovIuT": 3 + }, + "_key": "!items!xA7qKMmugJv7z6j1" +} diff --git a/packs/common-actions/_source/Frenzy_hTRU6MiIYlFUVk4T.json b/packs/common-actions/_source/Frenzy_hTRU6MiIYlFUVk4T.json new file mode 100644 index 0000000..663897c --- /dev/null +++ b/packs/common-actions/_source/Frenzy_hTRU6MiIYlFUVk4T.json @@ -0,0 +1,63 @@ +{ + "name": "Frenzy", + "type": "action", + "img": "icons/skills/melee/strikes-sword-scimitar.webp", + "system": { + "description": "", + "notes": "", + "additionalStats": {}, + "actions": { + "dmgMod": "", + "additional": { + "qQtymA5P": { + "name": "Frenzy Attack", + "type": "trait", + "modifier": "", + "resourcesUsed": null, + "dice": 2, + "override": "Fighting", + "isHeavyWeapon": false + } + }, + "trait": "", + "traitMod": "" + }, + "favorite": false, + "source": "Swade MB Common Actions", + "category": "Savage Pathfinder", + "templates": { + "cone": false, + "stream": false, + "small": false, + "medium": false, + "large": false + }, + "swid": "frenzy" + }, + "effects": [], + "flags": { + "exportSource": { + "world": "swpf-rotr", + "system": "swade", + "coreVersion": "10.291", + "systemVersion": "2.2.5" + }, + "core": {} + }, + "_stats": { + "systemId": "swade", + "systemVersion": "3.2.5", + "coreVersion": "11.315", + "createdTime": 1668048955652, + "modifiedTime": 1702839170547, + "lastModifiedBy": "sVoCvBU1knmXzoYe" + }, + "folder": "rXqlP1phfPHNZrRT", + "_id": "hTRU6MiIYlFUVk4T", + "sort": 700000, + "ownership": { + "default": 0, + "R9ZgY0IvWl8ovIuT": 3 + }, + "_key": "!items!hTRU6MiIYlFUVk4T" +} diff --git a/packs/common-actions/_source/Grapple__Tentacles__6fkUnnyILsETRfjI.json b/packs/common-actions/_source/Grapple__Tentacles__6fkUnnyILsETRfjI.json new file mode 100644 index 0000000..e1b3cd4 --- /dev/null +++ b/packs/common-actions/_source/Grapple__Tentacles__6fkUnnyILsETRfjI.json @@ -0,0 +1,108 @@ +{ + "name": "Grapple (Tentacles)", + "type": "action", + "img": "icons/skills/melee/unarmed-punch-fist.webp", + "system": { + "description": "

@UUID[Compendium.swpf-core-rules.swpf-rules.swpfcore03rules0.JournalEntryPage.03situationalr00#grappling]{Grappling}

@UUID[Compendium.swpf-core-rules.swpf-abilities.Item.0fZ7WmUuKGgU35sJ]{Tentacles}

", + "notes": "", + "additionalStats": {}, + "actions": { + "dmgMod": "", + "additional": { + "XEC2IWM0": { + "name": "Grapple", + "type": "trait", + "dice": null, + "resourcesUsed": null, + "modifier": "+2", + "override": "Athletics", + "isHeavyWeapon": false + }, + "g7oxsNqI": { + "name": "Resist Grapple", + "type": "resist", + "override": "Athletics", + "modifier": "", + "isHeavyWeapon": false + }, + "KCvw4z5i": { + "name": "Crush", + "type": "trait", + "modifier": "", + "dice": null, + "resourcesUsed": null, + "override": "Strength", + "isHeavyWeapon": false + }, + "1wWLiKwK": { + "name": "Resist Crush", + "type": "resist", + "override": "Strength", + "modifier": "", + "isHeavyWeapon": false + }, + "t1Db4fxd": { + "name": "Crush", + "type": "damage", + "modifier": "", + "override": "@str", + "isHeavyWeapon": false + } + }, + "trait": "", + "traitMod": "" + }, + "favorite": false, + "source": "Swade MB Common Actions", + "category": "Savage Pathfinder", + "templates": { + "cone": false, + "stream": false, + "small": false, + "medium": false, + "large": false + }, + "swid": "grapple-tentacles" + }, + "effects": [], + "flags": { + "swim": { + "config": { + "reloadSFX": "", + "fireSFX": "", + "autoFireSFX": "", + "silencedFireSFX": "", + "silencedAutoFireSFX": "", + "emptySFX": "", + "isPack": false, + "isConsumable": false, + "isSilenced": false, + "loadedAmmo": "", + "_version": 1 + } + }, + "core": {}, + "exportSource": { + "world": "swpf-rotr", + "system": "swade", + "coreVersion": "10.291", + "systemVersion": "2.2.5" + } + }, + "_stats": { + "systemId": "swade", + "systemVersion": "3.2.5", + "coreVersion": "11.315", + "createdTime": 1667883835416, + "modifiedTime": 1702839170543, + "lastModifiedBy": "sVoCvBU1knmXzoYe" + }, + "folder": "rXqlP1phfPHNZrRT", + "_id": "6fkUnnyILsETRfjI", + "sort": 100000, + "ownership": { + "default": 0, + "R9ZgY0IvWl8ovIuT": 3 + }, + "_key": "!items!6fkUnnyILsETRfjI" +} diff --git a/packs/common-actions/_source/Grapple_jcWvDnoBNyVdXnsu.json b/packs/common-actions/_source/Grapple_jcWvDnoBNyVdXnsu.json new file mode 100644 index 0000000..965c7d7 --- /dev/null +++ b/packs/common-actions/_source/Grapple_jcWvDnoBNyVdXnsu.json @@ -0,0 +1,108 @@ +{ + "name": "Grapple", + "type": "action", + "img": "icons/skills/melee/unarmed-punch-fist.webp", + "system": { + "description": "

@UUID[Compendium.swpf-core-rules.swpf-rules.swpfcore03rules0.JournalEntryPage.03situationalr00#grappling]{Grappling}

", + "notes": "", + "additionalStats": {}, + "actions": { + "dmgMod": "", + "additional": { + "XEC2IWM0": { + "name": "Grapple", + "type": "trait", + "modifier": "", + "dice": null, + "resourcesUsed": null, + "override": "Athletics", + "isHeavyWeapon": false + }, + "g7oxsNqI": { + "name": "Resist Grapple", + "type": "resist", + "override": "Athletics", + "modifier": "", + "isHeavyWeapon": false + }, + "KCvw4z5i": { + "name": "Crush", + "type": "trait", + "modifier": "", + "dice": null, + "resourcesUsed": null, + "override": "Strength", + "isHeavyWeapon": false + }, + "1wWLiKwK": { + "name": "Resist Crush", + "type": "resist", + "override": "Strength", + "modifier": "", + "isHeavyWeapon": false + }, + "t1Db4fxd": { + "name": "Crush", + "type": "damage", + "modifier": "", + "override": "@str", + "isHeavyWeapon": false + } + }, + "trait": "", + "traitMod": "" + }, + "favorite": false, + "source": "Swade MB Common Actions", + "category": "Savage Pathfinder", + "templates": { + "cone": false, + "stream": false, + "small": false, + "medium": false, + "large": false + }, + "swid": "grapple" + }, + "effects": [], + "flags": { + "swim": { + "config": { + "reloadSFX": "", + "fireSFX": "", + "autoFireSFX": "", + "silencedFireSFX": "", + "silencedAutoFireSFX": "", + "emptySFX": "", + "isPack": false, + "isConsumable": false, + "isSilenced": false, + "loadedAmmo": "", + "_version": 1 + } + }, + "exportSource": { + "world": "swpf-rotr", + "system": "swade", + "coreVersion": "10.291", + "systemVersion": "2.2.5" + }, + "core": {} + }, + "_stats": { + "systemId": "swade", + "systemVersion": "3.2.5", + "coreVersion": "11.315", + "createdTime": 1667883835416, + "modifiedTime": 1702839170547, + "lastModifiedBy": "sVoCvBU1knmXzoYe" + }, + "folder": "rXqlP1phfPHNZrRT", + "_id": "jcWvDnoBNyVdXnsu", + "sort": 800000, + "ownership": { + "default": 0, + "R9ZgY0IvWl8ovIuT": 3 + }, + "_key": "!items!jcWvDnoBNyVdXnsu" +} diff --git a/packs/common-actions/_source/Havoc_Sjg9D9FQ0uxZQrD0.json b/packs/common-actions/_source/Havoc_Sjg9D9FQ0uxZQrD0.json new file mode 100644 index 0000000..5e837bb --- /dev/null +++ b/packs/common-actions/_source/Havoc_Sjg9D9FQ0uxZQrD0.json @@ -0,0 +1,94 @@ +{ + "name": "Havoc", + "type": "action", + "img": "icons/magic/air/air-burst-spiral-blue-gray.webp", + "system": { + "description": "", + "notes": "", + "source": "", + "swid": "havoc", + "additionalStats": {}, + "favorite": false, + "category": "Power Action", + "templates": { + "cone": false, + "stream": false, + "small": false, + "medium": false, + "large": false + }, + "actions": { + "trait": "", + "traitMod": "", + "dmgMod": "", + "additional": { + "t1FV85tY": { + "name": "Resist minor Havoc", + "type": "resist", + "override": "Strength", + "modifier": "", + "dice": null, + "resourcesUsed": null, + "macroActor": "default", + "isHeavyWeapon": false + }, + "Rch2cQhm": { + "name": "Resist major Havoc", + "type": "resist", + "override": "Strength", + "modifier": "-2", + "dice": null, + "resourcesUsed": null, + "macroActor": "default", + "isHeavyWeapon": false + }, + "BNXwvwgh": { + "name": "Strike a hard object", + "type": "damage", + "override": "2d4", + "modifier": "", + "dice": null, + "resourcesUsed": null, + "macroActor": "default", + "isHeavyWeapon": false + }, + "dOsQSsEW": { + "name": "Strike a hard object (greater)", + "type": "damage", + "override": "2d6", + "modifier": "", + "dice": null, + "resourcesUsed": null, + "macroActor": "default", + "isHeavyWeapon": false + } + } + } + }, + "effects": [], + "folder": "0nDRFmMBs5DBJU9M", + "ownership": { + "default": 0, + "R9ZgY0IvWl8ovIuT": 3 + }, + "flags": { + "core": {}, + "exportSource": { + "world": "sw-module-creation", + "system": "swade", + "coreVersion": "11.315", + "systemVersion": "3.2.2" + } + }, + "_stats": { + "systemId": "swade", + "systemVersion": "3.2.5", + "coreVersion": "11.315", + "createdTime": 1699734652310, + "modifiedTime": 1702839170545, + "lastModifiedBy": "sVoCvBU1knmXzoYe" + }, + "_id": "Sjg9D9FQ0uxZQrD0", + "sort": 0, + "_key": "!items!Sjg9D9FQ0uxZQrD0" +} diff --git a/packs/common-actions/_source/Networking_ZlN2t7I05FjampmX.json b/packs/common-actions/_source/Networking_ZlN2t7I05FjampmX.json new file mode 100644 index 0000000..fc6e5b3 --- /dev/null +++ b/packs/common-actions/_source/Networking_ZlN2t7I05FjampmX.json @@ -0,0 +1,87 @@ +{ + "name": "Networking", + "type": "action", + "img": "icons/skills/social/diplomacy-handshake.webp", + "system": { + "description": "

@UUID[Compendium.swpf-core-rules.swpf-rules.swpfcore04theadv.JournalEntryPage.04networking0000]{Networking}

", + "notes": "", + "additionalStats": {}, + "actions": { + "dmgMod": "", + "additional": { + "VvEhWhmL": { + "name": "Persuasion", + "type": "trait", + "modifier": "", + "dice": null, + "resourcesUsed": null, + "override": "Persuasion", + "isHeavyWeapon": false + }, + "vyhH3l9E": { + "name": "Intimidation", + "type": "trait", + "modifier": "", + "dice": null, + "resourcesUsed": null, + "override": "Intimidation", + "isHeavyWeapon": false + } + }, + "trait": "", + "traitMod": "" + }, + "favorite": false, + "source": "Swade MB Common Actions", + "category": "Savage Pathfinder", + "templates": { + "cone": false, + "stream": false, + "small": false, + "medium": false, + "large": false + }, + "swid": "networking" + }, + "effects": [], + "flags": { + "swim": { + "config": { + "reloadSFX": "", + "fireSFX": "", + "autoFireSFX": "", + "silencedFireSFX": "", + "silencedAutoFireSFX": "", + "emptySFX": "", + "isPack": false, + "isConsumable": false, + "isSilenced": false, + "loadedAmmo": "", + "_version": 1 + } + }, + "exportSource": { + "world": "swpf-rotr", + "system": "swade", + "coreVersion": "10.291", + "systemVersion": "2.2.5" + }, + "core": {} + }, + "_stats": { + "systemId": "swade", + "systemVersion": "3.2.5", + "coreVersion": "11.315", + "createdTime": 1667885227318, + "modifiedTime": 1702839170547, + "lastModifiedBy": "sVoCvBU1knmXzoYe" + }, + "folder": "rXqlP1phfPHNZrRT", + "_id": "ZlN2t7I05FjampmX", + "sort": 600000, + "ownership": { + "default": 0, + "R9ZgY0IvWl8ovIuT": 3 + }, + "_key": "!items!ZlN2t7I05FjampmX" +} diff --git a/packs/common-actions/_source/Oppose_5OjjkiKDo8RxHpGz.json b/packs/common-actions/_source/Oppose_5OjjkiKDo8RxHpGz.json new file mode 100644 index 0000000..42934cc --- /dev/null +++ b/packs/common-actions/_source/Oppose_5OjjkiKDo8RxHpGz.json @@ -0,0 +1,19 @@ +{ + "name": "Oppose", + "sorting": "a", + "folder": null, + "type": "Item", + "_id": "5OjjkiKDo8RxHpGz", + "sort": 0, + "color": null, + "flags": {}, + "_stats": { + "systemId": "swade", + "systemVersion": "3.2.2", + "coreVersion": "11.315", + "createdTime": 1699419673111, + "modifiedTime": 1699419673111, + "lastModifiedBy": "R9ZgY0IvWl8ovIuT" + }, + "_key": "!folders!5OjjkiKDo8RxHpGz" +} diff --git a/packs/common-actions/_source/Oppose__Spirit__O1bgJSYRjxmSW3R5.json b/packs/common-actions/_source/Oppose__Spirit__O1bgJSYRjxmSW3R5.json new file mode 100644 index 0000000..16815e7 --- /dev/null +++ b/packs/common-actions/_source/Oppose__Spirit__O1bgJSYRjxmSW3R5.json @@ -0,0 +1,57 @@ +{ + "name": "Oppose (Spirit)", + "type": "action", + "img": "icons/magic/control/debuff-energy-hold-teal-blue.webp", + "system": { + "description": "", + "notes": "", + "source": "", + "additionalStats": {}, + "favorite": false, + "category": "Oppose", + "templates": { + "cone": false, + "stream": false, + "small": false, + "medium": false, + "large": false + }, + "actions": { + "trait": "", + "traitMod": "", + "dmgMod": "", + "additional": { + "j20IwFOf": { + "name": "Oppose (Spirit)", + "type": "resist", + "dice": null, + "resourcesUsed": null, + "modifier": "", + "override": "Spirit", + "isHeavyWeapon": false + } + } + }, + "swid": "oppose-spirit" + }, + "effects": [], + "folder": "5OjjkiKDo8RxHpGz", + "ownership": { + "default": 0, + "sVoCvBU1knmXzoYe": 3 + }, + "flags": { + "core": {} + }, + "_stats": { + "systemId": "swade", + "systemVersion": "3.2.5", + "coreVersion": "11.315", + "createdTime": 1696130050023, + "modifiedTime": 1702839170545, + "lastModifiedBy": "sVoCvBU1knmXzoYe" + }, + "_id": "O1bgJSYRjxmSW3R5", + "sort": -100000, + "_key": "!items!O1bgJSYRjxmSW3R5" +} diff --git a/packs/common-actions/_source/Power_Effect_vrfo9zsECbxan4dt.json b/packs/common-actions/_source/Power_Effect_vrfo9zsECbxan4dt.json new file mode 100644 index 0000000..b364ca6 --- /dev/null +++ b/packs/common-actions/_source/Power_Effect_vrfo9zsECbxan4dt.json @@ -0,0 +1,59 @@ +{ + "name": "Power Effect", + "type": "action", + "img": "icons/magic/symbols/circled-gem-pink.webp", + "system": { + "description": "", + "notes": "", + "source": "", + "additionalStats": {}, + "favorite": false, + "category": "Power Action", + "templates": { + "cone": false, + "stream": false, + "small": false, + "medium": false, + "large": false + }, + "actions": { + "trait": "", + "traitMod": "", + "dmgMod": "", + "additional": { + "E4Pbzvi0": { + "name": "Effect", + "type": "macro", + "dice": null, + "resourcesUsed": null, + "modifier": "", + "override": "", + "uuid": "Compendium.swade-mb-helpers.helper-macros.Macro.AjuA11hQ48UJNwlH", + "isHeavyWeapon": false, + "macroActor": "self" + } + } + }, + "swid": "power-effect" + }, + "effects": [], + "folder": "0nDRFmMBs5DBJU9M", + "ownership": { + "default": 0, + "R9ZgY0IvWl8ovIuT": 3 + }, + "flags": { + "core": {} + }, + "_stats": { + "systemId": "swade", + "systemVersion": "3.2.5", + "coreVersion": "11.315", + "createdTime": 1695081676167, + "modifiedTime": 1702839170550, + "lastModifiedBy": "sVoCvBU1knmXzoYe" + }, + "_id": "vrfo9zsECbxan4dt", + "sort": 100000, + "_key": "!items!vrfo9zsECbxan4dt" +} diff --git a/packs/common-actions/_source/Power_Effects_0nDRFmMBs5DBJU9M.json b/packs/common-actions/_source/Power_Effects_0nDRFmMBs5DBJU9M.json new file mode 100644 index 0000000..63ab466 --- /dev/null +++ b/packs/common-actions/_source/Power_Effects_0nDRFmMBs5DBJU9M.json @@ -0,0 +1,19 @@ +{ + "name": "Power Effects", + "sorting": "a", + "folder": null, + "type": "Item", + "_id": "0nDRFmMBs5DBJU9M", + "sort": 100000, + "color": null, + "flags": {}, + "_stats": { + "systemId": "swade", + "systemVersion": "3.1.4", + "coreVersion": "11.308", + "createdTime": 1695081947648, + "modifiedTime": 1695164535987, + "lastModifiedBy": "R9ZgY0IvWl8ovIuT" + }, + "_key": "!folders!0nDRFmMBs5DBJU9M" +} diff --git a/packs/common-actions/_source/Push_DKs4DNcTRYtcdrri.json b/packs/common-actions/_source/Push_DKs4DNcTRYtcdrri.json new file mode 100644 index 0000000..ad602ea --- /dev/null +++ b/packs/common-actions/_source/Push_DKs4DNcTRYtcdrri.json @@ -0,0 +1,108 @@ +{ + "name": "Push", + "type": "action", + "img": "icons/skills/melee/shield-block-bash-blue.webp", + "system": { + "description": "

@UUID[Compendium.swpf-core-rules.swpf-rules.swpfcore03rules0.JournalEntryPage.03situationalr00#push]{Push}

", + "notes": "", + "additionalStats": {}, + "actions": { + "dmgMod": "", + "additional": { + "wwxI37Do": { + "name": "Push", + "type": "trait", + "modifier": "", + "dice": null, + "resourcesUsed": null, + "override": "Strength", + "isHeavyWeapon": false + }, + "o5BwRFE0": { + "name": "Oppose Push", + "type": "resist", + "override": "Strength", + "modifier": "", + "isHeavyWeapon": false + }, + "SceRYgjP": { + "name": "Resist Prone", + "type": "resist", + "override": "Athletics", + "modifier": "", + "isHeavyWeapon": false + }, + "JUaIJ70O": { + "name": "Running Push", + "type": "trait", + "override": "Strength", + "modifier": "+2", + "dice": null, + "resourcesUsed": null + }, + "VNgJEQP8": { + "name": "Resist Prone vs Raise", + "type": "resist", + "override": "Athletics", + "modifier": "-2", + "dice": null, + "resourcesUsed": null + } + }, + "trait": "", + "traitMod": "" + }, + "favorite": false, + "source": "Swade MB Common Actions", + "category": "Savage Pathfinder", + "templates": { + "cone": false, + "stream": false, + "small": false, + "medium": false, + "large": false + }, + "swid": "push" + }, + "effects": [], + "flags": { + "swim": { + "config": { + "reloadSFX": "", + "fireSFX": "", + "autoFireSFX": "", + "silencedFireSFX": "", + "silencedAutoFireSFX": "", + "emptySFX": "", + "isPack": false, + "isConsumable": false, + "isSilenced": false, + "loadedAmmo": "", + "_version": 1 + } + }, + "exportSource": { + "world": "swpf-rotr", + "system": "swade", + "coreVersion": "10.291", + "systemVersion": "2.2.5" + }, + "core": {} + }, + "_stats": { + "systemId": "swade", + "systemVersion": "3.2.5", + "coreVersion": "11.315", + "createdTime": 1667884673139, + "modifiedTime": 1702839170544, + "lastModifiedBy": "sVoCvBU1knmXzoYe" + }, + "folder": "rXqlP1phfPHNZrRT", + "_id": "DKs4DNcTRYtcdrri", + "sort": 200000, + "ownership": { + "default": 0, + "R9ZgY0IvWl8ovIuT": 3 + }, + "_key": "!items!DKs4DNcTRYtcdrri" +} diff --git a/packs/common-actions/_source/Rending_kOfyB9sMhLPoA4DI.json b/packs/common-actions/_source/Rending_kOfyB9sMhLPoA4DI.json new file mode 100644 index 0000000..6102eee --- /dev/null +++ b/packs/common-actions/_source/Rending_kOfyB9sMhLPoA4DI.json @@ -0,0 +1,62 @@ +{ + "name": "Rending", + "type": "action", + "img": "icons/skills/wounds/blood-spurt-spray-red.webp", + "system": { + "description": "

Rending: Anyone Shaken or Wounded by a Rending attack from a Size 1 or larger creature begins bleeding and must make a Vigor roll as a free action at the beginning of their next turn. Failure causes one Wound and the victim must make another Vigor roll next turn. Success means the victim doesn’t suffer a Wound, but must make a Vigor roll again next turn. A raise stops the bleeding and no further rolls are required from that attack. A successful Healing roll also stops the bleeding.

", + "notes": "", + "source": "", + "swid": "rending", + "additionalStats": {}, + "favorite": false, + "category": "Savage Pathfinder", + "templates": { + "cone": false, + "stream": false, + "small": false, + "medium": false, + "large": false + }, + "actions": { + "trait": "", + "traitMod": "", + "dmgMod": "", + "additional": { + "vYs4EKsj": { + "name": "Resist Rending (Vigor)", + "type": "resist", + "override": "", + "modifier": "", + "isHeavyWeapon": false, + "macroActor": "default" + } + } + } + }, + "effects": [], + "folder": "rXqlP1phfPHNZrRT", + "ownership": { + "default": 0, + "R9ZgY0IvWl8ovIuT": 3 + }, + "flags": { + "core": {}, + "exportSource": { + "world": "sw-module-creation", + "system": "swade", + "coreVersion": "11.315", + "systemVersion": "3.2.2" + } + }, + "_stats": { + "systemId": "swade", + "systemVersion": "3.2.5", + "coreVersion": "11.315", + "createdTime": 1690171610450, + "modifiedTime": 1702839170548, + "lastModifiedBy": "sVoCvBU1knmXzoYe" + }, + "_id": "kOfyB9sMhLPoA4DI", + "sort": 400000, + "_key": "!items!kOfyB9sMhLPoA4DI" +} diff --git a/packs/common-actions/_source/Savage_Pathfinder_rXqlP1phfPHNZrRT.json b/packs/common-actions/_source/Savage_Pathfinder_rXqlP1phfPHNZrRT.json new file mode 100644 index 0000000..ce41552 --- /dev/null +++ b/packs/common-actions/_source/Savage_Pathfinder_rXqlP1phfPHNZrRT.json @@ -0,0 +1,19 @@ +{ + "name": "Savage Pathfinder", + "sorting": "a", + "folder": null, + "type": "Item", + "_id": "rXqlP1phfPHNZrRT", + "sort": 0, + "color": null, + "flags": {}, + "_stats": { + "systemId": "swade", + "systemVersion": "3.1.4", + "coreVersion": "11.308", + "createdTime": 1695164553594, + "modifiedTime": 1695164553594, + "lastModifiedBy": "R9ZgY0IvWl8ovIuT" + }, + "_key": "!folders!rXqlP1phfPHNZrRT" +} diff --git a/packs/common-actions/_source/Shake_Off__Spirit__Tj9Pbdh9tu3ngd03.json b/packs/common-actions/_source/Shake_Off__Spirit__Tj9Pbdh9tu3ngd03.json new file mode 100644 index 0000000..a50f273 --- /dev/null +++ b/packs/common-actions/_source/Shake_Off__Spirit__Tj9Pbdh9tu3ngd03.json @@ -0,0 +1,67 @@ +{ + "folder": "0nDRFmMBs5DBJU9M", + "name": "Shake Off (Spirit)", + "type": "action", + "img": "icons/magic/control/debuff-energy-snare-blue.webp", + "system": { + "description": "", + "notes": "", + "source": "", + "additionalStats": {}, + "favorite": false, + "category": "Power Action", + "templates": { + "cone": false, + "stream": false, + "small": false, + "medium": false, + "large": false + }, + "actions": { + "trait": "", + "traitMod": "", + "dmgMod": "", + "additional": { + "icoPVRIf": { + "name": "Shake Off", + "type": "resist", + "override": "Spirit", + "modifier": "", + "dice": null, + "resourcesUsed": null, + "uuid": "", + "isHeavyWeapon": false + }, + "41FetTKN": { + "name": "Shake Off (from Strong)", + "type": "resist", + "override": "Spirit", + "modifier": "-2", + "dice": null, + "resourcesUsed": null + } + } + }, + "swid": "shake-off-spirit" + }, + "effects": [], + "ownership": { + "default": 0, + "R9ZgY0IvWl8ovIuT": 3, + "sVoCvBU1knmXzoYe": 3 + }, + "flags": { + "core": {} + }, + "_stats": { + "systemId": "swade", + "systemVersion": "3.2.5", + "coreVersion": "11.315", + "createdTime": 1695165609050, + "modifiedTime": 1702839170545, + "lastModifiedBy": "sVoCvBU1knmXzoYe" + }, + "_id": "Tj9Pbdh9tu3ngd03", + "sort": 750000, + "_key": "!items!Tj9Pbdh9tu3ngd03" +} diff --git a/packs/common-actions/_source/Shake_off__Vigor__XJYoBJcpr0Ar3cES.json b/packs/common-actions/_source/Shake_off__Vigor__XJYoBJcpr0Ar3cES.json new file mode 100644 index 0000000..c863e0c --- /dev/null +++ b/packs/common-actions/_source/Shake_off__Vigor__XJYoBJcpr0Ar3cES.json @@ -0,0 +1,65 @@ +{ + "name": "Shake off (Vigor)", + "type": "action", + "img": "icons/magic/control/debuff-energy-snare-brown.webp", + "system": { + "description": "", + "notes": "", + "source": "", + "additionalStats": {}, + "favorite": false, + "category": "Power Action", + "templates": { + "cone": false, + "stream": false, + "small": false, + "medium": false, + "large": false + }, + "actions": { + "trait": "", + "traitMod": "", + "dmgMod": "", + "additional": { + "gJBLDGdP": { + "name": "Shake Off", + "type": "resist", + "dice": null, + "resourcesUsed": null, + "modifier": "", + "override": "Vigor", + "isHeavyWeapon": false + }, + "oTYF6EjQ": { + "name": "Shake Off (From Strong)", + "type": "resist", + "override": "Vigor", + "modifier": "-2", + "dice": null, + "resourcesUsed": null + } + } + }, + "swid": "shake-off-vigor" + }, + "effects": [], + "folder": "0nDRFmMBs5DBJU9M", + "ownership": { + "default": 0, + "sVoCvBU1knmXzoYe": 3 + }, + "flags": { + "core": {} + }, + "_stats": { + "systemId": "swade", + "systemVersion": "3.2.5", + "coreVersion": "11.315", + "createdTime": 1695698203871, + "modifiedTime": 1702839170546, + "lastModifiedBy": "sVoCvBU1knmXzoYe" + }, + "_id": "XJYoBJcpr0Ar3cES", + "sort": 500000, + "_key": "!items!XJYoBJcpr0Ar3cES" +} diff --git a/packs/common-actions/_source/Work_the_Room_NhwZbABEXrt8OzT3.json b/packs/common-actions/_source/Work_the_Room_NhwZbABEXrt8OzT3.json new file mode 100644 index 0000000..069d00d --- /dev/null +++ b/packs/common-actions/_source/Work_the_Room_NhwZbABEXrt8OzT3.json @@ -0,0 +1,87 @@ +{ + "name": "Work the Room", + "type": "action", + "img": "icons/skills/social/diplomacy-unity-alliance.webp", + "system": { + "description": "
  • @UUID[Compendium.swpf-core-rules.swpf-edges.H2kXu5SWIf4hZ99G]{Work the Room}

  • @UUID[Compendium.swpf-core-rules.swpf-edges.2W87DoEcg9sheggg]{Work the Crowd}

", + "notes": "", + "additionalStats": {}, + "actions": { + "dmgMod": "", + "additional": { + "VHwhhR0B": { + "name": "Persuasion", + "type": "trait", + "modifier": "", + "resourcesUsed": null, + "dice": 2, + "override": "Persuasion", + "isHeavyWeapon": false + }, + "WF83NRE1": { + "name": "Performance", + "type": "trait", + "modifier": "", + "resourcesUsed": null, + "dice": 2, + "override": "Performance", + "isHeavyWeapon": false + } + }, + "trait": "", + "traitMod": "" + }, + "favorite": false, + "source": "Swade MB Common Actions", + "category": "Savage Pathfinder", + "templates": { + "cone": false, + "stream": false, + "small": false, + "medium": false, + "large": false + }, + "swid": "work-the-room" + }, + "effects": [], + "flags": { + "swim": { + "config": { + "reloadSFX": "", + "fireSFX": "", + "autoFireSFX": "", + "silencedFireSFX": "", + "silencedAutoFireSFX": "", + "emptySFX": "", + "isPack": false, + "isConsumable": false, + "isSilenced": false, + "loadedAmmo": "", + "_version": 1 + } + }, + "exportSource": { + "world": "swpf-rotr", + "system": "swade", + "coreVersion": "10.291", + "systemVersion": "2.2.5" + }, + "core": {} + }, + "_stats": { + "systemId": "swade", + "systemVersion": "3.2.5", + "coreVersion": "11.315", + "createdTime": 1667885448561, + "modifiedTime": 1702839170545, + "lastModifiedBy": "sVoCvBU1knmXzoYe" + }, + "folder": "rXqlP1phfPHNZrRT", + "_id": "NhwZbABEXrt8OzT3", + "sort": 500000, + "ownership": { + "default": 0, + "R9ZgY0IvWl8ovIuT": 3 + }, + "_key": "!items!NhwZbABEXrt8OzT3" +} diff --git a/packs/gear/000156.ldb b/packs/gear/000005.ldb similarity index 94% rename from packs/gear/000156.ldb rename to packs/gear/000005.ldb index 1a2b5a85bb1a95d8a094d829e182e7d011fa8817..fdbfb84d42dad74a108316ccf1d16dd103394ed8 100644 GIT binary patch delta 70 zcmZoRZ8n`C&&aeoD%FBX`pgoS$2eSd>_jU&PMD+H5MXm|2pVTde36 zUg;E=YEqKtADNTo=IF-A!~g~``I7MP;51j?T%X+XVzbC3LqHq)$ literal 0 HcmV?d00001 diff --git a/packs/gear/MANIFEST-000169 b/packs/gear/MANIFEST-000169 deleted file mode 100644 index 1258ce04ca1cb2efbba1aaad3f45f35f676e61a8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 207 zcmbQP;BB;wfss)vC$%g!CnZVGsj?)sJhM2}IX|}`u_&=5zlfDVUNN&IHMdx?Bs@Gg z&DA&8C%3%VEHcTEQH}u&SQ!baU}u`c*lY?@Knowing that seductive performances can bring out the worst in watchers, some Varisians craft rows of razor-sharp blades into their scarves. This deals Str+d4 damage to any creature successfully grappled while wielding the scarf.

", + "notes": "Two Hands", + "source": "Pathfinder Companion", + "additionalStats": {}, + "quantity": 1, + "weight": 1, + "price": 12, + "equippable": false, + "equipStatus": 1, + "isArcaneDevice": false, + "arcaneSkillDie": { + "sides": 4, + "modifier": 0 + }, + "powerPoints": {}, + "isVehicular": false, + "mods": 1, + "actions": { + "trait": "", + "traitMod": "", + "dmgMod": "", + "additional": { + "XEC2IWM0": { + "name": "Grapple", + "type": "trait", + "dice": null, + "resourcesUsed": null, + "modifier": "", + "override": "Athletics", + "isHeavyWeapon": false + }, + "g7oxsNqI": { + "name": "Resist Grapple", + "type": "resist", + "modifier": "", + "override": "Athletics", + "isHeavyWeapon": false + }, + "KCvw4z5i": { + "name": "Crush", + "type": "trait", + "dice": null, + "resourcesUsed": null, + "modifier": "", + "override": "Strength", + "isHeavyWeapon": false + }, + "1wWLiKwK": { + "name": "Resist Crush", + "type": "resist", + "modifier": "", + "override": "Strength", + "isHeavyWeapon": false + }, + "t1Db4fxd": { + "name": "Crush", + "type": "damage", + "modifier": "", + "override": "@str", + "isHeavyWeapon": false + }, + "6yiDtU88": { + "name": "Grapple Damage", + "type": "damage", + "dice": null, + "resourcesUsed": null, + "modifier": "", + "override": "@str+d4", + "isHeavyWeapon": false + } + } + }, + "bonusDamageDie": 6, + "bonusDamageDice": 1, + "favorite": false, + "templates": { + "cone": false, + "stream": false, + "small": false, + "medium": false, + "large": false + }, + "category": "Melee Weapon", + "grants": [], + "grantOn": 1, + "damage": "@str+d4", + "range": "", + "rof": 1, + "ap": 1, + "parry": 0, + "minStr": "d4", + "shots": 0, + "currentShots": 0, + "ammo": "", + "reloadType": "none", + "ppReloadCost": 2, + "trademark": 0, + "isHeavyWeapon": false, + "swid": "bladed-scarf" + }, + "effects": [], + "folder": null, + "ownership": { + "default": 0, + "zJNNhVU4bzQxMMA9": 3 + }, + "flags": { + "core": {} + }, + "_stats": { + "systemId": "swade", + "systemVersion": "3.2.5", + "coreVersion": "11.315", + "createdTime": 1696794187384, + "modifiedTime": 1702839170624, + "lastModifiedBy": "sVoCvBU1knmXzoYe" + }, + "_id": "tWWSfEMmLmws6Yb1", + "sort": 300000, + "_key": "!items!tWWSfEMmLmws6Yb1" +} diff --git a/packs/gear/_source/Ogre_Hook_JWyBQe4tnOYljFAF.json b/packs/gear/_source/Ogre_Hook_JWyBQe4tnOYljFAF.json new file mode 100644 index 0000000..123d8e0 --- /dev/null +++ b/packs/gear/_source/Ogre_Hook_JWyBQe4tnOYljFAF.json @@ -0,0 +1,93 @@ +{ + "name": "Ogre Hook", + "type": "weapon", + "img": "icons/tools/fishing/hook-curved-barbed-steel-white.webp", + "system": { + "description": "

A huge, crude crook of sharpened metal, an ogre hook takes its name from the savages who most typically employ it. Usually created by ogres, these weapons are especially brutal, granting the wielder the @Compendium[swpf-core-rules.swpf-abilities.F2U2daS7UdVpGyJR]{Rending Attack} ability.

Rending: Anyone Shaken or Wounded by an ogre hook attack from a Size 1 or larger creature begins bleeding and must make a Vigor roll as a free action at the beginning of their next turn. Failure causes one Wound and the victim must make another Vigor roll next turn. Success means the victim doesn’t suffer a Wound, but must make a Vigor roll again next turn. A raise stops the bleeding and no further rolls are required from that attack. A successful Healing roll also stops the bleeding.

", + "notes": "", + "additionalStats": {}, + "quantity": 1, + "weight": 3, + "price": 0, + "equippable": false, + "equipStatus": 4, + "isArcaneDevice": false, + "arcaneSkillDie": { + "sides": 4, + "modifier": 0 + }, + "powerPoints": {}, + "isVehicular": false, + "mods": 1, + "actions": { + "dmgMod": "", + "additional": { + "c84qvPrI": { + "name": "Resist Rending (Vigor)", + "type": "resist", + "modifier": "", + "override": "", + "isHeavyWeapon": false + } + }, + "trait": "Fighting", + "traitMod": "" + }, + "bonusDamageDie": 6, + "bonusDamageDice": 1, + "favorite": false, + "templates": { + "cone": false, + "stream": false, + "small": false, + "medium": false, + "large": false + }, + "category": "Melee Weapon", + "grants": [ + { + "name": "Rending", + "img": "icons/skills/wounds/blood-spurt-spray-red.webp", + "uuid": "Compendium.mb-pfsw-kingmaker.swpf-abilities.Item.8uCm1JhzkLtU0d6D", + "mutation": {} + } + ], + "grantOn": 2, + "damage": "@str+d10", + "range": "", + "rof": 1, + "ap": 3, + "parry": 0, + "minStr": "d10", + "shots": 0, + "currentShots": 0, + "ammo": "", + "reloadType": "none", + "ppReloadCost": 2, + "trademark": 0, + "isHeavyWeapon": false, + "source": "Pathfinder Companion", + "swid": "ogre-hook" + }, + "effects": [], + "folder": null, + "ownership": { + "default": 0, + "Aqnn9hCDQPbyTWiq": 3, + "zJNNhVU4bzQxMMA9": 3 + }, + "flags": { + "core": {} + }, + "_stats": { + "systemId": "swade", + "systemVersion": "3.2.5", + "coreVersion": "11.315", + "createdTime": 1690171224569, + "modifiedTime": 1702839170624, + "lastModifiedBy": "sVoCvBU1knmXzoYe" + }, + "_id": "JWyBQe4tnOYljFAF", + "sort": 200000, + "_key": "!items!JWyBQe4tnOYljFAF" +} diff --git a/packs/gear/_source/Wayfinder_hK9zTAIl26eBbK84.json b/packs/gear/_source/Wayfinder_hK9zTAIl26eBbK84.json new file mode 100644 index 0000000..22d2044 --- /dev/null +++ b/packs/gear/_source/Wayfinder_hK9zTAIl26eBbK84.json @@ -0,0 +1,129 @@ +{ + "name": "Wayfinder", + "type": "gear", + "img": "icons/tools/navigation/compass-worn-copper.webp", + "system": { + "description": "

A small magical device patterned off ancient Azlanti relics, a wayfinder is a compact compass typically made from silver and bearing gold accents. A badge of office for agents of the Pathfinder Society, a wayfinder is as much a handy tool as a status symbol.

With a command word, the wayfinder shines as the light power. It can also act as a nonmagical (magnetic) compass, granting the user a free reroll on Survival (navigation) rolls.

All wayfinders include a small indentation designed to hold a single ioun stone. An ioun stone slotted in this manner grants you its normal benefits as if it were orbiting your head; some ioun stones can grant additional powers once they are fitted into a wayfinder.

The following list shows the common effects for some slotted ioun stones, though there may be others at the GM’s discretion.

Clear Spindle: Once per day as a limited action, the wearer can cast minor deflection on himself.

Deep Red Sphere: The wearer has the Brawler Edge as long as he have this ioun stone slotted.

Incandescen Blue Sphere: Once per day as a limited action, the wearer can cast minor darksight on himself.

Dark Blue Rhomboid: The wearer suffers no penalties to Notice rolls while asleep.

Iridescent Spindle: The wearer benefits from environmental protection as long as this ioun stone is slotted.

Pale Green Prism: Once per day as a limited action the wearer removes 1 Fatigue.

Vibrant Purple Prism: Once per day, the wearer can gain 2 Power Points as a limited action.

Cost: 500 gp; Weight: 1 lb.

Craft: 250 gp.

", + "notes": "", + "source": "Pathfinder Companion", + "additionalStats": {}, + "quantity": 1, + "weight": 1, + "price": 500, + "equippable": false, + "equipStatus": 1, + "isArcaneDevice": true, + "arcaneSkillDie": { + "sides": 4, + "modifier": 0 + }, + "powerPoints": { + "value": null, + "max": null + }, + "isVehicular": false, + "mods": 1, + "actions": { + "trait": "", + "traitMod": "", + "dmgMod": "", + "additional": {} + }, + "favorite": false, + "category": "Magic Item", + "grants": [], + "grantOn": 1, + "isAmmo": false, + "swid": "wayfinder" + }, + "effects": [], + "folder": null, + "ownership": { + "default": 0, + "zJNNhVU4bzQxMMA9": 3 + }, + "flags": { + "swade": { + "embeddedPowers": [ + [ + "JruQfQjRT3y6SeHe", + { + "_id": "XNv3EegYZJArCgZ3", + "system": { + "actions": { + "additional": {}, + "dmgMod": "", + "trait": "", + "traitMod": "" + }, + "additionalStats": {}, + "ap": 0, + "arcane": "", + "bonusDamageDie": 6, + "damage": "", + "description": "

Light/Darkness

\n

See power @Compendium[swpf-core-rules.swpf-powers.Light / Darkness]{here}.

\n

Rank: Novice

\n

Power Points: 2

\n

Range: Smarts

\n

Duration: 10 minutes

\n

School: Evocation

\n

\nTrappings: Illusionary torch, sunlight, darkness, thick\n fogs.\n

\n

\nLight creates bright illumination in a Large Blast Template.\n With a @UUID[Compendium.swpf-core-rules.swpf-rules.swpfcore03rules0.JournalEntryPage.03rules000000000]{raise}, the light can be focused into a 5″ (10 yard) beam as well.\n

\n

\nDarkness blocks illumination in an area the size of a Large\n Blast Template, making the area Dark, or Pitch Dark with a raise (see\n @UUID[Compendium.swpf-core-rules.swpf-rules.swpfcore03rules0.JournalEntryPage.03situationalr00]{Illumination}).\n

\n

\n If light and darkness overlap, they create a patch of Dim\n light (−2).\n

\n

Modifiers

See generic modifiers @UUID[Compendium.swpf-core-rules.swpf-rules.swpfcore05powers.JournalEntryPage.05powermodifie00]{here}

\n
    \n
  • \nArea Effect (+2): Light only. The light expands to the\n caster’s @UUID[Compendium.swpf-core-rules.swpf-rules.swpfcore01charac.JournalEntryPage.01traitsummari00]{Smarts} in radius, with a @UUID[Compendium.swpf-core-rules.swpf-rules.swpfcore02gear00.JournalEntryPage.02gear0000000000]{Range} of Smarts ×2. The light is\n sunlight and acts as natural sunlight.\n
  • \n
  • \nTrue DARKNESS (+2): The darkness blocks Infravison, @Compendium[swpf-core-rules.swpf-abilities.Low Light Vision]{Low Light Vision}, and @Compendium[swpf-core-rules.swpf-abilities.Darkvision]{Darkvision}. It has no effect on magical sight such as\n @Compendium[swpf-core-rules.swpf-powers.Detect/Conceal Arcana]{detect arcana.}\n
  • \n
  • \nMobile (+1): The\n caster can move the template at a @UUID[Compendium.swpf-core-rules.swpf-rules.swpfcore03rules0.JournalEntryPage.03rules000000000]{Pace} equal to his arcane skill die type\n as a @UUID[Compendium.swpf-core-rules.swpf-rules.swpfcore03rules0.JournalEntryPage.03combat00000000]{limited free action} each round. He can also attach it to an inanimate\n object when first cast if desired. It cannot be cast on a living being.\n
  • \n

", + "duration": "10 minutes", + "favorite": false, + "modifiers": [], + "notes": "", + "pp": 2, + "range": "Sm", + "rank": "Novice", + "trapping": "Illusionary torch, sunlight, darkness, thick fogs", + "source": "", + "bonusDamageDice": 1, + "templates": { + "cone": false, + "stream": false, + "small": false, + "medium": false, + "large": false + }, + "innate": false + }, + "effects": [], + "flags": { + "cf": { + "color": "#a41e1e", + "id": "temp_vt28g3us4ss", + "path": "Powers" + }, + "core": { + "sourceId": "Compendium.world.swpf-powers.WMlJC4ALv3BKwxTP" + } + }, + "folder": null, + "img": "modules/swpf-core-rules/assets/icons/Pathfinder_Icons_Power_v2.webp", + "name": "Light / Darkness", + "sort": 0, + "type": "power", + "ownership": { + "7ntJSLixH2Phv2jV": 3, + "default": 0 + }, + "_stats": { + "systemId": null, + "systemVersion": null, + "coreVersion": null, + "createdTime": null, + "modifiedTime": null, + "lastModifiedBy": null + } + } + ] + ] + }, + "core": {} + }, + "_stats": { + "systemId": "swade", + "systemVersion": "3.2.5", + "coreVersion": "11.315", + "createdTime": 1696797163890, + "modifiedTime": 1702839170624, + "lastModifiedBy": "sVoCvBU1knmXzoYe" + }, + "_id": "hK9zTAIl26eBbK84", + "sort": 100000, + "_key": "!items!hK9zTAIl26eBbK84" +} diff --git a/packs/helper-actors/CURRENT b/packs/helper-actors/CURRENT index 7635e11..a224704 100644 --- a/packs/helper-actors/CURRENT +++ b/packs/helper-actors/CURRENT @@ -1 +1 @@ -MANIFEST-000243 +MANIFEST-000251 diff --git a/packs/helper-actors/LOG b/packs/helper-actors/LOG index bcb2a85..d1e5315 100644 --- a/packs/helper-actors/LOG +++ b/packs/helper-actors/LOG @@ -1,8 +1,3 @@ -2023/12/17-18:42:00.648307 7fe10e7fc700 Recovering log #241 -2023/12/17-18:42:00.656761 7fe10e7fc700 Delete type=0 #241 -2023/12/17-18:42:00.656790 7fe10e7fc700 Delete type=3 #239 -2023/12/17-18:43:13.349651 7fe10daa2700 Level-0 table #246: started -2023/12/17-18:43:13.349665 7fe10daa2700 Level-0 table #246: 0 bytes OK -2023/12/17-18:43:13.352736 7fe10daa2700 Delete type=0 #244 -2023/12/17-18:43:13.359504 7fe10daa2700 Manual compaction at level-0 from '!actors!U5v4gFHquo0Y1SAq' @ 72057594037927935 : 1 .. '!actors!U5v4gFHquo0Y1SAq' @ 0 : 0; will stop at (end) -2023/12/17-18:43:13.362629 7fe10daa2700 Manual compaction at level-1 from '!actors!U5v4gFHquo0Y1SAq' @ 72057594037927935 : 1 .. '!actors!U5v4gFHquo0Y1SAq' @ 0 : 0; will stop at (end) +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 diff --git a/packs/helper-actors/LOG.old b/packs/helper-actors/LOG.old index 1ebe3ef..6da71a4 100644 --- a/packs/helper-actors/LOG.old +++ b/packs/helper-actors/LOG.old @@ -1,8 +1,8 @@ -2023/12/17-18:28:35.316270 7fe10effd700 Recovering log #237 -2023/12/17-18:28:35.323541 7fe10effd700 Delete type=0 #237 -2023/12/17-18:28:35.323557 7fe10effd700 Delete type=3 #235 -2023/12/17-18:41:54.043433 7fe10daa2700 Level-0 table #242: started -2023/12/17-18:41:54.043450 7fe10daa2700 Level-0 table #242: 0 bytes OK -2023/12/17-18:41:54.046299 7fe10daa2700 Delete type=0 #240 -2023/12/17-18:41:54.046420 7fe10daa2700 Manual compaction at level-0 from '!actors!U5v4gFHquo0Y1SAq' @ 72057594037927935 : 1 .. '!actors!U5v4gFHquo0Y1SAq' @ 0 : 0; will stop at (end) -2023/12/17-18:41:54.052278 7fe10daa2700 Manual compaction at level-1 from '!actors!U5v4gFHquo0Y1SAq' @ 72057594037927935 : 1 .. '!actors!U5v4gFHquo0Y1SAq' @ 0 : 0; will stop at (end) +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-000243 b/packs/helper-actors/MANIFEST-000251 similarity index 60% rename from packs/helper-actors/MANIFEST-000243 rename to packs/helper-actors/MANIFEST-000251 index 3b57f4fe401980ec4b9d2c520ec18341f04341bf..8894d53f99fefec01a899af52df10c466659da20 100644 GIT binary patch delta 24 gcmcc2c!+VrMnR^I)ka(lj7)zRIT@J$GP1A&0AYs)ZU6uP delta 41 scmX@ac$sm+MkU!dKA~I;j7(n`IT@J0GP1CqYr6d#B=8j^@Es@s02WaT=l}o! diff --git a/packs/helper-actors/_source/Non_Character_Target_U5v4gFHquo0Y1SAq.json b/packs/helper-actors/_source/Non_Character_Target_U5v4gFHquo0Y1SAq.json new file mode 100644 index 0000000..2518a81 --- /dev/null +++ b/packs/helper-actors/_source/Non_Character_Target_U5v4gFHquo0Y1SAq.json @@ -0,0 +1,229 @@ +{ + "name": "Non Character Target", + "type": "npc", + "_id": "U5v4gFHquo0Y1SAq", + "img": "icons/svg/mystery-man.svg", + "system": { + "attributes": { + "agility": { + "die": { + "sides": 4, + "modifier": 0 + }, + "wild-die": { + "sides": 6 + } + }, + "smarts": { + "die": { + "sides": 4, + "modifier": 0 + }, + "wild-die": { + "sides": 6 + }, + "animal": false + }, + "spirit": { + "die": { + "sides": 4, + "modifier": 0 + }, + "wild-die": { + "sides": 6 + }, + "unShakeBonus": 0 + }, + "strength": { + "die": { + "sides": 4, + "modifier": 0 + }, + "wild-die": { + "sides": 6 + }, + "encumbranceSteps": 0 + }, + "vigor": { + "die": { + "sides": 4, + "modifier": 0 + }, + "wild-die": { + "sides": 6 + }, + "unStunBonus": 0, + "soakBonus": 0, + "bleedOut": { + "modifier": 0, + "ignoreWounds": false + } + } + }, + "stats": { + "speed": { + "runningDie": 6, + "runningMod": 0, + "value": 6 + }, + "toughness": { + "value": 0, + "armor": 0, + "modifier": 0 + }, + "parry": { + "value": 0, + "shield": 0, + "modifier": 0 + }, + "size": 0 + }, + "details": { + "autoCalcToughness": true, + "autoCalcParry": true, + "archetype": "", + "appearance": "", + "notes": "", + "goals": "", + "biography": { + "value": "" + }, + "species": { + "name": "" + }, + "currency": 0, + "wealth": { + "die": 6, + "modifier": 0, + "wild-die": 6 + }, + "conviction": { + "value": 0, + "active": false + } + }, + "powerPoints": {}, + "fatigue": { + "value": 0, + "max": 2, + "ignored": 0 + }, + "wounds": { + "value": 0, + "max": 0, + "ignored": 0 + }, + "woundsOrFatigue": { + "ignored": 0 + }, + "bennies": { + "value": 0, + "max": 2 + }, + "advances": { + "mode": "expanded", + "value": 0, + "rank": "Novice", + "details": "", + "list": [] + }, + "status": { + "isShaken": false, + "isDistracted": false, + "isVulnerable": false, + "isStunned": false, + "isEntangled": false, + "isBound": false, + "isIncapacitated": false + }, + "initiative": { + "hasHesitant": false, + "hasLevelHeaded": false, + "hasImpLevelHeaded": false, + "hasQuick": false + }, + "additionalStats": {}, + "wildcard": false + }, + "prototypeToken": { + "name": "Non Character Target", + "displayName": 0, + "actorLink": false, + "appendNumber": false, + "prependAdjective": false, + "texture": { + "src": "icons/svg/mystery-man.svg", + "scaleX": 1, + "scaleY": 1, + "offsetX": 0, + "offsetY": 0, + "rotation": 0 + }, + "width": 1, + "height": 1, + "lockRotation": false, + "rotation": 0, + "alpha": 1, + "disposition": -1, + "displayBars": 0, + "bar1": { + "attribute": null + }, + "bar2": { + "attribute": null + }, + "light": { + "alpha": 0.5, + "angle": 360, + "bright": 0, + "coloration": 1, + "dim": 0, + "attenuation": 0.5, + "luminosity": 0.5, + "saturation": 0, + "contrast": 0, + "shadows": 0, + "animation": { + "type": null, + "speed": 5, + "intensity": 5, + "reverse": false + }, + "darkness": { + "min": 0, + "max": 1 + } + }, + "sight": { + "enabled": false, + "range": 0, + "angle": 360, + "visionMode": "basic", + "attenuation": 0.1, + "brightness": 0, + "saturation": 0, + "contrast": 0 + }, + "detectionModes": [], + "flags": {}, + "randomImg": false + }, + "items": [], + "effects": [], + "folder": null, + "sort": 0, + "ownership": { + "default": 0, + "R9ZgY0IvWl8ovIuT": 3 + }, + "flags": {}, + "_stats": { + "systemId": "swade", + "systemVersion": "3.2.5", + "coreVersion": "11.315", + "createdTime": 1695252634314, + "modifiedTime": 1702839170585, + "lastModifiedBy": "sVoCvBU1knmXzoYe" + }, + "_key": "!actors!U5v4gFHquo0Y1SAq" +} diff --git a/packs/helper-macros/CURRENT b/packs/helper-macros/CURRENT index b87ade1..d6f28cf 100644 --- a/packs/helper-macros/CURRENT +++ b/packs/helper-macros/CURRENT @@ -1 +1 @@ -MANIFEST-000374 +MANIFEST-000382 diff --git a/packs/helper-macros/LOG b/packs/helper-macros/LOG index ce42350..8675e7b 100644 --- a/packs/helper-macros/LOG +++ b/packs/helper-macros/LOG @@ -1,8 +1,3 @@ -2023/12/17-18:42:00.629710 7fe10e7fc700 Recovering log #371 -2023/12/17-18:42:00.637182 7fe10e7fc700 Delete type=3 #369 -2023/12/17-18:42:00.637209 7fe10e7fc700 Delete type=0 #371 -2023/12/17-18:43:13.343531 7fe10daa2700 Level-0 table #377: started -2023/12/17-18:43:13.343549 7fe10daa2700 Level-0 table #377: 0 bytes OK -2023/12/17-18:43:13.346491 7fe10daa2700 Delete type=0 #375 -2023/12/17-18:43:13.349558 7fe10daa2700 Manual compaction at level-0 from '!folders!hIbrWxg1nDutCSwt' @ 72057594037927935 : 1 .. '!macros!wU2mAUnw3RW9qMT8' @ 0 : 0; will stop at (end) -2023/12/17-18:43:13.349630 7fe10daa2700 Manual compaction at level-1 from '!folders!hIbrWxg1nDutCSwt' @ 72057594037927935 : 1 .. '!macros!wU2mAUnw3RW9qMT8' @ 0 : 0; will stop at (end) +2023/12/18-12:05:44.309941 7f35927fc700 Recovering log #380 +2023/12/18-12:05:44.330564 7f35927fc700 Delete type=3 #378 +2023/12/18-12:05:44.330586 7f35927fc700 Delete type=0 #380 diff --git a/packs/helper-macros/LOG.old b/packs/helper-macros/LOG.old index 62a7ded..2b50379 100644 --- a/packs/helper-macros/LOG.old +++ b/packs/helper-macros/LOG.old @@ -1,15 +1,8 @@ -2023/12/17-18:28:35.298023 7fe10effd700 Recovering log #368 -2023/12/17-18:28:35.305552 7fe10effd700 Delete type=0 #368 -2023/12/17-18:28:35.305566 7fe10effd700 Delete type=3 #367 -2023/12/17-18:41:54.025235 7fe10daa2700 Level-0 table #372: started -2023/12/17-18:41:54.029424 7fe10daa2700 Level-0 table #372: 1605 bytes OK -2023/12/17-18:41:54.033534 7fe10daa2700 Delete type=0 #370 -2023/12/17-18:41:54.046342 7fe10daa2700 Manual compaction at level-0 from '!folders!hIbrWxg1nDutCSwt' @ 72057594037927935 : 1 .. '!macros!wU2mAUnw3RW9qMT8' @ 0 : 0; will stop at (end) -2023/12/17-18:41:54.046432 7fe10daa2700 Manual compaction at level-1 from '!folders!hIbrWxg1nDutCSwt' @ 72057594037927935 : 1 .. '!macros!wU2mAUnw3RW9qMT8' @ 0 : 0; will stop at '!macros!pnLnFrfTTJeodFRy' @ 93 : 1 -2023/12/17-18:41:54.046435 7fe10daa2700 Compacting 1@1 + 1@2 files -2023/12/17-18:41:54.049148 7fe10daa2700 Generated table #373@1: 28 keys, 9006 bytes -2023/12/17-18:41:54.049161 7fe10daa2700 Compacted 1@1 + 1@2 files => 9006 bytes -2023/12/17-18:41:54.052132 7fe10daa2700 compacted to: files[ 0 0 1 0 0 0 0 ] -2023/12/17-18:41:54.052190 7fe10daa2700 Delete type=2 #223 -2023/12/17-18:41:54.052232 7fe10daa2700 Delete type=2 #372 -2023/12/17-18:41:54.056438 7fe10daa2700 Manual compaction at level-1 from '!macros!pnLnFrfTTJeodFRy' @ 93 : 1 .. '!macros!wU2mAUnw3RW9qMT8' @ 0 : 0; will stop at (end) +2023/12/17-21:54:41.302864 7fa92affd700 Recovering log #376 +2023/12/17-21:54:41.310384 7fa92affd700 Delete type=3 #374 +2023/12/17-21:54:41.310412 7fa92affd700 Delete type=0 #376 +2023/12/18-00:47:25.690528 7fa92a3f0700 Level-0 table #381: started +2023/12/18-00:47:25.690551 7fa92a3f0700 Level-0 table #381: 0 bytes OK +2023/12/18-00:47:25.700027 7fa92a3f0700 Delete type=0 #379 +2023/12/18-00:47:25.718020 7fa92a3f0700 Manual compaction at level-0 from '!folders!hIbrWxg1nDutCSwt' @ 72057594037927935 : 1 .. '!macros!wU2mAUnw3RW9qMT8' @ 0 : 0; will stop at (end) +2023/12/18-00:47:25.733607 7fa92a3f0700 Manual compaction at level-1 from '!folders!hIbrWxg1nDutCSwt' @ 72057594037927935 : 1 .. '!macros!wU2mAUnw3RW9qMT8' @ 0 : 0; will stop at (end) diff --git a/packs/helper-macros/MANIFEST-000374 b/packs/helper-macros/MANIFEST-000382 similarity index 72% rename from packs/helper-macros/MANIFEST-000374 rename to packs/helper-macros/MANIFEST-000382 index ad291024f08e167d9eb8a50951d8592e2a1c3e77..97ed95b89d1cc36af1c5ad94a8203765bf1660db 100644 GIT binary patch delta 24 gcmdnUxPWm&zo6FAZ%4Tp7@7VvaWXJBFtfx00BBhU3;+NC delta 41 rcmZ3$xRG%}zmlg>Pze_UBhz;#P6p;5Of0d5n<6KH1b%=7egOpl@FWVs diff --git a/packs/helper-macros/_source/Blind_e9HvLMtaDw2qpcE8.json b/packs/helper-macros/_source/Blind_e9HvLMtaDw2qpcE8.json new file mode 100644 index 0000000..84bd5a8 --- /dev/null +++ b/packs/helper-macros/_source/Blind_e9HvLMtaDw2qpcE8.json @@ -0,0 +1,25 @@ +{ + "name": "Blind", + "type": "script", + "author": "R9ZgY0IvWl8ovIuT", + "img": "icons/svg/blind.svg", + "scope": "global", + "command": "game.modules.get('swade-mb-helpers').api.powerEffects({\n token,\n targets: game.user.targets,\n name: 'Blind'\n})", + "flags": {}, + "_stats": { + "systemId": "swade", + "systemVersion": "3.1.4", + "coreVersion": "11.311", + "createdTime": 1678165762773, + "modifiedTime": 1696209757148, + "lastModifiedBy": "sVoCvBU1knmXzoYe" + }, + "_id": "e9HvLMtaDw2qpcE8", + "folder": "hIbrWxg1nDutCSwt", + "sort": 700000, + "ownership": { + "default": 0, + "R9ZgY0IvWl8ovIuT": 3 + }, + "_key": "!macros!e9HvLMtaDw2qpcE8" +} diff --git a/packs/helper-macros/_source/Boost_Lower_Trait_1AqIFHAcX5TRdE8X.json b/packs/helper-macros/_source/Boost_Lower_Trait_1AqIFHAcX5TRdE8X.json new file mode 100644 index 0000000..03f2e7a --- /dev/null +++ b/packs/helper-macros/_source/Boost_Lower_Trait_1AqIFHAcX5TRdE8X.json @@ -0,0 +1,25 @@ +{ + "name": "Boost/Lower Trait", + "type": "script", + "author": "R9ZgY0IvWl8ovIuT", + "img": "icons/magic/life/cross-embers-glow-yellow-purple.webp", + "scope": "global", + "command": "game.modules.get('swade-mb-helpers').api.powerEffects({\n token,\n targets: game.user.targets,\n name: 'Boost/Lower Trait'\n})", + "flags": {}, + "_stats": { + "systemId": "swade", + "systemVersion": "3.1.4", + "coreVersion": "11.311", + "createdTime": 1677458254287, + "modifiedTime": 1696209757148, + "lastModifiedBy": "sVoCvBU1knmXzoYe" + }, + "_id": "1AqIFHAcX5TRdE8X", + "folder": "hIbrWxg1nDutCSwt", + "sort": 2100000, + "ownership": { + "default": 0, + "R9ZgY0IvWl8ovIuT": 3 + }, + "_key": "!macros!1AqIFHAcX5TRdE8X" +} diff --git a/packs/helper-macros/_source/Burrow_e4LvHlTNDy5zcGIG.json b/packs/helper-macros/_source/Burrow_e4LvHlTNDy5zcGIG.json new file mode 100644 index 0000000..8a3bafc --- /dev/null +++ b/packs/helper-macros/_source/Burrow_e4LvHlTNDy5zcGIG.json @@ -0,0 +1,27 @@ +{ + "name": "Burrow", + "type": "script", + "author": "sVoCvBU1knmXzoYe", + "img": "icons/magic/earth/projectile-stone-landslide.webp", + "scope": "global", + "command": "game.modules.get('swade-mb-helpers').api.powerEffects({\n token,\n targets: game.user.targets,\n name: 'Burrow'\n})", + "folder": "hIbrWxg1nDutCSwt", + "ownership": { + "default": 0, + "sVoCvBU1knmXzoYe": 3 + }, + "flags": { + "core": {} + }, + "_stats": { + "systemId": "swade", + "systemVersion": "3.1.4", + "coreVersion": "11.311", + "createdTime": 1696179835774, + "modifiedTime": 1696209757148, + "lastModifiedBy": "sVoCvBU1knmXzoYe" + }, + "_id": "e4LvHlTNDy5zcGIG", + "sort": 400000, + "_key": "!macros!e4LvHlTNDy5zcGIG" +} diff --git a/packs/helper-macros/_source/Confusion_L2IstecV7ivcrgUI.json b/packs/helper-macros/_source/Confusion_L2IstecV7ivcrgUI.json new file mode 100644 index 0000000..eb2341b --- /dev/null +++ b/packs/helper-macros/_source/Confusion_L2IstecV7ivcrgUI.json @@ -0,0 +1,25 @@ +{ + "name": "Confusion", + "type": "script", + "author": "R9ZgY0IvWl8ovIuT", + "img": "icons/magic/control/hypnosis-mesmerism-swirl.webp", + "scope": "global", + "command": "game.modules.get('swade-mb-helpers').api.powerEffects({\n token,\n targets: game.user.targets,\n name: 'Confusion'\n})", + "flags": {}, + "_stats": { + "systemId": "swade", + "systemVersion": "3.1.4", + "coreVersion": "11.311", + "createdTime": 1678082334572, + "modifiedTime": 1696209757148, + "lastModifiedBy": "sVoCvBU1knmXzoYe" + }, + "_id": "L2IstecV7ivcrgUI", + "folder": "hIbrWxg1nDutCSwt", + "sort": 2000000, + "ownership": { + "default": 0, + "R9ZgY0IvWl8ovIuT": 3 + }, + "_key": "!macros!L2IstecV7ivcrgUI" +} diff --git a/packs/helper-macros/_source/Darksight_YIdF96EfItR641oP.json b/packs/helper-macros/_source/Darksight_YIdF96EfItR641oP.json new file mode 100644 index 0000000..eb9d073 --- /dev/null +++ b/packs/helper-macros/_source/Darksight_YIdF96EfItR641oP.json @@ -0,0 +1,27 @@ +{ + "name": "Darksight", + "type": "script", + "author": "sVoCvBU1knmXzoYe", + "img": "icons/magic/perception/eye-ringed-glow-angry-small-teal.webp", + "scope": "global", + "command": "game.modules.get('swade-mb-helpers').api.powerEffects({\n token,\n targets: game.user.targets,\n name: 'Darksight'\n})", + "folder": "hIbrWxg1nDutCSwt", + "ownership": { + "default": 0, + "sVoCvBU1knmXzoYe": 3 + }, + "flags": { + "core": {} + }, + "_stats": { + "systemId": "swade", + "systemVersion": "3.1.4", + "coreVersion": "11.311", + "createdTime": 1696179835774, + "modifiedTime": 1696209757148, + "lastModifiedBy": "sVoCvBU1knmXzoYe" + }, + "_id": "YIdF96EfItR641oP", + "sort": 300000, + "_key": "!macros!YIdF96EfItR641oP" +} diff --git a/packs/helper-macros/_source/Deflection_HYTiftQW0pwwOQGH.json b/packs/helper-macros/_source/Deflection_HYTiftQW0pwwOQGH.json new file mode 100644 index 0000000..4fbedbf --- /dev/null +++ b/packs/helper-macros/_source/Deflection_HYTiftQW0pwwOQGH.json @@ -0,0 +1,25 @@ +{ + "name": "Deflection", + "type": "script", + "scope": "global", + "author": "R9ZgY0IvWl8ovIuT", + "img": "icons/magic/defensive/shield-barrier-deflect-teal.webp", + "command": "game.modules.get('swade-mb-helpers').api.powerEffects({\n token,\n targets: game.user.targets,\n name: 'Deflection'\n})", + "flags": {}, + "_stats": { + "systemId": "swade", + "systemVersion": "3.1.4", + "coreVersion": "11.311", + "createdTime": 1677645552357, + "modifiedTime": 1696209757148, + "lastModifiedBy": "sVoCvBU1knmXzoYe" + }, + "_id": "HYTiftQW0pwwOQGH", + "folder": "hIbrWxg1nDutCSwt", + "sort": 1900000, + "ownership": { + "default": 0, + "R9ZgY0IvWl8ovIuT": 3 + }, + "_key": "!macros!HYTiftQW0pwwOQGH" +} diff --git a/packs/helper-macros/_source/Detect_Conceal_Arcana_stHHxnYfGW0X1l5R.json b/packs/helper-macros/_source/Detect_Conceal_Arcana_stHHxnYfGW0X1l5R.json new file mode 100644 index 0000000..267d590 --- /dev/null +++ b/packs/helper-macros/_source/Detect_Conceal_Arcana_stHHxnYfGW0X1l5R.json @@ -0,0 +1,27 @@ +{ + "name": "Detect/Conceal Arcana", + "type": "script", + "author": "sVoCvBU1knmXzoYe", + "img": "icons/magic/perception/third-eye-blue-red.webp", + "scope": "global", + "command": "game.modules.get('swade-mb-helpers').api.powerEffects({\n token,\n targets: game.user.targets,\n name: 'Detect/Conceal Arcana'\n})", + "folder": "hIbrWxg1nDutCSwt", + "ownership": { + "default": 0, + "sVoCvBU1knmXzoYe": 3 + }, + "flags": { + "core": {} + }, + "_stats": { + "systemId": "swade", + "systemVersion": "3.1.4", + "coreVersion": "11.311", + "createdTime": 1696208623170, + "modifiedTime": 1696209757148, + "lastModifiedBy": "sVoCvBU1knmXzoYe" + }, + "_id": "stHHxnYfGW0X1l5R", + "sort": 600000, + "_key": "!macros!stHHxnYfGW0X1l5R" +} diff --git a/packs/helper-macros/_source/Disguise_MYfrVZpLSrpp0vYW.json b/packs/helper-macros/_source/Disguise_MYfrVZpLSrpp0vYW.json new file mode 100644 index 0000000..0a208d0 --- /dev/null +++ b/packs/helper-macros/_source/Disguise_MYfrVZpLSrpp0vYW.json @@ -0,0 +1,27 @@ +{ + "name": "Disguise", + "type": "script", + "author": "sVoCvBU1knmXzoYe", + "img": "icons/skills/social/diplomacy-peace-alliance.webp", + "scope": "global", + "command": "game.modules.get('swade-mb-helpers').api.powerEffects({\n token,\n targets: game.user.targets,\n name: 'Disguise'\n})", + "folder": "hIbrWxg1nDutCSwt", + "ownership": { + "default": 0, + "sVoCvBU1knmXzoYe": 3 + }, + "flags": { + "core": {} + }, + "_stats": { + "systemId": "swade", + "systemVersion": "3.1.4", + "coreVersion": "11.311", + "createdTime": 1696208623170, + "modifiedTime": 1696209757148, + "lastModifiedBy": "sVoCvBU1knmXzoYe" + }, + "_id": "MYfrVZpLSrpp0vYW", + "sort": 200000, + "_key": "!macros!MYfrVZpLSrpp0vYW" +} diff --git a/packs/helper-macros/_source/Effect_Macros_hIbrWxg1nDutCSwt.json b/packs/helper-macros/_source/Effect_Macros_hIbrWxg1nDutCSwt.json new file mode 100644 index 0000000..8bc4f8c --- /dev/null +++ b/packs/helper-macros/_source/Effect_Macros_hIbrWxg1nDutCSwt.json @@ -0,0 +1,19 @@ +{ + "name": "Effect Macros", + "sorting": "a", + "folder": null, + "type": "Macro", + "_id": "hIbrWxg1nDutCSwt", + "sort": 0, + "color": null, + "flags": {}, + "_stats": { + "systemId": "swade", + "systemVersion": "3.2.2", + "coreVersion": "11.315", + "createdTime": 1695251622720, + "modifiedTime": 1700436446749, + "lastModifiedBy": "R9ZgY0IvWl8ovIuT" + }, + "_key": "!folders!hIbrWxg1nDutCSwt" +} diff --git a/packs/helper-macros/_source/Entangle_2TOeRNCJT3T2px8D.json b/packs/helper-macros/_source/Entangle_2TOeRNCJT3T2px8D.json new file mode 100644 index 0000000..5c233e1 --- /dev/null +++ b/packs/helper-macros/_source/Entangle_2TOeRNCJT3T2px8D.json @@ -0,0 +1,25 @@ +{ + "name": "Entangle", + "type": "script", + "scope": "global", + "author": "R9ZgY0IvWl8ovIuT", + "img": "icons/magic/nature/root-vine-barrier-wall-brown.webp", + "command": "game.modules.get('swade-mb-helpers').api.powerEffects({\n token,\n targets: game.user.targets,\n name: 'Entangle'\n})", + "flags": {}, + "_stats": { + "systemId": "swade", + "systemVersion": "3.1.4", + "coreVersion": "11.311", + "createdTime": 1678164427219, + "modifiedTime": 1696209757148, + "lastModifiedBy": "sVoCvBU1knmXzoYe" + }, + "_id": "2TOeRNCJT3T2px8D", + "folder": "hIbrWxg1nDutCSwt", + "sort": 1800000, + "ownership": { + "default": 0, + "R9ZgY0IvWl8ovIuT": 3 + }, + "_key": "!macros!2TOeRNCJT3T2px8D" +} diff --git a/packs/helper-macros/_source/Gold_Totals_QMnx9cuyw81kRS2o.json b/packs/helper-macros/_source/Gold_Totals_QMnx9cuyw81kRS2o.json new file mode 100644 index 0000000..ce0464d --- /dev/null +++ b/packs/helper-macros/_source/Gold_Totals_QMnx9cuyw81kRS2o.json @@ -0,0 +1,39 @@ +{ + "name": "Gold Totals", + "type": "script", + "author": "ueJGUfSYuRRL3Ypr", + "img": "icons/commodities/currency/coins-plain-stack-gold-yellow.webp", + "scope": "global", + "command": "let tokens = []\nif (canvas.tokens.controlled.length > 0) {\n tokens = canvas.tokens.controlled\n}\nif (tokens.length > 0) {\n main(tokens)\n} else {\n ui.notifications.error('Please select or target a token')\n}\n\nasync function main (tokens) {\n const currencies = ['Copper', 'Silver', 'Gold', 'Platinum']\n let template = '
'\n const fmtOptions = {\n minimumIntegerDigits: 1,\n minimumFractionDigits: 2,\n maximumFractionDigits: 2\n }\n const fmt = Intl.NumberFormat('en-US', fmtOptions)\n for (const token of tokens) {\n const actor = token.actor\n let total = 0\n for (const item of actor.items.filter(i => currencies.indexOf(i.name) > -1)) {\n total += item.system.price * item.system.quantity\n }\n template += ``\n }\n template += ''\n Dialog.prompt({\n title: 'Currency Totals',\n content: template\n })\n}", + "ownership": { + "default": 0, + "ueJGUfSYuRRL3Ypr": 3 + }, + "flags": { + "advanced-macros": { + "runAsGM": false, + "runForSpecificUser": "" + }, + "exportSource": { + "world": "swade-module-test", + "system": "swade", + "coreVersion": "10.291", + "systemVersion": "2.2.5" + }, + "core": { + "sourceId": "Macro.lOAxoK00x5QQFbTH" + } + }, + "_stats": { + "systemId": "swade", + "systemVersion": "3.2.2", + "coreVersion": "11.315", + "createdTime": 1680966567327, + "modifiedTime": 1700436589221, + "lastModifiedBy": "R9ZgY0IvWl8ovIuT" + }, + "folder": null, + "sort": 300000, + "_id": "QMnx9cuyw81kRS2o", + "_key": "!macros!QMnx9cuyw81kRS2o" +} diff --git a/packs/helper-macros/_source/Havoc_0CalvjuxtMvY2enn.json b/packs/helper-macros/_source/Havoc_0CalvjuxtMvY2enn.json new file mode 100644 index 0000000..9eb01b2 --- /dev/null +++ b/packs/helper-macros/_source/Havoc_0CalvjuxtMvY2enn.json @@ -0,0 +1,27 @@ +{ + "name": "Havoc", + "type": "script", + "scope": "global", + "author": "R9ZgY0IvWl8ovIuT", + "img": "icons/magic/air/air-burst-spiral-yellow.webp", + "command": "game.modules.get('swade-mb-helpers').api.powerEffects({\n token,\n targets: game.user.targets,\n name: 'Havoc'\n})", + "flags": { + "core": {} + }, + "_stats": { + "systemId": "swade", + "systemVersion": "3.2.2", + "coreVersion": "11.315", + "createdTime": 1678164427219, + "modifiedTime": 1700436564699, + "lastModifiedBy": "R9ZgY0IvWl8ovIuT" + }, + "folder": "hIbrWxg1nDutCSwt", + "ownership": { + "default": 0, + "R9ZgY0IvWl8ovIuT": 3 + }, + "_id": "0CalvjuxtMvY2enn", + "sort": 0, + "_key": "!macros!0CalvjuxtMvY2enn" +} diff --git a/packs/helper-macros/_source/Intangibility_OMDjgWLJyE9BJAwT.json b/packs/helper-macros/_source/Intangibility_OMDjgWLJyE9BJAwT.json new file mode 100644 index 0000000..356aea2 --- /dev/null +++ b/packs/helper-macros/_source/Intangibility_OMDjgWLJyE9BJAwT.json @@ -0,0 +1,25 @@ +{ + "name": "Intangibility", + "type": "script", + "author": "R9ZgY0IvWl8ovIuT", + "img": "icons/magic/control/debuff-energy-hold-levitate-blue-yellow.webp", + "scope": "global", + "command": "game.modules.get('swade-mb-helpers').api.powerEffects({\n token,\n targets: game.user.targets,\n name: 'Intangibility'\n})", + "flags": {}, + "_stats": { + "systemId": "swade", + "systemVersion": "3.1.4", + "coreVersion": "11.311", + "createdTime": 1678168528898, + "modifiedTime": 1696209757148, + "lastModifiedBy": "sVoCvBU1knmXzoYe" + }, + "_id": "OMDjgWLJyE9BJAwT", + "folder": "hIbrWxg1nDutCSwt", + "sort": 1700000, + "ownership": { + "default": 0, + "R9ZgY0IvWl8ovIuT": 3 + }, + "_key": "!macros!OMDjgWLJyE9BJAwT" +} diff --git a/packs/helper-macros/_source/Invisibility_11GOryzx2Q8MXbT6.json b/packs/helper-macros/_source/Invisibility_11GOryzx2Q8MXbT6.json new file mode 100644 index 0000000..8c7a786 --- /dev/null +++ b/packs/helper-macros/_source/Invisibility_11GOryzx2Q8MXbT6.json @@ -0,0 +1,25 @@ +{ + "name": "Invisibility", + "type": "script", + "author": "R9ZgY0IvWl8ovIuT", + "img": "icons/svg/invisible.svg", + "scope": "global", + "command": "game.modules.get('swade-mb-helpers').api.powerEffects({\n token,\n targets: game.user.targets,\n name: 'Invisibility'\n})", + "flags": {}, + "_stats": { + "systemId": "swade", + "systemVersion": "3.1.4", + "coreVersion": "11.311", + "createdTime": 1678168163811, + "modifiedTime": 1696209757148, + "lastModifiedBy": "sVoCvBU1knmXzoYe" + }, + "_id": "11GOryzx2Q8MXbT6", + "folder": "hIbrWxg1nDutCSwt", + "sort": 1600000, + "ownership": { + "default": 0, + "R9ZgY0IvWl8ovIuT": 3 + }, + "_key": "!macros!11GOryzx2Q8MXbT6" +} diff --git a/packs/helper-macros/_source/Power_Effects_Item_Action_AjuA11hQ48UJNwlH.json b/packs/helper-macros/_source/Power_Effects_Item_Action_AjuA11hQ48UJNwlH.json new file mode 100644 index 0000000..9a2a755 --- /dev/null +++ b/packs/helper-macros/_source/Power_Effects_Item_Action_AjuA11hQ48UJNwlH.json @@ -0,0 +1,27 @@ +{ + "name": "Power Effects Item Action", + "type": "script", + "author": "sVoCvBU1knmXzoYe", + "img": "icons/magic/symbols/rune-sigil-black-pink.webp", + "scope": "global", + "command": "game.modules.get('swade-mb-helpers').api.powerEffects({\n token,\n item,\n targets: game.user.targets,\n})", + "folder": null, + "ownership": { + "default": 0, + "sVoCvBU1knmXzoYe": 3 + }, + "flags": { + "core": {} + }, + "_stats": { + "systemId": "swade", + "systemVersion": "3.2.2", + "coreVersion": "11.315", + "createdTime": 1693853383361, + "modifiedTime": 1700436589221, + "lastModifiedBy": "R9ZgY0IvWl8ovIuT" + }, + "_id": "AjuA11hQ48UJNwlH", + "sort": 200000, + "_key": "!macros!AjuA11hQ48UJNwlH" +} diff --git a/packs/helper-macros/_source/Protection_YETsNWOWfIxyLPdC.json b/packs/helper-macros/_source/Protection_YETsNWOWfIxyLPdC.json new file mode 100644 index 0000000..263b429 --- /dev/null +++ b/packs/helper-macros/_source/Protection_YETsNWOWfIxyLPdC.json @@ -0,0 +1,25 @@ +{ + "name": "Protection", + "type": "script", + "scope": "global", + "author": "R9ZgY0IvWl8ovIuT", + "img": "systems/swade/assets/icons/status/status_protection.svg", + "command": "game.modules.get('swade-mb-helpers').api.powerEffects({\n token,\n targets: game.user.targets,\n name: 'Protection'\n})", + "flags": {}, + "_stats": { + "systemId": "swade", + "systemVersion": "3.1.4", + "coreVersion": "11.311", + "createdTime": 1677630174987, + "modifiedTime": 1696209757148, + "lastModifiedBy": "sVoCvBU1knmXzoYe" + }, + "_id": "YETsNWOWfIxyLPdC", + "folder": "hIbrWxg1nDutCSwt", + "sort": 1500000, + "ownership": { + "default": 0, + "R9ZgY0IvWl8ovIuT": 3 + }, + "_key": "!macros!YETsNWOWfIxyLPdC" +} diff --git a/packs/helper-macros/_source/Request_Notice_Roll_pnLnFrfTTJeodFRy.json b/packs/helper-macros/_source/Request_Notice_Roll_pnLnFrfTTJeodFRy.json new file mode 100644 index 0000000..f8ecec8 --- /dev/null +++ b/packs/helper-macros/_source/Request_Notice_Roll_pnLnFrfTTJeodFRy.json @@ -0,0 +1,27 @@ +{ + "name": "Request Notice Roll", + "type": "script", + "scope": "global", + "author": "sVoCvBU1knmXzoYe", + "img": "icons/sundries/gaming/dice-pair-white-green.webp", + "command": "const requestRollFromTokens = game.modules.get('swade-mb-helpers').api.requestRollFromTokens\n\nconst traitName = 'Notice'\nconst traitType = 'skill' // or 'attribute'\n\nasync function main () {\n let tokens = Array.from(game.user.targets)\n if (tokens.length < 1) {\n tokens = canvas.tokens.controlled\n }\n if (tokens.length < 1) {\n ui.notifications.error('Please target or select some tokens')\n return\n }\n\n const menuData = {\n inputs: [\n { type: 'info', label: `Requesting roll from ${tokens.map(t => t.name).join(', ')}` },\n {\n type: 'info',\n label: `Requesting a ${traitName} roll`\n },\n { type: 'number', label: 'Roll Modifier', options: 0 },\n { type: 'text', label: 'Roll Modifier Description', options: 'Roll Modifier' }\n ],\n buttons: [\n { label: 'Request roll', value: 'ok', default: true },\n { label: 'Cancel', value: 'cancel' }\n ]\n }\n const menuConfig = {\n title: `Request ${traitName} roll...`\n }\n const result = await warpgate.menu(menuData, menuConfig)\n\n if (result.buttons !== 'ok') {\n return\n }\n console.log(result)\n const rollMod = result.inputs[2]\n const rollModDesc = result.inputs[3]\n const rollType = traitType\n const rollDesc = traitName\n const options = {}\n if (rollMod !== 0) {\n options.mods = [{ label: rollModDesc, value: rollMod }]\n }\n\n requestRollFromTokens(tokens, rollType, rollDesc, options)\n}\n\nmain()", + "folder": null, + "ownership": { + "default": 0, + "sVoCvBU1knmXzoYe": 3 + }, + "flags": { + "core": {} + }, + "_stats": { + "systemId": "swade", + "systemVersion": "3.2.5", + "coreVersion": "11.315", + "createdTime": 1700430548162, + "modifiedTime": 1702860052587, + "lastModifiedBy": "sVoCvBU1knmXzoYe" + }, + "_id": "pnLnFrfTTJeodFRy", + "sort": 0, + "_key": "!macros!pnLnFrfTTJeodFRy" +} diff --git a/packs/helper-macros/_source/Request_Roll_G9ksuYJo1512PTo9.json b/packs/helper-macros/_source/Request_Roll_G9ksuYJo1512PTo9.json new file mode 100644 index 0000000..d38b8b3 --- /dev/null +++ b/packs/helper-macros/_source/Request_Roll_G9ksuYJo1512PTo9.json @@ -0,0 +1,27 @@ +{ + "name": "Request Roll", + "type": "script", + "scope": "global", + "author": "R9ZgY0IvWl8ovIuT", + "img": "icons/sundries/gaming/dice-runed-tan.webp", + "command": "const requestRollFromTokens = game.modules.get('swade-mb-helpers').api.requestRollFromTokens\n\nasync function main () {\n let tokens = Array.from(game.user.targets)\n if (tokens.length < 1) {\n tokens = canvas.tokens.controlled\n }\n if (tokens.length < 1) {\n ui.notifications.error('Please target or select some tokens')\n return\n }\n\n const menuData = {\n inputs: [\n { type: 'info', label: `Requesting roll from ${tokens.map(t => t.name).join(', ')}` },\n {\n type: 'select',\n label: 'Trait to roll',\n options: []\n },\n { type: 'number', label: 'Roll Modifier', options: 0 },\n { type: 'text', label: 'Roll Modifier Description', options: 'Roll Modifier' }\n ],\n buttons: [\n { label: 'Request roll', value: 'ok', default: true },\n { label: 'Cancel', value: 'cancel' }\n ]\n }\n const menuConfig = {\n title: 'Request roll...'\n }\n for (const attribute of ['Agility', 'Smarts', 'Spirit', 'Strength', 'Vigor']) {\n menuData.inputs[1].options.push(\n { html: `Attribute | ${attribute}`, value: `a|${attribute}` }\n )\n }\n const skillSet = new Set()\n for (const token of tokens) {\n const skills = token.actor.items.filter(i => i.type === 'skill' &&\n !['Untrained', 'Unskilled Attempt'].includes(i.name))\n for (const skill of skills) {\n skillSet.add(skill.name)\n }\n }\n for (const skill of Array.from(skillSet).sort()) {\n menuData.inputs[1].options.push(\n { html: `Skill | ${skill}`, value: `s|${skill}` })\n }\n menuData.inputs[1].options.push(\n { html: 'Skill | Untrained', value: 's|NOSKILL' })\n const result = await warpgate.menu(menuData, menuConfig)\n\n if (result.buttons !== 'ok') {\n return\n }\n console.log(result)\n const rollMod = result.inputs[2]\n const rollModDesc = result.inputs[3]\n const rollParts = result.inputs[1].split('|')\n const rollType = (rollParts[0] === 'a' ? 'attribute' : 'skill')\n const rollDesc = rollParts[1]\n const options = {}\n if (rollMod !== 0) {\n options.mods = [{ label: rollModDesc, value: rollMod }]\n }\n\n requestRollFromTokens(tokens, rollType, rollDesc, options)\n}\n\nmain()", + "folder": null, + "ownership": { + "default": 0, + "R9ZgY0IvWl8ovIuT": 3 + }, + "flags": { + "core": {} + }, + "_stats": { + "systemId": "swade", + "systemVersion": "3.2.2", + "coreVersion": "11.315", + "createdTime": 1700430548162, + "modifiedTime": 1700436589221, + "lastModifiedBy": "R9ZgY0IvWl8ovIuT" + }, + "_id": "G9ksuYJo1512PTo9", + "sort": 100000, + "_key": "!macros!G9ksuYJo1512PTo9" +} diff --git a/packs/helper-macros/_source/Shape_Change_8gxeYSUJ1FQhmJRw.json b/packs/helper-macros/_source/Shape_Change_8gxeYSUJ1FQhmJRw.json new file mode 100644 index 0000000..212cda7 --- /dev/null +++ b/packs/helper-macros/_source/Shape_Change_8gxeYSUJ1FQhmJRw.json @@ -0,0 +1,25 @@ +{ + "folder": "hIbrWxg1nDutCSwt", + "name": "Shape Change", + "type": "script", + "_id": "8gxeYSUJ1FQhmJRw", + "author": "sVoCvBU1knmXzoYe", + "img": "icons/magic/symbols/runes-star-blue.webp", + "scope": "global", + "command": "game.modules.get('swade-mb-helpers').api.powerEffects({\n token,\n targets: game.user.targets,\n name: 'Shape Change'\n})", + "sort": 100000, + "ownership": { + "default": 0, + "sVoCvBU1knmXzoYe": 3 + }, + "flags": {}, + "_stats": { + "systemId": "swade", + "systemVersion": "3.1.4", + "coreVersion": "11.311", + "createdTime": 1695618313958, + "modifiedTime": 1696209757148, + "lastModifiedBy": "sVoCvBU1knmXzoYe" + }, + "_key": "!macros!8gxeYSUJ1FQhmJRw" +} diff --git a/packs/helper-macros/_source/Sloth_Speed_uWF4I2mnDkV8NZ6j.json b/packs/helper-macros/_source/Sloth_Speed_uWF4I2mnDkV8NZ6j.json new file mode 100644 index 0000000..d953427 --- /dev/null +++ b/packs/helper-macros/_source/Sloth_Speed_uWF4I2mnDkV8NZ6j.json @@ -0,0 +1,27 @@ +{ + "name": "Sloth/Speed", + "type": "script", + "author": "sVoCvBU1knmXzoYe", + "img": "icons/skills/movement/feet-winged-sandals-tan.webp", + "scope": "global", + "command": "game.modules.get('swade-mb-helpers').api.powerEffects({\n token,\n targets: game.user.targets,\n name: 'Sloth/Speed'\n})", + "flags": { + "core": {} + }, + "_stats": { + "systemId": "swade", + "systemVersion": "3.1.4", + "coreVersion": "11.311", + "createdTime": 1677996503821, + "modifiedTime": 1696209757148, + "lastModifiedBy": "sVoCvBU1knmXzoYe" + }, + "folder": "hIbrWxg1nDutCSwt", + "ownership": { + "default": 0, + "sVoCvBU1knmXzoYe": 3 + }, + "_id": "uWF4I2mnDkV8NZ6j", + "sort": 500000, + "_key": "!macros!uWF4I2mnDkV8NZ6j" +} diff --git a/packs/helper-macros/_source/Smite_C1vGk7AKQDpcvKyP.json b/packs/helper-macros/_source/Smite_C1vGk7AKQDpcvKyP.json new file mode 100644 index 0000000..db05216 --- /dev/null +++ b/packs/helper-macros/_source/Smite_C1vGk7AKQDpcvKyP.json @@ -0,0 +1,27 @@ +{ + "name": "Smite", + "type": "script", + "scope": "global", + "author": "R9ZgY0IvWl8ovIuT", + "img": "systems/swade/assets/icons/status/status_smite.svg", + "command": "game.modules.get('swade-mb-helpers').api.powerEffects({\n token,\n targets: game.user.targets,\n name: 'Smite'\n})", + "flags": { + "core": {} + }, + "_stats": { + "systemId": "swade", + "systemVersion": "3.1.4", + "coreVersion": "11.311", + "createdTime": 1677548889704, + "modifiedTime": 1696209757148, + "lastModifiedBy": "sVoCvBU1knmXzoYe" + }, + "_id": "C1vGk7AKQDpcvKyP", + "folder": "hIbrWxg1nDutCSwt", + "sort": 1400000, + "ownership": { + "default": 0, + "R9ZgY0IvWl8ovIuT": 3 + }, + "_key": "!macros!C1vGk7AKQDpcvKyP" +} diff --git a/packs/helper-macros/_source/Summon_Ally_RV09eJi9iG5bfupo.json b/packs/helper-macros/_source/Summon_Ally_RV09eJi9iG5bfupo.json new file mode 100644 index 0000000..4fa43cc --- /dev/null +++ b/packs/helper-macros/_source/Summon_Ally_RV09eJi9iG5bfupo.json @@ -0,0 +1,25 @@ +{ + "name": "Summon Ally", + "type": "script", + "author": "R9ZgY0IvWl8ovIuT", + "img": "icons/magic/symbols/runes-star-orange.webp", + "scope": "global", + "command": "game.modules.get('swade-mb-helpers').api.powerEffects({\n token,\n targets: game.user.targets,\n name: 'Summon Ally'\n})", + "flags": {}, + "_stats": { + "systemId": "swade", + "systemVersion": "3.1.4", + "coreVersion": "11.311", + "createdTime": 1677996503821, + "modifiedTime": 1696209757148, + "lastModifiedBy": "sVoCvBU1knmXzoYe" + }, + "_id": "RV09eJi9iG5bfupo", + "folder": "hIbrWxg1nDutCSwt", + "sort": 1000000, + "ownership": { + "default": 0, + "R9ZgY0IvWl8ovIuT": 3 + }, + "_key": "!macros!RV09eJi9iG5bfupo" +} diff --git a/packs/helper-macros/_source/Summon_Animal_745gcs8ytsCLPXe1.json b/packs/helper-macros/_source/Summon_Animal_745gcs8ytsCLPXe1.json new file mode 100644 index 0000000..2937d81 --- /dev/null +++ b/packs/helper-macros/_source/Summon_Animal_745gcs8ytsCLPXe1.json @@ -0,0 +1,25 @@ +{ + "name": "Summon Animal", + "type": "script", + "_id": "745gcs8ytsCLPXe1", + "author": "R9ZgY0IvWl8ovIuT", + "img": "icons/magic/symbols/mask-yellow-orange.webp", + "scope": "global", + "command": "game.modules.get('swade-mb-helpers').api.powerEffects({\n token,\n targets: game.user.targets,\n name: 'Summon Animal'\n})", + "folder": "hIbrWxg1nDutCSwt", + "flags": {}, + "_stats": { + "systemId": "swade", + "systemVersion": "3.1.4", + "coreVersion": "11.311", + "createdTime": 1694403406793, + "modifiedTime": 1696209757148, + "lastModifiedBy": "sVoCvBU1knmXzoYe" + }, + "sort": 800000, + "ownership": { + "default": 0, + "R9ZgY0IvWl8ovIuT": 3 + }, + "_key": "!macros!745gcs8ytsCLPXe1" +} diff --git a/packs/helper-macros/_source/Summon_Monster_V8r5hugGBQfqlhYt.json b/packs/helper-macros/_source/Summon_Monster_V8r5hugGBQfqlhYt.json new file mode 100644 index 0000000..8a953b9 --- /dev/null +++ b/packs/helper-macros/_source/Summon_Monster_V8r5hugGBQfqlhYt.json @@ -0,0 +1,25 @@ +{ + "name": "Summon Monster", + "type": "script", + "_id": "V8r5hugGBQfqlhYt", + "author": "R9ZgY0IvWl8ovIuT", + "img": "icons/magic/symbols/mask-metal-silver-white.webp", + "scope": "global", + "command": "game.modules.get('swade-mb-helpers').api.powerEffects({\n token,\n targets: game.user.targets,\n name: 'Summon Monster'\n})", + "folder": "hIbrWxg1nDutCSwt", + "flags": {}, + "_stats": { + "systemId": "swade", + "systemVersion": "3.1.4", + "coreVersion": "11.311", + "createdTime": 1694403446899, + "modifiedTime": 1696209757148, + "lastModifiedBy": "sVoCvBU1knmXzoYe" + }, + "sort": 1300000, + "ownership": { + "default": 0, + "R9ZgY0IvWl8ovIuT": 3 + }, + "_key": "!macros!V8r5hugGBQfqlhYt" +} diff --git a/packs/helper-macros/_source/Summon_Nature_s_Ally_wU2mAUnw3RW9qMT8.json b/packs/helper-macros/_source/Summon_Nature_s_Ally_wU2mAUnw3RW9qMT8.json new file mode 100644 index 0000000..4eb5584 --- /dev/null +++ b/packs/helper-macros/_source/Summon_Nature_s_Ally_wU2mAUnw3RW9qMT8.json @@ -0,0 +1,25 @@ +{ + "name": "Summon Nature's Ally", + "type": "script", + "_id": "wU2mAUnw3RW9qMT8", + "author": "R9ZgY0IvWl8ovIuT", + "img": "icons/magic/symbols/mask-yellow-orange.webp", + "scope": "global", + "command": "game.modules.get('swade-mb-helpers').api.powerEffects({\n token,\n targets: game.user.targets,\n name: 'Summon Nature's Ally'\n})", + "folder": "hIbrWxg1nDutCSwt", + "flags": {}, + "_stats": { + "systemId": "swade", + "systemVersion": "3.1.4", + "coreVersion": "11.311", + "createdTime": 1694403243667, + "modifiedTime": 1696209757148, + "lastModifiedBy": "sVoCvBU1knmXzoYe" + }, + "sort": 900000, + "ownership": { + "default": 0, + "R9ZgY0IvWl8ovIuT": 3 + }, + "_key": "!macros!wU2mAUnw3RW9qMT8" +} diff --git a/packs/helper-macros/_source/Summon_Planar_Ally_jACgJo0HAmkyzFjZ.json b/packs/helper-macros/_source/Summon_Planar_Ally_jACgJo0HAmkyzFjZ.json new file mode 100644 index 0000000..49a693c --- /dev/null +++ b/packs/helper-macros/_source/Summon_Planar_Ally_jACgJo0HAmkyzFjZ.json @@ -0,0 +1,25 @@ +{ + "name": "Summon Planar Ally", + "type": "script", + "_id": "jACgJo0HAmkyzFjZ", + "author": "R9ZgY0IvWl8ovIuT", + "img": "icons/magic/symbols/runes-star-orange-purple.webp", + "scope": "global", + "command": "game.modules.get('swade-mb-helpers').api.powerEffects({\n token,\n targets: game.user.targets,\n name: 'Summon Planar Ally'\n})", + "folder": "hIbrWxg1nDutCSwt", + "flags": {}, + "_stats": { + "systemId": "swade", + "systemVersion": "3.1.4", + "coreVersion": "11.311", + "createdTime": 1694403168266, + "modifiedTime": 1696209757148, + "lastModifiedBy": "sVoCvBU1knmXzoYe" + }, + "sort": 1200000, + "ownership": { + "default": 0, + "R9ZgY0IvWl8ovIuT": 3 + }, + "_key": "!macros!jACgJo0HAmkyzFjZ" +} diff --git a/packs/helper-macros/_source/Summon_Undead_eeX3Hoy2Uxo5BeUC.json b/packs/helper-macros/_source/Summon_Undead_eeX3Hoy2Uxo5BeUC.json new file mode 100644 index 0000000..76e1a50 --- /dev/null +++ b/packs/helper-macros/_source/Summon_Undead_eeX3Hoy2Uxo5BeUC.json @@ -0,0 +1,25 @@ +{ + "name": "Summon Undead", + "type": "script", + "_id": "eeX3Hoy2Uxo5BeUC", + "author": "R9ZgY0IvWl8ovIuT", + "img": "icons/magic/symbols/star-yellow.webp", + "scope": "global", + "command": "game.modules.get('swade-mb-helpers').api.powerEffects({\n token,\n targets: game.user.targets,\n name: 'Summon Undead'\n})", + "folder": "hIbrWxg1nDutCSwt", + "flags": {}, + "_stats": { + "systemId": "swade", + "systemVersion": "3.1.4", + "coreVersion": "11.311", + "createdTime": 1694404089533, + "modifiedTime": 1696209757148, + "lastModifiedBy": "sVoCvBU1knmXzoYe" + }, + "sort": 1100000, + "ownership": { + "default": 0, + "R9ZgY0IvWl8ovIuT": 3 + }, + "_key": "!macros!eeX3Hoy2Uxo5BeUC" +} diff --git a/packs/helper-macros/_source/Zombie_mdci1DSM3UTaLzrb.json b/packs/helper-macros/_source/Zombie_mdci1DSM3UTaLzrb.json new file mode 100644 index 0000000..ffc1b37 --- /dev/null +++ b/packs/helper-macros/_source/Zombie_mdci1DSM3UTaLzrb.json @@ -0,0 +1,27 @@ +{ + "name": "Zombie", + "type": "script", + "author": "sVoCvBU1knmXzoYe", + "img": "icons/magic/death/hand-dirt-undead-zombie.webp", + "scope": "global", + "command": "game.modules.get('swade-mb-helpers').api.powerEffects({\n token,\n targets: game.user.targets,\n name: 'Zombie'\n})", + "folder": "hIbrWxg1nDutCSwt", + "flags": { + "core": {} + }, + "_stats": { + "systemId": "swade", + "systemVersion": "3.2.5", + "coreVersion": "11.315", + "createdTime": 1694404089533, + "modifiedTime": 1702859394353, + "lastModifiedBy": "sVoCvBU1knmXzoYe" + }, + "ownership": { + "default": 0, + "sVoCvBU1knmXzoYe": 3 + }, + "_id": "mdci1DSM3UTaLzrb", + "sort": 0, + "_key": "!macros!mdci1DSM3UTaLzrb" +} diff --git a/packs/module-docs/000370.ldb b/packs/module-docs/000370.ldb deleted file mode 100644 index 272f63f9bc18473c6568c48ff9b0ac9f88afb8cd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8535 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 Px9YFkeppjj`1=0_iylR7 literal 0 HcmV?d00001 diff --git a/packs/module-docs/CURRENT b/packs/module-docs/CURRENT index baa95bb..de273b7 100644 --- a/packs/module-docs/CURRENT +++ b/packs/module-docs/CURRENT @@ -1 +1 @@ -MANIFEST-000371 +MANIFEST-000380 diff --git a/packs/module-docs/LOG b/packs/module-docs/LOG index a380c9a..66c2bdf 100644 --- a/packs/module-docs/LOG +++ b/packs/module-docs/LOG @@ -1,8 +1,3 @@ -2023/12/17-18:42:00.620267 7fe10effd700 Recovering log #368 -2023/12/17-18:42:00.627865 7fe10effd700 Delete type=0 #368 -2023/12/17-18:42:00.627895 7fe10effd700 Delete type=3 #366 -2023/12/17-18:43:13.340234 7fe10daa2700 Level-0 table #374: started -2023/12/17-18:43:13.340250 7fe10daa2700 Level-0 table #374: 0 bytes OK -2023/12/17-18:43:13.343480 7fe10daa2700 Delete type=0 #372 -2023/12/17-18:43:13.349533 7fe10daa2700 Manual compaction at level-0 from '!journal!HbtPlHNFO1L6RVj0' @ 72057594037927935 : 1 .. '!journal.pages!Q4iS1LIiyy7acuaF.zvPWCYx402kk2hsE' @ 0 : 0; will stop at (end) -2023/12/17-18:43:13.349606 7fe10daa2700 Manual compaction at level-1 from '!journal!HbtPlHNFO1L6RVj0' @ 72057594037927935 : 1 .. '!journal.pages!Q4iS1LIiyy7acuaF.zvPWCYx402kk2hsE' @ 0 : 0; will stop at (end) +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 diff --git a/packs/module-docs/LOG.old b/packs/module-docs/LOG.old index bc5c75a..6449627 100644 --- a/packs/module-docs/LOG.old +++ b/packs/module-docs/LOG.old @@ -1,15 +1,15 @@ -2023/12/17-18:28:35.287748 7fe10f7fe700 Recovering log #364 -2023/12/17-18:28:35.296084 7fe10f7fe700 Delete type=3 #362 -2023/12/17-18:28:35.296108 7fe10f7fe700 Delete type=0 #364 -2023/12/17-18:41:54.019637 7fe10daa2700 Level-0 table #369: started -2023/12/17-18:41:54.022233 7fe10daa2700 Level-0 table #369: 16787 bytes OK -2023/12/17-18:41:54.025004 7fe10daa2700 Delete type=0 #367 -2023/12/17-18:41:54.025154 7fe10daa2700 Manual compaction at level-0 from '!journal!HbtPlHNFO1L6RVj0' @ 72057594037927935 : 1 .. '!journal.pages!Q4iS1LIiyy7acuaF.zvPWCYx402kk2hsE' @ 0 : 0; will stop at (end) -2023/12/17-18:41:54.033639 7fe10daa2700 Manual compaction at level-1 from '!journal!HbtPlHNFO1L6RVj0' @ 72057594037927935 : 1 .. '!journal.pages!Q4iS1LIiyy7acuaF.zvPWCYx402kk2hsE' @ 0 : 0; will stop at '!journal.pages!Mw1g2Fx5dp4SoqVP.lhULHNp4gz9IjOR3' @ 201 : 1 -2023/12/17-18:41:54.033648 7fe10daa2700 Compacting 1@1 + 1@2 files -2023/12/17-18:41:54.036616 7fe10daa2700 Generated table #370@1: 12 keys, 8535 bytes -2023/12/17-18:41:54.036625 7fe10daa2700 Compacted 1@1 + 1@2 files => 8535 bytes -2023/12/17-18:41:54.039405 7fe10daa2700 compacted to: files[ 0 0 1 0 0 0 0 ] -2023/12/17-18:41:54.039440 7fe10daa2700 Delete type=2 #221 -2023/12/17-18:41:54.039471 7fe10daa2700 Delete type=2 #369 -2023/12/17-18:41:54.046370 7fe10daa2700 Manual compaction at level-1 from '!journal.pages!Mw1g2Fx5dp4SoqVP.lhULHNp4gz9IjOR3' @ 201 : 1 .. '!journal.pages!Q4iS1LIiyy7acuaF.zvPWCYx402kk2hsE' @ 0 : 0; will stop at (end) +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-000371 b/packs/module-docs/MANIFEST-000371 deleted file mode 100644 index ea90a90f9ee566ee62072db25494b6f485a00ca4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 227 zcmbO)J}q_!10$nUPHI_dPD+xVQ)NkNd1i5{bAE0?Vo_pAei199g<@8IX;EHcj$T1x zdTOzvZ@FQ*kz0jnN`XmmeqmUEUQR}+kB47@NqUu~XO@4EG2=-FFkol;#B|+B5vE@hC(cx&?tInZbrWo|%=E=84IriEesTWdY&NkrgHeM%md$ q8O5%Qhaei0@9Xw(GcYoJVd7+9{>sGihS4hbiW5lWD@f!!NCW^#TST@1 diff --git a/packs/module-docs/MANIFEST-000380 b/packs/module-docs/MANIFEST-000380 new file mode 100644 index 0000000000000000000000000000000000000000..0c67e6ee98be1864012f5e6292bd0b5790e94397 GIT binary patch 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 swade-mb-helpers API can be accessed in a macro with the following line of code:

const api = game.modules.get('swade-mb-helpers').api

The name 'api' will be used for all examples but the variable name within your macro doesn't matter.

" + }, + "video": { + "controls": true, + "volume": 0.5 + }, + "src": null, + "system": {}, + "ownership": { + "default": -1, + "R9ZgY0IvWl8ovIuT": 3 + }, + "flags": {}, + "_stats": { + "systemId": "swade", + "systemVersion": "3.2.2", + "coreVersion": "11.315", + "createdTime": 1700438788646, + "modifiedTime": 1700438788646, + "lastModifiedBy": "R9ZgY0IvWl8ovIuT" + }, + "_key": "!journal.pages!Q4iS1LIiyy7acuaF.Q4WPDTxUW6te0td1" + }, + { + "sort": 200000, + "name": "api.powerEffects", + "type": "text", + "_id": "X0rGr7qO1SRHwy9q", + "title": { + "show": true, + "level": 1 + }, + "image": {}, + "text": { + "format": 1, + "content": "
async function powerEffects (options = {})

powerEffects is the dispatcher behind all of the power effects in swade-mb-helpers. It will parse the options to handle power dialogs and effects for every currently handled power effect within this module.

Parameters

The only parameter is the options parameter detailed below


Options

the options object has the following fields:

  • token: a single token, the token that is initiating the power

  • targets: if appropriate to the power, a list of zero or more targets of the power

  • item: (optional) especially handy when used as an item macro effect, this is the item (power object) representing the power to find and handle

  • name: (optional) the name of the power to find and handle.

One of 'item' or 'name' must be set.

Returns

There is no return value for this function.

" + }, + "video": { + "controls": true, + "volume": 0.5 + }, + "src": null, + "system": {}, + "ownership": { + "default": -1, + "R9ZgY0IvWl8ovIuT": 3 + }, + "flags": {}, + "_stats": { + "systemId": "swade", + "systemVersion": "3.2.2", + "coreVersion": "11.315", + "createdTime": 1700439000261, + "modifiedTime": 1700439000261, + "lastModifiedBy": "R9ZgY0IvWl8ovIuT" + }, + "_key": "!journal.pages!Q4iS1LIiyy7acuaF.X0rGr7qO1SRHwy9q" + }, + { + "sort": 300000, + "name": "api.requestRollFromTokens", + "type": "text", + "_id": "zvPWCYx402kk2hsE", + "title": { + "show": true, + "level": 1 + }, + "image": {}, + "text": { + "format": 1, + "content": "
async function requestRollFromTokens (tokens, rollType, rollDesc, options = {})

This will request a roll from the tokens given using socketlib to request the roll from the currently logged on owner of the token.

Parameters

  • tokens: The list of tokens to request from

  • rollType: one of the strings 'attribute' or 'skill'

  • rollDesc: the name of the trait being requested

  • options: detailed below

Options

The options object can be completely empty, but can have any or all of the following optional fields:

  • title: The title for the roll dialog, if the default is not required. For the aid of those rolling for multiple tokens, the token's name will be appended to the title

  • flavour: flavour text for the roll chat card. If unspecified, the title text will be used

  • mods: a list of roll modifiers represented as objects of the following fields:

    • label: Label for the modifier

    • value: a positive or negative number, the value of the roll modifier

    • ignore: an optional boolean which, if true, means that the modifier's ignore checkbox will be checked by default

  • modCallback: a function that takes a token as parameter, and returns an array of modifiers as listed above. This will be run for each token and the individual token's mod list will have the resulting list of modifiers appended to the list from 'mods' above.

Returns

The return value is a list of promises which, if fulfilled, are the resulting roll objects from the token's rolls.

" + }, + "video": { + "controls": true, + "volume": 0.5 + }, + "src": null, + "system": {}, + "ownership": { + "default": -1, + "R9ZgY0IvWl8ovIuT": 3 + }, + "flags": {}, + "_stats": { + "systemId": "swade", + "systemVersion": "3.2.2", + "coreVersion": "11.315", + "createdTime": 1700439709611, + "modifiedTime": 1700440442904, + "lastModifiedBy": "R9ZgY0IvWl8ovIuT" + }, + "_key": "!journal.pages!Q4iS1LIiyy7acuaF.zvPWCYx402kk2hsE" + } + ], + "folder": null, + "ownership": { + "default": 0, + "R9ZgY0IvWl8ovIuT": 3 + }, + "flags": { + "core": {} + }, + "_stats": { + "systemId": "swade", + "systemVersion": "3.2.2", + "coreVersion": "11.315", + "createdTime": 1700438778794, + "modifiedTime": 1700440473945, + "lastModifiedBy": "R9ZgY0IvWl8ovIuT" + }, + "_id": "Q4iS1LIiyy7acuaF", + "sort": 100000, + "_key": "!journal!Q4iS1LIiyy7acuaF" +} diff --git a/packs/module-docs/_source/Common_Actions_HbtPlHNFO1L6RVj0.json b/packs/module-docs/_source/Common_Actions_HbtPlHNFO1L6RVj0.json new file mode 100644 index 0000000..adb90db --- /dev/null +++ b/packs/module-docs/_source/Common_Actions_HbtPlHNFO1L6RVj0.json @@ -0,0 +1,59 @@ +{ + "name": "Common Actions", + "pages": [ + { + "sort": 100000, + "name": "Common Actions", + "type": "text", + "_id": "Tkzn8n0GpCQNiRVc", + "title": { + "show": true, + "level": 1 + }, + "image": {}, + "text": { + "format": 1, + "content": "

The Common Actions compendium contains helpful actions that may be dragged to character sheets or character sheet items to enhance their capability.

These come in several styles:

Power Actions and Oppose

Power Actions are intended to enhance specific powers with the relevant damage modifiers and useful oppositions. The Power Effect action is a macro action intended to be dragged to every power's action tab, and will run the correct power's effect based on the item name or swid.

Power Actions which share a name with a power are intended to be dragged to powers which share their name. They'll generally add all or most special power effects, opposed rolls, and damage.

Power Actions and Oppose actions named \"Oppose (trait)\" or \"Shake Off (trait)\" are intended to be dragged a la carte to any power or weapon that needs them. They generally add resistance rolls to the chat cart for the item.

Savage Pathfinder or SWADE

Actions in these categories are intended to be helpful rule references and dragged directly to a character sheet and used as an action. They'll add useful trait, damage, and resist rolls to the actions on a card, and the description text links to the premium module's documentation.

" + }, + "video": { + "controls": true, + "volume": 0.5 + }, + "src": null, + "system": {}, + "ownership": { + "default": -1, + "sVoCvBU1knmXzoYe": 3 + }, + "flags": {}, + "_stats": { + "systemId": "swade", + "systemVersion": "3.1.4", + "coreVersion": "11.309", + "createdTime": 1695618024231, + "modifiedTime": 1695618090235, + "lastModifiedBy": "sVoCvBU1knmXzoYe" + }, + "_key": "!journal.pages!HbtPlHNFO1L6RVj0.Tkzn8n0GpCQNiRVc" + } + ], + "folder": null, + "ownership": { + "default": 0, + "sVoCvBU1knmXzoYe": 3 + }, + "flags": { + "core": {} + }, + "_stats": { + "systemId": "swade", + "systemVersion": "3.2.2", + "coreVersion": "11.315", + "createdTime": 1695618001902, + "modifiedTime": 1700440473945, + "lastModifiedBy": "R9ZgY0IvWl8ovIuT" + }, + "_id": "HbtPlHNFO1L6RVj0", + "sort": 200000, + "_key": "!journal!HbtPlHNFO1L6RVj0" +} diff --git a/packs/module-docs/_source/Macros_Mw1g2Fx5dp4SoqVP.json b/packs/module-docs/_source/Macros_Mw1g2Fx5dp4SoqVP.json new file mode 100644 index 0000000..94a9e28 --- /dev/null +++ b/packs/module-docs/_source/Macros_Mw1g2Fx5dp4SoqVP.json @@ -0,0 +1,201 @@ +{ + "name": "Macros", + "pages": [ + { + "sort": 100000, + "name": "Effect Macros", + "type": "text", + "_id": "i31qmsZnIGhjvA2K", + "title": { + "show": true, + "level": 1 + }, + "image": {}, + "text": { + "format": 1, + "content": "

There is one primary effect macro @UUID[Compendium.swade-mb-helpers.helper-macros.Macro.AjuA11hQ48UJNwlH]{Power Effects Item Action} that is meant to be used as a power's macro action. It will automatically note the item it was called from and apply an appropriate effect if it's been implemented. The game-affecting power modifiers are implemented as additional active effects, and game effects are applied but no special effects are applied. If you want that, use Automated Animations or Token Variant Art.

There is also a repository of individually named macros, one for each power implemented by the primary effect macro, for GMs who want to run the macro for their players. They're configured to be run with a selected token and targeted token(s) as appropriate.

", + "markdown": "" + }, + "video": { + "controls": true, + "volume": 0.5 + }, + "src": null, + "system": {}, + "ownership": { + "default": -1 + }, + "flags": {}, + "_stats": { + "systemId": "swade", + "systemVersion": "3.2.2", + "coreVersion": "11.315", + "createdTime": null, + "modifiedTime": 1700438350403, + "lastModifiedBy": "R9ZgY0IvWl8ovIuT" + }, + "_key": "!journal.pages!Mw1g2Fx5dp4SoqVP.i31qmsZnIGhjvA2K" + }, + { + "sort": 200000, + "name": "Summoning", + "type": "text", + "_id": "9kDcPyCrI6hbF0qA", + "title": { + "show": true, + "level": 2 + }, + "image": {}, + "text": { + "format": 1, + "content": "

The Summon effects expects to have one and only one target, and depends on the existence of an Actor folder called \"Summonables/<POWER>\" on the Actor sidebar (eg \"Summonables/Summon Ally\"). If this folder has subfolders, they'll be used by the macro to sort the list of available summonables. In the Summonables/<POWER> folder and subfolders, place the Actors that are available for summoning.

Template Actors

The Summonables/<POWER> folders are enhanced by template npc actors. If present, these enable additional automation when using some aspects of SWADE or SWPF summoning. All Summon powers (but not Zombie) benefit from an npc actor called \"raise_template\", which should have your handmade or purchased system content's 'Resilient' ability (and any effects embedded in that ability).

Summon Ally

The Summon Ally power requires some additional setup:

  1. an NPC actor called \"Mirror Self\" that has your version of the Construct and Fearless special abilities (only)

  2. (optional but recommended) the additional template actors described below

\"Summonables/Summon Ally\" also benefit from \"bite-claw_template\", \"combat-edge_template\", \"flight_template\", in addition to \"raise_template\" mentioned above. In all template actors, please ensure that no two Items are named exactly the same (eg an Edge named 'Frenzy' and an action named 'Frenzy' will not work) due to a limitation in WarpGate.

(I cannot include these template actors in this module because a) they'd be different for SWADE and SWPF, and b) I can't redistribute the embedded abilities as it is copyrighted material).

bite-claw_template

This npc actor needs items (like a claw weapon and a claws special ability) that are transferred to the summoned token.

combat-edge_template

This npc actor should have every combat edge you want to support dragged to the actor.

flight_template

This npc actor should have a Flight Item (probably a special ability) and/or the Flying active effect.

Zombie

The Zombie power requires an additional step as well. Raises are different for Zombie, as are some other effects. Zombie therefore does not require a \"raise_template\", but does need an \"armed_template\" which should have (only) Items that represent a hand weapon and a ranged weapon.

The macro assumes that both Zombie and Skeleton tokens will be added to the Summonables/Zombie folder, and doesn't attempt to apply the 'Skeletal' modifier directly.

" + }, + "video": { + "controls": true, + "volume": 0.5 + }, + "src": null, + "system": {}, + "ownership": { + "default": -1, + "sVoCvBU1knmXzoYe": 3 + }, + "flags": {}, + "_stats": { + "systemId": "swade", + "systemVersion": "3.2.5", + "coreVersion": "11.315", + "createdTime": 1695617584063, + "modifiedTime": 1702859823558, + "lastModifiedBy": "sVoCvBU1knmXzoYe" + }, + "_key": "!journal.pages!Mw1g2Fx5dp4SoqVP.9kDcPyCrI6hbF0qA" + }, + { + "sort": 300000, + "name": "Shape Change", + "type": "text", + "_id": "lhULHNp4gz9IjOR3", + "title": { + "show": true, + "level": 2 + }, + "image": {}, + "text": { + "format": 1, + "content": "

Shape Change (and Baleful Polymorph) require an Actor folder similar to that found under Summoning, but named \"Morphables/<POWER>\". Fill this folder (and subfolders) with the creature actors that you wish to allow a Shape Change into. There are no template actors for shape change.

" + }, + "video": { + "controls": true, + "volume": 0.5 + }, + "src": null, + "system": {}, + "ownership": { + "default": -1, + "sVoCvBU1knmXzoYe": 3 + }, + "flags": {}, + "_stats": { + "systemId": "swade", + "systemVersion": "3.1.4", + "coreVersion": "11.309", + "createdTime": 1695617700772, + "modifiedTime": 1695617961155, + "lastModifiedBy": "sVoCvBU1knmXzoYe" + }, + "_key": "!journal.pages!Mw1g2Fx5dp4SoqVP.lhULHNp4gz9IjOR3" + }, + { + "sort": 0, + "name": "Gold Totals", + "type": "text", + "_id": "YmDbZXqcjYjr9pP9", + "title": { + "show": true, + "level": 1 + }, + "image": {}, + "text": { + "format": 1, + "content": "

The Gold Totals macro will look for Currency items on the selected token(s), and total up their value and quantity.

It assumes the currency items are named 'Platinum', 'Gold', 'Silver', and 'Copper' and have their true individual coin value recorded as 'price'.

" + }, + "video": { + "controls": true, + "volume": 0.5 + }, + "src": null, + "system": {}, + "ownership": { + "default": -1, + "R9ZgY0IvWl8ovIuT": 3 + }, + "flags": {}, + "_stats": { + "systemId": "swade", + "systemVersion": "3.2.2", + "coreVersion": "11.315", + "createdTime": 1700437986321, + "modifiedTime": 1700438357999, + "lastModifiedBy": "R9ZgY0IvWl8ovIuT" + }, + "_key": "!journal.pages!Mw1g2Fx5dp4SoqVP.YmDbZXqcjYjr9pP9" + }, + { + "sort": -100000, + "name": "Request Roll", + "type": "text", + "_id": "NgwdcyoMzYFc8VOM", + "title": { + "show": true, + "level": 1 + }, + "image": {}, + "text": { + "format": 1, + "content": "

The Request Roll macro will present a menu detailing the targeted or selected tokens, asking for a Trait to roll against and an optional modifier to that roll. Once a trait and modifier are selected, a standard roll dialog will appear on the (logged in) token owner's screen for each targeted or selected token, with the modifier already filled in. When confirmed the roll proceeds as usual.

This is to enable the GM to say, for example, 'Everyone give me a Notice roll at -2' quickly and easily.

Also included is a \"Request Notice Roll\" macro that has Notice pre chosen, with a set of constants at the top of the macro defining the roll type. This is intended to be duplicated and modified by the GM for other quick rolls.

" + }, + "video": { + "controls": true, + "volume": 0.5 + }, + "src": null, + "system": {}, + "ownership": { + "default": -1, + "R9ZgY0IvWl8ovIuT": 3 + }, + "flags": {}, + "_stats": { + "systemId": "swade", + "systemVersion": "3.2.5", + "coreVersion": "11.315", + "createdTime": 1700438372449, + "modifiedTime": 1702859968781, + "lastModifiedBy": "sVoCvBU1knmXzoYe" + }, + "_key": "!journal.pages!Mw1g2Fx5dp4SoqVP.NgwdcyoMzYFc8VOM" + } + ], + "flags": { + "core": { + "sourceId": "JournalEntry.Mw1g2Fx5dp4SoqVP" + } + }, + "_stats": { + "systemId": "swade", + "systemVersion": "3.2.5", + "coreVersion": "11.315", + "createdTime": 1678169291843, + "modifiedTime": 1702859968781, + "lastModifiedBy": "sVoCvBU1knmXzoYe" + }, + "_id": "Mw1g2Fx5dp4SoqVP", + "folder": null, + "sort": 300000, + "ownership": { + "default": 0, + "ueJGUfSYuRRL3Ypr": 3 + }, + "_key": "!journal!Mw1g2Fx5dp4SoqVP" +} diff --git a/packs/module-docs/_source/Setting_Adjustments_YSuk1v59tLaL9XUK.json b/packs/module-docs/_source/Setting_Adjustments_YSuk1v59tLaL9XUK.json new file mode 100644 index 0000000..148aaa4 --- /dev/null +++ b/packs/module-docs/_source/Setting_Adjustments_YSuk1v59tLaL9XUK.json @@ -0,0 +1,59 @@ +{ + "name": "Setting Adjustments", + "pages": [ + { + "sort": 100000, + "name": "Lighting Modes", + "type": "text", + "_id": "BlDoYgdTxhyCBP3Y", + "title": { + "show": true, + "level": 1 + }, + "image": {}, + "text": { + "format": 1, + "content": "

SWADE MB Helpers does some modification of the vision modes to make them more in line with SWADE's lighting methods:

  1. Basic sight is desaturated and not artificially brightened, but things look normal in lighting (or global illumination.

  2. Low Light Vision is a new lighting mode that is slightly desaturated and artificially brightens the canvas some, but not as much as dim light.

  3. Darkvision is normal saturation level and just slightly less bright than bright light. In addition, Darkvision treats dim light as bright light.

" + }, + "video": { + "controls": true, + "volume": 0.5 + }, + "src": null, + "system": {}, + "ownership": { + "default": -1, + "sVoCvBU1knmXzoYe": 3 + }, + "flags": {}, + "_stats": { + "systemId": "swade", + "systemVersion": "3.2.5", + "coreVersion": "11.315", + "createdTime": 1702880436985, + "modifiedTime": 1702880706703, + "lastModifiedBy": "sVoCvBU1knmXzoYe" + }, + "_key": "!journal.pages!YSuk1v59tLaL9XUK.BlDoYgdTxhyCBP3Y" + } + ], + "folder": null, + "ownership": { + "default": 0, + "sVoCvBU1knmXzoYe": 3 + }, + "flags": { + "core": {} + }, + "_stats": { + "systemId": "swade", + "systemVersion": "3.2.5", + "coreVersion": "11.315", + "createdTime": 1695618001902, + "modifiedTime": 1702880796286, + "lastModifiedBy": "sVoCvBU1knmXzoYe" + }, + "_id": "YSuk1v59tLaL9XUK", + "sort": 0, + "_key": "!journal!YSuk1v59tLaL9XUK" +} diff --git a/scripts/module.js b/scripts/module.js index 852a4cc..922c32a 100644 --- a/scripts/module.js +++ b/scripts/module.js @@ -16,6 +16,61 @@ function _checkModule (name) { Hooks.on('setup', api.registerFunctions) +Hooks.on('init', () => { + log('INIT VISION') + CONFIG.Canvas.visionModes.basic = new VisionMode({ + id: 'basic', + label: 'VISION.ModeBasicVision', + canvas: { + shader: ColorAdjustmentsSamplerShader, + uniforms: { contrast: 0, saturation: -0.85, brightness: -1.0 } + }, + lighting: { + background: { visibility: VisionMode.LIGHTING_VISIBILITY.REQUIRED } + }, + vision: { + darkness: { adaptive: false }, + defaults: { attenuation: 0, contrast: 0, saturation: -0.85, brightness: -1.0 }, + preferred: true + } + }) + CONFIG.Canvas.visionModes.darkvision = new VisionMode({ + id: 'darkvision', + label: 'VISION.ModeDarkvision', + canvas: { + shader: ColorAdjustmentsSamplerShader, + uniforms: { contrast: 0, saturation: 0, brightness: 0.75, tint: [0.8, 0.8, 1.0] } + }, + lighting: { + background: { visibility: VisionMode.LIGHTING_VISIBILITY.REQUIRED }, + levels: { + [VisionMode.LIGHTING_LEVELS.DIM]: VisionMode.LIGHTING_LEVELS.BRIGHT + } + }, + vision: { + darkness: { adaptive: false }, + defaults: { attenuation: 0.1, contrast: 0, saturation: 0, brightness: 0.75 }, + preferred: true + } + }) + CONFIG.Canvas.visionModes.lowlight = new VisionMode({ + id: 'lowlight', + label: 'Low Light Vision', + canvas: { + shader: ColorAdjustmentsSamplerShader, + uniforms: { contrast: 0, saturation: -0.5, brightness: -0.2 } + }, + lighting: { + background: { visibility: VisionMode.LIGHTING_VISIBILITY.REQUIRED } + }, + vision: { + darkness: { adaptive: false }, + defaults: { attenuation: 0.1, contrast: 0, saturation: -0.5, brightness: -0.2 }, + preferred: true + } + }) +}) + Hooks.on('ready', () => { _checkModule('warpgate') _checkModule('socketlib') diff --git a/tsconfig.json b/tsconfig.json new file mode 100644 index 0000000..aef2223 --- /dev/null +++ b/tsconfig.json @@ -0,0 +1,9 @@ +{ + "compilerOptions": { + "types": [ + "@league-of-foundry-developers/foundry-vtt-types" + ], + "moduleResolution": "node", + "strictNullChecks": true + } +} From 952511b1828e276595cc0b14aa3c3d2d2e52d480 Mon Sep 17 00:00:00 2001 From: Mike Bloy Date: Mon, 18 Dec 2023 12:30:01 -0600 Subject: [PATCH 5/9] overdue update of changelog --- CHANGELOG.md | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index aab5487..466fcdd 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,18 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] +### Added + +- New Vision mode: Low Light Vision +- Power Effect for Zombie +- Sample fixed request roll macro + +### Changed + +- Vision mode visual effects changed for Basic Vision and Darkvision +- Shape Change and Summon both set the disposition for their new tokens +- Shape Change and Summon both set vision to enabled for their new tokens + ## 2.2.0 ### Added From 66ee916572e2d5b5c2a16cf2c45c8c32a0537f3e Mon Sep 17 00:00:00 2001 From: Mike Bloy Date: Mon, 18 Dec 2023 15:34:29 -0600 Subject: [PATCH 6/9] 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 zcmbVy4SW;z{r~q%?%KOHEos-57E_kwS6C}en&&p5R1%ufls1&~xeDx(T#{?^#N8!* zTA5{nBGw60{-{6QuX8$)AHNBkinzHU;+*s0_g9&l+k6c-ADF|T&N=_i?Ekr>El}8; z>+7yfuI=R>KKFS)ect+yuORioMe1NY5@2~jt&cT(TcRCK!P4w(>#=oU86xri2~CWN zvKqUlGd{xdDpxSb`b9xgs}bV7$i+hN8wTFd>#8;OSTYi+)reyWY%;q=HVWIfZ~^!W zy`4b?YvmfdL631st;QdZ#7mux!3Yx)H1>%}_&Y&lL@ZZogfRjB(~Ug}VT1{=crE#b z#$Gr)E*^s&nREu7S%W(Wo~QRf)!(rX(G4d~sezDPqnsLGWL<|98xo1QKps1`1~&~N{HX#ig2tX+g>9=Sqt2+Va<0OJ z!Gf3ASK%s~*czctcnNQ8r(t)4;N+l|TP_JQqdx|kFb zVpW}t7!GnVxFK5E|Lk1U#KLt;w_sfhet2q;Bj8|>xeeY{qMKWA0xx^Akb|owsI9@_ zo>*+m-7dJgy}=TWhBGX4lF)M%1NDaJ1{9(k>Xi!#4` zkn_i5LY*+oMIu67l#Q@#T{6b-Q8u7WBxC-tHpmI0ZiMwE;Er;8;7(6y0<7TYxdgfX zLA$0g(bQN6YocjQPmjC#>b3D`f{g{ZWK<`NB!XIhoM*Ls5Fe|+ffJJq4wf?!Ua$X;5c#SCifq#a{e~QVP8LiQ%*RKopm@GourU}a`a!WHDY%DIaP+=N)$piu%eJkpkew>)B z)%NfBSxF!o>WBxLYLU8L+3#9wboX`Wu^hz?OwdnHSq=@R&mI=_JS)KQ z`dOhzU;{;^(=RJ{*!4>0*X8jP%kx}d<}Rf}3`baz^Upk6%?Yh6lN#$|nZ!&>V~~jm zEEIaEK0YdVwz?~KmwQ({16%;OfWGND+@Cx!69 z9Yr5oH=ymgxbma&E|F(rArW^E{sk!wBYo}M`jPdOI}83|pGKZPqslGTZ==B|Qi_IV zpE)=hsEpc!ND*M7Oi2AVYbUCFiCQCwGx=U0qTrZn%&vW8e#dAnybdy{I1fdosd@kO z%MK?zvzo5cTWVDuP8HnNXgsEJ>?n4uEce3`7mD+zWu9Be5~#sMgkf_P6YyxqDz8z% z@iEbgVR@8^L`n;ZC_9x`x>z1z_)w8u0iPm_6gw&IRf^S$d%lOCB-mit9!hS%dQ+{& zN@3%U>q=lhK`x};q~h5~oC$Qb^w;FcgB;J67ATmc7;n)PA*H}Y*qEOUcuNs-H0h86 zjzb(P?I_`dPR2i6`ZKr*YoWH2QN|Z3dXYh>tH4)UjqfgD0}ePDdWPDPVwb*5A%ptl z3|Y3AE@wv*@Jx4UAE=tpjKukf)V>Z_QQVb}gyJ%qEG_#Ijjy_LF|E++j5fpZPsr+u ziV}GCbruay981!;-jk#~cBq7tMkt}we@;qgUM#7*IUe{wj|vs^v2hw zoIQr&ShRmUKEOKgvhh66uX4-A^O_2B@yEq>8aAlnBQfZHVJ_jQDG9JaCK)L!rkrok z0lR5(GPnGuf`(wbKI9(rxJP+om^TX8V*he3<%~yW3J*Q#-I#j|+;q-g7vVx-F$T|2 zoi82{wLZ8%T0!KwVOHylB-w3!xkzJ7<@|J!+u_}w<9uH>`9j(0eC`i3eEJ!g=NVZI z{l=mlH_->leAMyY;@}mz${xL!ZTEGKtG{#h3eGKH#orLhKozid?gkZF5Gj<1`P zn*vr1bHBGdSLqA6nn#VzYjrmuB~(2d;u(>?38|hlmQ?q0P)U_{o-)6ACnCFocOfP3 zw+*y-__oTs(7NKs@(Et$xJ?fGH&@>B?n#N$~Vz4}XQ@Pi+H7)wo zPZ$G*J%v`?qU}#$@1ESMS`8Z;80-~2-QH=WaE(GcDENkb8MYj(+>cC8?MKy6$s5K@ zwn(t8)4LsQ)YdH7T(_w5I%Iz8I^-Obx$2IOo_%LVKJy#vYq`Y-6-eVH)gs>GOj9bscHuMf?VG<}8o|}TUF9E64_a)@M zOyh@AVtlp)rab1Fe-@oD=>M7BeI5j$6^Jj*hsT>|KMMpNs?CBx0#0Gm z1U}V2DWMD;{KBrjvZ@Q%LzYPte1HqeHS?{#Ryx*^kx{p)zB!KNUK?(l>*`r*!1A=~ z%Tj}%qc01({9JEWPt0{)_4I|UUEMU_+T#}Ih_}V1uiR0dp$V)CpR=7*zz#V9Pxo#{ z)_c%k1Sz}xtal(Z)L9upUb3%5)ycJw zwf_nsQ5)L+Dw3}>YHGKA6-zbP>j|~FHg-1X#!%&3N>xfwc^OXl`8kBNH(!SU?g~!1 zzD54Fh=-^WH-x&5iY6@&o+IWcfRS z!l7<)t!&z#qn4FtD5?>NcXh319!=DPzsRBq&{uu!r6f3uF5jWsxgjx}v~2LSrTp&k z=6+mneGQ_ve=7iyb1+*Dz0d&#F$A{UNHqJB9TXj3%&q=?NGyYBv3Xm@- zH%&CVyByw*^q+E!f66J3dBZl=GHkqsJg}suxk^>-;G?QmPOPzc?n~v|TaLKi-{+LK zj=KAOJ;@!0vz&b#$y=FN;LQny%r`E{dF>k{)#qqV?$2YQ0$`593k_UcG9SJ=(qXG@TkqT&Y2oL z9-SUp)0N~CJSPBO?-E%iB8Kn!BiV;HZu@P%HIi?9IFIZ`n!-`adp2Jg)sJ=!hgwG} z_bxq~UvYbhCl0)mt=#|6b#LB|=TbUd}~A zQ!_=_O@-;aW%j&1_oW>~%0X1ytOk?5-e|O%>S4>2qwH;}=|!1+Ing~yEqOaXJTmBW zI9>g`*sx)|+k|cQ4`sD|aei1OhFO(29>3#9lqkgg922PvaEVAf%J|2$$rvY&X@M1T zOw7OiZ!%?LGSbu-;hMhn;Nol8KnNIpt8utLY3b^72hHI@n{C~u3FBj^_#TRAti%17 zK#4olG<{8@v9AGIy2~H331K!A3IXd}3wJC~xrwSvM$#WI)_lBJ+1ol24tw>^$?MBI z;ek&wLLnvBG!*SAvYwN9KUmD&2@FA3NEo}&;8I%I*V16}cwGkTjYuAh^HKGS>D@@T z8&!6DZ$huB=)wo&X*CT?lbWuA!XMVcxoUal8s~Gwp6%%$6fRh{{h+YiVm3EetcKW8 z5?SEanjaJ*kNq$Sw{d?_A-u7?_%VGR;2WoXUK1&9HT#I}h?hETn27_7_C}wC(8wMjl zD^=ZRKtArR$|$M~4Ac3Fj4HyZa`yg60pyp;D}IDO zR1O*S?va)aK`h_KuV8uE#wSLsu9lS0tFY3 z75qUzIhn;VNfX4Ee?(}7<$qCWU|R;!)Uhn0!Br$TM;7`Au)F!@i(eYOu=y@j0vfwX z{U`;%xO}x-;z{afv%sSLCDOQ;AvfL&c*z9RC+RQ9C2Pc8Q*O%Wk6Lm~MVUf!MGWM5 zm~lK03MBI|>n(b{(Nt^r(#1Gq$>5CoxVlxsnRU(|BmBT}ZIespctx2353OX|^n=>? zNq*N*$kuFY*{DyB4sPU|^>~$iNTz57(dc*FxBbg9is5)nlxTfPUJ#dm8!=puLJM4f z?9D+L5^Da2!Uek!^Ef9f&-zJ@Jr(J=43@UI4CHD{Z-Ye~aQtU9j=XGdxhl%V;=Ia! z9ZvGPweSZS*&EjMtciwp?vp7QKOcAa#W*%>T{^g128`Y74;%d(!_l^bh+u}^J%}i+ zQFHTJ;>aPSbb9(nQX`>o<)Ky((4c%&j4I6V0ae@wEq!XNbPwLv zgOz~|!p1Ja)i-`WqEywP9rcL+&AHwq2wBrdQ0fS}_Zz(vWaGld8iQ>Mt);;UQU%45 zRhTD1tTan(L#ifWLsUO;3_)_%ZXl_V;qThisj`K-eZGO|eiwZ^Dg-fA^uG?O{B9gQ_dc z!1-ltg~;u$LF@-)qCXHH_L&2gp!5WSs~IE_R&{{>C%_Ck%cI*@t(q^ z6bgD!VcQEizAD1GrU2Q~sPHvZSdvB8*kS@%kDx--ZU3W;*;TxRYB1`hugQ7cH~oL^ zeQi&br2BGbVWGcmAnt7QCwRSsH~C#%xJiPAugt?j_J+gdS7qh(957sQuIFh&*8%(3-IA2 z{zMsSbGA3H3v^<+aRgKFOyDCm@y~%1qvvsA`4gAo#P1|Y7VjQtvATvfdTu~^Rdvhx zM`ROOy00ySDsLdP#+{F%i!eoSjFd=Ej5g&+U4Sd^oyV2ak%fKcB3ya;vv9@Hn8B4} z8C-E}$l^-JHGnHK$W7iVmvmsy_p_+--~SXJJ#QI^^F4rpiZo}xjt-kt?L~_|vx?#P|V$z#>*tVkts^5E*kU;mg{K1IF zDAv36mX;wVnuzw}HGB4S+)(9VMTvugEiiDCH%TS_Q4b7D3gvj)wk<@%0*n6iJ0)3% z{&-1A)}W`spT|oRdNUAPCXl*}LvN0i{!smMV$(#$b0t|r#(0`SjOP?ZzjN}=U?ZjM zO}WB-;b{A&UzTJ^_sP2+`fl-V>hWWXP_1q=VeCbN4oaCC3%8mgHdp1e(j61IC>LOs zZKKPcrQZEIqQ7qMN8UXd?}97t%p=96+v(FEHJS3t+;rgwd8gmL$dN97I}Zt`UtiIi z*SIi8fnJ=xI?sD`-n4yS1OB0LHK939LAJz2HDy1~qrhXn&~B)aeO|j^>H54vCJ(&v zS(ka)ihNvpiOo!GNiFN8!DW7Y&TJ@tJrBR2$l!nBvOMNaN-`UgWi#L~Bc}M9G;{lv z*Ux&)g$i0OrD9h;Oe144e48wLgr>mQ!in@%0Qyn7XS;3`zR;(K)S zrKZ5ry)+uMZzk2U;xFXA7|fB%>(ShBx3|aI!MO(_Ej_)%=5Fi&eWGXqt~Gw8joS4D z(pcqrhYm%u$xzlb7PJB!dq6Ar;l_y!zwNtZdNp}?b@|qf;#kyS(Tx?*C*J&`vO@gi_WzV1^0_%{bjaVAYL3O7p0VCQKinSd zlpwNu9wKL>G3cO@Vk$b1O~2Q79!`Pwy?e9<4Te(`+tWxXE_UM~2u zz55ZOFU-7lUOw~M`@!V{uOSG$RzD+$z>D8}63^ycw?f{Pl7Mjl_NF=7GhSM#Z;hl`|yyG4XAu$AWaMO zohn9z%zjvvkywnXiyLQE2CQYj0)g1_A2lR-R^?+uTue~;AhgH7-me0vS4ESMDn})~ z$EY&VnhLz0h>8*5eUN8i^A3Fp>>7-^g05EU%kDm7V&oq#tr|K^0}0n4oi@=0KbkVy|C& zyQmVtVS>RChUOHtDqm96Z9%#Lq+mh}7lYTe4i%*AV0eO?nxMBBufVWlRWQku-&B{F z;gI1Rd3I|OYCcdClZ#zUM~ZCO1&d|3{`@A)kMR@v#D021y}@eGn=Sg-;vCd)$Ksp= zA2j`!q~$+A=9%}e(E~C+nV0Aq7YF>UmJxHW$8C)HaP#3OEsr%{ssT1KsJZwixu-|4CLpJ_>QEt84O4+M6i|d?$aesms4ooezeI z)%lied}V>uRh^bzpU5S}N?!5$p<7hzihn^VcqzXfA3+eEj-bNjdB)uZQi5B!C|}tg zi2Jsh{D#V#E@0R-l=_jf&5L_wm@;dP&yZL-x^bwJYhK^u9h-||zqq%tWdp&spuNeLI(R*H43cTVcd9%_xxgofXFSMw#rM8qk=uEBT9rP-Ky`}W|x zP+$J<2z8ZoGMPw_{A{UCzEn^t`MA1&s?*DbF@}%zw=U1s-ddfJZ;*;)CJfNn@>?NN zDy@PKogKYV7uQO&26F>n%imVO>j0slz`e7*uNS()T+8c>1*o}d!l1pDv|m-k}Sh#{*IKcZoYx_jYP2~O>*m8^NUG7@HF)n{{KR#rcP}oV^_3k*%6(FK_>xnlN;t+WEr``h zL8&xur?D?YFZ}F9ihrTu2u?C{P*VI%O%{=(PfX{6fjpWukU!kDlmY{Js=WbfaMnVG z0Ul|#Zq7w^{fL6Ox~Z1{pKX#|XKOI&t>)yiqDu1xNu{k;gWp0O+*JV2Q~Li}0M9Ip z)a91%$xZRWxNTf;t@VvEF>^q~ErI>t^o~thuE~!TnHIhCBcg{oU1)WYB~Ss$B*wWSF`o)7x*QMjiEA*LOsdp|({0xOK>Y*Vzxr2v=%X5Q%37 zz4ys(m{T55;!zmhs{^eHhz~kFGYXJ#)wdm#Rh`%Ly8cBJjN45;rJS9%6L3b(f7ZBN z;jHrfggPxontp#~*U;^hvR&UV_E^?;=q6=qn-trI zq*1)Fn%mE0Cmqz&6ddrfyQqQ{)^Fv4%Qd)M=9n%v(PerXQcoj&yrJoLblEScRw%kI z2yk5&3?7udLnGmM?TVZ{3WR*&M!M?!KqNkv&d>AY=bgO@vFd7klsiQTnm6qK_tWIH z=Uw%sujgGbxaD3##6^7IjGQcWKjK*aDVZJGVyI$Ienkag)SWh~`_sd@L&Le%^=3Ux zjasc>uBYFSF>l=V?wU&k^d8*w8ySpd?WK@y2R^o!x&SA-hc>SK?v&avJ$T1Yzpqzb zmqY8fuV@aG7vyw1I@gfJq$`IiStL{WR_x7LWJXSP)zz9D$>1%3wG7rT!deZh0oHu< zY;@D#kVY2dBH(uEB5Vq9-KTRV;XM~~0>zBBWPW9QskaUOAu}F?)-I~tcL?i|LN*Ik zHvD%Qm!R)0MqeZf%Gy1bgtiiLl^k9C>%~Y>v;y@MHOg=Q;$C^h62uiPkw3Wd?m~FE zwP=a*CEH61L=&1Kh5TUKJ#xJ18tIT5VeNu-2-YcBrSrj4Gh6b%)u(@@?^7Re~ 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", From d5cc256c4f927d01e7132fa69240489f86eb8663 Mon Sep 17 00:00:00 2001 From: Mike Bloy Date: Mon, 18 Dec 2023 19:21:39 -0600 Subject: [PATCH 7/9] set token vision macro --- .gitattributes | 7 +- CHANGELOG.md | 2 + macros/setTokenVision.js | 115 +++++++++++++ packs/common-actions/000005.ldb | Bin 11401 -> 12215 bytes packs/common-actions/LOG | 10 +- packs/common-actions/MANIFEST-000002 | Bin 136 -> 161 bytes .../Illumination_RC1Nz6iph8wPPK1B.json | 156 ++++++++++++++++++ packs/gear/LOG | 10 +- packs/helper-actors/LOG | 10 +- packs/helper-macros/000005.ldb | Bin 10218 -> 12050 bytes packs/helper-macros/LOG | 10 +- packs/helper-macros/MANIFEST-000002 | Bin 137 -> 137 bytes .../_source/Gold_Totals_QMnx9cuyw81kRS2o.json | 8 +- ..._Effects_Item_Action_AjuA11hQ48UJNwlH.json | 8 +- .../Quick_Damage_Roll_NANSnFATVJntUfL7.json | 4 +- .../Request_Notice_Roll_pnLnFrfTTJeodFRy.json | 4 +- .../Request_Roll_G9ksuYJo1512PTo9.json | 8 +- .../Set_Token_Vision_arjbjmgKMjyp9tWE.json | 27 +++ packs/module-docs/000005.ldb | Bin 9796 -> 10624 bytes packs/module-docs/LOG | 10 +- packs/module-docs/MANIFEST-000002 | Bin 161 -> 161 bytes .../Common_Actions_HbtPlHNFO1L6RVj0.json | 14 +- .../_source/Macros_Mw1g2Fx5dp4SoqVP.json | 37 ++++- 23 files changed, 389 insertions(+), 51 deletions(-) create mode 100644 macros/setTokenVision.js create mode 100644 packs/common-actions/_source/Illumination_RC1Nz6iph8wPPK1B.json create mode 100644 packs/helper-macros/_source/Set_Token_Vision_arjbjmgKMjyp9tWE.json diff --git a/.gitattributes b/.gitattributes index eab0ec5..0a3d77e 100644 --- a/.gitattributes +++ b/.gitattributes @@ -1,5 +1,8 @@ -packs/** binary -packs/**/_source text +packs/**/*.ldb binary +packs/**/MANIFEST-* binary +packs/**/CURRENT binary +packs/**/LOCK binary +packs/**/LOG* binary *.webp filter=lfs diff=lfs merge=lfs -text *.jpeg filter=lfs diff=lfs merge=lfs -text *.jpg filter=lfs diff=lfs merge=lfs -text diff --git a/CHANGELOG.md b/CHANGELOG.md index 6bb8b28..87b8abb 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -9,6 +9,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ### Added +- New Macro: Set token vision +- New Common Action: Illumination (for the darkness penalty effects) - New macro: Quick Damage Roll - New Vision mode: Low Light Vision - Power Effect for Zombie diff --git a/macros/setTokenVision.js b/macros/setTokenVision.js new file mode 100644 index 0000000..9d85961 --- /dev/null +++ b/macros/setTokenVision.js @@ -0,0 +1,115 @@ +const argBright = typeof args === 'undefined' ? null : args.length > 0 ? args[0] : null +// argument can be one of 'bright', 'dim', 'dark', 'pitchdark'. Other values +// will guess based on scene darkness +const BRIGHT_LEVELS = ['bright', 'dim', 'dark', 'pitchdark'] +const THRESHOLDS = { + dim: 0.4, + dark: 0.6, + pitchdark: 0.8 +} +const RANGES = { + basic: { + bright: 25, + dim: 25, + dark: 10, + pitchdark: 0 + }, + lowlight: { + bright: 25, + dim: 25, + dark: 10, + pitchdark: 0 + }, + darkvision: { + bright: 25, + dim: 25, + dark: 10, + pitchdark: 10 + }, + nightvision: { + bright: 200, + dim: 200, + dark: 200, + pitchdark: 200 + } +} +const SIGHT_NAMES = { + lowlight: 'low-light-vision', + darkvision: 'darkvision', + nightvision: 'night-vision' +} +const SIGHT_MODES = { + lowlight: 'lowlight', + darkvision: 'darkvision', + nightvision: 'darkvision', + basic: 'basic' +} + +function findAbility (token, swid) { + return token.actor.items.find(i => i.type === 'ability' && i.system.swid === swid) +} + +async function main () { + const scene = game.scenes.current + let sceneBright = BRIGHT_LEVELS[0] + if (scene.darkness > THRESHOLDS.pitchdark) { + sceneBright = BRIGHT_LEVELS[3] + } else if (scene.darkness > THRESHOLDS.dark) { + sceneBright = BRIGHT_LEVELS[2] + } else if (scene.darkness > THRESHOLDS.dim) { + sceneBright = BRIGHT_LEVELS[1] + } + let bright = sceneBright + if (argBright && BRIGHT_LEVELS.includes(argBright)) { + bright = argBright + } + const menuData = { + inputs: [ + { type: 'radio', label: 'Bright Light', options: ['bright', bright === BRIGHT_LEVELS[0]] }, + { type: 'radio', label: 'Dim Light', options: ['bright', bright === BRIGHT_LEVELS[1]] }, + { type: 'radio', label: 'Dark', options: ['bright', bright === BRIGHT_LEVELS[2]] }, + { type: 'radio', label: 'Pitch Dark', options: ['bright', bright === BRIGHT_LEVELS[3]] } + ], + buttons: [ + { label: 'Select Scene Brightness', value: 'ok', default: true }, + { label: 'Cancel', value: 'cancel' } + ] + } + const menuConfig = { title: 'Select scene brightness' } + const result = await warpgate.menu(menuData, menuConfig) + if (result.buttons !== 'ok') { return } + + for (let i = 0; i < 4; i++) { + if (result.inputs[i]) { bright = BRIGHT_LEVELS[i] } + } + + for (const tokenId of scene.tokens.map(t => t.id)) { + const token = scene.tokens.get(tokenId) + if (!token.sight.enabled) { + console.log(`Skipping ${token.name}, vision not enabled`) + continue + // don't set sight on a token where it's not enabled + } + let sightType = 'basic' + for (const sight in SIGHT_NAMES) { + if (findAbility(token, SIGHT_NAMES[sight])) { + sightType = sight + } + } + const range = RANGES[sightType][bright] + const sightMode = SIGHT_MODES[sightType] + const visionModeData = CONFIG.Canvas.visionModes[sightMode].vision.defaults + const data = { + 'sight.range': range, + 'sight.visionMode': sightMode, + 'sight.attenuation': visionModeData.attenuation, + 'sight.brightness': visionModeData.brightness, + 'sight.saturation': visionModeData.saturation, + 'sight.contrast': visionModeData.contrast + } + console.log(`Updating ${token.name}:`, sightType, bright, data) + await token.update(data) + } +} + +main() diff --git a/packs/common-actions/000005.ldb b/packs/common-actions/000005.ldb index 6c4315df67513603e5974c5e65bad0a1553f14eb..c15ed107e7e6b8579fe9f125d9a90ffa1e4caf37 100644 GIT binary patch delta 6058 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 DRq8(F diff --git a/packs/common-actions/LOG b/packs/common-actions/LOG index dedeab7..cc909c1 100644 --- a/packs/common-actions/LOG +++ b/packs/common-actions/LOG @@ -1,5 +1,5 @@ -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) +2023/12/18-23:38:01.173251 7fb80df3c700 Delete type=3 #1 +2023/12/18-23:38:01.175935 7fb80d481700 Level-0 table #5: started +2023/12/18-23:38:01.183313 7fb80d481700 Level-0 table #5: 12215 bytes OK +2023/12/18-23:38:01.192571 7fb80d481700 Delete type=0 #3 +2023/12/18-23:38:01.192679 7fb80d481700 Manual compaction at level-0 from '!folders!0nDRFmMBs5DBJU9M' @ 72057594037927935 : 1 .. '!items.effects!RC1Nz6iph8wPPK1B.g9W5hJisq3MsCpZW' @ 0 : 0; will stop at (end) diff --git a/packs/common-actions/MANIFEST-000002 b/packs/common-actions/MANIFEST-000002 index 8389ff4de47b396b4518c25c1bcdc0c19c3df277..0916a641673cb50bb46c87418ef77de9ef7f9c95 100644 GIT binary patch delta 118 zcmeBRT*x@VDF2d;)8z~XMkW?c24*%EX?7;o?eU6=Y56%RsYS(#26-+)Zn?fr#ilM! zUZIx0jG_!+V4;{802i|S7nx2kYQ0C5a4a-q?c|PZkpkhSzKuB OTkKpA70$>H(Fg!ZY98?b delta 93 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 delta 2914 zcmaKud2k!`7036tUP&uicWhZUb}TD)BsY>Qt*(`DlvweNEhn~R=WqfmX=Te^?JBF4 zFX}oO2&JV!$qp`wfoaNB_=5ljPiq66k(6jyr2lRE7Ug>8tzx9?^O&qr*Pvj ztaV#&Dk*H~cV@=My0)~m0%?#{h-TFmv??i%s#cqt>QW1M0~sjNe8L>!%`s~I}sU}$zw7&>xVz6LX`-+NL#P-Ie*)wz^|<%Co+ z71!S)zEo7PcBv3EQSv(w3uy5SumdcWonYgpWR8t5{#24eOuAut?3I^AMe(5O3Ql$9+g5zCgY+vAAE zewO-~{t2b-dhil5MXg56!)LJYKFoJQjZ=wH^}{%pup72%)o+QP8>*%^Ye@5y%}kGH zI9}-Ca(rB^(-fJnq$4K=Hmx6IN>0gMMQl- z(>$HWZ9dW&@cFzxznk!f|0KO4moF8P$HTl--LFMB!%wt^Pvl5ee}@KfpLo{rj3#ua zwA%b1AwJT-asCgcal|x_Ri&vo&t;VmC65^??rMt%ABq%-eHtD$PVejnlYyYm6; zKmehGN5TI0q=>&J|J=ico8=`>WAs*cD>p$z$2o79j&1_wK|5N8skBj8aa6>Mo;?Kr z)q=e9V4*cDP`rJ5f@TxQYZ0DS<4e61I$>!nh;2Ie6JzoiVI?b`B z%`jHg6mM!^m~sf++GuTLdlc0wJI*6m(bRfY#mmgX|xv<$FQweVSzV-hsDNDj5d`2O)h7u%QH#yK5mE0;gS4JT+|rrp4sg31w0<78$yck`E2Gimw?=;sMzQu zoB_Yr@A8l~Gec#CPF2-~jpFW7gC5E!3&mp&x~{Yan^`=vu59`YNCe$ekk4~iIuTE~ z8hbk3(O#-!l8=FkrsTFk?RG95OM#C=JJ4u2d=C-{qXRHgu&{<;A=witUa;p@a+k1A zN_Jt6vHS)Unqvbh|KM>qsx`+so^H7I#d;J9%G*%WT#rgh;E(Zg(g?RZT#rIA5u`WZ z4tU&N_rZD;;da^4@NZ#*aD!9(t_wL)O4oGr<(BigTD)(qRkzm?8bEOvUSBJAe;U0f zD_)QliRaepu{Q3&eIl@2gFcIit1a8g57pufEj(%m^VSBQrzRXpNF%Fc5y>5Kh%=TQ zl1Gn%zgoppc%^8tZeO$5U0>@M=2EQHVl!E4r*1G!y)XhmjUWfaAfo#YVv2}&S=aQP zFajgSWor6iTAh&%h*F@(g!i)U&*)2HQHHpeiw=iZR6z9i2dm(3iP z{a2UnJ}xWwIh|g@OZpEUmz|vreOpG%$~sPBS)sLcoZXge>342*G2U(<3(m?mH`1{E z3U!+}HcnHFsey-`iE8gv-v0xc;aa6OL-TQZ--E4n!cdA&*r(|U+8$$aw4J9D%ij-Q zkbN@y!Y}fqa)wlP18@hfSZJ5OpGG^=Pi2+Wu<%G9;dc3*;WUc)K*fAk*_IAP&}bU* z>2Fi6i~uiUx&CHP8(ZQf*j726 zrIWWeMV8W>h+5HWn61|NKb29^~X{8I8HIP*VfaDIgbj=3*s zKzQ6fpa1{UV9yE+v{zveZ~~CHi~?hE^V`6-!h);Zy!5@l*u-P@(xCmABC)f2X=}NZ zdV19!VK=Cd!lAMeLlB*GWwjQ1DfBhaZP2~Y3z65mR=pz{95riaJ0tMMdwn6jL4|YSiTgv zPlL!Yvreo0wDn#Lv=5ZPH;16p&{sbFZs;o?1y|~r^B=Ta5XK(-mBNGcJ12Y?o96J;1q_~N0Htf<2U;qHDAO_(8 delta 38 qcmeBV>|~r^BqEi)aYX 0 ? args[0] : null\n// argument can be one of 'bright', 'dim', 'dark', 'pitchdark'. Other values\n// will guess based on scene darkness\nconst BRIGHT_LEVELS = ['bright', 'dim', 'dark', 'pitchdark']\nconst THRESHOLDS = {\n dim: 0.4,\n dark: 0.6,\n pitchdark: 0.8\n}\nconst RANGES = {\n basic: {\n bright: 25,\n dim: 25,\n dark: 10,\n pitchdark: 0\n },\n lowlight: {\n bright: 25,\n dim: 25,\n dark: 10,\n pitchdark: 0\n },\n darkvision: {\n bright: 25,\n dim: 25,\n dark: 10,\n pitchdark: 10\n },\n nightvision: {\n bright: 200,\n dim: 200,\n dark: 200,\n pitchdark: 200\n }\n}\nconst SIGHT_NAMES = {\n lowlight: 'low-light-vision',\n darkvision: 'darkvision',\n nightvision: 'night-vision'\n}\nconst SIGHT_MODES = {\n lowlight: 'lowlight',\n darkvision: 'darkvision',\n nightvision: 'darkvision',\n basic: 'basic'\n}\n\nfunction findAbility (token, swid) {\n return token.actor.items.find(i => i.type === 'ability' && i.system.swid === swid)\n}\n\nasync function main () {\n const scene = game.scenes.current\n let sceneBright = BRIGHT_LEVELS[0]\n if (scene.darkness > THRESHOLDS.pitchdark) {\n sceneBright = BRIGHT_LEVELS[3]\n } else if (scene.darkness > THRESHOLDS.dark) {\n sceneBright = BRIGHT_LEVELS[2]\n } else if (scene.darkness > THRESHOLDS.dim) {\n sceneBright = BRIGHT_LEVELS[1]\n }\n let bright = sceneBright\n if (argBright && BRIGHT_LEVELS.includes(argBright)) {\n bright = argBright\n }\n const menuData = {\n inputs: [\n { type: 'radio', label: 'Bright Light', options: ['bright', bright === BRIGHT_LEVELS[0]] },\n { type: 'radio', label: 'Dim Light', options: ['bright', bright === BRIGHT_LEVELS[1]] },\n { type: 'radio', label: 'Dark', options: ['bright', bright === BRIGHT_LEVELS[2]] },\n { type: 'radio', label: 'Pitch Dark', options: ['bright', bright === BRIGHT_LEVELS[3]] }\n ],\n buttons: [\n { label: 'Select Scene Brightness', value: 'ok', default: true },\n { label: 'Cancel', value: 'cancel' }\n ]\n }\n const menuConfig = { title: 'Select scene brightness' }\n const result = await warpgate.menu(menuData, menuConfig)\n if (result.buttons !== 'ok') { return }\n\n for (let i = 0; i < 4; i++) {\n if (result.inputs[i]) { bright = BRIGHT_LEVELS[i] }\n }\n console.log(`Scene brightness is ${bright}`)\n\n for (const tokenId of scene.tokens.map(t => t.id)) {\n const token = scene.tokens.get(tokenId)\n if (!token.sight.enabled) {\n console.log(`Skipping ${token.name}, vision not enabled`)\n continue\n // don't set sight on a token where it's not enabled\n }\n let sightType = 'basic'\n for (const sight in SIGHT_NAMES) {\n console.log(`checking ${token} for ${SIGHT_NAMES[sight]}`)\n if (findAbility(token, SIGHT_NAMES[sight])) {\n sightType = sight\n console.log(`${token.name} has ${sightType}`)\n }\n }\n const range = RANGES[sightType][bright]\n const sightMode = SIGHT_MODES[sightType]\n const visionModeData = CONFIG.Canvas.visionModes[sightMode].vision.defaults\n const data = {\n 'sight.range': range,\n 'sight.visionMode': sightMode,\n 'sight.attenuation': visionModeData.attenuation,\n 'sight.brightness': visionModeData.brightness,\n 'sight.saturation': visionModeData.saturation,\n 'sight.contrast': visionModeData.contrast\n }\nconsole.log(`Updating ${token.name}:`, data)\n await token.update(data)\n }\n}\n\nmain()", + "folder": null, + "ownership": { + "default": 0, + "sVoCvBU1knmXzoYe": 3 + }, + "flags": { + "core": {} + }, + "_stats": { + "systemId": "swade", + "systemVersion": "3.2.5", + "coreVersion": "11.315", + "createdTime": 1702934878750, + "modifiedTime": 1702959790712, + "lastModifiedBy": "sVoCvBU1knmXzoYe" + }, + "_id": "arjbjmgKMjyp9tWE", + "sort": 100000, + "_key": "!macros!arjbjmgKMjyp9tWE" +} diff --git a/packs/module-docs/000005.ldb b/packs/module-docs/000005.ldb index f77efe97dc7c169bbfc605ce77879f626b7adfdf..360c3cdcee89c77907580eb4a5cdf3bc16060971 100644 GIT binary patch delta 4394 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 Yw)C&t{J+^IY0ml;n!kRT)?QElFJxX*g8%>k delta 3736 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 diff --git a/packs/module-docs/LOG b/packs/module-docs/LOG index 5e600ee..6ac9446 100644 --- a/packs/module-docs/LOG +++ b/packs/module-docs/LOG @@ -1,5 +1,5 @@ -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) +2023/12/18-23:38:04.812110 7f4d227be700 Delete type=3 #1 +2023/12/18-23:38:04.814586 7f4d20fbb700 Level-0 table #5: started +2023/12/18-23:38:04.821794 7f4d20fbb700 Level-0 table #5: 10624 bytes OK +2023/12/18-23:38:04.830506 7f4d20fbb700 Delete type=0 #3 +2023/12/18-23:38:04.830630 7f4d20fbb700 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/MANIFEST-000002 b/packs/module-docs/MANIFEST-000002 index 1d10c0a58efb5d98a758a6f24ff06c78621888a5..95cc45787939dfddcc3dbbe9ece1c5d6d46c8689 100644 GIT binary patch delta 38 qcmZ3;xR7yzk%+>VA8Z*6j7%(?49sjS0_;qz4Z#!LLf8cuzyJWQb_V4D delta 38 qcmZ3;xR7yzk;p{R3pyDLj7%(?49sjS{OnAuM|>u_g|PE8fB^ucs|K(D diff --git a/packs/module-docs/_source/Common_Actions_HbtPlHNFO1L6RVj0.json b/packs/module-docs/_source/Common_Actions_HbtPlHNFO1L6RVj0.json index adb90db..c78d477 100644 --- a/packs/module-docs/_source/Common_Actions_HbtPlHNFO1L6RVj0.json +++ b/packs/module-docs/_source/Common_Actions_HbtPlHNFO1L6RVj0.json @@ -13,7 +13,7 @@ "image": {}, "text": { "format": 1, - "content": "

The Common Actions compendium contains helpful actions that may be dragged to character sheets or character sheet items to enhance their capability.

These come in several styles:

Power Actions and Oppose

Power Actions are intended to enhance specific powers with the relevant damage modifiers and useful oppositions. The Power Effect action is a macro action intended to be dragged to every power's action tab, and will run the correct power's effect based on the item name or swid.

Power Actions which share a name with a power are intended to be dragged to powers which share their name. They'll generally add all or most special power effects, opposed rolls, and damage.

Power Actions and Oppose actions named \"Oppose (trait)\" or \"Shake Off (trait)\" are intended to be dragged a la carte to any power or weapon that needs them. They generally add resistance rolls to the chat cart for the item.

Savage Pathfinder or SWADE

Actions in these categories are intended to be helpful rule references and dragged directly to a character sheet and used as an action. They'll add useful trait, damage, and resist rolls to the actions on a card, and the description text links to the premium module's documentation.

" + "content": "

The Common Actions compendium contains helpful actions that may be dragged to character sheets or character sheet items to enhance their capability.

These come in several styles:

Power Actions and Oppose

Power Actions are intended to enhance specific powers with the relevant damage modifiers and useful oppositions. The Power Effect action is a macro action intended to be dragged to every power's action tab, and will run the correct power's effect based on the item name or swid.

Power Actions which share a name with a power are intended to be dragged to powers which share their name. They'll generally add all or most special power effects, opposed rolls, and damage.

Power Actions and Oppose actions named \"Oppose (trait)\" or \"Shake Off (trait)\" are intended to be dragged a la carte to any power or weapon that needs them. They generally add resistance rolls to the chat cart for the item.

Savage Pathfinder or SWADE

Actions in these categories are intended to be helpful rule references and dragged directly to a character sheet and used as an action. They'll add useful trait, damage, and resist rolls to the actions on a card, and the description text links to the premium module's documentation.

Illumination

The Illumination action exists to provide some easily toggled effects for Dim, Dark, and Pitch Dark illumination penalties. Drag it to a character sheet to get the effects in your quick bar.

" }, "video": { "controls": true, @@ -28,10 +28,10 @@ "flags": {}, "_stats": { "systemId": "swade", - "systemVersion": "3.1.4", - "coreVersion": "11.309", + "systemVersion": "3.2.5", + "coreVersion": "11.315", "createdTime": 1695618024231, - "modifiedTime": 1695618090235, + "modifiedTime": 1702960414116, "lastModifiedBy": "sVoCvBU1knmXzoYe" }, "_key": "!journal.pages!HbtPlHNFO1L6RVj0.Tkzn8n0GpCQNiRVc" @@ -47,11 +47,11 @@ }, "_stats": { "systemId": "swade", - "systemVersion": "3.2.2", + "systemVersion": "3.2.5", "coreVersion": "11.315", "createdTime": 1695618001902, - "modifiedTime": 1700440473945, - "lastModifiedBy": "R9ZgY0IvWl8ovIuT" + "modifiedTime": 1702960414116, + "lastModifiedBy": "sVoCvBU1knmXzoYe" }, "_id": "HbtPlHNFO1L6RVj0", "sort": 200000, diff --git a/packs/module-docs/_source/Macros_Mw1g2Fx5dp4SoqVP.json b/packs/module-docs/_source/Macros_Mw1g2Fx5dp4SoqVP.json index 8bc59a3..a01f5e5 100644 --- a/packs/module-docs/_source/Macros_Mw1g2Fx5dp4SoqVP.json +++ b/packs/module-docs/_source/Macros_Mw1g2Fx5dp4SoqVP.json @@ -214,6 +214,41 @@ }, "_id": "ruuxf72hwlcRzymt", "_key": "!journal.pages!Mw1g2Fx5dp4SoqVP.ruuxf72hwlcRzymt" + }, + { + "sort": 400000, + "name": "Set Token Vision", + "type": "text", + "_id": "mT3lMGUo9zvqQsOh", + "title": { + "show": true, + "level": 1 + }, + "image": {}, + "text": { + "format": 1, + "content": "

The Set Token Vision macro can be called without arguments, or with (eg from MATT) a single argument of one of 'bright', 'dim', 'dark', 'pitchdark'. If called without an argument or with an invalid argument, it will attempt to guess the current scene's brightness level based on the darkness level defined on the scene.

It will pop up a dialog confirming the brightness level before trying to set, for all tokens with vision already enabled, vision range, vision type, and vision parameters to something appropriate based on the scene brightness, the vision related special abilities the token has, and some estimates to use savage worlds vision within a VTT. The macro as written assumes Savage Pathfinder vision rules.

For global illumination penalties one can apply, please see the Illumination action under the SWADE MB Common Actions compendium.

" + }, + "video": { + "controls": true, + "volume": 0.5 + }, + "src": null, + "system": {}, + "ownership": { + "default": -1, + "sVoCvBU1knmXzoYe": 3 + }, + "flags": {}, + "_stats": { + "systemId": "swade", + "systemVersion": "3.2.5", + "coreVersion": "11.315", + "createdTime": 1702959842685, + "modifiedTime": 1702960233927, + "lastModifiedBy": "sVoCvBU1knmXzoYe" + }, + "_key": "!journal.pages!Mw1g2Fx5dp4SoqVP.mT3lMGUo9zvqQsOh" } ], "flags": { @@ -226,7 +261,7 @@ "systemVersion": "3.2.5", "coreVersion": "11.315", "createdTime": 1678169291843, - "modifiedTime": 1702934832358, + "modifiedTime": 1702960233927, "lastModifiedBy": "sVoCvBU1knmXzoYe" }, "_id": "Mw1g2Fx5dp4SoqVP", From 55a123759f94f365f6df9573fe4006e99183d832 Mon Sep 17 00:00:00 2001 From: Mike Bloy Date: Tue, 19 Dec 2023 22:12:58 -0600 Subject: [PATCH 8/9] roll modifier hooks --- CHANGELOG.md | 9 + packs/common-actions/CURRENT | 2 +- packs/common-actions/LOG | 8 +- packs/common-actions/LOG.old | 8 + packs/common-actions/MANIFEST-000002 | Bin 161 -> 0 bytes packs/common-actions/MANIFEST-000014 | Bin 0 -> 146 bytes packs/gear/CURRENT | 2 +- packs/gear/LOG | 8 +- packs/gear/LOG.old | 8 + packs/gear/MANIFEST-000002 | Bin 134 -> 0 bytes packs/gear/MANIFEST-000014 | Bin 0 -> 119 bytes packs/helper-actors/CURRENT | 2 +- packs/helper-actors/LOG | 8 +- packs/helper-actors/LOG.old | 8 + packs/helper-actors/MANIFEST-000002 | Bin 136 -> 0 bytes packs/helper-actors/MANIFEST-000014 | Bin 0 -> 121 bytes packs/helper-macros/CURRENT | 2 +- packs/helper-macros/LOG | 8 +- packs/helper-macros/LOG.old | 8 + packs/helper-macros/MANIFEST-000002 | Bin 137 -> 0 bytes packs/helper-macros/MANIFEST-000014 | Bin 0 -> 122 bytes packs/module-docs/{000005.ldb => 000014.ldb} | Bin 10624 -> 11373 bytes packs/module-docs/CURRENT | 2 +- packs/module-docs/LOG | 8 +- packs/module-docs/LOG.old | 15 ++ packs/module-docs/MANIFEST-000002 | Bin 161 -> 0 bytes packs/module-docs/MANIFEST-000015 | Bin 0 -> 205 bytes .../Setting_Adjustments_YSuk1v59tLaL9XUK.json | 37 +++- scripts/module.js | 5 + scripts/rollHelpers.js | 161 ++++++++++++++++++ 30 files changed, 278 insertions(+), 31 deletions(-) create mode 100644 packs/common-actions/LOG.old delete mode 100644 packs/common-actions/MANIFEST-000002 create mode 100644 packs/common-actions/MANIFEST-000014 create mode 100644 packs/gear/LOG.old delete mode 100644 packs/gear/MANIFEST-000002 create mode 100644 packs/gear/MANIFEST-000014 create mode 100644 packs/helper-actors/LOG.old delete mode 100644 packs/helper-actors/MANIFEST-000002 create mode 100644 packs/helper-actors/MANIFEST-000014 create mode 100644 packs/helper-macros/LOG.old delete mode 100644 packs/helper-macros/MANIFEST-000002 create mode 100644 packs/helper-macros/MANIFEST-000014 rename packs/module-docs/{000005.ldb => 000014.ldb} (70%) create mode 100644 packs/module-docs/LOG.old delete mode 100644 packs/module-docs/MANIFEST-000002 create mode 100644 packs/module-docs/MANIFEST-000015 create mode 100644 scripts/rollHelpers.js diff --git a/CHANGELOG.md b/CHANGELOG.md index 87b8abb..b50403f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -9,6 +9,15 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ### Added +- Trait and Damage Roll hooks to look for and apply modifiers for target + conditions: + - Vulnerable + - Deflection + - Arcane Protection + - Arcane Resistance + - Scale + - Gang Up + - Resistences and Weaknesses - New Macro: Set token vision - New Common Action: Illumination (for the darkness penalty effects) - New macro: Quick Damage Roll diff --git a/packs/common-actions/CURRENT b/packs/common-actions/CURRENT index 1a84852..23b73d9 100644 --- a/packs/common-actions/CURRENT +++ b/packs/common-actions/CURRENT @@ -1 +1 @@ -MANIFEST-000002 +MANIFEST-000014 diff --git a/packs/common-actions/LOG b/packs/common-actions/LOG index cc909c1..d59dd93 100644 --- a/packs/common-actions/LOG +++ b/packs/common-actions/LOG @@ -1,5 +1,3 @@ -2023/12/18-23:38:01.173251 7fb80df3c700 Delete type=3 #1 -2023/12/18-23:38:01.175935 7fb80d481700 Level-0 table #5: started -2023/12/18-23:38:01.183313 7fb80d481700 Level-0 table #5: 12215 bytes OK -2023/12/18-23:38:01.192571 7fb80d481700 Delete type=0 #3 -2023/12/18-23:38:01.192679 7fb80d481700 Manual compaction at level-0 from '!folders!0nDRFmMBs5DBJU9M' @ 72057594037927935 : 1 .. '!items.effects!RC1Nz6iph8wPPK1B.g9W5hJisq3MsCpZW' @ 0 : 0; will stop at (end) +2023/12/19-22:11:46.585866 7f40dd7bc700 Recovering log #12 +2023/12/19-22:11:46.611108 7f40dd7bc700 Delete type=0 #12 +2023/12/19-22:11:46.611132 7f40dd7bc700 Delete type=3 #10 diff --git a/packs/common-actions/LOG.old b/packs/common-actions/LOG.old new file mode 100644 index 0000000..8d8b6ad --- /dev/null +++ b/packs/common-actions/LOG.old @@ -0,0 +1,8 @@ +2023/12/19-14:25:58.734016 7fb0acf3b700 Recovering log #8 +2023/12/19-14:25:58.748444 7fb0acf3b700 Delete type=3 #6 +2023/12/19-14:25:58.748474 7fb0acf3b700 Delete type=0 #8 +2023/12/19-22:08:59.600432 7fb086400700 Level-0 table #13: started +2023/12/19-22:08:59.600452 7fb086400700 Level-0 table #13: 0 bytes OK +2023/12/19-22:08:59.612412 7fb086400700 Delete type=0 #11 +2023/12/19-22:08:59.648733 7fb086400700 Manual compaction at level-0 from '!folders!0nDRFmMBs5DBJU9M' @ 72057594037927935 : 1 .. '!items.effects!RC1Nz6iph8wPPK1B.g9W5hJisq3MsCpZW' @ 0 : 0; will stop at (end) +2023/12/19-22:08:59.648868 7fb086400700 Manual compaction at level-1 from '!folders!0nDRFmMBs5DBJU9M' @ 72057594037927935 : 1 .. '!items.effects!RC1Nz6iph8wPPK1B.g9W5hJisq3MsCpZW' @ 0 : 0; will stop at (end) diff --git a/packs/common-actions/MANIFEST-000002 b/packs/common-actions/MANIFEST-000002 deleted file mode 100644 index 0916a641673cb50bb46c87418ef77de9ef7f9c95..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 161 zcmWIhx#Ncn10$nUPHI_dPD+xVQ)NkNd1i5{bAE0?Vo_pAe$kRS-TOEg7@3$k8JJmE z7%tg3UCsbdDXB%piUxTuL2kLePQ|7!PF|swzKo&_U|^w` zS(2Jtte2XWmYQ5rtQh2M=vQTyS&(5-9uVMd=%kl!8E%^4m04V9>|5+y5EahI577t! DGLbCj diff --git a/packs/common-actions/MANIFEST-000014 b/packs/common-actions/MANIFEST-000014 new file mode 100644 index 0000000000000000000000000000000000000000..5d83e41819ba6b673cf0454204acd13492b8c380 GIT binary patch literal 146 zcmey-)7@Xgz{n_-lUkOVlai$8R9TW*o>`pgoS$2eSd>_jU&PMDx;-mr;}f3@j8gOHy--^-|N)Qj<%H6@#1&{i@6|3o`pgoS$2eSd>_jU&PMD+H5MXm|2pVTde36 zUg;E=YEqKtADNTo=IF-A!~g~``I7MP;51j?T%X+XVzbC3LqvdiQ#l&Qw%3{S((=wBEH;=;7e1k~CV8=p6Mg}k-r~m-a C4vdiQ#l&PFyI3*Q pw9F*k&7-h1-yqU3*s+k2kpT<{DhTjgSH;1=$i&adz%0PR2mln=AbS7+ literal 0 HcmV?d00001 diff --git a/packs/helper-macros/CURRENT b/packs/helper-macros/CURRENT index 1a84852..23b73d9 100644 --- a/packs/helper-macros/CURRENT +++ b/packs/helper-macros/CURRENT @@ -1 +1 @@ -MANIFEST-000002 +MANIFEST-000014 diff --git a/packs/helper-macros/LOG b/packs/helper-macros/LOG index 1098a98..948bac9 100644 --- a/packs/helper-macros/LOG +++ b/packs/helper-macros/LOG @@ -1,5 +1,3 @@ -2023/12/18-23:38:03.938107 7f566efbe700 Delete type=3 #1 -2023/12/18-23:38:03.940484 7f566d542700 Level-0 table #5: started -2023/12/18-23:38:03.948092 7f566d542700 Level-0 table #5: 12050 bytes OK -2023/12/18-23:38:03.956941 7f566d542700 Delete type=0 #3 -2023/12/18-23:38:03.957060 7f566d542700 Manual compaction at level-0 from '!folders!hIbrWxg1nDutCSwt' @ 72057594037927935 : 1 .. '!macros!wU2mAUnw3RW9qMT8' @ 0 : 0; will stop at (end) +2023/12/19-22:11:46.967222 7fb6ee7bf700 Recovering log #12 +2023/12/19-22:11:46.993517 7fb6ee7bf700 Delete type=0 #12 +2023/12/19-22:11:46.993540 7fb6ee7bf700 Delete type=3 #10 diff --git a/packs/helper-macros/LOG.old b/packs/helper-macros/LOG.old new file mode 100644 index 0000000..eb01f08 --- /dev/null +++ b/packs/helper-macros/LOG.old @@ -0,0 +1,8 @@ +2023/12/19-14:25:58.719315 7fb087fff700 Recovering log #8 +2023/12/19-14:25:58.732527 7fb087fff700 Delete type=3 #6 +2023/12/19-14:25:58.732555 7fb087fff700 Delete type=0 #8 +2023/12/19-22:08:59.638378 7fb086400700 Level-0 table #13: started +2023/12/19-22:08:59.638400 7fb086400700 Level-0 table #13: 0 bytes OK +2023/12/19-22:08:59.648647 7fb086400700 Delete type=0 #11 +2023/12/19-22:08:59.648837 7fb086400700 Manual compaction at level-0 from '!folders!hIbrWxg1nDutCSwt' @ 72057594037927935 : 1 .. '!macros!wU2mAUnw3RW9qMT8' @ 0 : 0; will stop at (end) +2023/12/19-22:08:59.677175 7fb086400700 Manual compaction at level-1 from '!folders!hIbrWxg1nDutCSwt' @ 72057594037927935 : 1 .. '!macros!wU2mAUnw3RW9qMT8' @ 0 : 0; will stop at (end) diff --git a/packs/helper-macros/MANIFEST-000002 b/packs/helper-macros/MANIFEST-000002 deleted file mode 100644 index 8562096ef76b914a69b9156f260bc428b6ccb919..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 137 zcmWIhx#Ncn10$nUPHI_dPD+xVQ)NkNd1i5{bAE0?Vo_pAe$kRS-TOEg7@3$k8JJmE z7+!4g3=RNtS%6$N7CCk%)=6=SifQ>dDXB%piW#0sMd20chIuZfCCr@cM2F10$nUPHI_dPD+xVQ)NkNd1i5{bAE0?Vo_pAei1tp>!dhE#kBmKl+>bP z#SG7+qVS4z!#tPL66fIZ5=Kr2Fi=p;O-wGzFIFrMHOh4i%_}z!3b!ou4Y6R9hA7y* S*5M)t10xeZCj+wpiyQ#4Ya$IF1K?yt9u)t$0r3Y_;Wy2FHZhf`Y;1FP#ZQQUQK3<7;BOq0GlOnYlX(P$*HAhs~tJ_h6G zKx~Z9z}Q$>C}$5HE(%^!;wP*i$mgsSw1$t02mMz;AaU7hH%8R+x9tWV9=+c-lkWzH zJ?74$8ncFS`&QWkD5(spSWb!AK?LX338Ji{43^Y%RzgBj`1upv+(ON>pa%0@s-vL7 zZZ{uLn+klhD6@<9!ftbzZlc>A?qiI3fxZFPnD1CGa%b!{O{kV{lcemRD3@F{Rol`0 zau$Vxv0T8TYsrc^tV;SOgmk2cN#rme#8u0gnbh}_B^ckp$yf<>gyu4u~^;Pxfv)2NP|xi^DKL2f-3rb zhUI#xY4I(D;fV&{QcGc(rbxP{!Dv46s#)YhMa>@~Wk|-Fo)J|TKV~+%{Dt%)ZX@Ap zK!!E%S0(fOS+G8rbI*Lp{!b7vvI`w>Q;`sa_JBv;TBYa) z8WKrfdWOWws<4w2$jYFPbL284on6O984^xzyF*+F8b-U~&LCPY$o+6>SwhLnSsm++ zZbp%%kzg+XE#qzU`nJbTm2Z?s(8o?r)f82MH&(e-O-F;m2uffi_RES!5>AYuWCkY( zhydU{3boN?4kvLs97J8p85J&t?=h-|Yl@d~f}A48*EwRGmFX1}P94wtbPng!X`Fl` z5>WZ>3`S{^vNA-=z7+oi6vw@3MI+(Jh=YqDe~k97%Sz-ug@lAh9-XXpHsQ2{lcP(# zs9GTGR8FS12UIs|NrBvFhn822^ajx4 z1J^J>omdx%Hsoad7T~&)f`qd2X4fVzdGAtw7=?r)}8+uuFG+Wz}}v9@42*vHyj{}#|Ihv=_%_gFslvx^r|*75jH zZsx#?VJqkO;>SIujN7`*?O9*}G_XFka1fOIgE?gO5)^_phyLKq6V*QM+PWoVifoyC=|H)Gpp00-qM=3d(0{u%Ss rd_Do82(}SW1aRRm7t8kdgs$``rr@7xs(yPR+3xvm`(AH$`FDQ;LC(hM delta 719 zcmXYsUr1A76u`gl`rW&G^IkW{G^=UXrP$ikyFYGj=F%yJ%S4-|lB7%Lzcx2^x7xyq zVisx`@mcs(;6vF%kW7*yC?g^2rAN_%jC_cQ{(wao+EqN99|sPc-#O=7)1aI9Yn>&! zlT=GYvpaIZaIwf1uJ%;hni@_*IUY#b+j-RKs|+-Eb<{_@V-?O?Q?s}1b_@b>GmDgR zEQ{oeiv_FAVl1|}V$k^l6vZ43uqc)x#A#tlUa;8WoTNa3qnAREGFDbl4jmTCPG^j@*arGCkiO@CUtp9X%004|QfwPoKzldws#qh>!PtIX8o^Asuw! zIaEvhT*or94GsOFMchl~z;b+ptdv<9H6IA^c!^wsrFfQlrI@DkD|wTn%IAytd-{~~ zctm#BXXbdJpeU}_h@ti@np2B0G3@ng>CJygG5OpiFUt=NpDZGQfCJz(8Q*n@Wq0x!*hxj=gCE#kp#w|ej z4sWFFL(5O1SWIUTq{EYq=6c-E^*Hv$xI~CKCv~~$Yqh0PV@C_zt_Ne&a0+OXFfZrvcO6~5l?k+H zpb(%wNam}zwytFTN(UJZ0f5t~2h|(q!8E`iO{$`0(DiX=U7;jvl^Bpf+v4Q8na%rk a!uz@auG6b 11373 bytes +2023/12/19-22:08:59.638172 7fb086400700 compacted to: files[ 0 0 1 0 0 0 0 ] +2023/12/19-22:08:59.638243 7fb086400700 Delete type=2 #5 +2023/12/19-22:08:59.638324 7fb086400700 Delete type=2 #13 +2023/12/19-22:08:59.648805 7fb086400700 Manual compaction at level-1 from '!journal.pages!YSuk1v59tLaL9XUK.BxFgDb91dqbkO9h4' @ 17 : 1 .. '!journal.pages!YSuk1v59tLaL9XUK.BxFgDb91dqbkO9h4' @ 0 : 0; will stop at (end) diff --git a/packs/module-docs/MANIFEST-000002 b/packs/module-docs/MANIFEST-000002 deleted file mode 100644 index 95cc45787939dfddcc3dbbe9ece1c5d6d46c8689..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 161 zcmWIhx#Ncn10$nUPHI_dPD+xVQ)NkNd1i5{bAE0?Vo_pAe$kRS-TOEg7@3$k8JJmE z7!pAd4{o)N(m- literal 0 HcmV?d00001 diff --git a/packs/module-docs/_source/Setting_Adjustments_YSuk1v59tLaL9XUK.json b/packs/module-docs/_source/Setting_Adjustments_YSuk1v59tLaL9XUK.json index 148aaa4..afa67b3 100644 --- a/packs/module-docs/_source/Setting_Adjustments_YSuk1v59tLaL9XUK.json +++ b/packs/module-docs/_source/Setting_Adjustments_YSuk1v59tLaL9XUK.json @@ -35,6 +35,41 @@ "lastModifiedBy": "sVoCvBU1knmXzoYe" }, "_key": "!journal.pages!YSuk1v59tLaL9XUK.BlDoYgdTxhyCBP3Y" + }, + { + "sort": 200000, + "name": "Roll Modifier Hooks", + "type": "text", + "_id": "BxFgDb91dqbkO9h4", + "title": { + "show": true, + "level": 1 + }, + "image": {}, + "text": { + "format": 1, + "content": "

SWADE Trait and Damage Rolls can now take into account common modifiers based on the target, if there is exactly one attacker and one target. Most will show up on all trait rolls if the target conditions are right. Gang up bonuses will only show up on Fighting rolls.

Any of the proposed modifiers may be ignored by checking the Ignore checkbox. Some modifiers are pre-ignored and must be unchecked to take effect.

The following target conditions are checked for before trait rolls:

  1. Vulnerable

  2. Deflection (as applied by the Deflection power effect from this module)

  3. Arcane Protection (as applied by the Arcane Protection power effect from this module)

  4. Arcane Resistance

  5. Scale Modifiers

  6. Gang Up, taking into account Block and Formation Fighter

The following target conditions are checked for before damage rolls:

  1. Arcane Protection (as applied by the Arcane Protection power effect from this module)

  2. Arcane Resistance

  3. Special Abilities with 'weakness' in the swid (ignored by default, +4 damage)

  4. Special Abilities with 'resistance' in the swid (ignored by default, -4 damage)

  5. Gang Up bonus if the attacker has Pack Tactics

" + }, + "video": { + "controls": true, + "volume": 0.5 + }, + "src": null, + "system": {}, + "ownership": { + "default": -1, + "sVoCvBU1knmXzoYe": 3 + }, + "flags": {}, + "_stats": { + "systemId": "swade", + "systemVersion": "3.2.5", + "coreVersion": "11.315", + "createdTime": 1703044226574, + "modifiedTime": 1703044226574, + "lastModifiedBy": "sVoCvBU1knmXzoYe" + }, + "_key": "!journal.pages!YSuk1v59tLaL9XUK.BxFgDb91dqbkO9h4" } ], "folder": null, @@ -50,7 +85,7 @@ "systemVersion": "3.2.5", "coreVersion": "11.315", "createdTime": 1695618001902, - "modifiedTime": 1702880796286, + "modifiedTime": 1703044226574, "lastModifiedBy": "sVoCvBU1knmXzoYe" }, "_id": "YSuk1v59tLaL9XUK", diff --git a/scripts/module.js b/scripts/module.js index 922c32a..9e81b1e 100644 --- a/scripts/module.js +++ b/scripts/module.js @@ -1,5 +1,6 @@ import { api } from './api.js' import { requestTokenRoll } from './helpers.js' +import { preDamageRollModifiers, preTraitRollModifiers } from './rollHelpers.js' import { shapeChangeOnDismiss } from './powerEffects.js' import { log, shim } from './shim.js' @@ -71,6 +72,10 @@ Hooks.on('init', () => { }) }) +Hooks.on('swadePreRollAttribute', preTraitRollModifiers) +Hooks.on('swadePreRollSkill', preTraitRollModifiers) +Hooks.on('swadeRollDamage', preDamageRollModifiers) + Hooks.on('ready', () => { _checkModule('warpgate') _checkModule('socketlib') diff --git a/scripts/rollHelpers.js b/scripts/rollHelpers.js new file mode 100644 index 0000000..8bbf41c --- /dev/null +++ b/scripts/rollHelpers.js @@ -0,0 +1,161 @@ +import { log, shim } from './shim.js' + +export async function preTraitRollModifiers (actor, trait, roll, modifiers, options) { + const targets = Array.from(shim.targets) + const token = shim.canvas.tokens.controlled.length > 0 ? shim.canvas.tokens.controlled[0] : null + // log('ACTOR', actor) + // log('TOKEN', token) + // log('TRAIT', trait) + // log('ROLL', roll) + // log('MODIFIERS', modifiers) + // log('OPTIONS', options) + // log('TARGET', targets) + if (targets.some(target => target.actor.system.status.isVulnerable)) { + modifiers.push({ label: 'Target is Vulnerable', value: '+2', ignore: false }) + } + if (targets.some( + target => target.actor.effects.filter( + e => !e.disabled && e.name.toLowerCase().includes('deflection')).length > 0) + ) { + modifiers.push({ label: 'Target has Deflection', value: '-2', ignore: false }) + } + if (targets.length === 1 && token) { + const target = targets[0] + _addArcaneModifiers(target, modifiers) + const scaleMod = calcScaleMod(token, target) + if (scaleMod !== 0) { + modifiers.push({ label: 'Scale', value: scaleMod, ignore: false }) + } + if (trait?.type === 'skill' && trait?.system?.swid === 'fighting') { + const gangUpBonus = calcGangup(token, target) + if (gangUpBonus > 0) { + modifiers.push({ label: 'Gang Up', value: gangUpBonus, ignore: false }) + } + } + } +} + +export async function preDamageRollModifiers (actor, item, roll, modifiers, options) { + const targets = Array.from(shim.targets) + const token = shim.canvas.tokens.controlled.length > 0 ? shim.canvas.tokens.controlled[0] : null + // log('ACTOR', actor) + // log('TOKEN', token) + // log('ITEM', item) + // log('ROLL', roll) + // log('MODIFIERS', modifiers) + // log('OPTIONS', options) + // log('TARGET', targets) + if (targets.length === 1 && token) { + const target = targets[0] + _addArcaneModifiers(target, modifiers) + const weaknesses = target.actor.items.filter( + i => i.type === 'ability' && i.system.swid.toLowerCase().includes('weakness')) + if (weaknesses.length > 0) { + modifiers.push(...weaknesses.map(i => { return { label: i.name, value: '+4', ignore: true } })) + } + const resistances = target.actor.items.filter( + i => i.type === 'ability' && i.system.swid.toLowerCase().includes('resistance')) + if (resistances.length > 0) { + modifiers.push(...resistances.map(i => { return { label: i.name, value: '-4', ignore: true } })) + } + if (_findItem(token.actor, 'ability', 'pack-tactics')) { + const gangupBonus = calcGangup(token, target) + if (gangupBonus > 0) { + modifiers.push({ label: 'Gang Up (Pack Tactics)', value: gangupBonus, ignore: false }) + } + } + } +} + +function _addArcaneModifiers (target, modifiers) { + if (_findItem(target.actor, 'edge', 'improved-arcane-resistance')) { + modifiers.push({ label: 'Arcane Resistance', value: '-4', ignore: true }) + } else if (_findItem(target.actor, 'edge', 'arcane-resistance')) { + modifiers.push({ label: 'Arcane Resistance', value: '-2', ignore: true }) + } + const effect = target.actor.effects.find( + e => !e.disabled && e.name.toLowerCase().includes('arcane protection')) + if (effect) { + const effectName = effect.name.toLowerCase() + const effectMod = ( + -2 + + (effectName.includes('major') ? -2 : 0) + + (effectName.includes('greater') ? -2 : 0) + ) + modifiers.push({ label: 'Target Arcane Protection', value: effectMod, ignore: true }) + } +} + +function withinRange (origin, target, range) { + const ray = new Ray(origin, target) + const distance = shim.canvas.grid.measureDistances([{ ray }], { gridSpaces: true })[0] + const originScale = origin.actor.system.stats.scale + const targetScale = target.actor.system.stats.scale + range += (originScale > 0 ? originScale / 2 : 0) + (targetScale > 0 ? targetScale / 2 : 0) + return range >= distance +} + +function _findItem (actor, type, swid) { + return actor.items.find(i => i.type === type && i.system.swid === swid) +} + +function calcScaleMod (attacker, target) { + const attackerScale = attacker.actor.system.stats.scale + const targetScale = target.actor.system.stats.scale + const attackerHasSwat = !!_findItem(attacker.actor, 'ability', 'swat') + let modifier = targetScale - attackerScale + if (attackerHasSwat && modifier < 0) { + modifier = Math.min(modifier + 4, 0) + } + return modifier +} + +function calcGangup (attacker, target, debug) { + debug = (typeof debug === 'undefined') ? false : debug + const range = 1.2 + let modifier = 0 + if (_findItem(target.actor, 'edge', 'improved-block')) { + modifier = -2 + } else if (_findItem(target.actor, 'edge', 'block')) { + modifier = -1 + } + const attackerHasFormationFighter = !!(_findItem(attacker.actor, 'edge', 'formation-fighter')) + + const withinRangeOfToken = shim.canvas.tokens.placeables.filter(t => + t.id !== attacker.id && + t.id !== target.id && + t.actor.system.status.isStunned === false && + t.visible && + withinRange(target, t, range) + ) + const attackerAllies = withinRangeOfToken.filter( + t => t.document.disposition === attacker.document.disposition) + const targetAllies = withinRangeOfToken.filter( + t => t.document.disposition === target.document.disposition && + withinRange(attacker, t, range) + ) + const attackersWithFormationFighter = attackerAllies.filter( + t => !!_findItem(t.actor, 'edge', 'formation-fighter')) + const attackerCount = attackerAllies.length + const attackerFormationBonus = ( + (attackerCount > 0 && attackerHasFormationFighter ? 1 : 0) + + attackersWithFormationFighter.length + ) + const defenderCount = targetAllies.length + const gangUp = Math.max( + 0, + Math.min( + 4, + attackerCount + attackerFormationBonus - defenderCount + modifier)) + if (debug) { + log('GANG UP | Attacker:', attacker) + log('GANG UP | Target:', target) + log('GANG UP | Others within range:', withinRangeOfToken) + log('GANG UP | Attacker Allies:', attackerCount) + log('GANG UP | Attacker Formation Bonus:', attackerFormationBonus) + log('GANG UP | Effective Defender Allies:', defenderCount) + log('GANG UP | Target Block Modifier:', modifier) + log('GANG UP | Total Bonus:', gangUp) + } + return gangUp +} From 5ca758257e5e80718380ba40ed834d51d89b293e Mon Sep 17 00:00:00 2001 From: Mike Bloy Date: Tue, 19 Dec 2023 22:16:08 -0600 Subject: [PATCH 9/9] prep 2.3.0 --- CHANGELOG.md | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index b50403f..e598133 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] +## [2.3.0] 2023-12-19 + ### Added - Trait and Damage Roll hooks to look for and apply modifiers for target @@ -31,7 +33,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - Shape Change and Summon both set the disposition for their new tokens - Shape Change and Summon both set vision to enabled for their new tokens -## 2.2.0 +## [2.2.0] ### Added @@ -44,7 +46,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - API Documentation - Request Roll macro documentation -## 2.1.0 +## [2.1.0] ### Changed @@ -54,7 +56,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 name. - Updates to documentation -## 2.0.0 +## [2.0.0] ### Changed @@ -71,7 +73,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - Shape Change - Sloth/Speed -## 1.2.0 +## [1.2.0] ### Changed @@ -80,20 +82,20 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - incorporated glow, shroud, hurry, and hinder power modifiers into power effects -## 1.1.0 +## [1.1.0] ### Added - gold calculator macro for SWPF gold items - Actions for common rolls with links to SWPF rules -## 1.0.1 +## [1.0.1] ### Fixed - Summon macro now spawns tokens with prototype token's actual dimensions -## 1.0.0 +## [1.0.0] ### Added @@ -108,7 +110,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - Protection and Smite macros now linked to swade system effects -## 0.9.0 +## [0.9.0] - Initial 'public' release
ActorCurrency
${actor.name}${fmt.format(total)}