diff --git a/module/data/fields/action/summonField.mjs b/module/data/fields/action/summonField.mjs index 6c35c779..6845d2ba 100644 --- a/module/data/fields/action/summonField.mjs +++ b/module/data/fields/action/summonField.mjs @@ -44,7 +44,7 @@ export default class DHSummonField extends fields.ArrayField { const actor = await getWorldActor(await foundry.utils.fromUuid(summon.actorUUID)); /* Extending summon data in memory so it's available in actionField.toChat. Think it's harmless, but ugly. Could maybe find a better way. */ - summon.actor = actor; + summon.actor = actor.toObject(); const countNumber = Number.parseInt(count); for (let i = 0; i < countNumber; i++) { diff --git a/module/helpers/utils.mjs b/module/helpers/utils.mjs index 98777f2b..cb79a76b 100644 --- a/module/helpers/utils.mjs +++ b/module/helpers/utils.mjs @@ -893,13 +893,15 @@ export function shouldUseHopeFearAutomation(options = { gmAsPlayer: true }) { export async function getWorldActor(baseActor) { if (baseActor.inCompendium) { - const worldActorCopy = - game.actors.find(x => x._stats.compendiumSource === baseActor.uuid && x.name === baseActor.name); + const worldActorCopy = game.actors.find(x => + x._stats.compendiumSource === baseActor.uuid && + (!x.prototypeToken.actorLink || x.name === baseActor.name) + ); if (worldActorCopy) - return worldActorCopy.toObject(); + return worldActorCopy; - const baseActorData = baseActor.toObject(); + const baseActorData = baseActor; return await game.system.api.documents.DhpActor.create({ ...baseActorData, _stats: { @@ -909,5 +911,5 @@ export async function getWorldActor(baseActor) { }); } - return baseActor.toObject(); + return baseActor; } \ No newline at end of file