@optolith/database-schema 0.113.1 → 0.115.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -2,6 +2,26 @@
2
2
 
3
3
  All notable changes to this project will be documented in this file. See [commit-and-tag-version](https://github.com/absolute-version/commit-and-tag-version) for commit guidelines.
4
4
 
5
+ ## [0.115.0](https://github.com/Optolith/database-schema/compare/v0.114.0...v0.115.0) (2026-11-02)
6
+
7
+ ### ⚠ BREAKING CHANGES
8
+
9
+ * translations and settings for initial character setup
10
+
11
+ ### Features
12
+
13
+ * translations and settings for initial character setup ([5cf1733](https://github.com/Optolith/database-schema/commit/5cf17337bd59572c0f6d1ed830feb77c7510786e))
14
+
15
+ ## [0.114.0](https://github.com/Optolith/database-schema/compare/v0.113.1...v0.114.0) (2026-10-30)
16
+
17
+ ### ⚠ BREAKING CHANGES
18
+
19
+ * more data-driven logic from client
20
+
21
+ ### Features
22
+
23
+ * more data-driven logic from client ([2126a3c](https://github.com/Optolith/database-schema/commit/2126a3c70cc826a96ff427aef0c12e8cc38239ea))
24
+
5
25
  ## [0.113.1](https://github.com/Optolith/database-schema/compare/v0.113.0...v0.113.1) (2026-10-26)
6
26
 
7
27
  ### Bug Fixes
package/gen/types.d.ts CHANGED
@@ -324,6 +324,7 @@ export type EnumMap = {
324
324
  DerivedCharacteristicModifierPrerequisiteGroup: DerivedCharacteristicModifierPrerequisiteGroup
325
325
  DerivedCharacteristicPrerequisiteGroup: DerivedCharacteristicPrerequisiteGroup
326
326
  DerivedCharacteristicPrimaryAttributeValue: DerivedCharacteristicPrimaryAttributeValue
327
+ DerivedCharacteristicPurchaseMaximumValue: DerivedCharacteristicPurchaseMaximumValue
327
328
  DerivedCharacteristicSkillCheckPenalty: DerivedCharacteristicSkillCheckPenalty
328
329
  DerivedCharacteristicType: DerivedCharacteristicType
329
330
  DerivedPropertySpecializations: DerivedPropertySpecializations
@@ -622,6 +623,7 @@ export type TypeAliasMap = {
622
623
  CombatAnimalPower: CombatAnimalPower
623
624
  CombatTechniqueAdjustment: CombatTechniqueAdjustment
624
625
  CombatTechniqueRating: CombatTechniqueRating
626
+ CombatTechniqueSettings: CombatTechniqueSettings
625
627
  CombatTechniquesForAdventurePointsOption: CombatTechniquesForAdventurePointsOption
626
628
  CombatTechniquesOptions: CombatTechniquesOptions
627
629
  CombatTechniquesSelectOptionCategory: CombatTechniquesSelectOptionCategory
@@ -686,7 +688,6 @@ export type TypeAliasMap = {
686
688
  EnergyType: EnergyType
687
689
  EnhancementPrerequisite: EnhancementPrerequisite
688
690
  EnhancementPrerequisites: EnhancementPrerequisites
689
- EnhancementsSettings: EnhancementsSettings
690
691
  EquipmentPackageItem: EquipmentPackageItem
691
692
  EquipmentPrerequisites: EquipmentPrerequisites
692
693
  Errata: Errata
@@ -802,6 +803,7 @@ export type TypeAliasMap = {
802
803
  LevelTypeConfigTranslation: LevelTypeConfigTranslation
803
804
  LimitedBurningTime: LimitedBurningTime
804
805
  LiturgicalChantRating: LiturgicalChantRating
806
+ LiturgicalChantSettings: LiturgicalChantSettings
805
807
  LiturgiesOptions: LiturgiesOptions
806
808
  LiturgyPrerequisites: LiturgyPrerequisites
807
809
  LiturgyTraditionWithAspects: LiturgyTraditionWithAspects
@@ -984,6 +986,7 @@ export type TypeAliasMap = {
984
986
  SkillCheck: SkillCheck
985
987
  SkillRating: SkillRating
986
988
  SkillSelectOptionCategoryCategory: SkillSelectOptionCategoryCategory
989
+ SkillSettings: SkillSettings
987
990
  SkillsOptions: SkillsOptions
988
991
  SkillsSelectOptionCategory: SkillsSelectOptionCategory
989
992
  SlowCastingTime: SlowCastingTime
@@ -1009,6 +1012,7 @@ export type TypeAliasMap = {
1009
1012
  SpellworkAdjustmentWithBase: SpellworkAdjustmentWithBase
1010
1013
  SpellworkChange: SpellworkChange
1011
1014
  SpellworkPrerequisites: SpellworkPrerequisites
1015
+ SpellworkSettings: SpellworkSettings
1012
1016
  SpellworksForChosenProperty: SpellworksForChosenProperty
1013
1017
  SpellworksOptions: SpellworksOptions
1014
1018
  StandaloneCostMap: StandaloneCostMap
@@ -1527,6 +1531,7 @@ export interface Locale {
1527
1531
  "Sort By": string
1528
1532
  "Name": string
1529
1533
  "Date Modified": string
1534
+ "Date Created": string
1530
1535
  "Group": string
1531
1536
  "Property": string
1532
1537
  "general.filters.sort.bylocation": string
@@ -1577,6 +1582,15 @@ export interface Locale {
1577
1582
  "heroes.dialogs.unsavedactions.saveandquit": string
1578
1583
  "heroes.dialogs.deletehero.title": string
1579
1584
  "heroes.dialogs.deletehero.message": string
1585
+ "Name of Character": string
1586
+ "Sex": string
1587
+ "Custom Sex": string
1588
+ "Custom Sex Name": string
1589
+ "Experience Level": string
1590
+ "Counts as male when checking binary sex prerequisites": string
1591
+ "Counts as female when checking binary sex prerequisites": string
1592
+ "Counts as having a penis when checking sex characteristic prerequisites": string
1593
+ "Counts as having a vagina when checking sex characteristic prerequisites": string
1580
1594
  "heroes.dialogs.herocreation.title": string
1581
1595
  "heroes.dialogs.herocreation.nameofhero": string
1582
1596
  "heroes.dialogs.herocreation.sex.placeholder": string
@@ -1868,6 +1882,7 @@ export interface Locale {
1868
1882
  "Use all publications": string
1869
1883
  "Focus Rules": string
1870
1884
  "Optional Rules": string
1885
+ "Alternative Rules": string
1871
1886
  "rules.manualherodatarepair": string
1872
1887
  "rules.manualherodatarepairexplanation": string
1873
1888
  "inlinewiki.complementarysources": string
@@ -1977,6 +1992,8 @@ export interface Locale {
1977
1992
  "Lost Total": string
1978
1993
  "Bought Back": string
1979
1994
  "Buy Back Permanently Lost Point": string
1995
+ "Permanently Lost {$energy}": string & { __params: { "energy": string } }
1996
+ "p{$energy}": string & { __params: { "energy": string } }
1980
1997
  "Permanently Lost Life Points": string
1981
1998
  "pLP": string
1982
1999
  "Permanently Lost Arcane Energy": string
@@ -1992,7 +2009,9 @@ export interface Locale {
1992
2009
  "Custom AP Cost": string
1993
2010
  "AP Cost for {$category}": string & { __params: { "category": string } }
1994
2011
  "Custom option": string
2012
+ "Show entries with unmet prerequisites": string
1995
2013
  "specialabilities.nativetonguelevel": string
2014
+ "Adoruzepterzauber": string
1996
2015
  "Advanced Combat Special Abilities": string
1997
2016
  "Advanced Karma Special Abilities": string
1998
2017
  "Advanced Magical Special Abilities": string
@@ -2000,6 +2019,7 @@ export interface Locale {
2000
2019
  "Ancestor Glyphs": string
2001
2020
  "Arcane Orb Enchantments": string
2002
2021
  "Attire Enchantments": string
2022
+ "Beutelzauber": string
2003
2023
  "Blessed Traditions": string
2004
2024
  "Bowl Enchantments": string
2005
2025
  "Brawling Special Abilities": string
@@ -2015,9 +2035,13 @@ export interface Locale {
2015
2035
  "Fate Point Special Abilities": string
2016
2036
  "Fools Hat Enchantments": string
2017
2037
  "General Special Abilities": string
2038
+ "Haubenzauber": string
2039
+ "Hauerkettenzauber": string
2018
2040
  "Instrument Enchantments": string
2019
2041
  "Karma Special Abilities": string
2042
+ "Keulenzauber": string
2020
2043
  "Krallenkettenzauber": string
2044
+ "Kristallkugelzauber": string
2021
2045
  "Liturgical Style Special Abilities": string
2022
2046
  "Lycantropic Gifts": string
2023
2047
  "Magical Signs": string
@@ -2028,6 +2052,7 @@ export interface Locale {
2028
2052
  "Pact Gifts": string
2029
2053
  "Protective/Warding Circle Special Abilities": string
2030
2054
  "Ring Enchantments": string
2055
+ "Schweinetrommelzauber": string
2031
2056
  "Sermons": string
2032
2057
  "Sex Special Abilities": string
2033
2058
  "Sickle Rituals": string
@@ -4953,7 +4978,51 @@ export interface DerivedCharacteristicPurchase {
4953
4978
  /**
4954
4979
  * The maximum value that can be achieved for the derived characteristic through improvements.
4955
4980
  */
4956
- maximum: DerivedCharacteristicBase
4981
+ maximum: DerivedCharacteristicPurchaseMaximumValue
4982
+ }
4983
+
4984
+ export type DerivedCharacteristicPurchaseMaximumValue =
4985
+ | {
4986
+ kind: "Attribute"
4987
+ Attribute: Attribute_ID
4988
+ }
4989
+ | {
4990
+ kind: "PrimaryAttribute"
4991
+ PrimaryAttribute: DerivedCharacteristicPrimaryAttributeValue
4992
+ }
4993
+
4994
+ export type DerivedCharacteristicPrimaryAttributeValue =
4995
+ | {
4996
+ kind: "Magical"
4997
+ }
4998
+ | {
4999
+ kind: "Blessed"
5000
+ }
5001
+
5002
+ export interface DerivedCharacteristicPermanentLoss {
5003
+ /**
5004
+ * If set, permanent losses to the derived characteristic can be bought back for the specified cost.
5005
+ */
5006
+ canBeBoughtBack?: DerivedCharacteristicBuyBack
5007
+ }
5008
+
5009
+ export interface DerivedCharacteristicBuyBack {
5010
+ /**
5011
+ * The AP cost for buying back one point.
5012
+ */
5013
+ cost: number
5014
+ }
5015
+
5016
+ export interface DerivedCharacteristicCalculation {
5017
+ /**
5018
+ * The base value for the calculation.
5019
+ */
5020
+ base: DerivedCharacteristicBase
5021
+
5022
+ /**
5023
+ * A list of modifiers that are applied to the base value. The modifiers are applied in the order they appear in the list.
5024
+ */
5025
+ modifiers?: DerivedCharacteristicModifier[]
4957
5026
  }
4958
5027
 
4959
5028
  export type DerivedCharacteristicBase = MathOperation<DerivedCharacteristicBaseValue>
@@ -5001,40 +5070,6 @@ export type DerivedCharacteristicBaseValue =
5001
5070
  PrimaryAttribute: DerivedCharacteristicPrimaryAttributeValue
5002
5071
  }
5003
5072
 
5004
- export type DerivedCharacteristicPrimaryAttributeValue =
5005
- | {
5006
- kind: "Magical"
5007
- }
5008
- | {
5009
- kind: "Blessed"
5010
- }
5011
-
5012
- export interface DerivedCharacteristicPermanentLoss {
5013
- /**
5014
- * If set, permanent losses to the derived characteristic can be bought back for the specified cost.
5015
- */
5016
- canBeBoughtBack?: DerivedCharacteristicBuyBack
5017
- }
5018
-
5019
- export interface DerivedCharacteristicBuyBack {
5020
- /**
5021
- * The AP cost for buying back one point.
5022
- */
5023
- cost: number
5024
- }
5025
-
5026
- export interface DerivedCharacteristicCalculation {
5027
- /**
5028
- * The base value for the calculation.
5029
- */
5030
- base: DerivedCharacteristicBase
5031
-
5032
- /**
5033
- * A list of modifiers that are applied to the base value. The modifiers are applied in the order they appear in the list.
5034
- */
5035
- modifiers?: DerivedCharacteristicModifier[]
5036
- }
5037
-
5038
5073
  export interface DerivedCharacteristicModifier {
5039
5074
  /**
5040
5075
  * The entry that, when active, causes the modifier.
@@ -29262,24 +29297,22 @@ export interface Settings {
29262
29297
  styles: StyleSpecialAbilitySettings
29263
29298
 
29264
29299
  /**
29265
- * Spell and Liturgical Chant Enhancements are part of focus rules. This type defines which focus rule must be enabled in order to use an enhancement. Essentially, this is a default prerequisite they must meet, but manually inserting them with every enhancement is a lot of work and error-prone. Therefore, in order to use an enhancement, prerequisites for the respective focus rule must be generated for every entry.
29300
+ * The publication that uses sexual characteristics. This makes sexual characteristic selection available for characters outside of male and female sex presets.
29266
29301
  */
29267
- enhancements: EnhancementsSettings
29302
+ sexualCharacteristicsPublication: Publication_ID
29268
29303
 
29269
29304
  /**
29270
29305
  * The publication that extends the description of books with additional information.
29271
29306
  */
29272
29307
  extendedBookDescriptionPublication: Publication_ID
29273
29308
 
29274
- /**
29275
- * The entry that grants a bonus of 1 towards the maximum skill rating per selection.
29276
- */
29277
- maximumSkillRatingBonusEntry: ActivatableIdentifier
29309
+ skills: SkillSettings
29278
29310
 
29279
- /**
29280
- * The entry that grants a bonus of 1 towards the maximum skill rating per selection.
29281
- */
29282
- maximumCombatTechniqueRatingBonusEntry: ActivatableIdentifier
29311
+ combatTechniques: CombatTechniqueSettings
29312
+
29313
+ spellworks: SpellworkSettings
29314
+
29315
+ liturgicalChants: LiturgicalChantSettings
29283
29316
  }
29284
29317
 
29285
29318
  /**
@@ -29347,19 +29380,57 @@ export interface StyleSpecialAbilitySettings {
29347
29380
  liturgical: FocusRule_ID
29348
29381
  }
29349
29382
 
29350
- /**
29351
- * Spell and Liturgical Chant Enhancements are part of focus rules. This type defines which focus rule must be enabled in order to use an enhancement. Essentially, this is a default prerequisite they must meet, but manually inserting them with every enhancement is a lot of work and error-prone. Therefore, in order to use an enhancement, prerequisites for the respective focus rule must be generated for every entry.
29352
- */
29353
- export interface EnhancementsSettings {
29383
+ export interface SkillSettings {
29384
+ /**
29385
+ * The entry that grants a bonus of 1 towards the maximum skill rating per selection.
29386
+ */
29387
+ maximumSkillRatingBonusEntry: ActivatableIdentifier
29388
+ }
29389
+
29390
+ export interface CombatTechniqueSettings {
29391
+ /**
29392
+ * The entry that grants a bonus of 1 towards the maximum skill rating per selection.
29393
+ */
29394
+ maximumCombatTechniqueRatingBonusEntry: ActivatableIdentifier
29395
+
29396
+ /**
29397
+ * The attribute that increases the attack value of a close combat technique.
29398
+ */
29399
+ closeCombatTechniqueAttackAttribute: Attribute_ID
29400
+ }
29401
+
29402
+ export interface SpellworkSettings {
29403
+ /**
29404
+ * The entry that removes the maximum rating of 14 from spellworks for selected properties. It must provide the property as a selected option.
29405
+ */
29406
+ maximumRatingUnlockEntry: ActivatableIdentifier
29407
+
29408
+ /**
29409
+ * Spell Enhancements are part of focus rules. This type defines which focus rule must be enabled in order to use an enhancement. Essentially, this is a default prerequisite they must meet, but manually inserting them with every enhancement is a lot of work and error-prone. Therefore, in order to use an enhancement, prerequisites for the focus rule must be generated for every entry.
29410
+ */
29411
+ enhancementsFocusRule: FocusRule_ID
29412
+ }
29413
+
29414
+ export interface LiturgicalChantSettings {
29415
+ /**
29416
+ * The general aspect for church traditions.
29417
+ */
29418
+ generalAspectForChurch: Aspect_ID
29419
+
29420
+ /**
29421
+ * The general aspect for shamanistic traditions.
29422
+ */
29423
+ generalAspectForShamanistic: Aspect_ID
29424
+
29354
29425
  /**
29355
- * The focus rule for spell enhancements.
29426
+ * The entry that removes the maximum rating of 14 from liturgical chants for selected aspects. It must provide the aspect as a selected option.
29356
29427
  */
29357
- spell: FocusRule_ID
29428
+ maximumRatingUnlockEntry: ActivatableIdentifier
29358
29429
 
29359
29430
  /**
29360
- * The focus rule for liturgical chant enhancements.
29431
+ * Liturgical Chant Enhancements are part of focus rules. This type defines which focus rule must be enabled in order to use an enhancement. Essentially, this is a default prerequisite they must meet, but manually inserting them with every enhancement is a lot of work and error-prone. Therefore, in order to use an enhancement, prerequisites for the focus rule must be generated for every entry.
29361
29432
  */
29362
- liturgicalChant: FocusRule_ID
29433
+ enhancementsFocusRule: FocusRule_ID
29363
29434
  }
29364
29435
 
29365
29436
  export interface SexPractice {
@@ -2,7 +2,7 @@ import { Case } from "tsondb/schema/gen";
2
2
  import type { ActivatableIdentifier as ActivatableIdentifierType, GeneralSelectOption, RequirableSelectOptionIdentifier, TradeSecretAdventurePointsValue } from "../../gen/types.js";
3
3
  import type { CacheBuilder } from "./internal.ts";
4
4
  import type { ResolvedNewSkillApplication, ResolvedSkillUse } from "./newApplicationsAndUses.ts";
5
- export type ResolvedSelectOptionIdentifier = RequirableSelectOptionIdentifier | Case<"Blessing" | "Cantrip" | "Script" | "Culture" | "SexPractice" | "HomunculusType" | "BlessedTradition" | "Disease" | "Poison" | "TargetCategory" | "Advantage", string>;
5
+ export type ResolvedSelectOptionIdentifier = RequirableSelectOptionIdentifier | Case<"Blessing" | "Cantrip" | "Script" | "Culture" | "SexPractice" | "HomunculusType" | "BlessedTradition" | "Disease" | "Poison" | "TargetCategory" | "Patron" | "Advantage", string>;
6
6
  export type ResolvedSelectOption = {
7
7
  id: ResolvedSelectOptionIdentifier;
8
8
  content: Omit<GeneralSelectOption, "ap_value"> & {
@@ -12,7 +12,13 @@ export declare const DerivedCharacteristic: DB.Entity<"DerivedCharacteristic", {
12
12
  C: DB.EnumCase<null>;
13
13
  D: DB.EnumCase<null>;
14
14
  }, []>>, true>;
15
- maximum: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"DerivedCharacteristicBase", DB.IncludeIdentifier<DB.Param<string, DB.Type>[], MathOperation>, []>>, true>;
15
+ maximum: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"DerivedCharacteristicPurchaseMaximumValue", {
16
+ Attribute: DB.EnumCase<DB.ReferenceIdentifier>;
17
+ PrimaryAttribute: DB.EnumCase<DB.IncludeIdentifier<[], DB.Enum<"DerivedCharacteristicPrimaryAttributeValue", {
18
+ Magical: DB.EnumCase<null>;
19
+ Blessed: DB.EnumCase<null>;
20
+ }, []>>>;
21
+ }, []>>, true>;
16
22
  }>, []>>, false>;
17
23
  permanentLoss: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"DerivedCharacteristicPermanentLoss", DB.Object<{
18
24
  canBeBoughtBack: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"DerivedCharacteristicBuyBack", DB.Object<{
@@ -130,6 +130,15 @@ const DerivedCharacteristicBaseValue = DB.Enum(import.meta.url, {
130
130
  }),
131
131
  }),
132
132
  });
133
+ const DerivedCharacteristicPurchaseMaximumValue = DB.Enum(import.meta.url, {
134
+ name: "DerivedCharacteristicPurchaseMaximumValue",
135
+ values: () => ({
136
+ Attribute: DB.EnumCase({ type: AttributeIdentifier() }),
137
+ PrimaryAttribute: DB.EnumCase({
138
+ type: DB.IncludeIdentifier(DerivedCharacteristicPrimaryAttributeValue),
139
+ }),
140
+ }),
141
+ });
133
142
  const DerivedCharacteristicBase = DB.TypeAlias(import.meta.url, {
134
143
  name: "DerivedCharacteristicBase",
135
144
  type: () => DB.GenIncludeIdentifier(MathOperation, [DB.IncludeIdentifier(DerivedCharacteristicBaseValue)]),
@@ -194,7 +203,7 @@ const DerivedCharacteristicPurchase = DB.TypeAlias(import.meta.url, {
194
203
  }),
195
204
  maximum: DB.Required({
196
205
  comment: "The maximum value that can be achieved for the derived characteristic through improvements.",
197
- type: DB.IncludeIdentifier(DerivedCharacteristicBase),
206
+ type: DB.IncludeIdentifier(DerivedCharacteristicPurchaseMaximumValue),
198
207
  }),
199
208
  }),
200
209
  });
@@ -230,6 +230,7 @@ export declare const Locale: DB.Entity<"Locale", {
230
230
  "Sort By": null;
231
231
  Name: null;
232
232
  "Date Modified": null;
233
+ "Date Created": null;
233
234
  Group: null;
234
235
  Property: null;
235
236
  "general.filters.sort.bylocation": null;
@@ -283,6 +284,15 @@ export declare const Locale: DB.Entity<"Locale", {
283
284
  */
284
285
  "heroes.dialogs.deletehero.title": null;
285
286
  "heroes.dialogs.deletehero.message": null;
287
+ "Name of Character": null;
288
+ Sex: null;
289
+ "Custom Sex": null;
290
+ "Custom Sex Name": null;
291
+ "Experience Level": null;
292
+ "Counts as male when checking binary sex prerequisites": null;
293
+ "Counts as female when checking binary sex prerequisites": null;
294
+ "Counts as having a penis when checking sex characteristic prerequisites": null;
295
+ "Counts as having a vagina when checking sex characteristic prerequisites": null;
286
296
  "heroes.dialogs.herocreation.title": null;
287
297
  "heroes.dialogs.herocreation.nameofhero": null;
288
298
  "heroes.dialogs.herocreation.sex.placeholder": null;
@@ -574,6 +584,7 @@ export declare const Locale: DB.Entity<"Locale", {
574
584
  "Use all publications": null;
575
585
  "Focus Rules": null;
576
586
  "Optional Rules": null;
587
+ "Alternative Rules": null;
577
588
  "rules.manualherodatarepair": null;
578
589
  "rules.manualherodatarepairexplanation": null;
579
590
  "inlinewiki.complementarysources": null;
@@ -748,6 +759,8 @@ export declare const Locale: DB.Entity<"Locale", {
748
759
  "Lost Total": null;
749
760
  "Bought Back": null;
750
761
  "Buy Back Permanently Lost Point": null;
762
+ "Permanently Lost {$energy}": null;
763
+ "p{$energy}": null;
751
764
  "Permanently Lost Life Points": null;
752
765
  pLP: null;
753
766
  "Permanently Lost Arcane Energy": null;
@@ -766,7 +779,9 @@ export declare const Locale: DB.Entity<"Locale", {
766
779
  */
767
780
  "AP Cost for {$category}": null;
768
781
  "Custom option": null;
782
+ "Show entries with unmet prerequisites": null;
769
783
  "specialabilities.nativetonguelevel": null;
784
+ Adoruzepterzauber: null;
770
785
  "Advanced Combat Special Abilities": null;
771
786
  "Advanced Karma Special Abilities": null;
772
787
  "Advanced Magical Special Abilities": null;
@@ -774,6 +789,7 @@ export declare const Locale: DB.Entity<"Locale", {
774
789
  "Ancestor Glyphs": null;
775
790
  "Arcane Orb Enchantments": null;
776
791
  "Attire Enchantments": null;
792
+ Beutelzauber: null;
777
793
  "Blessed Traditions": null;
778
794
  "Bowl Enchantments": null;
779
795
  "Brawling Special Abilities": null;
@@ -789,9 +805,13 @@ export declare const Locale: DB.Entity<"Locale", {
789
805
  "Fate Point Special Abilities": null;
790
806
  "Fools Hat Enchantments": null;
791
807
  "General Special Abilities": null;
808
+ Haubenzauber: null;
809
+ Hauerkettenzauber: null;
792
810
  "Instrument Enchantments": null;
793
811
  "Karma Special Abilities": null;
812
+ Keulenzauber: null;
794
813
  Krallenkettenzauber: null;
814
+ Kristallkugelzauber: null;
795
815
  "Liturgical Style Special Abilities": null;
796
816
  "Lycantropic Gifts": null;
797
817
  "Magical Signs": null;
@@ -802,6 +822,7 @@ export declare const Locale: DB.Entity<"Locale", {
802
822
  "Pact Gifts": null;
803
823
  "Protective/Warding Circle Special Abilities": null;
804
824
  "Ring Enchantments": null;
825
+ Schweinetrommelzauber: null;
805
826
  Sermons: null;
806
827
  "Sex Special Abilities": null;
807
828
  "Sickle Rituals": null;
@@ -251,6 +251,7 @@ export const Locale = DB.Entity(import.meta.url, {
251
251
  "Sort By": null,
252
252
  "Name": null,
253
253
  "Date Modified": null,
254
+ "Date Created": null,
254
255
  "Group": null,
255
256
  "Property": null,
256
257
  "general.filters.sort.bylocation": null,
@@ -304,6 +305,15 @@ export const Locale = DB.Entity(import.meta.url, {
304
305
  */
305
306
  "heroes.dialogs.deletehero.title": null,
306
307
  "heroes.dialogs.deletehero.message": null,
308
+ "Name of Character": null,
309
+ "Sex": null,
310
+ "Custom Sex": null,
311
+ "Custom Sex Name": null,
312
+ "Experience Level": null,
313
+ "Counts as male when checking binary sex prerequisites": null,
314
+ "Counts as female when checking binary sex prerequisites": null,
315
+ "Counts as having a penis when checking sex characteristic prerequisites": null,
316
+ "Counts as having a vagina when checking sex characteristic prerequisites": null,
307
317
  "heroes.dialogs.herocreation.title": null,
308
318
  "heroes.dialogs.herocreation.nameofhero": null,
309
319
  "heroes.dialogs.herocreation.sex.placeholder": null,
@@ -597,6 +607,7 @@ export const Locale = DB.Entity(import.meta.url, {
597
607
  "Use all publications": null,
598
608
  "Focus Rules": null,
599
609
  "Optional Rules": null,
610
+ "Alternative Rules": null,
600
611
  "rules.manualherodatarepair": null,
601
612
  "rules.manualherodatarepairexplanation": null,
602
613
  "inlinewiki.complementarysources": null,
@@ -772,6 +783,8 @@ export const Locale = DB.Entity(import.meta.url, {
772
783
  "Lost Total": null,
773
784
  "Bought Back": null,
774
785
  "Buy Back Permanently Lost Point": null,
786
+ "Permanently Lost {$energy}": null,
787
+ "p{$energy}": null,
775
788
  "Permanently Lost Life Points": null,
776
789
  "pLP": null,
777
790
  "Permanently Lost Arcane Energy": null,
@@ -790,7 +803,9 @@ export const Locale = DB.Entity(import.meta.url, {
790
803
  */
791
804
  "AP Cost for {$category}": null,
792
805
  "Custom option": null,
806
+ "Show entries with unmet prerequisites": null,
793
807
  "specialabilities.nativetonguelevel": null,
808
+ "Adoruzepterzauber": null,
794
809
  "Advanced Combat Special Abilities": null,
795
810
  "Advanced Karma Special Abilities": null,
796
811
  "Advanced Magical Special Abilities": null,
@@ -798,6 +813,7 @@ export const Locale = DB.Entity(import.meta.url, {
798
813
  "Ancestor Glyphs": null,
799
814
  "Arcane Orb Enchantments": null,
800
815
  "Attire Enchantments": null,
816
+ "Beutelzauber": null,
801
817
  "Blessed Traditions": null,
802
818
  "Bowl Enchantments": null,
803
819
  "Brawling Special Abilities": null,
@@ -813,9 +829,13 @@ export const Locale = DB.Entity(import.meta.url, {
813
829
  "Fate Point Special Abilities": null,
814
830
  "Fools Hat Enchantments": null,
815
831
  "General Special Abilities": null,
832
+ "Haubenzauber": null,
833
+ "Hauerkettenzauber": null,
816
834
  "Instrument Enchantments": null,
817
835
  "Karma Special Abilities": null,
836
+ "Keulenzauber": null,
818
837
  "Krallenkettenzauber": null,
838
+ "Kristallkugelzauber": null,
819
839
  "Liturgical Style Special Abilities": null,
820
840
  "Lycantropic Gifts": null,
821
841
  "Magical Signs": null,
@@ -826,6 +846,7 @@ export const Locale = DB.Entity(import.meta.url, {
826
846
  "Pact Gifts": null,
827
847
  "Protective/Warding Circle Special Abilities": null,
828
848
  "Ring Enchantments": null,
849
+ "Schweinetrommelzauber": null,
829
850
  "Sermons": null,
830
851
  "Sex Special Abilities": null,
831
852
  "Sickle Rituals": null,
@@ -186,127 +186,255 @@ export declare const Settings: DB.SingletonEntity<"Settings", {
186
186
  magic: DB.MemberDecl<DB.ReferenceIdentifier, true>;
187
187
  liturgical: DB.MemberDecl<DB.ReferenceIdentifier, true>;
188
188
  }>, []>>, true>;
189
- enhancements: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"EnhancementsSettings", DB.Object<{
190
- spell: DB.MemberDecl<DB.ReferenceIdentifier, true>;
191
- liturgicalChant: DB.MemberDecl<DB.ReferenceIdentifier, true>;
192
- }>, []>>, true>;
189
+ sexualCharacteristicsPublication: DB.MemberDecl<DB.ReferenceIdentifier, true>;
193
190
  extendedBookDescriptionPublication: DB.MemberDecl<DB.ReferenceIdentifier, true>;
194
- maximumSkillRatingBonusEntry: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"ActivatableIdentifier", {
195
- Adoruzepterzauber: DB.EnumCase<DB.ReferenceIdentifier>;
196
- ArcaneOrbEnchantment: DB.EnumCase<DB.ReferenceIdentifier>;
197
- AttireEnchantment: DB.EnumCase<DB.ReferenceIdentifier>;
198
- Beutelzauber: DB.EnumCase<DB.ReferenceIdentifier>;
199
- BowlEnchantment: DB.EnumCase<DB.ReferenceIdentifier>;
200
- CauldronEnchantment: DB.EnumCase<DB.ReferenceIdentifier>;
201
- ChronicleEnchantment: DB.EnumCase<DB.ReferenceIdentifier>;
202
- DaggerRitual: DB.EnumCase<DB.ReferenceIdentifier>;
203
- FoolsHatEnchantment: DB.EnumCase<DB.ReferenceIdentifier>;
204
- Haubenzauber: DB.EnumCase<DB.ReferenceIdentifier>;
205
- Hauerkettenzauber: DB.EnumCase<DB.ReferenceIdentifier>;
206
- InstrumentEnchantment: DB.EnumCase<DB.ReferenceIdentifier>;
207
- Keulenzauber: DB.EnumCase<DB.ReferenceIdentifier>;
208
- Krallenkettenzauber: DB.EnumCase<DB.ReferenceIdentifier>;
209
- Kristallkugelzauber: DB.EnumCase<DB.ReferenceIdentifier>;
210
- OrbEnchantment: DB.EnumCase<DB.ReferenceIdentifier>;
211
- RingEnchantment: DB.EnumCase<DB.ReferenceIdentifier>;
212
- Schweinetrommelzauber: DB.EnumCase<DB.ReferenceIdentifier>;
213
- SickleRitual: DB.EnumCase<DB.ReferenceIdentifier>;
214
- SpellSwordEnchantment: DB.EnumCase<DB.ReferenceIdentifier>;
215
- StaffEnchantment: DB.EnumCase<DB.ReferenceIdentifier>;
216
- ToyEnchantment: DB.EnumCase<DB.ReferenceIdentifier>;
217
- Trinkhornzauber: DB.EnumCase<DB.ReferenceIdentifier>;
218
- WandEnchantment: DB.EnumCase<DB.ReferenceIdentifier>;
219
- WeaponEnchantment: DB.EnumCase<DB.ReferenceIdentifier>;
220
- AdvancedCombatSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
221
- AdvancedKarmaSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
222
- AdvancedMagicalSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
223
- AdvancedSkillSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
224
- AncestorGlyph: DB.EnumCase<DB.ReferenceIdentifier>;
225
- BlessedTradition: DB.EnumCase<DB.ReferenceIdentifier>;
226
- BrawlingSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
227
- CeremonialItemSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
228
- CombatSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
229
- CombatStyleSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
230
- CommandSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
231
- FamiliarSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
232
- FatePointSexSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
233
- FatePointSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
234
- GeneralSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
235
- KarmaSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
236
- LiturgicalStyleSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
237
- LycantropicGift: DB.EnumCase<DB.ReferenceIdentifier>;
238
- MagicalSign: DB.EnumCase<DB.ReferenceIdentifier>;
239
- MagicalSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
240
- MagicalTradition: DB.EnumCase<DB.ReferenceIdentifier>;
241
- MagicStyleSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
242
- PactGift: DB.EnumCase<DB.ReferenceIdentifier>;
243
- ProtectiveWardingCircleSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
244
- Sermon: DB.EnumCase<DB.ReferenceIdentifier>;
245
- SexSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
246
- SikaryanDrainSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
247
- SkillStyleSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
248
- VampiricGift: DB.EnumCase<DB.ReferenceIdentifier>;
249
- Vision: DB.EnumCase<DB.ReferenceIdentifier>;
250
- Advantage: DB.EnumCase<DB.ReferenceIdentifier>;
251
- Disadvantage: DB.EnumCase<DB.ReferenceIdentifier>;
252
- }, []>>, true>;
253
- maximumCombatTechniqueRatingBonusEntry: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"ActivatableIdentifier", {
254
- Adoruzepterzauber: DB.EnumCase<DB.ReferenceIdentifier>;
255
- ArcaneOrbEnchantment: DB.EnumCase<DB.ReferenceIdentifier>;
256
- AttireEnchantment: DB.EnumCase<DB.ReferenceIdentifier>;
257
- Beutelzauber: DB.EnumCase<DB.ReferenceIdentifier>;
258
- BowlEnchantment: DB.EnumCase<DB.ReferenceIdentifier>;
259
- CauldronEnchantment: DB.EnumCase<DB.ReferenceIdentifier>;
260
- ChronicleEnchantment: DB.EnumCase<DB.ReferenceIdentifier>;
261
- DaggerRitual: DB.EnumCase<DB.ReferenceIdentifier>;
262
- FoolsHatEnchantment: DB.EnumCase<DB.ReferenceIdentifier>;
263
- Haubenzauber: DB.EnumCase<DB.ReferenceIdentifier>;
264
- Hauerkettenzauber: DB.EnumCase<DB.ReferenceIdentifier>;
265
- InstrumentEnchantment: DB.EnumCase<DB.ReferenceIdentifier>;
266
- Keulenzauber: DB.EnumCase<DB.ReferenceIdentifier>;
267
- Krallenkettenzauber: DB.EnumCase<DB.ReferenceIdentifier>;
268
- Kristallkugelzauber: DB.EnumCase<DB.ReferenceIdentifier>;
269
- OrbEnchantment: DB.EnumCase<DB.ReferenceIdentifier>;
270
- RingEnchantment: DB.EnumCase<DB.ReferenceIdentifier>;
271
- Schweinetrommelzauber: DB.EnumCase<DB.ReferenceIdentifier>;
272
- SickleRitual: DB.EnumCase<DB.ReferenceIdentifier>;
273
- SpellSwordEnchantment: DB.EnumCase<DB.ReferenceIdentifier>;
274
- StaffEnchantment: DB.EnumCase<DB.ReferenceIdentifier>;
275
- ToyEnchantment: DB.EnumCase<DB.ReferenceIdentifier>;
276
- Trinkhornzauber: DB.EnumCase<DB.ReferenceIdentifier>;
277
- WandEnchantment: DB.EnumCase<DB.ReferenceIdentifier>;
278
- WeaponEnchantment: DB.EnumCase<DB.ReferenceIdentifier>;
279
- AdvancedCombatSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
280
- AdvancedKarmaSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
281
- AdvancedMagicalSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
282
- AdvancedSkillSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
283
- AncestorGlyph: DB.EnumCase<DB.ReferenceIdentifier>;
284
- BlessedTradition: DB.EnumCase<DB.ReferenceIdentifier>;
285
- BrawlingSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
286
- CeremonialItemSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
287
- CombatSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
288
- CombatStyleSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
289
- CommandSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
290
- FamiliarSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
291
- FatePointSexSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
292
- FatePointSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
293
- GeneralSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
294
- KarmaSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
295
- LiturgicalStyleSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
296
- LycantropicGift: DB.EnumCase<DB.ReferenceIdentifier>;
297
- MagicalSign: DB.EnumCase<DB.ReferenceIdentifier>;
298
- MagicalSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
299
- MagicalTradition: DB.EnumCase<DB.ReferenceIdentifier>;
300
- MagicStyleSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
301
- PactGift: DB.EnumCase<DB.ReferenceIdentifier>;
302
- ProtectiveWardingCircleSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
303
- Sermon: DB.EnumCase<DB.ReferenceIdentifier>;
304
- SexSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
305
- SikaryanDrainSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
306
- SkillStyleSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
307
- VampiricGift: DB.EnumCase<DB.ReferenceIdentifier>;
308
- Vision: DB.EnumCase<DB.ReferenceIdentifier>;
309
- Advantage: DB.EnumCase<DB.ReferenceIdentifier>;
310
- Disadvantage: DB.EnumCase<DB.ReferenceIdentifier>;
311
- }, []>>, true>;
191
+ skills: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"SkillSettings", DB.Object<{
192
+ maximumSkillRatingBonusEntry: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"ActivatableIdentifier", {
193
+ Adoruzepterzauber: DB.EnumCase<DB.ReferenceIdentifier>;
194
+ ArcaneOrbEnchantment: DB.EnumCase<DB.ReferenceIdentifier>;
195
+ AttireEnchantment: DB.EnumCase<DB.ReferenceIdentifier>;
196
+ Beutelzauber: DB.EnumCase<DB.ReferenceIdentifier>;
197
+ BowlEnchantment: DB.EnumCase<DB.ReferenceIdentifier>;
198
+ CauldronEnchantment: DB.EnumCase<DB.ReferenceIdentifier>;
199
+ ChronicleEnchantment: DB.EnumCase<DB.ReferenceIdentifier>;
200
+ DaggerRitual: DB.EnumCase<DB.ReferenceIdentifier>;
201
+ FoolsHatEnchantment: DB.EnumCase<DB.ReferenceIdentifier>;
202
+ Haubenzauber: DB.EnumCase<DB.ReferenceIdentifier>;
203
+ Hauerkettenzauber: DB.EnumCase<DB.ReferenceIdentifier>;
204
+ InstrumentEnchantment: DB.EnumCase<DB.ReferenceIdentifier>;
205
+ Keulenzauber: DB.EnumCase<DB.ReferenceIdentifier>;
206
+ Krallenkettenzauber: DB.EnumCase<DB.ReferenceIdentifier>;
207
+ Kristallkugelzauber: DB.EnumCase<DB.ReferenceIdentifier>;
208
+ OrbEnchantment: DB.EnumCase<DB.ReferenceIdentifier>;
209
+ RingEnchantment: DB.EnumCase<DB.ReferenceIdentifier>;
210
+ Schweinetrommelzauber: DB.EnumCase<DB.ReferenceIdentifier>;
211
+ SickleRitual: DB.EnumCase<DB.ReferenceIdentifier>;
212
+ SpellSwordEnchantment: DB.EnumCase<DB.ReferenceIdentifier>;
213
+ StaffEnchantment: DB.EnumCase<DB.ReferenceIdentifier>;
214
+ ToyEnchantment: DB.EnumCase<DB.ReferenceIdentifier>;
215
+ Trinkhornzauber: DB.EnumCase<DB.ReferenceIdentifier>;
216
+ WandEnchantment: DB.EnumCase<DB.ReferenceIdentifier>;
217
+ WeaponEnchantment: DB.EnumCase<DB.ReferenceIdentifier>;
218
+ AdvancedCombatSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
219
+ AdvancedKarmaSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
220
+ AdvancedMagicalSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
221
+ AdvancedSkillSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
222
+ AncestorGlyph: DB.EnumCase<DB.ReferenceIdentifier>;
223
+ BlessedTradition: DB.EnumCase<DB.ReferenceIdentifier>;
224
+ BrawlingSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
225
+ CeremonialItemSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
226
+ CombatSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
227
+ CombatStyleSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
228
+ CommandSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
229
+ FamiliarSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
230
+ FatePointSexSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
231
+ FatePointSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
232
+ GeneralSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
233
+ KarmaSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
234
+ LiturgicalStyleSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
235
+ LycantropicGift: DB.EnumCase<DB.ReferenceIdentifier>;
236
+ MagicalSign: DB.EnumCase<DB.ReferenceIdentifier>;
237
+ MagicalSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
238
+ MagicalTradition: DB.EnumCase<DB.ReferenceIdentifier>;
239
+ MagicStyleSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
240
+ PactGift: DB.EnumCase<DB.ReferenceIdentifier>;
241
+ ProtectiveWardingCircleSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
242
+ Sermon: DB.EnumCase<DB.ReferenceIdentifier>;
243
+ SexSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
244
+ SikaryanDrainSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
245
+ SkillStyleSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
246
+ VampiricGift: DB.EnumCase<DB.ReferenceIdentifier>;
247
+ Vision: DB.EnumCase<DB.ReferenceIdentifier>;
248
+ Advantage: DB.EnumCase<DB.ReferenceIdentifier>;
249
+ Disadvantage: DB.EnumCase<DB.ReferenceIdentifier>;
250
+ }, []>>, true>;
251
+ }>, []>>, true>;
252
+ combatTechniques: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"CombatTechniqueSettings", DB.Object<{
253
+ maximumCombatTechniqueRatingBonusEntry: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"ActivatableIdentifier", {
254
+ Adoruzepterzauber: DB.EnumCase<DB.ReferenceIdentifier>;
255
+ ArcaneOrbEnchantment: DB.EnumCase<DB.ReferenceIdentifier>;
256
+ AttireEnchantment: DB.EnumCase<DB.ReferenceIdentifier>;
257
+ Beutelzauber: DB.EnumCase<DB.ReferenceIdentifier>;
258
+ BowlEnchantment: DB.EnumCase<DB.ReferenceIdentifier>;
259
+ CauldronEnchantment: DB.EnumCase<DB.ReferenceIdentifier>;
260
+ ChronicleEnchantment: DB.EnumCase<DB.ReferenceIdentifier>;
261
+ DaggerRitual: DB.EnumCase<DB.ReferenceIdentifier>;
262
+ FoolsHatEnchantment: DB.EnumCase<DB.ReferenceIdentifier>;
263
+ Haubenzauber: DB.EnumCase<DB.ReferenceIdentifier>;
264
+ Hauerkettenzauber: DB.EnumCase<DB.ReferenceIdentifier>;
265
+ InstrumentEnchantment: DB.EnumCase<DB.ReferenceIdentifier>;
266
+ Keulenzauber: DB.EnumCase<DB.ReferenceIdentifier>;
267
+ Krallenkettenzauber: DB.EnumCase<DB.ReferenceIdentifier>;
268
+ Kristallkugelzauber: DB.EnumCase<DB.ReferenceIdentifier>;
269
+ OrbEnchantment: DB.EnumCase<DB.ReferenceIdentifier>;
270
+ RingEnchantment: DB.EnumCase<DB.ReferenceIdentifier>;
271
+ Schweinetrommelzauber: DB.EnumCase<DB.ReferenceIdentifier>;
272
+ SickleRitual: DB.EnumCase<DB.ReferenceIdentifier>;
273
+ SpellSwordEnchantment: DB.EnumCase<DB.ReferenceIdentifier>;
274
+ StaffEnchantment: DB.EnumCase<DB.ReferenceIdentifier>;
275
+ ToyEnchantment: DB.EnumCase<DB.ReferenceIdentifier>;
276
+ Trinkhornzauber: DB.EnumCase<DB.ReferenceIdentifier>;
277
+ WandEnchantment: DB.EnumCase<DB.ReferenceIdentifier>;
278
+ WeaponEnchantment: DB.EnumCase<DB.ReferenceIdentifier>;
279
+ AdvancedCombatSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
280
+ AdvancedKarmaSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
281
+ AdvancedMagicalSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
282
+ AdvancedSkillSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
283
+ AncestorGlyph: DB.EnumCase<DB.ReferenceIdentifier>;
284
+ BlessedTradition: DB.EnumCase<DB.ReferenceIdentifier>;
285
+ BrawlingSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
286
+ CeremonialItemSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
287
+ CombatSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
288
+ CombatStyleSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
289
+ CommandSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
290
+ FamiliarSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
291
+ FatePointSexSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
292
+ FatePointSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
293
+ GeneralSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
294
+ KarmaSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
295
+ LiturgicalStyleSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
296
+ LycantropicGift: DB.EnumCase<DB.ReferenceIdentifier>;
297
+ MagicalSign: DB.EnumCase<DB.ReferenceIdentifier>;
298
+ MagicalSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
299
+ MagicalTradition: DB.EnumCase<DB.ReferenceIdentifier>;
300
+ MagicStyleSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
301
+ PactGift: DB.EnumCase<DB.ReferenceIdentifier>;
302
+ ProtectiveWardingCircleSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
303
+ Sermon: DB.EnumCase<DB.ReferenceIdentifier>;
304
+ SexSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
305
+ SikaryanDrainSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
306
+ SkillStyleSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
307
+ VampiricGift: DB.EnumCase<DB.ReferenceIdentifier>;
308
+ Vision: DB.EnumCase<DB.ReferenceIdentifier>;
309
+ Advantage: DB.EnumCase<DB.ReferenceIdentifier>;
310
+ Disadvantage: DB.EnumCase<DB.ReferenceIdentifier>;
311
+ }, []>>, true>;
312
+ closeCombatTechniqueAttackAttribute: DB.MemberDecl<DB.ReferenceIdentifier, true>;
313
+ }>, []>>, true>;
314
+ spellworks: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"SpellworkSettings", DB.Object<{
315
+ maximumRatingUnlockEntry: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"ActivatableIdentifier", {
316
+ Adoruzepterzauber: DB.EnumCase<DB.ReferenceIdentifier>;
317
+ ArcaneOrbEnchantment: DB.EnumCase<DB.ReferenceIdentifier>;
318
+ AttireEnchantment: DB.EnumCase<DB.ReferenceIdentifier>;
319
+ Beutelzauber: DB.EnumCase<DB.ReferenceIdentifier>;
320
+ BowlEnchantment: DB.EnumCase<DB.ReferenceIdentifier>;
321
+ CauldronEnchantment: DB.EnumCase<DB.ReferenceIdentifier>;
322
+ ChronicleEnchantment: DB.EnumCase<DB.ReferenceIdentifier>;
323
+ DaggerRitual: DB.EnumCase<DB.ReferenceIdentifier>;
324
+ FoolsHatEnchantment: DB.EnumCase<DB.ReferenceIdentifier>;
325
+ Haubenzauber: DB.EnumCase<DB.ReferenceIdentifier>;
326
+ Hauerkettenzauber: DB.EnumCase<DB.ReferenceIdentifier>;
327
+ InstrumentEnchantment: DB.EnumCase<DB.ReferenceIdentifier>;
328
+ Keulenzauber: DB.EnumCase<DB.ReferenceIdentifier>;
329
+ Krallenkettenzauber: DB.EnumCase<DB.ReferenceIdentifier>;
330
+ Kristallkugelzauber: DB.EnumCase<DB.ReferenceIdentifier>;
331
+ OrbEnchantment: DB.EnumCase<DB.ReferenceIdentifier>;
332
+ RingEnchantment: DB.EnumCase<DB.ReferenceIdentifier>;
333
+ Schweinetrommelzauber: DB.EnumCase<DB.ReferenceIdentifier>;
334
+ SickleRitual: DB.EnumCase<DB.ReferenceIdentifier>;
335
+ SpellSwordEnchantment: DB.EnumCase<DB.ReferenceIdentifier>;
336
+ StaffEnchantment: DB.EnumCase<DB.ReferenceIdentifier>;
337
+ ToyEnchantment: DB.EnumCase<DB.ReferenceIdentifier>;
338
+ Trinkhornzauber: DB.EnumCase<DB.ReferenceIdentifier>;
339
+ WandEnchantment: DB.EnumCase<DB.ReferenceIdentifier>;
340
+ WeaponEnchantment: DB.EnumCase<DB.ReferenceIdentifier>;
341
+ AdvancedCombatSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
342
+ AdvancedKarmaSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
343
+ AdvancedMagicalSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
344
+ AdvancedSkillSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
345
+ AncestorGlyph: DB.EnumCase<DB.ReferenceIdentifier>;
346
+ BlessedTradition: DB.EnumCase<DB.ReferenceIdentifier>;
347
+ BrawlingSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
348
+ CeremonialItemSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
349
+ CombatSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
350
+ CombatStyleSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
351
+ CommandSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
352
+ FamiliarSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
353
+ FatePointSexSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
354
+ FatePointSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
355
+ GeneralSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
356
+ KarmaSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
357
+ LiturgicalStyleSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
358
+ LycantropicGift: DB.EnumCase<DB.ReferenceIdentifier>;
359
+ MagicalSign: DB.EnumCase<DB.ReferenceIdentifier>;
360
+ MagicalSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
361
+ MagicalTradition: DB.EnumCase<DB.ReferenceIdentifier>;
362
+ MagicStyleSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
363
+ PactGift: DB.EnumCase<DB.ReferenceIdentifier>;
364
+ ProtectiveWardingCircleSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
365
+ Sermon: DB.EnumCase<DB.ReferenceIdentifier>;
366
+ SexSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
367
+ SikaryanDrainSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
368
+ SkillStyleSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
369
+ VampiricGift: DB.EnumCase<DB.ReferenceIdentifier>;
370
+ Vision: DB.EnumCase<DB.ReferenceIdentifier>;
371
+ Advantage: DB.EnumCase<DB.ReferenceIdentifier>;
372
+ Disadvantage: DB.EnumCase<DB.ReferenceIdentifier>;
373
+ }, []>>, true>;
374
+ enhancementsFocusRule: DB.MemberDecl<DB.ReferenceIdentifier, true>;
375
+ }>, []>>, true>;
376
+ liturgicalChants: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"LiturgicalChantSettings", DB.Object<{
377
+ generalAspectForChurch: DB.MemberDecl<DB.ReferenceIdentifier, true>;
378
+ generalAspectForShamanistic: DB.MemberDecl<DB.ReferenceIdentifier, true>;
379
+ maximumRatingUnlockEntry: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"ActivatableIdentifier", {
380
+ Adoruzepterzauber: DB.EnumCase<DB.ReferenceIdentifier>;
381
+ ArcaneOrbEnchantment: DB.EnumCase<DB.ReferenceIdentifier>;
382
+ AttireEnchantment: DB.EnumCase<DB.ReferenceIdentifier>;
383
+ Beutelzauber: DB.EnumCase<DB.ReferenceIdentifier>;
384
+ BowlEnchantment: DB.EnumCase<DB.ReferenceIdentifier>;
385
+ CauldronEnchantment: DB.EnumCase<DB.ReferenceIdentifier>;
386
+ ChronicleEnchantment: DB.EnumCase<DB.ReferenceIdentifier>;
387
+ DaggerRitual: DB.EnumCase<DB.ReferenceIdentifier>;
388
+ FoolsHatEnchantment: DB.EnumCase<DB.ReferenceIdentifier>;
389
+ Haubenzauber: DB.EnumCase<DB.ReferenceIdentifier>;
390
+ Hauerkettenzauber: DB.EnumCase<DB.ReferenceIdentifier>;
391
+ InstrumentEnchantment: DB.EnumCase<DB.ReferenceIdentifier>;
392
+ Keulenzauber: DB.EnumCase<DB.ReferenceIdentifier>;
393
+ Krallenkettenzauber: DB.EnumCase<DB.ReferenceIdentifier>;
394
+ Kristallkugelzauber: DB.EnumCase<DB.ReferenceIdentifier>;
395
+ OrbEnchantment: DB.EnumCase<DB.ReferenceIdentifier>;
396
+ RingEnchantment: DB.EnumCase<DB.ReferenceIdentifier>;
397
+ Schweinetrommelzauber: DB.EnumCase<DB.ReferenceIdentifier>;
398
+ SickleRitual: DB.EnumCase<DB.ReferenceIdentifier>;
399
+ SpellSwordEnchantment: DB.EnumCase<DB.ReferenceIdentifier>;
400
+ StaffEnchantment: DB.EnumCase<DB.ReferenceIdentifier>;
401
+ ToyEnchantment: DB.EnumCase<DB.ReferenceIdentifier>;
402
+ Trinkhornzauber: DB.EnumCase<DB.ReferenceIdentifier>;
403
+ WandEnchantment: DB.EnumCase<DB.ReferenceIdentifier>;
404
+ WeaponEnchantment: DB.EnumCase<DB.ReferenceIdentifier>;
405
+ AdvancedCombatSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
406
+ AdvancedKarmaSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
407
+ AdvancedMagicalSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
408
+ AdvancedSkillSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
409
+ AncestorGlyph: DB.EnumCase<DB.ReferenceIdentifier>;
410
+ BlessedTradition: DB.EnumCase<DB.ReferenceIdentifier>;
411
+ BrawlingSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
412
+ CeremonialItemSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
413
+ CombatSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
414
+ CombatStyleSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
415
+ CommandSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
416
+ FamiliarSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
417
+ FatePointSexSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
418
+ FatePointSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
419
+ GeneralSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
420
+ KarmaSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
421
+ LiturgicalStyleSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
422
+ LycantropicGift: DB.EnumCase<DB.ReferenceIdentifier>;
423
+ MagicalSign: DB.EnumCase<DB.ReferenceIdentifier>;
424
+ MagicalSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
425
+ MagicalTradition: DB.EnumCase<DB.ReferenceIdentifier>;
426
+ MagicStyleSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
427
+ PactGift: DB.EnumCase<DB.ReferenceIdentifier>;
428
+ ProtectiveWardingCircleSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
429
+ Sermon: DB.EnumCase<DB.ReferenceIdentifier>;
430
+ SexSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
431
+ SikaryanDrainSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
432
+ SkillStyleSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
433
+ VampiricGift: DB.EnumCase<DB.ReferenceIdentifier>;
434
+ Vision: DB.EnumCase<DB.ReferenceIdentifier>;
435
+ Advantage: DB.EnumCase<DB.ReferenceIdentifier>;
436
+ Disadvantage: DB.EnumCase<DB.ReferenceIdentifier>;
437
+ }, []>>, true>;
438
+ enhancementsFocusRule: DB.MemberDecl<DB.ReferenceIdentifier, true>;
439
+ }>, []>>, true>;
312
440
  }>;
@@ -1,5 +1,5 @@
1
1
  import * as DB from "tsondb/schema/dsl";
2
- import { AdvantageIdentifier, DerivedCharacteristicIdentifier, ExperienceLevelIdentifier, FocusRuleIdentifier, PublicationIdentifier, } from "./_Identifier.js";
2
+ import { AdvantageIdentifier, AspectIdentifier, AttributeIdentifier, DerivedCharacteristicIdentifier, ExperienceLevelIdentifier, FocusRuleIdentifier, PublicationIdentifier, } from "./_Identifier.js";
3
3
  import { ActivatableIdentifier, SpecialAbilityIdentifier } from "./_IdentifierGroup.js";
4
4
  export const Settings = DB.SingletonEntity(import.meta.url, {
5
5
  name: "Settings",
@@ -27,21 +27,29 @@ export const Settings = DB.SingletonEntity(import.meta.url, {
27
27
  comment: StyleSpecialAbilitySettings.comment,
28
28
  type: DB.IncludeIdentifier(StyleSpecialAbilitySettings),
29
29
  }),
30
- enhancements: DB.Required({
31
- comment: EnhancementsSettings.comment,
32
- type: DB.IncludeIdentifier(EnhancementsSettings),
30
+ sexualCharacteristicsPublication: DB.Required({
31
+ comment: "The publication that uses sexual characteristics. This makes sexual characteristic selection available for characters outside of male and female sex presets.",
32
+ type: PublicationIdentifier(),
33
33
  }),
34
34
  extendedBookDescriptionPublication: DB.Required({
35
35
  comment: "The publication that extends the description of books with additional information.",
36
36
  type: PublicationIdentifier(),
37
37
  }),
38
- maximumSkillRatingBonusEntry: DB.Required({
39
- comment: "The entry that grants a bonus of 1 towards the maximum skill rating per selection.",
40
- type: DB.IncludeIdentifier(ActivatableIdentifier),
38
+ skills: DB.Required({
39
+ comment: SkillSettings.comment,
40
+ type: DB.IncludeIdentifier(SkillSettings),
41
41
  }),
42
- maximumCombatTechniqueRatingBonusEntry: DB.Required({
43
- comment: "The entry that grants a bonus of 1 towards the maximum skill rating per selection.",
44
- type: DB.IncludeIdentifier(ActivatableIdentifier),
42
+ combatTechniques: DB.Required({
43
+ comment: CombatTechniqueSettings.comment,
44
+ type: DB.IncludeIdentifier(CombatTechniqueSettings),
45
+ }),
46
+ spellworks: DB.Required({
47
+ comment: SpellworkSettings.comment,
48
+ type: DB.IncludeIdentifier(SpellworkSettings),
49
+ }),
50
+ liturgicalChants: DB.Required({
51
+ comment: LiturgicalChantSettings.comment,
52
+ type: DB.IncludeIdentifier(LiturgicalChantSettings),
45
53
  }),
46
54
  }),
47
55
  });
@@ -107,16 +115,58 @@ const StyleSpecialAbilitySettings = DB.TypeAlias(import.meta.url, {
107
115
  }),
108
116
  }),
109
117
  });
110
- const EnhancementsSettings = DB.TypeAlias(import.meta.url, {
111
- name: "EnhancementsSettings",
112
- comment: "Spell and Liturgical Chant Enhancements are part of focus rules. This type defines which focus rule must be enabled in order to use an enhancement. Essentially, this is a default prerequisite they must meet, but manually inserting them with every enhancement is a lot of work and error-prone. Therefore, in order to use an enhancement, prerequisites for the respective focus rule must be generated for every entry.",
118
+ const SkillSettings = DB.TypeAlias(import.meta.url, {
119
+ name: "SkillSettings",
113
120
  type: () => DB.Object({
114
- spell: DB.Required({
115
- comment: "The focus rule for spell enhancements.",
121
+ maximumSkillRatingBonusEntry: DB.Required({
122
+ comment: "The entry that grants a bonus of 1 towards the maximum skill rating per selection.",
123
+ type: DB.IncludeIdentifier(ActivatableIdentifier),
124
+ }),
125
+ }),
126
+ });
127
+ const CombatTechniqueSettings = DB.TypeAlias(import.meta.url, {
128
+ name: "CombatTechniqueSettings",
129
+ type: () => DB.Object({
130
+ maximumCombatTechniqueRatingBonusEntry: DB.Required({
131
+ comment: "The entry that grants a bonus of 1 towards the maximum skill rating per selection.",
132
+ type: DB.IncludeIdentifier(ActivatableIdentifier),
133
+ }),
134
+ closeCombatTechniqueAttackAttribute: DB.Required({
135
+ comment: "The attribute that increases the attack value of a close combat technique.",
136
+ type: AttributeIdentifier(),
137
+ }),
138
+ }),
139
+ });
140
+ const SpellworkSettings = DB.TypeAlias(import.meta.url, {
141
+ name: "SpellworkSettings",
142
+ type: () => DB.Object({
143
+ maximumRatingUnlockEntry: DB.Required({
144
+ comment: "The entry that removes the maximum rating of 14 from spellworks for selected properties. It must provide the property as a selected option.",
145
+ type: DB.IncludeIdentifier(ActivatableIdentifier),
146
+ }),
147
+ enhancementsFocusRule: DB.Required({
148
+ comment: "Spell Enhancements are part of focus rules. This type defines which focus rule must be enabled in order to use an enhancement. Essentially, this is a default prerequisite they must meet, but manually inserting them with every enhancement is a lot of work and error-prone. Therefore, in order to use an enhancement, prerequisites for the focus rule must be generated for every entry.",
116
149
  type: FocusRuleIdentifier(),
117
150
  }),
118
- liturgicalChant: DB.Required({
119
- comment: "The focus rule for liturgical chant enhancements.",
151
+ }),
152
+ });
153
+ const LiturgicalChantSettings = DB.TypeAlias(import.meta.url, {
154
+ name: "LiturgicalChantSettings",
155
+ type: () => DB.Object({
156
+ generalAspectForChurch: DB.Required({
157
+ comment: "The general aspect for church traditions.",
158
+ type: AspectIdentifier(),
159
+ }),
160
+ generalAspectForShamanistic: DB.Required({
161
+ comment: "The general aspect for shamanistic traditions.",
162
+ type: AspectIdentifier(),
163
+ }),
164
+ maximumRatingUnlockEntry: DB.Required({
165
+ comment: "The entry that removes the maximum rating of 14 from liturgical chants for selected aspects. It must provide the aspect as a selected option.",
166
+ type: DB.IncludeIdentifier(ActivatableIdentifier),
167
+ }),
168
+ enhancementsFocusRule: DB.Required({
169
+ comment: "Liturgical Chant Enhancements are part of focus rules. This type defines which focus rule must be enabled in order to use an enhancement. Essentially, this is a default prerequisite they must meet, but manually inserting them with every enhancement is a lot of work and error-prone. Therefore, in order to use an enhancement, prerequisites for the focus rule must be generated for every entry.",
120
170
  type: FocusRuleIdentifier(),
121
171
  }),
122
172
  }),
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@optolith/database-schema",
3
- "version": "0.113.1",
3
+ "version": "0.115.0",
4
4
  "description": "Definitions and utilities for the flat-file database of Optolith, a character creation tool for the Pen and Paper RPG “The Dark Eye 5”, and its external integrations into other software.",
5
5
  "keywords": [
6
6
  "tde",
@@ -39,7 +39,7 @@
39
39
  "license": "MPL-2.0",
40
40
  "dependencies": {
41
41
  "@elyukai/utils": "^0.3.6",
42
- "tsondb": "^0.23.2"
42
+ "tsondb": "^0.23.4"
43
43
  },
44
44
  "devDependencies": {
45
45
  "@elyukai/oxc-config": "^0.1.0",