add socket based active effect handling for powers

This commit is contained in:
2024-05-15 23:53:36 -05:00
parent 4c00d7116e
commit 3357145ea9
4 changed files with 36 additions and 6 deletions
+11 -3
View File
@@ -1,5 +1,6 @@
import { moduleName, moduleHelpers } from '../globals.js';
import { firstOwner, addActiveEffectsToToken } from '../helpers.js';
import { templates } from '../preloadTemplates.js';
import { moduleName } from '../globals.js';
const MAINTAIN_ICON = 'icons/magic/symbols/runes-star-blue.webp';
@@ -16,7 +17,7 @@ export class PowerFormApplication extends FormApplication {
template: templates['powerDialog.html'],
id: ['mbSwadePowerEffectsApplication'],
title: 'Power Effects',
width: 350,
width: 400,
});
}
@@ -131,7 +132,14 @@ export class PowerEffect {
}
async applyActiveEffects(token, effectDocuments) {
await token.actor.createEmbeddedDocuments('ActiveEffect', effectDocuments);
const owner = firstOwner(token);
await moduleHelpers.socket.executeAsUser(
addActiveEffectsToToken,
owner.id,
token.scene.id,
token.id,
effectDocuments,
);
}
get name() {
+10 -2
View File
@@ -1,4 +1,5 @@
import { moduleName } from '../globals.js';
import { moduleName, moduleHelpers } from '../globals.js';
import { firstOwner, deleteActiveEffectsFromToken } from '../helpers.js';
import { ArcaneProtectionEffect } from './arcaneProtection.js';
import { BanishEffect } from './banish.js';
import { BarrierEffect } from './barrier.js';
@@ -63,7 +64,14 @@ export async function powerEffectManagementHook(effect, data, userId) {
if (effectIds.length === 0) {
continue;
}
await target.actor.deleteEmbeddedDocuments('ActiveEffects', effectIds);
const owner = firstOwner(target);
await moduleHelpers.socket.executeAsUser(
deleteActiveEffectsFromToken,
owner.id,
target.scene.id,
target.id,
effectIds,
);
}
}