optolith-database-schema 0.8.1 → 0.10.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (106) hide show
  1. package/CHANGELOG.md +44 -0
  2. package/lib/config.d.ts +2 -0
  3. package/lib/config.js +2 -0
  4. package/lib/main.js +8 -3
  5. package/lib/types/Advantage.d.ts +13 -2
  6. package/lib/types/Disadvantage.d.ts +12 -2
  7. package/lib/types/Profession.d.ts +12 -2
  8. package/lib/types/Talisman.d.ts +6 -6
  9. package/lib/types/_Activatable.d.ts +113 -4
  10. package/lib/types/_Activatable.js +4 -35
  11. package/lib/types/_ActivatableSelectOptionCategory.d.ts +30 -0
  12. package/lib/types/_Identifier.d.ts +9 -0
  13. package/lib/types/_IdentifierGroup.d.ts +2 -2
  14. package/lib/types/equipment/item/Poison.d.ts +21 -1
  15. package/lib/types/equipment/item/Poison.js +1 -0
  16. package/lib/types/equipment/item/Weapon.d.ts +4 -3
  17. package/lib/types/equipment/item/sub/ArmorType.d.ts +3 -3
  18. package/lib/types/magicalActions/MagicalRune.d.ts +82 -16
  19. package/lib/types/prerequisites/DisplayOption.d.ts +14 -0
  20. package/lib/types/prerequisites/PrerequisiteGroups.d.ts +23 -1
  21. package/lib/types/prerequisites/single/AncestorBloodPrerequisite.d.ts +5 -0
  22. package/lib/types/prerequisites/single/AncestorBloodPrerequisite.js +1 -0
  23. package/lib/types/prerequisites/single/RatedMinimumNumberPrerequisite.d.ts +67 -0
  24. package/lib/types/prerequisites/single/RatedMinimumNumberPrerequisite.js +6 -0
  25. package/lib/types/prerequisites/single/RatedPrerequisite.d.ts +0 -55
  26. package/lib/types/prerequisites/single/RatedSumPrerequisite.d.ts +19 -0
  27. package/lib/types/prerequisites/single/RatedSumPrerequisite.js +1 -0
  28. package/lib/types/prerequisites/single/SexualCharacteristicPrerequisite.d.ts +11 -0
  29. package/lib/types/prerequisites/single/SexualCharacteristicPrerequisite.js +5 -0
  30. package/lib/types/prerequisites/single/TextPrerequisite.d.ts +29 -0
  31. package/lib/types/prerequisites/single/TextPrerequisite.js +5 -0
  32. package/lib/types/specialAbility/AdvancedCombatSpecialAbility.d.ts +11 -0
  33. package/lib/types/specialAbility/CeremonialItemSpecialAbility.d.ts +7 -2
  34. package/lib/types/specialAbility/CombatSpecialAbility.d.ts +6 -2
  35. package/lib/types/specialAbility/FatePointSpecialAbility.d.ts +5 -0
  36. package/lib/types/specialAbility/GeneralSpecialAbility.d.ts +12 -2
  37. package/lib/types/specialAbility/KarmaSpecialAbility.d.ts +7 -2
  38. package/lib/types/specialAbility/MagicalSign.d.ts +38 -0
  39. package/lib/types/specialAbility/MagicalSign.js +5 -0
  40. package/lib/types/specialAbility/MagicalSpecialAbility.d.ts +11 -2
  41. package/lib/types/specialAbility/MagicalTradition.d.ts +2 -2
  42. package/lib/types/specialAbility/ProtectiveWardingCircleSpecialAbility.d.ts +6 -0
  43. package/lib/types/specialAbility/SikaryanDrainSpecialAbility.d.ts +5 -0
  44. package/lib/types/specialAbility/VampiricGift.d.ts +7 -2
  45. package/lib/types/traditionArtifacts/ArcaneOrbEnchantment.d.ts +2 -2
  46. package/lib/types/traditionArtifacts/AttireEnchantment.d.ts +2 -2
  47. package/lib/types/traditionArtifacts/BowlEnchantment.d.ts +2 -2
  48. package/lib/types/traditionArtifacts/CauldronEnchantment.d.ts +2 -2
  49. package/lib/types/traditionArtifacts/ChronicleEnchantment.d.ts +2 -2
  50. package/lib/types/traditionArtifacts/DaggerRitual.d.ts +3 -3
  51. package/lib/types/traditionArtifacts/FoolsHatEnchantment.d.ts +2 -2
  52. package/lib/types/traditionArtifacts/InstrumentEnchantment.d.ts +2 -2
  53. package/lib/types/traditionArtifacts/Krallenkettenzauber.d.ts +2 -2
  54. package/lib/types/traditionArtifacts/OrbEnchantment.d.ts +2 -2
  55. package/lib/types/traditionArtifacts/RingEnchantment.d.ts +2 -2
  56. package/lib/types/traditionArtifacts/SickleRitual.d.ts +2 -2
  57. package/lib/types/traditionArtifacts/SpellSwordEnchantment.d.ts +7 -2
  58. package/lib/types/traditionArtifacts/StaffEnchantment.d.ts +13 -3
  59. package/lib/types/traditionArtifacts/ToyEnchantment.d.ts +3 -3
  60. package/lib/types/traditionArtifacts/Trinkhornzauber.d.ts +2 -2
  61. package/lib/types/traditionArtifacts/WandEnchantment.d.ts +2 -7
  62. package/lib/types/traditionArtifacts/WeaponEnchantment.d.ts +4 -3
  63. package/lib/validation/schema.js +2 -2
  64. package/package.json +1 -1
  65. package/schema/Advantage.schema.json +11 -0
  66. package/schema/Disadvantage.schema.json +8 -0
  67. package/schema/Profession.schema.json +8 -0
  68. package/schema/Talisman.schema.json +2 -4
  69. package/schema/_Activatable.schema.json +166 -0
  70. package/schema/_ActivatableSelectOptionCategory.schema.json +141 -0
  71. package/schema/_Identifier.schema.json +18 -0
  72. package/schema/_IdentifierGroup.schema.json +6 -0
  73. package/schema/equipment/item/Poison.schema.json +55 -1
  74. package/schema/equipment/item/Weapon.schema.json +5 -1
  75. package/schema/equipment/item/sub/ArmorType.schema.json +1 -2
  76. package/schema/magicalActions/MagicalRune.schema.json +213 -21
  77. package/schema/prerequisites/DisplayOption.schema.json +4 -0
  78. package/schema/prerequisites/PrerequisiteGroups.schema.json +98 -2
  79. package/schema/prerequisites/single/AncestorBloodPrerequisite.schema.json +14 -0
  80. package/schema/prerequisites/single/RatedMinimumNumberPrerequisite.schema.json +166 -0
  81. package/schema/prerequisites/single/RatedPrerequisite.schema.json +0 -125
  82. package/schema/prerequisites/single/RatedSumPrerequisite.schema.json +33 -0
  83. package/schema/prerequisites/single/SexualCharacteristicPrerequisite.schema.json +26 -0
  84. package/schema/prerequisites/single/TextPrerequisite.schema.json +14 -0
  85. package/schema/specialAbility/AdvancedCombatSpecialAbility.schema.json +8 -0
  86. package/schema/specialAbility/CeremonialItemSpecialAbility.schema.json +4 -0
  87. package/schema/specialAbility/CombatSpecialAbility.schema.json +4 -0
  88. package/schema/specialAbility/CombatStyleSpecialAbility.schema.json +42 -27
  89. package/schema/specialAbility/FatePointSpecialAbility.schema.json +4 -0
  90. package/schema/specialAbility/GeneralSpecialAbility.schema.json +8 -0
  91. package/schema/specialAbility/KarmaSpecialAbility.schema.json +4 -0
  92. package/schema/specialAbility/LiturgicalStyleSpecialAbility.schema.json +42 -27
  93. package/schema/specialAbility/MagicStyleSpecialAbility.schema.json +42 -27
  94. package/schema/specialAbility/MagicalSign.schema.json +72 -0
  95. package/schema/specialAbility/MagicalSpecialAbility.schema.json +8 -0
  96. package/schema/specialAbility/MagicalTradition.schema.json +0 -2
  97. package/schema/specialAbility/ProtectiveWardingCircleSpecialAbility.schema.json +6 -0
  98. package/schema/specialAbility/SikaryanDrainSpecialAbility.schema.json +4 -0
  99. package/schema/specialAbility/SkillStyleSpecialAbility.schema.json +42 -27
  100. package/schema/specialAbility/VampiricGift.schema.json +4 -0
  101. package/schema/traditionArtifacts/DaggerRitual.schema.json +0 -1
  102. package/schema/traditionArtifacts/SpellSwordEnchantment.schema.json +4 -0
  103. package/schema/traditionArtifacts/StaffEnchantment.schema.json +8 -1
  104. package/schema/traditionArtifacts/ToyEnchantment.schema.json +0 -1
  105. package/schema/traditionArtifacts/WandEnchantment.schema.json +1 -9
  106. package/schema/traditionArtifacts/WeaponEnchantment.schema.json +8 -1
@@ -81,6 +81,9 @@ export declare type PoisonDuration = {
81
81
  } | {
82
82
  tag: "DiceBased";
83
83
  dice_based: DiceBasedPoisonTime;
84
+ } | {
85
+ tag: "Indefinite";
86
+ indefinite: IndefinitePoisonTime;
84
87
  };
85
88
  export declare type ConstantPoisonTime = {
86
89
  value: number;
@@ -93,8 +96,21 @@ export declare type DiceBasedPoisonTime = {
93
96
  export declare enum PoisonTimeUnit {
94
97
  CombatRounds = "CombatRounds",
95
98
  Minutes = "Minutes",
96
- Hours = "Hours"
99
+ Hours = "Hours",
100
+ Days = "Days"
97
101
  }
102
+ export declare type IndefinitePoisonTime = {
103
+ /**
104
+ * All translations for the entry, identified by IETF language tag (BCP47).
105
+ */
106
+ translations: LocaleMap<IndefinitePoisonTimeTranslation>;
107
+ };
108
+ export declare type IndefinitePoisonTimeTranslation = {
109
+ /**
110
+ * A description of the duration.
111
+ */
112
+ description: NonEmptyMarkdown;
113
+ };
98
114
  export declare type PoisonSourceType = {
99
115
  tag: "AnimalVenom";
100
116
  animal_venom: AnimalVenom;
@@ -119,6 +135,10 @@ export declare type AnimalVenom = {
119
135
  * @maximum 6
120
136
  */
121
137
  level: number;
138
+ /**
139
+ * If `false`, the poison cannot be extracted.
140
+ */
141
+ is_extractable?: false;
122
142
  };
123
143
  export declare type AlchemicalPoison = {
124
144
  /**
@@ -14,6 +14,7 @@ export var PoisonTimeUnit;
14
14
  PoisonTimeUnit["CombatRounds"] = "CombatRounds";
15
15
  PoisonTimeUnit["Minutes"] = "Minutes";
16
16
  PoisonTimeUnit["Hours"] = "Hours";
17
+ PoisonTimeUnit["Days"] = "Days";
17
18
  })(PoisonTimeUnit || (PoisonTimeUnit = {}));
18
19
  export var QualityLevelDemonicPoisonLevelSource;
19
20
  (function (QualityLevelDemonicPoisonLevelSource) {
@@ -1,11 +1,11 @@
1
1
  /**
2
2
  * @main Weapon
3
3
  */
4
- import { Errata } from "../../source/_Erratum.js";
5
- import { PublicationRefs } from "../../source/_PublicationRef.js";
6
4
  import { LocaleMap } from "../../_LocaleMap.js";
7
5
  import { NonEmptyMarkdown, NonEmptyString } from "../../_NonEmptyString.js";
8
6
  import { BlessedTraditionReference, CultureReference, MagicalTraditionReference, RaceReference } from "../../_SimpleReferences.js";
7
+ import { Errata } from "../../source/_Erratum.js";
8
+ import { PublicationRefs } from "../../source/_PublicationRef.js";
9
9
  import { Complexity, Cost, StructurePoints, Weight } from "./_Item.js";
10
10
  import { MeleeWeapon } from "./_MeleeWeapon.js";
11
11
  import { RangedWeapon } from "./_RangedWeapon.js";
@@ -142,8 +142,9 @@ export declare type WeaponUseValues = {
142
142
  /**
143
143
  * If the weapon is sanctified by a god and thus restricted to it's Blessed
144
144
  * Ones.
145
+ * @minItems 1
145
146
  */
146
- export declare type SanctifiedBy = BlessedTraditionReference;
147
+ export declare type SanctifiedBy = BlessedTraditionReference[];
147
148
  /**
148
149
  * Define if during character creation this weapon can only be bought by
149
150
  * characters of a specific race or culture.
@@ -14,14 +14,14 @@ export declare type ArmorType = {
14
14
  */
15
15
  id: number;
16
16
  /**
17
- * Each armor type has a *sturdiness rating*. The higher the rating, the more
18
- * durable the armor. Rolling higher than this rating during a sturdiness
17
+ * An armor type can have a *sturdiness rating*. The higher the rating, the
18
+ * more durable the armor. Rolling higher than this rating during a sturdiness
19
19
  * check means the armor receives one level of the new condition *Wear*.
20
20
  * @integer
21
21
  * @minimum 1
22
22
  * @msximum 20
23
23
  */
24
- sturdiness_rating: number;
24
+ sturdiness_rating?: number;
25
25
  /**
26
26
  * All translations for the entry, identified by IETF language tag (BCP47).
27
27
  */
@@ -5,7 +5,7 @@ import { Errata } from "../source/_Erratum.js";
5
5
  import { PublicationRefs } from "../source/_PublicationRef.js";
6
6
  import { CheckResultBasedDuration } from "../_ActivatableSkillDuration.js";
7
7
  import { Effect } from "../_ActivatableSkillEffect.js";
8
- import { CloseCombatTechniqueIdentifier } from "../_Identifier.js";
8
+ import { CombatTechniqueIdentifier } from "../_IdentifierGroup.js";
9
9
  import { ImprovementCost } from "../_ImprovementCost.js";
10
10
  import { LocaleMap } from "../_LocaleMap.js";
11
11
  import { NonEmptyString } from "../_NonEmptyString.js";
@@ -22,7 +22,13 @@ export declare type MagicalRune = {
22
22
  * @minimum 1
23
23
  */
24
24
  id: number;
25
- option?: MagicalRuneOption;
25
+ /**
26
+ * The options the magical rune has, if any.
27
+ *
28
+ * If there are multiple options, the magical rune may be activated for each
29
+ * option, that is, multiple times.
30
+ */
31
+ options?: MagicalRuneOption[];
26
32
  /**
27
33
  * Lists the linked three attributes used to make a skill check.
28
34
  */
@@ -42,7 +48,7 @@ export declare type MagicalRune = {
42
48
  /**
43
49
  * States which column is used to improve the skill.
44
50
  */
45
- improvement_cost: ImprovementCost;
51
+ improvement_cost: MagicalRuneImprovementCost;
46
52
  src: PublicationRefs;
47
53
  /**
48
54
  * All translations for the entry, identified by IETF language tag (BCP47).
@@ -58,10 +64,15 @@ export declare type MagicalRuneTranslation = {
58
64
  * on demand.
59
65
  */
60
66
  name: NonEmptyString;
67
+ /**
68
+ * The full name of the entry as stated in the sources. Only use when `name`
69
+ * needs to be different from full name for text generation purposes.
70
+ */
71
+ name_in_library?: NonEmptyString;
61
72
  /**
62
73
  * The native name of the magical rune.
63
74
  */
64
- native_name: NonEmptyString;
75
+ native_name?: NonEmptyString;
65
76
  /**
66
77
  * The effect description may be either a plain text or a text that is
67
78
  * divided by a list of effects for each quality level. It may also be a
@@ -104,31 +115,31 @@ export declare type MagicalRuneTranslation = {
104
115
  errata?: Errata;
105
116
  };
106
117
  export declare type MagicalRuneCheckPenalty = {
107
- tag: "CloseCombatTechnique";
108
- close_combat_technique: MagicalRuneCloseCombatTechniqueCheckPenalty;
118
+ tag: "CombatTechnique";
119
+ combat_technique: MagicalRuneCombatTechniqueCheckPenalty;
109
120
  };
110
- export declare type MagicalRuneCloseCombatTechniqueCheckPenalty = {
121
+ export declare type MagicalRuneCombatTechniqueCheckPenalty = {
111
122
  /**
112
- * A map from close combat techniques to their modifiers.
123
+ * A map from combat techniques to their modifiers.
113
124
  * @minItems 1
114
125
  */
115
- map: MagicalRuneCloseCombatTechniqueCheckPenaltyMapping[];
116
- rest: MagicalRuneCloseCombatTechniqueCheckPenaltyRest;
126
+ map: MagicalRuneCombatTechniqueCheckPenaltyMapping[];
127
+ rest: MagicalRuneCombatTechniqueCheckPenaltyRest;
117
128
  };
118
- export declare type MagicalRuneCloseCombatTechniqueCheckPenaltyMapping = {
129
+ export declare type MagicalRuneCombatTechniqueCheckPenaltyMapping = {
119
130
  /**
120
- * The close combat technique's identifier.
131
+ * The combat technique's identifier.
121
132
  */
122
- combat_technique_id: CloseCombatTechniqueIdentifier;
133
+ id: CombatTechniqueIdentifier;
123
134
  /**
124
- * The check modifier for the specified close combat technique.
135
+ * The check modifier for the specified combat technique.
125
136
  * @integer
126
137
  */
127
138
  modifier: number;
128
139
  };
129
- export declare type MagicalRuneCloseCombatTechniqueCheckPenaltyRest = {
140
+ export declare type MagicalRuneCombatTechniqueCheckPenaltyRest = {
130
141
  /**
131
- * The check modifier for close combat techniques not specified in `map`.
142
+ * The check modifier for combat techniques not specified in `map`.
132
143
  * @integer
133
144
  */
134
145
  modifier: number;
@@ -156,6 +167,16 @@ export declare type MagicalRuneCost = {
156
167
  } | {
157
168
  tag: "Disjunction";
158
169
  disjunction: MagicalRuneCostDisjunction;
170
+ } | {
171
+ tag: "DerivedFromOption";
172
+ derived_from_option: {};
173
+ };
174
+ export declare type MagicalRuneOptionCost = {
175
+ tag: "Single";
176
+ single: SingleMagicalRuneCost;
177
+ } | {
178
+ tag: "Disjunction";
179
+ disjunction: MagicalRuneCostDisjunction;
159
180
  };
160
181
  export declare type SingleMagicalRuneCost = {
161
182
  /**
@@ -209,12 +230,53 @@ export declare type MagicalRuneDuration = {
209
230
  */
210
231
  fast: CheckResultBasedDuration;
211
232
  };
233
+ export declare type MagicalRuneImprovementCost = {
234
+ tag: "Constant";
235
+ constant: ConstantMagicalRuneImprovementCost;
236
+ } | {
237
+ tag: "DerivedFromOption";
238
+ derived_from_option: {};
239
+ };
240
+ export declare type ConstantMagicalRuneImprovementCost = {
241
+ value: ImprovementCost;
242
+ };
212
243
  export declare type MagicalRuneOption = {
244
+ /**
245
+ * The magical rune option’s identifier. An unique, increasing integer.
246
+ * @integer
247
+ * @minimum 1
248
+ */
249
+ id: number;
250
+ /**
251
+ * The option-specific AE cost.
252
+ */
253
+ cost: MagicalRuneOptionCost;
254
+ /**
255
+ * The option-specific improvement cost.
256
+ */
257
+ improvement_cost: ImprovementCost;
258
+ suboption: MagicalRuneSuboption;
213
259
  /**
214
260
  * All translations for the entry, identified by IETF language tag (BCP47).
215
261
  */
216
262
  translations: LocaleMap<MagicalRuneOptionTranslation>;
217
263
  };
264
+ export declare type MagicalRuneSuboption = {
265
+ tag: "Custom";
266
+ custom: CustomMagicalRuneSuboption;
267
+ };
268
+ export declare type CustomMagicalRuneSuboption = {
269
+ /**
270
+ * All translations for the entry, identified by IETF language tag (BCP47).
271
+ */
272
+ translations: LocaleMap<CustomMagicalRuneSuboptionTranslation>;
273
+ };
274
+ export declare type CustomMagicalRuneSuboptionTranslation = {
275
+ /**
276
+ * One or more examples for the suboption.
277
+ */
278
+ examples?: NonEmptyString[];
279
+ };
218
280
  export declare type MagicalRuneOptionTranslation = {
219
281
  /**
220
282
  * The name of the option.
@@ -223,5 +285,9 @@ export declare type MagicalRuneOptionTranslation = {
223
285
  * be generated.
224
286
  */
225
287
  name: NonEmptyString;
288
+ /**
289
+ * The native name of the magical rune option.
290
+ */
291
+ native_name: NonEmptyString;
226
292
  };
227
293
  export declare const validateSchema: import("../../validation/schema.js").TypeValidator<MagicalRune>;
@@ -1,5 +1,6 @@
1
1
  import { LocaleMap } from "../_LocaleMap.js";
2
2
  import { NonEmptyString } from "../_NonEmptyString.js";
3
+ import { SentenceType } from "./single/TextPrerequisite.js";
3
4
  /**
4
5
  * @title Display Option
5
6
  */
@@ -11,6 +12,19 @@ export declare type DisplayOption = {
11
12
  replace_with: ReplacementDisplayOption;
12
13
  };
13
14
  export declare type ReplacementDisplayOption = {
15
+ /**
16
+ * If the replacement text is a sentence or sentence-like fragment, this
17
+ * property ensures it is integrated into the prerequisite string correctly.
18
+ *
19
+ * A standalone sentence is connected to the previous prerequisite string with
20
+ * a period and a period is also added at the end of the sentence
21
+ * automatically, if it is not present. A connected sentence is connected to
22
+ * the previous prerequisite string with a semicolon and a period is not added
23
+ * to the end of the sentence. In this case, if there are prerequisites after
24
+ * this one, they will be connected using a semicolon again, unless a
25
+ * different punctuation mark is present at the end of the given text.
26
+ */
27
+ sentence_type?: SentenceType;
14
28
  /**
15
29
  * All translations for the entry, identified by IETF language tag (BCP47).
16
30
  */
@@ -1,4 +1,5 @@
1
1
  import { ActivatablePrerequisite } from "./single/ActivatablePrerequisite.js";
2
+ import { AncestorBloodPrerequisite } from "./single/AncestorBloodPrerequisite.js";
2
3
  import { AnimistPowerPrerequisite } from "./single/AnimistPowerPrerequisite.js";
3
4
  import { CulturePrerequisite } from "./single/CulturePrerequisite.js";
4
5
  import { ExternalEnhancementPrerequisite, InternalEnhancementPrerequisite } from "./single/EnhancementPrerequisite.js";
@@ -7,9 +8,12 @@ import { PactPrerequisite } from "./single/PactPrerequisite.js";
7
8
  import { PrimaryAttributePrerequisite } from "./single/PrimaryAttributePrerequisite.js";
8
9
  import { PublicationPrerequisite } from "./single/PublicationPrerequisite.js";
9
10
  import { RacePrerequisite } from "./single/RacePrerequisite.js";
10
- import { RatedMinimumNumberPrerequisite, RatedPrerequisite } from "./single/RatedPrerequisite.js";
11
+ import { RatedMinimumNumberPrerequisite } from "./single/RatedMinimumNumberPrerequisite.js";
12
+ import { RatedPrerequisite } from "./single/RatedPrerequisite.js";
13
+ import { RatedSumPrerequisite } from "./single/RatedSumPrerequisite.js";
11
14
  import { RulePrerequisite } from "./single/RulePrerequisite.js";
12
15
  import { SexPrerequisite } from "./single/SexPrerequisite.js";
16
+ import { SexualCharacteristicPrerequisite } from "./single/SexualCharacteristicPrerequisite.js";
13
17
  import { SocialStatusPrerequisite } from "./single/SocialStatusPrerequisite.js";
14
18
  import { StatePrerequisite } from "./single/StatePrerequisite.js";
15
19
  import { TextPrerequisite } from "./single/TextPrerequisite.js";
@@ -61,12 +65,18 @@ export declare type GeneralPrerequisiteGroup = {
61
65
  } | {
62
66
  tag: "RatedMinimumNumber";
63
67
  rated_minimum_number: RatedMinimumNumberPrerequisite;
68
+ } | {
69
+ tag: "RatedSum";
70
+ rated_sum: RatedSumPrerequisite;
64
71
  } | {
65
72
  tag: "ExternalEnhancement";
66
73
  external_enhancement: ExternalEnhancementPrerequisite;
67
74
  } | {
68
75
  tag: "Text";
69
76
  text: TextPrerequisite;
77
+ } | {
78
+ tag: "SexualCharacteristic";
79
+ sexual_characteristic: SexualCharacteristicPrerequisite;
70
80
  };
71
81
  export declare type ProfessionPrerequisiteGroup = {
72
82
  tag: "Sex";
@@ -126,12 +136,21 @@ export declare type AdvantageDisadvantagePrerequisiteGroup = {
126
136
  } | {
127
137
  tag: "RatedMinimumNumber";
128
138
  rated_minimum_number: RatedMinimumNumberPrerequisite;
139
+ } | {
140
+ tag: "RatedSum";
141
+ rated_sum: RatedSumPrerequisite;
129
142
  } | {
130
143
  tag: "ExternalEnhancement";
131
144
  external_enhancement: ExternalEnhancementPrerequisite;
132
145
  } | {
133
146
  tag: "Text";
134
147
  text: TextPrerequisite;
148
+ } | {
149
+ tag: "NoOtherAncestorBloodAdvantage";
150
+ no_other_ancestor_blood_advantage: AncestorBloodPrerequisite;
151
+ } | {
152
+ tag: "SexualCharacteristic";
153
+ sexual_characteristic: SexualCharacteristicPrerequisite;
135
154
  };
136
155
  export declare type ArcaneTraditionPrerequisiteGroup = {
137
156
  tag: "Sex";
@@ -190,4 +209,7 @@ export declare type EnhancementPrerequisiteGroup = {
190
209
  export declare type PreconditionGroup = {
191
210
  tag: "Publication";
192
211
  publication: PublicationPrerequisite;
212
+ } | {
213
+ tag: "SexualCharacteristic";
214
+ sexual_characteristic: SexualCharacteristicPrerequisite;
193
215
  };
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Requires that no other Ancestor Blood advantage is active.
3
+ * @title Ancestor Blood Prerequisite
4
+ */
5
+ export declare type AncestorBloodPrerequisite = {};
@@ -0,0 +1,67 @@
1
+ import { AspectReference, PropertyReference, SkillReference } from "../../_SimpleReferences.js";
2
+ import { DisplayOption } from "../DisplayOption.js";
3
+ /**
4
+ * @title Rated Minimum Number Prerequisite
5
+ */
6
+ export declare type RatedMinimumNumberPrerequisite = {
7
+ /**
8
+ * The minimum number of skills that need to be on the defined minimum skill
9
+ * rating.
10
+ * @integer
11
+ * @minimum 1
12
+ */
13
+ number: number;
14
+ /**
15
+ * The minimum skill rating the defined minimum number of skills need to be
16
+ * on.
17
+ * @integer
18
+ * @minimum 1
19
+ */
20
+ value: number;
21
+ /**
22
+ * The targets that contribute to satisfying the prerequisite.
23
+ */
24
+ targets: RatedMinimumNumberPrerequisiteTarget;
25
+ display_option?: DisplayOption;
26
+ };
27
+ export declare type RatedMinimumNumberPrerequisiteTarget = {
28
+ tag: "Skills";
29
+ skills: RatedMinimumNumberPrerequisiteSkillsTarget;
30
+ } | {
31
+ tag: "CombatTechniques";
32
+ combat_techniques: CombatTechniquesTarget;
33
+ } | {
34
+ tag: "Spellworks";
35
+ spellworks: PropertyReference;
36
+ } | {
37
+ tag: "Liturgies";
38
+ liturgies: AspectReference;
39
+ };
40
+ export declare type RatedMinimumNumberPrerequisiteSkillsTarget = {
41
+ /**
42
+ * The skills that are taken into account for satisfying the prerequisite.
43
+ * @minItems 2
44
+ * @uniqueItems
45
+ */
46
+ list: SkillReference[];
47
+ };
48
+ export declare type CombatTechniquesTarget = {
49
+ group: CombatTechniquesTargetGroup;
50
+ };
51
+ export declare enum CombatTechniquesTargetGroup {
52
+ All = "All",
53
+ Close = "Close",
54
+ Ranged = "Ranged"
55
+ }
56
+ export declare type RatedMinimumNumberPrerequisiteSpellworksTarget = {
57
+ /**
58
+ * The skills that are taken into account for satisfying the prerequisite.
59
+ */
60
+ property: PropertyReference;
61
+ };
62
+ export declare type RatedMinimumNumberPrerequisiteLiturgiesTarget = {
63
+ /**
64
+ * The skills that are taken into account for satisfying the prerequisite.
65
+ */
66
+ aspect: AspectReference;
67
+ };
@@ -0,0 +1,6 @@
1
+ export var CombatTechniquesTargetGroup;
2
+ (function (CombatTechniquesTargetGroup) {
3
+ CombatTechniquesTargetGroup["All"] = "All";
4
+ CombatTechniquesTargetGroup["Close"] = "Close";
5
+ CombatTechniquesTargetGroup["Ranged"] = "Ranged";
6
+ })(CombatTechniquesTargetGroup || (CombatTechniquesTargetGroup = {}));
@@ -1,5 +1,4 @@
1
1
  import { RatedIdentifier } from "../../_IdentifierGroup.js";
2
- import { AspectReference, PropertyReference, SkillReference } from "../../_SimpleReferences.js";
3
2
  import { DisplayOption } from "../DisplayOption.js";
4
3
  /**
5
4
  * @title Rated Prerequisite
@@ -17,57 +16,3 @@ export declare type RatedPrerequisite = {
17
16
  value: number;
18
17
  display_option?: DisplayOption;
19
18
  };
20
- /**
21
- * @title Rated Minimum Number Prerequisite
22
- */
23
- export declare type RatedMinimumNumberPrerequisite = {
24
- /**
25
- * The minimum number of skills that need to be on the defined minimum skill
26
- * rating.
27
- * @integer
28
- * @minimum 1
29
- */
30
- number: number;
31
- /**
32
- * The minimum skill rating the defined minimum number of skills need to be
33
- * on.
34
- * @integer
35
- * @minimum 1
36
- */
37
- value: number;
38
- /**
39
- * The targets that contribute to satisfying the prerequisite.
40
- */
41
- targets: RatedMinimumNumberPrerequisiteTarget;
42
- display_option?: DisplayOption;
43
- };
44
- export declare type RatedMinimumNumberPrerequisiteTarget = {
45
- tag: "Skills";
46
- skills: RatedMinimumNumberPrerequisiteSkillsTarget;
47
- } | {
48
- tag: "Spellworks";
49
- spellworks: PropertyReference;
50
- } | {
51
- tag: "Liturgies";
52
- liturgies: AspectReference;
53
- };
54
- export declare type RatedMinimumNumberPrerequisiteSkillsTarget = {
55
- /**
56
- * The skills that are taken into account for satisfying the prerequisite.
57
- * @minItems 2
58
- * @uniqueItems
59
- */
60
- list: SkillReference[];
61
- };
62
- export declare type RatedMinimumNumberPrerequisiteSpellworksTarget = {
63
- /**
64
- * The skills that are taken into account for satisfying the prerequisite.
65
- */
66
- property: PropertyReference;
67
- };
68
- export declare type RatedMinimumNumberPrerequisiteLiturgiesTarget = {
69
- /**
70
- * The skills that are taken into account for satisfying the prerequisite.
71
- */
72
- aspect: AspectReference;
73
- };
@@ -0,0 +1,19 @@
1
+ import { SkillIdentifier } from "../../_IdentifierGroup.js";
2
+ import { DisplayOption } from "../DisplayOption.js";
3
+ /**
4
+ * @title Rated Sum Prerequisite
5
+ */
6
+ export declare type RatedSumPrerequisite = {
7
+ /**
8
+ * The minimum required sum of the targets’ ratings.
9
+ * @integer
10
+ * @minimum 1
11
+ */
12
+ sum: number;
13
+ /**
14
+ * The targets that are included in calculating the sum.
15
+ * @minItems 2
16
+ */
17
+ targets: SkillIdentifier[];
18
+ display_option?: DisplayOption;
19
+ };
@@ -0,0 +1,11 @@
1
+ /**
2
+ * Requires a specific sexual characteristic.
3
+ * @title Sexual Characteristic Prerequisite
4
+ */
5
+ export declare type SexualCharacteristicPrerequisite = {
6
+ id: SexualCharacteristic;
7
+ };
8
+ export declare enum SexualCharacteristic {
9
+ Penis = "Penis",
10
+ Vagina = "Vagina"
11
+ }
@@ -0,0 +1,5 @@
1
+ export var SexualCharacteristic;
2
+ (function (SexualCharacteristic) {
3
+ SexualCharacteristic["Penis"] = "Penis";
4
+ SexualCharacteristic["Vagina"] = "Vagina";
5
+ })(SexualCharacteristic || (SexualCharacteristic = {}));
@@ -14,6 +14,31 @@ export declare type TextPrerequisite = {
14
14
  * in the associated entry to never be available for purchase.
15
15
  */
16
16
  verification: TextVerificationRule;
17
+ /**
18
+ * If the text is a sentence or sentence-like fragment, this property ensures
19
+ * it is integrated into the prerequisite string correctly.
20
+ *
21
+ * A standalone sentence is connected to the previous prerequisite string with
22
+ * a period and a period is also added at the end of the sentence
23
+ * automatically, if it is not present. A connected sentence is connected to
24
+ * the previous prerequisite string with a semicolon and a period is not added
25
+ * to the end of the sentence. In this case, if there are prerequisites after
26
+ * this one, they will be connected using a semicolon again, unless a
27
+ * different punctuation mark is present at the end of the given text.
28
+ */
29
+ sentence_type?: SentenceType;
30
+ /**
31
+ * If the text does not represent an actual prerequisite but a prerequisite
32
+ * for the use of certain aspects or the entry the prerequisite is associated
33
+ * with, or something like that, this property is set to `true`.
34
+ *
35
+ * If all prerequisites of an entry are marked as meta, the entry is
36
+ * considered to have no prerequisites and thus the string `none` must be
37
+ * rendered before the list of meta prerequisites.
38
+ *
39
+ * This is the only use case for this property.
40
+ */
41
+ is_meta?: true;
17
42
  /**
18
43
  * All translations for the entry, identified by IETF language tag (BCP47).
19
44
  */
@@ -23,4 +48,8 @@ export declare enum TextVerificationRule {
23
48
  Pass = "Pass",
24
49
  Deny = "Deny"
25
50
  }
51
+ export declare enum SentenceType {
52
+ Standalone = "Standalone",
53
+ Connected = "Connected"
54
+ }
26
55
  export declare type TextPrerequisiteTranslation = NonEmptyMarkdown;
@@ -3,3 +3,8 @@ export var TextVerificationRule;
3
3
  TextVerificationRule["Pass"] = "Pass";
4
4
  TextVerificationRule["Deny"] = "Deny";
5
5
  })(TextVerificationRule || (TextVerificationRule = {}));
6
+ export var SentenceType;
7
+ (function (SentenceType) {
8
+ SentenceType["Standalone"] = "Standalone";
9
+ SentenceType["Connected"] = "Connected";
10
+ })(SentenceType || (SentenceType = {}));
@@ -35,6 +35,17 @@ export declare type AdvancedCombatSpecialAbilityTranslation = {
35
35
  * @deprecated
36
36
  */
37
37
  penalty?: string;
38
+ /**
39
+ * The AP value. It is only used if the text cannot be generated from the
40
+ * given information.
41
+ */
42
+ ap_value?: Activatable.AdventurePointsValueReplacement;
43
+ /**
44
+ * A string that gets appended to the default AP Value text with a preceding
45
+ * space. This always happens if present, even if the generated AP Value text
46
+ * is replaced.
47
+ */
48
+ ap_value_append?: Activatable.AdventurePointsValueAppend;
38
49
  errata?: Errata;
39
50
  };
40
51
  export declare const validateSchema: import("../../validation/schema.js").TypeValidator<AdvancedCombatSpecialAbility>;
@@ -1,11 +1,11 @@
1
1
  /**
2
2
  * @main CeremonialItemSpecialAbility
3
3
  */
4
- import { Errata } from "../source/_Erratum.js";
5
- import { PublicationRefs } from "../source/_PublicationRef.js";
6
4
  import * as Activatable from "../_Activatable.js";
7
5
  import { LocaleMap } from "../_LocaleMap.js";
8
6
  import { GeneralPrerequisites } from "../_Prerequisite.js";
7
+ import { Errata } from "../source/_Erratum.js";
8
+ import { PublicationRefs } from "../source/_PublicationRef.js";
9
9
  /**
10
10
  * @title Ceremonial Item Special Ability
11
11
  */
@@ -29,6 +29,11 @@ export declare type CeremonialItemSpecialAbilityTranslation = {
29
29
  name: Activatable.Name;
30
30
  name_in_library?: Activatable.NameInLibrary;
31
31
  effect: Activatable.Effect;
32
+ /**
33
+ * The prerequisites text. It is only used if the text cannot be generated
34
+ * from the given information.
35
+ */
36
+ prerequisites?: Activatable.PrerequisitesReplacement;
32
37
  errata?: Errata;
33
38
  };
34
39
  export declare const validateSchema: import("../../validation/schema.js").TypeValidator<CeremonialItemSpecialAbility>;