diff --git a/src/ActorSheet.html b/src/ActorSheet.html index ac93c9e..82b58d4 100644 --- a/src/ActorSheet.html +++ b/src/ActorSheet.html @@ -222,12 +222,12 @@ {{#each actor.itemTypes.Ruestung}}
-
+
{{this.name}}
-
{{this.system.gewicht}}
-
{{>editable-checkbox value=this.system.angelegt}}
+
+
{{/each}}
@@ -239,12 +239,13 @@ {{#each actor.itemTypes.Gegenstand}}
-
+
{{this.name}}
+
{{this.system.gewicht}}
-
{{>editable-checkbox value=this.system.angelegt}}
+
{{/each}}
@@ -262,7 +263,7 @@ {{#each actor.system.computed.kampf.waffen}}
-
+
{{item.name}} @@ -276,21 +277,62 @@ {{/each}}
-
-
-
{{localize "DSA41.kampf.ruestungen"}}
-
{{localize "DSA41.weight"}}
+
+
+
{{localize "DSA41.kampf.ruestungen"}}
+
{{localize "DSA41.ruestungen.kopf"}}
+
{{localize "DSA41.ruestungen.brust"}}
+
{{localize "DSA41.ruestungen.ruecken"}}
+
{{localize "DSA41.ruestungen.bauch"}}
+
+
{{localize "DSA41.ruestungen.arm"}}
+
{{localize "DSA41.ruestungen.links"}}
+
{{localize "DSA41.ruestungen.rechts"}}
+
+
+
{{localize "DSA41.ruestungen.bein"}}
+
{{localize "DSA41.ruestungen.links"}}
+
{{localize "DSA41.ruestungen.rechts"}}
+
+
+
{{localize "DSA41.ruestungen.gesamt"}}
+
{{localize "DSA41.ruestungen.ruestungsschutz"}}
+
{{localize "DSA41.ruestungen.behinderung"}}
+
- {{#each actor.itemTypes.Ruestung}} -
-
- - {{this.name}} + + {{#each actor.system.computed.kampf.ruestungen}} +
+
+ + {{item.name}}
-
{{this.system.gewicht}}
-
{{>editable-checkbox value=this.system.angelegt}}
+
{{item.system.kopf}}
+
{{item.system.brust}}
+
{{item.system.ruecken}}
+
{{item.system.bauch}}
+
{{item.system.linker_arm}}
+
{{item.system.rechter_arm}}
+
{{item.system.linkes_bein}}
+
{{item.system.rechtes_bein}}
+
{{item.system.gesamt_ruestungsschutz}}
+
{{item.system.gesamt_behinderung}}
{{/each}} + +
+
Total
+
{{actor.system.computed.kampf.ruestungen_gesamt.kopf}}
+
{{actor.system.computed.kampf.ruestungen_gesamt.brust}}
+
{{actor.system.computed.kampf.ruestungen_gesamt.ruecken}}
+
{{actor.system.computed.kampf.ruestungen_gesamt.bauch}}
+
{{actor.system.computed.kampf.ruestungen_gesamt.linker_arm}}
+
{{actor.system.computed.kampf.ruestungen_gesamt.rechter_arm}}
+
{{actor.system.computed.kampf.ruestungen_gesamt.linkes_bein}}
+
{{actor.system.computed.kampf.ruestungen_gesamt.rechtes_bein}}
+
{{actor.system.computed.kampf.ruestungen_gesamt.gesamt_ruestungsschutz}}
+
{{actor.system.computed.kampf.ruestungen_gesamt.gesamt_behinderung}}
+
diff --git a/src/lang/de.json b/src/lang/de.json index f232a45..36b65cb 100644 --- a/src/lang/de.json +++ b/src/lang/de.json @@ -271,7 +271,18 @@ "rechtes_bein": "Rechtes Bein", "gesamt_ruestungsschutz": "Gesamt Rüstungsschutz", - "gesamt_behinderung": "Gesamt Behinderung" + "gesamt_behinderung": "Gesamt Behinderung", + + "arm": "Arm", + "bein": "Bein", + + "ruestungsschutz": "Rüstungsschutz", + "behinderung": "Behinderung", + + "gesamt": "Gesamt", + "links": "Links", + "rechts": "Rechts" + }, "bewaffnung": { diff --git a/src/main.css b/src/main.css index 3c2a985..b24d4d1 100644 --- a/src/main.css +++ b/src/main.css @@ -18,16 +18,47 @@ flex-wrap: wrap; } +.left { + text-align: left; + justify-content: left; + justify-self: left; +} + .center { - text-align: center; + text-align: center; justify-content: center; - align-content: center; + justify-self: center; + align-content: center; } .none { display: none; } +.subgrid { + display: grid; + grid-template-rows: subgrid; + grid-template-columns: subgrid; +} + +.colspan2 { grid-column: span 2; } +.colspan3 { grid-column: span 3; } +.colspan4 { grid-column: span 4; } +.colspan5 { grid-column: span 5; } +.colspan6 { grid-column: span 6; } +.colspan7 { grid-column: span 7; } +.colspan8 { grid-column: span 8; } +.colspan9 { grid-column: span 9; } + +.rowspan2 { grid-row: span 2; } +.rowspan3 { grid-row: span 3; } +.rowspan4 { grid-row: span 4; } +.rowspan5 { grid-row: span 5; } +.rowspan6 { grid-row: span 6; } +.rowspan7 { grid-row: span 7; } +.rowspan8 { grid-row: span 8; } +.rowspan9 { grid-row: span 9; } + .editable-input { @@ -135,6 +166,10 @@ gap: 16px; } +.kampf { + gap: 16px; +} + .actor-sheet fieldset { width: 100%; @@ -173,3 +208,25 @@ width: 12px; height: 12px; } + +.actor-sheet .kampf .ruestungen { + display: grid; + grid-template-columns: 2fr repeat(8, 1fr) repeat(2, 1.5fr); + +} + +.actor-sheet .kampf .ruestungen > * { + display: grid; + grid-column: 1 / -1; + grid-template-columns: subgrid; + + padding: 0.25rem; + border-bottom: 1px dotted; + + text-align: center; + place-items: center; +} + +.actor-sheet .kampf .ruestungen > *:last-child { + border: none; +} diff --git a/src/main.mjs b/src/main.mjs index 4b3177b..1244f83 100644 --- a/src/main.mjs +++ b/src/main.mjs @@ -240,8 +240,22 @@ class DSA41_CharacterData extends foundry.abstract.TypeDataModel { }, kampf: { - talente: {}, - waffen: {}, + talente: {}, + waffen: {}, + ruestungen: {}, + ruestungen_gesamt: { + kopf: 0, + brust: 0, + ruecken: 0, + bauch: 0, + linker_arm: 0, + rechter_arm: 0, + linkes_bein: 0, + rechtes_bein: 0, + + gesamt_ruestungsschutz: 0.0, + gesamt_behinderung: 0.0, + }, }, }; @@ -260,21 +274,40 @@ class DSA41_CharacterData extends foundry.abstract.TypeDataModel { this.computed.pa_basiswert = Math.round((this.computed.attributes.without_modifiers.intuition + this.computed.attributes.without_modifiers.agility + this.computed.attributes.without_modifiers.strength) / 5);; this.computed.fk_basiswert = Math.round((this.computed.attributes.without_modifiers.intuition + this.computed.attributes.without_modifiers.dexterity + this.computed.attributes.without_modifiers.strength) / 5);; + const equipped_ruestungen = this.parent.items.filter((x) => x.type === "Ruestung"); + for (const item of equipped_ruestungen) { + this.computed.kampf.ruestungen[item._id] = { item: item }; + + this.computed.kampf.ruestungen_gesamt.kopf += item.system.kopf; + this.computed.kampf.ruestungen_gesamt.brust += item.system.brust; + this.computed.kampf.ruestungen_gesamt.ruecken += item.system.ruecken; + this.computed.kampf.ruestungen_gesamt.bauch += item.system.bauch; + this.computed.kampf.ruestungen_gesamt.linker_arm += item.system.linker_arm; + this.computed.kampf.ruestungen_gesamt.rechter_arm += item.system.rechter_arm; + this.computed.kampf.ruestungen_gesamt.linkes_bein += item.system.linkes_bein; + this.computed.kampf.ruestungen_gesamt.rechtes_bein += item.system.rechtes_bein; + this.computed.kampf.ruestungen_gesamt.gesamt_ruestungsschutz += item.system.gesamt_ruestungsschutz; + this.computed.kampf.ruestungen_gesamt.gesamt_behinderung += item.system.gesamt_behinderung; + } + + for (let [key, value] of Object.entries(this.computed.kampf.ruestungen_gesamt)) { + this.computed.kampf.ruestungen_gesamt[key] = Math.round(value); + } + for(const [name, values] of Object.entries(this.kampf_talente)) { this.computed.kampf.talente[name] = {}; this.computed.kampf.talente[name].attacke = this.computed.at_basiswert + values.attacke; this.computed.kampf.talente[name].parade = this.computed.pa_basiswert + values.parade; } - let equipped_bewaffnung = this.parent.items.filter((x) => x.type === "Bewaffnung"); - let equipped_nahkampfwaffen = equipped_bewaffnung.filter((x) => x.system.nahkampfwaffe.aktiv); - let equipped_parierwaffen = equipped_bewaffnung.filter((x) => x.system.parierwaffe.aktiv); - let equipped_schilde = equipped_bewaffnung.filter((x) => x.system.schild.aktiv); - let equipped_fernkampfwaffen = equipped_bewaffnung.filter((x) => x.system.fernkampfwaffe.aktiv); + const equipped_bewaffnung = this.parent.items.filter((x) => x.type === "Bewaffnung"); + const equipped_nahkampfwaffen = equipped_bewaffnung.filter((x) => x.system.nahkampfwaffe.aktiv); + const equipped_parierwaffen = equipped_bewaffnung.filter((x) => x.system.parierwaffe.aktiv); + const equipped_schilde = equipped_bewaffnung.filter((x) => x.system.schild.aktiv); + const equipped_fernkampfwaffen = equipped_bewaffnung.filter((x) => x.system.fernkampfwaffe.aktiv); for(const item of equipped_nahkampfwaffen) { - this.computed.kampf.waffen[item._id] = {}; - this.computed.kampf.waffen[item._id].item = item; + this.computed.kampf.waffen[item._id] = { item: item }; if (item.system.nahkampfwaffe.aktiv) { const talent = item.system.nahkampfwaffe.kampftalente;