fix bug of item equiping and un equiping

This commit is contained in:
psitacus 2025-07-09 03:03:18 -06:00
parent 577d9e6c48
commit 5992bc7c24
2 changed files with 47 additions and 5 deletions

View file

@ -9,6 +9,46 @@ export default class DHItem extends foundry.documents.Item {
for (const action of this.system.actions ?? []) action.prepareData();
}
/**
* @inheritdoc
*/
async _preUpdate(changed, options, user) {
const result = await super._preUpdate(changed, options, user);
// Store the previous equipped status for attachment handling
if (changed.system?.equipped !== undefined) {
options.previousEquipped = this.system.equipped;
}
return result;
}
/**
* @inheritdoc
*/
async _onUpdate(changed, options, user) {
await super._onUpdate(changed, options, user);
// Handle attachment effects when equipped status changes
if (changed.system?.equipped !== undefined && options.previousEquipped !== changed.system.equipped) {
const newEquippedStatus = changed.system.equipped;
const parentType = this.type === 'armor' ? 'armor' : this.type === 'weapon' ? 'weapon' : null;
if (parentType) {
try {
const { handleAttachmentEffectsOnEquipChange } = await import('../helpers/attachmentHelper.mjs');
await handleAttachmentEffectsOnEquipChange({
parentItem: this,
newEquippedStatus,
parentType
});
} catch (error) {
console.error('DH | Error in handleAttachmentEffectsOnEquipChange:', error);
}
}
}
}
/**
* @inheritdoc
* @param {object} options - Options which modify the getRollData method.