From 0b8338d4bceed3e933559e4b687543eeddf58349 Mon Sep 17 00:00:00 2001 From: WBHarry Date: Thu, 7 Aug 2025 00:49:58 +0200 Subject: [PATCH] Fixed old origin logic --- module/data/action/baseAction.mjs | 7 +++---- module/documents/activeEffect.mjs | 3 ++- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/module/data/action/baseAction.mjs b/module/data/action/baseAction.mjs index c3ff5c2f..070864da 100644 --- a/module/data/action/baseAction.mjs +++ b/module/data/action/baseAction.mjs @@ -302,9 +302,8 @@ export default class DHBaseAction extends ActionMixin(foundry.abstract.DataModel } async applyEffect(effect, actor) { - const actorOrigin = effect.parent?.parent ? effect.parent.parent.uuid : effect.parent.uuid; - // Enable an existing effect on the target if it originated from this effect - if (effect.transfer) { + const existingEffect = actor.effects.find(e => e.origin === effect.uuid); + if (existingEffect) { return effect.update( foundry.utils.mergeObject({ ...effect.constructor.getInitialDuration(), @@ -318,7 +317,7 @@ export default class DHBaseAction extends ActionMixin(foundry.abstract.DataModel ...effect.toObject(), disabled: false, transfer: false, - origin: actorOrigin + origin: effect.uuid }); await ActiveEffect.implementation.create(effectData, { parent: actor }); } diff --git a/module/documents/activeEffect.mjs b/module/documents/activeEffect.mjs index 337805a7..3aced0bf 100644 --- a/module/documents/activeEffect.mjs +++ b/module/documents/activeEffect.mjs @@ -75,7 +75,8 @@ export default class DhActiveEffect extends foundry.documents.ActiveEffect { if (isOriginTarget && change.effect.origin) { change.value = change.value.replaceAll(/origin\.@/gi, '@'); try { - const doc = foundry.utils.fromUuidSync(change.effect.origin); + const effect = foundry.utils.fromUuidSync(change.effect.origin); + const doc = effect.parent?.parent; if (doc) parseModel = doc; } catch (_) {} }