optolith-database-schema 0.1.17 → 0.1.20
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.
- package/CHANGELOG.md +27 -0
- package/lib/types/Service.d.ts +11 -1
- package/lib/types/_ActivatableSkill.d.ts +24 -0
- package/lib/types/magicalActions/AnimistPower.d.ts +60 -0
- package/lib/types/prerequisites/single/RacePrerequisite.d.ts +1 -1
- package/package.json +1 -1
- package/schema/Service.schema.json +36 -1
- package/schema/_ActivatableSkill.schema.json +24 -0
- package/schema/magicalActions/AnimistPower.schema.json +75 -0
- package/schema/prerequisites/single/RacePrerequisite.schema.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,33 @@
|
|
|
2
2
|
|
|
3
3
|
All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines.
|
|
4
4
|
|
|
5
|
+
### [0.1.20](https://github.com/elyukai/optolith-database-schema/compare/v0.1.19...v0.1.20) (2022-03-22)
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
### Features
|
|
9
|
+
|
|
10
|
+
* services can be for multiple creature types ([1853485](https://github.com/elyukai/optolith-database-schema/commit/1853485aea88c38339b5ad5d3396aef7dc263888))
|
|
11
|
+
|
|
12
|
+
### [0.1.19](https://github.com/elyukai/optolith-database-schema/compare/v0.1.18...v0.1.19) (2022-03-21)
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
### Features
|
|
16
|
+
|
|
17
|
+
* add maximum and radius options to ranges ([2b7b579](https://github.com/elyukai/optolith-database-schema/commit/2b7b579e1ee3b82bb7d779e19c373935816ff8d8))
|
|
18
|
+
|
|
19
|
+
### [0.1.18](https://github.com/elyukai/optolith-database-schema/compare/v0.1.17...v0.1.18) (2022-03-21)
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
### Features
|
|
23
|
+
|
|
24
|
+
* animist powers can have prerequisites ([3fa06f4](https://github.com/elyukai/optolith-database-schema/commit/3fa06f41cbf84a0fbe54d51b5c2adb78d8c74129))
|
|
25
|
+
* derived animist power costs can have notes ([3ca4f3e](https://github.com/elyukai/optolith-database-schema/commit/3ca4f3edb30847fdf1878a8ed56943930be30d9d))
|
|
26
|
+
|
|
27
|
+
|
|
28
|
+
### Bug Fixes
|
|
29
|
+
|
|
30
|
+
* wrong discriminator for race prerequisite ([dea373f](https://github.com/elyukai/optolith-database-schema/commit/dea373f141a1a64f95dc8f33a3ecbfb0f7d51993))
|
|
31
|
+
|
|
5
32
|
### [0.1.17](https://github.com/elyukai/optolith-database-schema/compare/v0.1.16...v0.1.17) (2022-03-21)
|
|
6
33
|
|
|
7
34
|
|
package/lib/types/Service.d.ts
CHANGED
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
import { Errata } from "./source/_Erratum.js";
|
|
5
5
|
import { PublicationRefs } from "./source/_PublicationRef.js";
|
|
6
6
|
/**
|
|
7
|
-
* @title Service of Summoned Creatures
|
|
7
|
+
* @title Service of Summoned Creatures and Monstrosities
|
|
8
8
|
*/
|
|
9
9
|
export declare type Service = {
|
|
10
10
|
/**
|
|
@@ -13,6 +13,16 @@ export declare type Service = {
|
|
|
13
13
|
* @minimum 1
|
|
14
14
|
*/
|
|
15
15
|
id: number;
|
|
16
|
+
/**
|
|
17
|
+
* Defines for which creature type(s) the service is available.
|
|
18
|
+
* @minItems 1
|
|
19
|
+
* @uniqueItems
|
|
20
|
+
*/
|
|
21
|
+
availability: ({
|
|
22
|
+
tag: "SummonedCreatures";
|
|
23
|
+
} | {
|
|
24
|
+
tag: "Monstrosities";
|
|
25
|
+
})[];
|
|
16
26
|
src: PublicationRefs;
|
|
17
27
|
/**
|
|
18
28
|
* All translations for the entry, identified by IETF language tag (BCP47).
|
|
@@ -532,6 +532,10 @@ export declare namespace Range {
|
|
|
532
532
|
};
|
|
533
533
|
type RangeValue = {
|
|
534
534
|
tag: "Modifiable";
|
|
535
|
+
/**
|
|
536
|
+
* If `true`, the range is a maximum range.
|
|
537
|
+
*/
|
|
538
|
+
is_maximum?: true;
|
|
535
539
|
/**
|
|
536
540
|
* The initial skill modification identifier/level.
|
|
537
541
|
* @integer
|
|
@@ -539,6 +543,10 @@ export declare namespace Range {
|
|
|
539
543
|
* @maximum 6
|
|
540
544
|
*/
|
|
541
545
|
initial_modification_level: number;
|
|
546
|
+
/**
|
|
547
|
+
* If `true`, the range is a radius.
|
|
548
|
+
*/
|
|
549
|
+
is_radius?: true;
|
|
542
550
|
} | {
|
|
543
551
|
tag: "Sight";
|
|
544
552
|
} | {
|
|
@@ -550,6 +558,10 @@ export declare namespace Range {
|
|
|
550
558
|
tag: "Global";
|
|
551
559
|
} | {
|
|
552
560
|
tag: "Fixed";
|
|
561
|
+
/**
|
|
562
|
+
* If `true`, the range is a maximum range.
|
|
563
|
+
*/
|
|
564
|
+
is_maximum?: true;
|
|
553
565
|
/**
|
|
554
566
|
* The (unitless) range value.
|
|
555
567
|
* @integer
|
|
@@ -560,8 +572,16 @@ export declare namespace Range {
|
|
|
560
572
|
* The unit of the `value`.
|
|
561
573
|
*/
|
|
562
574
|
unit: Unit;
|
|
575
|
+
/**
|
|
576
|
+
* If `true`, the range is a radius.
|
|
577
|
+
*/
|
|
578
|
+
is_radius?: true;
|
|
563
579
|
} | {
|
|
564
580
|
tag: "CheckResultBased";
|
|
581
|
+
/**
|
|
582
|
+
* If `true`, the range is a maximum range.
|
|
583
|
+
*/
|
|
584
|
+
is_maximum?: true;
|
|
565
585
|
/**
|
|
566
586
|
* The base value that is derived from the check result.
|
|
567
587
|
*/
|
|
@@ -585,6 +605,10 @@ export declare namespace Range {
|
|
|
585
605
|
* The range unit.
|
|
586
606
|
*/
|
|
587
607
|
unit: Unit;
|
|
608
|
+
/**
|
|
609
|
+
* If `true`, the range is a radius.
|
|
610
|
+
*/
|
|
611
|
+
is_radius?: true;
|
|
588
612
|
};
|
|
589
613
|
enum Unit {
|
|
590
614
|
Steps = "Steps",
|
|
@@ -5,6 +5,7 @@ import { Errata } from "../source/_Erratum.js";
|
|
|
5
5
|
import { PublicationRefs } from "../source/_PublicationRef.js";
|
|
6
6
|
import { Duration, Effect } from "../_ActivatableSkill.js";
|
|
7
7
|
import { ImprovementCost } from "../_ImprovementCost.js";
|
|
8
|
+
import { AnimistPowerPrerequisites } from "../_Prerequisite.js";
|
|
8
9
|
import { SkillCheck } from "../_SkillCheck.js";
|
|
9
10
|
/**
|
|
10
11
|
* @title Animist Power
|
|
@@ -63,6 +64,7 @@ export declare type AnimistPower = {
|
|
|
63
64
|
} | {
|
|
64
65
|
tag: "ByPrimaryPatron";
|
|
65
66
|
};
|
|
67
|
+
prerequisites?: AnimistPowerPrerequisites;
|
|
66
68
|
/**
|
|
67
69
|
* The animist power can have multiple levels. Each level is skilled
|
|
68
70
|
* separately. A previous level must be on at least 10 so that the next higher
|
|
@@ -180,6 +182,35 @@ declare type PerformanceParameters = {
|
|
|
180
182
|
* interval.
|
|
181
183
|
*/
|
|
182
184
|
interval?: Duration.UnitValue;
|
|
185
|
+
/**
|
|
186
|
+
* All translations for the entry, identified by IETF language tag
|
|
187
|
+
* (BCP47).
|
|
188
|
+
* @minProperties 1
|
|
189
|
+
*/
|
|
190
|
+
translations?: {
|
|
191
|
+
/**
|
|
192
|
+
* @patternProperties ^[a-z]{2}-[A-Z]{2}$
|
|
193
|
+
* @minProperties 1
|
|
194
|
+
*/
|
|
195
|
+
[localeId: string]: {
|
|
196
|
+
/**
|
|
197
|
+
* A note, appended to the generated string in parenthesis.
|
|
198
|
+
*/
|
|
199
|
+
note?: {
|
|
200
|
+
/**
|
|
201
|
+
* The full note.
|
|
202
|
+
* @minLength 1
|
|
203
|
+
*/
|
|
204
|
+
default: string;
|
|
205
|
+
/**
|
|
206
|
+
* A compressed note, if applicable. If not specified it should not
|
|
207
|
+
* be displayed in small location.
|
|
208
|
+
* @minLength 1
|
|
209
|
+
*/
|
|
210
|
+
compressed?: string;
|
|
211
|
+
};
|
|
212
|
+
};
|
|
213
|
+
};
|
|
183
214
|
};
|
|
184
215
|
/**
|
|
185
216
|
* The duration.
|
|
@@ -227,6 +258,35 @@ declare type PerformanceParameters = {
|
|
|
227
258
|
* Half of the AE cost `value` has to be paid each interval.
|
|
228
259
|
*/
|
|
229
260
|
interval: Duration.UnitValue;
|
|
261
|
+
/**
|
|
262
|
+
* All translations for the entry, identified by IETF language tag
|
|
263
|
+
* (BCP47).
|
|
264
|
+
* @minProperties 1
|
|
265
|
+
*/
|
|
266
|
+
translations?: {
|
|
267
|
+
/**
|
|
268
|
+
* @patternProperties ^[a-z]{2}-[A-Z]{2}$
|
|
269
|
+
* @minProperties 1
|
|
270
|
+
*/
|
|
271
|
+
[localeId: string]: {
|
|
272
|
+
/**
|
|
273
|
+
* A note, appended to the generated string in parenthesis.
|
|
274
|
+
*/
|
|
275
|
+
note?: {
|
|
276
|
+
/**
|
|
277
|
+
* The full note.
|
|
278
|
+
* @minLength 1
|
|
279
|
+
*/
|
|
280
|
+
default: string;
|
|
281
|
+
/**
|
|
282
|
+
* A compressed note, if applicable. If not specified it should not
|
|
283
|
+
* be displayed in small location.
|
|
284
|
+
* @minLength 1
|
|
285
|
+
*/
|
|
286
|
+
compressed?: string;
|
|
287
|
+
};
|
|
288
|
+
};
|
|
289
|
+
};
|
|
230
290
|
};
|
|
231
291
|
};
|
|
232
292
|
export declare const validateSchema: import("../../validation/schema.js").TypeValidator<AnimistPower>;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "optolith-database-schema",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.20",
|
|
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",
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
"$ref": "#/definitions/Service",
|
|
5
5
|
"definitions": {
|
|
6
6
|
"Service": {
|
|
7
|
-
"title": "Service of Summoned Creatures",
|
|
7
|
+
"title": "Service of Summoned Creatures and Monstrosities",
|
|
8
8
|
"type": "object",
|
|
9
9
|
"properties": {
|
|
10
10
|
"id": {
|
|
@@ -12,6 +12,40 @@
|
|
|
12
12
|
"type": "integer",
|
|
13
13
|
"minimum": 1
|
|
14
14
|
},
|
|
15
|
+
"availability": {
|
|
16
|
+
"description": "Defines for which creature type(s) the service is available.",
|
|
17
|
+
"type": "array",
|
|
18
|
+
"items": {
|
|
19
|
+
"oneOf": [
|
|
20
|
+
{
|
|
21
|
+
"type": "object",
|
|
22
|
+
"properties": {
|
|
23
|
+
"tag": {
|
|
24
|
+
"const": "SummonedCreatures"
|
|
25
|
+
}
|
|
26
|
+
},
|
|
27
|
+
"required": [
|
|
28
|
+
"tag"
|
|
29
|
+
],
|
|
30
|
+
"additionalProperties": false
|
|
31
|
+
},
|
|
32
|
+
{
|
|
33
|
+
"type": "object",
|
|
34
|
+
"properties": {
|
|
35
|
+
"tag": {
|
|
36
|
+
"const": "Monstrosities"
|
|
37
|
+
}
|
|
38
|
+
},
|
|
39
|
+
"required": [
|
|
40
|
+
"tag"
|
|
41
|
+
],
|
|
42
|
+
"additionalProperties": false
|
|
43
|
+
}
|
|
44
|
+
]
|
|
45
|
+
},
|
|
46
|
+
"minItems": 1,
|
|
47
|
+
"uniqueItems": true
|
|
48
|
+
},
|
|
15
49
|
"src": {
|
|
16
50
|
"$ref": "./source/_PublicationRef.schema.json#/definitions/PublicationRefs"
|
|
17
51
|
},
|
|
@@ -49,6 +83,7 @@
|
|
|
49
83
|
},
|
|
50
84
|
"required": [
|
|
51
85
|
"id",
|
|
86
|
+
"availability",
|
|
52
87
|
"src",
|
|
53
88
|
"translations"
|
|
54
89
|
],
|
|
@@ -922,11 +922,19 @@
|
|
|
922
922
|
"tag": {
|
|
923
923
|
"const": "Modifiable"
|
|
924
924
|
},
|
|
925
|
+
"is_maximum": {
|
|
926
|
+
"description": "If `true`, the range is a maximum range.",
|
|
927
|
+
"const": true
|
|
928
|
+
},
|
|
925
929
|
"initial_modification_level": {
|
|
926
930
|
"description": "The initial skill modification identifier/level.",
|
|
927
931
|
"type": "integer",
|
|
928
932
|
"maximum": 6,
|
|
929
933
|
"minimum": 1
|
|
934
|
+
},
|
|
935
|
+
"is_radius": {
|
|
936
|
+
"description": "If `true`, the range is a radius.",
|
|
937
|
+
"const": true
|
|
930
938
|
}
|
|
931
939
|
},
|
|
932
940
|
"required": [
|
|
@@ -978,6 +986,10 @@
|
|
|
978
986
|
"tag": {
|
|
979
987
|
"const": "Fixed"
|
|
980
988
|
},
|
|
989
|
+
"is_maximum": {
|
|
990
|
+
"description": "If `true`, the range is a maximum range.",
|
|
991
|
+
"const": true
|
|
992
|
+
},
|
|
981
993
|
"value": {
|
|
982
994
|
"description": "The (unitless) range value.",
|
|
983
995
|
"type": "integer",
|
|
@@ -986,6 +998,10 @@
|
|
|
986
998
|
"unit": {
|
|
987
999
|
"description": "The unit of the `value`.",
|
|
988
1000
|
"$ref": "#/definitions/Range/Unit"
|
|
1001
|
+
},
|
|
1002
|
+
"is_radius": {
|
|
1003
|
+
"description": "If `true`, the range is a radius.",
|
|
1004
|
+
"const": true
|
|
989
1005
|
}
|
|
990
1006
|
},
|
|
991
1007
|
"required": [
|
|
@@ -1001,6 +1017,10 @@
|
|
|
1001
1017
|
"tag": {
|
|
1002
1018
|
"const": "CheckResultBased"
|
|
1003
1019
|
},
|
|
1020
|
+
"is_maximum": {
|
|
1021
|
+
"description": "If `true`, the range is a maximum range.",
|
|
1022
|
+
"const": true
|
|
1023
|
+
},
|
|
1004
1024
|
"base": {
|
|
1005
1025
|
"description": "The base value that is derived from the check result.",
|
|
1006
1026
|
"$ref": "#/definitions/Duration/CheckResultValue"
|
|
@@ -1028,6 +1048,10 @@
|
|
|
1028
1048
|
"unit": {
|
|
1029
1049
|
"description": "The range unit.",
|
|
1030
1050
|
"$ref": "#/definitions/Range/Unit"
|
|
1051
|
+
},
|
|
1052
|
+
"is_radius": {
|
|
1053
|
+
"description": "If `true`, the range is a radius.",
|
|
1054
|
+
"const": true
|
|
1031
1055
|
}
|
|
1032
1056
|
},
|
|
1033
1057
|
"required": [
|
|
@@ -109,6 +109,9 @@
|
|
|
109
109
|
}
|
|
110
110
|
]
|
|
111
111
|
},
|
|
112
|
+
"prerequisites": {
|
|
113
|
+
"$ref": "../_Prerequisite.schema.json#/definitions/AnimistPowerPrerequisites"
|
|
114
|
+
},
|
|
112
115
|
"levels": {
|
|
113
116
|
"description": "The animist power can have multiple levels. Each level is skilled\nseparately. A previous level must be on at least 10 so that the next higher\nlevel can be activated and skilled. A higher level cannot be skilled higher\nthan a lower level. Each level also adds an effect text to the text of the\nfirst level.",
|
|
114
117
|
"type": "array",
|
|
@@ -287,6 +290,42 @@
|
|
|
287
290
|
"interval": {
|
|
288
291
|
"description": "If defined, half of the AE cost `value` has to be paid each\ninterval.",
|
|
289
292
|
"$ref": "../_ActivatableSkill.schema.json#/definitions/Duration/UnitValue"
|
|
293
|
+
},
|
|
294
|
+
"translations": {
|
|
295
|
+
"description": "All translations for the entry, identified by IETF language tag\n(BCP47).",
|
|
296
|
+
"type": "object",
|
|
297
|
+
"patternProperties": {
|
|
298
|
+
"^[a-z]{2}-[A-Z]{2}$": {
|
|
299
|
+
"type": "object",
|
|
300
|
+
"properties": {
|
|
301
|
+
"note": {
|
|
302
|
+
"description": "A note, appended to the generated string in parenthesis.",
|
|
303
|
+
"type": "object",
|
|
304
|
+
"properties": {
|
|
305
|
+
"default": {
|
|
306
|
+
"description": "The full note.",
|
|
307
|
+
"type": "string",
|
|
308
|
+
"minLength": 1
|
|
309
|
+
},
|
|
310
|
+
"compressed": {
|
|
311
|
+
"description": "A compressed note, if applicable. If not specified it should not\nbe displayed in small location.",
|
|
312
|
+
"type": "string",
|
|
313
|
+
"minLength": 1
|
|
314
|
+
}
|
|
315
|
+
},
|
|
316
|
+
"required": [
|
|
317
|
+
"default"
|
|
318
|
+
],
|
|
319
|
+
"additionalProperties": false
|
|
320
|
+
}
|
|
321
|
+
},
|
|
322
|
+
"required": [],
|
|
323
|
+
"minProperties": 1,
|
|
324
|
+
"additionalProperties": false
|
|
325
|
+
}
|
|
326
|
+
},
|
|
327
|
+
"minProperties": 1,
|
|
328
|
+
"additionalProperties": false
|
|
290
329
|
}
|
|
291
330
|
},
|
|
292
331
|
"required": [
|
|
@@ -392,6 +431,42 @@
|
|
|
392
431
|
"interval": {
|
|
393
432
|
"description": "Half of the AE cost `value` has to be paid each interval.",
|
|
394
433
|
"$ref": "../_ActivatableSkill.schema.json#/definitions/Duration/UnitValue"
|
|
434
|
+
},
|
|
435
|
+
"translations": {
|
|
436
|
+
"description": "All translations for the entry, identified by IETF language tag\n(BCP47).",
|
|
437
|
+
"type": "object",
|
|
438
|
+
"patternProperties": {
|
|
439
|
+
"^[a-z]{2}-[A-Z]{2}$": {
|
|
440
|
+
"type": "object",
|
|
441
|
+
"properties": {
|
|
442
|
+
"note": {
|
|
443
|
+
"description": "A note, appended to the generated string in parenthesis.",
|
|
444
|
+
"type": "object",
|
|
445
|
+
"properties": {
|
|
446
|
+
"default": {
|
|
447
|
+
"description": "The full note.",
|
|
448
|
+
"type": "string",
|
|
449
|
+
"minLength": 1
|
|
450
|
+
},
|
|
451
|
+
"compressed": {
|
|
452
|
+
"description": "A compressed note, if applicable. If not specified it should not\nbe displayed in small location.",
|
|
453
|
+
"type": "string",
|
|
454
|
+
"minLength": 1
|
|
455
|
+
}
|
|
456
|
+
},
|
|
457
|
+
"required": [
|
|
458
|
+
"default"
|
|
459
|
+
],
|
|
460
|
+
"additionalProperties": false
|
|
461
|
+
}
|
|
462
|
+
},
|
|
463
|
+
"required": [],
|
|
464
|
+
"minProperties": 1,
|
|
465
|
+
"additionalProperties": false
|
|
466
|
+
}
|
|
467
|
+
},
|
|
468
|
+
"minProperties": 1,
|
|
469
|
+
"additionalProperties": false
|
|
395
470
|
}
|
|
396
471
|
},
|
|
397
472
|
"required": [
|