From 03787ee3140bb5b6ce6ea5e1ca4ccf349e4f34d2 Mon Sep 17 00:00:00 2001 From: Mike Bloy Date: Sun, 8 Jun 2025 15:21:38 -0500 Subject: [PATCH] move to single compendium for actors Changes to update summon ally. --- src/lang/en.json | 6 ++---- src/module/api.js | 2 +- src/module/globals.js | 4 +--- src/module/powers/balefulPolymorph.js | 4 ++++ src/module/powers/basePowers.js | 7 ++++--- src/module/powers/shapeChange.js | 4 ++++ src/module/powers/summon.js | 3 ++- src/module/powers/summonSupport.js | 10 +++++----- src/module/powers/zombie.js | 10 ++++++++++ src/module/settings.js | 27 +++++---------------------- 10 files changed, 38 insertions(+), 39 deletions(-) diff --git a/src/lang/en.json b/src/lang/en.json index b6e7cfb..2c391d6 100644 --- a/src/lang/en.json +++ b/src/lang/en.json @@ -1,8 +1,6 @@ { - "mbhelpers.settings.morphablesCompendiumName": "Morphables Compendium", - "mbhelpers.settings.morphablesCompendiumHint": "UUID of a Compendium that holds all the morphables.", - "mbhelpers.settings.summonablesCompendiumName": "Summonables Compendium", - "mbhelpers.settings.summonablesCompendiumHint": "UUID of a Compendium that holds all the summonables.", + "mbhelpers.settings.powerActorsCompendiumName": "Power Actors Compendium", + "mbhelpers.settings.powerActorsCompendiumHint": "Identifier of a compendium that holds all the actor helpers for powers. See the documentation for details on the structure of this compendium.", "mbhelpers.settings.powersJournalName": "Powers Journal", "mbhelpers.settings.powersJournalHint": "UUID of a helper journal for actor-based powers (summonables and morphables)." } diff --git a/src/module/api.js b/src/module/api.js index 53d301e..22824df 100644 --- a/src/module/api.js +++ b/src/module/api.js @@ -1,4 +1,4 @@ -import { log, moduleHelpers, settingKeys } from './globals.js'; +import { log, moduleHelpers } from './globals.js'; import { requestFearRollFromTokens, requestRollFromTokens } from './helpers.js'; import { powers, PowerClasses, powerEffectsMenu } from './powers/powers.js'; import { setSummonCosts } from './powers/summonSupport.js'; diff --git a/src/module/globals.js b/src/module/globals.js index 1a5ae13..4a23244 100644 --- a/src/module/globals.js +++ b/src/module/globals.js @@ -1,9 +1,7 @@ export const moduleName = 'swade-mb-helpers'; export const settingKeys = { - summonablesCompendium: 'summonablesCompendium', - morphablesCompendium: 'morphablesCompendium', - powersJournal: 'powersJournal', + powerActorsCompendium: 'powerActorsCompendium', }; export function log(...args) { diff --git a/src/module/powers/balefulPolymorph.js b/src/module/powers/balefulPolymorph.js index f857fe2..46d9732 100644 --- a/src/module/powers/balefulPolymorph.js +++ b/src/module/powers/balefulPolymorph.js @@ -3,6 +3,10 @@ import { firstOwner, updateOwnedToken } from '../helpers.js'; import { ActorFolderEffect } from './basePowers.js'; export class BalefulPolymorphEffect extends ActorFolderEffect { + get actorFolderBase() { + return 'Morphables'; + } + get name() { return 'Baleful Polymorph'; } diff --git a/src/module/powers/basePowers.js b/src/module/powers/basePowers.js index 614dffb..523fdf9 100644 --- a/src/module/powers/basePowers.js +++ b/src/module/powers/basePowers.js @@ -1,4 +1,4 @@ -import { moduleName, moduleHelpers, log } from '../globals.js'; +import { moduleName, moduleHelpers, log, settingKeys } from '../globals.js'; import { firstOwner, addActiveEffectsToToken } from '../helpers.js'; import { templates } from '../preloadTemplates.js'; @@ -157,6 +157,7 @@ export class PowerFormApplication extends HandlebarsApplicationMixin(Application data.recipients.epic = this.powerEffect.additionalRecipientsIsEpic; data.recipients.text = this.powerEffect.additionalRecipientText; } + log('DATA', data); return data; } @@ -791,7 +792,7 @@ export class ActorFolderEffect extends PowerEffect { } get actorFolderPackId() { - return 'no.compendium.needs.override'; + return moduleHelpers.getSetting(settingKeys.powerActorsCompendium); } get actorFolderBase() { @@ -809,7 +810,7 @@ export class ActorFolderEffect extends PowerEffect { } get actorFolder() { - return `${this.name}`; + return `${this.actorFolderBase}/${this.name}`; } getPackFolderByPath(path) { diff --git a/src/module/powers/shapeChange.js b/src/module/powers/shapeChange.js index 7565590..6abbb69 100644 --- a/src/module/powers/shapeChange.js +++ b/src/module/powers/shapeChange.js @@ -3,6 +3,10 @@ import { firstOwner, updateOwnedToken } from '../helpers.js'; import { ActorFolderEffect } from './basePowers.js'; export class ShapeChangeEffect extends ActorFolderEffect { + get actorFolderBase() { + return 'Morphables'; + } + get name() { return 'Shape Change'; } diff --git a/src/module/powers/summon.js b/src/module/powers/summon.js index f826e4b..c9e112d 100644 --- a/src/module/powers/summon.js +++ b/src/module/powers/summon.js @@ -258,7 +258,7 @@ export class SummonAllyEffect extends BaseAllyEffect { } get actorFolder() { - return this.name; + return `${this.actorFolderBase}/${this.name}`; } get icon() { @@ -318,6 +318,7 @@ export class SummonAllyEffect extends BaseAllyEffect { const { choices, effects, values } = this._edges; for (let i = 1; i <= 3; i++) { mods.push({ + sortOrder: i, type: 'select', name: `Combat Edge #${i}`, id: `combatEdge${i}`, diff --git a/src/module/powers/summonSupport.js b/src/module/powers/summonSupport.js index cfea1bc..d4401c7 100644 --- a/src/module/powers/summonSupport.js +++ b/src/module/powers/summonSupport.js @@ -1,17 +1,17 @@ /* globals Sequencer */ -import { log, moduleHelpers, moduleName, settingKeys } from '../globals.js'; +import { log, moduleHelpers, moduleName } from '../globals.js'; import { templates } from '../preloadTemplates.js'; import { ActorFolderEffect } from './basePowers.js'; export class BaseSummonEffect extends ActorFolderEffect { - get actorFolderPackId() { - return moduleHelpers.getSetting(settingKeys.summonablesCompendium); - } - get name() { return 'Base Summon'; } + get actorFolderBase() { + return 'Summonables'; + } + get summonCount() { return 0; } diff --git a/src/module/powers/zombie.js b/src/module/powers/zombie.js index a5486f6..a2f9596 100644 --- a/src/module/powers/zombie.js +++ b/src/module/powers/zombie.js @@ -1,6 +1,16 @@ import { BaseSummonEffect } from './summonSupport.js'; export class ZombieEffect extends BaseSummonEffect { + async init() { + await super.init(); + this.data.templates = {}; + for (let tplName of ['armed_template']) { + if (tplName in this.data.actors) { + this.data.templates[tplName] = await foundry.utils.fromUuid(this.data.actors[tplName].uuid); + } + } + } + get name() { return 'Zombie'; } diff --git a/src/module/settings.js b/src/module/settings.js index 3576a4f..1ff3eda 100644 --- a/src/module/settings.js +++ b/src/module/settings.js @@ -1,26 +1,9 @@ -import { moduleName, moduleHelpers, settingKeys } from './globals.js'; +import { moduleHelpers, settingKeys } from './globals.js'; + export function registerSettings() { - moduleHelpers.registerSetting(settingKeys.powersJournal, { - name: 'mbhelpers.settings.powersJournalName', - hint: 'mbhelpers.settings.powersJournalHint', - scope: 'world', - config: true, - requiresReload: false, - type: String, - }); - - moduleHelpers.registerSetting(settingKeys.summonablesCompendium, { - name: 'mbhelpers.settings.summonablesCompendiumName', - hint: 'mbhelpers.settings.summonablesCompendiumHint', - scope: 'world', - config: true, - requiresReload: false, - type: String, - }); - - moduleHelpers.registerSetting(settingKeys.morphablesCompendium, { - name: 'mbhelpers.settings.morphablesCompendiumName', - hint: 'mbhelpers.settings.morphablesCompendiumHint', + moduleHelpers.registerSetting(settingKeys.powerActorsCompendium, { + name: 'mbhelpers.settings.powerActorsCompendiumName', + hint: 'mbhelpers.settings.powerActorsCompendiumHint', scope: 'world', config: true, requiresReload: false,