From 6eb2b88046ff36f2ab7f2f12bccdfda31ae0433c Mon Sep 17 00:00:00 2001
From: Sven Balzer <4653051+Kyuusokuna@users.noreply.github.com>
Date: Sun, 4 May 2025 12:08:27 +0200
Subject: [PATCH] change Bewaffnung.system.schild.groesse to be choices based
and use DSA41_input
---
src/ItemSheets/Bewaffnung.hbs | 6 +-----
src/main.mjs | 12 ++++++++++--
2 files changed, 11 insertions(+), 7 deletions(-)
diff --git a/src/ItemSheets/Bewaffnung.hbs b/src/ItemSheets/Bewaffnung.hbs
index 3b47968..e194357 100644
--- a/src/ItemSheets/Bewaffnung.hbs
+++ b/src/ItemSheets/Bewaffnung.hbs
@@ -81,11 +81,7 @@
{{localize "DSA41.bewaffnung.schild.groesse.label"}}
-
+ {{DSA41_input "system.schild.groesse"}}
{{localize "DSA41.bewaffnung.schild.modifikator"}}
{{>editable-input type="number" name="system.schild.modifikator_attacke" value=item.system.schild.modifikator_attacke placeholder=(localize "DSA41.bewaffnung.schild.attacke")}}
diff --git a/src/main.mjs b/src/main.mjs
index cf90e4c..62acf75 100644
--- a/src/main.mjs
+++ b/src/main.mjs
@@ -101,7 +101,7 @@ Hooks.once("init", async function() {
Handlebars.registerHelper({
DSA41_input: (field_name, options) => {
let fields = field_name.startsWith("system.") ? options.data.root.document.system.schema.fields : options.data.root.document.schema.fields;
- let field = fields[field_name.replace(/^(system\.)/, "")];
+ let field = foundry.utils.getProperty(fields, field_name.replace(/^(system\.)/, "").replace(".", ".fields."));
if (!field) {
console.error("Non-existent data field provided to {{DSA4_input}} handlebars helper.");
@@ -738,7 +738,15 @@ class DSA41_BewaffnungData extends TypeDataModel {
schild: new SchemaField({
aktiv: new BooleanField({ initial: false }),
- groesse: new StringField({ initial: "klein" }),
+ groesse: new StringField({
+ required: true,
+ choices: {
+ "klein": "DSA41.bewaffnung.schild.groesse.klein",
+ "gross": "DSA41.bewaffnung.schild.groesse.gross",
+ "sehr_gross": "DSA41.bewaffnung.schild.groesse.sehr_gross",
+ },
+ initial: "klein",
+ }),
modifikator_attacke: new NumberField({ integer: true, initial: 0 }),
modifikator_parade: new NumberField({ integer: true, initial: 0 }),