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) {
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() {

View File

@ -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);