From f8242862434fa9d9ad4a95cc99e8f523af795bee Mon Sep 17 00:00:00 2001
From: Sven Balzer <4653051+Kyuusokuna@users.noreply.github.com>
Date: Thu, 5 Dec 2024 22:20:20 +0100
Subject: [PATCH] add Sonderfertigkeiten
---
src/ActorSheet.hbs | 38 +++++++++++++++++++++++++-
src/ItemSheets/Sonderfertigkeit.hbs | 28 +++++++++++++++++++
src/lang/de.json | 19 +++++++++++++
src/main.css | 18 +++++++++++++
src/main.mjs | 42 +++++++++++++++++++++--------
system.json | 3 ++-
6 files changed, 135 insertions(+), 13 deletions(-)
create mode 100644 src/ItemSheets/Sonderfertigkeit.hbs
diff --git a/src/ActorSheet.hbs b/src/ActorSheet.hbs
index 5707f5d..b3c1bbd 100644
--- a/src/ActorSheet.hbs
+++ b/src/ActorSheet.hbs
@@ -15,7 +15,7 @@
{{/inline}}
-
+
{{>editable-input type="text" name="name" value=actor.name placeholder=(localize "DSA41.name")}}
{{>editable-input type="text" name="system.race" value=actor.system.race placeholder=(localize "DSA41.race")}}
@@ -92,6 +92,24 @@
FK-Basiswert
{{actor.system.computed.fk_basiswert}}
+
+
+
+
+ {{#each actor.itemTypes.Sonderfertigkeit}}
+ {{#if (eq this.system.kategorie "allgemein")}}
+
+
+
{{maybeLocalize name prefix=(concat "DSA41.sonderfertigkeiten." system.kategorie ".name")}}
+
+
+
+
+ {{/if}}
+ {{/each}}
+
@@ -305,5 +323,23 @@
{{actor.system.computed.kampf.ruestungen_gesamt.gesamt_behinderung}}
+
+
+
+
+ {{#each actor.itemTypes.Sonderfertigkeit}}
+ {{#if (eq this.system.kategorie "kampf")}}
+
+
+
{{maybeLocalize name prefix=(concat "DSA41.sonderfertigkeiten." system.kategorie ".name")}}
+
+
+
+
+ {{/if}}
+ {{/each}}
+
diff --git a/src/ItemSheets/Sonderfertigkeit.hbs b/src/ItemSheets/Sonderfertigkeit.hbs
new file mode 100644
index 0000000..dd22798
--- /dev/null
+++ b/src/ItemSheets/Sonderfertigkeit.hbs
@@ -0,0 +1,28 @@
+
+
+

+
+
+ {{>editable-input type="text" name="name" value=item.name placeholder=(localize "DSA41.name")}}
+
+
+
{{localize "DSA41.sonderfertigkeiten.kategorie.label"}}
+
+
+
+ {{>editable-input type="number" name="system.kosten" value=item.system.kosten placeholder=(localize "DSA41.sonderfertigkeiten.kosten")}}
+ {{>editable-input type="number" name="system.verbreitung" value=item.system.verbreitung placeholder=(localize "DSA41.sonderfertigkeiten.verbreitung")}}
+
+
+
+
+
diff --git a/src/lang/de.json b/src/lang/de.json
index 0fec8d0..94e4916 100644
--- a/src/lang/de.json
+++ b/src/lang/de.json
@@ -28,6 +28,25 @@
"talentwert_short": "TaW"
},
+ "sonderfertigkeiten": {
+ "label_allgemein": "Allgemeine Sonderfertigkeiten",
+ "label_kampf": "Kampf-Sonderfertigkeiten",
+ "label_magisch": "Magische Sonderfertigkeiten",
+ "label_klerikal": "Klerikale Sonderfertigkeiten",
+
+ "kosten": "Kosten",
+ "verbreitung": "Verbreitung",
+
+ "kategorie": {
+ "label": "Kategorie",
+
+ "allgemein": "Allgemein",
+ "kampf": "Kampf",
+ "magisch": "Magisch",
+ "klerikal": "Klerikal"
+ }
+ },
+
"roll_types": {
"courage": "Mut",
"cleverness": "Klugheit",
diff --git a/src/main.css b/src/main.css
index dbba2a1..ec74985 100644
--- a/src/main.css
+++ b/src/main.css
@@ -287,6 +287,10 @@
display: grid;
grid-template-columns: repeat(4, minmax(0, 1fr));
}
+
+ & .Sonderfertigkeiten {
+ grid-template-columns: minmax(min-content, max-content) auto min-content;
+ }
}
&[data-tab="tab2"] {
@@ -322,6 +326,10 @@
grid-template-columns: 2fr repeat(8, 1fr) repeat(2, 1.5fr);
text-align: center;
}
+
+ & .Sonderfertigkeiten {
+ grid-template-columns: minmax(min-content, max-content) auto min-content;
+ }
}
}
}
@@ -349,3 +357,13 @@
}
}
}
+
+
+#tooltip.DSA41 {
+ max-width: 650px;
+ text-align: left;
+
+ & h4 {
+ font-size: large;
+ }
+}
\ No newline at end of file
diff --git a/src/main.mjs b/src/main.mjs
index 72bb443..bad18bb 100644
--- a/src/main.mjs
+++ b/src/main.mjs
@@ -14,10 +14,11 @@ Hooks.once("init", async function() {
CONFIG.Actor.dataModels.Player = DSA41_CharacterData;
CONFIG.Actor.documentClass = DSA41_CharacterDocument;
- CONFIG.Item.dataModels.Gegenstand = DSA41_GegenstandData;
- CONFIG.Item.dataModels.Ruestung = DSA41_RuestungData;
- CONFIG.Item.dataModels.Bewaffnung = DSA41_BewaffnungData;
- CONFIG.Item.dataModels.Talent = DSA41_TalentData;
+ CONFIG.Item.dataModels.Gegenstand = DSA41_GegenstandData;
+ CONFIG.Item.dataModels.Ruestung = DSA41_RuestungData;
+ CONFIG.Item.dataModels.Bewaffnung = DSA41_BewaffnungData;
+ CONFIG.Item.dataModels.Talent = DSA41_TalentData;
+ CONFIG.Item.dataModels.Sonderfertigkeit = DSA41_SonderfertigkeitData;
DocumentSheetConfig.unregisterSheet(Actor, "core", ActorSheet);
DocumentSheetConfig.registerSheet(Actor, "dsa41", DSA41_ActorSheet, {
@@ -35,14 +36,20 @@ Hooks.once("init", async function() {
"Ruestung",
"Bewaffnung",
"Talent",
+ "Sonderfertigkeit",
]
});
Handlebars.registerHelper({
maybeLocalize: (value, options) => {
const prefix = options.hash.prefix ? options.hash.prefix.string : null;
- if (prefix)
- return game.i18n.localize(prefix + "." + value);
+ if (prefix) {
+ const id = prefix + "." + value;
+ const localized = game.i18n.localize(id);
+
+ return id === localized ? value : localized;
+ }
+
return value;
}
});
@@ -516,7 +523,7 @@ class DSA41_BewaffnungData extends TypeDataModel {
class DSA41_TalentData extends TypeDataModel {
static defineSchema() {
return {
- kategorie: new StringField(),
+ kategorie: new StringField(),
behinderung: new StringField(),
attribute1: new StringField(),
@@ -528,6 +535,18 @@ class DSA41_TalentData extends TypeDataModel {
}
}
+class DSA41_SonderfertigkeitData extends TypeDataModel {
+ static defineSchema() {
+ return {
+ kategorie: new StringField(),
+ kosten: new NumberField({ integer: true, initial: 0 }),
+ verbreitung: new NumberField({ integer: true, initial: 0 }),
+
+ beschreibung: new StringField(),
+ };
+ }
+}
+
function DSA41_ApplicationMixin(BaseApplication) {
class DSA41_Application extends HandlebarsApplicationMixin(BaseApplication) {
static DEFAULT_OPTIONS= {
@@ -859,10 +878,11 @@ class DSA41_ActorSheet extends DSA41_ApplicationMixin(ActorSheetV2) {
class DSA41_ItemSheetV2 extends DSA41_ApplicationMixin(ItemSheetV2) {
static PARTS = {
- Bewaffnung: { template: "systems/dsa-4th-edition/src/ItemSheets/Bewaffnung.hbs" },
- Gegenstand: { template: "systems/dsa-4th-edition/src/ItemSheets/Gegenstand.hbs" },
- Ruestung: { template: "systems/dsa-4th-edition/src/ItemSheets/Ruestung.hbs" },
- Talent: { template: "systems/dsa-4th-edition/src/ItemSheets/Talent.hbs" },
+ Bewaffnung: { template: "systems/dsa-4th-edition/src/ItemSheets/Bewaffnung.hbs" },
+ Gegenstand: { template: "systems/dsa-4th-edition/src/ItemSheets/Gegenstand.hbs" },
+ Ruestung: { template: "systems/dsa-4th-edition/src/ItemSheets/Ruestung.hbs" },
+ Talent: { template: "systems/dsa-4th-edition/src/ItemSheets/Talent.hbs" },
+ Sonderfertigkeit: { template: "systems/dsa-4th-edition/src/ItemSheets/Sonderfertigkeit.hbs" },
};
static DEFAULT_OPTIONS = {
diff --git a/system.json b/system.json
index 8c786ca..8d978ab 100644
--- a/system.json
+++ b/system.json
@@ -14,7 +14,8 @@
"Ruestung": {},
"Bewaffnung": {},
- "Talent": {}
+ "Talent": {},
+ "Sonderfertigkeit": {}
}
},