reestablishes armor values
Pull Request Check / testing (pull_request) Successful in 17s Details

feature/applicationv2
macniel 2025-10-20 20:30:54 +02:00
parent 89d427b711
commit b3f5e68c23
21 changed files with 156 additions and 116 deletions

View File

@ -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}),

View File

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

View File

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

View File

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

View File

@ -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": ""

View File

@ -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": ""

View File

@ -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": ""

View File

@ -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": ""

View File

@ -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": ""

View File

@ -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": ""

View File

@ -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": ""

View File

@ -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": ""

View File

@ -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": ""

View File

@ -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": ""

View File

@ -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": ""

View File

@ -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": ""

View File

@ -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": ""

View File

@ -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": ""

View File

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

View File

@ -80,6 +80,7 @@
<span class="wound brust">{{derived.wunden.brust}}</span>
<span class="wound armlinks">{{derived.wunden.armlinks}}</span>
<span class="wound armrechts">{{derived.wunden.armrechts}}</span>
<span class="wound ruecken">{{derived.wunden.ruecken}}</span>
<span class="wound bauch">{{derived.wunden.bauch}}</span>
<span class="wound beinlinks">{{derived.wunden.beinlinks}}</span>
<span class="wound beinrechts">{{derived.wunden.beinrechts}}</span>
@ -89,6 +90,7 @@
<span class="armor brust">{{derived.rs.brust}}</span>
<span class="armor armlinks">{{derived.rs.armlinks}}</span>
<span class="armor armrechts">{{derived.rs.armrechts}}</span>
<span class="armor ruecken">{{derived.rs.ruecken}}</span>
<span class="armor bauch">{{derived.rs.bauch}}</span>
<span class="armor beinlinks">{{derived.rs.beinlinks}}</span>
<span class="armor beinrechts">{{derived.rs.beinrechts}}</span>

View File

@ -13,13 +13,23 @@
</div>
<div>
<label>Arme
<input type="text" name="system.armorValue.arme" value="{{system.armorValue.arme}}"/>
<label>Linker Arm
<input type="text" name="system.armorValue.armlinks" value="{{system.armorValue.armlinks}}"/>
</label>
</div>
<div>
<label>Beine
<input type="text" name="system.armorValue.beine" value="{{system.armorValue.beine}}"/>
<label>Rechter Arm
<input type="text" name="system.armorValue.armrechts" value="{{system.armorValue.armrechts}}"/>
</label>
</div>
<div>
<label>Linkes Bein
<input type="text" name="system.armorValue.beinlinks" value="{{system.armorValue.beinlinks}}"/>
</label>
</div>
<div>
<label>Rechtes Bein
<input type="text" name="system.armorValue.beinrechts" value="{{system.armorValue.beinrechts}}"/>
</label>
</div>
@ -35,7 +45,7 @@
</div>
<div>
<label>Rücken
<input type="text" name="system.armorValue.rücken" value="{{system.armorValue.rücken}}"/>
<input type="text" name="system.armorValue.ruecken" value="{{system.armorValue.ruecken}}"/>
</label>
</div>
<div>