Compare commits

..

No commits in common. "b3f5e68c2350ebf8859c29ebfc0cec3dcf4085a2" and "321ba7d3d6c61dc3ee602ebeacfc782e31c78433" have entirely different histories.

23 changed files with 123 additions and 178 deletions

View File

@ -37,11 +37,9 @@ export class EquipmentDataModel extends BaseItem {
armorValue: new SchemaField({ armorValue: new SchemaField({
total: new NumberField({required: true, initial: 0}), total: new NumberField({required: true, initial: 0}),
armlinks: new NumberField({required: true, initial: 0}), arme: new NumberField({required: true, initial: 0}),
beinlinks: new NumberField({required: true, initial: 0}), beine: new NumberField({required: true, initial: 0}),
armrechts: new NumberField({required: true, initial: 0}), rücken: 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}), bauch: new NumberField({required: true, initial: 0}),
brust: new NumberField({required: true, initial: 0}), brust: new NumberField({required: true, initial: 0}),
kopf: new NumberField({required: true, initial: 0}), kopf: new NumberField({required: true, initial: 0}),

View File

@ -117,7 +117,6 @@ export class Character extends Actor {
systemData.wunden.kopf = 0; systemData.wunden.kopf = 0;
systemData.wunden.brust = 0; systemData.wunden.brust = 0;
systemData.wunden.bauch = 0; systemData.wunden.bauch = 0;
systemData.wunden.ruecken = 0;
systemData.wunden.armlinks = 0; systemData.wunden.armlinks = 0;
systemData.wunden.armrechts = 0; systemData.wunden.armrechts = 0;
systemData.wunden.beinlinks = 0; systemData.wunden.beinlinks = 0;
@ -129,40 +128,73 @@ export class Character extends Actor {
// map current set to RS and BE // map current set to RS and BE
const ausruestung = systemData.heldenausruestung[systemData.setEquipped]; const ausruestung = systemData.heldenausruestung[systemData.setEquipped];
const zonesToCheck = [ if (ausruestung) {
"brust", if (ausruestung.brust) {
"bauch", systemData.be += systemData.parent.items.get(ausruestung.brust).system.armorHandicap ?? 0
"ruecken",
"kopf",
"armlinks",
"armrechts",
"beinlinks",
"beinrechts"]
if (game.settings.get("DSA_4-1", "optional_ruestungzonen")) { if (game.settings.get("DSA_4-1", "optional_ruestungzonen")) {
systemData.rs.gesamt = 0 systemData.rs.brust = systemData.parent.items.get(ausruestung.brust).system.armorValue ?? 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 { } else {
systemData.rs = 0 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
}
}
} }
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; systemData.kap.max = 0;

View File

@ -174,30 +174,13 @@ export default {
const {itemId} = target.dataset const {itemId} = target.dataset
const item = thisObject.document.items.get(itemId) const item = thisObject.document.items.get(itemId)
console.log(item.system.category) console.log(item.system.category)
return !thisObject.document.isWorn(itemId) && item.system.category.indexOf("Munition") != -1 return !thisObject.document.isWorn(itemId)
} }
}, },
{ {
name: "Ausrüsten", name: "Ausrüsten",
callback: (target) => { callback: (target) => {
const updateObject = thisObject.document.getEquipmentSetUpdateObject() //thisObject.deleteEmbeddedDocuments('Item', [event.dataset.id])
// 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) => { condition: (target) => {
const {itemId} = target.dataset const {itemId} = target.dataset
@ -248,11 +231,11 @@ export default {
name: "Aus dem Inventar entfernen", name: "Aus dem Inventar entfernen",
icon: '<i class="fa-solid fa-trash"></i>', icon: '<i class="fa-solid fa-trash"></i>',
callback: (target) => { callback: (target) => {
thisObject.document.deleteEmbeddedDocuments('Item', [target.dataset.itemId]) thisObject.deleteEmbeddedDocuments('Item', [target.dataset.id])
}, },
condition: (target) => { condition: (target) => {
const {itemId} = target.dataset const {itemId} = target.dataset
return !thisObject.document.isWorn(itemId) !thisObject.document.isWorn(itemId)
} }
} }
], {jQuery: false}); ], {jQuery: false});

View File

@ -248,9 +248,9 @@ class CharacterSheet extends HandlebarsApplicationMixin(ActorSheetV2) {
name: obj.name, name: obj.name,
using: links.name, using: links.name,
atroll: `1d20cs<${this.document.system.at.links.aktuell + obj.system.at + links.system.attackModifier}`, // TODO consider adding W/M atroll: `1d20cs<${this.document.system.at.links.aktuell + obj.system.at + links.system.attackModifier}`, // TODO consider adding W/M
at: `${this.document.system.at.links.aktuell + obj.system.at + links.system.attackModifier}`, at: `${object.system.at.links.aktuell + obj.system.at + links.system.attackModifier}`,
paroll: `1d20cs<${this.document.system.pa.links.aktuell + obj.system.pa + links.system.parryModifier}`, // TODO consider adding W/M paroll: `1d20cs<${this.document.system.pa.links.aktuell + obj.system.pa + links.system.parryModifier}`, // TODO consider adding W/M
pa: `${this.document.system.pa.links.aktuell + obj.system.pa + links.system.parryModifier}`, pa: `${object.system.pa.links.aktuell + obj.system.pa + links.system.parryModifier}`,
tproll: `${links.system.meleeAttackDamage}`, // TODO consider adding TP/KK mod tproll: `${links.system.meleeAttackDamage}`, // TODO consider adding TP/KK mod
tp: `${links.system.meleeAttackDamage}`, tp: `${links.system.meleeAttackDamage}`,
iniroll: `(${context.inidice})d6 + ${context.inivalue + links.system.iniModifier ?? 0}`, iniroll: `(${context.inidice})d6 + ${context.inivalue + links.system.iniModifier ?? 0}`,
@ -272,9 +272,9 @@ class CharacterSheet extends HandlebarsApplicationMixin(ActorSheetV2) {
name: obj.name, name: obj.name,
using: rechts.name, using: rechts.name,
atroll: `1d20cs<${this.document.system.at.rechts.aktuell + obj.system.at + rechts.system.attackModifier}`, // TODO consider adding W/M atroll: `1d20cs<${this.document.system.at.rechts.aktuell + obj.system.at + rechts.system.attackModifier}`, // TODO consider adding W/M
at: `${this.document.system.at.rechts.aktuell + obj.system.at + rechts.system.attackModifier}`, at: `${object.system.at.rechts.aktuell + obj.system.at + rechts.system.attackModifier}`,
paroll: `1d20cs<${this.document.system.pa.rechts.aktuell + obj.system.pa + rechts.system.parryModifier}`, // TODO consider adding W/M paroll: `1d20cs<${this.document.system.pa.rechts.aktuell + obj.system.pa + rechts.system.parryModifier}`, // TODO consider adding W/M
pa: `${this.document.system.pa.rechts.aktuell + obj.system.pa + rechts.system.parryModifier}`, pa: `${object.system.pa.rechts.aktuell + obj.system.pa + rechts.system.parryModifier}`,
tproll: `${rechts.system.meleeAttackDamage}`, // TODO consider adding TP/KK mod tproll: `${rechts.system.meleeAttackDamage}`, // TODO consider adding TP/KK mod
tp: `${rechts.system.meleeAttackDamage}`, tp: `${rechts.system.meleeAttackDamage}`,
iniroll: `(${context.inidice})d6 + ${context.inivalue + rechts.system.iniModifier ?? 0}`, iniroll: `(${context.inidice})d6 + ${context.inivalue + rechts.system.iniModifier ?? 0}`,

View File

@ -23,9 +23,6 @@ export class EquipmentSheet extends HandlebarsApplicationMixin(DocumentSheetV2)
closeOnSubmit: false, closeOnSubmit: false,
handler: EquipmentSheet.#onSubmitForm handler: EquipmentSheet.#onSubmitForm
}, },
window: {
resizable: true,
},
actions: { actions: {
editImage: editImage:
DocumentSheetV2.DEFAULT_OPTIONS.actions.editImage DocumentSheetV2.DEFAULT_OPTIONS.actions.editImage

View File

@ -11,12 +11,10 @@
"total": 1, "total": 1,
"kopf": 0, "kopf": 0,
"brust": 1, "brust": 1,
"ruecken": 1, "rücken": 1,
"bauch": 1, "bauch": 1,
"armlinks": 1, "arme": 1,
"beinlinks": 1, "beine": 1
"armrechts": 1,
"beinrechts": 1
}, },
"armorHandicap": 1, "armorHandicap": 1,
"description": "" "description": ""

View File

@ -1,5 +1,4 @@
{ {
itemZone
"name": "Garether Platte", "name": "Garether Platte",
"image": "systems/DSA_4-1/assets/armory/platemail.png", "image": "systems/DSA_4-1/assets/armory/platemail.png",
"category": [ "category": [
@ -12,12 +11,10 @@
"total": 5, "total": 5,
"kopf": 0, "kopf": 0,
"brust": 6, "brust": 6,
"ruecken": 5, "rücken": 5,
"bauch": 6, "bauch": 6,
"armlinks": 5, "arme": 5,
"armrechts": 5, "beine": 4
"beinlinks": 4,
"beinrechts": 4
}, },
"armorHandicap": 4, "armorHandicap": 4,
"description": "" "description": ""

View File

@ -11,12 +11,10 @@
"total": 6, "total": 6,
"kopf": 3, "kopf": 3,
"brust": 7, "brust": 7,
"ruecken": 5, "rücken": 5,
"bauch": 7, "bauch": 7,
"armlinks": 5, "arme": 5,
"beinlinks": 5, "beine": 5
"armrechts": 5,
"beinrechts": 5
}, },
"armorHandicap": 4, "armorHandicap": 4,
"description": "" "description": ""

View File

@ -11,12 +11,10 @@
"total": 3, "total": 3,
"kopf": 0, "kopf": 0,
"brust": 4, "brust": 4,
"ruecken": 4, "rücken": 4,
"bauch": 4, "bauch": 4,
"armlinks": 2, "arme": 2,
"armrechts": 2, "beine": 1
"beinlinks": 1,
"beinrechts": 1
}, },
"armorHandicap": 2, "armorHandicap": 2,
"description": "" "description": ""

View File

@ -11,12 +11,10 @@
"total": 8, "total": 8,
"kopf": 8, "kopf": 8,
"brust": 8, "brust": 8,
"ruecken": 7, "rücken": 7,
"bauch": 8, "bauch": 8,
"armlinks": 7, "arme": 7,
"beinlinks": 7, "beine": 7
"armrechts": 7,
"beinrechts": 7
}, },
"armorHandicap": 8, "armorHandicap": 8,
"description": "" "description": ""

View File

@ -11,12 +11,10 @@
"total": 2, "total": 2,
"kopf": 0, "kopf": 0,
"brust": 3, "brust": 3,
"ruecken": 2, "rücken": 2,
"bauch": 2, "bauch": 2,
"armlinks": 1, "arme": 1,
"beinlinks": 0, "beine": 0
"armrechts": 1,
"beinrechts": 0
}, },
"armorHandicap": 2, "armorHandicap": 2,
"description": "" "description": ""

View File

@ -11,12 +11,10 @@
"total": 2, "total": 2,
"kopf": 0, "kopf": 0,
"brust": 5, "brust": 5,
"ruecken": 1, "rücken": 1,
"bauch": 2, "bauch": 2,
"armlinks": 0, "arme": 0,
"beinlinks": 0, "beine": 0
"armrechts": 0,
"beinrechts": 0
}, },
"armorHandicap": 1, "armorHandicap": 1,
"description": "" "description": ""

View File

@ -11,12 +11,10 @@
"total": 3, "total": 3,
"kopf": 0, "kopf": 0,
"brust": 4, "brust": 4,
"ruecken": 4, "rücken": 4,
"bauch": 4, "bauch": 4,
"armlinks": 3, "arme": 3,
"armrechts": 3, "beine": 2
"beinlinks": 2,
"beinrechts": 2
}, },
"armorHandicap": 2, "armorHandicap": 2,
"description": "" "description": ""

View File

@ -11,12 +11,10 @@
"total": 2, "total": 2,
"kopf": 0, "kopf": 0,
"brust": 3, "brust": 3,
"ruecken": 3, "rücken": 3,
"bauch": 3, "bauch": 3,
"armlinks": 0, "arme": 0,
"beinlinks": 0, "beine": 0
"armrechts": 0,
"beinrechts": 0
}, },
"armorHandicap": 1, "armorHandicap": 1,
"description": "" "description": ""

View File

@ -11,12 +11,10 @@
"total": 3, "total": 3,
"kopf": 0, "kopf": 0,
"brust": 5, "brust": 5,
"ruecken": 4, "rücken": 4,
"bauch": 5, "bauch": 5,
"armlinks": 0, "arme": 0,
"armrechts": 0, "beine": 2
"beinlinks": 2,
"beinrechts": 2
}, },
"armorHandicap": 2, "armorHandicap": 2,
"description": "" "description": ""

View File

@ -11,12 +11,10 @@
"total": 4, "total": 4,
"kopf": 0, "kopf": 0,
"brust": 5, "brust": 5,
"ruecken": 5, "rücken": 5,
"bauch": 5, "bauch": 5,
"armlinks": 3, "arme": 3,
"beinlinks": 3, "beine": 3
"armrechts": 3,
"beinrechts": 3
}, },
"armorHandicap": 4, "armorHandicap": 4,
"description": "" "description": ""

View File

@ -11,12 +11,10 @@
"total": 4, "total": 4,
"kopf": 0, "kopf": 0,
"brust": 5, "brust": 5,
"ruecken": 5, "rücken": 5,
"bauch": 5, "bauch": 5,
"armlinks": 3, "arme": 3,
"armrechts": 3, "beine": 2
"beinlinks": 2,
"beinrechts": 2
}, },
"armorHandicap": 3, "armorHandicap": 3,
"description": "" "description": ""

View File

@ -24,12 +24,10 @@
"total": 1.5, "total": 1.5,
"kopf": 0, "kopf": 0,
"brust": 1, "brust": 1,
"ruecken": 1, "rücken": 1,
"bauch": 1, "bauch": 1,
"armlinks": 1, "arme": 1,
"beinlinks": 1, "beine": 1
"armrechts": 1,
"beinrechts": 1
}, },
"armorHandicap": 1, "armorHandicap": 1,
"description": "" "description": ""

View File

@ -11,12 +11,10 @@
"total": 2, "total": 2,
"kopf": 0, "kopf": 0,
"brust": 2, "brust": 2,
"ruecken": 2, "rücken": 2,
"bauch": 2, "bauch": 2,
"armlinks": 1, "arme": 1,
"beinlinks": 1, "beine": 1
"armrechts": 1,
"beinrechts": 1
}, },
"armorHandicap": 2, "armorHandicap": 2,
"description": "" "description": ""

View File

@ -160,11 +160,6 @@
left: 110px; left: 110px;
} }
&.ruecken {
top: 86px;
left: 160px;
}
} }
.armor { .armor {
@ -210,11 +205,6 @@
left: 136px left: 136px
} }
&.ruecken {
top: 120px;
left: 160px;
}
&.brust { &.brust {
top: 120px; top: 120px;
left: 110px; left: 110px;

View File

@ -34,20 +34,6 @@
.inventory { .inventory {
grid-area: inventory; grid-area: inventory;
display: flex;
flex-direction: column;
h3 {
flex: 0;
}
.inventory-table {
flex: 1;
.equipment {
height: 32px;
}
}
.equipment:hover { .equipment:hover {
.item-name { .item-name {

View File

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

View File

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