@optolith/database-schema 0.74.0 → 0.76.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.
Files changed (110) hide show
  1. package/CHANGELOG.md +30 -0
  2. package/gen/types.d.ts +495 -94
  3. package/lib/cache/activatableSelectOptions.js +74 -33
  4. package/lib/cache/index.d.ts +1 -10
  5. package/lib/cache/index.js +10 -6
  6. package/lib/cache/internal.d.ts +2 -2
  7. package/lib/cache/magicalAndBlessedAdvantagesAndDisadvantages.js +14 -14
  8. package/lib/cache/tradeSecrets.js +3 -3
  9. package/lib/main.d.ts +3 -1
  10. package/lib/main.js +1 -0
  11. package/lib/types/Advantage.d.ts +123 -2
  12. package/lib/types/AnimalDisease.d.ts +6 -3
  13. package/lib/types/Ceremony.d.ts +13 -4
  14. package/lib/types/Disadvantage.d.ts +123 -2
  15. package/lib/types/Disease.d.ts +6 -3
  16. package/lib/types/LiturgicalChant.d.ts +13 -4
  17. package/lib/types/Locale.d.ts +4 -2
  18. package/lib/types/Locale.js +4 -2
  19. package/lib/types/Profession.d.ts +7 -0
  20. package/lib/types/Profession.js +8 -1
  21. package/lib/types/Ritual.d.ts +13 -4
  22. package/lib/types/Settings.d.ts +129 -0
  23. package/lib/types/Settings.js +83 -0
  24. package/lib/types/Spell.d.ts +13 -4
  25. package/lib/types/_ActivatableAdventurePointsValue.d.ts +2 -0
  26. package/lib/types/_ActivatableMagical.d.ts +2 -0
  27. package/lib/types/_ActivatableMagical.js +2 -0
  28. package/lib/types/_ActivatableNonMundane.d.ts +5 -0
  29. package/lib/types/_ActivatableSelectOptionCategory.d.ts +240 -4
  30. package/lib/types/_ActivatableSelectOptionCategory.js +19 -7
  31. package/lib/types/_ActivatableSelectOptions.d.ts +120 -2
  32. package/lib/types/_ActivatableSkill.d.ts +10 -0
  33. package/lib/types/_ActivatableSkillCost.d.ts +5 -0
  34. package/lib/types/_ActivatableSkillParameterMap.d.ts +2 -0
  35. package/lib/types/_ActivatableSkillParameterMap.js +13 -3
  36. package/lib/types/_DiseasePoison.d.ts +12 -6
  37. package/lib/types/_DiseasePoison.js +40 -5
  38. package/lib/types/_Identifier.d.ts +1 -0
  39. package/lib/types/_Identifier.js +2 -1
  40. package/lib/types/_SkillCheck.d.ts +9 -4
  41. package/lib/types/_SkillCheck.js +51 -5
  42. package/lib/types/equipment/item/Poison.d.ts +6 -3
  43. package/lib/types/index.d.ts +1 -0
  44. package/lib/types/index.js +1 -0
  45. package/lib/types/magicalActions/AnimistPower.d.ts +9 -4
  46. package/lib/types/magicalActions/Bannzeichen.d.ts +1 -0
  47. package/lib/types/magicalActions/Curse.d.ts +9 -4
  48. package/lib/types/magicalActions/DominationRitual.d.ts +9 -4
  49. package/lib/types/magicalActions/ElvenMagicalSong.d.ts +9 -4
  50. package/lib/types/magicalActions/GeodeRitual.d.ts +1 -0
  51. package/lib/types/magicalActions/GoblinRitual.d.ts +9 -4
  52. package/lib/types/magicalActions/JesterTrick.d.ts +9 -4
  53. package/lib/types/magicalActions/MagicalMelody.d.ts +9 -4
  54. package/lib/types/magicalActions/ZibiljaRitual.d.ts +11 -4
  55. package/lib/types/specialAbility/AdvancedCombatSpecialAbility.d.ts +121 -2
  56. package/lib/types/specialAbility/AdvancedKarmaSpecialAbility.d.ts +121 -2
  57. package/lib/types/specialAbility/AdvancedMagicalSpecialAbility.d.ts +121 -2
  58. package/lib/types/specialAbility/AdvancedSkillSpecialAbility.d.ts +121 -2
  59. package/lib/types/specialAbility/AncestorGlyph.d.ts +121 -2
  60. package/lib/types/specialAbility/BlessedTradition.d.ts +121 -2
  61. package/lib/types/specialAbility/BrawlingSpecialAbility.d.ts +121 -2
  62. package/lib/types/specialAbility/CeremonialItemSpecialAbility.d.ts +121 -2
  63. package/lib/types/specialAbility/CombatSpecialAbility.d.ts +121 -2
  64. package/lib/types/specialAbility/CombatStyleSpecialAbility.d.ts +121 -2
  65. package/lib/types/specialAbility/CommandSpecialAbility.d.ts +121 -2
  66. package/lib/types/specialAbility/FamiliarSpecialAbility.d.ts +121 -2
  67. package/lib/types/specialAbility/FatePointSexSpecialAbility.d.ts +121 -2
  68. package/lib/types/specialAbility/FatePointSpecialAbility.d.ts +121 -2
  69. package/lib/types/specialAbility/GeneralSpecialAbility.d.ts +121 -2
  70. package/lib/types/specialAbility/KarmaSpecialAbility.d.ts +121 -2
  71. package/lib/types/specialAbility/LiturgicalStyleSpecialAbility.d.ts +121 -2
  72. package/lib/types/specialAbility/LycantropicGift.d.ts +121 -2
  73. package/lib/types/specialAbility/MagicStyleSpecialAbility.d.ts +121 -2
  74. package/lib/types/specialAbility/MagicalSign.d.ts +1 -0
  75. package/lib/types/specialAbility/MagicalSpecialAbility.d.ts +121 -2
  76. package/lib/types/specialAbility/MagicalTradition.d.ts +121 -2
  77. package/lib/types/specialAbility/PactGift.d.ts +121 -2
  78. package/lib/types/specialAbility/ProtectiveWardingCircleSpecialAbility.d.ts +121 -2
  79. package/lib/types/specialAbility/Sermon.d.ts +121 -2
  80. package/lib/types/specialAbility/SexSpecialAbility.d.ts +121 -2
  81. package/lib/types/specialAbility/SikaryanDrainSpecialAbility.d.ts +121 -2
  82. package/lib/types/specialAbility/SkillStyleSpecialAbility.d.ts +121 -2
  83. package/lib/types/specialAbility/VampiricGift.d.ts +121 -2
  84. package/lib/types/specialAbility/Vision.d.ts +121 -2
  85. package/lib/types/specialAbility/sub/TradeSecret.d.ts +121 -2
  86. package/lib/types/traditionArtifacts/ArcaneOrbEnchantment.d.ts +124 -2
  87. package/lib/types/traditionArtifacts/AttireEnchantment.d.ts +124 -2
  88. package/lib/types/traditionArtifacts/Beutelzauber.d.ts +124 -2
  89. package/lib/types/traditionArtifacts/BowlEnchantment.d.ts +124 -2
  90. package/lib/types/traditionArtifacts/CauldronEnchantment.d.ts +124 -2
  91. package/lib/types/traditionArtifacts/ChronicleEnchantment.d.ts +124 -2
  92. package/lib/types/traditionArtifacts/DaggerRitual.d.ts +124 -2
  93. package/lib/types/traditionArtifacts/FoolsHatEnchantment.d.ts +124 -2
  94. package/lib/types/traditionArtifacts/Haubenzauber.d.ts +124 -2
  95. package/lib/types/traditionArtifacts/Hauerkettenzauber.d.ts +4 -0
  96. package/lib/types/traditionArtifacts/InstrumentEnchantment.d.ts +124 -2
  97. package/lib/types/traditionArtifacts/Keulenzauber.d.ts +4 -0
  98. package/lib/types/traditionArtifacts/Krallenkettenzauber.d.ts +124 -2
  99. package/lib/types/traditionArtifacts/Kristallkugelzauber.d.ts +124 -2
  100. package/lib/types/traditionArtifacts/OrbEnchantment.d.ts +124 -2
  101. package/lib/types/traditionArtifacts/RingEnchantment.d.ts +124 -2
  102. package/lib/types/traditionArtifacts/Schweinetrommelzauber.d.ts +4 -0
  103. package/lib/types/traditionArtifacts/SickleRitual.d.ts +124 -2
  104. package/lib/types/traditionArtifacts/SpellSwordEnchantment.d.ts +124 -2
  105. package/lib/types/traditionArtifacts/StaffEnchantment.d.ts +124 -2
  106. package/lib/types/traditionArtifacts/ToyEnchantment.d.ts +124 -2
  107. package/lib/types/traditionArtifacts/Trinkhornzauber.d.ts +124 -2
  108. package/lib/types/traditionArtifacts/WandEnchantment.d.ts +123 -2
  109. package/lib/types/traditionArtifacts/WeaponEnchantment.d.ts +124 -2
  110. package/package.json +6 -3
@@ -15,19 +15,137 @@ export declare const select_options: DB.MemberDecl<DB.IncludeIdentifier<[], DB.T
15
15
  HomunculusTypes: DB.EnumCase<null>;
16
16
  BlessedTraditions: DB.EnumCase<DB.IncludeIdentifier<[], DB.TypeAlias<"BlessedTraditionsSelectOptionCategory", DB.Object<{
17
17
  require_principles: DB.MemberDecl<DB.Boolean, false>;
18
+ onlyType: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"BlessedTraditionTypeForSelectOptionCategory", {
19
+ Church: DB.EnumCase<null>;
20
+ Shamanistic: DB.EnumCase<null>;
21
+ }, []>>, false>;
18
22
  }>, []>>>;
19
23
  Elements: DB.EnumCase<DB.IncludeIdentifier<[], DB.TypeAlias<"ElementsSelectOptionCategory", DB.Object<{
20
24
  specific: DB.MemberDecl<DB.Array<DB.ReferenceIdentifier>, false>;
21
25
  }>, []>>>;
22
26
  Properties: DB.EnumCase<DB.IncludeIdentifier<[], DB.TypeAlias<"PropertiesSelectOptionCategory", DB.Object<{
23
- require_knowledge: DB.MemberDecl<DB.Boolean, false>;
27
+ requireActiveSelectionOnEntry: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"ActivatableIdentifier", {
28
+ ArcaneOrbEnchantment: DB.EnumCase<DB.ReferenceIdentifier>;
29
+ AttireEnchantment: DB.EnumCase<DB.ReferenceIdentifier>;
30
+ Beutelzauber: DB.EnumCase<DB.ReferenceIdentifier>;
31
+ BowlEnchantment: DB.EnumCase<DB.ReferenceIdentifier>;
32
+ CauldronEnchantment: DB.EnumCase<DB.ReferenceIdentifier>;
33
+ ChronicleEnchantment: DB.EnumCase<DB.ReferenceIdentifier>;
34
+ DaggerRitual: DB.EnumCase<DB.ReferenceIdentifier>;
35
+ FoolsHatEnchantment: DB.EnumCase<DB.ReferenceIdentifier>;
36
+ Haubenzauber: DB.EnumCase<DB.ReferenceIdentifier>;
37
+ Hauerkettenzauber: DB.EnumCase<DB.ReferenceIdentifier>;
38
+ InstrumentEnchantment: DB.EnumCase<DB.ReferenceIdentifier>;
39
+ Keulenzauber: DB.EnumCase<DB.ReferenceIdentifier>;
40
+ Krallenkettenzauber: DB.EnumCase<DB.ReferenceIdentifier>;
41
+ Kristallkugelzauber: DB.EnumCase<DB.ReferenceIdentifier>;
42
+ OrbEnchantment: DB.EnumCase<DB.ReferenceIdentifier>;
43
+ RingEnchantment: DB.EnumCase<DB.ReferenceIdentifier>;
44
+ Schweinetrommelzauber: DB.EnumCase<DB.ReferenceIdentifier>;
45
+ SickleRitual: DB.EnumCase<DB.ReferenceIdentifier>;
46
+ SpellSwordEnchantment: DB.EnumCase<DB.ReferenceIdentifier>;
47
+ StaffEnchantment: DB.EnumCase<DB.ReferenceIdentifier>;
48
+ ToyEnchantment: DB.EnumCase<DB.ReferenceIdentifier>;
49
+ Trinkhornzauber: DB.EnumCase<DB.ReferenceIdentifier>;
50
+ WandEnchantment: DB.EnumCase<DB.ReferenceIdentifier>;
51
+ WeaponEnchantment: DB.EnumCase<DB.ReferenceIdentifier>;
52
+ AdvancedCombatSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
53
+ AdvancedKarmaSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
54
+ AdvancedMagicalSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
55
+ AdvancedSkillSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
56
+ AncestorGlyph: DB.EnumCase<DB.ReferenceIdentifier>;
57
+ BlessedTradition: DB.EnumCase<DB.ReferenceIdentifier>;
58
+ BrawlingSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
59
+ CeremonialItemSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
60
+ CombatSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
61
+ CombatStyleSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
62
+ CommandSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
63
+ FamiliarSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
64
+ FatePointSexSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
65
+ FatePointSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
66
+ GeneralSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
67
+ KarmaSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
68
+ LiturgicalStyleSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
69
+ LycantropicGift: DB.EnumCase<DB.ReferenceIdentifier>;
70
+ MagicalSign: DB.EnumCase<DB.ReferenceIdentifier>;
71
+ MagicalSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
72
+ MagicalTradition: DB.EnumCase<DB.ReferenceIdentifier>;
73
+ MagicStyleSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
74
+ PactGift: DB.EnumCase<DB.ReferenceIdentifier>;
75
+ ProtectiveWardingCircleSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
76
+ Sermon: DB.EnumCase<DB.ReferenceIdentifier>;
77
+ SexSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
78
+ SikaryanDrainSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
79
+ SkillStyleSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
80
+ VampiricGift: DB.EnumCase<DB.ReferenceIdentifier>;
81
+ Vision: DB.EnumCase<DB.ReferenceIdentifier>;
82
+ Advantage: DB.EnumCase<DB.ReferenceIdentifier>;
83
+ Disadvantage: DB.EnumCase<DB.ReferenceIdentifier>;
84
+ }, []>>, false>;
24
85
  require_minimum_spellworks_on: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"RequiredMinimumSkillsToBeOnSkillRating", DB.Object<{
25
86
  number: DB.MemberDecl<DB.Integer, true>;
26
87
  rating: DB.MemberDecl<DB.Integer, true>;
27
88
  }>, []>>, false>;
28
89
  }>, []>>>;
29
90
  Aspects: DB.EnumCase<DB.IncludeIdentifier<[], DB.TypeAlias<"AspectSelectOptionCategory", DB.Object<{
30
- require_knowledge: DB.MemberDecl<DB.Boolean, false>;
91
+ requireActiveSelectionOnEntry: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"ActivatableIdentifier", {
92
+ ArcaneOrbEnchantment: DB.EnumCase<DB.ReferenceIdentifier>;
93
+ AttireEnchantment: DB.EnumCase<DB.ReferenceIdentifier>;
94
+ Beutelzauber: DB.EnumCase<DB.ReferenceIdentifier>;
95
+ BowlEnchantment: DB.EnumCase<DB.ReferenceIdentifier>;
96
+ CauldronEnchantment: DB.EnumCase<DB.ReferenceIdentifier>;
97
+ ChronicleEnchantment: DB.EnumCase<DB.ReferenceIdentifier>;
98
+ DaggerRitual: DB.EnumCase<DB.ReferenceIdentifier>;
99
+ FoolsHatEnchantment: DB.EnumCase<DB.ReferenceIdentifier>;
100
+ Haubenzauber: DB.EnumCase<DB.ReferenceIdentifier>;
101
+ Hauerkettenzauber: DB.EnumCase<DB.ReferenceIdentifier>;
102
+ InstrumentEnchantment: DB.EnumCase<DB.ReferenceIdentifier>;
103
+ Keulenzauber: DB.EnumCase<DB.ReferenceIdentifier>;
104
+ Krallenkettenzauber: DB.EnumCase<DB.ReferenceIdentifier>;
105
+ Kristallkugelzauber: DB.EnumCase<DB.ReferenceIdentifier>;
106
+ OrbEnchantment: DB.EnumCase<DB.ReferenceIdentifier>;
107
+ RingEnchantment: DB.EnumCase<DB.ReferenceIdentifier>;
108
+ Schweinetrommelzauber: DB.EnumCase<DB.ReferenceIdentifier>;
109
+ SickleRitual: DB.EnumCase<DB.ReferenceIdentifier>;
110
+ SpellSwordEnchantment: DB.EnumCase<DB.ReferenceIdentifier>;
111
+ StaffEnchantment: DB.EnumCase<DB.ReferenceIdentifier>;
112
+ ToyEnchantment: DB.EnumCase<DB.ReferenceIdentifier>;
113
+ Trinkhornzauber: DB.EnumCase<DB.ReferenceIdentifier>;
114
+ WandEnchantment: DB.EnumCase<DB.ReferenceIdentifier>;
115
+ WeaponEnchantment: DB.EnumCase<DB.ReferenceIdentifier>;
116
+ AdvancedCombatSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
117
+ AdvancedKarmaSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
118
+ AdvancedMagicalSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
119
+ AdvancedSkillSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
120
+ AncestorGlyph: DB.EnumCase<DB.ReferenceIdentifier>;
121
+ BlessedTradition: DB.EnumCase<DB.ReferenceIdentifier>;
122
+ BrawlingSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
123
+ CeremonialItemSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
124
+ CombatSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
125
+ CombatStyleSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
126
+ CommandSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
127
+ FamiliarSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
128
+ FatePointSexSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
129
+ FatePointSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
130
+ GeneralSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
131
+ KarmaSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
132
+ LiturgicalStyleSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
133
+ LycantropicGift: DB.EnumCase<DB.ReferenceIdentifier>;
134
+ MagicalSign: DB.EnumCase<DB.ReferenceIdentifier>;
135
+ MagicalSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
136
+ MagicalTradition: DB.EnumCase<DB.ReferenceIdentifier>;
137
+ MagicStyleSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
138
+ PactGift: DB.EnumCase<DB.ReferenceIdentifier>;
139
+ ProtectiveWardingCircleSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
140
+ Sermon: DB.EnumCase<DB.ReferenceIdentifier>;
141
+ SexSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
142
+ SikaryanDrainSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
143
+ SkillStyleSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
144
+ VampiricGift: DB.EnumCase<DB.ReferenceIdentifier>;
145
+ Vision: DB.EnumCase<DB.ReferenceIdentifier>;
146
+ Advantage: DB.EnumCase<DB.ReferenceIdentifier>;
147
+ Disadvantage: DB.EnumCase<DB.ReferenceIdentifier>;
148
+ }, []>>, false>;
31
149
  use_master_of_suffix_as_name: DB.MemberDecl<DB.Boolean, false>;
32
150
  require_minimum_liturgies_on: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"RequiredMinimumSkillsToBeOnSkillRating", DB.Object<{
33
151
  number: DB.MemberDecl<DB.Integer, true>;
@@ -133,6 +133,7 @@ export declare const OneTimePerformanceParameters: DB.TypeAlias<"OneTimePerforma
133
133
  style: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"ValueMapStyle", {
134
134
  Compressed: DB.EnumCase<null>;
135
135
  Verbose: DB.EnumCase<null>;
136
+ Grouped: DB.EnumCase<null>;
136
137
  }, []>>, true>;
137
138
  translations: DB.MemberDecl<DB.NestedEntityMap<"ValueMapTranslation", {
138
139
  listPrefix: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"ResponsiveTextOptional", DB.Object<{
@@ -156,6 +157,7 @@ export declare const OneTimePerformanceParameters: DB.TypeAlias<"OneTimePerforma
156
157
  style: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"ValueMapStyle", {
157
158
  Compressed: DB.EnumCase<null>;
158
159
  Verbose: DB.EnumCase<null>;
160
+ Grouped: DB.EnumCase<null>;
159
161
  }, []>>, true>;
160
162
  translations: DB.MemberDecl<DB.NestedEntityMap<"ValueMapTranslation", {
161
163
  listPrefix: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"ResponsiveTextOptional", DB.Object<{
@@ -424,6 +426,7 @@ export declare const FastPerformanceParameters: DB.Enum<"FastPerformanceParamete
424
426
  style: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"ValueMapStyle", {
425
427
  Compressed: DB.EnumCase<null>;
426
428
  Verbose: DB.EnumCase<null>;
429
+ Grouped: DB.EnumCase<null>;
427
430
  }, []>>, true>;
428
431
  translations: DB.MemberDecl<DB.NestedEntityMap<"ValueMapTranslation", {
429
432
  listPrefix: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"ResponsiveTextOptional", DB.Object<{
@@ -447,6 +450,7 @@ export declare const FastPerformanceParameters: DB.Enum<"FastPerformanceParamete
447
450
  style: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"ValueMapStyle", {
448
451
  Compressed: DB.EnumCase<null>;
449
452
  Verbose: DB.EnumCase<null>;
453
+ Grouped: DB.EnumCase<null>;
450
454
  }, []>>, true>;
451
455
  translations: DB.MemberDecl<DB.NestedEntityMap<"ValueMapTranslation", {
452
456
  listPrefix: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"ResponsiveTextOptional", DB.Object<{
@@ -664,6 +668,7 @@ export declare const FastPerformanceParameters: DB.Enum<"FastPerformanceParamete
664
668
  style: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"ValueMapStyle", {
665
669
  Compressed: DB.EnumCase<null>;
666
670
  Verbose: DB.EnumCase<null>;
671
+ Grouped: DB.EnumCase<null>;
667
672
  }, []>>, true>;
668
673
  translations: DB.MemberDecl<DB.NestedEntityMap<"ValueMapTranslation", {
669
674
  listPrefix: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"ResponsiveTextOptional", DB.Object<{
@@ -713,6 +718,7 @@ export declare const FastPerformanceParameters: DB.Enum<"FastPerformanceParamete
713
718
  style: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"ValueMapStyle", {
714
719
  Compressed: DB.EnumCase<null>;
715
720
  Verbose: DB.EnumCase<null>;
721
+ Grouped: DB.EnumCase<null>;
716
722
  }, []>>, true>;
717
723
  translations: DB.MemberDecl<DB.NestedEntityMap<"ValueMapTranslation", {
718
724
  listPrefix: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"ResponsiveTextOptional", DB.Object<{
@@ -951,6 +957,7 @@ export declare const SlowPerformanceParameters: DB.Enum<"SlowPerformanceParamete
951
957
  style: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"ValueMapStyle", {
952
958
  Compressed: DB.EnumCase<null>;
953
959
  Verbose: DB.EnumCase<null>;
960
+ Grouped: DB.EnumCase<null>;
954
961
  }, []>>, true>;
955
962
  translations: DB.MemberDecl<DB.NestedEntityMap<"ValueMapTranslation", {
956
963
  listPrefix: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"ResponsiveTextOptional", DB.Object<{
@@ -974,6 +981,7 @@ export declare const SlowPerformanceParameters: DB.Enum<"SlowPerformanceParamete
974
981
  style: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"ValueMapStyle", {
975
982
  Compressed: DB.EnumCase<null>;
976
983
  Verbose: DB.EnumCase<null>;
984
+ Grouped: DB.EnumCase<null>;
977
985
  }, []>>, true>;
978
986
  translations: DB.MemberDecl<DB.NestedEntityMap<"ValueMapTranslation", {
979
987
  listPrefix: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"ResponsiveTextOptional", DB.Object<{
@@ -1191,6 +1199,7 @@ export declare const SlowPerformanceParameters: DB.Enum<"SlowPerformanceParamete
1191
1199
  style: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"ValueMapStyle", {
1192
1200
  Compressed: DB.EnumCase<null>;
1193
1201
  Verbose: DB.EnumCase<null>;
1202
+ Grouped: DB.EnumCase<null>;
1194
1203
  }, []>>, true>;
1195
1204
  translations: DB.MemberDecl<DB.NestedEntityMap<"ValueMapTranslation", {
1196
1205
  listPrefix: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"ResponsiveTextOptional", DB.Object<{
@@ -1240,6 +1249,7 @@ export declare const SlowPerformanceParameters: DB.Enum<"SlowPerformanceParamete
1240
1249
  style: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"ValueMapStyle", {
1241
1250
  Compressed: DB.EnumCase<null>;
1242
1251
  Verbose: DB.EnumCase<null>;
1252
+ Grouped: DB.EnumCase<null>;
1243
1253
  }, []>>, true>;
1244
1254
  translations: DB.MemberDecl<DB.NestedEntityMap<"ValueMapTranslation", {
1245
1255
  listPrefix: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"ResponsiveTextOptional", DB.Object<{
@@ -127,6 +127,7 @@ export declare const OneTimeCost: DB.Enum<"OneTimeCost", {
127
127
  style: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"ValueMapStyle", {
128
128
  Compressed: DB.EnumCase<null>;
129
129
  Verbose: DB.EnumCase<null>;
130
+ Grouped: DB.EnumCase<null>;
130
131
  }, []>>, true>;
131
132
  translations: DB.MemberDecl<DB.NestedEntityMap<"ValueMapTranslation", {
132
133
  listPrefix: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"ResponsiveTextOptional", DB.Object<{
@@ -150,6 +151,7 @@ export declare const OneTimeCost: DB.Enum<"OneTimeCost", {
150
151
  style: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"ValueMapStyle", {
151
152
  Compressed: DB.EnumCase<null>;
152
153
  Verbose: DB.EnumCase<null>;
154
+ Grouped: DB.EnumCase<null>;
153
155
  }, []>>, true>;
154
156
  translations: DB.MemberDecl<DB.NestedEntityMap<"ValueMapTranslation", {
155
157
  listPrefix: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"ResponsiveTextOptional", DB.Object<{
@@ -284,6 +286,7 @@ export declare const SustainedCost: DB.Enum<"SustainedCost", {
284
286
  style: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"ValueMapStyle", {
285
287
  Compressed: DB.EnumCase<null>;
286
288
  Verbose: DB.EnumCase<null>;
289
+ Grouped: DB.EnumCase<null>;
287
290
  }, []>>, true>;
288
291
  translations: DB.MemberDecl<DB.NestedEntityMap<"ValueMapTranslation", {
289
292
  listPrefix: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"ResponsiveTextOptional", DB.Object<{
@@ -333,6 +336,7 @@ export declare const SustainedCost: DB.Enum<"SustainedCost", {
333
336
  style: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"ValueMapStyle", {
334
337
  Compressed: DB.EnumCase<null>;
335
338
  Verbose: DB.EnumCase<null>;
339
+ Grouped: DB.EnumCase<null>;
336
340
  }, []>>, true>;
337
341
  translations: DB.MemberDecl<DB.NestedEntityMap<"ValueMapTranslation", {
338
342
  listPrefix: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"ResponsiveTextOptional", DB.Object<{
@@ -425,6 +429,7 @@ export declare const StandaloneCostMap: DB.TypeAlias<"StandaloneCostMap", DB.Inc
425
429
  style: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"ValueMapStyle", {
426
430
  Compressed: DB.EnumCase<null>;
427
431
  Verbose: DB.EnumCase<null>;
432
+ Grouped: DB.EnumCase<null>;
428
433
  }, []>>, true>;
429
434
  translations: DB.MemberDecl<DB.NestedEntityMap<"ValueMapTranslation", {
430
435
  listPrefix: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"ResponsiveTextOptional", DB.Object<{
@@ -4,6 +4,7 @@ export declare const ValueMap: DB.TypeAlias<"ValueMap", DB.Object<{
4
4
  style: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"ValueMapStyle", {
5
5
  Compressed: DB.EnumCase<null>;
6
6
  Verbose: DB.EnumCase<null>;
7
+ Grouped: DB.EnumCase<null>;
7
8
  }, []>>, true>;
8
9
  translations: DB.MemberDecl<DB.NestedEntityMap<"ValueMapTranslation", {
9
10
  listPrefix: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"ResponsiveTextOptional", DB.Object<{
@@ -25,6 +26,7 @@ export declare const ParameterMap: DB.TypeAlias<"ParameterMap", DB.IncludeIdenti
25
26
  style: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"ValueMapStyle", {
26
27
  Compressed: DB.EnumCase<null>;
27
28
  Verbose: DB.EnumCase<null>;
29
+ Grouped: DB.EnumCase<null>;
28
30
  }, []>>, true>;
29
31
  translations: DB.MemberDecl<DB.NestedEntityMap<"ValueMapTranslation", {
30
32
  listPrefix: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"ResponsiveTextOptional", DB.Object<{
@@ -46,10 +46,20 @@ The \`an item the size of a\` would be the *list prefix* string, while the list
46
46
  });
47
47
  const ValueMapStyle = DB.Enum(import.meta.url, {
48
48
  name: "ValueMapStyle",
49
- comment: "The style of the generated string. It may either be displayed in a compressed way (e.g. `1/2/3 AE for a small/medium/large object`) or in a verbose way (e.g. `1 AE for a small object, 2 AE for a medium object, 3 AE for a large object`).",
49
+ comment: "The style of the generated string. It may be displayed\n\n- in a `compressed` way (e.g. *1/1/2 AE for a small/medium/large object*),\n- in a `verbose` way (e.g. *1 AE for a small object, 1 AE for a medium object, 2 AE for a large object*),\n- or in a `grouped` way (e.g. *small/medium object: 1 AE, large object: 2 AE*).\n\nA `grouped` style only really makes sense if multiple options share the same value.",
50
50
  values: () => ({
51
- Compressed: DB.EnumCase({ type: null }),
52
- Verbose: DB.EnumCase({ type: null }),
51
+ Compressed: DB.EnumCase({
52
+ comment: "Prints a map in a compressed way, e.g. *1/2/3 AE for a small/medium/large object*.",
53
+ type: null,
54
+ }),
55
+ Verbose: DB.EnumCase({
56
+ comment: "Prints a map in a verbose way, e.g. *1 AE for a small object, 2 AE for a medium object, 3 AE for a large object*.",
57
+ type: null,
58
+ }),
59
+ Grouped: DB.EnumCase({
60
+ comment: "Prints a map in a grouped way, e.g. *small/medium object: 1 AE, large object: 2 AE*.",
61
+ type: null,
62
+ }),
53
63
  }),
54
64
  });
55
65
  export const createValueMapOption = (name, parameters, getOptionValues, includeStandaloneLabel = true) => DB.GenTypeAlias(import.meta.url, {
@@ -4,14 +4,20 @@
4
4
  import * as DB from "tsondb/schema/dsl";
5
5
  export declare const level: DB.MemberDecl<DB.Integer, true>;
6
6
  export declare const Resistance: DB.Enum<"Resistance", {
7
- Spirit: DB.EnumCase<null>;
8
- Toughness: DB.EnumCase<null>;
9
- LowerOfSpiritAndToughness: DB.EnumCase<null>;
7
+ Single: DB.EnumCase<DB.IncludeIdentifier<[], DB.TypeAlias<"SingleResistance", DB.Object<{
8
+ derivedCharacteristic: DB.MemberDecl<DB.ReferenceIdentifier, true>;
9
+ }>, []>>>;
10
+ Minimum: DB.EnumCase<DB.IncludeIdentifier<[], DB.TypeAlias<"MinimumResistance", DB.Object<{
11
+ derivedCharacteristics: DB.MemberDecl<DB.Array<DB.ReferenceIdentifier>, true>;
12
+ }>, []>>>;
10
13
  }, []>;
11
14
  export declare const resistance: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"Resistance", {
12
- Spirit: DB.EnumCase<null>;
13
- Toughness: DB.EnumCase<null>;
14
- LowerOfSpiritAndToughness: DB.EnumCase<null>;
15
+ Single: DB.EnumCase<DB.IncludeIdentifier<[], DB.TypeAlias<"SingleResistance", DB.Object<{
16
+ derivedCharacteristic: DB.MemberDecl<DB.ReferenceIdentifier, true>;
17
+ }>, []>>>;
18
+ Minimum: DB.EnumCase<DB.IncludeIdentifier<[], DB.TypeAlias<"MinimumResistance", DB.Object<{
19
+ derivedCharacteristics: DB.MemberDecl<DB.Array<DB.ReferenceIdentifier>, true>;
20
+ }>, []>>>;
15
21
  }, []>>, true>;
16
22
  export declare const Cause: DB.TypeAlias<"Cause", DB.Object<{
17
23
  chance: DB.MemberDecl<DB.Integer, false>;
@@ -1,9 +1,11 @@
1
1
  /**
2
2
  * This file defines some shared types for different diseases and poisons.
3
3
  */
4
+ import { isNotNullish, nullableToArray } from "@elyukai/utils/nullable";
4
5
  import * as DB from "tsondb/schema/dsl";
5
6
  import { NestedTranslationMap } from "./Locale.js";
6
7
  import { AlternativeName } from "./_AlternativeNames.js";
8
+ import { DerivedCharacteristicIdentifier } from "./_Identifier.js";
7
9
  import { Errata } from "./source/_Erratum.js";
8
10
  export const level = DB.Required({
9
11
  comment: "The disease’s level.",
@@ -11,17 +13,50 @@ export const level = DB.Required({
11
13
  });
12
14
  export const Resistance = DB.Enum(import.meta.url, {
13
15
  name: "Resistance",
14
- comment: "Depending on the disease, apply Spirit or Toughness as a penalty to the disease roll. It may also happen that the lower of both is applied as a penalty.",
16
+ comment: "Depending on the disease or poison, apply a resistance as a penalty to the disease or poison roll. It may also happen that the minimum is applied as a penalty.",
15
17
  values: () => ({
16
- Spirit: DB.EnumCase({ type: null }),
17
- Toughness: DB.EnumCase({ type: null }),
18
- LowerOfSpiritAndToughness: DB.EnumCase({ type: null }),
18
+ Single: DB.EnumCase({
19
+ type: DB.IncludeIdentifier(SingleResistance),
20
+ }),
21
+ Minimum: DB.EnumCase({
22
+ type: DB.IncludeIdentifier(MinimumResistance),
23
+ }),
19
24
  }),
20
25
  });
21
26
  export const resistance = DB.Required({
22
- comment: "Depending on the disease, apply Spirit or Toughness as a penalty to the disease roll. It may also happen that the lower of both is applied as a penalty.",
27
+ comment: "Depending on the disease or poison, apply Spirit or Toughness as a penalty to the disease or poison roll. It may also happen that the minimum is applied as a penalty.",
23
28
  type: DB.IncludeIdentifier(Resistance),
24
29
  });
30
+ const checkDerivedCharacteristicIsResistance = (id, getInstanceById) => getInstanceById("DerivedCharacteristic", id)?.type?.kind !== "Resistance"
31
+ ? `The derived characteristic with the identifier "${id}" is not a resistance.`
32
+ : undefined;
33
+ const SingleResistance = DB.TypeAlias(import.meta.url, {
34
+ name: "SingleResistance",
35
+ comment: "A single derived characteristic that classifies as a resistance.",
36
+ type: () => DB.Object({
37
+ derivedCharacteristic: DB.Required({
38
+ comment: "The derived characteristic that is used for the skill check.",
39
+ type: DerivedCharacteristicIdentifier(),
40
+ }),
41
+ }),
42
+ customConstraints: ({ instanceContent, getInstanceById }) => nullableToArray(checkDerivedCharacteristicIsResistance(instanceContent.derivedCharacteristic, getInstanceById)),
43
+ });
44
+ const MinimumResistance = DB.TypeAlias(import.meta.url, {
45
+ name: "MinimumResistance",
46
+ comment: "Multiple derived characteristics that classify as resistances whose minimum value represents the actual resistance against the disease.",
47
+ type: () => DB.Object({
48
+ derivedCharacteristics: DB.Required({
49
+ comment: "The derived characteristic that is used for the skill check.",
50
+ type: DB.Array(DerivedCharacteristicIdentifier(), {
51
+ minItems: 2,
52
+ uniqueItems: true,
53
+ }),
54
+ }),
55
+ }),
56
+ customConstraints: ({ instanceContent, getInstanceById }) => instanceContent.derivedCharacteristics
57
+ .map(id => checkDerivedCharacteristicIsResistance(id, getInstanceById))
58
+ .filter(isNotNullish),
59
+ });
25
60
  export const Cause = DB.TypeAlias(import.meta.url, {
26
61
  name: "Cause",
27
62
  comment: "What causes the disease? The GM rolls 1D20 to see if a character gets infected. If the infection check succeeds, the GM makes a disease check to determine the severity of the infection.",
@@ -23,6 +23,7 @@ export declare const AttireEnchantmentIdentifier: () => R;
23
23
  export declare const AttributeIdentifier: () => R;
24
24
  export declare const BandageOrRemedyIdentifier: () => R;
25
25
  export declare const BannzeichenIdentifier: () => R;
26
+ export declare const BannzeichenOptionIdentifier: () => R;
26
27
  export declare const BeutelzauberIdentifier: () => R;
27
28
  export declare const BiomeIdentifier: () => R;
28
29
  export declare const BlessedTraditionIdentifier: () => R;
@@ -67,7 +67,7 @@ import { Curriculum, Guideline, LessonPackage } from "./Lessons.js";
67
67
  import { LiturgicalChant } from "./LiturgicalChant.js";
68
68
  import { AnimistPower } from "./magicalActions/AnimistPower.js";
69
69
  import { Tribe } from "./magicalActions/AnimistPower_Tribe.js";
70
- import { Bannzeichen } from "./magicalActions/Bannzeichen.js";
70
+ import { Bannzeichen, BannzeichenOption } from "./magicalActions/Bannzeichen.js";
71
71
  import { Curse } from "./magicalActions/Curse.js";
72
72
  import { DominationRitual } from "./magicalActions/DominationRitual.js";
73
73
  import { ElvenMagicalSong } from "./magicalActions/ElvenMagicalSong.js";
@@ -187,6 +187,7 @@ export const AttireEnchantmentIdentifier = () => R(AttireEnchantment);
187
187
  export const AttributeIdentifier = () => R(Attribute);
188
188
  export const BandageOrRemedyIdentifier = () => R(BandageOrRemedy);
189
189
  export const BannzeichenIdentifier = () => R(Bannzeichen);
190
+ export const BannzeichenOptionIdentifier = () => R(BannzeichenOption);
190
191
  export const BeutelzauberIdentifier = () => R(Beutelzauber);
191
192
  export const BiomeIdentifier = () => R(Biome);
192
193
  export const BlessedTraditionIdentifier = () => R(BlessedTradition);
@@ -1,10 +1,15 @@
1
1
  import * as DB from "tsondb/schema/dsl";
2
2
  export declare const SkillCheck: DB.TypeAlias<"SkillCheck", DB.Array<DB.ReferenceIdentifier>, []>;
3
3
  export declare const SkillCheckPenalty: DB.Enum<"SkillCheckPenalty", {
4
- Spirit: DB.EnumCase<null>;
5
- HalfOfSpirit: DB.EnumCase<null>;
6
- Toughness: DB.EnumCase<null>;
7
- HigherOfSpiritAndToughness: DB.EnumCase<null>;
4
+ DerivedCharacteristic: DB.EnumCase<DB.IncludeIdentifier<[], DB.Enum<"DerivedCharacteristicSkillCheckPenalty", {
5
+ Single: DB.EnumCase<DB.IncludeIdentifier<[], DB.TypeAlias<"SingleDerivedCharacteristicSkillCheckPenalty", DB.Object<{
6
+ derivedCharacteristic: DB.MemberDecl<DB.ReferenceIdentifier, true>;
7
+ halved: DB.MemberDecl<DB.Boolean, true>;
8
+ }>, []>>>;
9
+ Maximum: DB.EnumCase<DB.IncludeIdentifier<[], DB.TypeAlias<"MaximumDerivedCharacteristicSkillCheckPenalty", DB.Object<{
10
+ derivedCharacteristics: DB.MemberDecl<DB.Array<DB.ReferenceIdentifier>, true>;
11
+ }>, []>>>;
12
+ }, []>>>;
8
13
  SummoningDifficulty: DB.EnumCase<null>;
9
14
  CreationDifficulty: DB.EnumCase<null>;
10
15
  Object: DB.EnumCase<null>;
@@ -1,5 +1,6 @@
1
+ import { isNotNullish, nullableToArray } from "@elyukai/utils/nullable";
1
2
  import * as DB from "tsondb/schema/dsl";
2
- import { AttributeIdentifier } from "./_Identifier.js";
3
+ import { AttributeIdentifier, DerivedCharacteristicIdentifier } from "./_Identifier.js";
3
4
  export const SkillCheck = DB.TypeAlias(import.meta.url, {
4
5
  name: "SkillCheck",
5
6
  comment: "The attributes’ identifiers of the skill check.",
@@ -12,12 +13,57 @@ export const SkillCheckPenalty = DB.Enum(import.meta.url, {
12
13
  name: "SkillCheckPenalty",
13
14
  comment: "A specific value that represents a penalty for the associated skill check.",
14
15
  values: () => ({
15
- Spirit: DB.EnumCase({ type: null }),
16
- HalfOfSpirit: DB.EnumCase({ type: null }),
17
- Toughness: DB.EnumCase({ type: null }),
18
- HigherOfSpiritAndToughness: DB.EnumCase({ type: null }),
16
+ DerivedCharacteristic: DB.EnumCase({
17
+ type: DB.IncludeIdentifier(DerivedCharacteristicSkillCheckPenalty),
18
+ }),
19
19
  SummoningDifficulty: DB.EnumCase({ type: null }),
20
20
  CreationDifficulty: DB.EnumCase({ type: null }),
21
21
  Object: DB.EnumCase({ type: null }),
22
22
  }),
23
23
  });
24
+ const DerivedCharacteristicSkillCheckPenalty = DB.Enum(import.meta.url, {
25
+ name: "DerivedCharacteristicSkillCheckPenalty",
26
+ comment: "A derived characteristic that classifies as a resistance that represents a penalty for the associated skill check.",
27
+ values: () => ({
28
+ Single: DB.EnumCase({
29
+ type: DB.IncludeIdentifier(SingleDerivedCharacteristicSkillCheckPenalty),
30
+ }),
31
+ Maximum: DB.EnumCase({
32
+ type: DB.IncludeIdentifier(MaximumDerivedCharacteristicSkillCheckPenalty),
33
+ }),
34
+ }),
35
+ });
36
+ const checkDerivedCharacteristicIsResistance = (id, getInstanceById) => getInstanceById("DerivedCharacteristic", id)?.type?.kind !== "Resistance"
37
+ ? `The derived characteristic with the identifier "${id}" is not a resistance.`
38
+ : undefined;
39
+ const SingleDerivedCharacteristicSkillCheckPenalty = DB.TypeAlias(import.meta.url, {
40
+ name: "SingleDerivedCharacteristicSkillCheckPenalty",
41
+ comment: "A single derived characteristic that classifies as a resistance that represents a penalty for the associated skill check. It may be halved for the skill check.",
42
+ type: () => DB.Object({
43
+ derivedCharacteristic: DB.Required({
44
+ comment: "The derived characteristic that is used for the skill check.",
45
+ type: DerivedCharacteristicIdentifier(),
46
+ }),
47
+ halved: DB.Required({
48
+ comment: "Is the penalty halved for this skill check?",
49
+ type: DB.Boolean(),
50
+ }),
51
+ }),
52
+ customConstraints: ({ instanceContent, getInstanceById }) => nullableToArray(checkDerivedCharacteristicIsResistance(instanceContent.derivedCharacteristic, getInstanceById)),
53
+ });
54
+ const MaximumDerivedCharacteristicSkillCheckPenalty = DB.TypeAlias(import.meta.url, {
55
+ name: "MaximumDerivedCharacteristicSkillCheckPenalty",
56
+ comment: "Multiple derived characteristics that classify as resistances whose maximum value represents a penalty for the associated skill check.",
57
+ type: () => DB.Object({
58
+ derivedCharacteristics: DB.Required({
59
+ comment: "The derived characteristic that is used for the skill check.",
60
+ type: DB.Array(DerivedCharacteristicIdentifier(), {
61
+ minItems: 2,
62
+ uniqueItems: true,
63
+ }),
64
+ }),
65
+ }),
66
+ customConstraints: ({ instanceContent, getInstanceById }) => instanceContent.derivedCharacteristics
67
+ .map(id => checkDerivedCharacteristicIsResistance(id, getInstanceById))
68
+ .filter(isNotNullish),
69
+ });
@@ -289,9 +289,12 @@ export declare const Poison: DB.Entity<"Poison", {
289
289
  }>, []>>>;
290
290
  }, []>>, true>;
291
291
  resistance: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"Resistance", {
292
- Spirit: DB.EnumCase<null>;
293
- Toughness: DB.EnumCase<null>;
294
- LowerOfSpiritAndToughness: DB.EnumCase<null>;
292
+ Single: DB.EnumCase<DB.IncludeIdentifier<[], DB.TypeAlias<"SingleResistance", DB.Object<{
293
+ derivedCharacteristic: DB.MemberDecl<DB.ReferenceIdentifier, true>;
294
+ }>, []>>>;
295
+ Minimum: DB.EnumCase<DB.IncludeIdentifier<[], DB.TypeAlias<"MinimumResistance", DB.Object<{
296
+ derivedCharacteristics: DB.MemberDecl<DB.Array<DB.ReferenceIdentifier>, true>;
297
+ }>, []>>>;
295
298
  }, []>>, true>;
296
299
  start: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"PoisonStart", {
297
300
  Immediate: DB.EnumCase<null>;
@@ -95,6 +95,7 @@ export { FocusRule } from "./rule/FocusRule.js";
95
95
  export { Subject } from "./rule/FocusRule_Subject.js";
96
96
  export { OptionalRule } from "./rule/OptionalRule.js";
97
97
  export { Service } from "./Service.js";
98
+ export { Settings } from "./Settings.ts";
98
99
  export { SexPractice } from "./SexPractice.js";
99
100
  export { Skill } from "./Skill.js";
100
101
  export { SkillGroup } from "./SkillGroup.js";
@@ -95,6 +95,7 @@ export { FocusRule } from "./rule/FocusRule.js";
95
95
  export { Subject } from "./rule/FocusRule_Subject.js";
96
96
  export { OptionalRule } from "./rule/OptionalRule.js";
97
97
  export { Service } from "./Service.js";
98
+ export { Settings } from "./Settings.js";
98
99
  export { SexPractice } from "./SexPractice.js";
99
100
  export { Skill } from "./Skill.js";
100
101
  export { SkillGroup } from "./SkillGroup.js";
@@ -2,10 +2,15 @@ import * as DB from "tsondb/schema/dsl";
2
2
  export declare const AnimistPower: DB.Entity<"AnimistPower", {
3
3
  check: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"SkillCheck", DB.Array<DB.ReferenceIdentifier>, []>>, true>;
4
4
  check_penalty: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"SkillCheckPenalty", {
5
- Spirit: DB.EnumCase<null>;
6
- HalfOfSpirit: DB.EnumCase<null>;
7
- Toughness: DB.EnumCase<null>;
8
- HigherOfSpiritAndToughness: DB.EnumCase<null>;
5
+ DerivedCharacteristic: DB.EnumCase<DB.IncludeIdentifier<[], DB.Enum<"DerivedCharacteristicSkillCheckPenalty", {
6
+ Single: DB.EnumCase<DB.IncludeIdentifier<[], DB.TypeAlias<"SingleDerivedCharacteristicSkillCheckPenalty", DB.Object<{
7
+ derivedCharacteristic: DB.MemberDecl<DB.ReferenceIdentifier, true>;
8
+ halved: DB.MemberDecl<DB.Boolean, true>;
9
+ }>, []>>>;
10
+ Maximum: DB.EnumCase<DB.IncludeIdentifier<[], DB.TypeAlias<"MaximumDerivedCharacteristicSkillCheckPenalty", DB.Object<{
11
+ derivedCharacteristics: DB.MemberDecl<DB.Array<DB.ReferenceIdentifier>, true>;
12
+ }>, []>>>;
13
+ }, []>>>;
9
14
  SummoningDifficulty: DB.EnumCase<null>;
10
15
  CreationDifficulty: DB.EnumCase<null>;
11
16
  Object: DB.EnumCase<null>;
@@ -56,6 +56,7 @@ export declare const Bannzeichen: DB.Entity<"Bannzeichen", {
56
56
  style: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"ValueMapStyle", {
57
57
  Compressed: DB.EnumCase<null>;
58
58
  Verbose: DB.EnumCase<null>;
59
+ Grouped: DB.EnumCase<null>;
59
60
  }, []>>, true>;
60
61
  translations: DB.MemberDecl<DB.NestedEntityMap<"ValueMapTranslation", {
61
62
  listPrefix: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"ResponsiveTextOptional", DB.Object<{
@@ -2,10 +2,15 @@ import * as DB from "tsondb/schema/dsl";
2
2
  export declare const Curse: DB.Entity<"Curse", {
3
3
  check: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"SkillCheck", DB.Array<DB.ReferenceIdentifier>, []>>, true>;
4
4
  check_penalty: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"SkillCheckPenalty", {
5
- Spirit: DB.EnumCase<null>;
6
- HalfOfSpirit: DB.EnumCase<null>;
7
- Toughness: DB.EnumCase<null>;
8
- HigherOfSpiritAndToughness: DB.EnumCase<null>;
5
+ DerivedCharacteristic: DB.EnumCase<DB.IncludeIdentifier<[], DB.Enum<"DerivedCharacteristicSkillCheckPenalty", {
6
+ Single: DB.EnumCase<DB.IncludeIdentifier<[], DB.TypeAlias<"SingleDerivedCharacteristicSkillCheckPenalty", DB.Object<{
7
+ derivedCharacteristic: DB.MemberDecl<DB.ReferenceIdentifier, true>;
8
+ halved: DB.MemberDecl<DB.Boolean, true>;
9
+ }>, []>>>;
10
+ Maximum: DB.EnumCase<DB.IncludeIdentifier<[], DB.TypeAlias<"MaximumDerivedCharacteristicSkillCheckPenalty", DB.Object<{
11
+ derivedCharacteristics: DB.MemberDecl<DB.Array<DB.ReferenceIdentifier>, true>;
12
+ }>, []>>>;
13
+ }, []>>>;
9
14
  SummoningDifficulty: DB.EnumCase<null>;
10
15
  CreationDifficulty: DB.EnumCase<null>;
11
16
  Object: DB.EnumCase<null>;
@@ -2,10 +2,15 @@ import * as DB from "tsondb/schema/dsl";
2
2
  export declare const DominationRitual: DB.Entity<"DominationRitual", {
3
3
  check: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"SkillCheck", DB.Array<DB.ReferenceIdentifier>, []>>, true>;
4
4
  check_penalty: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"SkillCheckPenalty", {
5
- Spirit: DB.EnumCase<null>;
6
- HalfOfSpirit: DB.EnumCase<null>;
7
- Toughness: DB.EnumCase<null>;
8
- HigherOfSpiritAndToughness: DB.EnumCase<null>;
5
+ DerivedCharacteristic: DB.EnumCase<DB.IncludeIdentifier<[], DB.Enum<"DerivedCharacteristicSkillCheckPenalty", {
6
+ Single: DB.EnumCase<DB.IncludeIdentifier<[], DB.TypeAlias<"SingleDerivedCharacteristicSkillCheckPenalty", DB.Object<{
7
+ derivedCharacteristic: DB.MemberDecl<DB.ReferenceIdentifier, true>;
8
+ halved: DB.MemberDecl<DB.Boolean, true>;
9
+ }>, []>>>;
10
+ Maximum: DB.EnumCase<DB.IncludeIdentifier<[], DB.TypeAlias<"MaximumDerivedCharacteristicSkillCheckPenalty", DB.Object<{
11
+ derivedCharacteristics: DB.MemberDecl<DB.Array<DB.ReferenceIdentifier>, true>;
12
+ }>, []>>>;
13
+ }, []>>>;
9
14
  SummoningDifficulty: DB.EnumCase<null>;
10
15
  CreationDifficulty: DB.EnumCase<null>;
11
16
  Object: DB.EnumCase<null>;