From b3e699bc325e9b76f79e42ed19c784385e9f3588 Mon Sep 17 00:00:00 2001 From: Oliver-Akins Date: Fri, 22 Mar 2024 21:47:29 -0600 Subject: [PATCH] Harden the preCreate quantity increase to use source IDs in finding the item --- module/documents/Actor/GenericActor.mjs | 8 +++++--- module/documents/Item/Aspect.mjs | 4 ++-- module/documents/Item/GenericItem.mjs | 4 ++-- 3 files changed, 9 insertions(+), 7 deletions(-) diff --git a/module/documents/Actor/GenericActor.mjs b/module/documents/Actor/GenericActor.mjs index b597d55..64dc8b9 100644 --- a/module/documents/Actor/GenericActor.mjs +++ b/module/documents/Actor/GenericActor.mjs @@ -15,9 +15,11 @@ export class DotDungeonActor extends Actor { }; }; - async preItemEmbed(data) { - let embedded = this.itemTypes[data.type].find(i => { - return i.name === data.name + async preItemEmbed(item) { + + // Increases the quantity of already present items if they match via source + let embedded = this.itemTypes[item.type].find(i => { + return i.getFlag(`core`, `sourceId`) === `Item.${item.id}` }); if (embedded) { await embedded.update({"system.quantity": embedded.system.quantity + 1}); diff --git a/module/documents/Item/Aspect.mjs b/module/documents/Item/Aspect.mjs index 8906c09..a1ab7b8 100644 --- a/module/documents/Item/Aspect.mjs +++ b/module/documents/Item/Aspect.mjs @@ -1,7 +1,7 @@ import { DotDungeonItem } from "./GenericItem.mjs"; export class Aspect extends DotDungeonItem { - async _preCreate(...args) { + async _preCreate() { if (this.isEmbedded) { if (this.actor.atAspectLimit) { ui.notifications.error( @@ -14,7 +14,7 @@ export class Aspect extends DotDungeonItem { return false; }; - return await this.actor?.preItemEmbed(...args); + return await this.actor?.preItemEmbed(this); }; } }; diff --git a/module/documents/Item/GenericItem.mjs b/module/documents/Item/GenericItem.mjs index e1034d3..b52ddcd 100644 --- a/module/documents/Item/GenericItem.mjs +++ b/module/documents/Item/GenericItem.mjs @@ -1,7 +1,7 @@ export class DotDungeonItem extends Item { - async _preCreate(...args) { + async _preCreate() { if (this.isEmbedded) { - return await this.actor?.preItemEmbed(...args); + return await this.actor?.preItemEmbed(this); }; };