optolith-database-schema 0.1.3 → 0.1.6

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 (204) hide show
  1. package/CHANGELOG.md +27 -0
  2. package/lib/types/Advantage.d.ts +4 -0
  3. package/lib/types/ArcaneBardTradition.d.ts +2 -2
  4. package/lib/types/ArcaneDancerTradition.d.ts +2 -2
  5. package/lib/types/Ceremony.d.ts +2 -2
  6. package/lib/types/DerivedCharacteristic.d.ts +2 -2
  7. package/lib/types/Disadvantage.d.ts +4 -0
  8. package/lib/types/FamiliarsTrick.d.ts +2 -1
  9. package/lib/types/LiturgicalChant.d.ts +2 -2
  10. package/lib/types/Ritual.d.ts +2 -2
  11. package/lib/types/Spell.d.ts +2 -2
  12. package/lib/types/_Activatable.d.ts +1286 -161
  13. package/lib/types/_Activatable.js +44 -0
  14. package/lib/types/_ActivatableSkill.d.ts +4 -0
  15. package/lib/types/_Enhancements.d.ts +2 -2
  16. package/lib/types/_Identifier.d.ts +127 -91
  17. package/lib/types/_Identifier.js +110 -83
  18. package/lib/types/_Influence.d.ts +2 -0
  19. package/lib/types/_Prerequisite.d.ts +93 -397
  20. package/lib/types/_Prerequisite.js +1 -136
  21. package/lib/types/magicalActions/AnimistPower.d.ts +5 -0
  22. package/lib/types/magicalActions/Curse.d.ts +1 -1
  23. package/lib/types/magicalActions/ElvenMagicalSong.d.ts +1 -1
  24. package/lib/types/magicalActions/GeodeRitual.d.ts +2 -2
  25. package/lib/types/prerequisites/ConditionalPrerequisites.d.ts +10 -0
  26. package/lib/types/prerequisites/ConditionalPrerequisites.js +1 -0
  27. package/lib/types/prerequisites/DisplayOption.d.ts +19 -0
  28. package/lib/types/prerequisites/DisplayOption.js +1 -0
  29. package/lib/types/prerequisites/PrerequisiteGroups.d.ts +32 -0
  30. package/lib/types/prerequisites/PrerequisiteGroups.js +1 -0
  31. package/lib/types/prerequisites/single/ActivatablePrerequisite.d.ts +95 -0
  32. package/lib/types/prerequisites/single/ActivatablePrerequisite.js +1 -0
  33. package/lib/types/prerequisites/single/AnimistPowerPrerequisite.d.ts +28 -0
  34. package/lib/types/prerequisites/single/AnimistPowerPrerequisite.js +1 -0
  35. package/lib/types/prerequisites/single/CommonSuggestedByRCPPrerequisite.d.ts +3 -0
  36. package/lib/types/prerequisites/single/CommonSuggestedByRCPPrerequisite.js +1 -0
  37. package/lib/types/prerequisites/single/CulturePrerequisite.d.ts +11 -0
  38. package/lib/types/prerequisites/single/CulturePrerequisite.js +1 -0
  39. package/lib/types/prerequisites/single/EnhancementPrerequisite.d.ts +36 -0
  40. package/lib/types/prerequisites/single/EnhancementPrerequisite.js +1 -0
  41. package/lib/types/prerequisites/single/InfluencePrerequisite.d.ts +18 -0
  42. package/lib/types/prerequisites/single/InfluencePrerequisite.js +1 -0
  43. package/lib/types/prerequisites/single/PactPrerequisite.d.ts +32 -0
  44. package/lib/types/prerequisites/single/PactPrerequisite.js +1 -0
  45. package/lib/types/prerequisites/single/PrimaryAttributePrerequisite.d.ts +22 -0
  46. package/lib/types/prerequisites/single/PrimaryAttributePrerequisite.js +1 -0
  47. package/lib/types/prerequisites/single/PublicationPrerequisite.d.ts +13 -0
  48. package/lib/types/prerequisites/single/PublicationPrerequisite.js +1 -0
  49. package/lib/types/prerequisites/single/RacePrerequisite.d.ts +14 -0
  50. package/lib/types/prerequisites/single/RacePrerequisite.js +1 -0
  51. package/lib/types/prerequisites/single/RatedPrerequisite.d.ts +99 -0
  52. package/lib/types/prerequisites/single/RatedPrerequisite.js +1 -0
  53. package/lib/types/prerequisites/single/RulePrerequisite.d.ts +10 -0
  54. package/lib/types/prerequisites/single/RulePrerequisite.js +1 -0
  55. package/lib/types/prerequisites/single/SexPrerequisite.d.ts +11 -0
  56. package/lib/types/prerequisites/single/SexPrerequisite.js +1 -0
  57. package/lib/types/prerequisites/single/SocialStatusPrerequisite.d.ts +16 -0
  58. package/lib/types/prerequisites/single/SocialStatusPrerequisite.js +1 -0
  59. package/lib/types/prerequisites/single/StatePrerequisite.d.ts +11 -0
  60. package/lib/types/prerequisites/single/StatePrerequisite.js +1 -0
  61. package/lib/types/prerequisites/single/TextPrerequisite.d.ts +31 -0
  62. package/lib/types/prerequisites/single/TextPrerequisite.js +1 -0
  63. package/lib/types/prerequisites/single/TraditionPrerequisite.d.ts +33 -0
  64. package/lib/types/prerequisites/single/TraditionPrerequisite.js +1 -0
  65. package/lib/types/specialAbility/AdvancedCombatSpecialAbility.d.ts +8 -0
  66. package/lib/types/specialAbility/AdvancedKarmaSpecialAbility.d.ts +4 -0
  67. package/lib/types/specialAbility/AdvancedMagicalSpecialAbility.d.ts +4 -0
  68. package/lib/types/specialAbility/AdvancedSkillSpecialAbility.d.ts +4 -0
  69. package/lib/types/specialAbility/AncestorGlyph.d.ts +4 -0
  70. package/lib/types/specialAbility/BlessedTradition.d.ts +5 -2
  71. package/lib/types/specialAbility/BrawlingSpecialAbility.d.ts +4 -0
  72. package/lib/types/specialAbility/CeremonialItemSpecialAbility.d.ts +4 -0
  73. package/lib/types/specialAbility/CombatSpecialAbility.d.ts +8 -0
  74. package/lib/types/specialAbility/CombatStyleSpecialAbility.d.ts +4 -0
  75. package/lib/types/specialAbility/CommandSpecialAbility.d.ts +4 -0
  76. package/lib/types/specialAbility/FamiliarSpecialAbility.d.ts +4 -0
  77. package/lib/types/specialAbility/FatePointSexSpecialAbility.d.ts +4 -0
  78. package/lib/types/specialAbility/FatePointSpecialAbility.d.ts +4 -0
  79. package/lib/types/specialAbility/GeneralSpecialAbility.d.ts +4 -0
  80. package/lib/types/specialAbility/KarmaSpecialAbility.d.ts +4 -0
  81. package/lib/types/specialAbility/LiturgicalStyleSpecialAbility.d.ts +4 -0
  82. package/lib/types/specialAbility/LycantropicGift.d.ts +4 -0
  83. package/lib/types/specialAbility/MagicStyleSpecialAbility.d.ts +4 -0
  84. package/lib/types/specialAbility/MagicalSpecialAbility.d.ts +4 -0
  85. package/lib/types/specialAbility/MagicalTradition.d.ts +3 -0
  86. package/lib/types/specialAbility/PactGift.d.ts +6 -2
  87. package/lib/types/specialAbility/ProtectiveWardingCircleSpecialAbility.d.ts +4 -0
  88. package/lib/types/specialAbility/Sermon.d.ts +4 -0
  89. package/lib/types/specialAbility/SexSpecialAbility.d.ts +4 -0
  90. package/lib/types/specialAbility/SikaryanDrainSpecialAbility.d.ts +4 -0
  91. package/lib/types/specialAbility/SkillStyleSpecialAbility.d.ts +4 -0
  92. package/lib/types/specialAbility/VampiricGift.d.ts +4 -0
  93. package/lib/types/specialAbility/Vision.d.ts +4 -0
  94. package/lib/types/specialAbility/sub/Language.d.ts +2 -2
  95. package/lib/types/specialAbility/sub/TradeSecret.d.ts +2 -0
  96. package/lib/types/traditionArtifacts/ArcaneOrbEnchantment.d.ts +18 -0
  97. package/lib/types/traditionArtifacts/AttireEnchantment.d.ts +18 -0
  98. package/lib/types/traditionArtifacts/BowlEnchantment.d.ts +18 -0
  99. package/lib/types/traditionArtifacts/CauldronEnchantment.d.ts +19 -1
  100. package/lib/types/traditionArtifacts/ChronicleEnchantment.d.ts +18 -0
  101. package/lib/types/traditionArtifacts/DaggerRitual.d.ts +18 -0
  102. package/lib/types/traditionArtifacts/FoolsHatEnchantment.d.ts +18 -0
  103. package/lib/types/traditionArtifacts/InstrumentEnchantment.d.ts +18 -0
  104. package/lib/types/traditionArtifacts/Krallenkettenzauber.d.ts +18 -0
  105. package/lib/types/traditionArtifacts/OrbEnchantment.d.ts +18 -0
  106. package/lib/types/traditionArtifacts/RingEnchantment.d.ts +18 -0
  107. package/lib/types/traditionArtifacts/SickleRitual.d.ts +18 -0
  108. package/lib/types/traditionArtifacts/SpellSwordEnchantment.d.ts +18 -0
  109. package/lib/types/traditionArtifacts/StaffEnchantment.d.ts +18 -0
  110. package/lib/types/traditionArtifacts/ToyEnchantment.d.ts +18 -0
  111. package/lib/types/traditionArtifacts/Trinkhornzauber.d.ts +18 -0
  112. package/lib/types/traditionArtifacts/WandEnchantment.d.ts +18 -0
  113. package/lib/types/traditionArtifacts/WeaponEnchantment.d.ts +18 -0
  114. package/package.json +2 -2
  115. package/schema/Advantage.schema.json +9 -0
  116. package/schema/ArcaneBardTradition.schema.json +1 -1
  117. package/schema/ArcaneDancerTradition.schema.json +1 -1
  118. package/schema/Ceremony.schema.json +1 -1
  119. package/schema/DerivedCharacteristic.schema.json +1 -1
  120. package/schema/Disadvantage.schema.json +9 -0
  121. package/schema/FamiliarsTrick.schema.json +1 -0
  122. package/schema/LiturgicalChant.schema.json +1 -1
  123. package/schema/Ritual.schema.json +1 -1
  124. package/schema/Spell.schema.json +1 -1
  125. package/schema/_Activatable.schema.json +2150 -379
  126. package/schema/_ActivatableSkill.schema.json +1 -0
  127. package/schema/_Enhancements.schema.json +1 -1
  128. package/schema/_Identifier.schema.json +327 -166
  129. package/schema/_Influence.schema.json +4 -0
  130. package/schema/_Prerequisite.schema.json +887 -675
  131. package/schema/magicalActions/AnimistPower.schema.json +4 -0
  132. package/schema/magicalActions/Curse.schema.json +1 -1
  133. package/schema/magicalActions/ElvenMagicalSong.schema.json +1 -1
  134. package/schema/magicalActions/GeodeRitual.schema.json +1 -1
  135. package/schema/prerequisites/ConditionalPrerequisites.schema.json +15 -0
  136. package/schema/prerequisites/DisplayOption.schema.json +48 -0
  137. package/schema/prerequisites/PrerequisiteGroups.schema.json +246 -0
  138. package/schema/prerequisites/single/ActivatablePrerequisite.schema.json +142 -0
  139. package/schema/prerequisites/single/AnimistPowerPrerequisite.schema.json +40 -0
  140. package/schema/prerequisites/single/CommonSuggestedByRCPPrerequisite.schema.json +18 -0
  141. package/schema/prerequisites/single/CulturePrerequisite.schema.json +27 -0
  142. package/schema/prerequisites/single/EnhancementPrerequisite.schema.json +54 -0
  143. package/schema/prerequisites/single/InfluencePrerequisite.schema.json +33 -0
  144. package/schema/prerequisites/single/PactPrerequisite.schema.json +46 -0
  145. package/schema/prerequisites/single/PrimaryAttributePrerequisite.schema.json +58 -0
  146. package/schema/prerequisites/single/PublicationPrerequisite.schema.json +27 -0
  147. package/schema/prerequisites/single/RacePrerequisite.schema.json +31 -0
  148. package/schema/prerequisites/single/RatedPrerequisite.schema.json +184 -0
  149. package/schema/prerequisites/single/RulePrerequisite.schema.json +26 -0
  150. package/schema/prerequisites/single/SexPrerequisite.schema.json +27 -0
  151. package/schema/prerequisites/single/SocialStatusPrerequisite.schema.json +30 -0
  152. package/schema/prerequisites/single/StatePrerequisite.schema.json +27 -0
  153. package/schema/prerequisites/single/TextPrerequisite.schema.json +63 -0
  154. package/schema/prerequisites/single/TraditionPrerequisite.schema.json +96 -0
  155. package/schema/source/Publication.schema.json +1 -1
  156. package/schema/specialAbility/AdvancedCombatSpecialAbility.schema.json +12 -0
  157. package/schema/specialAbility/AdvancedKarmaSpecialAbility.schema.json +9 -0
  158. package/schema/specialAbility/AdvancedMagicalSpecialAbility.schema.json +9 -0
  159. package/schema/specialAbility/AdvancedSkillSpecialAbility.schema.json +9 -0
  160. package/schema/specialAbility/AncestorGlyph.schema.json +9 -0
  161. package/schema/specialAbility/BlessedTradition.schema.json +7 -1
  162. package/schema/specialAbility/BrawlingSpecialAbility.schema.json +9 -0
  163. package/schema/specialAbility/CeremonialItemSpecialAbility.schema.json +9 -0
  164. package/schema/specialAbility/CombatSpecialAbility.schema.json +12 -0
  165. package/schema/specialAbility/CombatStyleSpecialAbility.schema.json +9 -0
  166. package/schema/specialAbility/CommandSpecialAbility.schema.json +9 -0
  167. package/schema/specialAbility/FamiliarSpecialAbility.schema.json +9 -0
  168. package/schema/specialAbility/FatePointSexSpecialAbility.schema.json +9 -0
  169. package/schema/specialAbility/FatePointSpecialAbility.schema.json +9 -0
  170. package/schema/specialAbility/GeneralSpecialAbility.schema.json +9 -0
  171. package/schema/specialAbility/KarmaSpecialAbility.schema.json +9 -0
  172. package/schema/specialAbility/LiturgicalStyleSpecialAbility.schema.json +9 -0
  173. package/schema/specialAbility/LycantropicGift.schema.json +9 -0
  174. package/schema/specialAbility/MagicStyleSpecialAbility.schema.json +9 -0
  175. package/schema/specialAbility/MagicalSpecialAbility.schema.json +9 -0
  176. package/schema/specialAbility/MagicalTradition.schema.json +6 -0
  177. package/schema/specialAbility/PactGift.schema.json +10 -1
  178. package/schema/specialAbility/ProtectiveWardingCircleSpecialAbility.schema.json +9 -0
  179. package/schema/specialAbility/Sermon.schema.json +9 -0
  180. package/schema/specialAbility/SexSpecialAbility.schema.json +9 -0
  181. package/schema/specialAbility/SikaryanDrainSpecialAbility.schema.json +9 -0
  182. package/schema/specialAbility/SkillStyleSpecialAbility.schema.json +9 -0
  183. package/schema/specialAbility/VampiricGift.schema.json +9 -0
  184. package/schema/specialAbility/Vision.schema.json +9 -0
  185. package/schema/specialAbility/sub/Language.schema.json +1 -1
  186. package/schema/specialAbility/sub/TradeSecret.schema.json +3 -0
  187. package/schema/traditionArtifacts/ArcaneOrbEnchantment.schema.json +27 -1
  188. package/schema/traditionArtifacts/AttireEnchantment.schema.json +27 -1
  189. package/schema/traditionArtifacts/BowlEnchantment.schema.json +27 -1
  190. package/schema/traditionArtifacts/CauldronEnchantment.schema.json +30 -4
  191. package/schema/traditionArtifacts/ChronicleEnchantment.schema.json +27 -1
  192. package/schema/traditionArtifacts/DaggerRitual.schema.json +27 -1
  193. package/schema/traditionArtifacts/FoolsHatEnchantment.schema.json +27 -1
  194. package/schema/traditionArtifacts/InstrumentEnchantment.schema.json +27 -1
  195. package/schema/traditionArtifacts/Krallenkettenzauber.schema.json +27 -1
  196. package/schema/traditionArtifacts/OrbEnchantment.schema.json +27 -1
  197. package/schema/traditionArtifacts/RingEnchantment.schema.json +27 -1
  198. package/schema/traditionArtifacts/SickleRitual.schema.json +27 -1
  199. package/schema/traditionArtifacts/SpellSwordEnchantment.schema.json +27 -1
  200. package/schema/traditionArtifacts/StaffEnchantment.schema.json +27 -1
  201. package/schema/traditionArtifacts/ToyEnchantment.schema.json +27 -1
  202. package/schema/traditionArtifacts/Trinkhornzauber.schema.json +27 -1
  203. package/schema/traditionArtifacts/WandEnchantment.schema.json +27 -1
  204. package/schema/traditionArtifacts/WeaponEnchantment.schema.json +27 -1
@@ -2,8 +2,12 @@
2
2
  * General type specifications used by multiple activatable entries.
3
3
  * @title Activatable
4
4
  */
5
- import { Identifier } from "./_Identifier";
6
- import { Prerequisite } from "./_Prerequisite";
5
+ import { DisplayOption } from "./prerequisites/DisplayOption";
6
+ import { Errata } from "./source/_Erratum";
7
+ import { PublicationRefs } from "./source/_PublicationRef";
8
+ import { Duration } from "./_ActivatableSkill";
9
+ import { ActivatableIdentifier, AdvancedSpecialAbilityRestrictedOptionIdentifier, CombatRelatedSpecialAbilityIdentifier, CombatTechniqueIdentifier, MagicalTraditionIdentifier, PatronIdentifier, VolumePointsOptionReferenceIdentifier } from "./_Identifier";
10
+ import { GeneralPrerequisites } from "./_Prerequisite";
7
11
  /**
8
12
  * The activatable entry's identifier. An unique, increasing integer.
9
13
  * @integer
@@ -28,13 +32,587 @@ export declare type NameInLibrary = string;
28
32
  */
29
33
  export declare type Levels = number;
30
34
  /**
35
+ * The number stating how often you can buy the entry. The **default** depends on
36
+ * the entry type:
31
37
  *
38
+ * - **Advantage:** `1` in all cases (as specified in the **Core Rules**)
39
+ * - **Disadvantage:** `1` in all cases (as specified in the **Core Rules**)
40
+ * - **Special Abilities:** `1` if no options can be selected, otherwise the
41
+ * number of possible options
42
+ *
43
+ * The maximum is only set if it differs from the defaults specified above.
44
+ * @integer
45
+ * @minimum 1
32
46
  */
33
- export declare type Maximum = "";
47
+ export declare type Maximum = number;
34
48
  /**
49
+ * Definitions for possible options for the activatable entry. They can either
50
+ * be derived from entry categories or be defined explicitly. Both can happen as
51
+ * well, but if there is an explicitly defined select option and a derived
52
+ * select option has the same identifier (which may only happen if skill or
53
+ * combat technique identifiers are used for explicit select options), the
54
+ * explicit definition overwrites the derived option.
35
55
  *
56
+ * Note that this is only a full definition of options for simple logic that can
57
+ * be made explicit using the more detailed configuration for both derived
58
+ * categories and explicit options. There are quite a few entries whose option
59
+ * logic cannot be fully represented here, so that it needs to be implemented
60
+ * manually.
61
+ * @minProperties 1
62
+ */
63
+ export declare type SelectOptions = {
64
+ /**
65
+ * A list of categories with optional further configuration. All available
66
+ * entries from the specified categories will be included as separate select
67
+ * options. You can also specify a set of groups that should only be
68
+ * included. Groups not mentioned will be excluded then.
69
+ * @minItems 1
70
+ */
71
+ derived?: CategoryOption[];
72
+ /**
73
+ * A list of explicit select options. If the identifier has a specific type,
74
+ * its entry is the base of this select option, where values defined here
75
+ * override values from the base. Define the `src` property if the options
76
+ * are not derived from the rules text of the advantage/disadvantage/special
77
+ * ability but instead are listed in a separate block and/or on a separate
78
+ * page.
79
+ * @minItems 1
80
+ */
81
+ explicit?: ExplicitOption[];
82
+ };
83
+ declare type CategoryOption = {
84
+ tag: "Blessings";
85
+ } | {
86
+ tag: "Cantrips";
87
+ } | {
88
+ tag: "TradeSecrets";
89
+ } | {
90
+ tag: "Scripts";
91
+ } | {
92
+ tag: "AnimalShapes";
93
+ } | {
94
+ tag: "ArcaneBardTraditions";
95
+ } | {
96
+ tag: "ArcaneDancerTraditions";
97
+ } | {
98
+ tag: "SexPractices";
99
+ } | {
100
+ tag: "Races";
101
+ } | {
102
+ tag: "Cultures";
103
+ } | {
104
+ tag: "BlessedTraditions";
105
+ /**
106
+ * Should the principles (code) of the tradition be required to select the
107
+ * respective tradition?
108
+ */
109
+ require_principles?: true;
110
+ } | {
111
+ tag: "Elements";
112
+ /**
113
+ * Only include entries with the listed identifiers.
114
+ * @minItems 1
115
+ * @uniqueItems
116
+ */
117
+ specific?: {
118
+ /**
119
+ * The element's identifier.
120
+ * @integer
121
+ * @minimum 1
122
+ * @maximum 6
123
+ */
124
+ id: number;
125
+ }[];
126
+ } | {
127
+ tag: "Properties";
128
+ /**
129
+ * Does each property require it's corresponding property knowledge?
130
+ */
131
+ require_knowledge?: true;
132
+ /**
133
+ * Require a minimum number of spellworks of the respective property to be
134
+ * on a minimum skill rating.
135
+ */
136
+ require_minimum_spellworks_on?: {
137
+ /**
138
+ * The minimum number of spellworks that need to be on the defined minimum
139
+ * skill rating.
140
+ * @integer
141
+ * @minimum 1
142
+ */
143
+ number: number;
144
+ /**
145
+ * The minimum skill rating the defined minimum number of spellworks need
146
+ * to be on.
147
+ * @integer
148
+ * @minimum 1
149
+ */
150
+ value: number;
151
+ };
152
+ } | {
153
+ tag: "Aspects";
154
+ /**
155
+ * Does each aspect require it's corresponding aspect knowledge?
156
+ */
157
+ require_knowledge?: true;
158
+ /**
159
+ * The generated name should be the *Master of (Aspect)* suffix for this
160
+ * aspect instead of the aspect's name. If an aspect does not provide a
161
+ * suffix (such as the General aspect), it is automatically excluded from
162
+ * the list.
163
+ */
164
+ use_master_of_suffix_as_name?: true;
165
+ /**
166
+ * Require a minimum number of liturgies of the respective aspect to be on a
167
+ * minimum skill rating.
168
+ */
169
+ require_minimum_liturgies_on?: {
170
+ /**
171
+ * The minimum number of liturgies that need to be on the defined minimum
172
+ * skill rating.
173
+ * @integer
174
+ * @minimum 1
175
+ */
176
+ number: number;
177
+ /**
178
+ * The minimum skill rating the defined minimum number of liturgies need
179
+ * to be on.
180
+ * @integer
181
+ * @minimum 1
182
+ */
183
+ value: number;
184
+ };
185
+ } | {
186
+ tag: "Diseases";
187
+ /**
188
+ * Only convert half the disease level into the AP value.
189
+ */
190
+ use_half_level_as_ap_value?: true;
191
+ } | {
192
+ tag: "Poisons";
193
+ /**
194
+ * Only convert half the poison level into the AP value.
195
+ */
196
+ use_half_level_as_ap_value?: true;
197
+ } | {
198
+ tag: "Languages";
199
+ /**
200
+ * Generate prerequisites for each entry of the category.
201
+ * @minItems 1
202
+ */
203
+ prerequisites?: OptionOptionPrerequisite[];
204
+ } | {
205
+ tag: "Skills";
206
+ /**
207
+ * Only include entries of the specified groups.
208
+ * @minItems 1
209
+ */
210
+ groups?: {
211
+ /**
212
+ * The skill group's identifier.
213
+ * @integer
214
+ * @minimum 1
215
+ * @maximum 5
216
+ */
217
+ id: number;
218
+ }[];
219
+ /**
220
+ * Only include (`Intersection`) or exclude (`Difference`) specific skills.
221
+ */
222
+ specific?: {
223
+ operation: {
224
+ tag: "Intersection";
225
+ } | {
226
+ tag: "Difference";
227
+ };
228
+ /**
229
+ * The list of specific skills.
230
+ * @minItems 1
231
+ * @uniqueItems
232
+ */
233
+ list: {
234
+ /**
235
+ * The skill's identifier.
236
+ * @integer
237
+ * @minimum 1
238
+ * @maximum 59
239
+ */
240
+ id: number;
241
+ }[];
242
+ };
243
+ /**
244
+ * Registers new applications, which get enabled once this entry is
245
+ * activated with its respective select option. It specifies an entry-unique
246
+ * identifier, the skill it belongs to is derived from the select option
247
+ * automatically. A translation can be left out if its name equals the name
248
+ * of the origin entry.
249
+ * @minItems 1
250
+ */
251
+ skill_applications?: {
252
+ /**
253
+ * The application's identifier. An entry-unique, increasing integer.
254
+ * @integer
255
+ * @minimum 1
256
+ */
257
+ id: number;
258
+ /**
259
+ * All translations for the entry, identified by IETF language tag (BCP47).
260
+ * @minProperties 1
261
+ */
262
+ translations?: {
263
+ /**
264
+ * @patternProperties ^[a-z]{2}-[A-Z]{2}$
265
+ */
266
+ [localeId: string]: {
267
+ /**
268
+ * The name of the application if different from the activatable entry's
269
+ * name.
270
+ * @minLength 1
271
+ */
272
+ name: string;
273
+ };
274
+ };
275
+ }[];
276
+ /**
277
+ * Registers uses, which get enabled once this entry is activated with its
278
+ * respective select option. It specifies an entry-unique identifier, the
279
+ * skill it belongs to is derived from the select option automatically. A
280
+ * translation can be left out if its name equals the name of the origin
281
+ * entry.
282
+ * @minItems 1
283
+ */
284
+ skill_uses?: {
285
+ /**
286
+ * The use's identifier. An entry-unique, increasing integer.
287
+ * @integer
288
+ * @minimum 1
289
+ */
290
+ id: number;
291
+ /**
292
+ * All translations for the entry, identified by IETF language tag (BCP47).
293
+ * @minProperties 1
294
+ */
295
+ translations?: {
296
+ /**
297
+ * @patternProperties ^[a-z]{2}-[A-Z]{2}$
298
+ */
299
+ [localeId: string]: {
300
+ /**
301
+ * The name of the use if different from the activatable entry's name.
302
+ * @minLength 1
303
+ */
304
+ name: string;
305
+ };
306
+ };
307
+ }[];
308
+ /**
309
+ * Generate prerequisites for each entry of the category.
310
+ * @minItems 1
311
+ */
312
+ prerequisites?: (OptionSkillSelfPrerequisite | OptionOptionPrerequisite)[];
313
+ /**
314
+ * Generate AP values for each entry.
315
+ */
316
+ ap_value?: OptionSkillDeriveAdventurePointsValue;
317
+ } | {
318
+ tag: NonSkillSkillCategory;
319
+ /**
320
+ * Only include (`Intersection`) or exclude (`Difference`) specific entries.
321
+ */
322
+ specific?: {
323
+ operation: {
324
+ tag: "Intersection";
325
+ } | {
326
+ tag: "Difference";
327
+ };
328
+ /**
329
+ * The list of specific entries.
330
+ * @minItems 1
331
+ * @uniqueItems
332
+ */
333
+ list: {
334
+ /**
335
+ * The entry's identifier.
336
+ * @integer
337
+ * @minimum 1
338
+ * @maximum 59
339
+ */
340
+ id: number;
341
+ }[];
342
+ };
343
+ /**
344
+ * Generate prerequisites for each entry of the category.
345
+ * @minItems 1
346
+ */
347
+ prerequisites?: (OptionSkillSelfPrerequisite | OptionOptionPrerequisite)[];
348
+ /**
349
+ * Generate AP values for each entry.
350
+ */
351
+ ap_value?: OptionSkillDeriveAdventurePointsValue;
352
+ };
353
+ declare enum NonSkillSkillCategory {
354
+ CloseCombatTechniques = "CloseCombatTechniques",
355
+ RangedCombatTechniques = "RangedCombatTechniques",
356
+ LiturgicalChants = "LiturgicalChants",
357
+ Ceremonies = "Ceremonies",
358
+ Spells = "Spells",
359
+ Rituals = "Rituals"
360
+ }
361
+ declare type OptionSkillSelfPrerequisite = {
362
+ tag: "Self";
363
+ /**
364
+ * The entry requires itself on a certain Skill Rating.
365
+ * @integer
366
+ * @minimum 1
367
+ */
368
+ value: number;
369
+ };
370
+ /**
371
+ * The entry requires or prohibits itself as a select option of another entry.
372
+ */
373
+ declare type OptionOptionPrerequisite = {
374
+ tag: "SelectOption";
375
+ /**
376
+ * The target entry's identifier.
377
+ */
378
+ id: ActivatableIdentifier;
379
+ /**
380
+ * Is the select option required (`true`) or prohibited (`false`)?
381
+ */
382
+ active: boolean;
383
+ /**
384
+ * The required level, if any.
385
+ * @integer
386
+ * @minimum 2
387
+ */
388
+ level?: number;
389
+ };
390
+ /**
391
+ * Generate AP values for each entry.
36
392
  */
37
- export declare type Options = "";
393
+ declare type OptionSkillDeriveAdventurePointsValue = {
394
+ tag: "DerivedFromImprovementCost";
395
+ /**
396
+ * This number is multiplied with the improvement cost of the entry
397
+ * (A = 1 to D = 4).
398
+ * @integer
399
+ * @minimum 2
400
+ */
401
+ multiplier?: number;
402
+ } | {
403
+ tag: "Fixed";
404
+ /**
405
+ * A mapping of skill identifiers to their specific AP values.
406
+ */
407
+ map: {
408
+ /**
409
+ * The skill's identifier.
410
+ * @integer
411
+ * @minimum 1
412
+ */
413
+ id: number;
414
+ /**
415
+ * The AP value for the specified entry.
416
+ * @integer
417
+ * @minimum 1
418
+ */
419
+ ap_value: number;
420
+ }[];
421
+ /**
422
+ * The default value of an entry. Used as a fallback if no value is
423
+ * found in `list`.
424
+ * @integer
425
+ * @minimum 1
426
+ */
427
+ default: number;
428
+ };
429
+ declare type ExplicitOption = {
430
+ tag: "General";
431
+ /**
432
+ * The option's identifier. An unique, increasing integer.
433
+ * @integer
434
+ * @minimum 1
435
+ */
436
+ id: number;
437
+ /**
438
+ * Sometimes, professions use specific text selections that are not
439
+ * contained in described lists. This ensures you can use them for
440
+ * professions only. They are not going to be displayed as options to the
441
+ * user.
442
+ */
443
+ profession_only?: true;
444
+ /**
445
+ * Registers new applications, which get enabled once this entry is
446
+ * activated with its respective select option. It specifies an entry-unique
447
+ * identifier and the skill it belongs to. A translation can be left out if
448
+ * its name equals the name of the origin select option.
449
+ */
450
+ skill_applications?: SkillApplications;
451
+ /**
452
+ * Registers uses, which get enabled once this entry is activated with its
453
+ * respective select option. It specifies an entry-unique identifier and the
454
+ * skill it belongs to. A translation can be left out if its name equals the
455
+ * name of the origin select option.
456
+ */
457
+ skill_uses?: SkillUses;
458
+ prerequisites?: GeneralPrerequisites;
459
+ /**
460
+ * Specific AP cost for the select option.
461
+ * @integer
462
+ * @minimum 1
463
+ */
464
+ ap_value?: number;
465
+ src?: PublicationRefs;
466
+ /**
467
+ * All translations for the entry, identified by IETF language tag (BCP47).
468
+ * @minProperties 1
469
+ */
470
+ translations: {
471
+ /**
472
+ * @patternProperties ^[a-z]{2}-[A-Z]{2}$
473
+ */
474
+ [localeId: string]: {
475
+ /**
476
+ * The name of the select option.
477
+ * @minLength 1
478
+ */
479
+ name: string;
480
+ /**
481
+ * The name of the select option when displayed in a generated
482
+ * profession text.
483
+ * @minLength 1
484
+ */
485
+ name_in_profession?: string;
486
+ /**
487
+ * The description of the select option. Useful for Bad Habits, Trade
488
+ * Secrets and other entries where a description is available.
489
+ * @markdown
490
+ * @minLength 1
491
+ */
492
+ description?: string;
493
+ errata?: Errata;
494
+ };
495
+ };
496
+ } | {
497
+ tag: "Skill";
498
+ /**
499
+ * The skill's identifier. An unique, increasing integer.
500
+ * @integer
501
+ * @minimum 1
502
+ */
503
+ id: number;
504
+ /**
505
+ * Registers new applications, which get enabled once this entry is
506
+ * activated with its respective select option. It specifies an entry-unique
507
+ * identifier and the skill it belongs to. A translation can be left out if
508
+ * its name equals the name of the origin select option.
509
+ * @minItems 1
510
+ */
511
+ skill_applications?: {
512
+ /**
513
+ * The application's identifier. An entry-unique, increasing integer.
514
+ * @integer
515
+ * @minimum 1
516
+ */
517
+ id: number;
518
+ /**
519
+ * All translations for the entry, identified by IETF language tag (BCP47).
520
+ * @minProperties 1
521
+ */
522
+ translations?: {
523
+ /**
524
+ * @patternProperties ^[a-z]{2}-[A-Z]{2}$
525
+ */
526
+ [localeId: string]: {
527
+ /**
528
+ * The name of the application if different from the activatable entry's
529
+ * name.
530
+ * @minLength 1
531
+ */
532
+ name: string;
533
+ };
534
+ };
535
+ }[];
536
+ /**
537
+ * Registers uses, which get enabled once this entry is activated with its
538
+ * respective select option. It specifies an entry-unique identifier and the
539
+ * skill it belongs to. A translation can be left out if its name equals the
540
+ * name of the origin select option.
541
+ * @minItems 1
542
+ */
543
+ skill_uses?: {
544
+ /**
545
+ * The use's identifier. An entry-unique, increasing integer.
546
+ * @integer
547
+ * @minimum 1
548
+ */
549
+ id: number;
550
+ /**
551
+ * All translations for the entry, identified by IETF language tag (BCP47).
552
+ * @minProperties 1
553
+ */
554
+ translations?: {
555
+ /**
556
+ * @patternProperties ^[a-z]{2}-[A-Z]{2}$
557
+ */
558
+ [localeId: string]: {
559
+ /**
560
+ * The name of the use if different from the activatable entry's name.
561
+ * @minLength 1
562
+ */
563
+ name: string;
564
+ };
565
+ };
566
+ }[];
567
+ prerequisites?: GeneralPrerequisites;
568
+ /**
569
+ * Specific AP cost for the select option.
570
+ * @integer
571
+ * @minimum 1
572
+ */
573
+ ap_value?: number;
574
+ src?: PublicationRefs;
575
+ /**
576
+ * All translations for the entry, identified by IETF language tag (BCP47).
577
+ * @minProperties 1
578
+ */
579
+ translations?: {
580
+ /**
581
+ * @patternProperties ^[a-z]{2}-[A-Z]{2}$
582
+ * @minProperties 1
583
+ */
584
+ [localeId: string]: {
585
+ errata?: Errata;
586
+ };
587
+ };
588
+ } | {
589
+ tag: "CombatTechnique";
590
+ /**
591
+ * The combat technique's identifier.
592
+ */
593
+ id: CombatTechniqueIdentifier;
594
+ prerequisites?: GeneralPrerequisites;
595
+ /**
596
+ * Specific AP cost for the select option.
597
+ * @integer
598
+ * @minimum 1
599
+ */
600
+ ap_value?: number;
601
+ src?: PublicationRefs;
602
+ /**
603
+ * All translations for the entry, identified by IETF language tag (BCP47).
604
+ * @minProperties 1
605
+ */
606
+ translations?: {
607
+ /**
608
+ * @patternProperties ^[a-z]{2}-[A-Z]{2}$
609
+ * @minProperties 1
610
+ */
611
+ [localeId: string]: {
612
+ errata?: Errata;
613
+ };
614
+ };
615
+ };
38
616
  /**
39
617
  * The rule text.
40
618
  * @markdown
@@ -58,21 +636,86 @@ export declare type CombatSpecialAbilityType = {
58
636
  tag: "SpecialManeuver";
59
637
  };
60
638
  /**
61
- * Registers new skill applications, which get enabled once this entry is
62
- * activated. It specifies an entry-unique identifier and the skill it belongs
63
- * to. A translation can be left out if its name equals the name of the origin
64
- * activatable entry.
639
+ * Registers new skill applications, which get enabled once this entry is
640
+ * activated. It specifies an entry-unique identifier and the skill it belongs
641
+ * to. A translation can be left out if its name equals the name of the origin
642
+ * activatable entry.
643
+ * @minItems 1
644
+ */
645
+ export declare type SkillApplications = {
646
+ /**
647
+ * The application's identifier. An entry-unique, increasing integer.
648
+ * @integer
649
+ * @minimum 1
650
+ */
651
+ id: number;
652
+ /**
653
+ * The skill(s) this application belongs to.
654
+ */
655
+ skill: {
656
+ tag: "Single";
657
+ /**
658
+ * The referenced skill's identifier.
659
+ * @integer
660
+ * @minimum 1
661
+ */
662
+ id: number;
663
+ } | {
664
+ tag: "Multiple";
665
+ /**
666
+ * The skills this application belongs to.
667
+ * @minItems 2
668
+ */
669
+ list: {
670
+ /**
671
+ * The referenced skill's identifier.
672
+ * @integer
673
+ * @minimum 1
674
+ */
675
+ id: number;
676
+ }[];
677
+ /**
678
+ * If an application applies to multiple skills, it may need to ensure the
679
+ * respective skill is on a certain skill rating if the activatable entry
680
+ * cannot ensure this prerequisite.
681
+ * @integer
682
+ * @minimum 1
683
+ */
684
+ required_skill_rating?: number;
685
+ };
686
+ /**
687
+ * All translations for the entry, identified by IETF language tag (BCP47).
688
+ * @minProperties 1
689
+ */
690
+ translations?: {
691
+ /**
692
+ * @patternProperties ^[a-z]{2}-[A-Z]{2}$
693
+ */
694
+ [localeId: string]: {
695
+ /**
696
+ * The name of the application if different from the activatable entry's
697
+ * name.
698
+ * @minLength 1
699
+ */
700
+ name: string;
701
+ };
702
+ };
703
+ }[];
704
+ /**
705
+ * Registers uses, which get enabled once this entry is activated. It specifies
706
+ * an entry-unique identifier and the skill it belongs to. A translation can be
707
+ * left out if its name equals the name of the origin activatable entry.
65
708
  * @minItems 1
66
709
  */
67
- export declare type SkillApplications = {
710
+ export declare type SkillUses = {
68
711
  /**
69
- * The application's identifier. An entry-unique, increasing integer.
712
+ * The use's identifier. An entry-unique, increasing integer.
70
713
  * @integer
71
714
  * @minimum 1
72
715
  */
73
716
  id: number;
74
717
  /**
75
- * The skill(s) this application belongs to.
718
+ * The skill(s) this use belongs to.
76
719
  */
77
720
  skill: {
78
721
  tag: "Single";
@@ -85,7 +728,7 @@ export declare type SkillApplications = {
85
728
  } | {
86
729
  tag: "Multiple";
87
730
  /**
88
- * The skills this application belongs to.
731
+ * The skills this use belongs to.
89
732
  * @minItems 2
90
733
  */
91
734
  list: {
@@ -96,228 +739,709 @@ export declare type SkillApplications = {
96
739
  */
97
740
  id: number;
98
741
  }[];
742
+ };
743
+ /**
744
+ * All translations for the entry, identified by IETF language tag (BCP47).
745
+ * @minProperties 1
746
+ */
747
+ translations?: {
748
+ /**
749
+ * @patternProperties ^[a-z]{2}-[A-Z]{2}$
750
+ */
751
+ [localeId: string]: {
752
+ /**
753
+ * The name of the use if different from the activatable entry's name.
754
+ * @minLength 1
755
+ */
756
+ name: string;
757
+ };
758
+ };
759
+ }[];
760
+ /**
761
+ * The penalty the special ability gives when used.
762
+ */
763
+ export declare type Penalty = {
764
+ tag: "Single";
765
+ /**
766
+ * The penalty value.
767
+ * @integer
768
+ */
769
+ value: number;
770
+ /**
771
+ * Set to `true` if the penalty applies to the parry instead of the attack.
772
+ */
773
+ applies_to_parry?: true;
774
+ } | {
775
+ tag: "ByHandedness";
776
+ /**
777
+ * The penalty value for one-handed weapons.
778
+ * @integer
779
+ */
780
+ one_handed: number;
781
+ /**
782
+ * The penalty value for two-handed weapons.
783
+ * @integer
784
+ */
785
+ two_handed: number;
786
+ /**
787
+ * Set to `true` if the penalty applies to the parry instead of the attack.
788
+ */
789
+ applies_to_parry?: true;
790
+ } | {
791
+ tag: "ByActivation";
792
+ /**
793
+ * The penalty value if the entry has been bought by the character.
794
+ * @integer
795
+ */
796
+ active: number;
797
+ /**
798
+ * The penalty value if the entry has not been bought by the character.
799
+ * @integer
800
+ */
801
+ inactive: number;
802
+ /**
803
+ * Set to `true` if the penalty applies to the parry instead of the attack.
804
+ */
805
+ applies_to_parry?: true;
806
+ } | {
807
+ tag: "Selection";
808
+ options: {
809
+ tag: "Specific";
810
+ /**
811
+ * The list of specific penalty options.
812
+ * @minItems 2
813
+ * @uniqueItems
814
+ */
815
+ list: {
816
+ /**
817
+ * The penalty value.
818
+ * @integer
819
+ */
820
+ value: number;
821
+ }[];
822
+ } | {
823
+ tag: "Range";
824
+ /**
825
+ * The minimum penalty value.
826
+ * @integer
827
+ */
828
+ minimum: number;
829
+ /**
830
+ * The maximum penalty value.
831
+ * @integer
832
+ */
833
+ maximum: number;
834
+ };
835
+ } | {
836
+ tag: "ByLevel";
837
+ /**
838
+ * A continuous range of penalties for each level. The first element is the
839
+ * penalty for the first level, the second element is the penalty for the
840
+ * second level, and so on.
841
+ * @minItems 2
842
+ */
843
+ levels: {
844
+ /**
845
+ * The penalty value for this level.
846
+ * @integer
847
+ */
848
+ value: number;
849
+ }[];
850
+ /**
851
+ * The identifier of the combat-related special ability of which the level
852
+ * defines the penalty instead.
853
+ */
854
+ external_id?: CombatRelatedSpecialAbilityIdentifier;
855
+ } | {
856
+ tag: "ByAttack";
857
+ /**
858
+ * A list of penalties for subsequent attacks. The first element is the
859
+ * penalty for the first attack, the second element is the penalty for the
860
+ * second attack, and so on. The order of the first element may be changed
861
+ * using `initial_order`, so that e.g. if set to `2`, the first element is
862
+ * the penalty for the second attack, the second element is the penalty for
863
+ * the third attack, and so on.
864
+ * @minItems 1
865
+ */
866
+ list: {
867
+ /**
868
+ * The penalty value for this order.
869
+ * @integer
870
+ */
871
+ value: number;
872
+ }[];
873
+ /**
874
+ * The order of the first element in the `list` of penalties.
875
+ */
876
+ initial_order?: number;
877
+ /**
878
+ * Set if a predefined different word should be used instead of the word
879
+ * `attack` for display purposes.
880
+ */
881
+ attack_replacement?: {
882
+ tag: "Throw";
883
+ };
884
+ } | {
885
+ tag: "DependsOnHitZone";
886
+ };
887
+ export declare type EnchantmentCost = {
888
+ tag: "ArcaneEnergyCost";
889
+ ae_cost: ArcaneEnergyCost;
890
+ } | {
891
+ tag: "BindingCost";
892
+ binding_cost: BindingCost;
893
+ };
894
+ /**
895
+ * The AE Cost.
896
+ */
897
+ export declare type ArcaneEnergyCost = {
898
+ tag: "Fixed";
899
+ /**
900
+ * The AE cost value.
901
+ * @integer
902
+ * @minimum 1
903
+ */
904
+ value: number;
905
+ /**
906
+ * Set to `true` if the AE costs are permanent.
907
+ * @integer
908
+ * @minimum 1
909
+ */
910
+ is_permanent?: true;
911
+ /**
912
+ * Specified if the AE cost `value` has to be paid for each time interval.
913
+ */
914
+ interval?: Duration.UnitValue;
915
+ /**
916
+ * The AE cost are per level of the enchantment. It may either be displayed
917
+ * in a compressed way (e.g. `1 AE per level`) or in a verbose way (e.g. `1
918
+ * AE for level I; 2 AE for level II`).
919
+ */
920
+ per_level?: {
921
+ tag: "Compressed";
922
+ } | {
923
+ tag: "Verbose";
924
+ };
925
+ /**
926
+ * All translations for the entry, identified by IETF language tag
927
+ * (BCP47).
928
+ * @minProperties 1
929
+ */
930
+ translations?: {
931
+ /**
932
+ * @patternProperties ^[a-z]{2}-[A-Z]{2}$
933
+ * @minProperties 1
934
+ */
935
+ [localeId: string]: {
936
+ /**
937
+ * A note, appended to the generated string in parenthesis.
938
+ */
939
+ note?: {
940
+ /**
941
+ * The full note.
942
+ * @minLength 1
943
+ */
944
+ default: string;
945
+ /**
946
+ * A compressed note, if applicable. If not specified it should not
947
+ * be displayed in small location.
948
+ * @minLength 1
949
+ */
950
+ compressed?: string;
951
+ };
952
+ };
953
+ };
954
+ } | {
955
+ tag: "PerCountable";
956
+ /**
957
+ * The AE cost value that has to be per a specific countable entity.
958
+ * @integer
959
+ * @minimum 1
960
+ */
961
+ value: number;
962
+ /**
963
+ * If defined, in addition to the cost per entity you have to pay a flat
964
+ * amount, regardless of the entity count.
965
+ * @integer
966
+ * @minimum 1
967
+ */
968
+ base_value?: number;
969
+ /**
970
+ * All translations for the entry, identified by IETF language tag
971
+ * (BCP47).
972
+ * @minProperties 1
973
+ */
974
+ translations?: {
975
+ /**
976
+ * @patternProperties ^[a-z]{2}-[A-Z]{2}$
977
+ * @minProperties 1
978
+ */
979
+ [localeId: string]: {
980
+ /**
981
+ * The cost have to be per a specific countable entity, e.g. `8 AE per
982
+ * person`.
983
+ */
984
+ per: {
985
+ /**
986
+ * The full countable entity name.
987
+ * @minLength 1
988
+ */
989
+ default: string;
990
+ /**
991
+ * The compressed countable entity name.
992
+ * @minLength 1
993
+ */
994
+ compressed: string;
995
+ };
996
+ /**
997
+ * A note, appended to the generated string in parenthesis.
998
+ */
999
+ note?: {
1000
+ /**
1001
+ * The full note.
1002
+ * @minLength 1
1003
+ */
1004
+ default: string;
1005
+ /**
1006
+ * A compressed note, if applicable. If not specified it should not
1007
+ * be displayed in small location.
1008
+ * @minLength 1
1009
+ */
1010
+ compressed?: string;
1011
+ };
1012
+ };
1013
+ };
1014
+ } | {
1015
+ tag: "ActivationAndHalfInterval";
1016
+ /**
1017
+ * The AE cost value that has to be payed for activation. Half of this value
1018
+ * has to be payed each interval.
1019
+ * @integer
1020
+ * @minimum 2
1021
+ * @multipleOf 2
1022
+ */
1023
+ value: number;
1024
+ /**
1025
+ * The time interval for which the AE cost `value` has to be paid.
1026
+ */
1027
+ interval: Duration.UnitValue;
1028
+ } | {
1029
+ tag: "Indefinite";
1030
+ /**
1031
+ * The indefinite AE cost may be modified by a certain value.
1032
+ */
1033
+ modifier: {
99
1034
  /**
100
- * If an application applies to multiple skills, it may need to ensure the
101
- * respective skill is on a certain skill rating if the activatable entry
102
- * cannot ensure this prerequisite.
1035
+ * The arithmetic how to apply the `value` to the indefinite base value.
1036
+ */
1037
+ arithmetic: {
1038
+ tag: "Add";
1039
+ } | {
1040
+ tag: "Multiply";
1041
+ };
1042
+ /**
1043
+ * The value that is applied to the indefinite base value using the
1044
+ * defined `arithmetic`.
103
1045
  * @integer
104
1046
  * @minimum 1
105
1047
  */
106
- required_skill_rating?: number;
1048
+ value: number;
107
1049
  };
108
1050
  /**
109
1051
  * All translations for the entry, identified by IETF language tag (BCP47).
110
1052
  * @minProperties 1
111
1053
  */
112
- translations?: {
1054
+ translations: {
113
1055
  /**
114
1056
  * @patternProperties ^[a-z]{2}-[A-Z]{2}$
115
1057
  */
116
1058
  [localeId: string]: {
117
1059
  /**
118
- * The name of the application if different from the activatable entry's
119
- * name.
120
- * @minLength 1
1060
+ * A description of where the cost come from.
121
1061
  */
122
- name: string;
1062
+ description: {
1063
+ /**
1064
+ * The full description of where the cost come from.
1065
+ * @minLength 1
1066
+ */
1067
+ default: string;
1068
+ /**
1069
+ * A compressed description of where the cost come from for use in
1070
+ * small areas (e.g. on character sheet).
1071
+ * @minLength 1
1072
+ */
1073
+ compressed: string;
1074
+ };
123
1075
  };
124
1076
  };
125
- }[];
126
- /**
127
- * Registers uses, which get enabled once this entry is activated. It specifies
128
- * an entry-unique identifier and the skill it belongs to. A translation can be
129
- * left out if its name equals the name of the origin activatable entry.
130
- * @minItems 1
131
- */
132
- export declare type SkillUses = {
1077
+ } | {
1078
+ tag: "Disjunction";
133
1079
  /**
134
- * The use's identifier. An entry-unique, increasing integer.
135
- * @integer
136
- * @minimum 1
1080
+ * Specified if the selected AE cost option has to be paid for each time
1081
+ * interval.
137
1082
  */
138
- id: number;
1083
+ interval?: {
1084
+ /**
1085
+ * The interval itself.
1086
+ */
1087
+ value: Duration.UnitValue;
1088
+ /**
1089
+ * The AE cost value for activation.
1090
+ * @integer
1091
+ * @minimum 1
1092
+ */
1093
+ activation_value: number;
1094
+ /**
1095
+ * Set to `true` if the action where the enchantment is casted does
1096
+ * **not** as a part of the first interval that has to be payed, so that
1097
+ * the first interval payment needs to be done after the activation.
1098
+ *
1099
+ * This works different than other sustained spells, since for them the
1100
+ * end of the cast usually already counts as part of the first interval.
1101
+ */
1102
+ after_activation: boolean;
1103
+ };
139
1104
  /**
140
- * The skill(s) this use belongs to.
1105
+ * The possible AE cost values.
141
1106
  */
142
- skill: {
143
- tag: "Single";
1107
+ options: {
144
1108
  /**
145
- * The referenced skill's identifier.
1109
+ * A possible AE cost value.
146
1110
  * @integer
147
1111
  * @minimum 1
148
1112
  */
149
- id: number;
150
- } | {
151
- tag: "Multiple";
1113
+ value: number;
152
1114
  /**
153
- * The skills this use belongs to.
154
- * @minItems 2
1115
+ * All translations for the entry, identified by IETF language tag
1116
+ * (BCP47).
1117
+ * @minProperties 1
155
1118
  */
156
- list: {
1119
+ translations?: {
157
1120
  /**
158
- * The referenced skill's identifier.
159
- * @integer
160
- * @minimum 1
1121
+ * @patternProperties ^[a-z]{2}-[A-Z]{2}$
1122
+ * @minProperties 1
161
1123
  */
162
- id: number;
163
- }[];
164
- };
1124
+ [localeId: string]: {
1125
+ /**
1126
+ * A note, appended to the generated option string in parenthesis.
1127
+ */
1128
+ note?: {
1129
+ /**
1130
+ * The full note.
1131
+ * @minLength 1
1132
+ */
1133
+ default: string;
1134
+ /**
1135
+ * A compressed note, if applicable. If not specified it should not
1136
+ * be displayed in small location.
1137
+ * @minLength 1
1138
+ */
1139
+ compressed?: string;
1140
+ };
1141
+ };
1142
+ };
1143
+ }[];
1144
+ } | {
1145
+ tag: "None";
165
1146
  /**
166
- * All translations for the entry, identified by IETF language tag (BCP47).
1147
+ * All translations for the entry, identified by IETF language tag
1148
+ * (BCP47).
167
1149
  * @minProperties 1
168
1150
  */
169
1151
  translations?: {
170
1152
  /**
171
1153
  * @patternProperties ^[a-z]{2}-[A-Z]{2}$
1154
+ * @minProperties 1
172
1155
  */
173
1156
  [localeId: string]: {
174
1157
  /**
175
- * The name of the use if different from the activatable entry's name.
176
- * @minLength 1
1158
+ * A note, appended to the generated string in parenthesis.
177
1159
  */
178
- name: string;
1160
+ note?: {
1161
+ /**
1162
+ * The full note.
1163
+ * @minLength 1
1164
+ */
1165
+ default: string;
1166
+ /**
1167
+ * A compressed note, if applicable. If not specified it should not
1168
+ * be displayed in small location.
1169
+ * @minLength 1
1170
+ */
1171
+ compressed?: string;
1172
+ };
179
1173
  };
180
1174
  };
181
- }[];
1175
+ } | {
1176
+ tag: "Variable";
1177
+ };
182
1178
  /**
183
- * The penalty the special ability gives when used.
1179
+ * The volume points the enchantment needs.
184
1180
  */
185
- export declare type Penalty = {
186
- tag: "Single";
1181
+ export declare type Volume = {
1182
+ tag: "Fixed";
187
1183
  /**
188
- * The penalty value.
1184
+ * The volume points.
189
1185
  * @integer
1186
+ * @minimum 0
190
1187
  */
191
- value: number;
1188
+ points: number;
1189
+ } | {
1190
+ tag: "PerLevel";
192
1191
  /**
193
- * Set to `true` if the penalty applies to the parry instead of the attack.
1192
+ * The volume points per level.
1193
+ * @integer
1194
+ * @minimum 1
194
1195
  */
195
- applies_to_parry?: true;
1196
+ points: number;
196
1197
  } | {
197
- tag: "ByHandedness";
1198
+ tag: "ByLevel";
198
1199
  /**
199
- * The penalty value for one-handed weapons.
200
- * @integer
1200
+ * The volume points for each level. The first element is the volume points
1201
+ * for the first level, the second element is the volume points for the
1202
+ * second level, and so on.
1203
+ * @minItems 2
201
1204
  */
202
- one_handed: number;
1205
+ list: {
1206
+ /**
1207
+ * The volume points for this level.
1208
+ * @integer
1209
+ * @minimum 0
1210
+ */
1211
+ points: number;
1212
+ }[];
1213
+ } | {
1214
+ tag: "Map";
1215
+ map: VolumeMap;
1216
+ };
1217
+ /**
1218
+ * A content that is `3/4/5 Points for Chimera, Daimonid, Golems, Undead /
1219
+ * Fairies, Ghosts / Demons, Elementals` may be respresented as the following
1220
+ * map:
1221
+ *
1222
+ * ```yaml
1223
+ * options:
1224
+ * - points: 3
1225
+ * associated_options:
1226
+ * - id:
1227
+ * tag: General
1228
+ * value: # ...
1229
+ * # ...
1230
+ * translations:
1231
+ * en-US:
1232
+ * label: "Chimera, Daimonid, Golems, Undead"
1233
+ * label_standalone: "Chimera/Daimonid/Golems/Undead"
1234
+ * - points: 4
1235
+ * associated_options:
1236
+ * - id:
1237
+ * tag: General
1238
+ * value: # ...
1239
+ * # ...
1240
+ * translations:
1241
+ * en-US:
1242
+ * label: "Fairies, Ghosts"
1243
+ * label_standalone: "Fairies/Ghosts"
1244
+ * - points: 5
1245
+ * associated_options:
1246
+ * - id:
1247
+ * tag: General
1248
+ * value: # ...
1249
+ * # ...
1250
+ * translations:
1251
+ * en-US:
1252
+ * label: "Demons, Elementals"
1253
+ * label_standalone: "Demons/Elementals"
1254
+ * ```
1255
+ *
1256
+ * This will generate the exact same string as seen above. The associated
1257
+ * options are not present in the example, but they link to the options the
1258
+ * volume specification is meant for.
1259
+ */
1260
+ export declare type VolumeMap = {
203
1261
  /**
204
- * The penalty value for two-handed weapons.
205
- * @integer
1262
+ * The possible costs and associated labels.
1263
+ * @minItems 2
206
1264
  */
207
- two_handed: number;
1265
+ options: VolumeMapOption[];
208
1266
  /**
209
- * Set to `true` if the penalty applies to the parry instead of the attack.
1267
+ * All translations for the entry, identified by IETF language tag (BCP47).
1268
+ * @minProperties 1
210
1269
  */
211
- applies_to_parry?: true;
212
- } | {
213
- tag: "ByActivation";
1270
+ translations?: {
1271
+ /**
1272
+ * @patternProperties ^[a-z]{2}-[A-Z]{2}$
1273
+ */
1274
+ [localeId: string]: {
1275
+ /**
1276
+ * Place a string between the `for` and the grouped map option labels.
1277
+ */
1278
+ list_prepend?: string;
1279
+ /**
1280
+ * Place a string after the grouped map option labels.
1281
+ */
1282
+ list_append?: string;
1283
+ /**
1284
+ * If the string from the book cannot be generated using the default
1285
+ * generation technique, use this string. All options still need to be
1286
+ * inserted propertly, since it may be used by in-game tools to provide a
1287
+ * selection to players.
1288
+ */
1289
+ replacement?: string;
1290
+ };
1291
+ };
1292
+ };
1293
+ export declare type VolumeMapOption = {
214
1294
  /**
215
- * The penalty value if the entry has been bought by the character.
1295
+ * The full permanent AE cost value for this option.
216
1296
  * @integer
1297
+ * @minimum 1
217
1298
  */
218
- active: number;
1299
+ points: number;
219
1300
  /**
220
- * The penalty value if the entry has not been bought by the character.
221
- * @integer
1301
+ * Links to the options this volume specification is meant for.
222
1302
  */
223
- inactive: number;
1303
+ associated_options: {
1304
+ /**
1305
+ * The option's identifier.
1306
+ */
1307
+ id: VolumePointsOptionReferenceIdentifier;
1308
+ }[];
224
1309
  /**
225
- * Set to `true` if the penalty applies to the parry instead of the attack.
1310
+ * All translations for the entry, identified by IETF language tag (BCP47).
1311
+ * @minProperties 1
226
1312
  */
227
- applies_to_parry?: true;
228
- } | {
229
- tag: "Selection";
230
- options: {
231
- tag: "Specific";
1313
+ translations?: {
232
1314
  /**
233
- * The list of specific penalty options.
234
- * @minItems 2
235
- * @uniqueItems
1315
+ * @patternProperties ^[a-z]{2}-[A-Z]{2}$
236
1316
  */
237
- list: {
1317
+ [localeId: string]: {
238
1318
  /**
239
- * The penalty value.
240
- * @integer
1319
+ * The description of the option for cost string generation.
1320
+ * @minLength 1
241
1321
  */
242
- value: number;
243
- }[];
244
- } | {
245
- tag: "Range";
246
- /**
247
- * The minimum penalty value.
248
- * @integer
249
- */
250
- minimum: number;
251
- /**
252
- * The maximum penalty value.
253
- * @integer
254
- */
255
- maximum: number;
1322
+ label: string;
1323
+ /**
1324
+ * The description of the option if used standalone. Only used if
1325
+ * different from `label`.
1326
+ * @minLength 1
1327
+ */
1328
+ label_standalone?: string;
1329
+ };
256
1330
  };
257
- } | {
258
- tag: "ByLevel";
1331
+ };
1332
+ /**
1333
+ * The binding cost for an enchantment.
1334
+ */
1335
+ export declare type BindingCost = {
1336
+ tag: "Fixed";
259
1337
  /**
260
- * A continuous range of penalties for each level. The first element is the
261
- * penalty for the first level, the second element is the penalty for the
262
- * second level, and so on.
263
- * @minItems 2
1338
+ * The permanent AE cost.
1339
+ * @integer
1340
+ * @minimum 1
264
1341
  */
265
- levels: {
266
- /**
267
- * The penalty value for this level.
268
- * @integer
269
- */
270
- value: number;
271
- }[];
1342
+ permanent_value: number;
1343
+ } | {
1344
+ tag: "PerLevel";
272
1345
  /**
273
- * The identifier of the combat-related special ability of which the level
274
- * defines the penalty instead.
1346
+ * The permanent AE cost per level.
1347
+ * @integer
1348
+ * @minimum 1
275
1349
  */
276
- external_id?: Identifier.Group.CombatRelatedSpecialAbility;
1350
+ permanent_value: number;
277
1351
  } | {
278
- tag: "ByAttack";
1352
+ tag: "Map";
1353
+ map: BindingCostMap;
1354
+ };
1355
+ /**
1356
+ * A content that is `2/4/8 permanent AE for spell-swords with the combat
1357
+ * technique Daggers, Swords, or Two-Handed Swords` may be respresented as the
1358
+ * following map:
1359
+ *
1360
+ * ```yaml
1361
+ * options:
1362
+ * - permanent_value: 2
1363
+ * translations:
1364
+ * en-US:
1365
+ * label: "Daggers"
1366
+ * label_standalone: "Dagger"
1367
+ * - permanent_value: 4
1368
+ * translations:
1369
+ * en-US:
1370
+ * label: "Swords"
1371
+ * label_standalone: "Sword"
1372
+ * - permanent_value: 8
1373
+ * translations:
1374
+ * en-US:
1375
+ * label: "Two-Handed Swords"
1376
+ * label_standalone: "Two-Handed Sword"
1377
+ * list_prepend: "spell-swords with the combat technique"
1378
+ * ```
1379
+ *
1380
+ * This will generate the exact same string as seen above.
1381
+ */
1382
+ export declare type BindingCostMap = {
279
1383
  /**
280
- * A list of penalties for subsequent attacks. The first element is the
281
- * penalty for the first attack, the second element is the penalty for the
282
- * second attack, and so on. The order of the first element may be changed
283
- * using `initial_order`, so that e.g. if set to `2`, the first element is
284
- * the penalty for the second attack, the second element is the penalty for
285
- * the third attack, and so on.
286
- * @minItems 1
1384
+ * The possible costs and associated labels.
1385
+ * @minItems 2
287
1386
  */
288
- list: {
1387
+ options: VolumeMapOption[];
1388
+ /**
1389
+ * All translations for the entry, identified by IETF language tag (BCP47).
1390
+ * @minProperties 1
1391
+ */
1392
+ translations?: {
289
1393
  /**
290
- * The penalty value for this order.
291
- * @integer
1394
+ * @patternProperties ^[a-z]{2}-[A-Z]{2}$
292
1395
  */
293
- value: number;
294
- }[];
1396
+ [localeId: string]: {
1397
+ /**
1398
+ * Place a string between the `for` and the grouped map option labels.
1399
+ */
1400
+ list_prepend?: string;
1401
+ /**
1402
+ * Place a string after the grouped map option labels.
1403
+ */
1404
+ list_append?: string;
1405
+ /**
1406
+ * If the string from the book cannot be generated using the default
1407
+ * generation technique, use this string. All options still need to be
1408
+ * inserted propertly, since it may be used by in-game tools to provide a
1409
+ * selection to players.
1410
+ */
1411
+ replacement?: string;
1412
+ };
1413
+ };
1414
+ };
1415
+ export declare type BindingCostMapOption = {
295
1416
  /**
296
- * The order of the first element in the `list` of penalties.
1417
+ * The full permanent AE cost value for this option.
1418
+ * @integer
1419
+ * @minimum 1
297
1420
  */
298
- initial_order?: number;
1421
+ permanent_value: number;
299
1422
  /**
300
- * Set if a predefined different word should be used instead of the word
301
- * `attack` for display purposes.
1423
+ * All translations for the entry, identified by IETF language tag (BCP47).
1424
+ * @minProperties 1
302
1425
  */
303
- attack_replacement?: {
304
- tag: "Throw";
1426
+ translations?: {
1427
+ /**
1428
+ * @patternProperties ^[a-z]{2}-[A-Z]{2}$
1429
+ */
1430
+ [localeId: string]: {
1431
+ /**
1432
+ * The description of the option for cost string generation.
1433
+ * @minLength 1
1434
+ */
1435
+ label: string;
1436
+ /**
1437
+ * The description of the option if used standalone. Only used if
1438
+ * different from `label`.
1439
+ * @minLength 1
1440
+ */
1441
+ label_standalone?: string;
1442
+ };
305
1443
  };
306
- } | {
307
- tag: "DependsOnHitZone";
308
1444
  };
309
- /**
310
- * The AE Cost.
311
- */
312
- export declare type ArcaneEnergyCost = "";
313
- /**
314
- * The volume points the enchantment needs.
315
- */
316
- export declare type Volume = "";
317
- /**
318
- * The binding cost for an enchantment.
319
- */
320
- export declare type BindingCost = "";
321
1445
  /**
322
1446
  * The magic property's identifier. `DependingOnProperty` can only be used if
323
1447
  * the special ability has an option to select a property.
@@ -363,7 +1487,7 @@ export declare type AdvancedSpecialAbility = {
363
1487
  * advanced special ability; others are disallowed.
364
1488
  * @minItems 1
365
1489
  */
366
- option: Identifier.Group.AdvancedSpecialAbilityRestrictedOption[];
1490
+ option: AdvancedSpecialAbilityRestrictedOptionIdentifier[];
367
1491
  } | {
368
1492
  tag: "OneOf";
369
1493
  /**
@@ -387,8 +1511,8 @@ export declare type AdvancedSpecialAbility = {
387
1511
  * advanced special ability; others are disallowed.
388
1512
  * @minItems 1
389
1513
  */
390
- option: Identifier.Group.AdvancedSpecialAbilityRestrictedOption[];
391
- display_option?: Prerequisite.Single.DisplayOption.T;
1514
+ option: AdvancedSpecialAbilityRestrictedOptionIdentifier[];
1515
+ display_option?: DisplayOption;
392
1516
  } | {
393
1517
  tag: "DeriveFromExternalOption";
394
1518
  /**
@@ -415,7 +1539,7 @@ export declare type AdvancedSpecialAbility = {
415
1539
  id: number;
416
1540
  };
417
1541
  }[];
418
- display_option?: Prerequisite.Single.DisplayOption.T;
1542
+ display_option?: DisplayOption;
419
1543
  /**
420
1544
  * Do have to choose on when buying the special ability? Otherwise the
421
1545
  * decision can be made later.
@@ -426,10 +1550,10 @@ export declare type AdvancedSpecialAbility = {
426
1550
  * advanced special ability; others are disallowed.
427
1551
  * @minItems 1
428
1552
  */
429
- option: Identifier.Group.AdvancedSpecialAbilityRestrictedOption[];
1553
+ option: AdvancedSpecialAbilityRestrictedOptionIdentifier[];
430
1554
  };
431
- export declare type AdvancedSpecialAbilityDerivedExternalEntryId = Identifier.Tagged<"MagicalTradition">;
432
- export declare type AdvancedSpecialAbilityDerivedExternalEntryOptionId = Identifier.Tagged<"Patron">;
1555
+ export declare type AdvancedSpecialAbilityDerivedExternalEntryId = MagicalTraditionIdentifier;
1556
+ export declare type AdvancedSpecialAbilityDerivedExternalEntryOptionId = PatronIdentifier;
433
1557
  /**
434
1558
  * The Advanced Special Abilities for the respective Style Special Ability.
435
1559
  * Sometimes, only a specific select option or a set of select options of an
@@ -470,7 +1594,7 @@ export declare type ApplicableCombatTechniques = {
470
1594
  * @minItems 1
471
1595
  */
472
1596
  list: {
473
- id: Identifier.Group.CombatTechnique;
1597
+ id: CombatTechniqueIdentifier;
474
1598
  /**
475
1599
  * @minItems 1
476
1600
  */
@@ -499,7 +1623,7 @@ export declare type ApplicableAllCombatTechniquesRestriction = {
499
1623
  * @minItems 1
500
1624
  * @uniqueItems
501
1625
  */
502
- list: Identifier.Group.CombatTechnique[];
1626
+ list: CombatTechniqueIdentifier[];
503
1627
  };
504
1628
  export declare type ApplicableCloseCombatTechniquesRestriction = {
505
1629
  tag: "Improvised";
@@ -649,3 +1773,4 @@ export declare type AdventurePointsValue = {
649
1773
  * @minimum 0
650
1774
  */
651
1775
  export declare type AdventurePointsSingleValue = number;
1776
+ export {};