optolith-database-schema 0.17.2 → 0.18.2

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 (630) hide show
  1. package/CHANGELOG.md +41 -1
  2. package/lib/main.d.ts +2 -101
  3. package/lib/main.js +361 -106
  4. package/lib/test.d.ts +1 -0
  5. package/lib/test.js +2 -0
  6. package/lib/types/Advantage.d.ts +921 -63
  7. package/lib/types/Advantage.js +42 -13
  8. package/lib/types/AnimalDisease.d.ts +90 -59
  9. package/lib/types/AnimalDisease.js +28 -13
  10. package/lib/types/AnimalType.d.ts +6 -28
  11. package/lib/types/AnimalType.js +14 -13
  12. package/lib/types/ArcaneBardTradition.d.ts +30 -10
  13. package/lib/types/ArcaneBardTradition.js +7 -13
  14. package/lib/types/ArcaneDancerTradition.d.ts +30 -10
  15. package/lib/types/ArcaneDancerTradition.js +7 -13
  16. package/lib/types/Aspect.d.ts +7 -33
  17. package/lib/types/Aspect.js +20 -13
  18. package/lib/types/Attribute.d.ts +8 -36
  19. package/lib/types/Attribute.js +23 -13
  20. package/lib/types/Blessing.d.ts +96 -113
  21. package/lib/types/Blessing.js +94 -13
  22. package/lib/types/Cantrip.d.ts +132 -183
  23. package/lib/types/Cantrip.js +159 -13
  24. package/lib/types/Ceremony.d.ts +645 -113
  25. package/lib/types/Ceremony.js +87 -13
  26. package/lib/types/CombatTechnique.d.ts +127 -0
  27. package/lib/types/CombatTechnique.js +101 -0
  28. package/lib/types/Condition.d.ts +52 -40
  29. package/lib/types/Condition.js +31 -13
  30. package/lib/types/Continent.d.ts +6 -30
  31. package/lib/types/Continent.js +15 -13
  32. package/lib/types/Culture.d.ts +142 -369
  33. package/lib/types/Culture.js +355 -13
  34. package/lib/types/DerivedCharacteristic.d.ts +76 -61
  35. package/lib/types/DerivedCharacteristic.js +45 -13
  36. package/lib/types/Disadvantage.d.ts +921 -58
  37. package/lib/types/Disadvantage.js +45 -13
  38. package/lib/types/Disease.d.ts +81 -43
  39. package/lib/types/Disease.js +15 -13
  40. package/lib/types/Element.d.ts +6 -28
  41. package/lib/types/Element.js +14 -13
  42. package/lib/types/ExperienceLevel.d.ts +13 -64
  43. package/lib/types/ExperienceLevel.js +43 -13
  44. package/lib/types/EyeColor.d.ts +6 -28
  45. package/lib/types/EyeColor.js +14 -13
  46. package/lib/types/FamiliarsTrick.d.ts +189 -266
  47. package/lib/types/FamiliarsTrick.js +193 -13
  48. package/lib/types/HairColor.d.ts +6 -28
  49. package/lib/types/HairColor.js +14 -13
  50. package/lib/types/Lessons.d.ts +180 -0
  51. package/lib/types/Lessons.js +212 -0
  52. package/lib/types/LiturgicalChant.d.ts +645 -113
  53. package/lib/types/LiturgicalChant.js +87 -13
  54. package/lib/types/Locale.d.ts +11 -36
  55. package/lib/types/Locale.js +1316 -13
  56. package/lib/types/MetaCondition.d.ts +52 -43
  57. package/lib/types/MetaCondition.js +32 -13
  58. package/lib/types/PactCategory.d.ts +74 -78
  59. package/lib/types/PactCategory.js +65 -13
  60. package/lib/types/Patron.d.ts +100 -197
  61. package/lib/types/Patron.js +195 -13
  62. package/lib/types/PatronCategory.d.ts +7 -36
  63. package/lib/types/PatronCategory.js +19 -13
  64. package/lib/types/PersonalityTrait.d.ts +80 -67
  65. package/lib/types/PersonalityTrait.js +51 -13
  66. package/lib/types/Profession.d.ts +1941 -665
  67. package/lib/types/Profession.js +610 -13
  68. package/lib/types/Property.d.ts +7 -34
  69. package/lib/types/Property.js +19 -13
  70. package/lib/types/Race.d.ts +163 -349
  71. package/lib/types/Race.js +287 -13
  72. package/lib/types/Region.d.ts +6 -28
  73. package/lib/types/Region.js +14 -13
  74. package/lib/types/Ritual.d.ts +642 -111
  75. package/lib/types/Ritual.js +88 -13
  76. package/lib/types/Service.d.ts +55 -43
  77. package/lib/types/Service.js +38 -13
  78. package/lib/types/SexPractice.d.ts +50 -47
  79. package/lib/types/SexPractice.js +32 -13
  80. package/lib/types/Skill.d.ts +112 -131
  81. package/lib/types/Skill.js +120 -10
  82. package/lib/types/SkillGroup.d.ts +8 -37
  83. package/lib/types/SkillGroup.js +23 -13
  84. package/lib/types/SkillModificationLevel.d.ts +31 -101
  85. package/lib/types/SkillModificationLevel.js +95 -10
  86. package/lib/types/SocialStatus.d.ts +7 -28
  87. package/lib/types/SocialStatus.js +18 -13
  88. package/lib/types/Spell.d.ts +642 -111
  89. package/lib/types/Spell.js +88 -13
  90. package/lib/types/State.d.ts +51 -36
  91. package/lib/types/State.js +24 -13
  92. package/lib/types/Talisman.d.ts +64 -70
  93. package/lib/types/Talisman.js +64 -13
  94. package/lib/types/TargetCategory.d.ts +7 -42
  95. package/lib/types/TargetCategory.js +19 -13
  96. package/lib/types/_Activatable.d.ts +1599 -1366
  97. package/lib/types/_Activatable.js +1392 -2
  98. package/lib/types/_ActivatableSelectOptionCategory.d.ts +657 -386
  99. package/lib/types/_ActivatableSelectOptionCategory.js +381 -1
  100. package/lib/types/_ActivatableSkill.d.ts +1150 -34
  101. package/lib/types/_ActivatableSkill.js +82 -1
  102. package/lib/types/_ActivatableSkillCastingTime.d.ts +66 -74
  103. package/lib/types/_ActivatableSkillCastingTime.js +92 -1
  104. package/lib/types/_ActivatableSkillCheckResultBased.d.ts +25 -33
  105. package/lib/types/_ActivatableSkillCheckResultBased.js +44 -1
  106. package/lib/types/_ActivatableSkillCost.d.ts +239 -255
  107. package/lib/types/_ActivatableSkillCost.js +224 -1
  108. package/lib/types/_ActivatableSkillDuration.d.ts +202 -135
  109. package/lib/types/_ActivatableSkillDuration.js +138 -1
  110. package/lib/types/_ActivatableSkillEffect.d.ts +16 -68
  111. package/lib/types/_ActivatableSkillEffect.js +65 -1
  112. package/lib/types/_ActivatableSkillRange.d.ts +61 -115
  113. package/lib/types/_ActivatableSkillRange.js +106 -1
  114. package/lib/types/_ActivatableSkillTargetCategory.d.ts +13 -39
  115. package/lib/types/_ActivatableSkillTargetCategory.js +29 -1
  116. package/lib/types/_AlternativeNames.d.ts +5 -11
  117. package/lib/types/_AlternativeNames.js +14 -1
  118. package/lib/types/_ArcaneTradition.d.ts +30 -28
  119. package/lib/types/_ArcaneTradition.js +14 -4
  120. package/lib/types/_Blessed.d.ts +8 -22
  121. package/lib/types/_Blessed.js +22 -1
  122. package/lib/types/_CommonnessRatedAdvantageDisadvantage.d.ts +4 -10
  123. package/lib/types/_CommonnessRatedAdvantageDisadvantage.js +12 -1
  124. package/lib/types/_Dice.d.ts +6 -19
  125. package/lib/types/_Dice.js +23 -1
  126. package/lib/types/_DiseasePoison.d.ts +56 -107
  127. package/lib/types/_DiseasePoison.js +107 -2
  128. package/lib/types/_Enhancements.d.ts +165 -59
  129. package/lib/types/_Enhancements.js +66 -1
  130. package/lib/types/_I18n.d.ts +14 -42
  131. package/lib/types/_I18n.js +55 -1
  132. package/lib/types/_Identifier.d.ts +160 -1274
  133. package/lib/types/_Identifier.js +304 -1
  134. package/lib/types/_IdentifierGroup.d.ts +281 -29
  135. package/lib/types/_IdentifierGroup.js +343 -1
  136. package/lib/types/_ImprovementCost.d.ts +7 -4
  137. package/lib/types/_ImprovementCost.js +10 -1
  138. package/lib/types/_Influence.d.ts +78 -49
  139. package/lib/types/_Influence.js +42 -4
  140. package/lib/types/_Prerequisite.d.ts +370 -106
  141. package/lib/types/_Prerequisite.js +136 -1
  142. package/lib/types/_ResponsiveText.d.ts +13 -54
  143. package/lib/types/_ResponsiveText.js +37 -1
  144. package/lib/types/_Sex.d.ts +5 -7
  145. package/lib/types/_Sex.js +8 -4
  146. package/lib/types/_SkillCheck.d.ts +10 -15
  147. package/lib/types/_SkillCheck.js +34 -1
  148. package/lib/types/_Spellwork.d.ts +5 -18
  149. package/lib/types/_Spellwork.js +13 -1
  150. package/lib/types/equipment/EquipmentPackage.d.ts +82 -51
  151. package/lib/types/equipment/EquipmentPackage.js +34 -13
  152. package/lib/types/equipment/item/Ammunition.d.ts +71 -32
  153. package/lib/types/equipment/item/Ammunition.js +37 -13
  154. package/lib/types/equipment/item/Animal.d.ts +71 -19
  155. package/lib/types/equipment/item/Animal.js +15 -13
  156. package/lib/types/equipment/item/AnimalCare.d.ts +86 -49
  157. package/lib/types/equipment/item/AnimalCare.js +51 -13
  158. package/lib/types/equipment/item/Armor.d.ts +120 -186
  159. package/lib/types/equipment/item/Armor.js +156 -13
  160. package/lib/types/equipment/item/BandageOrRemedy.d.ts +177 -37
  161. package/lib/types/equipment/item/BandageOrRemedy.js +31 -13
  162. package/lib/types/equipment/item/Book.d.ts +84 -61
  163. package/lib/types/equipment/item/Book.js +57 -13
  164. package/lib/types/equipment/item/CeremonialItem.d.ts +178 -42
  165. package/lib/types/equipment/item/CeremonialItem.js +36 -13
  166. package/lib/types/equipment/item/Clothes.d.ts +177 -7
  167. package/lib/types/equipment/item/Clothes.js +31 -13
  168. package/lib/types/equipment/item/ClothingPackage.d.ts +62 -0
  169. package/lib/types/equipment/item/ClothingPackage.js +21 -0
  170. package/lib/types/equipment/item/Container.d.ts +177 -7
  171. package/lib/types/equipment/item/Container.js +31 -13
  172. package/lib/types/equipment/item/Elixir.d.ts +102 -76
  173. package/lib/types/equipment/item/Elixir.js +66 -13
  174. package/lib/types/equipment/item/EquipmentOfBlessedOnes.d.ts +170 -29
  175. package/lib/types/equipment/item/EquipmentOfBlessedOnes.js +28 -13
  176. package/lib/types/equipment/item/GemOrPreciousStone.d.ts +72 -44
  177. package/lib/types/equipment/item/GemOrPreciousStone.js +41 -13
  178. package/lib/types/equipment/item/IlluminationLightSource.d.ts +186 -61
  179. package/lib/types/equipment/item/IlluminationLightSource.js +61 -13
  180. package/lib/types/equipment/item/IlluminationRefillOrSupply.d.ts +177 -0
  181. package/lib/types/equipment/item/IlluminationRefillOrSupply.js +32 -0
  182. package/lib/types/equipment/item/Jewelry.d.ts +73 -61
  183. package/lib/types/equipment/item/Jewelry.js +37 -13
  184. package/lib/types/equipment/item/Laboratory.d.ts +80 -0
  185. package/lib/types/equipment/item/Laboratory.js +28 -0
  186. package/lib/types/equipment/item/Liebesspielzeug.d.ts +177 -7
  187. package/lib/types/equipment/item/Liebesspielzeug.js +31 -13
  188. package/lib/types/equipment/item/LuxuryGood.d.ts +177 -37
  189. package/lib/types/equipment/item/LuxuryGood.js +31 -13
  190. package/lib/types/equipment/item/MagicalArtifact.d.ts +72 -40
  191. package/lib/types/equipment/item/MagicalArtifact.js +19 -13
  192. package/lib/types/equipment/item/MusicalInstrument.d.ts +174 -32
  193. package/lib/types/equipment/item/MusicalInstrument.js +27 -13
  194. package/lib/types/equipment/item/OrienteeringAid.d.ts +176 -7
  195. package/lib/types/equipment/item/OrienteeringAid.js +2 -14
  196. package/lib/types/equipment/item/Poison.d.ts +489 -354
  197. package/lib/types/equipment/item/Poison.js +388 -13
  198. package/lib/types/equipment/item/RopeOrChain.d.ts +176 -7
  199. package/lib/types/equipment/item/RopeOrChain.js +2 -14
  200. package/lib/types/equipment/item/Stationery.d.ts +176 -0
  201. package/lib/types/equipment/item/Stationery.js +2 -0
  202. package/lib/types/equipment/item/ThievesTool.d.ts +176 -7
  203. package/lib/types/equipment/item/ThievesTool.js +2 -14
  204. package/lib/types/equipment/item/ToolOfTheTrade.d.ts +82 -61
  205. package/lib/types/equipment/item/ToolOfTheTrade.js +27 -13
  206. package/lib/types/equipment/item/TravelGearOrTool.d.ts +177 -7
  207. package/lib/types/equipment/item/TravelGearOrTool.js +31 -13
  208. package/lib/types/equipment/item/Vehicle.d.ts +71 -19
  209. package/lib/types/equipment/item/Vehicle.js +15 -13
  210. package/lib/types/equipment/item/Weapon.d.ts +223 -166
  211. package/lib/types/equipment/item/Weapon.js +153 -13
  212. package/lib/types/equipment/item/WeaponAccessory.d.ts +177 -7
  213. package/lib/types/equipment/item/WeaponAccessory.js +31 -13
  214. package/lib/types/equipment/item/_Herbary.d.ts +42 -16
  215. package/lib/types/equipment/item/_Herbary.js +36 -1
  216. package/lib/types/equipment/item/_Item.d.ts +317 -160
  217. package/lib/types/equipment/item/_Item.js +144 -1
  218. package/lib/types/equipment/item/_MeleeWeapon.d.ts +37 -105
  219. package/lib/types/equipment/item/_MeleeWeapon.js +92 -1
  220. package/lib/types/equipment/item/_RangedWeapon.d.ts +25 -106
  221. package/lib/types/equipment/item/_RangedWeapon.js +85 -1
  222. package/lib/types/equipment/item/_Weapon.d.ts +13 -57
  223. package/lib/types/equipment/item/_Weapon.js +49 -1
  224. package/lib/types/equipment/item/sub/ArmorType.d.ts +7 -37
  225. package/lib/types/equipment/item/sub/ArmorType.js +18 -13
  226. package/lib/types/equipment/item/sub/Reach.d.ts +6 -28
  227. package/lib/types/equipment/item/sub/Reach.js +14 -13
  228. package/lib/types/index.d.ts +150 -0
  229. package/lib/types/index.js +150 -0
  230. package/lib/types/magicalActions/AnimistPower.d.ts +299 -238
  231. package/lib/types/magicalActions/AnimistPower.js +182 -13
  232. package/lib/types/magicalActions/AnimistPower_Tribe.d.ts +6 -28
  233. package/lib/types/magicalActions/AnimistPower_Tribe.js +14 -13
  234. package/lib/types/magicalActions/Curse.d.ts +215 -162
  235. package/lib/types/magicalActions/Curse.js +126 -13
  236. package/lib/types/magicalActions/DominationRitual.d.ts +200 -145
  237. package/lib/types/magicalActions/DominationRitual.js +126 -13
  238. package/lib/types/magicalActions/ElvenMagicalSong.d.ts +121 -135
  239. package/lib/types/magicalActions/ElvenMagicalSong.js +111 -13
  240. package/lib/types/magicalActions/GeodeRitual.d.ts +220 -180
  241. package/lib/types/magicalActions/GeodeRitual.js +135 -13
  242. package/lib/types/magicalActions/JesterTrick.d.ts +299 -177
  243. package/lib/types/magicalActions/JesterTrick.js +153 -13
  244. package/lib/types/magicalActions/MagicalDance.d.ts +125 -119
  245. package/lib/types/magicalActions/MagicalDance.js +113 -13
  246. package/lib/types/magicalActions/MagicalMelody.d.ts +116 -124
  247. package/lib/types/magicalActions/MagicalMelody.js +111 -13
  248. package/lib/types/magicalActions/MagicalRune.d.ts +300 -294
  249. package/lib/types/magicalActions/MagicalRune.js +278 -13
  250. package/lib/types/magicalActions/ZibiljaRitual.d.ts +411 -102
  251. package/lib/types/magicalActions/ZibiljaRitual.js +81 -13
  252. package/lib/types/magicalActions/_MusicTradition.d.ts +17 -30
  253. package/lib/types/magicalActions/_MusicTradition.js +43 -1
  254. package/lib/types/prerequisites/ConditionalPrerequisites.d.ts +24 -10
  255. package/lib/types/prerequisites/ConditionalPrerequisites.js +9 -1
  256. package/lib/types/prerequisites/DisplayOption.d.ts +13 -32
  257. package/lib/types/prerequisites/DisplayOption.js +27 -1
  258. package/lib/types/prerequisites/PrerequisiteGroups.d.ts +1342 -215
  259. package/lib/types/prerequisites/PrerequisiteGroups.js +160 -1
  260. package/lib/types/prerequisites/single/ActivatablePrerequisite.d.ts +108 -31
  261. package/lib/types/prerequisites/single/ActivatablePrerequisite.js +32 -1
  262. package/lib/types/prerequisites/single/AncestorBloodPrerequisite.d.ts +1 -2
  263. package/lib/types/prerequisites/single/AncestorBloodPrerequisite.js +4 -1
  264. package/lib/types/prerequisites/single/AnimistPowerPrerequisite.d.ts +18 -26
  265. package/lib/types/prerequisites/single/AnimistPowerPrerequisite.js +24 -1
  266. package/lib/types/prerequisites/single/CulturePrerequisite.d.ts +16 -13
  267. package/lib/types/prerequisites/single/CulturePrerequisite.js +16 -1
  268. package/lib/types/prerequisites/single/EnhancementPrerequisite.d.ts +4 -39
  269. package/lib/types/prerequisites/single/EnhancementPrerequisite.js +12 -1
  270. package/lib/types/prerequisites/single/InfluencePrerequisite.d.ts +17 -16
  271. package/lib/types/prerequisites/single/InfluencePrerequisite.js +19 -1
  272. package/lib/types/prerequisites/single/PactPrerequisite.d.ts +18 -23
  273. package/lib/types/prerequisites/single/PactPrerequisite.js +24 -1
  274. package/lib/types/prerequisites/single/PrimaryAttributePrerequisite.d.ts +20 -18
  275. package/lib/types/prerequisites/single/PrimaryAttributePrerequisite.js +25 -1
  276. package/lib/types/prerequisites/single/PublicationPrerequisite.d.ts +16 -12
  277. package/lib/types/prerequisites/single/PublicationPrerequisite.js +15 -1
  278. package/lib/types/prerequisites/single/RacePrerequisite.d.ts +17 -16
  279. package/lib/types/prerequisites/single/RacePrerequisite.js +19 -1
  280. package/lib/types/prerequisites/single/RatedMinimumNumberPrerequisite.d.ts +51 -63
  281. package/lib/types/prerequisites/single/RatedMinimumNumberPrerequisite.js +80 -1
  282. package/lib/types/prerequisites/single/RatedPrerequisite.d.ts +26 -18
  283. package/lib/types/prerequisites/single/RatedPrerequisite.js +19 -1
  284. package/lib/types/prerequisites/single/RatedSumPrerequisite.d.ts +17 -19
  285. package/lib/types/prerequisites/single/RatedSumPrerequisite.js +19 -1
  286. package/lib/types/prerequisites/single/RulePrerequisite.d.ts +19 -9
  287. package/lib/types/prerequisites/single/RulePrerequisite.js +15 -1
  288. package/lib/types/prerequisites/single/SexPrerequisite.d.ts +19 -10
  289. package/lib/types/prerequisites/single/SexPrerequisite.js +15 -1
  290. package/lib/types/prerequisites/single/SexualCharacteristicPrerequisite.d.ts +7 -8
  291. package/lib/types/prerequisites/single/SexualCharacteristicPrerequisite.js +17 -1
  292. package/lib/types/prerequisites/single/SocialStatusPrerequisite.d.ts +16 -13
  293. package/lib/types/prerequisites/single/SocialStatusPrerequisite.js +16 -1
  294. package/lib/types/prerequisites/single/StatePrerequisite.d.ts +16 -10
  295. package/lib/types/prerequisites/single/StatePrerequisite.js +15 -1
  296. package/lib/types/prerequisites/single/TextPrerequisite.d.ts +19 -49
  297. package/lib/types/prerequisites/single/TextPrerequisite.js +53 -1
  298. package/lib/types/prerequisites/single/TraditionPrerequisite.d.ts +37 -33
  299. package/lib/types/prerequisites/single/TraditionPrerequisite.js +42 -1
  300. package/lib/types/rule/CoreRule.d.ts +142 -310
  301. package/lib/types/rule/CoreRule.js +172 -13
  302. package/lib/types/rule/FocusRule.d.ts +54 -53
  303. package/lib/types/rule/FocusRule.js +37 -13
  304. package/lib/types/rule/FocusRule_Subject.d.ts +6 -29
  305. package/lib/types/rule/FocusRule_Subject.js +15 -13
  306. package/lib/types/rule/OptionalRule.d.ts +52 -41
  307. package/lib/types/rule/OptionalRule.js +28 -13
  308. package/lib/types/source/Publication.d.ts +50 -70
  309. package/lib/types/source/Publication.js +57 -13
  310. package/lib/types/source/_Erratum.d.ts +9 -23
  311. package/lib/types/source/_Erratum.js +19 -1
  312. package/lib/types/source/_PublicationRef.d.ts +161 -148
  313. package/lib/types/source/_PublicationRef.js +98 -1
  314. package/lib/types/specialAbility/AdvancedCombatSpecialAbility.d.ts +1034 -52
  315. package/lib/types/specialAbility/AdvancedCombatSpecialAbility.js +36 -13
  316. package/lib/types/specialAbility/AdvancedKarmaSpecialAbility.d.ts +917 -34
  317. package/lib/types/specialAbility/AdvancedKarmaSpecialAbility.js +33 -13
  318. package/lib/types/specialAbility/AdvancedMagicalSpecialAbility.d.ts +917 -34
  319. package/lib/types/specialAbility/AdvancedMagicalSpecialAbility.js +33 -13
  320. package/lib/types/specialAbility/AdvancedSkillSpecialAbility.d.ts +917 -34
  321. package/lib/types/specialAbility/AdvancedSkillSpecialAbility.js +33 -13
  322. package/lib/types/specialAbility/AncestorGlyph.d.ts +916 -38
  323. package/lib/types/specialAbility/AncestorGlyph.js +35 -13
  324. package/lib/types/specialAbility/BlessedTradition.d.ts +948 -147
  325. package/lib/types/specialAbility/BlessedTradition.js +131 -13
  326. package/lib/types/specialAbility/BrawlingSpecialAbility.d.ts +980 -34
  327. package/lib/types/specialAbility/BrawlingSpecialAbility.js +32 -13
  328. package/lib/types/specialAbility/CeremonialItemSpecialAbility.d.ts +918 -40
  329. package/lib/types/specialAbility/CeremonialItemSpecialAbility.js +33 -13
  330. package/lib/types/specialAbility/CombatSpecialAbility.d.ts +1036 -45
  331. package/lib/types/specialAbility/CombatSpecialAbility.js +37 -13
  332. package/lib/types/specialAbility/CombatStyleSpecialAbility.d.ts +1035 -42
  333. package/lib/types/specialAbility/CombatStyleSpecialAbility.js +37 -13
  334. package/lib/types/specialAbility/CommandSpecialAbility.d.ts +980 -38
  335. package/lib/types/specialAbility/CommandSpecialAbility.js +32 -13
  336. package/lib/types/specialAbility/FamiliarSpecialAbility.d.ts +915 -32
  337. package/lib/types/specialAbility/FamiliarSpecialAbility.js +30 -13
  338. package/lib/types/specialAbility/FatePointSexSpecialAbility.d.ts +915 -32
  339. package/lib/types/specialAbility/FatePointSexSpecialAbility.js +30 -13
  340. package/lib/types/specialAbility/FatePointSpecialAbility.d.ts +917 -39
  341. package/lib/types/specialAbility/FatePointSpecialAbility.js +32 -13
  342. package/lib/types/specialAbility/GeneralSpecialAbility.d.ts +918 -44
  343. package/lib/types/specialAbility/GeneralSpecialAbility.js +33 -13
  344. package/lib/types/specialAbility/KarmaSpecialAbility.d.ts +915 -37
  345. package/lib/types/specialAbility/KarmaSpecialAbility.js +30 -13
  346. package/lib/types/specialAbility/LiturgicalStyleSpecialAbility.d.ts +966 -36
  347. package/lib/types/specialAbility/LiturgicalStyleSpecialAbility.js +34 -13
  348. package/lib/types/specialAbility/LycantropicGift.d.ts +915 -32
  349. package/lib/types/specialAbility/LycantropicGift.js +30 -13
  350. package/lib/types/specialAbility/MagicStyleSpecialAbility.d.ts +966 -36
  351. package/lib/types/specialAbility/MagicStyleSpecialAbility.js +34 -13
  352. package/lib/types/specialAbility/MagicalSign.d.ts +86 -39
  353. package/lib/types/specialAbility/MagicalSign.js +31 -13
  354. package/lib/types/specialAbility/MagicalSpecialAbility.d.ts +918 -43
  355. package/lib/types/specialAbility/MagicalSpecialAbility.js +33 -13
  356. package/lib/types/specialAbility/MagicalTradition.d.ts +938 -114
  357. package/lib/types/specialAbility/MagicalTradition.js +97 -13
  358. package/lib/types/specialAbility/PactGift.d.ts +992 -97
  359. package/lib/types/specialAbility/PactGift.js +118 -13
  360. package/lib/types/specialAbility/ProtectiveWardingCircleSpecialAbility.d.ts +917 -46
  361. package/lib/types/specialAbility/ProtectiveWardingCircleSpecialAbility.js +41 -13
  362. package/lib/types/specialAbility/Sermon.d.ts +915 -32
  363. package/lib/types/specialAbility/Sermon.js +30 -13
  364. package/lib/types/specialAbility/SexSpecialAbility.d.ts +917 -34
  365. package/lib/types/specialAbility/SexSpecialAbility.js +32 -13
  366. package/lib/types/specialAbility/SikaryanDrainSpecialAbility.d.ts +915 -37
  367. package/lib/types/specialAbility/SikaryanDrainSpecialAbility.js +30 -13
  368. package/lib/types/specialAbility/SkillStyleSpecialAbility.d.ts +964 -34
  369. package/lib/types/specialAbility/SkillStyleSpecialAbility.js +32 -13
  370. package/lib/types/specialAbility/VampiricGift.d.ts +915 -37
  371. package/lib/types/specialAbility/VampiricGift.js +30 -13
  372. package/lib/types/specialAbility/Vision.d.ts +915 -32
  373. package/lib/types/specialAbility/Vision.js +30 -13
  374. package/lib/types/specialAbility/_Tradition.d.ts +5 -12
  375. package/lib/types/specialAbility/_Tradition.js +14 -1
  376. package/lib/types/specialAbility/sub/Language.d.ts +107 -117
  377. package/lib/types/specialAbility/sub/Language.js +87 -13
  378. package/lib/types/specialAbility/sub/Script.d.ts +61 -60
  379. package/lib/types/specialAbility/sub/Script.js +43 -13
  380. package/lib/types/specialAbility/sub/TradeSecret.d.ts +77 -48
  381. package/lib/types/specialAbility/sub/TradeSecret.js +36 -13
  382. package/lib/types/specialAbility/sub/_LanguageScript.d.ts +5 -11
  383. package/lib/types/specialAbility/sub/_LanguageScript.js +15 -1
  384. package/lib/types/traditionArtifacts/ArcaneOrbEnchantment.d.ts +1141 -47
  385. package/lib/types/traditionArtifacts/ArcaneOrbEnchantment.js +36 -13
  386. package/lib/types/traditionArtifacts/AttireEnchantment.d.ts +1141 -47
  387. package/lib/types/traditionArtifacts/AttireEnchantment.js +36 -13
  388. package/lib/types/traditionArtifacts/BowlEnchantment.d.ts +1141 -47
  389. package/lib/types/traditionArtifacts/BowlEnchantment.js +36 -13
  390. package/lib/types/traditionArtifacts/CauldronEnchantment.d.ts +1142 -61
  391. package/lib/types/traditionArtifacts/CauldronEnchantment.js +41 -13
  392. package/lib/types/traditionArtifacts/ChronicleEnchantment.d.ts +1141 -47
  393. package/lib/types/traditionArtifacts/ChronicleEnchantment.js +36 -13
  394. package/lib/types/traditionArtifacts/DaggerRitual.d.ts +1153 -71
  395. package/lib/types/traditionArtifacts/DaggerRitual.js +71 -13
  396. package/lib/types/traditionArtifacts/FoolsHatEnchantment.d.ts +1141 -47
  397. package/lib/types/traditionArtifacts/FoolsHatEnchantment.js +36 -13
  398. package/lib/types/traditionArtifacts/InstrumentEnchantment.d.ts +1141 -47
  399. package/lib/types/traditionArtifacts/InstrumentEnchantment.js +36 -13
  400. package/lib/types/traditionArtifacts/Krallenkettenzauber.d.ts +1141 -47
  401. package/lib/types/traditionArtifacts/Krallenkettenzauber.js +36 -13
  402. package/lib/types/traditionArtifacts/OrbEnchantment.d.ts +1141 -47
  403. package/lib/types/traditionArtifacts/OrbEnchantment.js +36 -13
  404. package/lib/types/traditionArtifacts/RingEnchantment.d.ts +1141 -47
  405. package/lib/types/traditionArtifacts/RingEnchantment.js +36 -13
  406. package/lib/types/traditionArtifacts/SickleRitual.d.ts +1141 -47
  407. package/lib/types/traditionArtifacts/SickleRitual.js +36 -13
  408. package/lib/types/traditionArtifacts/SpellSwordEnchantment.d.ts +1141 -52
  409. package/lib/types/traditionArtifacts/SpellSwordEnchantment.js +36 -13
  410. package/lib/types/traditionArtifacts/StaffEnchantment.d.ts +1145 -57
  411. package/lib/types/traditionArtifacts/StaffEnchantment.js +41 -13
  412. package/lib/types/traditionArtifacts/ToyEnchantment.d.ts +1141 -47
  413. package/lib/types/traditionArtifacts/ToyEnchantment.js +36 -13
  414. package/lib/types/traditionArtifacts/Trinkhornzauber.d.ts +1141 -47
  415. package/lib/types/traditionArtifacts/Trinkhornzauber.js +36 -13
  416. package/lib/types/traditionArtifacts/WandEnchantment.d.ts +1090 -42
  417. package/lib/types/traditionArtifacts/WandEnchantment.js +35 -13
  418. package/lib/types/traditionArtifacts/WeaponEnchantment.d.ts +1141 -47
  419. package/lib/types/traditionArtifacts/WeaponEnchantment.js +36 -13
  420. package/lib/types/traditionArtifacts/sub/AnimalShape.d.ts +8 -52
  421. package/lib/types/traditionArtifacts/sub/AnimalShape.js +23 -13
  422. package/lib/types/traditionArtifacts/sub/AnimalShapePath.d.ts +6 -28
  423. package/lib/types/traditionArtifacts/sub/AnimalShapePath.js +14 -13
  424. package/lib/types/traditionArtifacts/sub/AnimalShapeSize.d.ts +8 -40
  425. package/lib/types/traditionArtifacts/sub/AnimalShapeSize.js +22 -13
  426. package/lib/types/traditionArtifacts/sub/Brew.d.ts +6 -28
  427. package/lib/types/traditionArtifacts/sub/Brew.js +14 -13
  428. package/package.json +19 -16
  429. package/schema/Advantage.schema.json +3 -3
  430. package/schema/AnimalDisease.schema.json +4 -4
  431. package/schema/Aspect.schema.json +1 -1
  432. package/schema/Blessing.schema.json +3 -3
  433. package/schema/Cantrip.schema.json +4 -4
  434. package/schema/Ceremony.schema.json +9 -61
  435. package/schema/CombatTechnique_Close.schema.json +2 -2
  436. package/schema/CombatTechnique_Ranged.schema.json +2 -2
  437. package/schema/Condition.schema.json +4 -16
  438. package/schema/Continent.schema.json +1 -1
  439. package/schema/Culture.schema.json +46 -50
  440. package/schema/Disadvantage.schema.json +3 -3
  441. package/schema/Disease.schema.json +2 -2
  442. package/schema/FamiliarsTrick.schema.json +45 -71
  443. package/schema/Lessons_Curriculum.schema.json +26 -36
  444. package/schema/LiturgicalChant.schema.json +9 -61
  445. package/schema/Locale.schema.json +1 -1
  446. package/schema/MetaCondition.schema.json +5 -17
  447. package/schema/Patron.schema.json +60 -71
  448. package/schema/PatronCategory.schema.json +1 -1
  449. package/schema/PersonalityTrait.schema.json +2 -2
  450. package/schema/Profession.schema.json +68 -62
  451. package/schema/Property.schema.json +1 -1
  452. package/schema/Race.schema.json +17 -17
  453. package/schema/Ritual.schema.json +8 -60
  454. package/schema/SexPractice.schema.json +1 -1
  455. package/schema/Skill.schema.json +7 -7
  456. package/schema/SkillModificationLevel.schema.json +3 -3
  457. package/schema/Spell.schema.json +8 -60
  458. package/schema/UI.schema.json +272 -0
  459. package/schema/_Activatable.schema.json +52 -60
  460. package/schema/_ActivatableSelectOptionCategory.schema.json +31 -35
  461. package/schema/_ActivatableSkill.schema.json +16 -0
  462. package/schema/_ActivatableSkillCastingTime.schema.json +5 -5
  463. package/schema/_ActivatableSkillCost.schema.json +7 -7
  464. package/schema/_ActivatableSkillEffect.schema.json +20 -51
  465. package/schema/_ActivatableSkillRange.schema.json +2 -2
  466. package/schema/_ActivatableSkillTargetCategory.schema.json +8 -8
  467. package/schema/_Blessed.schema.json +1 -1
  468. package/schema/_DiseasePoison.schema.json +31 -23
  469. package/schema/_Enhancements.schema.json +1 -1
  470. package/schema/_I18n.schema.json +1 -1
  471. package/schema/_Identifier.schema.json +31 -1
  472. package/schema/_IdentifierGroup.schema.json +4 -1
  473. package/schema/_Influence.schema.json +2 -2
  474. package/schema/_Prerequisite.schema.json +15 -15
  475. package/schema/_ResponsiveText.schema.json +6 -6
  476. package/schema/_SkillCheck.schema.json +3 -14
  477. package/schema/_Spellwork.schema.json +1 -1
  478. package/schema/equipment/EquipmentPackage.schema.json +1 -1
  479. package/schema/equipment/item/Armor.schema.json +5 -5
  480. package/schema/equipment/item/BandageOrRemedy.schema.json +2 -2
  481. package/schema/equipment/item/Book.schema.json +1 -1
  482. package/schema/equipment/item/CeremonialItem.schema.json +2 -2
  483. package/schema/equipment/item/Elixir.schema.json +5 -25
  484. package/schema/equipment/item/EquipmentOfBlessedOnes.schema.json +1 -1
  485. package/schema/equipment/item/IlluminationLightSource.schema.json +4 -8
  486. package/schema/equipment/item/Jewelry.schema.json +1 -1
  487. package/schema/equipment/item/LuxuryGood.schema.json +2 -2
  488. package/schema/equipment/item/MusicalInstrument.schema.json +1 -1
  489. package/schema/equipment/item/Poison.schema.json +25 -17
  490. package/schema/equipment/item/ToolOfTheTrade.schema.json +1 -1
  491. package/schema/equipment/item/Weapon.schema.json +11 -11
  492. package/schema/equipment/item/_Item.schema.json +4 -4
  493. package/schema/equipment/item/_MeleeWeapon.schema.json +3 -7
  494. package/schema/equipment/item/_RangedWeapon.schema.json +5 -5
  495. package/schema/equipment/item/_Weapon.schema.json +2 -2
  496. package/schema/equipment/item/sub/ArmorType.schema.json +1 -1
  497. package/schema/magicalActions/AnimistPower.schema.json +10 -36
  498. package/schema/magicalActions/Curse.schema.json +5 -31
  499. package/schema/magicalActions/DominationRitual.schema.json +6 -32
  500. package/schema/magicalActions/ElvenMagicalSong.schema.json +4 -17
  501. package/schema/magicalActions/GeodeRitual.schema.json +7 -59
  502. package/schema/magicalActions/JesterTrick.schema.json +7 -59
  503. package/schema/magicalActions/MagicalDance.schema.json +7 -33
  504. package/schema/magicalActions/MagicalMelody.schema.json +7 -33
  505. package/schema/magicalActions/MagicalRune.schema.json +53 -146
  506. package/schema/magicalActions/ZibiljaRitual.schema.json +7 -59
  507. package/schema/magicalActions/_MusicTradition.schema.json +1 -1
  508. package/schema/magicalActions/_SkillReference.schema.json +2 -24
  509. package/schema/prerequisites/ConditionalPrerequisites.schema.json +1 -1
  510. package/schema/prerequisites/DisplayOption.schema.json +1 -1
  511. package/schema/prerequisites/single/ActivatablePrerequisite.schema.json +1 -1
  512. package/schema/prerequisites/single/EnhancementPrerequisite.schema.json +2 -2
  513. package/schema/prerequisites/single/PublicationPrerequisite.schema.json +1 -2
  514. package/schema/prerequisites/single/RacePrerequisite.schema.json +1 -1
  515. package/schema/prerequisites/single/RatedMinimumNumberPrerequisite.schema.json +2 -2
  516. package/schema/prerequisites/single/TextPrerequisite.schema.json +4 -4
  517. package/schema/prerequisites/single/TraditionPrerequisite.schema.json +4 -4
  518. package/schema/rule/CoreRule.schema.json +5 -5
  519. package/schema/rule/FocusRule.schema.json +1 -1
  520. package/schema/rule/OptionalRule.schema.json +1 -1
  521. package/schema/source/Publication.schema.json +2 -2
  522. package/schema/source/_PublicationRef.schema.json +9 -9
  523. package/schema/specialAbility/AdvancedCombatSpecialAbility.schema.json +2 -2
  524. package/schema/specialAbility/BlessedTradition.schema.json +74 -52
  525. package/schema/specialAbility/CeremonialItemSpecialAbility.schema.json +2 -2
  526. package/schema/specialAbility/CombatStyleSpecialAbility.schema.json +155 -504
  527. package/schema/specialAbility/CommandSpecialAbility.schema.json +23 -20
  528. package/schema/specialAbility/FatePointSpecialAbility.schema.json +1 -1
  529. package/schema/specialAbility/GeneralSpecialAbility.schema.json +1 -1
  530. package/schema/specialAbility/KarmaSpecialAbility.schema.json +1 -1
  531. package/schema/specialAbility/LiturgicalStyleSpecialAbility.schema.json +155 -504
  532. package/schema/specialAbility/MagicStyleSpecialAbility.schema.json +155 -504
  533. package/schema/specialAbility/MagicalSign.schema.json +2 -2
  534. package/schema/specialAbility/MagicalSpecialAbility.schema.json +1 -1
  535. package/schema/specialAbility/MagicalTradition.schema.json +8 -8
  536. package/schema/specialAbility/PactGift.schema.json +4 -4
  537. package/schema/specialAbility/SikaryanDrainSpecialAbility.schema.json +1 -1
  538. package/schema/specialAbility/SkillStyleSpecialAbility.schema.json +155 -504
  539. package/schema/specialAbility/VampiricGift.schema.json +1 -1
  540. package/schema/specialAbility/_Tradition.schema.json +1 -1
  541. package/schema/specialAbility/sub/Language.schema.json +4 -4
  542. package/schema/traditionArtifacts/ArcaneOrbEnchantment.schema.json +1 -1
  543. package/schema/traditionArtifacts/AttireEnchantment.schema.json +1 -1
  544. package/schema/traditionArtifacts/BowlEnchantment.schema.json +1 -1
  545. package/schema/traditionArtifacts/CauldronEnchantment.schema.json +2 -2
  546. package/schema/traditionArtifacts/ChronicleEnchantment.schema.json +1 -1
  547. package/schema/traditionArtifacts/DaggerRitual.schema.json +14 -18
  548. package/schema/traditionArtifacts/FoolsHatEnchantment.schema.json +1 -1
  549. package/schema/traditionArtifacts/InstrumentEnchantment.schema.json +1 -1
  550. package/schema/traditionArtifacts/Krallenkettenzauber.schema.json +1 -1
  551. package/schema/traditionArtifacts/OrbEnchantment.schema.json +1 -1
  552. package/schema/traditionArtifacts/RingEnchantment.schema.json +1 -1
  553. package/schema/traditionArtifacts/SickleRitual.schema.json +1 -1
  554. package/schema/traditionArtifacts/SpellSwordEnchantment.schema.json +2 -2
  555. package/schema/traditionArtifacts/StaffEnchantment.schema.json +2 -2
  556. package/schema/traditionArtifacts/ToyEnchantment.schema.json +1 -1
  557. package/schema/traditionArtifacts/Trinkhornzauber.schema.json +1 -1
  558. package/schema/traditionArtifacts/WandEnchantment.schema.json +1 -1
  559. package/schema/traditionArtifacts/WeaponEnchantment.schema.json +1 -1
  560. package/.prettierrc.yml +0 -3
  561. package/lib/cache/activatableSelectOptions.d.ts +0 -80
  562. package/lib/cache/activatableSelectOptions.js +0 -935
  563. package/lib/cache/ancestorBloodAdvantages.d.ts +0 -5
  564. package/lib/cache/ancestorBloodAdvantages.js +0 -18
  565. package/lib/cache/magicalAndBlessedAdvantagesAndDisadvantages.d.ts +0 -20
  566. package/lib/cache/magicalAndBlessedAdvantagesAndDisadvantages.js +0 -164
  567. package/lib/cache/newApplicationsAndUses.d.ts +0 -20
  568. package/lib/cache/newApplicationsAndUses.js +0 -126
  569. package/lib/cacheConfig.d.ts +0 -4
  570. package/lib/cacheConfig.js +0 -1
  571. package/lib/config/build.d.ts +0 -6
  572. package/lib/config/build.js +0 -8
  573. package/lib/config/cache.d.ts +0 -16
  574. package/lib/config/cache.js +0 -10
  575. package/lib/config/types.d.ts +0 -462
  576. package/lib/config/types.js +0 -306
  577. package/lib/errors.d.ts +0 -20
  578. package/lib/errors.js +0 -33
  579. package/lib/helpers/array.d.ts +0 -14
  580. package/lib/helpers/array.js +0 -15
  581. package/lib/helpers/i18n.d.ts +0 -1
  582. package/lib/helpers/i18n.js +0 -1
  583. package/lib/helpers/io.d.ts +0 -29
  584. package/lib/helpers/io.js +0 -51
  585. package/lib/helpers/objectPath.d.ts +0 -13
  586. package/lib/helpers/objectPath.js +0 -3
  587. package/lib/helpers/pair.d.ts +0 -20
  588. package/lib/helpers/pair.js +0 -20
  589. package/lib/helpers/result.d.ts +0 -57
  590. package/lib/helpers/result.js +0 -45
  591. package/lib/rendering/UI.d.ts +0 -14
  592. package/lib/rendering/UI.js +0 -28
  593. package/lib/typeConfig.d.ts +0 -10
  594. package/lib/typeConfig.js +0 -1
  595. package/lib/types/CombatTechnique_Close.d.ts +0 -73
  596. package/lib/types/CombatTechnique_Close.js +0 -14
  597. package/lib/types/CombatTechnique_Ranged.d.ts +0 -66
  598. package/lib/types/CombatTechnique_Ranged.js +0 -14
  599. package/lib/types/Kirchenpraegung.d.ts +0 -10
  600. package/lib/types/Kirchenpraegung.js +0 -14
  601. package/lib/types/Lessons_Curriculum.d.ts +0 -236
  602. package/lib/types/Lessons_Curriculum.js +0 -14
  603. package/lib/types/Lessons_Guideline.d.ts +0 -34
  604. package/lib/types/Lessons_Guideline.js +0 -14
  605. package/lib/types/UI.d.ts +0 -1216
  606. package/lib/types/UI.js +0 -14
  607. package/lib/types/_LocaleMap.d.ts +0 -10
  608. package/lib/types/_LocaleMap.js +0 -1
  609. package/lib/types/_NonEmptyString.d.ts +0 -9
  610. package/lib/types/_NonEmptyString.js +0 -1
  611. package/lib/types/_SimpleReferences.d.ts +0 -134
  612. package/lib/types/_SimpleReferences.js +0 -1
  613. package/lib/types/equipment/item/IlluminationRefillsOrSupplies.d.ts +0 -7
  614. package/lib/types/equipment/item/IlluminationRefillsOrSupplies.js +0 -14
  615. package/lib/types/equipment/item/Stationary.d.ts +0 -7
  616. package/lib/types/equipment/item/Stationary.js +0 -14
  617. package/lib/types/magicalActions/_SkillReference.d.ts +0 -11
  618. package/lib/types/magicalActions/_SkillReference.js +0 -1
  619. package/lib/validation/builders/integrity.d.ts +0 -56
  620. package/lib/validation/builders/integrity.js +0 -44
  621. package/lib/validation/builders/naming.d.ts +0 -15
  622. package/lib/validation/builders/naming.js +0 -17
  623. package/lib/validation/builders/schema.d.ts +0 -31
  624. package/lib/validation/builders/schema.js +0 -32
  625. package/lib/validation/filename.d.ts +0 -9
  626. package/lib/validation/filename.js +0 -10
  627. package/lib/validation/raw.d.ts +0 -8
  628. package/lib/validation/raw.js +0 -54
  629. package/lib/validation/schema.d.ts +0 -6
  630. package/lib/validation/schema.js +0 -32
@@ -1 +1,144 @@
1
- export {};
1
+ import { Array, Entity, Enum, EnumCase, Float, IncludeIdentifier, Integer, Object, Optional, Required, String, TypeAlias, } from "tsondb/schema/def";
2
+ import { NestedLocaleMap } from "../../Locale.js";
3
+ import { Errata } from "../../source/_Erratum.js";
4
+ import { src } from "../../source/_PublicationRef.js";
5
+ import { SecondaryArmor } from "./Armor.js";
6
+ import { ImprovisedWeapon } from "./Weapon.js";
7
+ export const DefaultItem = (sourceUrl, singularName, pluralName) => Entity(sourceUrl, {
8
+ name: singularName,
9
+ namePlural: pluralName ?? `${singularName}s`,
10
+ type: () => Object({
11
+ cost: Required({
12
+ comment: "The cost in silverthalers.",
13
+ type: IncludeIdentifier(Cost),
14
+ }),
15
+ weight: Required({
16
+ comment: "The weight in kg.",
17
+ type: IncludeIdentifier(Weight),
18
+ }),
19
+ complexity: Optional({
20
+ comment: "The complexity of crafting the item.",
21
+ type: IncludeIdentifier(Complexity),
22
+ }),
23
+ structure_points: Required({
24
+ comment: "The structure points of the item. Use an array if the item consists of multiple components that have individual structure points.",
25
+ type: IncludeIdentifier(StructurePoints),
26
+ }),
27
+ combat_use: Optional({
28
+ comment: "The item can also be used either as an improvised weapon or as an armor, although this is not the primary use case of the item.",
29
+ type: IncludeIdentifier(CombatUse),
30
+ }),
31
+ src,
32
+ translations: DefaultItemTranslations(singularName),
33
+ }),
34
+ displayName: {},
35
+ });
36
+ export const DefaultItemTranslations = (singularName) => NestedLocaleMap(Required, `${singularName}Translation`, Object({
37
+ name: Required({
38
+ comment: "The item’s name.",
39
+ type: String({ minLength: 1 }),
40
+ }),
41
+ secondary_name: Optional({
42
+ comment: "An auxiliary name or label of the item, if available.",
43
+ type: String({ minLength: 1 }),
44
+ }),
45
+ note: Optional({
46
+ comment: "Note text.",
47
+ type: String({ minLength: 1, isMarkdown: true }),
48
+ }),
49
+ rules: Optional({
50
+ comment: "Special rules text.",
51
+ type: String({ minLength: 1, isMarkdown: true }),
52
+ }),
53
+ errata: Optional({
54
+ type: IncludeIdentifier(Errata),
55
+ }),
56
+ }));
57
+ export const CombatUse = Enum(import.meta.url, {
58
+ name: "CombatUse",
59
+ comment: "The item can also be used either as an improvised weapon or as an armor, although this is not the primary use case of the item.",
60
+ values: () => ({
61
+ Weapon: EnumCase({ type: IncludeIdentifier(ImprovisedWeapon) }),
62
+ Armor: EnumCase({ type: IncludeIdentifier(SecondaryArmor) }),
63
+ }),
64
+ });
65
+ export const StructurePoints = TypeAlias(import.meta.url, {
66
+ name: "StructurePoints",
67
+ comment: "The structure points of the item. Use an array if the item consists of multiple components that have individual structure points.",
68
+ type: () => Array(IncludeIdentifier(StructurePointsComponent), { minItems: 1 }),
69
+ });
70
+ const StructurePointsComponent = TypeAlias(import.meta.url, {
71
+ name: "StructurePointsComponent",
72
+ type: () => Object({
73
+ points: Required({
74
+ comment: "The structure points.",
75
+ type: Integer({ minimum: 1 }),
76
+ }),
77
+ }),
78
+ });
79
+ export const Cost = Enum(import.meta.url, {
80
+ name: "Cost",
81
+ comment: "The cost in silverthalers.",
82
+ values: () => ({
83
+ Free: EnumCase({ type: null }),
84
+ Various: EnumCase({ type: null }),
85
+ Invaluable: EnumCase({ type: null }),
86
+ Fixed: EnumCase({ type: IncludeIdentifier(FixedCost) }),
87
+ Range: EnumCase({ type: IncludeIdentifier(CostRange) }),
88
+ }),
89
+ });
90
+ const wrap_in_text = Required({
91
+ comment: "The cost get wrapped by this text using a placeholder in the text.",
92
+ type: String({ minLength: 1, pattern: /\{0\}/ }),
93
+ });
94
+ export const FixedCost = TypeAlias(import.meta.url, {
95
+ name: "FixedCost",
96
+ type: () => Object({
97
+ value: Required({
98
+ comment: "The cost in silverthalers.",
99
+ type: Float({ minimum: { value: 0, isExclusive: true } }),
100
+ }),
101
+ translations: NestedLocaleMap(Optional, "FixedCostTranslation", Object({
102
+ wrap_in_text,
103
+ })),
104
+ }),
105
+ });
106
+ const CostRange = TypeAlias(import.meta.url, {
107
+ name: "CostRange",
108
+ type: () => Object({
109
+ from: Required({
110
+ comment: "The lower bound of the cost in silverthalers.",
111
+ type: Float({ minimum: { value: 0, isExclusive: true } }),
112
+ }),
113
+ to: Required({
114
+ comment: "The upper bound of the cost in silverthalers.",
115
+ type: Float({ minimum: { value: 0, isExclusive: true } }),
116
+ }),
117
+ translations: NestedLocaleMap(Optional, "CostRangeTranslation", Object({
118
+ wrap_in_text,
119
+ })),
120
+ }),
121
+ });
122
+ export const Weight = TypeAlias(import.meta.url, {
123
+ name: "Weight",
124
+ comment: "The weight in kg.",
125
+ type: () => Float({ minimum: { value: 0, isExclusive: true } }),
126
+ });
127
+ export const Complexity = Enum(import.meta.url, {
128
+ name: "Complexity",
129
+ comment: "The complexity of crafting the item.",
130
+ values: () => ({
131
+ Primitive: EnumCase({ type: null }),
132
+ Simple: EnumCase({ type: null }),
133
+ Complex: EnumCase({ type: IncludeIdentifier(ComplexComplexity) }),
134
+ }),
135
+ });
136
+ const ComplexComplexity = TypeAlias(import.meta.url, {
137
+ name: "ComplexComplexity",
138
+ type: () => Object({
139
+ ap_value: Required({
140
+ comment: "The AP value for the trade secret.",
141
+ type: Integer({ minimum: 1 }),
142
+ }),
143
+ }),
144
+ });
@@ -1,108 +1,40 @@
1
1
  /**
2
2
  * Auxiliary types for melee weapons.
3
3
  */
4
- import { Dice } from "../../_Dice.js";
5
- import { ReachIdentifier } from "../../_Identifier.js";
6
- import { CloseCombatTechniqueReference } from "../../_SimpleReferences.js";
7
- import { Length, PrimaryAttributeDamageThreshold } from "./_Weapon.js";
8
- /**
9
- * The AT modifier.
10
- * @integer
11
- */
12
- export type AttackModifier = number;
13
- /**
14
- * The PA modifier.
15
- * @integer
16
- */
17
- export type ParryModifier = number;
18
- /**
19
- * The reach of the weapon.
20
- */
21
- export type Reach = ReachIdentifier;
22
- /**
23
- * The damage of a weapon consists of a random part using dice and an optional
24
- * flat part.
25
- */
26
- export type MeleeDamage = {
27
- /**
28
- * How many dice of which type are rolled to get the damage.
29
- */
30
- dice: Dice;
31
- /**
32
- * Flat damage, if any. It gets added to the result of the dice rolls.
33
- * @integer
34
- * @default 0
35
- */
36
- flat?: number;
37
- };
38
- /**
39
- * The shield size and potential size-depending values.
40
- */
41
- export type ShieldSize = {
42
- tag: "Small";
43
- small: {};
44
- } | {
45
- tag: "Medium";
46
- medium: {};
47
- } | {
48
- tag: "Large";
49
- large?: LargeShieldSize;
50
- };
51
- export type LargeShieldSize = {
52
- /**
53
- * The attack penalty from the shield.
54
- * @integer
55
- * @default 1
56
- */
57
- attack_penalty: number;
58
- };
59
- /**
60
- * @title Melee Weapon
61
- */
62
- export type MeleeWeapon = {
63
- /**
64
- * The combat techniques and dependent values.
65
- */
66
- combat_technique: CloseCombatTechniqueReference;
67
- /**
68
- * The damage of a weapon consists of a random part using dice and an optional
69
- * flat part.
70
- */
71
- damage: MeleeDamage;
72
- /**
73
- * The primary attribute damage and threshold value.
74
- */
75
- damage_threshold?: PrimaryAttributeDamageThreshold;
76
- /**
77
- * The AT modifier.
78
- */
79
- at: AttackModifier;
80
- /**
81
- * The PA modifier.
82
- */
83
- pa?: ParryModifier;
84
- /**
85
- * The reach of the weapon.
86
- */
87
- reach?: Reach;
88
- /**
89
- * The length of the weapon in cm/halffingers.
90
- */
91
- length?: Length;
92
- /**
93
- * The shield size and potential size-depending values.
94
- */
95
- size?: ShieldSize;
96
- /**
97
- * Is the weapon a parrying weapon?
98
- */
99
- is_parrying_weapon: boolean;
100
- /**
101
- * Is the weapon a two-handed weapon?
102
- */
103
- is_two_handed_weapon: boolean;
104
- /**
105
- * Is the weapon an improvised weapon?
106
- */
107
- is_improvised_weapon: boolean;
108
- };
4
+ import { Boolean, Enum, EnumCase, IncludeIdentifier, Integer, Object, TypeAlias } from "tsondb/schema/def";
5
+ export declare const AttackModifier: TypeAlias<"AttackModifier", Integer, []>;
6
+ export declare const ParryModifier: TypeAlias<"ParryModifier", Integer, []>;
7
+ export declare const MeleeWeapon: TypeAlias<"MeleeWeapon", Object<{
8
+ damage: import("tsondb/schema/def").MemberDecl<IncludeIdentifier<[], TypeAlias<"MeleeDamage", Object<{
9
+ dice: import("tsondb/schema/def").MemberDecl<IncludeIdentifier<[], TypeAlias<"Dice", Object<{
10
+ number: import("tsondb/schema/def").MemberDecl<Integer, true>;
11
+ sides: import("tsondb/schema/def").MemberDecl<IncludeIdentifier<[], TypeAlias<"DieType", Integer, []>>, true>;
12
+ }>, []>>, true>;
13
+ flat: import("tsondb/schema/def").MemberDecl<Integer, false>;
14
+ }>, []>>, true>;
15
+ damage_threshold: import("tsondb/schema/def").MemberDecl<IncludeIdentifier<[], Enum<"PrimaryAttributeDamageThreshold", {
16
+ Default: EnumCase<IncludeIdentifier<[], TypeAlias<"DefaultPrimaryAttributeDamageThreshold", Object<{
17
+ threshold: import("tsondb/schema/def").MemberDecl<Integer, true>;
18
+ }>, []>>>;
19
+ List: EnumCase<IncludeIdentifier<[], TypeAlias<"PrimaryAttributeDamageThresholdList", Object<{
20
+ list: import("tsondb/schema/def").MemberDecl<import("tsondb/schema/def").ArrayType<IncludeIdentifier<[], TypeAlias<"SinglePrimaryAttributeDamageThreshold", Object<{
21
+ attribute: import("tsondb/schema/def").MemberDecl<import("tsondb/schema/def").ReferenceIdentifierType, true>;
22
+ threshold: import("tsondb/schema/def").MemberDecl<Integer, true>;
23
+ }>, []>>>, true>;
24
+ }>, []>>>;
25
+ }, []>>, false>;
26
+ attackModifier: import("tsondb/schema/def").MemberDecl<IncludeIdentifier<[], TypeAlias<"AttackModifier", Integer, []>>, false>;
27
+ parryModifier: import("tsondb/schema/def").MemberDecl<IncludeIdentifier<[], TypeAlias<"ParryModifier", Integer, []>>, false>;
28
+ reach: import("tsondb/schema/def").MemberDecl<import("tsondb/schema/def").ReferenceIdentifierType, false>;
29
+ length: import("tsondb/schema/def").MemberDecl<IncludeIdentifier<[], TypeAlias<"Length", Integer, []>>, false>;
30
+ size: import("tsondb/schema/def").MemberDecl<IncludeIdentifier<[], Enum<"ShieldSize", {
31
+ Small: EnumCase<null>;
32
+ Medium: EnumCase<null>;
33
+ Large: EnumCase<IncludeIdentifier<[], TypeAlias<"LargeShieldSize", Object<{
34
+ attack_penalty: import("tsondb/schema/def").MemberDecl<Integer, false>;
35
+ }>, []>>>;
36
+ }, []>>, false>;
37
+ is_parrying_weapon: import("tsondb/schema/def").MemberDecl<Boolean, true>;
38
+ is_two_handed_weapon: import("tsondb/schema/def").MemberDecl<Boolean, true>;
39
+ is_improvised_weapon: import("tsondb/schema/def").MemberDecl<Boolean, true>;
40
+ }>, []>;
@@ -1,4 +1,95 @@
1
1
  /**
2
2
  * Auxiliary types for melee weapons.
3
3
  */
4
- export {};
4
+ import { Boolean, Enum, EnumCase, IncludeIdentifier, Integer, Object, Optional, Required, TypeAlias, } from "tsondb/schema/def";
5
+ import { Dice } from "../../_Dice.js";
6
+ import { ReachIdentifier } from "../../_Identifier.js";
7
+ import { Length, PrimaryAttributeDamageThreshold } from "./_Weapon.js";
8
+ export const AttackModifier = TypeAlias(import.meta.url, {
9
+ name: "AttackModifier",
10
+ comment: "The AT modifier.",
11
+ type: () => Integer(),
12
+ });
13
+ export const ParryModifier = TypeAlias(import.meta.url, {
14
+ name: "ParryModifier",
15
+ comment: "The PA modifier.",
16
+ type: () => Integer(),
17
+ });
18
+ const MeleeDamage = TypeAlias(import.meta.url, {
19
+ name: "MeleeDamage",
20
+ comment: "The damage of a weapon consists of a random part using dice and an optional flat part.",
21
+ type: () => Object({
22
+ dice: Required({
23
+ comment: "How many dice of which type are rolled to get the damage.",
24
+ type: IncludeIdentifier(Dice),
25
+ }),
26
+ flat: Optional({
27
+ comment: "Flat damage, if any. It gets added to the result of the dice rolls.",
28
+ type: Integer(),
29
+ }),
30
+ }),
31
+ });
32
+ const ShieldSize = Enum(import.meta.url, {
33
+ name: "ShieldSize",
34
+ comment: "The shield size and potential size-depending values.",
35
+ values: () => ({
36
+ Small: EnumCase({ type: null }),
37
+ Medium: EnumCase({ type: null }),
38
+ Large: EnumCase({ type: IncludeIdentifier(LargeShieldSize) }),
39
+ }),
40
+ });
41
+ const LargeShieldSize = TypeAlias(import.meta.url, {
42
+ name: "LargeShieldSize",
43
+ comment: "The damage of a weapon consists of a random part using dice and an optional flat part.",
44
+ type: () => Object({
45
+ attack_penalty: Optional({
46
+ comment: "The attack penalty from the shield, if any.",
47
+ type: Integer(),
48
+ }),
49
+ }),
50
+ });
51
+ export const MeleeWeapon = TypeAlias(import.meta.url, {
52
+ name: "MeleeWeapon",
53
+ type: () => Object({
54
+ damage: Required({
55
+ comment: "The damage of a weapon consists of a random part using dice and an optional flat part.",
56
+ type: IncludeIdentifier(MeleeDamage),
57
+ }),
58
+ damage_threshold: Optional({
59
+ comment: "The primary attribute damage and threshold value.",
60
+ type: IncludeIdentifier(PrimaryAttributeDamageThreshold),
61
+ }),
62
+ attackModifier: Optional({
63
+ comment: "The AT modifier.",
64
+ type: IncludeIdentifier(AttackModifier),
65
+ }),
66
+ parryModifier: Optional({
67
+ comment: "The PA modifier.",
68
+ type: IncludeIdentifier(ParryModifier),
69
+ }),
70
+ reach: Optional({
71
+ comment: "The reach of the weapon.",
72
+ type: ReachIdentifier(),
73
+ }),
74
+ length: Optional({
75
+ comment: "The length of the weapon in cm/halffingers.",
76
+ type: IncludeIdentifier(Length),
77
+ }),
78
+ size: Optional({
79
+ comment: "The shield size and potential size-depending values.",
80
+ type: IncludeIdentifier(ShieldSize),
81
+ }),
82
+ is_parrying_weapon: Required({
83
+ comment: "Is the weapon a parrying weapon?",
84
+ type: Boolean(),
85
+ }),
86
+ is_two_handed_weapon: Required({
87
+ comment: "Is the weapon a two-handed weapon?",
88
+ type: Boolean(),
89
+ }),
90
+ is_improvised_weapon: Required({
91
+ comment: "Is the weapon an improvised weapon?",
92
+ type: Boolean(),
93
+ }),
94
+ }),
95
+ });
@@ -1,109 +1,28 @@
1
1
  /**
2
2
  * Auxiliary types for ranged weapons.
3
3
  */
4
- import { Dice } from "../../_Dice.js";
5
- import { AmmunitionIdentifier } from "../../_Identifier.js";
6
- import { RangedCombatTechniqueReference } from "../../_SimpleReferences.js";
7
- import { Length } from "./_Weapon.js";
8
- /**
9
- * The damage of a ranged weapon. It consists of a random part using dice and an
10
- * optional flat part ny default. Some ranged weapons may work different so that
11
- * damage is either not applicable at all or it is outlined as *Special* and
12
- * further defined in a description.
13
- */
14
- export type RangedDamage = {
15
- tag: "Default";
16
- default: DefaultRangedDamage;
17
- } | {
18
- tag: "NotApplicable";
19
- not_applicable: {};
20
- } | {
21
- tag: "Special";
22
- special: {};
23
- };
24
- /**
25
- * The damage of a weapon consists of a random part using dice and an optional
26
- * flat part.
27
- */
28
- export type DefaultRangedDamage = {
29
- /**
30
- * How many dice of which type are rolled to get the damage.
31
- */
32
- dice: Dice;
33
- /**
34
- * Flat damage, if any. It gets added to the result of the dice rolls.
35
- * @integer
36
- * @default 0
37
- */
38
- flat?: number;
39
- };
40
- /**
41
- * @title Ranged Weapon
42
- */
43
- export type RangedWeapon = {
44
- /**
45
- * The combat techniques and dependent values.
46
- */
47
- combat_technique: RangedCombatTechniqueReference;
48
- /**
49
- * The damage of a weapon consists of a random part using dice and an optional
50
- * flat part.
51
- */
52
- damage: RangedDamage;
53
- /**
54
- * One or multiple reload times.
55
- * @minItems 1
56
- * @uniqueItems
57
- */
58
- reload_time: ReloadTime[];
59
- /**
60
- * The range brackets for the weapon: close, medium, far. Distances in m.
61
- */
62
- range: Range;
63
- /**
64
- * The needed ammunition.
65
- */
66
- ammunition?: AmmunitionReference;
67
- /**
68
- * The length of the weapon in cm/halffingers.
69
- */
70
- length: Length;
71
- /**
72
- * Is the weapon an improvised weapon?
73
- */
74
- is_improvised_weapon: boolean;
75
- };
76
- export type AmmunitionReference = {
77
- /**
78
- * The item's identifier.
79
- */
80
- id: AmmunitionIdentifier;
81
- };
82
- export type Range = {
83
- /**
84
- * The close range bracket for the weapon. Distance in m.
85
- * @integer
86
- * @minimum 1
87
- */
88
- close: number;
89
- /**
90
- * The medium range bracket for the weapon. Distance in m.
91
- * @integer
92
- * @minimum 1
93
- */
94
- medium: number;
95
- /**
96
- * The far range bracket for the weapon. Distance in m.
97
- * @integer
98
- * @minimum 1
99
- */
100
- far: number;
101
- };
102
- export type ReloadTime = {
103
- /**
104
- * A reload time value in actions.
105
- * @integer
106
- * @minimum 1
107
- */
108
- value: number;
109
- };
4
+ import { Array, Boolean, Enum, EnumCase, IncludeIdentifier, Integer, Object, TypeAlias } from "tsondb/schema/def";
5
+ export declare const RangedWeapon: TypeAlias<"RangedWeapon", Object<{
6
+ damage: import("tsondb/schema/def").MemberDecl<IncludeIdentifier<[], Enum<"RangedDamage", {
7
+ Default: EnumCase<IncludeIdentifier<[], TypeAlias<"DefaultRangedDamage", Object<{
8
+ dice: import("tsondb/schema/def").MemberDecl<IncludeIdentifier<[], TypeAlias<"Dice", Object<{
9
+ number: import("tsondb/schema/def").MemberDecl<Integer, true>;
10
+ sides: import("tsondb/schema/def").MemberDecl<IncludeIdentifier<[], TypeAlias<"DieType", Integer, []>>, true>;
11
+ }>, []>>, true>;
12
+ flat: import("tsondb/schema/def").MemberDecl<Integer, false>;
13
+ }>, []>>>;
14
+ NotApplicable: EnumCase<null>;
15
+ Special: EnumCase<null>;
16
+ }, []>>, true>;
17
+ reload_time: import("tsondb/schema/def").MemberDecl<Array<IncludeIdentifier<[], TypeAlias<"ReloadTime", Object<{
18
+ value: import("tsondb/schema/def").MemberDecl<Integer, true>;
19
+ }>, []>>>, true>;
20
+ range: import("tsondb/schema/def").MemberDecl<IncludeIdentifier<[], TypeAlias<"RangeBrackets", Object<{
21
+ close: import("tsondb/schema/def").MemberDecl<Integer, true>;
22
+ medium: import("tsondb/schema/def").MemberDecl<Integer, true>;
23
+ far: import("tsondb/schema/def").MemberDecl<Integer, true>;
24
+ }>, []>>, true>;
25
+ ammunition: import("tsondb/schema/def").MemberDecl<import("tsondb/schema/def").ReferenceIdentifierType, false>;
26
+ length: import("tsondb/schema/def").MemberDecl<IncludeIdentifier<[], TypeAlias<"Length", Integer, []>>, false>;
27
+ is_improvised_weapon: import("tsondb/schema/def").MemberDecl<Boolean, true>;
28
+ }>, []>;
@@ -1,4 +1,88 @@
1
1
  /**
2
2
  * Auxiliary types for ranged weapons.
3
3
  */
4
- export {};
4
+ import { Array, Boolean, Enum, EnumCase, IncludeIdentifier, Integer, Object, Optional, Required, TypeAlias, } from "tsondb/schema/def";
5
+ import { Dice } from "../../_Dice.js";
6
+ import { AmmunitionIdentifier } from "../../_Identifier.js";
7
+ import { Length } from "./_Weapon.js";
8
+ const RangedDamage = Enum(import.meta.url, {
9
+ name: "RangedDamage",
10
+ comment: "The damage of a ranged weapon. It consists of a random part using dice and an optional flat part ny default. Some ranged weapons may work different so that damage is either not applicable at all or it is outlined as *Special* and further defined in a description.",
11
+ values: () => ({
12
+ Default: EnumCase({ type: IncludeIdentifier(DefaultRangedDamage) }),
13
+ NotApplicable: EnumCase({ type: null }),
14
+ Special: EnumCase({ type: null }),
15
+ }),
16
+ });
17
+ const DefaultRangedDamage = TypeAlias(import.meta.url, {
18
+ name: "DefaultRangedDamage",
19
+ comment: "The damage of a weapon consists of a random part using dice and an optional flat part.",
20
+ type: () => Object({
21
+ dice: Required({
22
+ comment: "How many dice of which type are rolled to get the damage.",
23
+ type: IncludeIdentifier(Dice),
24
+ }),
25
+ flat: Optional({
26
+ comment: "Flat damage, if any. It gets added to the result of the dice rolls.",
27
+ type: Integer(),
28
+ }),
29
+ }),
30
+ });
31
+ export const RangedWeapon = TypeAlias(import.meta.url, {
32
+ name: "RangedWeapon",
33
+ type: () => Object({
34
+ damage: Required({
35
+ comment: "The damage of a weapon consists of a random part using dice and an optional flat part.",
36
+ type: IncludeIdentifier(RangedDamage),
37
+ }),
38
+ reload_time: Required({
39
+ comment: "One or multiple reload times.",
40
+ type: Array(IncludeIdentifier(ReloadTime), {
41
+ minItems: 1,
42
+ uniqueItems: true,
43
+ }),
44
+ }),
45
+ range: Required({
46
+ comment: "The range brackets for the weapon: close, medium, far. Distances in m.",
47
+ type: IncludeIdentifier(RangeBrackets),
48
+ }),
49
+ ammunition: Optional({
50
+ comment: "The needed ammunition.",
51
+ type: AmmunitionIdentifier(),
52
+ }),
53
+ length: Optional({
54
+ comment: "The length of the weapon in cm/halffingers.",
55
+ type: IncludeIdentifier(Length),
56
+ }),
57
+ is_improvised_weapon: Required({
58
+ comment: "Is the weapon an improvised weapon?",
59
+ type: Boolean(),
60
+ }),
61
+ }),
62
+ });
63
+ const RangeBrackets = TypeAlias(import.meta.url, {
64
+ name: "RangeBrackets",
65
+ type: () => Object({
66
+ close: Required({
67
+ comment: "The close range bracket for the weapon. Distance in m.",
68
+ type: Integer({ minimum: 1 }),
69
+ }),
70
+ medium: Required({
71
+ comment: "The medium range bracket for the weapon. Distance in m.",
72
+ type: Integer({ minimum: 1 }),
73
+ }),
74
+ far: Required({
75
+ comment: "The far range bracket for the weapon. Distance in m.",
76
+ type: Integer({ minimum: 1 }),
77
+ }),
78
+ }),
79
+ });
80
+ const ReloadTime = TypeAlias(import.meta.url, {
81
+ name: "ReloadTime",
82
+ type: () => Object({
83
+ value: Required({
84
+ comment: "A reload time value in actions.",
85
+ type: Integer({ minimum: 1 }),
86
+ }),
87
+ }),
88
+ });