diff --git a/src/module/sheets/characterSheet.mjs b/src/module/sheets/characterSheet.mjs index 149c0db9..a8fdcb45 100644 --- a/src/module/sheets/characterSheet.mjs +++ b/src/module/sheets/characterSheet.mjs @@ -407,6 +407,24 @@ export class CharacterSheet extends ActorSheet { } + #getEquipmentset(setId) { + const equipmentSet = this.object.system.heldenausruestung[setId] + const updateObject = {} + 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; + return updateObject; + } + activateListeners(html) { super.activateListeners(html); @@ -448,32 +466,21 @@ export class CharacterSheet extends ActorSheet { html.on('drop', '.equipped', async (evt) => { const {actor, target, setId} = evt.currentTarget.dataset; - const {documentId} = JSON.parse(evt.originalEvent.dataTransfer.getData("application/json")); + try { + const {documentId} = JSON.parse(evt.originalEvent.dataTransfer.getData("application/json")); - if (actor === this.object._id && documentId) { // managing equipped items - //const slot = this.#isWorn(documentId, setId) - const equipmentSet = this.object.system.heldenausruestung[setId] - const updateObject = {} - 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}.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; + if (actor === this.object._id && documentId) { // managing equipped items + //const slot = this.#isWorn(documentId, setId) + const updateObject = this.#getEquipmentset(setId) + updateObject[`system.heldenausruestung.${setId}.${target}`] = documentId; + console.log(updateObject); - updateObject[`system.heldenausruestung.${setId}.${target}`] = documentId; - console.log(updateObject); + await this.object.update(updateObject); + } - await this.object.update(updateObject); - } - - evt.stopPropagation(); + evt.stopPropagation(); + } catch (e) {} }) new ContextMenu(html, '.talent.rollable', [ @@ -519,6 +526,21 @@ export class CharacterSheet extends ActorSheet { } ]); + new ContextMenu(html, '.equipped', [ + { + name: "Gegenstand vom Set entfernen", + callback: (event) => { + const {setId, target, actor} = event[0].dataset + + const updateObject = this.#getEquipmentset(setId) + updateObject[`system.heldenausruestung.${setId}.${target}`] = null; + + this.object.update(updateObject); + }, + condition: () => true + } + ]); + } #handleDroppedSkill(actor, skill) { diff --git a/src/style/_paperdoll.scss b/src/style/_paperdoll.scss index 156d63bf..fa984834 100644 --- a/src/style/_paperdoll.scss +++ b/src/style/_paperdoll.scss @@ -46,74 +46,64 @@ width: 34px; height: 34px; + position: absolute !important; + &.links { - position: absolute; top: 230px; left: 250px; } &.rechts { - position: absolute; top: 230px; left: 20px; } &.brust { - position: absolute; top: 120px; left: 110px; } &.armlinks { - position: absolute; top: 180px; left: 210px; } &.armrechts { - position: absolute; top: 180px; left: 60px; } &.beinlinks { - position: absolute; top: 380px; left: 210px; } &.beinrechts { - position: absolute; top: 380px; left: 60px; } &.bauch { - position: absolute; top: 200px; left: 136px; } &.kopf { - position: absolute; top: 40px; left: 136px } &.fernkampf { - position: absolute; top: 40px; left: 240px; } &.ruecken { - position: absolute; top: 120px; left: 160px; } &.munition { - position: absolute; top: 80px; left: 240px; }