From 39afac74256fe61a2308c6d59928bc66c246e115 Mon Sep 17 00:00:00 2001 From: Lector Date: Thu, 18 Jun 2026 16:06:48 +0200 Subject: [PATCH 1/6] Added schemas for goblin traditional artifacts --- src/main.ts | 3 ++ src/types/index.ts | 3 ++ .../traditionArtifacts/Hauerkettenzauber.ts | 36 +++++++++++++++++++ src/types/traditionArtifacts/Keulenzauber.ts | 36 +++++++++++++++++++ .../Schweinetrommelzauber.ts | 36 +++++++++++++++++++ 5 files changed, 114 insertions(+) create mode 100644 src/types/traditionArtifacts/Hauerkettenzauber.ts create mode 100644 src/types/traditionArtifacts/Keulenzauber.ts create mode 100644 src/types/traditionArtifacts/Schweinetrommelzauber.ts diff --git a/src/main.ts b/src/main.ts index 2ad7b2a3..0a6f2d70 100644 --- a/src/main.ts +++ b/src/main.ts @@ -98,6 +98,7 @@ export const schema = new Schema( Types.GoblinRitual, Types.Guideline, Types.HairColor, + Types.Hauerkettenzauber, Types.Haubenzauber, Types.HerbalAid, Types.HerbalPreservation, @@ -108,6 +109,7 @@ export const schema = new Schema( Types.JesterTrick, Types.Jewelry, Types.KarmaSpecialAbility, + Types.Keulenzauber, Types.Krallenkettenzauber, Types.Kristallkugelzauber, Types.Laboratory, @@ -150,6 +152,7 @@ export const schema = new Schema( Types.RingEnchantment, Types.Ritual, Types.RopeOrChain, + Types.Schweinetrommelzauber, Types.Script, Types.Sermon, Types.Service, diff --git a/src/types/index.ts b/src/types/index.ts index d988faf3..48daeea1 100644 --- a/src/types/index.ts +++ b/src/types/index.ts @@ -148,11 +148,14 @@ export { ChronicleEnchantment } from "./traditionArtifacts/ChronicleEnchantment. export { DaggerRitual } from "./traditionArtifacts/DaggerRitual.js" export { FoolsHatEnchantment } from "./traditionArtifacts/FoolsHatEnchantment.js" export { Haubenzauber } from "./traditionArtifacts/Haubenzauber.js" +export { Hauerkettenzauber } from "./traditionArtifacts/Hauerkettenzauber.js" export { InstrumentEnchantment } from "./traditionArtifacts/InstrumentEnchantment.js" +export { Keulenzauber } from "./traditionArtifacts/Keulenzauber.js" export { Krallenkettenzauber } from "./traditionArtifacts/Krallenkettenzauber.js" export { Kristallkugelzauber } from "./traditionArtifacts/Kristallkugelzauber.js" export { OrbEnchantment } from "./traditionArtifacts/OrbEnchantment.js" export { RingEnchantment } from "./traditionArtifacts/RingEnchantment.js" +export { Schweinetrommelzauber } from "./traditionArtifacts/Schweinetrommelzauber.js" export { SickleRitual } from "./traditionArtifacts/SickleRitual.js" export { SpellSwordEnchantment } from "./traditionArtifacts/SpellSwordEnchantment.js" export { StaffEnchantment } from "./traditionArtifacts/StaffEnchantment.js" diff --git a/src/types/traditionArtifacts/Hauerkettenzauber.ts b/src/types/traditionArtifacts/Hauerkettenzauber.ts new file mode 100644 index 00000000..9a510acd --- /dev/null +++ b/src/types/traditionArtifacts/Hauerkettenzauber.ts @@ -0,0 +1,36 @@ +import * as DB from "tsondb/schema/dsl" +import { levels, maximum } from "../_Activatable.js" +import { ap_value } from "../_ActivatableAdventurePointsValue.js" +import { nameBuilderRules } from "../_ActivatableNames.js" +import { cost, property, volume } from "../_ActivatableNonMundane.js" +import { GeneralPrerequisites } from "../_Prerequisite.js" +import { src } from "../source/_PublicationRef.js" +import { translations } from "./_shared.js" + +export const Hauerkettenzauber = DB.Entity(import.meta.url, { + name: "Hauerkettenzauber", + namePlural: "Hauerkettenzauber", + type: () => + DB.Object({ + levels, + nameBuilderRules, + maximum, + prerequisites: DB.Optional({ + type: DB.IncludeIdentifier(GeneralPrerequisites), + }), + volume, + cost, + property: property(), + ap_value, + src, + translations: translations("Hauerkettenzauber"), + }), + instanceDisplayName: {}, + uniqueConstraints: [ + { + entityMapKeyPath: "translations", + keyPathInEntityMap: "name_in_library", + keyPathInEntityMapFallback: "name", + }, + ], +}) diff --git a/src/types/traditionArtifacts/Keulenzauber.ts b/src/types/traditionArtifacts/Keulenzauber.ts new file mode 100644 index 00000000..2ca67ea1 --- /dev/null +++ b/src/types/traditionArtifacts/Keulenzauber.ts @@ -0,0 +1,36 @@ +import * as DB from "tsondb/schema/dsl" +import { levels, maximum } from "../_Activatable.js" +import { ap_value } from "../_ActivatableAdventurePointsValue.js" +import { nameBuilderRules } from "../_ActivatableNames.js" +import { cost, property, volume } from "../_ActivatableNonMundane.js" +import { GeneralPrerequisites } from "../_Prerequisite.js" +import { src } from "../source/_PublicationRef.js" +import { translations } from "./_shared.js" + +export const Keulenzauber = DB.Entity(import.meta.url, { + name: "Keulenzauber", + namePlural: "Keulenzauber", + type: () => + DB.Object({ + levels, + nameBuilderRules, + maximum, + prerequisites: DB.Optional({ + type: DB.IncludeIdentifier(GeneralPrerequisites), + }), + volume, + cost, + property: property(), + ap_value, + src, + translations: translations("Keulenzauber"), + }), + instanceDisplayName: {}, + uniqueConstraints: [ + { + entityMapKeyPath: "translations", + keyPathInEntityMap: "name_in_library", + keyPathInEntityMapFallback: "name", + }, + ], +}) diff --git a/src/types/traditionArtifacts/Schweinetrommelzauber.ts b/src/types/traditionArtifacts/Schweinetrommelzauber.ts new file mode 100644 index 00000000..344c6483 --- /dev/null +++ b/src/types/traditionArtifacts/Schweinetrommelzauber.ts @@ -0,0 +1,36 @@ +import * as DB from "tsondb/schema/dsl" +import { levels, maximum } from "../_Activatable.js" +import { ap_value } from "../_ActivatableAdventurePointsValue.js" +import { nameBuilderRules } from "../_ActivatableNames.js" +import { cost, property, volume } from "../_ActivatableNonMundane.js" +import { GeneralPrerequisites } from "../_Prerequisite.js" +import { src } from "../source/_PublicationRef.js" +import { translations } from "./_shared.js" + +export const Schweinetrommelzauber = DB.Entity(import.meta.url, { + name: "Schweinetrommelzauber", + namePlural: "Schweinetrommelzauber", + type: () => + DB.Object({ + levels, + nameBuilderRules, + maximum, + prerequisites: DB.Optional({ + type: DB.IncludeIdentifier(GeneralPrerequisites), + }), + volume, + cost, + property: property(), + ap_value, + src, + translations: translations("Schweinetrommelzauber"), + }), + instanceDisplayName: {}, + uniqueConstraints: [ + { + entityMapKeyPath: "translations", + keyPathInEntityMap: "name_in_library", + keyPathInEntityMapFallback: "name", + }, + ], +}) From 734e93318a99ee89b9bea8a695b35a055adb787d Mon Sep 17 00:00:00 2001 From: Lector Date: Thu, 18 Jun 2026 18:37:32 +0200 Subject: [PATCH 2/6] Added goblin stuff to Identifier --- src/types/_Identifier.ts | 6 ++++++ src/types/_IdentifierGroup.ts | 7 +++++++ 2 files changed, 13 insertions(+) diff --git a/src/types/_Identifier.ts b/src/types/_Identifier.ts index 573809e9..139592f1 100644 --- a/src/types/_Identifier.ts +++ b/src/types/_Identifier.ts @@ -148,12 +148,15 @@ import { CauldronEnchantment } from "./traditionArtifacts/CauldronEnchantment.js import { ChronicleEnchantment } from "./traditionArtifacts/ChronicleEnchantment.js" import { DaggerRitual } from "./traditionArtifacts/DaggerRitual.js" import { FoolsHatEnchantment } from "./traditionArtifacts/FoolsHatEnchantment.js" +import { Hauerkettenzauber } from "./traditionArtifacts/Hauerkettenzauber.js" import { Haubenzauber } from "./traditionArtifacts/Haubenzauber.js" import { InstrumentEnchantment } from "./traditionArtifacts/InstrumentEnchantment.js" +import { Keulenzauber } from "./traditionArtifacts/Keulenzauber.js" import { Krallenkettenzauber } from "./traditionArtifacts/Krallenkettenzauber.js" import { Kristallkugelzauber } from "./traditionArtifacts/Kristallkugelzauber.js" import { OrbEnchantment } from "./traditionArtifacts/OrbEnchantment.js" import { RingEnchantment } from "./traditionArtifacts/RingEnchantment.js" +import { Schweinetrommelzauber } from "./traditionArtifacts/Schweinetrommelzauber.js" import { SickleRitual } from "./traditionArtifacts/SickleRitual.js" import { SpellSwordEnchantment } from "./traditionArtifacts/SpellSwordEnchantment.js" import { StaffEnchantment } from "./traditionArtifacts/StaffEnchantment.js" @@ -245,6 +248,7 @@ export const GoblinRitualIdentifier: () => R = () => R(GoblinRitual) export const GuidelineIdentifier: () => R = () => R(Guideline) export const HairColorIdentifier: () => R = () => R(HairColor) export const HaubenzauberIdentifier: () => R = () => R(Haubenzauber) +export const HauerkettenZauberIdentifier: () => R = () => R(Hauerkettenzauber) export const HerbalAidIdentifier: () => R = () => R(HerbalAid) export const HerbalPreservationIdentifier: () => R = () => R(HerbalPreservation) export const IlluminationLightSourceIdentifier: () => R = () => R(IlluminationLightSource) @@ -254,6 +258,7 @@ export const InstrumentEnchantmentIdentifier: () => R = () => R(InstrumentEnchan export const JesterTrickIdentifier: () => R = () => R(JesterTrick) export const JewelryIdentifier: () => R = () => R(Jewelry) export const KarmaSpecialAbilityIdentifier: () => R = () => R(KarmaSpecialAbility) +export const KeulenzauberIdentifier: () => R = () => R(Keulenzauber) export const KrallenkettenzauberIdentifier: () => R = () => R(Krallenkettenzauber) export const KristallkugelzauberIdentifier: () => R = () => R(Kristallkugelzauber) export const LaboratoryIdentifier: () => R = () => R(Laboratory) @@ -305,6 +310,7 @@ export const BotanicRegionIdentifier: () => R = () => R(BotanicRegion) export const RingEnchantmentIdentifier: () => R = () => R(RingEnchantment) export const RitualIdentifier: () => R = () => R(Ritual) export const RopeOrChainIdentifier: () => R = () => R(RopeOrChain) +export const SchweinetrommelzauberIdentifier: () => R = () => R(Schweinetrommelzauber) export const ScriptIdentifier: () => R = () => R(Script) export const SermonIdentifier: () => R = () => R(Sermon) export const SexPracticeIdentifier: () => R = () => R(SexPractice) diff --git a/src/types/_IdentifierGroup.ts b/src/types/_IdentifierGroup.ts index a3091a6e..2186c306 100644 --- a/src/types/_IdentifierGroup.ts +++ b/src/types/_IdentifierGroup.ts @@ -62,12 +62,15 @@ import { GeodeRitualIdentifier, GoblinRitualIdentifier, HaubenzauberIdentifier, + HauerkettenZauberIdentifier, IlluminationLightSourceIdentifier, IlluminationRefillOrSupplyIdentifier, InstrumentEnchantmentIdentifier, JesterTrickIdentifier, JewelryIdentifier, KarmaSpecialAbilityIdentifier, + Keulenzauber, + KeulenzauberIdentifier, KrallenkettenzauberIdentifier, KristallkugelzauberIdentifier, LaboratoryIdentifier, @@ -100,6 +103,7 @@ import { RingEnchantmentIdentifier, RitualIdentifier, RopeOrChainIdentifier, + SchweinetrommelzauberIdentifier, ScriptIdentifier, SermonIdentifier, SexPracticeIdentifier, @@ -191,8 +195,10 @@ export const SpecialAbilityIdentifier = DB.Enum(import.meta.url, { FoolsHatEnchantment: DB.EnumCase({ type: FoolsHatEnchantmentIdentifier() }), GeneralSpecialAbility: DB.EnumCase({ type: GeneralSpecialAbilityIdentifier() }), Haubenzauber: DB.EnumCase({ type: HaubenzauberIdentifier() }), + Hauerkettenzauber: DB.EnumCase({ type: HauerkettenZauberIdentifier() }), InstrumentEnchantment: DB.EnumCase({ type: InstrumentEnchantmentIdentifier() }), KarmaSpecialAbility: DB.EnumCase({ type: KarmaSpecialAbilityIdentifier() }), + Keulenzauber: DB.EnumCase({ type: KeulenzauberIdentifier() }), Krallenkettenzauber: DB.EnumCase({ type: KrallenkettenzauberIdentifier() }), Kristallkugelzauber: DB.EnumCase({ type: KristallkugelzauberIdentifier() }), LiturgicalStyleSpecialAbility: DB.EnumCase({ type: LiturgicalStyleSpecialAbilityIdentifier() }), @@ -207,6 +213,7 @@ export const SpecialAbilityIdentifier = DB.Enum(import.meta.url, { type: ProtectiveWardingCircleSpecialAbilityIdentifier(), }), RingEnchantment: DB.EnumCase({ type: RingEnchantmentIdentifier() }), + Schweinetrommelzauber: DB.EnumCase({ type: SchweinetrommelzauberIdentifier() }), Sermon: DB.EnumCase({ type: SermonIdentifier() }), SexSpecialAbility: DB.EnumCase({ type: SexSpecialAbilityIdentifier() }), SickleRitual: DB.EnumCase({ type: SickleRitualIdentifier() }), From cb096a0ae74832fe880e8d10f9f0a5e1a37b2fdb Mon Sep 17 00:00:00 2001 From: Lector Date: Thu, 18 Jun 2026 18:39:24 +0200 Subject: [PATCH 3/6] Corrected typing error --- src/types/_IdentifierGroup.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/types/_IdentifierGroup.ts b/src/types/_IdentifierGroup.ts index 2186c306..5c4dbdc1 100644 --- a/src/types/_IdentifierGroup.ts +++ b/src/types/_IdentifierGroup.ts @@ -69,7 +69,7 @@ import { JesterTrickIdentifier, JewelryIdentifier, KarmaSpecialAbilityIdentifier, - Keulenzauber, + KeulenzauberIdentifier, KeulenzauberIdentifier, KrallenkettenzauberIdentifier, KristallkugelzauberIdentifier, From 98f8b13962c83af56762323a741d9da5b81f6cf7 Mon Sep 17 00:00:00 2001 From: Lector Date: Thu, 18 Jun 2026 18:40:36 +0200 Subject: [PATCH 4/6] removed duplicate declaration --- src/types/_IdentifierGroup.ts | 1 - 1 file changed, 1 deletion(-) diff --git a/src/types/_IdentifierGroup.ts b/src/types/_IdentifierGroup.ts index 5c4dbdc1..2e323d60 100644 --- a/src/types/_IdentifierGroup.ts +++ b/src/types/_IdentifierGroup.ts @@ -70,7 +70,6 @@ import { JewelryIdentifier, KarmaSpecialAbilityIdentifier, KeulenzauberIdentifier, - KeulenzauberIdentifier, KrallenkettenzauberIdentifier, KristallkugelzauberIdentifier, LaboratoryIdentifier, From a3e4372858ba6653edef6a52f36be832f3399e00 Mon Sep 17 00:00:00 2001 From: Lector Date: Thu, 18 Jun 2026 18:46:51 +0200 Subject: [PATCH 5/6] added comment --- src/types/traditionArtifacts/Keulenzauber.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/src/types/traditionArtifacts/Keulenzauber.ts b/src/types/traditionArtifacts/Keulenzauber.ts index 2ca67ea1..16cb2ec8 100644 --- a/src/types/traditionArtifacts/Keulenzauber.ts +++ b/src/types/traditionArtifacts/Keulenzauber.ts @@ -7,6 +7,7 @@ import { GeneralPrerequisites } from "../_Prerequisite.js" import { src } from "../source/_PublicationRef.js" import { translations } from "./_shared.js" +//Keulenzauber für Goblinzauberinnen export const Keulenzauber = DB.Entity(import.meta.url, { name: "Keulenzauber", namePlural: "Keulenzauber", From 00d3fbcebe7d60e27a57ea3b430aaa7a981be47c Mon Sep 17 00:00:00 2001 From: Lukas Obermann Date: Thu, 18 Jun 2026 20:37:54 +0200 Subject: [PATCH 6/6] fix cache builder --- src/cache/activatableSelectOptions.ts | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/cache/activatableSelectOptions.ts b/src/cache/activatableSelectOptions.ts index 0c0af7e6..63247b15 100644 --- a/src/cache/activatableSelectOptions.ts +++ b/src/cache/activatableSelectOptions.ts @@ -1118,8 +1118,10 @@ const cacheKeyBase: Record = { FoolsHatEnchantment: null, GeneralSpecialAbility: null, Haubenzauber: null, + Hauerkettenzauber: null, InstrumentEnchantment: null, KarmaSpecialAbility: null, + Keulenzauber: null, Krallenkettenzauber: null, Kristallkugelzauber: null, LiturgicalStyleSpecialAbility: null, @@ -1132,6 +1134,7 @@ const cacheKeyBase: Record = { PactGift: null, ProtectiveWardingCircleSpecialAbility: null, RingEnchantment: null, + Schweinetrommelzauber: null, Sermon: null, SexSpecialAbility: null, SickleRitual: null,