add GewichtField and use it for Gegenstand

This commit is contained in:
Sven Balzer 2025-05-06 16:05:50 +02:00
parent 0639ce11d7
commit 67bd01f56d
7 changed files with 67 additions and 8 deletions

View File

@ -312,7 +312,7 @@
<div>{{localize "DSA41.inventar.bewaffnung"}}</div>
<div></div>
<div></div>
<div class="center">{{localize "DSA41.weight"}}</div>
<div class="center">{{localize "DSA41.weight.label"}}</div>
<div></div>
</div>
@ -347,7 +347,7 @@
<div class="row">{{localize "DSA41.inventar.ruestungen"}}</div>
<div></div>
<div></div>
<div class="center">{{localize "DSA41.weight"}}</div>
<div class="center">{{localize "DSA41.weight.label"}}</div>
</div>
{{#unless (ne actor.itemTypes.Ruestung.length 0)}}
@ -373,7 +373,7 @@
<div>{{localize "DSA41.inventar.gegenstaende"}}</div>
<div></div>
<div></div>
<div class="center">{{localize "DSA41.weight"}}</div>
<div class="center">{{localize "DSA41.weight.label"}}</div>
</div>
{{#unless (ne actor.itemTypes.Gegenstand.length 0)}}

View File

@ -4,7 +4,7 @@
<div class="col">
{{DSA41_input "name" subtitle="DSA41.name"}}
<div class="grid2 gap">
{{DSA41_input "system.gewicht" subtitle="DSA41.weight"}}
{{DSA41_input "system.gewicht" subtitle="DSA41.weight.label"}}
{{DSA41_input "system.preis" subtitle="DSA41.price"}}
</div>
</div>

View File

@ -4,7 +4,7 @@
<div class="col">
{{DSA41_input "name" subtitle="DSA41.name"}}
<div class="grid2 gap">
{{DSA41_input "system.gewicht" subtitle="DSA41.weight"}}
{{DSA41_input "system.gewicht" subtitle="DSA41.weight.label"}}
{{DSA41_input "system.preis" subtitle="DSA41.price"}}
</div>
</div>

View File

@ -4,7 +4,7 @@
<div class="col">
{{DSA41_input "name" subtitle="DSA41.name"}}
<div class="grid2 gap">
{{DSA41_input "system.gewicht" subtitle="DSA41.weight"}}
{{DSA41_input "system.gewicht" subtitle="DSA41.weight.label"}}
{{DSA41_input "system.preis" subtitle="DSA41.price"}}
</div>
</div>

View File

@ -21,7 +21,6 @@
"culture": "Kultur",
"profession": "Profession",
"sozialstatus": "Sozialstatus",
"weight": "Gewicht",
"price": "Preis",
"abenteuerpunkte": "Abenteuerpunkte",
@ -34,6 +33,18 @@
"kreuzer": "Kreuzer"
},
"weight": {
"label": "Gewicht",
"gran": "Gran",
"karat": "Karat",
"skrupel": "Skrupel",
"unze": "Unze",
"stein": "Stein",
"sack": "Sack",
"quader": "Quader"
},
"steigerungskategorie": {
"A_Star": "A*",
"A": "A",

View File

@ -132,6 +132,15 @@ html {
}
}
& .weight-input {
display: grid;
grid-template-columns: minmax(min-content, 1fr) max-content;
& input {
padding: 0;
}
}
& .placeholder {
font-size: 0.8em;
border-top: 1px solid;

View File

@ -313,6 +313,45 @@ class PreisField extends SchemaField {
}
}
class GewichtUnitField extends StringField {
constructor(options={}, context={}) {
return super({
required: true,
choices: {
"gran": "DSA41.weight.gran",
"karat": "DSA41.weight.karat",
"skrupel": "DSA41.weight.skrupel",
"unze": "DSA41.weight.unze",
"stein": "DSA41.weight.stein",
"sack": "DSA41.weight.sack",
"quader": "DSA41.weight.quader",
},
initial: "stein",
...options
}, context);
}
}
class GewichtField extends SchemaField {
constructor() {
return super({
value: new NumberField({ initial: 0, min: 0 }),
unit: new GewichtUnitField(),
});
}
_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 = "weight-input";
outer_div.replaceChildren(value_input, unit_input);
return outer_div;
}
}
class AttributeField extends SchemaField {
constructor() {
return super({
@ -720,7 +759,7 @@ class DSA41_CharacterData extends TypeDataModel {
class DSA41_GegenstandData extends TypeDataModel {
static defineSchema() {
return {
gewicht: new NumberField({ integer: false, initial: 0, min: 0 }),
gewicht: new GewichtField(),
preis: new PreisField(),
};
}