fixes inventory management

feature/meta
macniel 2025-10-09 21:05:49 +02:00
parent cdcf664034
commit 63225b921a
2 changed files with 21 additions and 24 deletions

View File

@ -152,27 +152,22 @@ export class PlayerCharacterDataModel extends foundry.abstract.TypeDataModel {
_initializeSource(data, options) { _initializeSource(data, options) {
if (data.heldenausruestung.length === 0) { if (data.heldenausruestung.length === 0) {
let sets = []; let sets = [];
for (let i = 0; i < 3; i++) { for (let i = 0; i < 3; i++) {
const preppedSet = {} const preppedSet = {}
PlayerCharacterDataModel.getSlots().forEach(slot => { PlayerCharacterDataModel.getSlots().forEach(slot => {
preppedSet[slot] = null; preppedSet[slot] = null;
}) })
sets.push(preppedSet); sets.push(preppedSet);
} }
data.heldenausruestung = sets data.heldenausruestung = sets
} }
return super._initializeSource(data, options); return super._initializeSource(data, options);
} }
async _onCreate(data, options, userId) { async _onCreate(data, options, userId) {
console.log(data, 'onCreate');
} }
static getSlots() { static getSlots() {

View File

@ -597,22 +597,23 @@ export class CharacterSheet extends ActorSheet {
} }
} }
#getEquipmentset(setId) { #mapAllSets() {
const equipmentSet = this.object.system.heldenausruestung[setId]
const updateObject = {} const updateObject = {}
// TODO: there's got to be a better angle! Array.from(this.object.system.heldenausruestung).forEach((equipmentSet, index) => {
updateObject[`system.heldenausruestung.${setId}.links`] = equipmentSet.links; updateObject[`system.heldenausruestung.${index}.links`] = equipmentSet.links;
updateObject[`system.heldenausruestung.${setId}.rechts`] = equipmentSet.rechts; updateObject[`system.heldenausruestung.${index}.rechts`] = equipmentSet.rechts;
updateObject[`system.heldenausruestung.${setId}.brust`] = equipmentSet.brust; updateObject[`system.heldenausruestung.${index}.brust`] = equipmentSet.brust;
updateObject[`system.heldenausruestung.${setId}.bauch`] = equipmentSet.bauch; updateObject[`system.heldenausruestung.${index}.bauch`] = equipmentSet.bauch;
updateObject[`system.heldenausruestung.${setId}.ruecken`] = equipmentSet.ruecken; updateObject[`system.heldenausruestung.${index}.ruecken`] = equipmentSet.ruecken;
updateObject[`system.heldenausruestung.${setId}.kopf`] = equipmentSet.kopf; updateObject[`system.heldenausruestung.${index}.kopf`] = equipmentSet.kopf;
updateObject[`system.heldenausruestung.${setId}.fernkampf`] = equipmentSet.fernkampf; updateObject[`system.heldenausruestung.${index}.fernkampf`] = equipmentSet.fernkampf;
updateObject[`system.heldenausruestung.${setId}.munition`] = equipmentSet.munition; updateObject[`system.heldenausruestung.${index}.munition`] = equipmentSet.munition;
updateObject[`system.heldenausruestung.${setId}.armlinks`] = equipmentSet.armlinks; updateObject[`system.heldenausruestung.${index}.armlinks`] = equipmentSet.armlinks;
updateObject[`system.heldenausruestung.${setId}.armrechts`] = equipmentSet.armrechts; updateObject[`system.heldenausruestung.${index}.armrechts`] = equipmentSet.armrechts;
updateObject[`system.heldenausruestung.${setId}.beinlinks`] = equipmentSet.beinlinks; updateObject[`system.heldenausruestung.${index}.beinlinks`] = equipmentSet.beinlinks;
updateObject[`system.heldenausruestung.${setId}.beinrechts`] = equipmentSet.beinrechts; updateObject[`system.heldenausruestung.${index}.beinrechts`] = equipmentSet.beinrechts;
})
return updateObject; return updateObject;
} }
@ -840,7 +841,8 @@ export class CharacterSheet extends ActorSheet {
if (actor === this.object._id && documentId) { // managing equipped items if (actor === this.object._id && documentId) { // managing equipped items
//const slot = this.#isWorn(documentId, setId) //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; updateObject[`system.heldenausruestung.${setId}.${target}`] = documentId;
console.log(updateObject); console.log(updateObject);
@ -901,7 +903,7 @@ export class CharacterSheet extends ActorSheet {
callback: (event) => { callback: (event) => {
const {setId, target, actor} = event[0].dataset const {setId, target, actor} = event[0].dataset
const updateObject = this.#getEquipmentset(setId) const updateObject = this.#mapAllSets()
updateObject[`system.heldenausruestung.${setId}.${target}`] = null; updateObject[`system.heldenausruestung.${setId}.${target}`] = null;
this.object.update(updateObject); this.object.update(updateObject);