optolith-database-schema 0.21.0 → 0.21.1
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 +14 -0
- package/gen/types.d.ts +37 -12
- package/lib/types/Disease.d.ts +45 -18
- package/lib/types/Disease.js +6 -1
- package/lib/types/equipment/item/MagicalArtifact.d.ts +102 -0
- package/lib/types/equipment/item/MagicalArtifact.js +9 -1
- package/lib/types/equipment/item/Vehicle.d.ts +8 -0
- package/lib/types/equipment/item/Vehicle.js +10 -2
- package/lib/types/equipment/item/_RangedWeapon.js +3 -3
- package/package.json +3 -3
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,20 @@
|
|
|
2
2
|
|
|
3
3
|
All notable changes to this project will be documented in this file. See [commit-and-tag-version](https://github.com/absolute-version/commit-and-tag-version) for commit guidelines.
|
|
4
4
|
|
|
5
|
+
## [0.21.1](https://github.com/elyukai/optolith-database-schema/compare/v0.21.0...v0.21.1) (2025-11-27)
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
### Features
|
|
9
|
+
|
|
10
|
+
* add trade secret option for diseases ([da69a79](https://github.com/elyukai/optolith-database-schema/commit/da69a793a65e7737505c4ff140f6be2132119d6c))
|
|
11
|
+
* add weight and complexity options to vehicles ([bfbf0c0](https://github.com/elyukai/optolith-database-schema/commit/bfbf0c017f0e7bd08bf0ebebe189a862796831ce)), closes [#59](https://github.com/elyukai/optolith-database-schema/issues/59)
|
|
12
|
+
* magical artifacts may define complexity and combat uses ([0a86d73](https://github.com/elyukai/optolith-database-schema/commit/0a86d7396b2fddd977e214ab8be283dd31353292)), closes [#62](https://github.com/elyukai/optolith-database-schema/issues/62)
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
### Bug Fixes
|
|
16
|
+
|
|
17
|
+
* ranged weapons may have a range of 0 ([fb34438](https://github.com/elyukai/optolith-database-schema/commit/fb3443816195b3079362d07c9bb3a261f98609c8)), closes [#63](https://github.com/elyukai/optolith-database-schema/issues/63)
|
|
18
|
+
|
|
5
19
|
## [0.21.0](https://github.com/elyukai/optolith-database-schema/compare/v0.20.6...v0.21.0) (2025-11-21)
|
|
6
20
|
|
|
7
21
|
|
package/gen/types.d.ts
CHANGED
|
@@ -19241,6 +19241,11 @@ export interface Disease {
|
|
|
19241
19241
|
*/
|
|
19242
19242
|
cause: Cause[]
|
|
19243
19243
|
|
|
19244
|
+
/**
|
|
19245
|
+
* AP value and prerequisites of the disease’s trade secret.
|
|
19246
|
+
*/
|
|
19247
|
+
trade_secret?: RecipeTradeSecret
|
|
19248
|
+
|
|
19244
19249
|
/**
|
|
19245
19250
|
* All translations for the entry, identified by IETF language tag (BCP47).
|
|
19246
19251
|
*/
|
|
@@ -19308,6 +19313,18 @@ export interface DiseaseTranslation {
|
|
|
19308
19313
|
errata?: Errata
|
|
19309
19314
|
}
|
|
19310
19315
|
|
|
19316
|
+
export interface RecipeTradeSecret {
|
|
19317
|
+
/**
|
|
19318
|
+
* The AP value of the trade secret.
|
|
19319
|
+
*/
|
|
19320
|
+
ap_value: number
|
|
19321
|
+
|
|
19322
|
+
/**
|
|
19323
|
+
* The prerequisites of the trade secret, if any.
|
|
19324
|
+
*/
|
|
19325
|
+
prerequisites?: PlainGeneralPrerequisites
|
|
19326
|
+
}
|
|
19327
|
+
|
|
19311
19328
|
export interface Elixir {
|
|
19312
19329
|
/**
|
|
19313
19330
|
* Effect type(s) of an alchemical poison.
|
|
@@ -19428,18 +19445,6 @@ export type LaboratoryLevel =
|
|
|
19428
19445
|
kind: "AlchemistsLaboratory"
|
|
19429
19446
|
}
|
|
19430
19447
|
|
|
19431
|
-
export interface RecipeTradeSecret {
|
|
19432
|
-
/**
|
|
19433
|
-
* The AP value of the trade secret.
|
|
19434
|
-
*/
|
|
19435
|
-
ap_value: number
|
|
19436
|
-
|
|
19437
|
-
/**
|
|
19438
|
-
* The prerequisites of the trade secret, if any.
|
|
19439
|
-
*/
|
|
19440
|
-
prerequisites?: PlainGeneralPrerequisites
|
|
19441
|
-
}
|
|
19442
|
-
|
|
19443
19448
|
export interface EquipmentOfBlessedOnes {
|
|
19444
19449
|
/**
|
|
19445
19450
|
* The cost in silverthalers.
|
|
@@ -20178,6 +20183,16 @@ export interface MagicalArtifact {
|
|
|
20178
20183
|
*/
|
|
20179
20184
|
weight?: Weight
|
|
20180
20185
|
|
|
20186
|
+
/**
|
|
20187
|
+
* The complexity of crafting the item.
|
|
20188
|
+
*/
|
|
20189
|
+
complexity?: Complexity
|
|
20190
|
+
|
|
20191
|
+
/**
|
|
20192
|
+
* The item can also be used either as an improvised weapon or as an armor, although this is not the primary use case of the item.
|
|
20193
|
+
*/
|
|
20194
|
+
combat_use?: CombatUse
|
|
20195
|
+
|
|
20181
20196
|
/**
|
|
20182
20197
|
* All translations for the entry, identified by IETF language tag (BCP47).
|
|
20183
20198
|
*/
|
|
@@ -21239,6 +21254,16 @@ export interface Vehicle {
|
|
|
21239
21254
|
*/
|
|
21240
21255
|
cost: Cost
|
|
21241
21256
|
|
|
21257
|
+
/**
|
|
21258
|
+
* The weight in kg.
|
|
21259
|
+
*/
|
|
21260
|
+
weight?: Weight
|
|
21261
|
+
|
|
21262
|
+
/**
|
|
21263
|
+
* The complexity of crafting the item.
|
|
21264
|
+
*/
|
|
21265
|
+
complexity?: Complexity
|
|
21266
|
+
|
|
21242
21267
|
/**
|
|
21243
21268
|
* All translations for the entry, identified by IETF language tag (BCP47).
|
|
21244
21269
|
*/
|
package/lib/types/Disease.d.ts
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
|
-
import { Entity, Object } from "tsondb/schema/def";
|
|
1
|
+
import { Entity, IncludeIdentifier, Object } from "tsondb/schema/def";
|
|
2
2
|
export declare const Disease: Entity<"Disease", {
|
|
3
3
|
level: import("tsondb/schema/def").MemberDecl<import("tsondb/schema/def").IntegerType, true>;
|
|
4
|
-
resistance: import("tsondb/schema/def").MemberDecl<
|
|
4
|
+
resistance: import("tsondb/schema/def").MemberDecl<IncludeIdentifier<[], import("tsondb/schema/def").EnumDecl<"Resistance", {
|
|
5
5
|
Spirit: import("tsondb/schema/def").EnumCaseDecl<null>;
|
|
6
6
|
Toughness: import("tsondb/schema/def").EnumCaseDecl<null>;
|
|
7
7
|
LowerOfSpiritAndToughness: import("tsondb/schema/def").EnumCaseDecl<null>;
|
|
8
8
|
}, []>>, true>;
|
|
9
|
-
cause: import("tsondb/schema/def").MemberDecl<import("tsondb/schema/def").ArrayType<
|
|
9
|
+
cause: import("tsondb/schema/def").MemberDecl<import("tsondb/schema/def").ArrayType<IncludeIdentifier<[], import("tsondb/schema/def").TypeAliasDecl<"Cause", Object<{
|
|
10
10
|
chance: import("tsondb/schema/def").MemberDecl<import("tsondb/schema/def").IntegerType, false>;
|
|
11
11
|
translations: import("tsondb/schema/def").MemberDecl<import("tsondb/schema/def").NestedEntityMapType<"CauseTranslation", {
|
|
12
12
|
name: import("tsondb/schema/def").MemberDecl<import("tsondb/schema/def").StringType, true>;
|
|
@@ -14,41 +14,68 @@ export declare const Disease: Entity<"Disease", {
|
|
|
14
14
|
note: import("tsondb/schema/def").MemberDecl<import("tsondb/schema/def").StringType, false>;
|
|
15
15
|
}>, true>;
|
|
16
16
|
}>, []>>>, true>;
|
|
17
|
-
|
|
17
|
+
trade_secret: import("tsondb/schema/def").MemberDecl<IncludeIdentifier<[], import("tsondb/schema/def").TypeAliasDecl<"RecipeTradeSecret", Object<{
|
|
18
|
+
ap_value: import("tsondb/schema/def").MemberDecl<import("tsondb/schema/def").IntegerType, true>;
|
|
19
|
+
prerequisites: import("tsondb/schema/def").MemberDecl<IncludeIdentifier<[], import("tsondb/schema/def").TypeAliasDecl<"PlainGeneralPrerequisites", IncludeIdentifier<import("tsondb/schema/def").TypeParameter<string, import("tsondb/schema/def").Type>[], import("tsondb/schema/def").TypeAliasDecl<"PlainPrerequisites", import("tsondb/schema/def").ArrayType<IncludeIdentifier<import("tsondb/schema/def").TypeParameter<string, import("tsondb/schema/def").Type>[], import("tsondb/schema/def").EnumDecl<"PrerequisitesElement", {
|
|
20
|
+
Single: import("tsondb/schema/def").EnumCaseDecl<import("tsondb/schema/def").TypeArgumentType<import("tsondb/schema/def").TypeParameter<"T", import("tsondb/schema/def").Type>>>;
|
|
21
|
+
Disjunction: import("tsondb/schema/def").EnumCaseDecl<IncludeIdentifier<import("tsondb/schema/def").TypeParameter<string, import("tsondb/schema/def").Type>[], import("tsondb/schema/def").TypeAliasDecl<"PrerequisitesDisjunction", Object<{
|
|
22
|
+
list: import("tsondb/schema/def").MemberDecl<import("tsondb/schema/def").ArrayType<import("tsondb/schema/def").TypeArgumentType<import("tsondb/schema/def").TypeParameter<"T", import("tsondb/schema/def").Type>>>, true>;
|
|
23
|
+
display_option: import("tsondb/schema/def").MemberDecl<IncludeIdentifier<[], import("tsondb/schema/def").EnumDecl<"DisplayOption", {
|
|
24
|
+
Hide: import("tsondb/schema/def").EnumCaseDecl<null>;
|
|
25
|
+
ReplaceWith: import("tsondb/schema/def").EnumCaseDecl<IncludeIdentifier<[], import("tsondb/schema/def").TypeAliasDecl<"ReplacementDisplayOption", Object<{
|
|
26
|
+
sentence_type: import("tsondb/schema/def").MemberDecl<IncludeIdentifier<[], import("tsondb/schema/def").EnumDecl<"SentenceType", {
|
|
27
|
+
Standalone: import("tsondb/schema/def").EnumCaseDecl<null>;
|
|
28
|
+
Connected: import("tsondb/schema/def").EnumCaseDecl<null>;
|
|
29
|
+
}, []>>, false>;
|
|
30
|
+
translations: import("tsondb/schema/def").MemberDecl<import("tsondb/schema/def").NestedEntityMapType<"ReplacementDisplayOptionTranslation", {
|
|
31
|
+
replacement: import("tsondb/schema/def").MemberDecl<import("tsondb/schema/def").StringType, true>;
|
|
32
|
+
}>, true>;
|
|
33
|
+
}>, []>>>;
|
|
34
|
+
}, []>>, false>;
|
|
35
|
+
}>, [T: import("tsondb/schema/def").TypeParameter<"T", import("tsondb/schema/def").Type>]>>>;
|
|
36
|
+
Group: import("tsondb/schema/def").EnumCaseDecl<IncludeIdentifier<import("tsondb/schema/def").TypeParameter<string, import("tsondb/schema/def").Type>[], import("tsondb/schema/def").TypeAliasDecl<"PrerequisiteGroup", Object<{
|
|
37
|
+
list: import("tsondb/schema/def").MemberDecl<import("tsondb/schema/def").ArrayType<import("tsondb/schema/def").TypeArgumentType<import("tsondb/schema/def").TypeParameter<"T", import("tsondb/schema/def").Type>>>, true>;
|
|
38
|
+
translations: import("tsondb/schema/def").MemberDecl<import("tsondb/schema/def").NestedEntityMapType<"PrerequisiteGroupTranslation", {
|
|
39
|
+
text: import("tsondb/schema/def").MemberDecl<import("tsondb/schema/def").StringType, true>;
|
|
40
|
+
}>, true>;
|
|
41
|
+
}>, [T: import("tsondb/schema/def").TypeParameter<"T", import("tsondb/schema/def").Type>]>>>;
|
|
42
|
+
}, [T: import("tsondb/schema/def").TypeParameter<"T", import("tsondb/schema/def").Type>]>>>, [T: import("tsondb/schema/def").TypeParameter<"T", import("tsondb/schema/def").Type>]>>, []>>, false>;
|
|
43
|
+
}>, []>>, false>;
|
|
44
|
+
src: import("tsondb/schema/def").MemberDecl<IncludeIdentifier<[], import("tsondb/schema/def").TypeAliasDecl<"PublicationRefs", import("tsondb/schema/def").ArrayType<IncludeIdentifier<[], import("tsondb/schema/def").TypeAliasDecl<"PublicationRef", Object<{
|
|
18
45
|
id: import("tsondb/schema/def").MemberDecl<import("tsondb/schema/def").ReferenceIdentifierType, true>;
|
|
19
46
|
occurrences: import("tsondb/schema/def").MemberDecl<import("tsondb/schema/def").NestedEntityMapType<string, {
|
|
20
|
-
initial: import("tsondb/schema/def").MemberDecl<
|
|
47
|
+
initial: import("tsondb/schema/def").MemberDecl<IncludeIdentifier<[], import("tsondb/schema/def").TypeAliasDecl<"InitialOccurrence", Object<{
|
|
21
48
|
printing: import("tsondb/schema/def").MemberDecl<import("tsondb/schema/def").IntegerType, false>;
|
|
22
|
-
pages: import("tsondb/schema/def").MemberDecl<import("tsondb/schema/def").ArrayType<
|
|
23
|
-
first_page: import("tsondb/schema/def").MemberDecl<
|
|
49
|
+
pages: import("tsondb/schema/def").MemberDecl<import("tsondb/schema/def").ArrayType<IncludeIdentifier<[], import("tsondb/schema/def").TypeAliasDecl<"PageRange", Object<{
|
|
50
|
+
first_page: import("tsondb/schema/def").MemberDecl<IncludeIdentifier<[], import("tsondb/schema/def").EnumDecl<"Page", {
|
|
24
51
|
InsideCoverFront: import("tsondb/schema/def").EnumCaseDecl<null>;
|
|
25
52
|
InsideCoverBack: import("tsondb/schema/def").EnumCaseDecl<null>;
|
|
26
53
|
Numbered: import("tsondb/schema/def").EnumCaseDecl<import("tsondb/schema/def").IntegerType>;
|
|
27
54
|
}, []>>, true>;
|
|
28
|
-
last_page: import("tsondb/schema/def").MemberDecl<
|
|
55
|
+
last_page: import("tsondb/schema/def").MemberDecl<IncludeIdentifier<[], import("tsondb/schema/def").EnumDecl<"Page", {
|
|
29
56
|
InsideCoverFront: import("tsondb/schema/def").EnumCaseDecl<null>;
|
|
30
57
|
InsideCoverBack: import("tsondb/schema/def").EnumCaseDecl<null>;
|
|
31
58
|
Numbered: import("tsondb/schema/def").EnumCaseDecl<import("tsondb/schema/def").IntegerType>;
|
|
32
59
|
}, []>>, false>;
|
|
33
60
|
}>, []>>>, true>;
|
|
34
61
|
}>, []>>, true>;
|
|
35
|
-
revisions: import("tsondb/schema/def").MemberDecl<import("tsondb/schema/def").ArrayType<
|
|
36
|
-
Since: import("tsondb/schema/def").EnumCaseDecl<
|
|
62
|
+
revisions: import("tsondb/schema/def").MemberDecl<import("tsondb/schema/def").ArrayType<IncludeIdentifier<[], import("tsondb/schema/def").EnumDecl<"Revision", {
|
|
63
|
+
Since: import("tsondb/schema/def").EnumCaseDecl<IncludeIdentifier<[], import("tsondb/schema/def").TypeAliasDecl<"Since", Object<{
|
|
37
64
|
printing: import("tsondb/schema/def").MemberDecl<import("tsondb/schema/def").IntegerType, true>;
|
|
38
|
-
pages: import("tsondb/schema/def").MemberDecl<import("tsondb/schema/def").ArrayType<
|
|
39
|
-
first_page: import("tsondb/schema/def").MemberDecl<
|
|
65
|
+
pages: import("tsondb/schema/def").MemberDecl<import("tsondb/schema/def").ArrayType<IncludeIdentifier<[], import("tsondb/schema/def").TypeAliasDecl<"PageRange", Object<{
|
|
66
|
+
first_page: import("tsondb/schema/def").MemberDecl<IncludeIdentifier<[], import("tsondb/schema/def").EnumDecl<"Page", {
|
|
40
67
|
InsideCoverFront: import("tsondb/schema/def").EnumCaseDecl<null>;
|
|
41
68
|
InsideCoverBack: import("tsondb/schema/def").EnumCaseDecl<null>;
|
|
42
69
|
Numbered: import("tsondb/schema/def").EnumCaseDecl<import("tsondb/schema/def").IntegerType>;
|
|
43
70
|
}, []>>, true>;
|
|
44
|
-
last_page: import("tsondb/schema/def").MemberDecl<
|
|
71
|
+
last_page: import("tsondb/schema/def").MemberDecl<IncludeIdentifier<[], import("tsondb/schema/def").EnumDecl<"Page", {
|
|
45
72
|
InsideCoverFront: import("tsondb/schema/def").EnumCaseDecl<null>;
|
|
46
73
|
InsideCoverBack: import("tsondb/schema/def").EnumCaseDecl<null>;
|
|
47
74
|
Numbered: import("tsondb/schema/def").EnumCaseDecl<import("tsondb/schema/def").IntegerType>;
|
|
48
75
|
}, []>>, false>;
|
|
49
76
|
}>, []>>>, true>;
|
|
50
77
|
}>, []>>>;
|
|
51
|
-
Deprecated: import("tsondb/schema/def").EnumCaseDecl<
|
|
78
|
+
Deprecated: import("tsondb/schema/def").EnumCaseDecl<IncludeIdentifier<[], import("tsondb/schema/def").TypeAliasDecl<"Deprecation", Object<{
|
|
52
79
|
printing: import("tsondb/schema/def").MemberDecl<import("tsondb/schema/def").IntegerType, true>;
|
|
53
80
|
}>, []>>>;
|
|
54
81
|
}, []>>>, false>;
|
|
@@ -56,24 +83,24 @@ export declare const Disease: Entity<"Disease", {
|
|
|
56
83
|
}>, []>>>, []>>, true>;
|
|
57
84
|
translations: import("tsondb/schema/def").MemberDecl<import("tsondb/schema/def").NestedEntityMapType<"DiseaseTranslation", {
|
|
58
85
|
name: import("tsondb/schema/def").MemberDecl<import("tsondb/schema/def").StringType, true>;
|
|
59
|
-
alternative_names: import("tsondb/schema/def").MemberDecl<import("tsondb/schema/def").ArrayType<
|
|
86
|
+
alternative_names: import("tsondb/schema/def").MemberDecl<import("tsondb/schema/def").ArrayType<IncludeIdentifier<[], import("tsondb/schema/def").TypeAliasDecl<"AlternativeName", Object<{
|
|
60
87
|
name: import("tsondb/schema/def").MemberDecl<import("tsondb/schema/def").StringType, true>;
|
|
61
88
|
region: import("tsondb/schema/def").MemberDecl<import("tsondb/schema/def").StringType, false>;
|
|
62
89
|
}>, []>>>, false>;
|
|
63
90
|
progress: import("tsondb/schema/def").MemberDecl<import("tsondb/schema/def").StringType, true>;
|
|
64
91
|
incubation_time: import("tsondb/schema/def").MemberDecl<import("tsondb/schema/def").StringType, true>;
|
|
65
|
-
damage: import("tsondb/schema/def").MemberDecl<
|
|
92
|
+
damage: import("tsondb/schema/def").MemberDecl<IncludeIdentifier<import("tsondb/schema/def").TypeParameter<string, import("tsondb/schema/def").Type>[], import("tsondb/schema/def").TypeAliasDecl<"Reduceable", Object<{
|
|
66
93
|
default: import("tsondb/schema/def").MemberDecl<import("tsondb/schema/def").TypeArgumentType<import("tsondb/schema/def").TypeParameter<"Content", import("tsondb/schema/def").Type>>, true>;
|
|
67
94
|
reduced: import("tsondb/schema/def").MemberDecl<import("tsondb/schema/def").TypeArgumentType<import("tsondb/schema/def").TypeParameter<"Content", import("tsondb/schema/def").Type>>, false>;
|
|
68
95
|
}>, [Content: import("tsondb/schema/def").TypeParameter<"Content", import("tsondb/schema/def").Type>]>>, true>;
|
|
69
|
-
duration: import("tsondb/schema/def").MemberDecl<
|
|
96
|
+
duration: import("tsondb/schema/def").MemberDecl<IncludeIdentifier<import("tsondb/schema/def").TypeParameter<string, import("tsondb/schema/def").Type>[], import("tsondb/schema/def").TypeAliasDecl<"Reduceable", Object<{
|
|
70
97
|
default: import("tsondb/schema/def").MemberDecl<import("tsondb/schema/def").TypeArgumentType<import("tsondb/schema/def").TypeParameter<"Content", import("tsondb/schema/def").Type>>, true>;
|
|
71
98
|
reduced: import("tsondb/schema/def").MemberDecl<import("tsondb/schema/def").TypeArgumentType<import("tsondb/schema/def").TypeParameter<"Content", import("tsondb/schema/def").Type>>, false>;
|
|
72
99
|
}>, [Content: import("tsondb/schema/def").TypeParameter<"Content", import("tsondb/schema/def").Type>]>>, true>;
|
|
73
100
|
special: import("tsondb/schema/def").MemberDecl<import("tsondb/schema/def").StringType, false>;
|
|
74
101
|
treatment: import("tsondb/schema/def").MemberDecl<import("tsondb/schema/def").StringType, true>;
|
|
75
102
|
cure: import("tsondb/schema/def").MemberDecl<import("tsondb/schema/def").StringType, true>;
|
|
76
|
-
errata: import("tsondb/schema/def").MemberDecl<
|
|
103
|
+
errata: import("tsondb/schema/def").MemberDecl<IncludeIdentifier<[], import("tsondb/schema/def").TypeAliasDecl<"Errata", import("tsondb/schema/def").ArrayType<IncludeIdentifier<[], import("tsondb/schema/def").TypeAliasDecl<"Erratum", Object<{
|
|
77
104
|
date: import("tsondb/schema/def").MemberDecl<import("tsondb/schema/def").DateType, true>;
|
|
78
105
|
description: import("tsondb/schema/def").MemberDecl<import("tsondb/schema/def").StringType, true>;
|
|
79
106
|
}>, []>>>, []>>, false>;
|
package/lib/types/Disease.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
|
-
import { Entity, Object, Required } from "tsondb/schema/def";
|
|
1
|
+
import { Entity, IncludeIdentifier, Object, Optional, Required } from "tsondb/schema/def";
|
|
2
2
|
import { NestedTranslationMap } from "./Locale.js";
|
|
3
3
|
import { cause, DiseaseTranslation, level, resistance } from "./_DiseasePoison.js";
|
|
4
|
+
import { RecipeTradeSecret } from "./equipment/item/_Herbary.js";
|
|
4
5
|
import { src } from "./source/_PublicationRef.js";
|
|
5
6
|
export const Disease = Entity(import.meta.url, {
|
|
6
7
|
name: "Disease",
|
|
@@ -9,6 +10,10 @@ export const Disease = Entity(import.meta.url, {
|
|
|
9
10
|
level,
|
|
10
11
|
resistance,
|
|
11
12
|
cause,
|
|
13
|
+
trade_secret: Optional({
|
|
14
|
+
comment: "AP value and prerequisites of the disease’s trade secret.",
|
|
15
|
+
type: IncludeIdentifier(RecipeTradeSecret),
|
|
16
|
+
}),
|
|
12
17
|
src,
|
|
13
18
|
translations: NestedTranslationMap(Required, "Disease", DiseaseTranslation),
|
|
14
19
|
}),
|
|
@@ -19,6 +19,108 @@ export declare const MagicalArtifact: Entity<"MagicalArtifact", {
|
|
|
19
19
|
}>, []>>>;
|
|
20
20
|
}, []>>, true>;
|
|
21
21
|
weight: import("tsondb/schema/def").MemberDecl<IncludeIdentifier<[], import("tsondb/schema/def").TypeAliasDecl<"Weight", import("tsondb/schema/def").FloatType, []>>, false>;
|
|
22
|
+
complexity: import("tsondb/schema/def").MemberDecl<IncludeIdentifier<[], import("tsondb/schema/def").EnumDecl<"Complexity", {
|
|
23
|
+
Primitive: import("tsondb/schema/def").EnumCaseDecl<null>;
|
|
24
|
+
Simple: import("tsondb/schema/def").EnumCaseDecl<null>;
|
|
25
|
+
Complex: import("tsondb/schema/def").EnumCaseDecl<IncludeIdentifier<[], import("tsondb/schema/def").TypeAliasDecl<"ComplexComplexity", Object<{
|
|
26
|
+
ap_value: import("tsondb/schema/def").MemberDecl<import("tsondb/schema/def").IntegerType, true>;
|
|
27
|
+
}>, []>>>;
|
|
28
|
+
}, []>>, false>;
|
|
29
|
+
combat_use: import("tsondb/schema/def").MemberDecl<IncludeIdentifier<[], import("tsondb/schema/def").EnumDecl<"CombatUse", {
|
|
30
|
+
Weapon: import("tsondb/schema/def").EnumCaseDecl<IncludeIdentifier<[], import("tsondb/schema/def").TypeAliasDecl<"ImprovisedWeapon", Object<{
|
|
31
|
+
melee_uses: import("tsondb/schema/def").MemberDecl<import("tsondb/schema/def").NestedEntityMapType<string, {
|
|
32
|
+
damage: import("tsondb/schema/def").MemberDecl<IncludeIdentifier<[], import("tsondb/schema/def").TypeAliasDecl<"MeleeDamage", Object<{
|
|
33
|
+
dice: import("tsondb/schema/def").MemberDecl<IncludeIdentifier<[], import("tsondb/schema/def").TypeAliasDecl<"Dice", Object<{
|
|
34
|
+
number: import("tsondb/schema/def").MemberDecl<import("tsondb/schema/def").IntegerType, true>;
|
|
35
|
+
sides: import("tsondb/schema/def").MemberDecl<IncludeIdentifier<[], import("tsondb/schema/def").TypeAliasDecl<"DieType", import("tsondb/schema/def").IntegerType, []>>, true>;
|
|
36
|
+
}>, []>>, true>;
|
|
37
|
+
flat: import("tsondb/schema/def").MemberDecl<import("tsondb/schema/def").IntegerType, false>;
|
|
38
|
+
}>, []>>, true>;
|
|
39
|
+
damage_threshold: import("tsondb/schema/def").MemberDecl<IncludeIdentifier<[], import("tsondb/schema/def").EnumDecl<"PrimaryAttributeDamageThreshold", {
|
|
40
|
+
Default: import("tsondb/schema/def").EnumCaseDecl<IncludeIdentifier<[], import("tsondb/schema/def").TypeAliasDecl<"DefaultPrimaryAttributeDamageThreshold", Object<{
|
|
41
|
+
threshold: import("tsondb/schema/def").MemberDecl<import("tsondb/schema/def").IntegerType, true>;
|
|
42
|
+
}>, []>>>;
|
|
43
|
+
List: import("tsondb/schema/def").EnumCaseDecl<IncludeIdentifier<[], import("tsondb/schema/def").TypeAliasDecl<"PrimaryAttributeDamageThresholdList", Object<{
|
|
44
|
+
list: import("tsondb/schema/def").MemberDecl<import("tsondb/schema/def").ArrayType<IncludeIdentifier<[], import("tsondb/schema/def").TypeAliasDecl<"SinglePrimaryAttributeDamageThreshold", Object<{
|
|
45
|
+
attribute: import("tsondb/schema/def").MemberDecl<import("tsondb/schema/def").ReferenceIdentifierType, true>;
|
|
46
|
+
threshold: import("tsondb/schema/def").MemberDecl<import("tsondb/schema/def").IntegerType, true>;
|
|
47
|
+
}>, []>>>, true>;
|
|
48
|
+
}>, []>>>;
|
|
49
|
+
}, []>>, false>;
|
|
50
|
+
attackModifier: import("tsondb/schema/def").MemberDecl<IncludeIdentifier<[], import("tsondb/schema/def").TypeAliasDecl<"AttackModifier", import("tsondb/schema/def").IntegerType, []>>, false>;
|
|
51
|
+
parryModifier: import("tsondb/schema/def").MemberDecl<IncludeIdentifier<[], import("tsondb/schema/def").TypeAliasDecl<"ParryModifier", import("tsondb/schema/def").IntegerType, []>>, false>;
|
|
52
|
+
reach: import("tsondb/schema/def").MemberDecl<import("tsondb/schema/def").ReferenceIdentifierType, false>;
|
|
53
|
+
length: import("tsondb/schema/def").MemberDecl<IncludeIdentifier<[], import("tsondb/schema/def").TypeAliasDecl<"Length", import("tsondb/schema/def").IntegerType, []>>, false>;
|
|
54
|
+
size: import("tsondb/schema/def").MemberDecl<IncludeIdentifier<[], import("tsondb/schema/def").EnumDecl<"ShieldSize", {
|
|
55
|
+
Small: import("tsondb/schema/def").EnumCaseDecl<null>;
|
|
56
|
+
Medium: import("tsondb/schema/def").EnumCaseDecl<null>;
|
|
57
|
+
Large: import("tsondb/schema/def").EnumCaseDecl<IncludeIdentifier<[], import("tsondb/schema/def").TypeAliasDecl<"LargeShieldSize", Object<{
|
|
58
|
+
attack_penalty: import("tsondb/schema/def").MemberDecl<import("tsondb/schema/def").IntegerType, false>;
|
|
59
|
+
}>, []>>>;
|
|
60
|
+
}, []>>, false>;
|
|
61
|
+
is_parrying_weapon: import("tsondb/schema/def").MemberDecl<import("tsondb/schema/def").BooleanType, true>;
|
|
62
|
+
is_two_handed_weapon: import("tsondb/schema/def").MemberDecl<import("tsondb/schema/def").BooleanType, true>;
|
|
63
|
+
is_improvised_weapon: import("tsondb/schema/def").MemberDecl<import("tsondb/schema/def").BooleanType, true>;
|
|
64
|
+
}>, false>;
|
|
65
|
+
ranged_uses: import("tsondb/schema/def").MemberDecl<import("tsondb/schema/def").NestedEntityMapType<string, {
|
|
66
|
+
damage: import("tsondb/schema/def").MemberDecl<IncludeIdentifier<[], import("tsondb/schema/def").EnumDecl<"RangedDamage", {
|
|
67
|
+
Default: import("tsondb/schema/def").EnumCaseDecl<IncludeIdentifier<[], import("tsondb/schema/def").TypeAliasDecl<"DefaultRangedDamage", Object<{
|
|
68
|
+
dice: import("tsondb/schema/def").MemberDecl<IncludeIdentifier<[], import("tsondb/schema/def").TypeAliasDecl<"Dice", Object<{
|
|
69
|
+
number: import("tsondb/schema/def").MemberDecl<import("tsondb/schema/def").IntegerType, true>;
|
|
70
|
+
sides: import("tsondb/schema/def").MemberDecl<IncludeIdentifier<[], import("tsondb/schema/def").TypeAliasDecl<"DieType", import("tsondb/schema/def").IntegerType, []>>, true>;
|
|
71
|
+
}>, []>>, true>;
|
|
72
|
+
flat: import("tsondb/schema/def").MemberDecl<import("tsondb/schema/def").IntegerType, false>;
|
|
73
|
+
}>, []>>>;
|
|
74
|
+
NotApplicable: import("tsondb/schema/def").EnumCaseDecl<null>;
|
|
75
|
+
Special: import("tsondb/schema/def").EnumCaseDecl<null>;
|
|
76
|
+
}, []>>, true>;
|
|
77
|
+
reload_time: import("tsondb/schema/def").MemberDecl<import("tsondb/schema/def").ArrayType<IncludeIdentifier<[], import("tsondb/schema/def").TypeAliasDecl<"ReloadTime", Object<{
|
|
78
|
+
value: import("tsondb/schema/def").MemberDecl<import("tsondb/schema/def").IntegerType, true>;
|
|
79
|
+
}>, []>>>, true>;
|
|
80
|
+
range: import("tsondb/schema/def").MemberDecl<IncludeIdentifier<[], import("tsondb/schema/def").TypeAliasDecl<"RangeBrackets", Object<{
|
|
81
|
+
close: import("tsondb/schema/def").MemberDecl<import("tsondb/schema/def").IntegerType, true>;
|
|
82
|
+
medium: import("tsondb/schema/def").MemberDecl<import("tsondb/schema/def").IntegerType, true>;
|
|
83
|
+
far: import("tsondb/schema/def").MemberDecl<import("tsondb/schema/def").IntegerType, true>;
|
|
84
|
+
}>, []>>, true>;
|
|
85
|
+
ammunition: import("tsondb/schema/def").MemberDecl<import("tsondb/schema/def").ReferenceIdentifierType, false>;
|
|
86
|
+
length: import("tsondb/schema/def").MemberDecl<IncludeIdentifier<[], import("tsondb/schema/def").TypeAliasDecl<"Length", import("tsondb/schema/def").IntegerType, []>>, false>;
|
|
87
|
+
is_improvised_weapon: import("tsondb/schema/def").MemberDecl<import("tsondb/schema/def").BooleanType, true>;
|
|
88
|
+
}>, false>;
|
|
89
|
+
sanctified_by: import("tsondb/schema/def").MemberDecl<IncludeIdentifier<[], import("tsondb/schema/def").TypeAliasDecl<"SanctifiedBy", import("tsondb/schema/def").ArrayType<import("tsondb/schema/def").ReferenceIdentifierType>, []>>, false>;
|
|
90
|
+
restricted_to_cultures: import("tsondb/schema/def").MemberDecl<IncludeIdentifier<[], import("tsondb/schema/def").EnumDecl<"RestrictedToCultures", {
|
|
91
|
+
CulturesOfRace: import("tsondb/schema/def").EnumCaseDecl<import("tsondb/schema/def").ReferenceIdentifierType>;
|
|
92
|
+
Cultures: import("tsondb/schema/def").EnumCaseDecl<IncludeIdentifier<[], import("tsondb/schema/def").TypeAliasDecl<"RestrictedToSpecificCultures", Object<{
|
|
93
|
+
list: import("tsondb/schema/def").MemberDecl<import("tsondb/schema/def").ArrayType<import("tsondb/schema/def").ReferenceIdentifierType>, true>;
|
|
94
|
+
}>, []>>>;
|
|
95
|
+
}, []>>, false>;
|
|
96
|
+
restricted_to_traditions: import("tsondb/schema/def").MemberDecl<import("tsondb/schema/def").ArrayType<import("tsondb/schema/def").ReferenceIdentifierType>, false>;
|
|
97
|
+
translations: import("tsondb/schema/def").MemberDecl<import("tsondb/schema/def").NestedEntityMapType<"ImprovisedWeaponTranslation", {
|
|
98
|
+
advantage: import("tsondb/schema/def").MemberDecl<import("tsondb/schema/def").StringType, false>;
|
|
99
|
+
disadvantage: import("tsondb/schema/def").MemberDecl<import("tsondb/schema/def").StringType, false>;
|
|
100
|
+
}>, false>;
|
|
101
|
+
}>, []>>>;
|
|
102
|
+
Armor: import("tsondb/schema/def").EnumCaseDecl<IncludeIdentifier<[], import("tsondb/schema/def").TypeAliasDecl<"SecondaryArmor", Object<{
|
|
103
|
+
protection: import("tsondb/schema/def").MemberDecl<IncludeIdentifier<[], import("tsondb/schema/def").TypeAliasDecl<"Protection", import("tsondb/schema/def").IntegerType, []>>, true>;
|
|
104
|
+
encumbrance: import("tsondb/schema/def").MemberDecl<IncludeIdentifier<[], import("tsondb/schema/def").TypeAliasDecl<"Encumbrance", import("tsondb/schema/def").IntegerType, []>>, true>;
|
|
105
|
+
has_additional_penalties: import("tsondb/schema/def").MemberDecl<IncludeIdentifier<[], import("tsondb/schema/def").TypeAliasDecl<"HasAdditionalPenalties", import("tsondb/schema/def").BooleanType, []>>, true>;
|
|
106
|
+
armor_type: import("tsondb/schema/def").MemberDecl<import("tsondb/schema/def").ReferenceIdentifierType, true>;
|
|
107
|
+
hit_zone: import("tsondb/schema/def").MemberDecl<IncludeIdentifier<[], import("tsondb/schema/def").EnumDecl<"HitZone", {
|
|
108
|
+
Head: import("tsondb/schema/def").EnumCaseDecl<IncludeIdentifier<[], import("tsondb/schema/def").TypeAliasDecl<"HeadHitZone", Object<{
|
|
109
|
+
combination_possibilities: import("tsondb/schema/def").MemberDecl<IncludeIdentifier<[], import("tsondb/schema/def").TypeAliasDecl<"HeadHitZoneCombinationPossibilities", Object<{
|
|
110
|
+
armors: import("tsondb/schema/def").MemberDecl<import("tsondb/schema/def").ArrayType<import("tsondb/schema/def").ReferenceIdentifierType>, true>;
|
|
111
|
+
protection: import("tsondb/schema/def").MemberDecl<import("tsondb/schema/def").IntegerType, false>;
|
|
112
|
+
}>, []>>, false>;
|
|
113
|
+
}>, []>>>;
|
|
114
|
+
Torso: import("tsondb/schema/def").EnumCaseDecl<null>;
|
|
115
|
+
Arms: import("tsondb/schema/def").EnumCaseDecl<null>;
|
|
116
|
+
Legs: import("tsondb/schema/def").EnumCaseDecl<null>;
|
|
117
|
+
}, []>>, false>;
|
|
118
|
+
translations: import("tsondb/schema/def").MemberDecl<import("tsondb/schema/def").NestedEntityMapType<"SecondaryArmorTranslation", {
|
|
119
|
+
advantage: import("tsondb/schema/def").MemberDecl<import("tsondb/schema/def").StringType, false>;
|
|
120
|
+
disadvantage: import("tsondb/schema/def").MemberDecl<import("tsondb/schema/def").StringType, false>;
|
|
121
|
+
}>, false>;
|
|
122
|
+
}>, []>>>;
|
|
123
|
+
}, []>>, false>;
|
|
22
124
|
src: import("tsondb/schema/def").MemberDecl<IncludeIdentifier<[], import("tsondb/schema/def").TypeAliasDecl<"PublicationRefs", import("tsondb/schema/def").ArrayType<IncludeIdentifier<[], import("tsondb/schema/def").TypeAliasDecl<"PublicationRef", Object<{
|
|
23
125
|
id: import("tsondb/schema/def").MemberDecl<import("tsondb/schema/def").ReferenceIdentifierType, true>;
|
|
24
126
|
occurrences: import("tsondb/schema/def").MemberDecl<import("tsondb/schema/def").NestedEntityMapType<string, {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { Entity, IncludeIdentifier, Object, Optional, Required } from "tsondb/schema/def";
|
|
2
2
|
import { src } from "../../source/_PublicationRef.js";
|
|
3
|
-
import { Cost, DefaultItemTranslations, Weight } from "./_Item.js";
|
|
3
|
+
import { CombatUse, Complexity, Cost, DefaultItemTranslations, Weight } from "./_Item.js";
|
|
4
4
|
export const MagicalArtifact = Entity(import.meta.url, {
|
|
5
5
|
name: "MagicalArtifact",
|
|
6
6
|
namePlural: "MagicalArtifacts",
|
|
@@ -13,6 +13,14 @@ export const MagicalArtifact = Entity(import.meta.url, {
|
|
|
13
13
|
comment: "The weight in kg.",
|
|
14
14
|
type: IncludeIdentifier(Weight),
|
|
15
15
|
}),
|
|
16
|
+
complexity: Optional({
|
|
17
|
+
comment: "The complexity of crafting the item.",
|
|
18
|
+
type: IncludeIdentifier(Complexity),
|
|
19
|
+
}),
|
|
20
|
+
combat_use: Optional({
|
|
21
|
+
comment: "The item can also be used either as an improvised weapon or as an armor, although this is not the primary use case of the item.",
|
|
22
|
+
type: IncludeIdentifier(CombatUse),
|
|
23
|
+
}),
|
|
16
24
|
src,
|
|
17
25
|
translations: DefaultItemTranslations("MagicalArtifact"),
|
|
18
26
|
}),
|
|
@@ -18,6 +18,14 @@ export declare const Vehicle: Entity<"Vehicle", {
|
|
|
18
18
|
}>, false>;
|
|
19
19
|
}>, []>>>;
|
|
20
20
|
}, []>>, true>;
|
|
21
|
+
weight: import("tsondb/schema/def").MemberDecl<IncludeIdentifier<[], import("tsondb/schema/def").TypeAliasDecl<"Weight", import("tsondb/schema/def").FloatType, []>>, false>;
|
|
22
|
+
complexity: import("tsondb/schema/def").MemberDecl<IncludeIdentifier<[], import("tsondb/schema/def").EnumDecl<"Complexity", {
|
|
23
|
+
Primitive: import("tsondb/schema/def").EnumCaseDecl<null>;
|
|
24
|
+
Simple: import("tsondb/schema/def").EnumCaseDecl<null>;
|
|
25
|
+
Complex: import("tsondb/schema/def").EnumCaseDecl<IncludeIdentifier<[], import("tsondb/schema/def").TypeAliasDecl<"ComplexComplexity", Object<{
|
|
26
|
+
ap_value: import("tsondb/schema/def").MemberDecl<import("tsondb/schema/def").IntegerType, true>;
|
|
27
|
+
}>, []>>>;
|
|
28
|
+
}, []>>, false>;
|
|
21
29
|
src: import("tsondb/schema/def").MemberDecl<IncludeIdentifier<[], import("tsondb/schema/def").TypeAliasDecl<"PublicationRefs", import("tsondb/schema/def").ArrayType<IncludeIdentifier<[], import("tsondb/schema/def").TypeAliasDecl<"PublicationRef", Object<{
|
|
22
30
|
id: import("tsondb/schema/def").MemberDecl<import("tsondb/schema/def").ReferenceIdentifierType, true>;
|
|
23
31
|
occurrences: import("tsondb/schema/def").MemberDecl<import("tsondb/schema/def").NestedEntityMapType<string, {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { Entity, IncludeIdentifier, Object, Required } from "tsondb/schema/def";
|
|
1
|
+
import { Entity, IncludeIdentifier, Object, Optional, Required } from "tsondb/schema/def";
|
|
2
2
|
import { src } from "../../source/_PublicationRef.js";
|
|
3
|
-
import { Cost, DefaultItemTranslations } from "./_Item.js";
|
|
3
|
+
import { Complexity, Cost, DefaultItemTranslations, Weight } from "./_Item.js";
|
|
4
4
|
export const Vehicle = Entity(import.meta.url, {
|
|
5
5
|
name: "Vehicle",
|
|
6
6
|
namePlural: "Vehicles",
|
|
@@ -9,6 +9,14 @@ export const Vehicle = Entity(import.meta.url, {
|
|
|
9
9
|
comment: "The cost in silverthalers.",
|
|
10
10
|
type: IncludeIdentifier(Cost),
|
|
11
11
|
}),
|
|
12
|
+
weight: Optional({
|
|
13
|
+
comment: "The weight in kg.",
|
|
14
|
+
type: IncludeIdentifier(Weight),
|
|
15
|
+
}),
|
|
16
|
+
complexity: Optional({
|
|
17
|
+
comment: "The complexity of crafting the item.",
|
|
18
|
+
type: IncludeIdentifier(Complexity),
|
|
19
|
+
}),
|
|
12
20
|
src,
|
|
13
21
|
translations: DefaultItemTranslations("Vehicle"),
|
|
14
22
|
}),
|
|
@@ -65,15 +65,15 @@ const RangeBrackets = TypeAlias(import.meta.url, {
|
|
|
65
65
|
type: () => Object({
|
|
66
66
|
close: Required({
|
|
67
67
|
comment: "The close range bracket for the weapon. Distance in m.",
|
|
68
|
-
type: Integer({ minimum:
|
|
68
|
+
type: Integer({ minimum: 0 }),
|
|
69
69
|
}),
|
|
70
70
|
medium: Required({
|
|
71
71
|
comment: "The medium range bracket for the weapon. Distance in m.",
|
|
72
|
-
type: Integer({ minimum:
|
|
72
|
+
type: Integer({ minimum: 0 }),
|
|
73
73
|
}),
|
|
74
74
|
far: Required({
|
|
75
75
|
comment: "The far range bracket for the weapon. Distance in m.",
|
|
76
|
-
type: Integer({ minimum:
|
|
76
|
+
type: Integer({ minimum: 0 }),
|
|
77
77
|
}),
|
|
78
78
|
}),
|
|
79
79
|
});
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "optolith-database-schema",
|
|
3
|
-
"version": "0.21.
|
|
3
|
+
"version": "0.21.1",
|
|
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",
|
|
@@ -38,11 +38,11 @@
|
|
|
38
38
|
"license": "MPL-2.0",
|
|
39
39
|
"dependencies": {
|
|
40
40
|
"@optolith/helpers": "^0.2.2",
|
|
41
|
-
"tsondb": "^0.12.
|
|
41
|
+
"tsondb": "^0.12.5",
|
|
42
42
|
"yaml": "^2.8.1"
|
|
43
43
|
},
|
|
44
44
|
"devDependencies": {
|
|
45
|
-
"@types/node": "^24.
|
|
45
|
+
"@types/node": "^24.10.1",
|
|
46
46
|
"commit-and-tag-version": "^12.6.0",
|
|
47
47
|
"typescript": "^5.9.3"
|
|
48
48
|
},
|