+
{{localize "DSA41.allgemein.geschlecht"}}
+ {{DSA41_input "system.allgemein.geschlecht"}}
+
{{localize "DSA41.allgemein.alter"}}
+ {{DSA41_input "system.allgemein.alter"}}
-
- {{localize "DSA41.basiswerte.ausdauer"}}
- {{actor.system.computed.ausdauer.basiswert}}
- {{DSA41_input "system.ausdauer.modifikator"}}
- {{DSA41_input "system.ausdauer.zukauf"}}
- {{DSA41_input "system.ausdauer.verlust"}}
- {{actor.system.computed.ausdauer.max}}
-
+
{{localize "DSA41.allgemein.groesse"}}
+ {{DSA41_input "system.allgemein.groesse"}}
+
{{localize "DSA41.allgemein.gewicht"}}
+ {{DSA41_input "system.allgemein.gewicht"}}
-
- {{localize "DSA41.basiswerte.astralenergie"}}
- {{actor.system.computed.astralenergie.basiswert}}
- {{DSA41_input "system.astralenergie.modifikator"}}
- {{DSA41_input "system.astralenergie.zukauf"}}
- {{DSA41_input "system.astralenergie.verlust"}}
- {{actor.system.computed.astralenergie.max}}
-
+
{{localize "DSA41.allgemein.haarfarbe"}}
+ {{DSA41_input "system.allgemein.haarfarbe"}}
+
{{localize "DSA41.allgemein.augenfarbe"}}
+ {{DSA41_input "system.allgemein.augenfarbe"}}
-
- {{localize "DSA41.basiswerte.karmalenergie"}}
- {{DSA41_input "system.karmalenergie"}}
-
-
-
- {{actor.system.karmalenergie}}
-
-
-
- {{localize "DSA41.basiswerte.magieresistenz"}}
- {{actor.system.computed.magieresistenz.basiswert}}
- {{DSA41_input "system.magieresistenz.modifikator"}}
- {{DSA41_input "system.magieresistenz.zukauf"}}
-
- {{actor.system.computed.magieresistenz.max}}
-
-
-
- {{localize "DSA41.basiswerte.initiative"}}
- {{actor.system.computed.initiative.basiswert}}
- {{DSA41_input "system.modifikator_initiative"}}
-
-
- {{actor.system.computed.initiative.wert}}
-
-
-
- {{localize "DSA41.basiswerte.attacke"}}
- {{actor.system.computed.attacke.basiswert}}
- {{DSA41_input "system.modifikator_attacke"}}
-
-
- {{actor.system.computed.attacke.wert}}
-
-
-
- {{localize "DSA41.basiswerte.parade"}}
- {{actor.system.computed.parade.basiswert}}
- {{DSA41_input "system.modifikator_parade"}}
-
-
- {{actor.system.computed.parade.wert}}
-
-
-
- {{localize "DSA41.basiswerte.fernkampf"}}
- {{actor.system.computed.fernkampf.basiswert}}
- {{DSA41_input "system.modifikator_fernkampf"}}
-
-
- {{actor.system.computed.fernkampf.wert}}
-
-
-
-
- {{#unless (ne actor.system.computed.num_vorteile 0)}}
-
{{localize "DSA41.list_empty"}}
- {{/unless}}
+
+
+
{{localize "DSA41.allgemein.aussehen"}}
+ {{DSA41_input "system.allgemein.aussehen" elementType="prose-mirror"}}
+
- {{#each actor.itemTypes.VorNachteil}}
- {{#if (eq system.kategorie "vorteil")}}
-
-
-
{{maybeLocalize name prefix=(concat "DSA41.vornachteil." system.kategorie ".name")}}
+
+
{{localize "DSA41.allgemein.hintergrund"}}
+ {{DSA41_input "system.allgemein.hintergrund" elementType="prose-mirror"}}
+
+
+
+
+
+
+
+
{{localize "DSA41.allgemein.biografie"}}
+ {{DSA41_input "system.allgemein.biografie" elementType="prose-mirror"}}
+
+
+
+
+
+ {{localize "DSA41.abenteuerpunkte"}}:
+ {{DSA41_input "system.abenteuerpunkte.ausgegeben"}} / {{DSA41_input "system.abenteuerpunkte.gesamt"}}
+ ({{actor.system.computed.abenteuerpunkte.uebrig}})
+
+
+
+
+
+ {{#each actor.system.attributes}}
+
+ {{localize (concat "DSA41.attributes.long." @key)}}
+ {{DSA41_input (concat "system.attributes." @key ".initial")}}
+ {{DSA41_input (concat "system.attributes." @key ".advancement")}}
+ {{DSA41_input (concat "system.attributes." @key ".modifier")}}
+
+ {{/each}}
+
+
+
+
+
+
+ {{localize "DSA41.basiswerte.lebenspunkte"}}
+ {{actor.system.computed.lebenspunkte.basiswert}}
+ {{DSA41_input "system.lebenspunkte.modifikator"}}
+ {{DSA41_input "system.lebenspunkte.zukauf"}}
+ {{DSA41_input "system.lebenspunkte.verlust"}}
+ {{actor.system.computed.lebenspunkte.max}}
+
+
+
+ {{localize "DSA41.basiswerte.ausdauer"}}
+ {{actor.system.computed.ausdauer.basiswert}}
+ {{DSA41_input "system.ausdauer.modifikator"}}
+ {{DSA41_input "system.ausdauer.zukauf"}}
+ {{DSA41_input "system.ausdauer.verlust"}}
+ {{actor.system.computed.ausdauer.max}}
+
+
+
+ {{localize "DSA41.basiswerte.astralenergie"}}
+ {{actor.system.computed.astralenergie.basiswert}}
+ {{DSA41_input "system.astralenergie.modifikator"}}
+ {{DSA41_input "system.astralenergie.zukauf"}}
+ {{DSA41_input "system.astralenergie.verlust"}}
+ {{actor.system.computed.astralenergie.max}}
+
+
+
+ {{localize "DSA41.basiswerte.karmalenergie"}}
+ {{DSA41_input "system.karmalenergie"}}
+
+
+
+ {{actor.system.karmalenergie}}
+
+
+
+ {{localize "DSA41.basiswerte.magieresistenz"}}
+ {{actor.system.computed.magieresistenz.basiswert}}
+ {{DSA41_input "system.magieresistenz.modifikator"}}
+ {{DSA41_input "system.magieresistenz.zukauf"}}
+
+ {{actor.system.computed.magieresistenz.max}}
+
+
+
+ {{localize "DSA41.basiswerte.initiative"}}
+ {{actor.system.computed.initiative.basiswert}}
+ {{DSA41_input "system.modifikator_initiative"}}
+
+
+ {{actor.system.computed.initiative.wert}}
+
+
+
+ {{localize "DSA41.basiswerte.attacke"}}
+ {{actor.system.computed.attacke.basiswert}}
+ {{DSA41_input "system.modifikator_attacke"}}
+
+
+ {{actor.system.computed.attacke.wert}}
+
+
+
+ {{localize "DSA41.basiswerte.parade"}}
+ {{actor.system.computed.parade.basiswert}}
+ {{DSA41_input "system.modifikator_parade"}}
+
+
+ {{actor.system.computed.parade.wert}}
+
+
+
+ {{localize "DSA41.basiswerte.fernkampf"}}
+ {{actor.system.computed.fernkampf.basiswert}}
+ {{DSA41_input "system.modifikator_fernkampf"}}
+
+
+ {{actor.system.computed.fernkampf.wert}}
+
+
+
+
+
+
+
+ {{#unless (ne actor.system.computed.num_vorteile 0)}}
+
{{localize "DSA41.list_empty"}}
+ {{/unless}}
+
+ {{#each actor.itemTypes.VorNachteil}}
+ {{#if (eq system.kategorie "vorteil")}}
+
+
+
{{maybeLocalize name prefix=(concat "DSA41.vornachteil." system.kategorie ".name")}}
+
+
+
+
+ {{/if}}
+ {{/each}}
+
+
+
+
+
+ {{#unless (ne actor.system.computed.num_nachteile 0)}}
+
{{localize "DSA41.list_empty"}}
+ {{/unless}}
+
+ {{#each actor.itemTypes.VorNachteil}}
+ {{#if (eq system.kategorie "nachteil")}}
+
+
+
{{maybeLocalize name prefix=(concat "DSA41.vornachteil." system.kategorie ".name")}}
+
+
+
+
+ {{/if}}
+ {{/each}}
+
+
+
+
+
+
+ {{#unless (ne actor.system.computed.num_allgemeine_sonderfertigkeiten 0)}}
+
{{localize "DSA41.list_empty"}}
+ {{/unless}}
+
+ {{#each actor.itemTypes.Sonderfertigkeit}}
+ {{#if (eq this.system.kategorie "allgemein")}}
+
+
+
{{maybeLocalize name prefix=(concat "DSA41.sonderfertigkeiten." system.kategorie ".name")}}
+
+
+
-
-
-
- {{/if}}
- {{/each}}
+ {{/if}}
+ {{/each}}
+
-
-
-
-
-
-
- {{#unless (ne actor.system.computed.num_allgemeine_sonderfertigkeiten 0)}}
-
{{localize "DSA41.list_empty"}}
- {{/unless}}
-
- {{#each actor.itemTypes.Sonderfertigkeit}}
- {{#if (eq this.system.kategorie "allgemein")}}
-
-
-
{{maybeLocalize name prefix=(concat "DSA41.sonderfertigkeiten." system.kategorie ".name")}}
-
+
+
- {{/if}}
- {{/each}}
-
-
-
- {{#each actor.system.talente}}
-
-
+ {{#unless (ne actor.itemTypes.Bewaffnung.length 0)}}
+
{{localize "DSA41.list_empty"}}
+ {{/unless}}
- {{#each this}}
-
-
{{maybeLocalize name prefix=(concat "DSA41.talente." system.kategorie ".name")}}
-
- {{>die-type type=system.attribute1}}
- {{>die-type type=system.attribute2}}
- {{>die-type type=system.attribute3}}
-
-
{{>editable-input type="number" data-name="system.talentwert" value=system.talentwert}}
-
-
- {{/each}}
-
- {{/each}}
-
-
-
-
- {{#each actor.system.kampftalente}}
-
-
{{maybeLocalize name prefix="DSA41.talente.kampf.name."}}
-
{{>editable-input type="number" name=(concat name "system.talentwert") data-name="system.talentwert" value=system.talentwert}}
-
{{>editable-input type="number" name=(concat name "system.attacke") data-name="system.attacke" value=system.attacke}}
-
{{>editable-input type="number" name=(concat name "system.parade") data-name="system.parade" value=system.parade}}
-
{{lookup (lookup @root.actor.system.computed.kampf.talente name) "attacke"}}
-
{{lookup (lookup @root.actor.system.computed.kampf.talente name) "parade"}}
-
- {{/each}}
-
-
-
-
-
- {{DSA41_input "system.currency.dukaten"}}
-
- {{DSA41_input "system.currency.silbertaler"}}
-
- {{DSA41_input "system.currency.heller"}}
-
- {{DSA41_input "system.currency.kreuzer"}}
-
-
-
-
-
-
- {{#unless (ne actor.itemTypes.Bewaffnung.length 0)}}
-
{{localize "DSA41.list_empty"}}
- {{/unless}}
-
- {{#each (sorted actor.itemTypes.Bewaffnung)}}
-
-
-

-
- {{this.name}}
-
- {{#if this.system.nahkampfwaffe.aktiv}} Nahkampfwaffe {{/if}}
- {{#if this.system.parierwaffe.aktiv}} Parierwaffe {{/if}}
- {{#if this.system.schild.aktiv}} Schild {{/if}}
- {{#if this.system.fernkampfwaffe.aktiv}} Fernkampfwaffe {{/if}}
-
-
-
-
-
-
{{this.system.gewicht.value}} {{localize (concat "DSA41.weight." this.system.gewicht.unit)}}
-
-
- {{/each}}
-
-
-
-
-
- {{#unless (ne actor.itemTypes.Ruestung.length 0)}}
-
{{localize "DSA41.list_empty"}}
- {{/unless}}
-
- {{#each (sorted actor.itemTypes.Ruestung)}}
-
-
-

-
{{this.name}}
-
-
-
-
{{this.system.gewicht.value}} {{localize (concat "DSA41.weight." this.system.gewicht.unit)}}
-
-
- {{/each}}
-
-
-
-
-
- {{#unless (ne actor.itemTypes.Gegenstand.length 0)}}
-
{{localize "DSA41.list_empty"}}
- {{/unless}}
-
- {{#each (sorted actor.itemTypes.Gegenstand)}}
-
-
-

-
{{this.name}}
-
-
-
-
{{this.system.gewicht.value}} {{localize (concat "DSA41.weight." this.system.gewicht.unit)}}
-
-
- {{/each}}
-
-
-
-
-
-
-
- {{#unless (or (ne actor.system.computed.num_waffen 0) (ne actor.system.computed.num_fernkampf_waffen 0))}}
-
{{localize "DSA41.list_empty"}}
- {{/unless}}
-
- {{#each actor.system.computed.kampf.waffen}}
-
-
-

-
- {{item.name}}
-
-
-
{{>die-value type="attacke" data-roll="1d20" value=attacke success-value=attacke data-tooltip="attacke_tooltip"}}
-
{{>die-value type="parade" data-roll="1d20" value=parade success-value=parade data-tooltip="parade_tooltip"}}
-
{{>die-value type="trefferpunkte" data-roll=trefferpunkte value=trefferpunkte_display data-tooltip="trefferpunkte_tooltip"}}
-
- {{/each}}
- {{#each actor.system.computed.kampf.fernkampf_waffen}}
-
-
-

-
- {{item.name}}
-
-
-
{{>die-value type="fernkampf-attacke" data-roll="1d20" value=attacke data-tooltip="fernkampf_attacke_tooltip"}}
-
-
{{>die-value type="fernkampf-trefferpunkte" data-roll=trefferpunkte value=trefferpunkte_display data-tooltip="fernkampf_trefferpunkte_tooltip"}}
-
- {{/each}}
-
-
-
-
-
- {{#unless (ne actor.itemTypes.Zauber.length 0)}}
-
{{localize "DSA41.list_empty"}}
- {{/unless}}
-
- {{#each actor.itemTypes.Zauber}}
-
-
-

-
- {{name}}
-
-
-
-
- {{/each}}
-
-
-
-
-
- {{#each actor.system.computed.kampf.ruestungen}}
-
-
-

-
{{item.name}}
-
-
{{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}}
-
-
-
-
-
-
- {{#unless (ne actor.system.computed.num_kampf_sonderfertigkeiten 0)}}
-
{{localize "DSA41.list_empty"}}
- {{/unless}}
-
- {{#each actor.itemTypes.Sonderfertigkeit}}
- {{#if (eq this.system.kategorie "kampf")}}
-
-
-
{{maybeLocalize name prefix=(concat "DSA41.sonderfertigkeiten." system.kategorie ".name")}}
+ {{#each (sorted actor.itemTypes.Bewaffnung)}}
+
+
+

+
+ {{this.name}}
+
+ {{#if this.system.nahkampfwaffe.aktiv}} Nahkampfwaffe {{/if}}
+ {{#if this.system.parierwaffe.aktiv}} Parierwaffe {{/if}}
+ {{#if this.system.schild.aktiv}} Schild {{/if}}
+ {{#if this.system.fernkampfwaffe.aktiv}} Fernkampfwaffe {{/if}}
+
+
+
+
{{this.system.gewicht.value}} {{localize (concat "DSA41.weight." this.system.gewicht.unit)}}
- {{/if}}
- {{/each}}
+ {{/each}}
+
+
+
+
+
+ {{#unless (ne actor.itemTypes.Ruestung.length 0)}}
+
{{localize "DSA41.list_empty"}}
+ {{/unless}}
+
+ {{#each (sorted actor.itemTypes.Ruestung)}}
+
+
+

+
{{this.name}}
+
+
+
+
{{this.system.gewicht.value}} {{localize (concat "DSA41.weight." this.system.gewicht.unit)}}
+
+
+ {{/each}}
+
+
+
+
+
+ {{#unless (ne actor.itemTypes.Gegenstand.length 0)}}
+
{{localize "DSA41.list_empty"}}
+ {{/unless}}
+
+ {{#each (sorted actor.itemTypes.Gegenstand)}}
+
+
+

+
{{this.name}}
+
+
+
+
{{this.system.gewicht.value}} {{localize (concat "DSA41.weight." this.system.gewicht.unit)}}
+
+
+ {{/each}}
+
+
+
+
+
+
+
+ {{#unless (or (ne actor.system.computed.num_waffen 0) (ne actor.system.computed.num_fernkampf_waffen 0))}}
+
{{localize "DSA41.list_empty"}}
+ {{/unless}}
+
+ {{#each actor.system.computed.kampf.waffen}}
+
+
+

+
+ {{item.name}}
+
+
+
{{>die-value type="attacke" data-roll="1d20" value=attacke success-value=attacke data-tooltip="attacke_tooltip"}}
+
{{>die-value type="parade" data-roll="1d20" value=parade success-value=parade data-tooltip="parade_tooltip"}}
+
{{>die-value type="trefferpunkte" data-roll=trefferpunkte value=trefferpunkte_display data-tooltip="trefferpunkte_tooltip"}}
+
+ {{/each}}
+ {{#each actor.system.computed.kampf.fernkampf_waffen}}
+
+
+

+
+ {{item.name}}
+
+
+
{{>die-value type="fernkampf-attacke" data-roll="1d20" value=attacke data-tooltip="fernkampf_attacke_tooltip"}}
+
+
{{>die-value type="fernkampf-trefferpunkte" data-roll=trefferpunkte value=trefferpunkte_display data-tooltip="fernkampf_trefferpunkte_tooltip"}}
+
+ {{/each}}
+
+
+
+
+
+ {{#unless (ne actor.itemTypes.Zauber.length 0)}}
+
{{localize "DSA41.list_empty"}}
+ {{/unless}}
+
+ {{#each actor.itemTypes.Zauber}}
+
+
+

+
+ {{name}}
+
+
+
+
+ {{/each}}
+
+
+
+
+
+ {{#each actor.system.computed.kampf.ruestungen}}
+
+
+

+
{{item.name}}
+
+
{{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}}
+
+
+
+
+
+
+ {{#unless (ne actor.system.computed.num_kampf_sonderfertigkeiten 0)}}
+
{{localize "DSA41.list_empty"}}
+ {{/unless}}
+
+ {{#each actor.itemTypes.Sonderfertigkeit}}
+ {{#if (eq this.system.kategorie "kampf")}}
+
+
+
{{maybeLocalize name prefix=(concat "DSA41.sonderfertigkeiten." system.kategorie ".name")}}
+
+
+
+
+ {{/if}}
+ {{/each}}
+
+
-
+
\ No newline at end of file
diff --git a/src/main.css b/src/main.css
index 2bd7fd0..145dc43 100644
--- a/src/main.css
+++ b/src/main.css
@@ -8,9 +8,15 @@ html {
pointer-events: auto;
}
- /* Allow application content to be scrolled */
+ /* allow tabs to be visible on the right side of the application */
+ &.application.ActorSheet {
+ overflow: visible;
+ }
+
& .window-content {
- overflow-y: scroll;
+ padding: 0;
+ overflow: visible;
+ height: calc(100% - var(--header-height));
}
& [data-action] {
@@ -429,6 +435,10 @@ html {
}
}
+ & [data-application-part]:not([data-application-part="ActorSheet"]) {
+ padding: 1rem;
+ }
+
& [data-application-part="Bewaffnung"] {
& .tab {
grid-template-columns: minmax(0, max-content) minmax(0, 1fr) minmax(0, max-content) minmax(0, 1fr);
@@ -471,6 +481,53 @@ html {
}
& [data-application-part="ActorSheet"] {
+ height: 100%;
+
+ & .scroll-container {
+ height: 100%;
+ overflow-y: scroll;
+ }
+
+ & .ActorSheet {
+ padding: 1rem;
+ }
+
+ & .tabs {
+ display: flex;
+ flex-direction: column;
+ align-items: start;
+
+ position: absolute;
+ z-index: -1;
+ left: 100%;
+
+ border: none;
+ padding: 0;
+
+ gap: 2em;
+
+ & > * {
+ transform: none !important;
+
+ &::before {
+ background: var(--background);
+ padding: .5em .5em .5em .75em;
+ border-width: 1px 1px 1px 0px;
+ border-radius: 0 5px 5px 0;
+ border-style: solid;
+ transition: all 250ms ease;
+ }
+
+ &.active, &:hover {
+ text-decoration: none;
+
+ &::before {
+ padding: .5em .5em .5em 1.25em;
+ }
+ }
+ }
+ }
+
& .tab {
&[data-tab="tab1"] {
& .Eigenschaften {
diff --git a/src/main.mjs b/src/main.mjs
index 2ab591c..486fb86 100644
--- a/src/main.mjs
+++ b/src/main.mjs
@@ -1222,6 +1222,7 @@ class DSA41_ActorSheet extends DSA41_ApplicationMixin(ActorSheetV2) {
};
static DEFAULT_OPTIONS = {
+ classes: [ "DSA41", "ActorSheet" ],
position: { width: "800", height: "650" },
actions: {
"roll": async function(event, target) {