diff --git a/module/applications/sidebar/tabs/daggerheartMenu.mjs b/module/applications/sidebar/tabs/daggerheartMenu.mjs index 0f98f5a0..4166614d 100644 --- a/module/applications/sidebar/tabs/daggerheartMenu.mjs +++ b/module/applications/sidebar/tabs/daggerheartMenu.mjs @@ -58,7 +58,7 @@ export default class DaggerheartMenu extends HandlebarsApplicationMixin(Abstract if (['character', 'adversary'].includes(actor.type) && actor.prototypeToken.actorLink) { const updates = {}; for (let item of actor.items) { - if (item.system.metadata.hasResource && types.includes(item.system.resource?.recovery)) { + if (item.system.metadata?.hasResource && types.includes(item.system.resource?.recovery)) { if (!refreshedActors[actor.id]) refreshedActors[actor.id] = { name: actor.name, img: actor.img, refreshed: new Set() }; refreshedActors[actor.id].refreshed.add( @@ -76,7 +76,7 @@ export default class DaggerheartMenu extends HandlebarsApplicationMixin(Abstract : Roll.replaceFormulaData(item.system.resource.max, actor.getRollData()) }; } - if (item.system.metadata.hasActions) { + if (item.system.metadata?.hasActions) { const refreshTypes = new Set(); const actions = item.system.actions.filter(action => { if (types.includes(action.uses.recovery)) { diff --git a/module/documents/actor.mjs b/module/documents/actor.mjs index 8faf1350..9a4e3a8a 100644 --- a/module/documents/actor.mjs +++ b/module/documents/actor.mjs @@ -204,7 +204,7 @@ export default class DhpActor extends Actor { for (let domainCard of domainCards) { const itemCard = this.items.find(x => x.uuid === domainCard); - itemCard.delete(); + itemCard?.delete(); } } @@ -337,6 +337,8 @@ export default class DhpActor extends Actor { const embeddedItem = await this.createEmbeddedDocuments('Item', [ { ...multiclassData, + uuid: multiclassItem.uuid, + _stats: multiclassItem._stats, system: { ...multiclassData.system, features: multiclassData.system.features.filter(x => x.type !== 'hope'), @@ -349,6 +351,8 @@ export default class DhpActor extends Actor { await this.createEmbeddedDocuments('Item', [ { ...subclassData, + uuid: subclassItem.uuid, + _stats: subclassItem._stats, system: { ...subclassData.system, isMulticlass: true @@ -363,12 +367,15 @@ export default class DhpActor extends Actor { for (var domainCard of domainCards) { if (levelupAuto) { - const itemData = (await foundry.utils.fromUuid(domainCard.data[0])).toObject(); + const cardItem = await foundry.utils.fromUuid(domainCard.data[0]); + const cardData = cardItem.toObject(); const embeddedItem = await this.createEmbeddedDocuments('Item', [ { - ...itemData, + ...cardData, + uuid: cardItem.uuid, + _stats: cardItem._stats, system: { - ...itemData.system, + ...cardData.system, inVault: true } } @@ -382,12 +389,15 @@ export default class DhpActor extends Actor { const achievementDomainCards = []; if (levelupAuto) { for (var card of Object.values(level.achievements.domainCards)) { - const itemData = (await foundry.utils.fromUuid(card.uuid)).toObject(); + const cardItem = await foundry.utils.fromUuid(card.uuid); + const cardData = cardItem.toObject(); const embeddedItem = await this.createEmbeddedDocuments('Item', [ { - ...itemData, + ...cardData, + uuid: cardItem.uuid, + _stats: cardItem._stats, system: { - ...itemData.system, + ...cardData.system, inVault: true } }