optolith-database-schema 0.39.0 → 0.41.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 (270) hide show
  1. package/CHANGELOG.md +52 -0
  2. package/README.md +1 -1
  3. package/gen/types.d.ts +1712 -1606
  4. package/lib/types/DerivedCharacteristic.d.ts +23 -14
  5. package/lib/types/DerivedCharacteristic.js +58 -21
  6. package/lib/types/Disease.d.ts +2 -0
  7. package/lib/types/Disease.js +8 -0
  8. package/lib/types/Locale.d.ts +7 -0
  9. package/lib/types/Locale.js +7 -0
  10. package/lib/types/Profession.d.ts +31 -14
  11. package/lib/types/Profession.js +12 -2
  12. package/lib/types/Race.d.ts +22 -15
  13. package/lib/types/Race.js +26 -20
  14. package/lib/types/Talisman.d.ts +32 -6
  15. package/lib/types/Talisman.js +51 -11
  16. package/lib/types/_Identifier.d.ts +1 -0
  17. package/lib/types/_Identifier.js +2 -0
  18. package/lib/types/_IdentifierGroup.d.ts +58 -0
  19. package/lib/types/_IdentifierGroup.js +15 -1
  20. package/lib/types/equipment/item/BandageOrRemedy.d.ts +5 -2
  21. package/lib/types/equipment/item/CeremonialItem.d.ts +6 -3
  22. package/lib/types/equipment/item/CeremonialItem.js +1 -1
  23. package/lib/types/equipment/item/Clothes.d.ts +5 -2
  24. package/lib/types/equipment/item/Container.d.ts +5 -2
  25. package/lib/types/equipment/item/Elixir.d.ts +16 -1
  26. package/lib/types/equipment/item/Elixir.js +35 -5
  27. package/lib/types/equipment/item/EquipmentOfBlessedOnes.d.ts +5 -2
  28. package/lib/types/equipment/item/IlluminationLightSource.d.ts +5 -2
  29. package/lib/types/equipment/item/IlluminationRefillOrSupply.d.ts +5 -2
  30. package/lib/types/equipment/item/Liebesspielzeug.d.ts +5 -2
  31. package/lib/types/equipment/item/LuxuryGood.d.ts +5 -2
  32. package/lib/types/equipment/item/MagicalArtifact.d.ts +5 -2
  33. package/lib/types/equipment/item/MusicalInstrument.d.ts +5 -2
  34. package/lib/types/equipment/item/OrienteeringAid.d.ts +5 -2
  35. package/lib/types/equipment/item/Poison.d.ts +64 -91
  36. package/lib/types/equipment/item/Poison.js +5 -34
  37. package/lib/types/equipment/item/RopeOrChain.d.ts +5 -2
  38. package/lib/types/equipment/item/Stationery.d.ts +5 -2
  39. package/lib/types/equipment/item/ThievesTool.d.ts +5 -2
  40. package/lib/types/equipment/item/TravelGearOrTool.d.ts +5 -2
  41. package/lib/types/equipment/item/Weapon.d.ts +10 -4
  42. package/lib/types/equipment/item/WeaponAccessory.d.ts +5 -2
  43. package/lib/types/equipment/item/_Herbary.d.ts +31 -0
  44. package/lib/types/equipment/item/_Herbary.js +9 -0
  45. package/lib/types/equipment/item/_Item.d.ts +10 -4
  46. package/lib/types/equipment/item/_MeleeWeapon.d.ts +2 -2
  47. package/lib/types/equipment/item/_MeleeWeapon.js +1 -1
  48. package/lib/types/equipment/item/_RangedWeapon.d.ts +8 -2
  49. package/lib/types/equipment/item/_RangedWeapon.js +2 -2
  50. package/lib/types/equipment/item/sub/Reach.d.ts +1 -0
  51. package/lib/types/equipment/item/sub/Reach.js +7 -0
  52. package/lib/types/magicalActions/MagicalMelody.d.ts +15 -0
  53. package/lib/types/magicalActions/MagicalMelody.js +5 -0
  54. package/lib/types/prerequisites/PrerequisiteGroups.d.ts +132 -0
  55. package/lib/types/prerequisites/PrerequisiteGroups.js +1 -0
  56. package/package.json +7 -7
  57. package/schema/Advantage.schema.json +0 -108
  58. package/schema/AnimalDisease.schema.json +0 -74
  59. package/schema/AnimalType.schema.json +0 -47
  60. package/schema/ArcaneBardTradition.schema.json +0 -11
  61. package/schema/ArcaneDancerTradition.schema.json +0 -11
  62. package/schema/Aspect.schema.json +0 -51
  63. package/schema/Attribute.schema.json +0 -57
  64. package/schema/Blessing.schema.json +0 -265
  65. package/schema/Cantrip.schema.json +0 -443
  66. package/schema/Ceremony.schema.json +0 -122
  67. package/schema/CombatTechnique_Close.schema.json +0 -116
  68. package/schema/CombatTechnique_Ranged.schema.json +0 -99
  69. package/schema/Condition.schema.json +0 -68
  70. package/schema/Continent.schema.json +0 -49
  71. package/schema/Culture.schema.json +0 -781
  72. package/schema/DerivedCharacteristic.schema.json +0 -90
  73. package/schema/Disadvantage.schema.json +0 -97
  74. package/schema/Disease.schema.json +0 -58
  75. package/schema/Element.schema.json +0 -48
  76. package/schema/ExperienceLevel.schema.json +0 -84
  77. package/schema/EyeColor.schema.json +0 -47
  78. package/schema/FamiliarsTrick.schema.json +0 -576
  79. package/schema/HairColor.schema.json +0 -47
  80. package/schema/Kirchenpraegung.schema.json +0 -11
  81. package/schema/Lessons_Curriculum.schema.json +0 -499
  82. package/schema/Lessons_Guideline.schema.json +0 -53
  83. package/schema/LiturgicalChant.schema.json +0 -122
  84. package/schema/Locale.schema.json +0 -38
  85. package/schema/MetaCondition.schema.json +0 -69
  86. package/schema/PactCategory.schema.json +0 -150
  87. package/schema/Patron.schema.json +0 -352
  88. package/schema/PatronCategory.schema.json +0 -57
  89. package/schema/PersonalityTrait.schema.json +0 -100
  90. package/schema/Profession.schema.json +0 -1424
  91. package/schema/Property.schema.json +0 -51
  92. package/schema/Race.schema.json +0 -534
  93. package/schema/Region.schema.json +0 -47
  94. package/schema/Ritual.schema.json +0 -120
  95. package/schema/Service.schema.json +0 -79
  96. package/schema/SexPractice.schema.json +0 -70
  97. package/schema/Skill.schema.json +0 -223
  98. package/schema/SkillGroup.schema.json +0 -57
  99. package/schema/SkillModificationLevel.schema.json +0 -153
  100. package/schema/SocialStatus.schema.json +0 -47
  101. package/schema/Spell.schema.json +0 -119
  102. package/schema/State.schema.json +0 -59
  103. package/schema/Talisman.schema.json +0 -120
  104. package/schema/TargetCategory.schema.json +0 -65
  105. package/schema/UI.schema.json +0 -4441
  106. package/schema/_Activatable.schema.json +0 -2755
  107. package/schema/_ActivatableSelectOptionCategory.schema.json +0 -1313
  108. package/schema/_ActivatableSkill.schema.json +0 -188
  109. package/schema/_ActivatableSkillCastingTime.schema.json +0 -181
  110. package/schema/_ActivatableSkillCheckResultBased.schema.json +0 -65
  111. package/schema/_ActivatableSkillCost.schema.json +0 -513
  112. package/schema/_ActivatableSkillDuration.schema.json +0 -353
  113. package/schema/_ActivatableSkillEffect.schema.json +0 -122
  114. package/schema/_ActivatableSkillRange.schema.json +0 -264
  115. package/schema/_ActivatableSkillTargetCategory.schema.json +0 -145
  116. package/schema/_AlternativeNames.schema.json +0 -23
  117. package/schema/_ArcaneTradition.schema.json +0 -51
  118. package/schema/_Blessed.schema.json +0 -64
  119. package/schema/_Dice.schema.json +0 -40
  120. package/schema/_DiseasePoison.schema.json +0 -152
  121. package/schema/_Enhancements.schema.json +0 -85
  122. package/schema/_I18n.schema.json +0 -55
  123. package/schema/_Identifier.schema.json +0 -2577
  124. package/schema/_IdentifierGroup.schema.json +0 -753
  125. package/schema/_ImprovementCost.schema.json +0 -23
  126. package/schema/_Influence.schema.json +0 -84
  127. package/schema/_NonEmptyString.schema.json +0 -14
  128. package/schema/_Prerequisite.schema.json +0 -1518
  129. package/schema/_ResponsiveText.schema.json +0 -66
  130. package/schema/_Sex.schema.json +0 -18
  131. package/schema/_SimpleReferences.schema.json +0 -522
  132. package/schema/_SkillCheck.schema.json +0 -38
  133. package/schema/_Spellwork.schema.json +0 -54
  134. package/schema/equipment/EquipmentPackage.schema.json +0 -79
  135. package/schema/equipment/item/Ammunition.schema.json +0 -56
  136. package/schema/equipment/item/Animal.schema.json +0 -36
  137. package/schema/equipment/item/AnimalCare.schema.json +0 -124
  138. package/schema/equipment/item/Armor.schema.json +0 -309
  139. package/schema/equipment/item/BandageOrRemedy.schema.json +0 -53
  140. package/schema/equipment/item/Book.schema.json +0 -89
  141. package/schema/equipment/item/CeremonialItem.schema.json +0 -59
  142. package/schema/equipment/item/Clothes.schema.json +0 -10
  143. package/schema/equipment/item/Container.schema.json +0 -10
  144. package/schema/equipment/item/Elixir.schema.json +0 -103
  145. package/schema/equipment/item/EquipmentOfBlessedOnes.schema.json +0 -49
  146. package/schema/equipment/item/GemOrPreciousStone.schema.json +0 -69
  147. package/schema/equipment/item/IlluminationLightSource.schema.json +0 -120
  148. package/schema/equipment/item/IlluminationRefillsOrSupplies.schema.json +0 -10
  149. package/schema/equipment/item/Jewelry.schema.json +0 -113
  150. package/schema/equipment/item/Liebesspielzeug.schema.json +0 -10
  151. package/schema/equipment/item/LuxuryGood.schema.json +0 -53
  152. package/schema/equipment/item/MagicalArtifact.schema.json +0 -64
  153. package/schema/equipment/item/MusicalInstrument.schema.json +0 -49
  154. package/schema/equipment/item/OrienteeringAid.schema.json +0 -10
  155. package/schema/equipment/item/Poison.schema.json +0 -835
  156. package/schema/equipment/item/RopeOrChain.schema.json +0 -10
  157. package/schema/equipment/item/Stationary.schema.json +0 -10
  158. package/schema/equipment/item/ThievesTool.schema.json +0 -10
  159. package/schema/equipment/item/ToolOfTheTrade.schema.json +0 -93
  160. package/schema/equipment/item/TravelGearOrTool.schema.json +0 -10
  161. package/schema/equipment/item/Vehicle.schema.json +0 -36
  162. package/schema/equipment/item/Weapon.schema.json +0 -285
  163. package/schema/equipment/item/WeaponAccessory.schema.json +0 -10
  164. package/schema/equipment/item/_Herbary.schema.json +0 -62
  165. package/schema/equipment/item/_Item.schema.json +0 -384
  166. package/schema/equipment/item/_MeleeWeapon.schema.json +0 -164
  167. package/schema/equipment/item/_RangedWeapon.schema.json +0 -185
  168. package/schema/equipment/item/_Weapon.schema.json +0 -99
  169. package/schema/equipment/item/sub/ArmorType.schema.json +0 -52
  170. package/schema/equipment/item/sub/Reach.schema.json +0 -47
  171. package/schema/magicalActions/AnimistPower.schema.json +0 -488
  172. package/schema/magicalActions/AnimistPower_Tribe.schema.json +0 -47
  173. package/schema/magicalActions/Curse.schema.json +0 -332
  174. package/schema/magicalActions/DominationRitual.schema.json +0 -275
  175. package/schema/magicalActions/ElvenMagicalSong.schema.json +0 -196
  176. package/schema/magicalActions/GeodeRitual.schema.json +0 -327
  177. package/schema/magicalActions/JesterTrick.schema.json +0 -311
  178. package/schema/magicalActions/MagicalDance.schema.json +0 -198
  179. package/schema/magicalActions/MagicalMelody.schema.json +0 -193
  180. package/schema/magicalActions/MagicalRune.schema.json +0 -578
  181. package/schema/magicalActions/ZibiljaRitual.schema.json +0 -165
  182. package/schema/magicalActions/_MusicTradition.schema.json +0 -82
  183. package/schema/magicalActions/_SkillReference.schema.json +0 -20
  184. package/schema/prerequisites/ConditionalPrerequisites.schema.json +0 -15
  185. package/schema/prerequisites/DisplayOption.schema.json +0 -70
  186. package/schema/prerequisites/PrerequisiteGroups.schema.json +0 -1029
  187. package/schema/prerequisites/single/ActivatablePrerequisite.schema.json +0 -45
  188. package/schema/prerequisites/single/AncestorBloodPrerequisite.schema.json +0 -14
  189. package/schema/prerequisites/single/AnimistPowerPrerequisite.schema.json +0 -36
  190. package/schema/prerequisites/single/CulturePrerequisite.schema.json +0 -24
  191. package/schema/prerequisites/single/EnhancementPrerequisite.schema.json +0 -61
  192. package/schema/prerequisites/single/InfluencePrerequisite.schema.json +0 -28
  193. package/schema/prerequisites/single/PactPrerequisite.schema.json +0 -36
  194. package/schema/prerequisites/single/PrimaryAttributePrerequisite.schema.json +0 -39
  195. package/schema/prerequisites/single/PublicationPrerequisite.schema.json +0 -22
  196. package/schema/prerequisites/single/RacePrerequisite.schema.json +0 -28
  197. package/schema/prerequisites/single/RatedMinimumNumberPrerequisite.schema.json +0 -172
  198. package/schema/prerequisites/single/RatedPrerequisite.schema.json +0 -29
  199. package/schema/prerequisites/single/RatedSumPrerequisite.schema.json +0 -33
  200. package/schema/prerequisites/single/RulePrerequisite.schema.json +0 -22
  201. package/schema/prerequisites/single/SexPrerequisite.schema.json +0 -23
  202. package/schema/prerequisites/single/SexualCharacteristicPrerequisite.schema.json +0 -30
  203. package/schema/prerequisites/single/SocialStatusPrerequisite.schema.json +0 -24
  204. package/schema/prerequisites/single/StatePrerequisite.schema.json +0 -23
  205. package/schema/prerequisites/single/TextPrerequisite.schema.json +0 -64
  206. package/schema/prerequisites/single/TraditionPrerequisite.schema.json +0 -58
  207. package/schema/rule/CoreRule.schema.json +0 -1403
  208. package/schema/rule/FocusRule.schema.json +0 -76
  209. package/schema/rule/FocusRule_Subject.schema.json +0 -48
  210. package/schema/rule/OptionalRule.schema.json +0 -64
  211. package/schema/source/Publication.schema.json +0 -103
  212. package/schema/source/_Erratum.schema.json +0 -36
  213. package/schema/source/_PublicationRef.schema.json +0 -285
  214. package/schema/specialAbility/AdvancedCombatSpecialAbility.schema.json +0 -102
  215. package/schema/specialAbility/AdvancedKarmaSpecialAbility.schema.json +0 -80
  216. package/schema/specialAbility/AdvancedMagicalSpecialAbility.schema.json +0 -80
  217. package/schema/specialAbility/AdvancedSkillSpecialAbility.schema.json +0 -80
  218. package/schema/specialAbility/AncestorGlyph.schema.json +0 -80
  219. package/schema/specialAbility/BlessedTradition.schema.json +0 -354
  220. package/schema/specialAbility/BrawlingSpecialAbility.schema.json +0 -82
  221. package/schema/specialAbility/CeremonialItemSpecialAbility.schema.json +0 -87
  222. package/schema/specialAbility/CombatSpecialAbility.schema.json +0 -98
  223. package/schema/specialAbility/CombatStyleSpecialAbility.schema.json +0 -273
  224. package/schema/specialAbility/CommandSpecialAbility.schema.json +0 -82
  225. package/schema/specialAbility/FamiliarSpecialAbility.schema.json +0 -74
  226. package/schema/specialAbility/FatePointSexSpecialAbility.schema.json +0 -74
  227. package/schema/specialAbility/FatePointSpecialAbility.schema.json +0 -84
  228. package/schema/specialAbility/GeneralSpecialAbility.schema.json +0 -88
  229. package/schema/specialAbility/KarmaSpecialAbility.schema.json +0 -78
  230. package/schema/specialAbility/LiturgicalStyleSpecialAbility.schema.json +0 -260
  231. package/schema/specialAbility/LycantropicGift.schema.json +0 -74
  232. package/schema/specialAbility/MagicStyleSpecialAbility.schema.json +0 -260
  233. package/schema/specialAbility/MagicalSign.schema.json +0 -72
  234. package/schema/specialAbility/MagicalSpecialAbility.schema.json +0 -88
  235. package/schema/specialAbility/MagicalTradition.schema.json +0 -163
  236. package/schema/specialAbility/PactGift.schema.json +0 -254
  237. package/schema/specialAbility/ProtectiveWardingCircleSpecialAbility.schema.json +0 -86
  238. package/schema/specialAbility/Sermon.schema.json +0 -74
  239. package/schema/specialAbility/SexSpecialAbility.schema.json +0 -80
  240. package/schema/specialAbility/SikaryanDrainSpecialAbility.schema.json +0 -78
  241. package/schema/specialAbility/SkillStyleSpecialAbility.schema.json +0 -254
  242. package/schema/specialAbility/VampiricGift.schema.json +0 -78
  243. package/schema/specialAbility/Vision.schema.json +0 -74
  244. package/schema/specialAbility/_Tradition.schema.json +0 -23
  245. package/schema/specialAbility/sub/Language.schema.json +0 -222
  246. package/schema/specialAbility/sub/Script.schema.json +0 -90
  247. package/schema/specialAbility/sub/TradeSecret.schema.json +0 -72
  248. package/schema/specialAbility/sub/_LanguageScript.schema.json +0 -24
  249. package/schema/traditionArtifacts/ArcaneOrbEnchantment.schema.json +0 -95
  250. package/schema/traditionArtifacts/AttireEnchantment.schema.json +0 -95
  251. package/schema/traditionArtifacts/BowlEnchantment.schema.json +0 -95
  252. package/schema/traditionArtifacts/CauldronEnchantment.schema.json +0 -115
  253. package/schema/traditionArtifacts/ChronicleEnchantment.schema.json +0 -95
  254. package/schema/traditionArtifacts/DaggerRitual.schema.json +0 -176
  255. package/schema/traditionArtifacts/FoolsHatEnchantment.schema.json +0 -95
  256. package/schema/traditionArtifacts/InstrumentEnchantment.schema.json +0 -95
  257. package/schema/traditionArtifacts/Krallenkettenzauber.schema.json +0 -95
  258. package/schema/traditionArtifacts/OrbEnchantment.schema.json +0 -95
  259. package/schema/traditionArtifacts/RingEnchantment.schema.json +0 -95
  260. package/schema/traditionArtifacts/SickleRitual.schema.json +0 -95
  261. package/schema/traditionArtifacts/SpellSwordEnchantment.schema.json +0 -99
  262. package/schema/traditionArtifacts/StaffEnchantment.schema.json +0 -103
  263. package/schema/traditionArtifacts/ToyEnchantment.schema.json +0 -95
  264. package/schema/traditionArtifacts/Trinkhornzauber.schema.json +0 -95
  265. package/schema/traditionArtifacts/WandEnchantment.schema.json +0 -87
  266. package/schema/traditionArtifacts/WeaponEnchantment.schema.json +0 -95
  267. package/schema/traditionArtifacts/sub/AnimalShape.schema.json +0 -85
  268. package/schema/traditionArtifacts/sub/AnimalShapePath.schema.json +0 -47
  269. package/schema/traditionArtifacts/sub/AnimalShapeSize.schema.json +0 -59
  270. package/schema/traditionArtifacts/sub/Brew.schema.json +0 -47
@@ -1,4 +1,5 @@
1
1
  import * as DB from "tsondb/schema/dsl";
2
+ import { MathOperation } from "./_MathExpression.js";
2
3
  export declare const Talisman: DB.Entity<"Talisman", {
3
4
  tradition: DB.MemberDecl<DB.Array<DB.ReferenceIdentifier>, true>;
4
5
  type: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"TalismanType", {
@@ -8,6 +9,27 @@ export declare const Talisman: DB.Entity<"Talisman", {
8
9
  Regalia: DB.EnumCase<null>;
9
10
  PowerfulTalisman: DB.EnumCase<null>;
10
11
  }, []>>, false>;
12
+ activation: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"TalismanActivation", DB.Object<{
13
+ cost: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"TalismanActivationCost", DB.Object<{
14
+ value: DB.MemberDecl<DB.Integer, true>;
15
+ unit: DB.MemberDecl<DB.ReferenceIdentifier, true>;
16
+ }>, []>>, true>;
17
+ duration: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"TalismanActivationDuration", DB.Object<{
18
+ value: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"TalismanActivationDurationExpression", DB.IncludeIdentifier<DB.Param<string, DB.Type>[], MathOperation>, []>>, true>;
19
+ unit: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"DurationUnit", {
20
+ Seconds: DB.EnumCase<null>;
21
+ Minutes: DB.EnumCase<null>;
22
+ Hours: DB.EnumCase<null>;
23
+ Days: DB.EnumCase<null>;
24
+ Weeks: DB.EnumCase<null>;
25
+ Months: DB.EnumCase<null>;
26
+ Years: DB.EnumCase<null>;
27
+ Centuries: DB.EnumCase<null>;
28
+ Actions: DB.EnumCase<null>;
29
+ CombatRounds: DB.EnumCase<null>;
30
+ }, []>>, true>;
31
+ }>, []>>, true>;
32
+ }>, []>>, false>;
11
33
  ap_value: DB.MemberDecl<DB.Integer, false>;
12
34
  combatUse: DB.MemberDecl<DB.Object<{
13
35
  melee_uses: DB.MemberDecl<DB.NestedEntityMap<string, {
@@ -25,7 +47,7 @@ export declare const Talisman: DB.Entity<"Talisman", {
25
47
  }, []>>, false>;
26
48
  attackModifier: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"AttackModifier", DB.Integer, []>>, false>;
27
49
  parryModifier: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"ParryModifier", DB.Integer, []>>, false>;
28
- reach: DB.MemberDecl<DB.ReferenceIdentifier, false>;
50
+ reach: DB.MemberDecl<DB.Array<DB.ReferenceIdentifier>, false>;
29
51
  length: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"Length", DB.Integer, []>>, false>;
30
52
  size: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"ShieldSize", {
31
53
  Small: DB.EnumCase<null>;
@@ -48,7 +70,10 @@ export declare const Talisman: DB.Entity<"Talisman", {
48
70
  medium: DB.MemberDecl<DB.Integer, true>;
49
71
  far: DB.MemberDecl<DB.Integer, true>;
50
72
  }>, []>>, true>;
51
- ammunition: DB.MemberDecl<DB.ReferenceIdentifier, false>;
73
+ ammunition: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"AmmunitionishIdentifier", {
74
+ Ammunition: DB.EnumCase<DB.ReferenceIdentifier>;
75
+ Weapon: DB.EnumCase<DB.ReferenceIdentifier>;
76
+ }, []>>, false>;
52
77
  length: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"Length", DB.Integer, []>>, false>;
53
78
  is_improvised_weapon: DB.MemberDecl<DB.Boolean, true>;
54
79
  }>, false>;
@@ -97,13 +122,14 @@ export declare const Talisman: DB.Entity<"Talisman", {
97
122
  translations: DB.MemberDecl<DB.NestedEntityMap<"TalismanTranslation", {
98
123
  name: DB.MemberDecl<DB.String, true>;
99
124
  effect: DB.MemberDecl<DB.String, true>;
100
- activation: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"TalismanActivationTranslation", DB.Object<{
101
- cost: DB.MemberDecl<DB.Integer, true>;
102
- duration: DB.MemberDecl<DB.String, true>;
103
- }>, []>>, false>;
104
125
  errata: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"Errata", DB.Array<DB.IncludeIdentifier<[], DB.TypeAlias<"Erratum", DB.Object<{
105
126
  date: DB.MemberDecl<DB.Date, true>;
106
127
  description: DB.MemberDecl<DB.String, true>;
107
128
  }>, []>>>, []>>, false>;
108
129
  }>, true>;
109
130
  }, undefined>;
131
+ export declare const TalismanActivationDurationExpression: DB.TypeAlias<"TalismanActivationDurationExpression", DB.IncludeIdentifier<DB.Param<string, DB.Type>[], MathOperation>, []>;
132
+ export declare const TalismanActivationDurationExpressionValue: DB.Enum<"TalismanActivationDurationExpressionValue", {
133
+ Constant: DB.EnumCase<DB.Integer>;
134
+ QualityLevels: DB.EnumCase<null>;
135
+ }, []>;
@@ -1,6 +1,7 @@
1
1
  import * as DB from "tsondb/schema/dsl";
2
+ import { DurationUnit } from "./_ActivatableSkillDuration.js";
2
3
  import { Dice } from "./_Dice.js";
3
- import { BlessedTraditionIdentifier } from "./_Identifier.js";
4
+ import { BlessedTraditionIdentifier, DerivedCharacteristicIdentifier } from "./_Identifier.js";
4
5
  import { MathOperation } from "./_MathExpression.js";
5
6
  import { CloseCombatTechnique, RangedCombatTechnique } from "./CombatTechnique.js";
6
7
  import { GenMeleeWeapon } from "./equipment/item/_MeleeWeapon.js";
@@ -21,6 +22,10 @@ export const Talisman = DB.Entity(import.meta.url, {
21
22
  comment: "The talisman type, if any.",
22
23
  type: DB.IncludeIdentifier(TalismanType),
23
24
  }),
25
+ activation: DB.Optional({
26
+ comment: "The activation parameters.",
27
+ type: DB.IncludeIdentifier(TalismanActivation),
28
+ }),
24
29
  ap_value: DB.Optional({
25
30
  comment: "The AP value for the required trade secret, if possible.",
26
31
  type: DB.Integer({ minimum: 5, multipleOf: 5 }),
@@ -59,10 +64,6 @@ export const Talisman = DB.Entity(import.meta.url, {
59
64
  comment: "The effect description.",
60
65
  type: DB.String({ minLength: 1, markdown: "block" }),
61
66
  }),
62
- activation: DB.Optional({
63
- comment: "The activation parameters.",
64
- type: DB.IncludeIdentifier(TalismanActivationTranslation),
65
- }),
66
67
  errata: DB.Optional({
67
68
  type: DB.IncludeIdentifier(Errata),
68
69
  }),
@@ -113,16 +114,55 @@ const TalismanType = DB.Enum(import.meta.url, {
113
114
  PowerfulTalisman: DB.EnumCase({ type: null }),
114
115
  }),
115
116
  });
116
- const TalismanActivationTranslation = DB.TypeAlias(import.meta.url, {
117
- name: "TalismanActivationTranslation",
117
+ const TalismanActivation = DB.TypeAlias(import.meta.url, {
118
+ name: "TalismanActivation",
118
119
  type: () => DB.Object({
119
120
  cost: DB.Required({
120
- comment: "The KP cost.",
121
- type: DB.Integer({ minimum: 0 }),
121
+ comment: "The cost to activate the talisman.",
122
+ type: DB.IncludeIdentifier(TalismanActivationCost),
122
123
  }),
123
124
  duration: DB.Required({
124
- comment: "The duration.",
125
- type: DB.String({ minLength: 1 }),
125
+ comment: "The duration of how long the talisman will be active.",
126
+ type: DB.IncludeIdentifier(TalismanActivationDuration),
127
+ }),
128
+ }),
129
+ });
130
+ const TalismanActivationCost = DB.TypeAlias(import.meta.url, {
131
+ name: "TalismanActivationCost",
132
+ type: () => DB.Object({
133
+ value: DB.Required({
134
+ comment: "The (numeric) cost value.",
135
+ type: DB.Integer({ minimum: 0 }),
126
136
  }),
137
+ unit: DB.Required({
138
+ comment: "The unit in which to pay the cost.",
139
+ type: DerivedCharacteristicIdentifier(),
140
+ }),
141
+ }),
142
+ });
143
+ const TalismanActivationDuration = DB.TypeAlias(import.meta.url, {
144
+ name: "TalismanActivationDuration",
145
+ type: () => DB.Object({
146
+ value: DB.Required({
147
+ comment: "The (numeric) duration value.",
148
+ type: DB.IncludeIdentifier(TalismanActivationDurationExpression),
149
+ }),
150
+ unit: DB.Required({
151
+ comment: "The unit of the duration.",
152
+ type: DB.IncludeIdentifier(DurationUnit),
153
+ }),
154
+ }),
155
+ });
156
+ export const TalismanActivationDurationExpression = DB.TypeAlias(import.meta.url, {
157
+ name: "TalismanActivationDurationExpression",
158
+ type: () => DB.GenIncludeIdentifier(MathOperation, [
159
+ DB.IncludeIdentifier(TalismanActivationDurationExpressionValue),
160
+ ]),
161
+ });
162
+ export const TalismanActivationDurationExpressionValue = DB.Enum(import.meta.url, {
163
+ name: "TalismanActivationDurationExpressionValue",
164
+ values: () => ({
165
+ Constant: DB.EnumCase({ type: DB.Integer({ minimum: 1 }) }),
166
+ QualityLevels: DB.EnumCase({ type: null }),
127
167
  }),
128
168
  });
@@ -50,6 +50,7 @@ export declare const CultureIdentifier: () => R;
50
50
  export declare const CurriculumIdentifier: () => R;
51
51
  export declare const CurseIdentifier: () => R;
52
52
  export declare const DaggerRitualIdentifier: () => R;
53
+ export declare const DerivedCharacteristicIdentifier: () => R;
53
54
  export declare const DisadvantageIdentifier: () => R;
54
55
  export declare const DiseaseIdentifier: () => R;
55
56
  export declare const DominationRitualIdentifier: () => R;
@@ -15,6 +15,7 @@ import { CloseCombatTechnique, RangedCombatTechnique } from "./CombatTechnique.j
15
15
  import { Condition } from "./Condition.js";
16
16
  import { Continent } from "./Continent.js";
17
17
  import { Culture } from "./Culture.js";
18
+ import { DerivedCharacteristic } from "./DerivedCharacteristic.js";
18
19
  import { Disadvantage } from "./Disadvantage.js";
19
20
  import { Disease } from "./Disease.js";
20
21
  import { Element } from "./Element.js";
@@ -202,6 +203,7 @@ export const CultureIdentifier = () => R(Culture);
202
203
  export const CurriculumIdentifier = () => R(Curriculum);
203
204
  export const CurseIdentifier = () => R(Curse);
204
205
  export const DaggerRitualIdentifier = () => R(DaggerRitual);
206
+ export const DerivedCharacteristicIdentifier = () => R(DerivedCharacteristic);
205
207
  export const DisadvantageIdentifier = () => R(Disadvantage);
206
208
  export const DiseaseIdentifier = () => R(Disease);
207
209
  export const DominationRitualIdentifier = () => R(DominationRitual);
@@ -133,6 +133,60 @@ export declare const CombatRelatedSpecialAbilityIdentifier: DB.Enum<"CombatRelat
133
133
  AdvancedCombatSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
134
134
  CommandSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
135
135
  }, []>;
136
+ export declare const ProfessionSpecialAbilityIdentifier: DB.Enum<"ProfessionSpecialAbilityIdentifier", {
137
+ Enhancement: DB.EnumCase<DB.ReferenceIdentifier>;
138
+ AdvancedCombatSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
139
+ AdvancedKarmaSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
140
+ AdvancedMagicalSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
141
+ AdvancedSkillSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
142
+ AncestorGlyph: DB.EnumCase<DB.ReferenceIdentifier>;
143
+ ArcaneOrbEnchantment: DB.EnumCase<DB.ReferenceIdentifier>;
144
+ AttireEnchantment: DB.EnumCase<DB.ReferenceIdentifier>;
145
+ Beutelzauber: DB.EnumCase<DB.ReferenceIdentifier>;
146
+ BlessedTradition: DB.EnumCase<DB.ReferenceIdentifier>;
147
+ BowlEnchantment: DB.EnumCase<DB.ReferenceIdentifier>;
148
+ BrawlingSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
149
+ CauldronEnchantment: DB.EnumCase<DB.ReferenceIdentifier>;
150
+ CeremonialItemSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
151
+ ChronicleEnchantment: DB.EnumCase<DB.ReferenceIdentifier>;
152
+ CombatSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
153
+ CombatStyleSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
154
+ CommandSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
155
+ DaggerRitual: DB.EnumCase<DB.ReferenceIdentifier>;
156
+ FamiliarSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
157
+ FatePointSexSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
158
+ FatePointSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
159
+ FoolsHatEnchantment: DB.EnumCase<DB.ReferenceIdentifier>;
160
+ GeneralSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
161
+ Haubenzauber: DB.EnumCase<DB.ReferenceIdentifier>;
162
+ InstrumentEnchantment: DB.EnumCase<DB.ReferenceIdentifier>;
163
+ KarmaSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
164
+ Krallenkettenzauber: DB.EnumCase<DB.ReferenceIdentifier>;
165
+ Kristallkugelzauber: DB.EnumCase<DB.ReferenceIdentifier>;
166
+ LiturgicalStyleSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
167
+ LycantropicGift: DB.EnumCase<DB.ReferenceIdentifier>;
168
+ MagicalSign: DB.EnumCase<DB.ReferenceIdentifier>;
169
+ MagicalSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
170
+ MagicalTradition: DB.EnumCase<DB.ReferenceIdentifier>;
171
+ MagicStyleSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
172
+ OrbEnchantment: DB.EnumCase<DB.ReferenceIdentifier>;
173
+ PactGift: DB.EnumCase<DB.ReferenceIdentifier>;
174
+ ProtectiveWardingCircleSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
175
+ RingEnchantment: DB.EnumCase<DB.ReferenceIdentifier>;
176
+ Sermon: DB.EnumCase<DB.ReferenceIdentifier>;
177
+ SexSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
178
+ SickleRitual: DB.EnumCase<DB.ReferenceIdentifier>;
179
+ SikaryanDrainSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
180
+ SkillStyleSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
181
+ SpellSwordEnchantment: DB.EnumCase<DB.ReferenceIdentifier>;
182
+ StaffEnchantment: DB.EnumCase<DB.ReferenceIdentifier>;
183
+ ToyEnchantment: DB.EnumCase<DB.ReferenceIdentifier>;
184
+ Trinkhornzauber: DB.EnumCase<DB.ReferenceIdentifier>;
185
+ VampiricGift: DB.EnumCase<DB.ReferenceIdentifier>;
186
+ Vision: DB.EnumCase<DB.ReferenceIdentifier>;
187
+ WandEnchantment: DB.EnumCase<DB.ReferenceIdentifier>;
188
+ WeaponEnchantment: DB.EnumCase<DB.ReferenceIdentifier>;
189
+ }, []>;
136
190
  export declare const TraditionIdentifier: DB.Enum<"TraditionIdentifier", {
137
191
  MagicalTradition: DB.EnumCase<DB.ReferenceIdentifier>;
138
192
  BlessedTradition: DB.EnumCase<DB.ReferenceIdentifier>;
@@ -347,6 +401,10 @@ export declare const EquipmentIdentifier: DB.Enum<"EquipmentIdentifier", {
347
401
  WeaponAccessory: DB.EnumCase<DB.ReferenceIdentifier>;
348
402
  WorkingSupernaturalCreature: DB.EnumCase<DB.ReferenceIdentifier>;
349
403
  }, []>;
404
+ export declare const AmmunitionishIdentifier: DB.Enum<"AmmunitionishIdentifier", {
405
+ Ammunition: DB.EnumCase<DB.ReferenceIdentifier>;
406
+ Weapon: DB.EnumCase<DB.ReferenceIdentifier>;
407
+ }, []>;
350
408
  export declare const AdvancedSkillStyleSpecialAbilityIdentifier: DB.Enum<"AdvancedSkillStyleSpecialAbilityIdentifier", {
351
409
  AdvancedCombatSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
352
410
  AdvancedSkillSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
@@ -1,5 +1,5 @@
1
1
  import * as DB from "tsondb/schema/dsl";
2
- import { AdvancedCombatSpecialAbilityIdentifier, AdvancedKarmaSpecialAbilityIdentifier, AdvancedMagicalSpecialAbilityIdentifier, AdvancedSkillSpecialAbilityIdentifier, AdvantageIdentifier, AmmunitionIdentifier, AncestorGlyphIdentifier, AnimalCareIdentifier, AnimalIdentifier, AnimalShapeIdentifier, AnimalShapeSizeIdentifier, AnimistPowerIdentifier, ArcaneBardTraditionIdentifier, ArcaneDancerTraditionIdentifier, ArcaneOrbEnchantmentIdentifier, ArmorIdentifier, AspectIdentifier, AttireEnchantmentIdentifier, AttributeIdentifier, BandageOrRemedyIdentifier, BeutelzauberIdentifier, BlessedTraditionIdentifier, BlessingIdentifier, BookIdentifier, BowlEnchantmentIdentifier, BrawlingSpecialAbilityIdentifier, CantripIdentifier, CauldronEnchantmentIdentifier, CeremonialItemIdentifier, CeremonialItemSpecialAbilityIdentifier, CeremonyIdentifier, ChronicleEnchantmentIdentifier, CloseCombatTechniqueIdentifier, ClothesIdentifier, ClothingPackageIdentifier, CombatSpecialAbilityIdentifier, CombatStyleSpecialAbilityIdentifier, CommandSpecialAbilityIdentifier, ContainerIdentifier, CultureIdentifier, CurseIdentifier, DaggerRitualIdentifier, DisadvantageIdentifier, DiseaseIdentifier, DominationRitualIdentifier, ElementIdentifier, ElixirIdentifier, ElvenMagicalSongIdentifier, EquipmentOfBlessedOnesIdentifier, FamiliarSpecialAbilityIdentifier, FatePointSexSpecialAbilityIdentifier, FatePointSpecialAbilityIdentifier, FocusRuleIdentifier, FoolsHatEnchantmentIdentifier, GemOrPreciousStoneIdentifier, GeneralIdentifier, GeneralSpecialAbilityIdentifier, GeodeRitualIdentifier, HaubenzauberIdentifier, IlluminationLightSourceIdentifier, IlluminationRefillOrSupplyIdentifier, InstrumentEnchantmentIdentifier, JesterTrickIdentifier, JewelryIdentifier, KarmaSpecialAbilityIdentifier, KrallenkettenzauberIdentifier, KristallkugelzauberIdentifier, LaboratoryIdentifier, LanguageIdentifier, LiebesspielzeugIdentifier, LiturgicalChantIdentifier, LiturgicalStyleSpecialAbilityIdentifier, LuxuryGoodIdentifier, LycantropicGiftIdentifier, MagicalArtifactIdentifier, MagicalDanceIdentifier, MagicalMelodyIdentifier, MagicalRuneIdentifier, MagicalSignIdentifier, MagicalSpecialAbilityIdentifier, MagicalTraditionIdentifier, MagicStyleSpecialAbilityIdentifier, MusicalInstrumentIdentifier, NewspaperIdentifier, OptionalRuleIdentifier, OrbEnchantmentIdentifier, OrienteeringAidIdentifier, PactGiftIdentifier, PatronIdentifier, PoisonIdentifier, PropertyIdentifier, ProtectiveWardingCircleSpecialAbilityIdentifier, RaceIdentifier, RangedCombatTechniqueIdentifier, RingEnchantmentIdentifier, RitualIdentifier, RopeOrChainIdentifier, ScriptIdentifier, SermonIdentifier, SexPracticeIdentifier, SexSpecialAbilityIdentifier, SickleRitualIdentifier, SikaryanDrainSpecialAbilityIdentifier, SkillApplicationIdentifier, SkillIdentifier, SkillStyleSpecialAbilityIdentifier, SpellIdentifier, SpellSwordEnchantmentIdentifier, StaffEnchantmentIdentifier, StationeryIdentifier, TargetCategoryIdentifier, ThievesToolIdentifier, ToolOfTheTradeIdentifier, ToyEnchantmentIdentifier, TradeSecretIdentifier, TravelGearOrToolIdentifier, TrinkhornzauberIdentifier, VampiricGiftIdentifier, VehicleIdentifier, VisionIdentifier, WandEnchantmentIdentifier, WeaponAccessoryIdentifier, WeaponEnchantmentIdentifier, WeaponIdentifier, WorkingSupernaturalCreatureIdentifier, ZibiljaRitualIdentifier, } from "./_Identifier.js";
2
+ import { AdvancedCombatSpecialAbilityIdentifier, AdvancedKarmaSpecialAbilityIdentifier, AdvancedMagicalSpecialAbilityIdentifier, AdvancedSkillSpecialAbilityIdentifier, AdvantageIdentifier, AmmunitionIdentifier, AncestorGlyphIdentifier, AnimalCareIdentifier, AnimalIdentifier, AnimalShapeIdentifier, AnimalShapeSizeIdentifier, AnimistPowerIdentifier, ArcaneBardTraditionIdentifier, ArcaneDancerTraditionIdentifier, ArcaneOrbEnchantmentIdentifier, ArmorIdentifier, AspectIdentifier, AttireEnchantmentIdentifier, AttributeIdentifier, BandageOrRemedyIdentifier, BeutelzauberIdentifier, BlessedTraditionIdentifier, BlessingIdentifier, BookIdentifier, BowlEnchantmentIdentifier, BrawlingSpecialAbilityIdentifier, CantripIdentifier, CauldronEnchantmentIdentifier, CeremonialItemIdentifier, CeremonialItemSpecialAbilityIdentifier, CeremonyIdentifier, ChronicleEnchantmentIdentifier, CloseCombatTechniqueIdentifier, ClothesIdentifier, ClothingPackageIdentifier, CombatSpecialAbilityIdentifier, CombatStyleSpecialAbilityIdentifier, CommandSpecialAbilityIdentifier, ContainerIdentifier, CultureIdentifier, CurseIdentifier, DaggerRitualIdentifier, DisadvantageIdentifier, DiseaseIdentifier, DominationRitualIdentifier, ElementIdentifier, ElixirIdentifier, ElvenMagicalSongIdentifier, EnhancementIdentifier, EquipmentOfBlessedOnesIdentifier, FamiliarSpecialAbilityIdentifier, FatePointSexSpecialAbilityIdentifier, FatePointSpecialAbilityIdentifier, FocusRuleIdentifier, FoolsHatEnchantmentIdentifier, GemOrPreciousStoneIdentifier, GeneralIdentifier, GeneralSpecialAbilityIdentifier, GeodeRitualIdentifier, HaubenzauberIdentifier, IlluminationLightSourceIdentifier, IlluminationRefillOrSupplyIdentifier, InstrumentEnchantmentIdentifier, JesterTrickIdentifier, JewelryIdentifier, KarmaSpecialAbilityIdentifier, KrallenkettenzauberIdentifier, KristallkugelzauberIdentifier, LaboratoryIdentifier, LanguageIdentifier, LiebesspielzeugIdentifier, LiturgicalChantIdentifier, LiturgicalStyleSpecialAbilityIdentifier, LuxuryGoodIdentifier, LycantropicGiftIdentifier, MagicalArtifactIdentifier, MagicalDanceIdentifier, MagicalMelodyIdentifier, MagicalRuneIdentifier, MagicalSignIdentifier, MagicalSpecialAbilityIdentifier, MagicalTraditionIdentifier, MagicStyleSpecialAbilityIdentifier, MusicalInstrumentIdentifier, NewspaperIdentifier, OptionalRuleIdentifier, OrbEnchantmentIdentifier, OrienteeringAidIdentifier, PactGiftIdentifier, PatronIdentifier, PoisonIdentifier, PropertyIdentifier, ProtectiveWardingCircleSpecialAbilityIdentifier, RaceIdentifier, RangedCombatTechniqueIdentifier, RingEnchantmentIdentifier, RitualIdentifier, RopeOrChainIdentifier, ScriptIdentifier, SermonIdentifier, SexPracticeIdentifier, SexSpecialAbilityIdentifier, SickleRitualIdentifier, SikaryanDrainSpecialAbilityIdentifier, SkillApplicationIdentifier, SkillIdentifier, SkillStyleSpecialAbilityIdentifier, SpellIdentifier, SpellSwordEnchantmentIdentifier, StaffEnchantmentIdentifier, StationeryIdentifier, TargetCategoryIdentifier, ThievesToolIdentifier, ToolOfTheTradeIdentifier, ToyEnchantmentIdentifier, TradeSecretIdentifier, TravelGearOrToolIdentifier, TrinkhornzauberIdentifier, VampiricGiftIdentifier, VehicleIdentifier, VisionIdentifier, WandEnchantmentIdentifier, WeaponAccessoryIdentifier, WeaponEnchantmentIdentifier, WeaponIdentifier, WorkingSupernaturalCreatureIdentifier, ZibiljaRitualIdentifier, } from "./_Identifier.js";
3
3
  export const ActivatableIdentifier = DB.Enum(import.meta.url, {
4
4
  name: "ActivatableIdentifier",
5
5
  values: () => ({
@@ -98,6 +98,13 @@ export const CombatRelatedSpecialAbilityIdentifier = DB.Enum(import.meta.url, {
98
98
  CommandSpecialAbility: DB.EnumCase({ type: CommandSpecialAbilityIdentifier() }),
99
99
  }),
100
100
  });
101
+ export const ProfessionSpecialAbilityIdentifier = DB.Enum(import.meta.url, {
102
+ name: "ProfessionSpecialAbilityIdentifier",
103
+ values: () => ({
104
+ ...SpecialAbilityIdentifier.type.value.values,
105
+ Enhancement: DB.EnumCase({ type: EnhancementIdentifier() }),
106
+ }),
107
+ });
101
108
  export const TraditionIdentifier = DB.Enum(import.meta.url, {
102
109
  name: "TraditionIdentifier",
103
110
  values: () => ({
@@ -308,6 +315,13 @@ export const EquipmentIdentifier = DB.Enum(import.meta.url, {
308
315
  WorkingSupernaturalCreature: DB.EnumCase({ type: WorkingSupernaturalCreatureIdentifier() }),
309
316
  }),
310
317
  });
318
+ export const AmmunitionishIdentifier = DB.Enum(import.meta.url, {
319
+ name: "AmmunitionishIdentifier",
320
+ values: () => ({
321
+ Ammunition: DB.EnumCase({ type: AmmunitionIdentifier() }),
322
+ Weapon: DB.EnumCase({ type: WeaponIdentifier() }),
323
+ }),
324
+ });
311
325
  export const AdvancedSkillStyleSpecialAbilityIdentifier = DB.Enum(import.meta.url, {
312
326
  name: "AdvancedSkillStyleSpecialAbilityIdentifier",
313
327
  values: () => ({
@@ -46,7 +46,7 @@ export declare const BandageOrRemedy: DB.Entity<"BandageOrRemedy", {
46
46
  }, []>>, false>;
47
47
  attackModifier: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"AttackModifier", DB.Integer, []>>, false>;
48
48
  parryModifier: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"ParryModifier", DB.Integer, []>>, false>;
49
- reach: DB.MemberDecl<DB.ReferenceIdentifier, false>;
49
+ reach: DB.MemberDecl<DB.Array<DB.ReferenceIdentifier>, false>;
50
50
  length: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"Length", DB.Integer, []>>, false>;
51
51
  size: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"ShieldSize", {
52
52
  Small: DB.EnumCase<null>;
@@ -69,7 +69,10 @@ export declare const BandageOrRemedy: DB.Entity<"BandageOrRemedy", {
69
69
  medium: DB.MemberDecl<DB.Integer, true>;
70
70
  far: DB.MemberDecl<DB.Integer, true>;
71
71
  }>, []>>, true>;
72
- ammunition: DB.MemberDecl<DB.ReferenceIdentifier, false>;
72
+ ammunition: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"AmmunitionishIdentifier", {
73
+ Ammunition: DB.EnumCase<DB.ReferenceIdentifier>;
74
+ Weapon: DB.EnumCase<DB.ReferenceIdentifier>;
75
+ }, []>>, false>;
73
76
  length: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"Length", DB.Integer, []>>, false>;
74
77
  is_improvised_weapon: DB.MemberDecl<DB.Boolean, true>;
75
78
  }>, false>;
@@ -28,7 +28,7 @@ export declare const CeremonialItem: DB.Entity<"CeremonialItem", {
28
28
  }, []>>, false>;
29
29
  structure_points: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"StructurePoints", DB.Array<DB.IncludeIdentifier<[], DB.TypeAlias<"StructurePointsComponent", DB.Object<{
30
30
  points: DB.MemberDecl<DB.Integer, true>;
31
- }>, []>>>, []>>, true>;
31
+ }>, []>>>, []>>, false>;
32
32
  associated_tradition: DB.MemberDecl<DB.ReferenceIdentifier, true>;
33
33
  combat_use: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"CombatUse", {
34
34
  Weapon: DB.EnumCase<DB.IncludeIdentifier<[], DB.TypeAlias<"ImprovisedWeapon", DB.Object<{
@@ -47,7 +47,7 @@ export declare const CeremonialItem: DB.Entity<"CeremonialItem", {
47
47
  }, []>>, false>;
48
48
  attackModifier: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"AttackModifier", DB.Integer, []>>, false>;
49
49
  parryModifier: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"ParryModifier", DB.Integer, []>>, false>;
50
- reach: DB.MemberDecl<DB.ReferenceIdentifier, false>;
50
+ reach: DB.MemberDecl<DB.Array<DB.ReferenceIdentifier>, false>;
51
51
  length: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"Length", DB.Integer, []>>, false>;
52
52
  size: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"ShieldSize", {
53
53
  Small: DB.EnumCase<null>;
@@ -70,7 +70,10 @@ export declare const CeremonialItem: DB.Entity<"CeremonialItem", {
70
70
  medium: DB.MemberDecl<DB.Integer, true>;
71
71
  far: DB.MemberDecl<DB.Integer, true>;
72
72
  }>, []>>, true>;
73
- ammunition: DB.MemberDecl<DB.ReferenceIdentifier, false>;
73
+ ammunition: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"AmmunitionishIdentifier", {
74
+ Ammunition: DB.EnumCase<DB.ReferenceIdentifier>;
75
+ Weapon: DB.EnumCase<DB.ReferenceIdentifier>;
76
+ }, []>>, false>;
74
77
  length: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"Length", DB.Integer, []>>, false>;
75
78
  is_improvised_weapon: DB.MemberDecl<DB.Boolean, true>;
76
79
  }>, false>;
@@ -19,7 +19,7 @@ export const CeremonialItem = DB.Entity(import.meta.url, {
19
19
  comment: "The complexity of crafting the item.",
20
20
  type: DB.IncludeIdentifier(Complexity),
21
21
  }),
22
- structure_points: DB.Required({
22
+ structure_points: DB.Optional({
23
23
  comment: "The structure points of the item. Use an array if the item consists of multiple components that have individual structure points.",
24
24
  type: DB.IncludeIdentifier(StructurePoints),
25
25
  }),
@@ -46,7 +46,7 @@ export declare const Clothes: DB.Entity<"Clothes", {
46
46
  }, []>>, false>;
47
47
  attackModifier: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"AttackModifier", DB.Integer, []>>, false>;
48
48
  parryModifier: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"ParryModifier", DB.Integer, []>>, false>;
49
- reach: DB.MemberDecl<DB.ReferenceIdentifier, false>;
49
+ reach: DB.MemberDecl<DB.Array<DB.ReferenceIdentifier>, false>;
50
50
  length: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"Length", DB.Integer, []>>, false>;
51
51
  size: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"ShieldSize", {
52
52
  Small: DB.EnumCase<null>;
@@ -69,7 +69,10 @@ export declare const Clothes: DB.Entity<"Clothes", {
69
69
  medium: DB.MemberDecl<DB.Integer, true>;
70
70
  far: DB.MemberDecl<DB.Integer, true>;
71
71
  }>, []>>, true>;
72
- ammunition: DB.MemberDecl<DB.ReferenceIdentifier, false>;
72
+ ammunition: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"AmmunitionishIdentifier", {
73
+ Ammunition: DB.EnumCase<DB.ReferenceIdentifier>;
74
+ Weapon: DB.EnumCase<DB.ReferenceIdentifier>;
75
+ }, []>>, false>;
73
76
  length: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"Length", DB.Integer, []>>, false>;
74
77
  is_improvised_weapon: DB.MemberDecl<DB.Boolean, true>;
75
78
  }>, false>;
@@ -46,7 +46,7 @@ export declare const Container: DB.Entity<"Container", {
46
46
  }, []>>, false>;
47
47
  attackModifier: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"AttackModifier", DB.Integer, []>>, false>;
48
48
  parryModifier: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"ParryModifier", DB.Integer, []>>, false>;
49
- reach: DB.MemberDecl<DB.ReferenceIdentifier, false>;
49
+ reach: DB.MemberDecl<DB.Array<DB.ReferenceIdentifier>, false>;
50
50
  length: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"Length", DB.Integer, []>>, false>;
51
51
  size: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"ShieldSize", {
52
52
  Small: DB.EnumCase<null>;
@@ -69,7 +69,10 @@ export declare const Container: DB.Entity<"Container", {
69
69
  medium: DB.MemberDecl<DB.Integer, true>;
70
70
  far: DB.MemberDecl<DB.Integer, true>;
71
71
  }>, []>>, true>;
72
- ammunition: DB.MemberDecl<DB.ReferenceIdentifier, false>;
72
+ ammunition: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"AmmunitionishIdentifier", {
73
+ Ammunition: DB.EnumCase<DB.ReferenceIdentifier>;
74
+ Weapon: DB.EnumCase<DB.ReferenceIdentifier>;
75
+ }, []>>, false>;
73
76
  length: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"Length", DB.Integer, []>>, false>;
74
77
  is_improvised_weapon: DB.MemberDecl<DB.Boolean, true>;
75
78
  }>, false>;
@@ -95,10 +95,25 @@ export declare const Elixir: DB.Entity<"Elixir", {
95
95
  }>, []>>>, false>;
96
96
  typical_ingredients: DB.MemberDecl<DB.Array<DB.String>, true>;
97
97
  brewing_process_prerequisites: DB.MemberDecl<DB.String, false>;
98
- quality_levels: DB.MemberDecl<DB.Array<DB.String>, true>;
98
+ quality_levels: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"ElixirEffect", {
99
+ Plain: DB.EnumCase<DB.IncludeIdentifier<[], DB.TypeAlias<"ElixirPlainEffect", DB.Object<{
100
+ text: DB.MemberDecl<DB.String, true>;
101
+ }>, []>>>;
102
+ ForEachQualityLevel: DB.EnumCase<DB.IncludeIdentifier<[], DB.TypeAlias<"ElixirEffectForEachQualityLevel", DB.Object<{
103
+ qualityLevels: DB.MemberDecl<DB.Array<DB.String>, true>;
104
+ }>, []>>>;
105
+ }, []>>, true>;
99
106
  errata: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"Errata", DB.Array<DB.IncludeIdentifier<[], DB.TypeAlias<"Erratum", DB.Object<{
100
107
  date: DB.MemberDecl<DB.Date, true>;
101
108
  description: DB.MemberDecl<DB.String, true>;
102
109
  }>, []>>>, []>>, false>;
103
110
  }>, true>;
104
111
  }, undefined>;
112
+ export declare const ElixirEffect: DB.Enum<"ElixirEffect", {
113
+ Plain: DB.EnumCase<DB.IncludeIdentifier<[], DB.TypeAlias<"ElixirPlainEffect", DB.Object<{
114
+ text: DB.MemberDecl<DB.String, true>;
115
+ }>, []>>>;
116
+ ForEachQualityLevel: DB.EnumCase<DB.IncludeIdentifier<[], DB.TypeAlias<"ElixirEffectForEachQualityLevel", DB.Object<{
117
+ qualityLevels: DB.MemberDecl<DB.Array<DB.String>, true>;
118
+ }>, []>>>;
119
+ }, []>;
@@ -59,11 +59,8 @@ export const Elixir = DB.Entity(import.meta.url, {
59
59
  type: DB.String({ minLength: 1, markdown: "block" }),
60
60
  }),
61
61
  quality_levels: DB.Required({
62
- comment: "The list of effects for each quality level. The first element represents QL 1, the second element QL 2, and so on.",
63
- type: DB.Array(DB.String({ minLength: 1, markdown: "block" }), {
64
- minItems: 6,
65
- maxItems: 6,
66
- }),
62
+ comment: "The effect description may be either a plain text or a text that is divided by a list of effects for each quality level.",
63
+ type: DB.IncludeIdentifier(ElixirEffect),
67
64
  }),
68
65
  errata: DB.Optional({
69
66
  type: DB.IncludeIdentifier(Errata),
@@ -78,3 +75,36 @@ export const Elixir = DB.Entity(import.meta.url, {
78
75
  },
79
76
  ],
80
77
  });
78
+ export const ElixirEffect = DB.Enum(import.meta.url, {
79
+ name: "ElixirEffect",
80
+ comment: "The effect description may be either a plain text or a text that is divided by a list of effects for each quality level.",
81
+ values: () => ({
82
+ Plain: DB.EnumCase({
83
+ type: DB.IncludeIdentifier(ElixirPlainEffect),
84
+ }),
85
+ ForEachQualityLevel: DB.EnumCase({
86
+ type: DB.IncludeIdentifier(ElixirEffectForEachQualityLevel),
87
+ }),
88
+ }),
89
+ });
90
+ const ElixirPlainEffect = DB.TypeAlias(import.meta.url, {
91
+ name: "ElixirPlainEffect",
92
+ type: () => DB.Object({
93
+ text: DB.Required({
94
+ comment: "The effect description.",
95
+ type: DB.String({ minLength: 1, markdown: "block" }),
96
+ }),
97
+ }),
98
+ });
99
+ const ElixirEffectForEachQualityLevel = DB.TypeAlias(import.meta.url, {
100
+ name: "ElixirEffectForEachQualityLevel",
101
+ type: () => DB.Object({
102
+ qualityLevels: DB.Required({
103
+ comment: "The list of effects for each quality level. The first element represents QL 1, the second element QL 2, and so on.",
104
+ type: DB.Array(DB.String({ minLength: 1, markdown: "block" }), {
105
+ minItems: 6,
106
+ maxItems: 6,
107
+ }),
108
+ }),
109
+ }),
110
+ });
@@ -60,7 +60,7 @@ export declare const EquipmentOfBlessedOnes: DB.Entity<"EquipmentOfBlessedOnes",
60
60
  }, []>>, false>;
61
61
  attackModifier: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"AttackModifier", DB.Integer, []>>, false>;
62
62
  parryModifier: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"ParryModifier", DB.Integer, []>>, false>;
63
- reach: DB.MemberDecl<DB.ReferenceIdentifier, false>;
63
+ reach: DB.MemberDecl<DB.Array<DB.ReferenceIdentifier>, false>;
64
64
  length: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"Length", DB.Integer, []>>, false>;
65
65
  size: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"ShieldSize", {
66
66
  Small: DB.EnumCase<null>;
@@ -83,7 +83,10 @@ export declare const EquipmentOfBlessedOnes: DB.Entity<"EquipmentOfBlessedOnes",
83
83
  medium: DB.MemberDecl<DB.Integer, true>;
84
84
  far: DB.MemberDecl<DB.Integer, true>;
85
85
  }>, []>>, true>;
86
- ammunition: DB.MemberDecl<DB.ReferenceIdentifier, false>;
86
+ ammunition: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"AmmunitionishIdentifier", {
87
+ Ammunition: DB.EnumCase<DB.ReferenceIdentifier>;
88
+ Weapon: DB.EnumCase<DB.ReferenceIdentifier>;
89
+ }, []>>, false>;
87
90
  length: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"Length", DB.Integer, []>>, false>;
88
91
  is_improvised_weapon: DB.MemberDecl<DB.Boolean, true>;
89
92
  }>, false>;
@@ -55,7 +55,7 @@ export declare const IlluminationLightSource: DB.Entity<"IlluminationLightSource
55
55
  }, []>>, false>;
56
56
  attackModifier: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"AttackModifier", DB.Integer, []>>, false>;
57
57
  parryModifier: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"ParryModifier", DB.Integer, []>>, false>;
58
- reach: DB.MemberDecl<DB.ReferenceIdentifier, false>;
58
+ reach: DB.MemberDecl<DB.Array<DB.ReferenceIdentifier>, false>;
59
59
  length: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"Length", DB.Integer, []>>, false>;
60
60
  size: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"ShieldSize", {
61
61
  Small: DB.EnumCase<null>;
@@ -78,7 +78,10 @@ export declare const IlluminationLightSource: DB.Entity<"IlluminationLightSource
78
78
  medium: DB.MemberDecl<DB.Integer, true>;
79
79
  far: DB.MemberDecl<DB.Integer, true>;
80
80
  }>, []>>, true>;
81
- ammunition: DB.MemberDecl<DB.ReferenceIdentifier, false>;
81
+ ammunition: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"AmmunitionishIdentifier", {
82
+ Ammunition: DB.EnumCase<DB.ReferenceIdentifier>;
83
+ Weapon: DB.EnumCase<DB.ReferenceIdentifier>;
84
+ }, []>>, false>;
82
85
  length: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"Length", DB.Integer, []>>, false>;
83
86
  is_improvised_weapon: DB.MemberDecl<DB.Boolean, true>;
84
87
  }>, false>;
@@ -46,7 +46,7 @@ export declare const IlluminationRefillOrSupply: DB.Entity<"IlluminationRefillOr
46
46
  }, []>>, false>;
47
47
  attackModifier: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"AttackModifier", DB.Integer, []>>, false>;
48
48
  parryModifier: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"ParryModifier", DB.Integer, []>>, false>;
49
- reach: DB.MemberDecl<DB.ReferenceIdentifier, false>;
49
+ reach: DB.MemberDecl<DB.Array<DB.ReferenceIdentifier>, false>;
50
50
  length: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"Length", DB.Integer, []>>, false>;
51
51
  size: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"ShieldSize", {
52
52
  Small: DB.EnumCase<null>;
@@ -69,7 +69,10 @@ export declare const IlluminationRefillOrSupply: DB.Entity<"IlluminationRefillOr
69
69
  medium: DB.MemberDecl<DB.Integer, true>;
70
70
  far: DB.MemberDecl<DB.Integer, true>;
71
71
  }>, []>>, true>;
72
- ammunition: DB.MemberDecl<DB.ReferenceIdentifier, false>;
72
+ ammunition: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"AmmunitionishIdentifier", {
73
+ Ammunition: DB.EnumCase<DB.ReferenceIdentifier>;
74
+ Weapon: DB.EnumCase<DB.ReferenceIdentifier>;
75
+ }, []>>, false>;
73
76
  length: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"Length", DB.Integer, []>>, false>;
74
77
  is_improvised_weapon: DB.MemberDecl<DB.Boolean, true>;
75
78
  }>, false>;
@@ -46,7 +46,7 @@ export declare const Liebesspielzeug: DB.Entity<"Liebesspielzeug", {
46
46
  }, []>>, false>;
47
47
  attackModifier: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"AttackModifier", DB.Integer, []>>, false>;
48
48
  parryModifier: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"ParryModifier", DB.Integer, []>>, false>;
49
- reach: DB.MemberDecl<DB.ReferenceIdentifier, false>;
49
+ reach: DB.MemberDecl<DB.Array<DB.ReferenceIdentifier>, false>;
50
50
  length: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"Length", DB.Integer, []>>, false>;
51
51
  size: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"ShieldSize", {
52
52
  Small: DB.EnumCase<null>;
@@ -69,7 +69,10 @@ export declare const Liebesspielzeug: DB.Entity<"Liebesspielzeug", {
69
69
  medium: DB.MemberDecl<DB.Integer, true>;
70
70
  far: DB.MemberDecl<DB.Integer, true>;
71
71
  }>, []>>, true>;
72
- ammunition: DB.MemberDecl<DB.ReferenceIdentifier, false>;
72
+ ammunition: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"AmmunitionishIdentifier", {
73
+ Ammunition: DB.EnumCase<DB.ReferenceIdentifier>;
74
+ Weapon: DB.EnumCase<DB.ReferenceIdentifier>;
75
+ }, []>>, false>;
73
76
  length: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"Length", DB.Integer, []>>, false>;
74
77
  is_improvised_weapon: DB.MemberDecl<DB.Boolean, true>;
75
78
  }>, false>;
@@ -46,7 +46,7 @@ export declare const LuxuryGood: DB.Entity<"LuxuryGood", {
46
46
  }, []>>, false>;
47
47
  attackModifier: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"AttackModifier", DB.Integer, []>>, false>;
48
48
  parryModifier: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"ParryModifier", DB.Integer, []>>, false>;
49
- reach: DB.MemberDecl<DB.ReferenceIdentifier, false>;
49
+ reach: DB.MemberDecl<DB.Array<DB.ReferenceIdentifier>, false>;
50
50
  length: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"Length", DB.Integer, []>>, false>;
51
51
  size: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"ShieldSize", {
52
52
  Small: DB.EnumCase<null>;
@@ -69,7 +69,10 @@ export declare const LuxuryGood: DB.Entity<"LuxuryGood", {
69
69
  medium: DB.MemberDecl<DB.Integer, true>;
70
70
  far: DB.MemberDecl<DB.Integer, true>;
71
71
  }>, []>>, true>;
72
- ammunition: DB.MemberDecl<DB.ReferenceIdentifier, false>;
72
+ ammunition: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"AmmunitionishIdentifier", {
73
+ Ammunition: DB.EnumCase<DB.ReferenceIdentifier>;
74
+ Weapon: DB.EnumCase<DB.ReferenceIdentifier>;
75
+ }, []>>, false>;
73
76
  length: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"Length", DB.Integer, []>>, false>;
74
77
  is_improvised_weapon: DB.MemberDecl<DB.Boolean, true>;
75
78
  }>, false>;