add LaengeField and use it for Bewaffnung and Character

This commit is contained in:
Sven Balzer
2025-05-23 10:57:22 +02:00
parent aaa01834a8
commit f6e150eb10
5 changed files with 243 additions and 164 deletions
+12
View File
@@ -46,6 +46,18 @@
"quader": "Quader"
},
"laenge": {
"halbfinger": "Halbfinger",
"finger": "Finger",
"spann": "Spann",
"schritt": "Schritt",
"faden": "Faden",
"lot": "Lot",
"meile": "Meile",
"tagesreise": "Tagesreise",
"baryd": "Baryd"
},
"steigerungskategorie": {
"A_Star": "A*",
"A": "A",
+9
View File
@@ -145,6 +145,15 @@ html {
}
}
& .length-input {
display: grid;
grid-template-columns: minmax(min-content, 1fr) max-content;
& input {
padding: 0;
}
}
& .placeholder {
font-size: 0.8em;
border-top: 1px solid;
+43 -2
View File
@@ -354,6 +354,47 @@ class GewichtField extends SchemaField {
}
}
class LaengeUnitField extends StringField {
constructor(options={}, context={}) {
return super({
required: true,
choices: {
"halbfinger": "DSA41.laenge.halbfinger",
"finger": "DSA41.laenge.finger",
"spann": "DSA41.laenge.spann",
"schritt": "DSA41.laenge.schritt",
"faden": "DSA41.laenge.faden",
"lot": "DSA41.laenge.lot",
"meile": "DSA41.laenge.meile",
"tagesreise": "DSA41.laenge.tagesreise",
"baryd": "DSA41.laenge.baryd",
},
initial: "schritt",
...options
}, context);
}
}
class LaengeField extends SchemaField {
constructor() {
return super({
value: new NumberField({ initial: 0, min: 0 }),
unit: new LaengeUnitField(),
});
}
_toInput(config) {
const value_input = this.fields["value"].toInput({ value: config.value.value, });
const unit_input = this.fields["unit"] .toInput({ value: config.value.unit, localize: true });
let outer_div = document.createElement("div");
outer_div.className = "length-input";
outer_div.replaceChildren(value_input, unit_input);
return outer_div;
}
}
class AttributeField extends SchemaField {
constructor() {
return super({
@@ -476,7 +517,7 @@ class DSA41_CharacterData extends TypeDataModel {
allgemein: new SchemaField({
geschlecht: new StringField(),
alter: new StringField(),
groesse: new StringField(),
groesse: new LaengeField(),
gewicht: new GewichtField(),
haarfarbe: new StringField(),
augenfarbe: new StringField(),
@@ -835,7 +876,7 @@ class DSA41_BewaffnungData extends TypeDataModel {
distanzklasse: new StringField({ initial: "" }),
kampftalente: new StringField({ initial: "" }),
laenge: new NumberField({ integer: true, initial: 0, min: 0 }),
laenge: new LaengeField(),
zweihaendig: new BooleanField({ initial: false }),
werfbar: new BooleanField({ initial: false }),