optolith-database-schema 0.0.1 → 0.0.4

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 (44) hide show
  1. package/CHANGELOG.md +29 -0
  2. package/lib/types/Blessing.d.ts +124 -0
  3. package/lib/types/Blessing.js +4 -0
  4. package/lib/types/Cantrip.d.ts +220 -0
  5. package/lib/types/Cantrip.js +4 -0
  6. package/lib/types/Ceremony.d.ts +144 -0
  7. package/lib/types/Ceremony.js +4 -0
  8. package/lib/types/LiturgicalChant.d.ts +144 -0
  9. package/lib/types/LiturgicalChant.js +4 -0
  10. package/lib/types/PactCategory.d.ts +90 -0
  11. package/lib/types/PactCategory.js +4 -0
  12. package/lib/types/Ritual.d.ts +134 -0
  13. package/lib/types/Ritual.js +4 -0
  14. package/lib/types/{SkillModificationIncrement.d.ts → SkillModificationLevel.d.ts} +58 -31
  15. package/lib/types/SkillModificationLevel.js +8 -0
  16. package/lib/types/Spell.d.ts +134 -0
  17. package/lib/types/Spell.js +4 -0
  18. package/lib/types/_ActivatableSkill.d.ts +86 -37
  19. package/lib/types/_ActivatableSkill.js +0 -5
  20. package/lib/types/_Enhancements.d.ts +66 -0
  21. package/lib/types/_Enhancements.js +4 -0
  22. package/lib/types/_Identifier.d.ts +80 -0
  23. package/lib/types/_Identifier.js +1 -0
  24. package/lib/types/_Prerequisite.d.ts +93 -1
  25. package/lib/types/_Prerequisite.js +183 -1
  26. package/lib/types/magicalActions/GeodeRitual.d.ts +3 -2
  27. package/lib/types/magicalActions/ZibiljaRitual.d.ts +2 -2
  28. package/package.json +2 -2
  29. package/schema/Blessing.schema.json +227 -0
  30. package/schema/Cantrip.schema.json +427 -0
  31. package/schema/Ceremony.schema.json +233 -0
  32. package/schema/LiturgicalChant.schema.json +233 -0
  33. package/schema/PactCategory.schema.json +138 -0
  34. package/schema/Ritual.schema.json +219 -0
  35. package/schema/SkillModificationLevel.schema.json +138 -0
  36. package/schema/Spell.schema.json +219 -0
  37. package/schema/_ActivatableSkill.schema.json +227 -41
  38. package/schema/_Enhancements.schema.json +82 -0
  39. package/schema/_Identifier.schema.json +185 -0
  40. package/schema/_Prerequisite.schema.json +199 -1
  41. package/schema/magicalActions/GeodeRitual.schema.json +1 -1
  42. package/schema/magicalActions/ZibiljaRitual.schema.json +1 -1
  43. package/lib/types/SkillModificationIncrement.js +0 -4
  44. package/schema/SkillModificationIncrement.schema.json +0 -98
@@ -8,11 +8,6 @@ export var CastingTime;
8
8
  CastingTimeDuringLovemakingUnit["SeductionActions"] = "SeductionActions";
9
9
  CastingTimeDuringLovemakingUnit["Rounds"] = "Rounds";
10
10
  })(CastingTimeDuringLovemakingUnit = CastingTime.CastingTimeDuringLovemakingUnit || (CastingTime.CastingTimeDuringLovemakingUnit = {}));
11
- let SlowSkillCastingTimeUnit;
12
- (function (SlowSkillCastingTimeUnit) {
13
- SlowSkillCastingTimeUnit["Minutes"] = "Minutes";
14
- SlowSkillCastingTimeUnit["Hours"] = "Hours";
15
- })(SlowSkillCastingTimeUnit = CastingTime.SlowSkillCastingTimeUnit || (CastingTime.SlowSkillCastingTimeUnit = {}));
16
11
  })(CastingTime || (CastingTime = {}));
17
12
  export var Range;
18
13
  (function (Range) {
@@ -0,0 +1,66 @@
1
+ /**
2
+ * @title Enhancements
3
+ */
4
+ import { Errata } from "./source/_Erratum";
5
+ import { PublicationRefs } from "./source/_PublicationRef";
6
+ import { GroupCollection } from "./_Prerequisite";
7
+ /**
8
+ * A list of enhancements.
9
+ * @minItems 3
10
+ * @maxItems 5
11
+ */
12
+ export declare type Enhancements = Enhancement[];
13
+ /**
14
+ * @title Enhancement
15
+ */
16
+ export declare type Enhancement = {
17
+ /**
18
+ * The enhancement's identifier. An unique, increasing integer.
19
+ * @integer
20
+ * @minimum 1
21
+ */
22
+ id: number;
23
+ /**
24
+ * The skill rating required to learn this enhancement.
25
+ * @integer
26
+ * @minimum 8
27
+ * @maximum 16
28
+ * @mulitpleOf 2
29
+ */
30
+ skill_rating: number;
31
+ /**
32
+ * The value to multiply with the numeric representation of the associated
33
+ * skill's improvement cost to form the final AP cost of this enhancement.
34
+ * @integer
35
+ * @minimum 1
36
+ */
37
+ adventure_points_modifier: number;
38
+ prerequisites?: GroupCollection.Enhancement;
39
+ /**
40
+ * Only defined if different than the associated skill.
41
+ */
42
+ src?: PublicationRefs;
43
+ /**
44
+ * All translations for the entry, identified by IETF language tag (BCP47).
45
+ * @minProperties 1
46
+ */
47
+ translations: {
48
+ /**
49
+ * @patternProperties ^[a-z]{2}-[A-Z]{2}$
50
+ */
51
+ [localeId: string]: {
52
+ /**
53
+ * The name of the enhancement.
54
+ * @minLength 1
55
+ */
56
+ name: string;
57
+ /**
58
+ * The effect description.
59
+ * @markdown
60
+ * @minLength 1
61
+ */
62
+ effect: string;
63
+ errata?: Errata;
64
+ };
65
+ };
66
+ };
@@ -0,0 +1,4 @@
1
+ /**
2
+ * @title Enhancements
3
+ */
4
+ export {};
@@ -0,0 +1,80 @@
1
+ export declare namespace Identifier {
2
+ namespace Tagged {
3
+ type Attribute = {
4
+ tag: "Attribute";
5
+ /**
6
+ * The attribute's numeric identifier.
7
+ * @integer
8
+ * @minimum 1
9
+ * @maximum 8
10
+ */
11
+ value: number;
12
+ };
13
+ type Skill = {
14
+ tag: "Skill";
15
+ /**
16
+ * The skill's numeric identifier.
17
+ * @integer
18
+ * @minimum 1
19
+ */
20
+ value: number;
21
+ };
22
+ type CloseCombatTechnique = {
23
+ tag: "CloseCombatTechnique";
24
+ /**
25
+ * The close combat technique's numeric identifier.
26
+ * @integer
27
+ * @minimum 1
28
+ */
29
+ value: number;
30
+ };
31
+ type RangedCombatTechnique = {
32
+ tag: "RangedCombatTechnique";
33
+ /**
34
+ * The ranged combat technique's numeric identifier.
35
+ * @integer
36
+ * @minimum 1
37
+ */
38
+ value: number;
39
+ };
40
+ type Spell = {
41
+ tag: "Spell";
42
+ /**
43
+ * The spell's numeric identifier.
44
+ * @integer
45
+ * @minimum 1
46
+ */
47
+ value: number;
48
+ };
49
+ type Ritual = {
50
+ tag: "Ritual";
51
+ /**
52
+ * The ritual's numeric identifier.
53
+ * @integer
54
+ * @minimum 1
55
+ */
56
+ value: number;
57
+ };
58
+ type LiturgicalChant = {
59
+ tag: "LiturgicalChant";
60
+ /**
61
+ * The liturgical chant's numeric identifier.
62
+ * @integer
63
+ * @minimum 1
64
+ */
65
+ value: number;
66
+ };
67
+ type Ceremony = {
68
+ tag: "Ceremony";
69
+ /**
70
+ * The ceremony's numeric identifier.
71
+ * @integer
72
+ * @minimum 1
73
+ */
74
+ value: number;
75
+ };
76
+ }
77
+ namespace Group {
78
+ type Rated = Tagged.Attribute | Tagged.Skill | Tagged.CloseCombatTechnique | Tagged.RangedCombatTechnique | Tagged.Spell | Tagged.Ritual | Tagged.LiturgicalChant | Tagged.Ceremony;
79
+ }
80
+ }
@@ -0,0 +1 @@
1
+ export {};
@@ -1,6 +1,7 @@
1
1
  /**
2
2
  * @title Prerequisites
3
3
  */
4
+ import { Identifier } from "./_Identifier";
4
5
  import { BinarySex } from "./_Sex";
5
6
  /**
6
7
  * @title Single Prerequisites
@@ -202,7 +203,7 @@ export declare namespace Single {
202
203
  type T = {
203
204
  tag: "Influence";
204
205
  /**
205
- * The influence' identifier.
206
+ * The influence's identifier.
206
207
  * @integer
207
208
  * @minimum 1
208
209
  */
@@ -214,6 +215,82 @@ export declare namespace Single {
214
215
  display_option?: DisplayOption.T;
215
216
  };
216
217
  }
218
+ namespace Rated {
219
+ /**
220
+ * @title Rated Prerequisite
221
+ */
222
+ type T = {
223
+ tag: "Rated";
224
+ /**
225
+ * The rated entry's identifier.
226
+ * @integer
227
+ * @minimum 1
228
+ */
229
+ id: Identifier.Group.Rated;
230
+ /**
231
+ * The required minimum value.
232
+ * @integer
233
+ * @minimum 0
234
+ */
235
+ value: number;
236
+ display_option?: DisplayOption.T;
237
+ };
238
+ }
239
+ namespace Enhancement {
240
+ /**
241
+ * Requires a specific enhancement from a skill.
242
+ * @title Enhancement Prerequisite
243
+ */
244
+ type T = {
245
+ tag: "Enhancement";
246
+ /**
247
+ * The required skill's identifier.
248
+ */
249
+ skill: {
250
+ tag: SkillCategoryWithEnhancements;
251
+ /**
252
+ * The skill's identifier.
253
+ * @integer
254
+ * @minimum 1
255
+ */
256
+ id: number;
257
+ };
258
+ /**
259
+ * The required enhancement's identifier.
260
+ */
261
+ enhancement: {
262
+ /**
263
+ * The enhancement's identifier.
264
+ * @integer
265
+ * @minimum 1
266
+ */
267
+ id: number;
268
+ };
269
+ display_option?: DisplayOption.T;
270
+ };
271
+ enum SkillCategoryWithEnhancements {
272
+ Spell = "Spell",
273
+ Ritual = "Ritual",
274
+ LiturgicalChant = "LiturgicalChant",
275
+ Ceremony = "Ceremony"
276
+ }
277
+ }
278
+ namespace EnhancementInternal {
279
+ /**
280
+ * Requires a specific enhancement from a skill. This can only be used by an
281
+ * enhancement to require another enhancement from the same skill.
282
+ * @title Internal Enhancement Prerequisite
283
+ */
284
+ type T = {
285
+ tag: "EnhancementInternal";
286
+ /**
287
+ * The enhancement's identifier.
288
+ * @integer
289
+ * @minimum 1
290
+ */
291
+ id: number;
292
+ };
293
+ }
217
294
  }
218
295
  /**
219
296
  * @title Grouped Prerequisites
@@ -222,7 +299,10 @@ declare namespace Group {
222
299
  type DerivedCharacteristic = Single.Rule.T;
223
300
  type Publication = Single.Publication.T;
224
301
  type ArcaneTradition = Single.Sex.T | Single.Culture.T;
302
+ type Spellwork = Single.Rule.T | Single.Rated.T;
303
+ type Liturgy = Single.Rule.T;
225
304
  type GeodeRitual = Single.Influence.T;
305
+ type Enhancement = Single.EnhancementInternal.T;
226
306
  }
227
307
  /**
228
308
  * @title Prerequisite Collection Types
@@ -266,9 +346,21 @@ export declare namespace GroupCollection {
266
346
  * @title Arcane Tradition Prerequisites
267
347
  */
268
348
  type ArcaneTradition = Collection.Plain<Group.ArcaneTradition>;
349
+ /**
350
+ * @title Spellwork Prerequisites
351
+ */
352
+ type Spellwork = Collection.Plain<Group.Spellwork>;
353
+ /**
354
+ * @title Liturgy Prerequisites
355
+ */
356
+ type Liturgy = Collection.Plain<Group.Liturgy>;
269
357
  /**
270
358
  * @title Geode Ritual Prerequisites
271
359
  */
272
360
  type GeodeRitual = Collection.Plain<Group.GeodeRitual>;
361
+ /**
362
+ * @title Enhancement Prerequisites
363
+ */
364
+ type Enhancement = Collection.Plain<Group.Enhancement>;
273
365
  }
274
366
  export {};
@@ -1,4 +1,186 @@
1
1
  /**
2
2
  * @title Prerequisites
3
3
  */
4
- export {};
4
+ /**
5
+ * @title Single Prerequisites
6
+ */
7
+ export var Single;
8
+ (function (Single) {
9
+ // "IncreasableMultiEntry": {
10
+ // "title": "Increasable Prerequisite",
11
+ // "description": "Require a specific attribute, skill, combat technique, spell or chant from a set to be on a minimum value. Note that liturgical chants are required to be active automatically, so to require them to be active you can set the value to 0.",
12
+ // "type": "object",
13
+ // "properties": {
14
+ // "tag": { "const": "IncreasableMultiEntry" },
15
+ // "id": {
16
+ // "type": "object",
17
+ // "properties": {
18
+ // "tag": { "$ref": "_Id.schema.json#/definitions/Rated" },
19
+ // "value": {
20
+ // "type": "array",
21
+ // "items": { "type": "integer", "minimum": 1 },
22
+ // "uniqueItems": true,
23
+ // "minItems": 2
24
+ // }
25
+ // },
26
+ // "required": ["tag", "value"],
27
+ // "additionalProperties": false
28
+ // },
29
+ // "value": {
30
+ // "description": "The required minimum value.",
31
+ // "type": "integer",
32
+ // "minimum": 0
33
+ // },
34
+ // "display_option": { "$ref": "#/definitions/Single/DisplayOption" }
35
+ // },
36
+ // "required": ["tag", "id", "value"],
37
+ // "additionalProperties": false
38
+ // },
39
+ // "AnimistPower": {
40
+ // "title": "Animist Power Prerequisite",
41
+ // "description": "Requires a specific animist power to be on a minimum value.",
42
+ // "type": "object",
43
+ // "properties": {
44
+ // "tag": { "const": "AnimistPower" },
45
+ // "id": { "type": "integer", "minimum": 1 },
46
+ // "level": {
47
+ // "description": "The level to which the minimum value applies.",
48
+ // "type": "integer",
49
+ // "minimum": 0
50
+ // },
51
+ // "value": {
52
+ // "description": "The required minimum value.",
53
+ // "type": "integer",
54
+ // "minimum": 0
55
+ // }
56
+ // },
57
+ // "required": ["tag", "id", "value"],
58
+ // "additionalProperties": false
59
+ // },
60
+ // "MinimumSkillRating": {
61
+ // "type": "object",
62
+ // "properties": {
63
+ // "tag": { "const": "MinimumSkillRating" },
64
+ // "number": {
65
+ // "description": "The minimum number of skills that need to be on the defined minimum skill rating.",
66
+ // "type": "integer",
67
+ // "minimum": 1
68
+ // },
69
+ // "value": {
70
+ // "description": "The minimum skill rating the defined minimum number of skills need to be on.",
71
+ // "type": "integer",
72
+ // "minimum": 1
73
+ // },
74
+ // "targets": {
75
+ // "oneOf": [
76
+ // {
77
+ // "type": "object",
78
+ // "properties": {
79
+ // "type": {
80
+ // "const": "Skills"
81
+ // },
82
+ // "id": {
83
+ // "type": "array",
84
+ // "items": { "type": "integer", "minimum": 1 },
85
+ // "minItems": 1
86
+ // }
87
+ // },
88
+ // "required": ["type", "id"],
89
+ // "additionalProperties": false
90
+ // },
91
+ // {
92
+ // "type": "object",
93
+ // "properties": {
94
+ // "type": {
95
+ // "const": "Spellworks"
96
+ // },
97
+ // "property": {
98
+ // "type": "integer",
99
+ // "minimum": 1
100
+ // }
101
+ // },
102
+ // "required": ["type", "property"],
103
+ // "additionalProperties": false
104
+ // },
105
+ // {
106
+ // "type": "object",
107
+ // "properties": {
108
+ // "type": {
109
+ // "const": "Liturgies"
110
+ // },
111
+ // "aspect": {
112
+ // "type": "integer",
113
+ // "minimum": 1
114
+ // }
115
+ // },
116
+ // "required": ["type", "aspect"],
117
+ // "additionalProperties": false
118
+ // }
119
+ // ]
120
+ // },
121
+ // "display_option": { "$ref": "#/definitions/Single/DisplayOption" }
122
+ // },
123
+ // "required": ["tag", "number", "value", "targets"],
124
+ // "additionalProperties": false
125
+ // },
126
+ let Enhancement;
127
+ (function (Enhancement) {
128
+ let SkillCategoryWithEnhancements;
129
+ (function (SkillCategoryWithEnhancements) {
130
+ SkillCategoryWithEnhancements["Spell"] = "Spell";
131
+ SkillCategoryWithEnhancements["Ritual"] = "Ritual";
132
+ SkillCategoryWithEnhancements["LiturgicalChant"] = "LiturgicalChant";
133
+ SkillCategoryWithEnhancements["Ceremony"] = "Ceremony";
134
+ })(SkillCategoryWithEnhancements = Enhancement.SkillCategoryWithEnhancements || (Enhancement.SkillCategoryWithEnhancements = {}));
135
+ })(Enhancement = Single.Enhancement || (Single.Enhancement = {}));
136
+ // "CommonSuggestedByRCP": {
137
+ // "type": "object",
138
+ // "properties": {
139
+ // "tag": { "const": "CommonSuggestedByRCP" }
140
+ // },
141
+ // "required": ["tag"],
142
+ // "additionalProperties": false
143
+ // },
144
+ // "Special": {
145
+ // "description": "Special prerequisites are prerequisites that cannot be ensured by Optolith but rely on roleplay or other background information of the character.",
146
+ // "type": "object",
147
+ // "properties": {
148
+ // "tag": { "const": "Special" },
149
+ // "text": {
150
+ // "type": "object",
151
+ // "description": "All translations of the prerequisite text, identified by IETF language tag (BCP47).",
152
+ // "patternProperties": {
153
+ // "^[a-z]{2}-[A-Z]{2}$": {
154
+ // "description": "The prerequisite text.",
155
+ // "type": "string",
156
+ // "minLength": 1
157
+ // }
158
+ // },
159
+ // "minProperties": 1,
160
+ // "additionalProperties": false
161
+ // }
162
+ // },
163
+ // "required": ["tag", "text"],
164
+ // "additionalProperties": false
165
+ // },
166
+ // "Ineligible": {
167
+ // "description": "This is a placeholder for required things that can never happen with the current set of crunch elements and rules, e. g. if a race is required that does not yet exist as a crunch element.",
168
+ // "type": "object",
169
+ // "properties": {
170
+ // "tag": { "const": "Ineligible" },
171
+ // "display_option": { "$ref": "#/definitions/Single/DisplayOption" }
172
+ // },
173
+ // "required": ["tag"],
174
+ // "additionalProperties": false
175
+ // },
176
+ // "When": {
177
+ // "title": "When",
178
+ // "description": "The \"when\" property defines that the prerequisite it is defined for only takes effect if the prerequisites in this list are matched.",
179
+ // "items": {
180
+ // "oneOf": [
181
+ // { "$ref": "#/definitions/Single/Publication" }
182
+ // ]
183
+ // },
184
+ // "minItems": 1
185
+ // }
186
+ })(Single || (Single = {}));
@@ -1,9 +1,10 @@
1
1
  /**
2
2
  * @main GeodeRitual
3
3
  */
4
+ import { SlowSkillCastingTimeUnit } from "../SkillModificationLevel";
4
5
  import { Errata } from "../source/_Erratum";
5
6
  import { PublicationRefs } from "../source/_PublicationRef";
6
- import { CastingTime, Cost, Duration, Effect, TargetCategory } from "../_ActivatableSkill";
7
+ import { Cost, Duration, Effect, TargetCategory } from "../_ActivatableSkill";
7
8
  import { GroupCollection } from "../_Prerequisite";
8
9
  import { SkillCheck } from "../_SkillCheck";
9
10
  /**
@@ -109,7 +110,7 @@ declare type PerformanceParameters = {
109
110
  /**
110
111
  * The casting time unit.
111
112
  */
112
- unit: CastingTime.SlowSkillCastingTimeUnit;
113
+ unit: SlowSkillCastingTimeUnit;
113
114
  };
114
115
  /**
115
116
  * The AE cost.
@@ -3,7 +3,7 @@
3
3
  */
4
4
  import { Errata } from "../source/_Erratum";
5
5
  import { PublicationRefs } from "../source/_PublicationRef";
6
- import { Effect, PerformanceParameters, TargetCategory } from "../_ActivatableSkill";
6
+ import { Effect, SlowPerformanceParameters, TargetCategory } from "../_ActivatableSkill";
7
7
  import { ImprovementCost } from "../_ImprovementCost";
8
8
  import { SkillCheck, SkillCheckPenalty } from "../_SkillCheck";
9
9
  /**
@@ -27,7 +27,7 @@ export declare type ZibiljaRitual = {
27
27
  /**
28
28
  * Measurable parameters of a zibilja ritual.
29
29
  */
30
- parameters: PerformanceParameters;
30
+ parameters: SlowPerformanceParameters;
31
31
  /**
32
32
  * The target category – the kind of creature or object – the skill affects.
33
33
  */
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "optolith-database-schema",
3
- "version": "0.0.1",
3
+ "version": "0.0.4",
4
4
  "description": "Definitions and utilities for the flat-file database of Optolith, a character creation tool for the Pen and Paper RPG “The Dark Eye 5”, and its external integrations into other software.",
5
5
  "keywords": [
6
6
  "tde",
@@ -25,7 +25,7 @@
25
25
  },
26
26
  "devDependencies": {
27
27
  "@types/node": "^17.0.21",
28
- "optolith-tsjsonschemamd": "^0.5.1",
28
+ "optolith-tsjsonschemamd": "^0.5.2",
29
29
  "standard-version": "^9.3.2",
30
30
  "typescript": "^4.6.2"
31
31
  },