From b3f5e68c2350ebf8859c29ebfc0cec3dcf4085a2 Mon Sep 17 00:00:00 2001 From: macniel Date: Mon, 20 Oct 2025 20:30:54 +0200 Subject: [PATCH] reestablishes armor values --- src/module/data/equipment.mjs | 8 +- src/module/documents/character.mjs | 98 +++++++------------ src/module/sheets/character/equipment.mjs | 18 +++- src/module/sheets/equipmentSheet.mjs | 3 + .../_source/ruestzeug/dicke-kleidung.json | 8 +- .../_source/ruestzeug/garether-platte.json | 9 +- .../ruestzeug/horasischer-reiterharnisch.json | 8 +- .../_source/ruestzeug/kettenhemd-halbarm.json | 8 +- .../ruestzeug/komplette-gestechruestung.json | 8 +- src/packs/_source/ruestzeug/kroetenhaut.json | 8 +- src/packs/_source/ruestzeug/kuerass.json | 8 +- .../_source/ruestzeug/langes-kettenhemd.json | 8 +- .../_source/ruestzeug/lederharnisch.json | 8 +- .../_source/ruestzeug/leichte-platte.json | 8 +- .../_source/ruestzeug/schuppenpanzer.json | 8 +- .../_source/ruestzeug/spiegelpanzer.json | 8 +- .../ruestzeug/wattierte-unterkleidung.json | 8 +- .../ruestzeug/wattierter-waffenrock.json | 8 +- .../organisms/character-tabs/_combat.scss | 10 ++ src/templates/actor/character/tab-combat.hbs | 2 + src/templates/item/equipment/tab-armor.hbs | 20 +++- 21 files changed, 156 insertions(+), 116 deletions(-) diff --git a/src/module/data/equipment.mjs b/src/module/data/equipment.mjs index 0e4a1ea8..fd2a4f33 100644 --- a/src/module/data/equipment.mjs +++ b/src/module/data/equipment.mjs @@ -37,9 +37,11 @@ export class EquipmentDataModel extends BaseItem { armorValue: new SchemaField({ total: new NumberField({required: true, initial: 0}), - arme: new NumberField({required: true, initial: 0}), - beine: new NumberField({required: true, initial: 0}), - rücken: new NumberField({required: true, initial: 0}), + armlinks: new NumberField({required: true, initial: 0}), + beinlinks: new NumberField({required: true, initial: 0}), + armrechts: new NumberField({required: true, initial: 0}), + beinrechts: new NumberField({required: true, initial: 0}), + ruecken: new NumberField({required: true, initial: 0}), bauch: new NumberField({required: true, initial: 0}), brust: new NumberField({required: true, initial: 0}), kopf: new NumberField({required: true, initial: 0}), diff --git a/src/module/documents/character.mjs b/src/module/documents/character.mjs index 824f99d2..da36c15e 100644 --- a/src/module/documents/character.mjs +++ b/src/module/documents/character.mjs @@ -117,6 +117,7 @@ export class Character extends Actor { systemData.wunden.kopf = 0; systemData.wunden.brust = 0; systemData.wunden.bauch = 0; + systemData.wunden.ruecken = 0; systemData.wunden.armlinks = 0; systemData.wunden.armrechts = 0; systemData.wunden.beinlinks = 0; @@ -128,73 +129,40 @@ export class Character extends Actor { // map current set to RS and BE const ausruestung = systemData.heldenausruestung[systemData.setEquipped]; - if (ausruestung) { - if (ausruestung.brust) { - systemData.be += systemData.parent.items.get(ausruestung.brust).system.armorHandicap ?? 0 - if (game.settings.get("DSA_4-1", "optional_ruestungzonen")) { - systemData.rs.brust = systemData.parent.items.get(ausruestung.brust).system.armorValue ?? 0 - } else { - systemData.rs += systemData.parent.items.get(ausruestung.brust).system.armorValue ?? 0 - } - } - if (ausruestung.bauch) { - systemData.be += systemData.parent.items.get(ausruestung.bauch).system.armorHandicap ?? 0 - if (game.settings.get("DSA_4-1", "optional_ruestungzonen")) { - systemData.rs.bauch = systemData.parent.items.get(ausruestung.bauch).system.armorValue ?? 0 - } else { - systemData.rs += systemData.parent.items.get(ausruestung.bauch).system.armorValue ?? 0 - } - } - if (ausruestung.ruecken) { - systemData.be += systemData.parent.items.get(ausruestung.ruecken).system.armorHandicap ?? 0 - if (game.settings.get("DSA_4-1", "optional_ruestungzonen")) { - // ruecken is not a valid trefferzone - } else { - systemData.rs += systemData.parent.items.get(ausruestung.ruecken).system.armorValue ?? 0 - } - } - if (ausruestung.armlinks) { - systemData.be += systemData.parent.items.get(ausruestung.armlinks).system.armorHandicap ?? 0 - if (game.settings.get("DSA_4-1", "optional_ruestungzonen")) { - systemData.rs.armlinks = systemData.parent.items.get(ausruestung.armlinks).system.armorValue ?? 0 - } else { - systemData.rs += systemData.parent.items.get(ausruestung.armlinks).system.armorValue ?? 0 - } - } - if (ausruestung.armrechts) { - systemData.be += systemData.parent.items.get(ausruestung.armrechts).system.armorHandicap ?? 0 - if (game.settings.get("DSA_4-1", "optional_ruestungzonen")) { - systemData.rs.armrechts = systemData.parent.items.get(ausruestung.armrechts).system.armorValue ?? 0 - } else { - systemData.rs += systemData.parent.items.get(ausruestung.armrechts).system.armorValue ?? 0 - } - } - if (ausruestung.beinlinks) { - systemData.be += systemData.parent.items.get(ausruestung.beinlinks).system.armorHandicap ?? 0 - if (game.settings.get("DSA_4-1", "optional_ruestungzonen")) { - systemData.rs.beinlinks = systemData.parent.items.get(ausruestung.beinlinks).system.armorValue ?? 0 - } else { - systemData.rs += systemData.parent.items.get(ausruestung.beinlinks).system.armorValue ?? 0 - } - } - if (ausruestung.beinrechts) { - systemData.be += systemData.parent.items.get(ausruestung.beinrechts).system.armorHandicap ?? 0 - if (game.settings.get("DSA_4-1", "optional_ruestungzonen")) { - systemData.rs.beinrechts = systemData.parent.items.get(ausruestung.beinrechts).system.armorValue ?? 0 - } else { - systemData.rs += systemData.parent.items.get(ausruestung.beinrechts).system.armorValue ?? 0 - } - } - if (ausruestung.kopf) { - systemData.be += systemData.parent.items.get(ausruestung.kopf).system.armorHandicap ?? 0 - if (game.settings.get("DSA_4-1", "optional_ruestungzonen")) { - systemData.rs.kopf = systemData.parent.items.get(ausruestung.kopf).system.armorValue ?? 0 - } else { - systemData.rs += systemData.parent.items.get(ausruestung.kopf).system.armorValue ?? 0 - } - } + const zonesToCheck = [ + "brust", + "bauch", + "ruecken", + "kopf", + "armlinks", + "armrechts", + "beinlinks", + "beinrechts"] + + if (game.settings.get("DSA_4-1", "optional_ruestungzonen")) { + systemData.rs.gesamt = 0 + systemData.rs.brust = 0 + systemData.rs.bauch = 0 + systemData.rs.ruecken = 0 + systemData.rs.kopf = 0 + systemData.rs.armlinks = 0 + systemData.rs.armrechts = 0 + systemData.rs.beinlinks = 0 + systemData.rs.beinrechts = 0 + } else { + systemData.rs = 0 } + zonesToCheck.forEach((zone) => { + systemData.be += systemData.parent.items.get(ausruestung[zone])?.system.armorHandicap ?? 0 + if (game.settings.get("DSA_4-1", "optional_ruestungzonen")) { + zonesToCheck.forEach((itemZone) => { + systemData.rs[itemZone] += systemData.parent.items.get(ausruestung[zone])?.system.armorValue[itemZone] ?? 0 + }) + } else { + systemData.rs += systemData.parent.items.get(ausruestung[zone])?.system.armorValue.total ?? 0 + } + }) systemData.kap.max = 0; diff --git a/src/module/sheets/character/equipment.mjs b/src/module/sheets/character/equipment.mjs index 8ae6d0db..ee434403 100644 --- a/src/module/sheets/character/equipment.mjs +++ b/src/module/sheets/character/equipment.mjs @@ -181,7 +181,23 @@ export default { name: "Ausrüsten", callback: (target) => { const updateObject = thisObject.document.getEquipmentSetUpdateObject() - + // find next unoccupied slot and enter the item + console.log(updateObject) + const nextUnoccupiedSlot = Object.entries(updateObject).find(([key, value]) => { + // but not when it is a weapon slot + console.log(key, value === null + && key.indexOf(".links") === -1 + && key.indexOf(".rechts") === -1 + && key.indexOf(".fernkampf") === -1 + && key.indexOf(".munition") === -1) + return value === null + && key.indexOf(".links") === -1 + && key.indexOf(".rechts") === -1 + && key.indexOf(".fernkampf") === -1 + && key.indexOf(".munition") === -1 + }) + updateObject[nextUnoccupiedSlot[0]] = target.dataset.itemId + thisObject.document.update(updateObject) }, condition: (target) => { const {itemId} = target.dataset diff --git a/src/module/sheets/equipmentSheet.mjs b/src/module/sheets/equipmentSheet.mjs index d087fd4c..d0fb20ac 100644 --- a/src/module/sheets/equipmentSheet.mjs +++ b/src/module/sheets/equipmentSheet.mjs @@ -23,6 +23,9 @@ export class EquipmentSheet extends HandlebarsApplicationMixin(DocumentSheetV2) closeOnSubmit: false, handler: EquipmentSheet.#onSubmitForm }, + window: { + resizable: true, + }, actions: { editImage: DocumentSheetV2.DEFAULT_OPTIONS.actions.editImage diff --git a/src/packs/_source/ruestzeug/dicke-kleidung.json b/src/packs/_source/ruestzeug/dicke-kleidung.json index d4fd700a..b6eb7922 100644 --- a/src/packs/_source/ruestzeug/dicke-kleidung.json +++ b/src/packs/_source/ruestzeug/dicke-kleidung.json @@ -11,10 +11,12 @@ "total": 1, "kopf": 0, "brust": 1, - "rücken": 1, + "ruecken": 1, "bauch": 1, - "arme": 1, - "beine": 1 + "armlinks": 1, + "beinlinks": 1, + "armrechts": 1, + "beinrechts": 1 }, "armorHandicap": 1, "description": "" diff --git a/src/packs/_source/ruestzeug/garether-platte.json b/src/packs/_source/ruestzeug/garether-platte.json index 52a1bfde..7a41ef07 100644 --- a/src/packs/_source/ruestzeug/garether-platte.json +++ b/src/packs/_source/ruestzeug/garether-platte.json @@ -1,4 +1,5 @@ { + itemZone "name": "Garether Platte", "image": "systems/DSA_4-1/assets/armory/platemail.png", "category": [ @@ -11,10 +12,12 @@ "total": 5, "kopf": 0, "brust": 6, - "rücken": 5, + "ruecken": 5, "bauch": 6, - "arme": 5, - "beine": 4 + "armlinks": 5, + "armrechts": 5, + "beinlinks": 4, + "beinrechts": 4 }, "armorHandicap": 4, "description": "" diff --git a/src/packs/_source/ruestzeug/horasischer-reiterharnisch.json b/src/packs/_source/ruestzeug/horasischer-reiterharnisch.json index edc31c64..0c9d9ad8 100644 --- a/src/packs/_source/ruestzeug/horasischer-reiterharnisch.json +++ b/src/packs/_source/ruestzeug/horasischer-reiterharnisch.json @@ -11,10 +11,12 @@ "total": 6, "kopf": 3, "brust": 7, - "rücken": 5, + "ruecken": 5, "bauch": 7, - "arme": 5, - "beine": 5 + "armlinks": 5, + "beinlinks": 5, + "armrechts": 5, + "beinrechts": 5 }, "armorHandicap": 4, "description": "" diff --git a/src/packs/_source/ruestzeug/kettenhemd-halbarm.json b/src/packs/_source/ruestzeug/kettenhemd-halbarm.json index df24043e..87b805d7 100644 --- a/src/packs/_source/ruestzeug/kettenhemd-halbarm.json +++ b/src/packs/_source/ruestzeug/kettenhemd-halbarm.json @@ -11,10 +11,12 @@ "total": 3, "kopf": 0, "brust": 4, - "rücken": 4, + "ruecken": 4, "bauch": 4, - "arme": 2, - "beine": 1 + "armlinks": 2, + "armrechts": 2, + "beinlinks": 1, + "beinrechts": 1 }, "armorHandicap": 2, "description": "" diff --git a/src/packs/_source/ruestzeug/komplette-gestechruestung.json b/src/packs/_source/ruestzeug/komplette-gestechruestung.json index 4d6468b2..aec4ce3c 100644 --- a/src/packs/_source/ruestzeug/komplette-gestechruestung.json +++ b/src/packs/_source/ruestzeug/komplette-gestechruestung.json @@ -11,10 +11,12 @@ "total": 8, "kopf": 8, "brust": 8, - "rücken": 7, + "ruecken": 7, "bauch": 8, - "arme": 7, - "beine": 7 + "armlinks": 7, + "beinlinks": 7, + "armrechts": 7, + "beinrechts": 7 }, "armorHandicap": 8, "description": "" diff --git a/src/packs/_source/ruestzeug/kroetenhaut.json b/src/packs/_source/ruestzeug/kroetenhaut.json index b38e0f29..6c6a54a8 100644 --- a/src/packs/_source/ruestzeug/kroetenhaut.json +++ b/src/packs/_source/ruestzeug/kroetenhaut.json @@ -11,10 +11,12 @@ "total": 2, "kopf": 0, "brust": 3, - "rücken": 2, + "ruecken": 2, "bauch": 2, - "arme": 1, - "beine": 0 + "armlinks": 1, + "beinlinks": 0, + "armrechts": 1, + "beinrechts": 0 }, "armorHandicap": 2, "description": "" diff --git a/src/packs/_source/ruestzeug/kuerass.json b/src/packs/_source/ruestzeug/kuerass.json index c026a910..0570b973 100644 --- a/src/packs/_source/ruestzeug/kuerass.json +++ b/src/packs/_source/ruestzeug/kuerass.json @@ -11,10 +11,12 @@ "total": 2, "kopf": 0, "brust": 5, - "rücken": 1, + "ruecken": 1, "bauch": 2, - "arme": 0, - "beine": 0 + "armlinks": 0, + "beinlinks": 0, + "armrechts": 0, + "beinrechts": 0 }, "armorHandicap": 1, "description": "" diff --git a/src/packs/_source/ruestzeug/langes-kettenhemd.json b/src/packs/_source/ruestzeug/langes-kettenhemd.json index c43d1723..28e952c5 100644 --- a/src/packs/_source/ruestzeug/langes-kettenhemd.json +++ b/src/packs/_source/ruestzeug/langes-kettenhemd.json @@ -11,10 +11,12 @@ "total": 3, "kopf": 0, "brust": 4, - "rücken": 4, + "ruecken": 4, "bauch": 4, - "arme": 3, - "beine": 2 + "armlinks": 3, + "armrechts": 3, + "beinlinks": 2, + "beinrechts": 2 }, "armorHandicap": 2, "description": "" diff --git a/src/packs/_source/ruestzeug/lederharnisch.json b/src/packs/_source/ruestzeug/lederharnisch.json index 2cd665b8..c9d37a51 100644 --- a/src/packs/_source/ruestzeug/lederharnisch.json +++ b/src/packs/_source/ruestzeug/lederharnisch.json @@ -11,10 +11,12 @@ "total": 2, "kopf": 0, "brust": 3, - "rücken": 3, + "ruecken": 3, "bauch": 3, - "arme": 0, - "beine": 0 + "armlinks": 0, + "beinlinks": 0, + "armrechts": 0, + "beinrechts": 0 }, "armorHandicap": 1, "description": "" diff --git a/src/packs/_source/ruestzeug/leichte-platte.json b/src/packs/_source/ruestzeug/leichte-platte.json index bbfe4310..b75a8472 100644 --- a/src/packs/_source/ruestzeug/leichte-platte.json +++ b/src/packs/_source/ruestzeug/leichte-platte.json @@ -11,10 +11,12 @@ "total": 3, "kopf": 0, "brust": 5, - "rücken": 4, + "ruecken": 4, "bauch": 5, - "arme": 0, - "beine": 2 + "armlinks": 0, + "armrechts": 0, + "beinlinks": 2, + "beinrechts": 2 }, "armorHandicap": 2, "description": "" diff --git a/src/packs/_source/ruestzeug/schuppenpanzer.json b/src/packs/_source/ruestzeug/schuppenpanzer.json index 476a8da7..f1969f89 100644 --- a/src/packs/_source/ruestzeug/schuppenpanzer.json +++ b/src/packs/_source/ruestzeug/schuppenpanzer.json @@ -11,10 +11,12 @@ "total": 4, "kopf": 0, "brust": 5, - "rücken": 5, + "ruecken": 5, "bauch": 5, - "arme": 3, - "beine": 3 + "armlinks": 3, + "beinlinks": 3, + "armrechts": 3, + "beinrechts": 3 }, "armorHandicap": 4, "description": "" diff --git a/src/packs/_source/ruestzeug/spiegelpanzer.json b/src/packs/_source/ruestzeug/spiegelpanzer.json index d3273d63..8887fc45 100644 --- a/src/packs/_source/ruestzeug/spiegelpanzer.json +++ b/src/packs/_source/ruestzeug/spiegelpanzer.json @@ -11,10 +11,12 @@ "total": 4, "kopf": 0, "brust": 5, - "rücken": 5, + "ruecken": 5, "bauch": 5, - "arme": 3, - "beine": 2 + "armlinks": 3, + "armrechts": 3, + "beinlinks": 2, + "beinrechts": 2 }, "armorHandicap": 3, "description": "" diff --git a/src/packs/_source/ruestzeug/wattierte-unterkleidung.json b/src/packs/_source/ruestzeug/wattierte-unterkleidung.json index 589ac6be..6bf993eb 100644 --- a/src/packs/_source/ruestzeug/wattierte-unterkleidung.json +++ b/src/packs/_source/ruestzeug/wattierte-unterkleidung.json @@ -24,10 +24,12 @@ "total": 1.5, "kopf": 0, "brust": 1, - "rücken": 1, + "ruecken": 1, "bauch": 1, - "arme": 1, - "beine": 1 + "armlinks": 1, + "beinlinks": 1, + "armrechts": 1, + "beinrechts": 1 }, "armorHandicap": 1, "description": "" diff --git a/src/packs/_source/ruestzeug/wattierter-waffenrock.json b/src/packs/_source/ruestzeug/wattierter-waffenrock.json index 28d54f5f..922862e6 100644 --- a/src/packs/_source/ruestzeug/wattierter-waffenrock.json +++ b/src/packs/_source/ruestzeug/wattierter-waffenrock.json @@ -11,10 +11,12 @@ "total": 2, "kopf": 0, "brust": 2, - "rücken": 2, + "ruecken": 2, "bauch": 2, - "arme": 1, - "beine": 1 + "armlinks": 1, + "beinlinks": 1, + "armrechts": 1, + "beinrechts": 1 }, "armorHandicap": 2, "description": "" diff --git a/src/style/organisms/character-tabs/_combat.scss b/src/style/organisms/character-tabs/_combat.scss index ee4e0aa3..d8c667b2 100644 --- a/src/style/organisms/character-tabs/_combat.scss +++ b/src/style/organisms/character-tabs/_combat.scss @@ -160,6 +160,11 @@ left: 110px; } + &.ruecken { + top: 86px; + left: 160px; + } + } .armor { @@ -205,6 +210,11 @@ left: 136px } + &.ruecken { + top: 120px; + left: 160px; + } + &.brust { top: 120px; left: 110px; diff --git a/src/templates/actor/character/tab-combat.hbs b/src/templates/actor/character/tab-combat.hbs index 6e86390f..1dbe9569 100644 --- a/src/templates/actor/character/tab-combat.hbs +++ b/src/templates/actor/character/tab-combat.hbs @@ -80,6 +80,7 @@ {{derived.wunden.brust}} {{derived.wunden.armlinks}} {{derived.wunden.armrechts}} + {{derived.wunden.ruecken}} {{derived.wunden.bauch}} {{derived.wunden.beinlinks}} {{derived.wunden.beinrechts}} @@ -89,6 +90,7 @@ {{derived.rs.brust}} {{derived.rs.armlinks}} {{derived.rs.armrechts}} + {{derived.rs.ruecken}} {{derived.rs.bauch}} {{derived.rs.beinlinks}} {{derived.rs.beinrechts}} diff --git a/src/templates/item/equipment/tab-armor.hbs b/src/templates/item/equipment/tab-armor.hbs index 90e476cf..69f49f1f 100644 --- a/src/templates/item/equipment/tab-armor.hbs +++ b/src/templates/item/equipment/tab-armor.hbs @@ -13,13 +13,23 @@
-
-
+
+ +
+
+
@@ -35,7 +45,7 @@