From 63225b921a25bab67d065b0dd098197ef0f50c89 Mon Sep 17 00:00:00 2001 From: macniel Date: Thu, 9 Oct 2025 21:05:49 +0200 Subject: [PATCH] fixes inventory management --- src/module/data/character.mjs | 9 ++----- src/module/sheets/characterSheet.mjs | 36 +++++++++++++++------------- 2 files changed, 21 insertions(+), 24 deletions(-) diff --git a/src/module/data/character.mjs b/src/module/data/character.mjs index 10a47081..1c257cab 100644 --- a/src/module/data/character.mjs +++ b/src/module/data/character.mjs @@ -152,27 +152,22 @@ export class PlayerCharacterDataModel extends foundry.abstract.TypeDataModel { _initializeSource(data, options) { if (data.heldenausruestung.length === 0) { let sets = []; - for (let i = 0; i < 3; i++) { - const preppedSet = {} - PlayerCharacterDataModel.getSlots().forEach(slot => { preppedSet[slot] = null; }) - sets.push(preppedSet); - } data.heldenausruestung = sets - } - return super._initializeSource(data, options); } async _onCreate(data, options, userId) { + console.log(data, 'onCreate'); + } static getSlots() { diff --git a/src/module/sheets/characterSheet.mjs b/src/module/sheets/characterSheet.mjs index f144a16f..6c546520 100644 --- a/src/module/sheets/characterSheet.mjs +++ b/src/module/sheets/characterSheet.mjs @@ -597,22 +597,23 @@ export class CharacterSheet extends ActorSheet { } } - #getEquipmentset(setId) { - const equipmentSet = this.object.system.heldenausruestung[setId] + #mapAllSets() { const updateObject = {} - // TODO: there's got to be a better angle! - updateObject[`system.heldenausruestung.${setId}.links`] = equipmentSet.links; - updateObject[`system.heldenausruestung.${setId}.rechts`] = equipmentSet.rechts; - updateObject[`system.heldenausruestung.${setId}.brust`] = equipmentSet.brust; - updateObject[`system.heldenausruestung.${setId}.bauch`] = equipmentSet.bauch; - updateObject[`system.heldenausruestung.${setId}.ruecken`] = equipmentSet.ruecken; - updateObject[`system.heldenausruestung.${setId}.kopf`] = equipmentSet.kopf; - updateObject[`system.heldenausruestung.${setId}.fernkampf`] = equipmentSet.fernkampf; - updateObject[`system.heldenausruestung.${setId}.munition`] = equipmentSet.munition; - updateObject[`system.heldenausruestung.${setId}.armlinks`] = equipmentSet.armlinks; - updateObject[`system.heldenausruestung.${setId}.armrechts`] = equipmentSet.armrechts; - updateObject[`system.heldenausruestung.${setId}.beinlinks`] = equipmentSet.beinlinks; - updateObject[`system.heldenausruestung.${setId}.beinrechts`] = equipmentSet.beinrechts; + Array.from(this.object.system.heldenausruestung).forEach((equipmentSet, index) => { + updateObject[`system.heldenausruestung.${index}.links`] = equipmentSet.links; + updateObject[`system.heldenausruestung.${index}.rechts`] = equipmentSet.rechts; + updateObject[`system.heldenausruestung.${index}.brust`] = equipmentSet.brust; + updateObject[`system.heldenausruestung.${index}.bauch`] = equipmentSet.bauch; + updateObject[`system.heldenausruestung.${index}.ruecken`] = equipmentSet.ruecken; + updateObject[`system.heldenausruestung.${index}.kopf`] = equipmentSet.kopf; + updateObject[`system.heldenausruestung.${index}.fernkampf`] = equipmentSet.fernkampf; + updateObject[`system.heldenausruestung.${index}.munition`] = equipmentSet.munition; + updateObject[`system.heldenausruestung.${index}.armlinks`] = equipmentSet.armlinks; + updateObject[`system.heldenausruestung.${index}.armrechts`] = equipmentSet.armrechts; + updateObject[`system.heldenausruestung.${index}.beinlinks`] = equipmentSet.beinlinks; + updateObject[`system.heldenausruestung.${index}.beinrechts`] = equipmentSet.beinrechts; + + }) return updateObject; } @@ -840,7 +841,8 @@ export class CharacterSheet extends ActorSheet { if (actor === this.object._id && documentId) { // managing equipped items //const slot = this.#isWorn(documentId, setId) - const updateObject = this.#getEquipmentset(setId) + //const updateObject = await this.#getEquipmentset(Number(setId)) + const updateObject = this.#mapAllSets() updateObject[`system.heldenausruestung.${setId}.${target}`] = documentId; console.log(updateObject); @@ -901,7 +903,7 @@ export class CharacterSheet extends ActorSheet { callback: (event) => { const {setId, target, actor} = event[0].dataset - const updateObject = this.#getEquipmentset(setId) + const updateObject = this.#mapAllSets() updateObject[`system.heldenausruestung.${setId}.${target}`] = null; this.object.update(updateObject);