@optolith/database-schema 0.42.4 → 0.43.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.
- package/CHANGELOG.md +16 -0
- package/gen/types.d.ts +104 -57
- package/lib/types/Lessons.d.ts +10 -2
- package/lib/types/Lessons.js +33 -1
- package/lib/types/Locale.d.ts +7 -0
- package/lib/types/Locale.js +7 -0
- package/lib/types/Race.d.ts +46 -23
- package/lib/types/Race.js +38 -38
- package/lib/types/specialAbility/MagicalTradition.d.ts +2 -5
- package/lib/types/specialAbility/MagicalTradition.js +6 -2
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,22 @@
|
|
|
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.43.0](https://github.com/Optolith/database-schema/compare/v0.42.4...v0.43.0) (2026-05-29)
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
### ⚠ BREAKING CHANGES
|
|
9
|
+
|
|
10
|
+
* auto/strong dis/advantages in race variantFeature/race advantage variant
|
|
11
|
+
* add translation for name of spellcasters
|
|
12
|
+
* add translations for favored skills
|
|
13
|
+
|
|
14
|
+
### Features
|
|
15
|
+
|
|
16
|
+
* add translation for name of spellcasters ([21780be](https://github.com/Optolith/database-schema/commit/21780be505cf21d08bb2ef7691e613047cb0447f))
|
|
17
|
+
* add translations for favored skills ([57b1916](https://github.com/Optolith/database-schema/commit/57b1916f21edbd1acb57c8e0aa3b06f9be6da724))
|
|
18
|
+
* auto/strong dis/advantages in race variantFeature/race advantage variant ([7afc6b0](https://github.com/Optolith/database-schema/commit/7afc6b032614b1fae26f54e648eceee3aa49559c)), closes [elyukai/optolith-data#1291](https://github.com/elyukai/optolith-data/issues/1291) [#139](https://github.com/Optolith/database-schema/issues/139) [#138](https://github.com/Optolith/database-schema/issues/138)
|
|
19
|
+
* printed values for lesson packages ([c268659](https://github.com/Optolith/database-schema/commit/c2686593cb874e4f18ba86ea51d6c7d59f0cce85))
|
|
20
|
+
|
|
5
21
|
## [0.42.4](https://github.com/Optolith/database-schema/compare/v0.42.3...v0.42.4) (2026-04-10)
|
|
6
22
|
|
|
7
23
|
|
package/gen/types.d.ts
CHANGED
|
@@ -856,6 +856,7 @@ export type TypeAliasMap = {
|
|
|
856
856
|
SpecificSkillSpecializationOptions: SpecificSkillSpecializationOptions
|
|
857
857
|
SpecificTargetCategory: SpecificTargetCategory
|
|
858
858
|
SpellworkAdjustment: SpellworkAdjustment
|
|
859
|
+
SpellworkAdjustmentWithBase: SpellworkAdjustmentWithBase
|
|
859
860
|
SpellworkChange: SpellworkChange
|
|
860
861
|
SpellworkPrerequisites: SpellworkPrerequisites
|
|
861
862
|
StatePrerequisite: StatePrerequisite
|
|
@@ -2337,7 +2338,14 @@ export interface Locale {
|
|
|
2337
2338
|
"corresponding liturgical style special ability": string
|
|
2338
2339
|
"corresponding magic style special ability": string
|
|
2339
2340
|
"corresponding skill style special ability": string
|
|
2341
|
+
"Favored Skills": string
|
|
2342
|
+
"The primary attribute of this Tradition is {$attr}.": string & { __params: { "attr": StringableTranslationParameter } }
|
|
2343
|
+
"This primary attribute of this Tradition is {$attr}; however, {$casters} use only half of this stat (rounded up) to calculate their base AE pool or purchase AE.": string & { __params: { "attr": StringableTranslationParameter; "casters": StringableTranslationParameter } }
|
|
2344
|
+
"Tradition ({$name}) has no associated primary attribute, meaning {$casters} receive no bonus to the AE pool and cannot purchase additional AE.": string & { __params: { "name": StringableTranslationParameter; "casters": StringableTranslationParameter } }
|
|
2345
|
+
".input {$count :number} {{{$baseList}, and {$count} of your choice from the following list: {$selection}}}": string & { __params: { "count": number; "baseList": StringableTranslationParameter; "selection": StringableTranslationParameter } }
|
|
2340
2346
|
"All": string
|
|
2347
|
+
"All Combat Techniques": string
|
|
2348
|
+
"All Combat Techniques used in hunting": string
|
|
2341
2349
|
"All Close Combat Techniques": string
|
|
2342
2350
|
"All Ranged Combat Techniques": string
|
|
2343
2351
|
"Depends on combat style; both combat styles can be used only for their corresponding combat techniques": string
|
|
@@ -4403,26 +4411,6 @@ export interface Race {
|
|
|
4403
4411
|
*/
|
|
4404
4412
|
base_values: BaseValues
|
|
4405
4413
|
|
|
4406
|
-
/**
|
|
4407
|
-
* A list of automatically applied advantages. This does only work for advantages with no further configuration such as level or special selection.
|
|
4408
|
-
*/
|
|
4409
|
-
automatic_advantages?: AutomaticAdvantageDisadvantage<Advantage_ID>[]
|
|
4410
|
-
|
|
4411
|
-
/**
|
|
4412
|
-
* A list of automatically applied disadvantages. This does only work for disadvantages with no further configuration such as level or special selection.
|
|
4413
|
-
*/
|
|
4414
|
-
automatic_disadvantages?: AutomaticAdvantageDisadvantage<Disadvantage_ID>[]
|
|
4415
|
-
|
|
4416
|
-
/**
|
|
4417
|
-
* A list of strongly recommended advantages.
|
|
4418
|
-
*/
|
|
4419
|
-
strongly_recommended_advantages?: CommonnessRatedAdvantageDisadvantage<Advantage_ID>[]
|
|
4420
|
-
|
|
4421
|
-
/**
|
|
4422
|
-
* A list of strongly recommended disadvantages.
|
|
4423
|
-
*/
|
|
4424
|
-
strongly_recommended_disadvantages?: CommonnessRatedAdvantageDisadvantage<Disadvantage_ID>[]
|
|
4425
|
-
|
|
4426
4414
|
/**
|
|
4427
4415
|
* How many different hair colors a race may have. By default, they have a single one that is for their whole body, but a race may have multiple if their hair color is different for different body parts. Additionally, if the hair color is labelled differently (e.g. scale color), there might be multiple colors for different body parts as well. This should only be set if the hair color count is higher than 1.
|
|
4428
4416
|
*/
|
|
@@ -4476,31 +4464,6 @@ export interface RaceTranslation {
|
|
|
4476
4464
|
*/
|
|
4477
4465
|
name: string
|
|
4478
4466
|
|
|
4479
|
-
/**
|
|
4480
|
-
* The respective attribute adjustments text from the source book.
|
|
4481
|
-
*/
|
|
4482
|
-
attribute_adjustments: string
|
|
4483
|
-
|
|
4484
|
-
/**
|
|
4485
|
-
* The respective automatic advantages text from the source book.
|
|
4486
|
-
*/
|
|
4487
|
-
automatic_advantages?: string
|
|
4488
|
-
|
|
4489
|
-
/**
|
|
4490
|
-
* The respective automatic disadvantages text from the source book.
|
|
4491
|
-
*/
|
|
4492
|
-
automatic_disadvantages?: string
|
|
4493
|
-
|
|
4494
|
-
/**
|
|
4495
|
-
* The respective strongly recommended advantages text from the source book.
|
|
4496
|
-
*/
|
|
4497
|
-
strongly_recommended_advantages?: string
|
|
4498
|
-
|
|
4499
|
-
/**
|
|
4500
|
-
* The respective strongly recommended disadvantages text from the source book.
|
|
4501
|
-
*/
|
|
4502
|
-
strongly_recommended_disadvantages?: string
|
|
4503
|
-
|
|
4504
4467
|
/**
|
|
4505
4468
|
* The label for hair colors if it is not a hair color in that sense: Some races may have different labels for hair color such as scale color.
|
|
4506
4469
|
*/
|
|
@@ -7466,6 +7429,11 @@ export interface MagicalTraditionTranslation {
|
|
|
7466
7429
|
*/
|
|
7467
7430
|
name_in_library?: string
|
|
7468
7431
|
|
|
7432
|
+
/**
|
|
7433
|
+
* The name of spellcasters of this tradition. This is used to derive special rules from the data set already for this tradition.
|
|
7434
|
+
*/
|
|
7435
|
+
nameOfSpellcasters: string
|
|
7436
|
+
|
|
7469
7437
|
/**
|
|
7470
7438
|
* The special rules of the tradition. They should be sorted like they are in the book.
|
|
7471
7439
|
*/
|
|
@@ -7495,7 +7463,7 @@ export interface PrimaryAttribute {
|
|
|
7495
7463
|
/**
|
|
7496
7464
|
* The attribute’s identifier.
|
|
7497
7465
|
*/
|
|
7498
|
-
id
|
|
7466
|
+
id: Attribute_ID
|
|
7499
7467
|
|
|
7500
7468
|
/**
|
|
7501
7469
|
* Typically, the value of the primary attribute (if one exists) is added onto the base of 20 AE to get the actual AE. But sometimes, only half the value is added.
|
|
@@ -8087,6 +8055,11 @@ export interface LessonPackage {
|
|
|
8087
8055
|
*/
|
|
8088
8056
|
curriculum: Curriculum_ID
|
|
8089
8057
|
|
|
8058
|
+
/**
|
|
8059
|
+
* The AP value of the lesson package. This is only used to compare the generated AP value with the one in the book for error checking.
|
|
8060
|
+
*/
|
|
8061
|
+
apValue?: number
|
|
8062
|
+
|
|
8090
8063
|
/**
|
|
8091
8064
|
* The spell values difference of the lesson package. This field reflects the changes (difference) to the field of the same name in the profession package. If a spell gets to SR 0 because of this, it will be removed completely.
|
|
8092
8065
|
*/
|
|
@@ -8149,7 +8122,7 @@ export type AbilityAdjustment =
|
|
|
8149
8122
|
}
|
|
8150
8123
|
| {
|
|
8151
8124
|
kind: "Spellwork"
|
|
8152
|
-
Spellwork:
|
|
8125
|
+
Spellwork: SpellworkAdjustmentWithBase
|
|
8153
8126
|
}
|
|
8154
8127
|
|
|
8155
8128
|
export interface CombatTechniqueAdjustment {
|
|
@@ -8159,6 +8132,11 @@ export interface CombatTechniqueAdjustment {
|
|
|
8159
8132
|
* The combat technique points that will be added to the current combat technique rating.
|
|
8160
8133
|
*/
|
|
8161
8134
|
points: number
|
|
8135
|
+
|
|
8136
|
+
/**
|
|
8137
|
+
* The combat technique rating of the base profession package. This is only used to compare the derived rating from the profession package with the one in the book for error checking. Note that 6 is always added to that number, so to get a base rating of 10, this field should be 4.
|
|
8138
|
+
*/
|
|
8139
|
+
basePoints?: number
|
|
8162
8140
|
}
|
|
8163
8141
|
|
|
8164
8142
|
export interface SkillAdjustment {
|
|
@@ -8168,6 +8146,30 @@ export interface SkillAdjustment {
|
|
|
8168
8146
|
* The skill points that will be added to the current skill rating.
|
|
8169
8147
|
*/
|
|
8170
8148
|
points: number
|
|
8149
|
+
|
|
8150
|
+
/**
|
|
8151
|
+
* The skill rating of the base profession package. This is only used to compare the derived rating from the profession package with the one in the book for error checking.
|
|
8152
|
+
*/
|
|
8153
|
+
basePoints?: number
|
|
8154
|
+
}
|
|
8155
|
+
|
|
8156
|
+
export interface SpellworkAdjustmentWithBase {
|
|
8157
|
+
id: SpellworkIdentifier
|
|
8158
|
+
|
|
8159
|
+
/**
|
|
8160
|
+
* The skill points that will be added to the current skill rating. If a spell gets to a skill rating of 0 because of this, it will be removed completely.
|
|
8161
|
+
*/
|
|
8162
|
+
points: number
|
|
8163
|
+
|
|
8164
|
+
/**
|
|
8165
|
+
* The spell rating of the base profession package. This is only used to compare the derived rating from the profession package with the one in the book for error checking.
|
|
8166
|
+
*/
|
|
8167
|
+
basePoints?: number
|
|
8168
|
+
|
|
8169
|
+
/**
|
|
8170
|
+
* The target tradition. If the target spell is not from the Guild Mage tradition, specify the tradition identifier here.
|
|
8171
|
+
*/
|
|
8172
|
+
tradition?: MagicalTradition_ID
|
|
8171
8173
|
}
|
|
8172
8174
|
|
|
8173
8175
|
export interface ProfessionVersion {
|
|
@@ -19600,16 +19602,6 @@ export interface CalculationTranslation {
|
|
|
19600
19602
|
no_primary?: string
|
|
19601
19603
|
}
|
|
19602
19604
|
|
|
19603
|
-
/**
|
|
19604
|
-
* An advantage or disadvantage that is automatically applied to the character after selecting the race. This does only work for advantages or disadvantages with no further configuration such as level or special selection.
|
|
19605
|
-
*/
|
|
19606
|
-
export interface AutomaticAdvantageDisadvantage<Identifier> {
|
|
19607
|
-
/**
|
|
19608
|
-
* The automatic advantage or disadvantage.
|
|
19609
|
-
*/
|
|
19610
|
-
id: Identifier
|
|
19611
|
-
}
|
|
19612
|
-
|
|
19613
19605
|
/**
|
|
19614
19606
|
* Configuration for random weight generation.
|
|
19615
19607
|
*/
|
|
@@ -19672,6 +19664,26 @@ export interface RaceVariant {
|
|
|
19672
19664
|
*/
|
|
19673
19665
|
common_cultures?: Culture_ID[]
|
|
19674
19666
|
|
|
19667
|
+
/**
|
|
19668
|
+
* A list of automatically applied advantages. This does only work for advantages with no further configuration such as level or special selection.
|
|
19669
|
+
*/
|
|
19670
|
+
automatic_advantages?: AutomaticAdvantageDisadvantage<Advantage_ID>[]
|
|
19671
|
+
|
|
19672
|
+
/**
|
|
19673
|
+
* A list of automatically applied disadvantages. This does only work for disadvantages with no further configuration such as level or special selection.
|
|
19674
|
+
*/
|
|
19675
|
+
automatic_disadvantages?: AutomaticAdvantageDisadvantage<Disadvantage_ID>[]
|
|
19676
|
+
|
|
19677
|
+
/**
|
|
19678
|
+
* A list of strongly recommended advantages.
|
|
19679
|
+
*/
|
|
19680
|
+
strongly_recommended_advantages?: CommonnessRatedAdvantageDisadvantage<Advantage_ID>[]
|
|
19681
|
+
|
|
19682
|
+
/**
|
|
19683
|
+
* A list of strongly recommended disadvantages.
|
|
19684
|
+
*/
|
|
19685
|
+
strongly_recommended_disadvantages?: CommonnessRatedAdvantageDisadvantage<Disadvantage_ID>[]
|
|
19686
|
+
|
|
19675
19687
|
/**
|
|
19676
19688
|
* A list of common advantages.
|
|
19677
19689
|
*/
|
|
@@ -19726,6 +19738,31 @@ export interface RaceVariantTranslation {
|
|
|
19726
19738
|
*/
|
|
19727
19739
|
name: string
|
|
19728
19740
|
|
|
19741
|
+
/**
|
|
19742
|
+
* The respective attribute adjustments text from the source book.
|
|
19743
|
+
*/
|
|
19744
|
+
attribute_adjustments?: string
|
|
19745
|
+
|
|
19746
|
+
/**
|
|
19747
|
+
* The respective automatic advantages text from the source book.
|
|
19748
|
+
*/
|
|
19749
|
+
automatic_advantages?: string
|
|
19750
|
+
|
|
19751
|
+
/**
|
|
19752
|
+
* The respective automatic disadvantages text from the source book.
|
|
19753
|
+
*/
|
|
19754
|
+
automatic_disadvantages?: string
|
|
19755
|
+
|
|
19756
|
+
/**
|
|
19757
|
+
* The respective strongly recommended advantages text from the source book.
|
|
19758
|
+
*/
|
|
19759
|
+
strongly_recommended_advantages?: string
|
|
19760
|
+
|
|
19761
|
+
/**
|
|
19762
|
+
* The respective strongly recommended disadvantages text from the source book.
|
|
19763
|
+
*/
|
|
19764
|
+
strongly_recommended_disadvantages?: string
|
|
19765
|
+
|
|
19729
19766
|
/**
|
|
19730
19767
|
* The respective common advantages text from the source book.
|
|
19731
19768
|
*/
|
|
@@ -19794,6 +19831,16 @@ export interface SelectableAttributeAdjustment {
|
|
|
19794
19831
|
value: number
|
|
19795
19832
|
}
|
|
19796
19833
|
|
|
19834
|
+
/**
|
|
19835
|
+
* An advantage or disadvantage that is automatically applied to the character after selecting the race. This does only work for advantages or disadvantages with no further configuration such as level or special selection.
|
|
19836
|
+
*/
|
|
19837
|
+
export interface AutomaticAdvantageDisadvantage<Identifier> {
|
|
19838
|
+
/**
|
|
19839
|
+
* The automatic advantage or disadvantage.
|
|
19840
|
+
*/
|
|
19841
|
+
id: Identifier
|
|
19842
|
+
}
|
|
19843
|
+
|
|
19797
19844
|
export interface HairColor {
|
|
19798
19845
|
/**
|
|
19799
19846
|
* All translations for the entry, identified by IETF language tag (BCP47).
|
package/lib/types/Lessons.d.ts
CHANGED
|
@@ -40,6 +40,7 @@ export declare const Curriculum: DB.Entity<"Curriculum", {
|
|
|
40
40
|
}, []>>>, []>>, false>;
|
|
41
41
|
lesson_packages: DB.MemberDecl<DB.ChildEntities<DB.Entity<"LessonPackage", {
|
|
42
42
|
curriculum: DB.MemberDecl<DB.ReferenceIdentifier, true>;
|
|
43
|
+
apValue: DB.MemberDecl<DB.Integer, false>;
|
|
43
44
|
spellwork_changes: DB.MemberDecl<DB.Array<DB.IncludeIdentifier<[], DB.TypeAlias<"SpellworkChange", DB.Object<{
|
|
44
45
|
base: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"SpellworkAdjustment", DB.Object<{
|
|
45
46
|
id: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"SpellworkIdentifier", {
|
|
@@ -65,17 +66,20 @@ export declare const Curriculum: DB.Entity<"Curriculum", {
|
|
|
65
66
|
RangedCombatTechnique: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
66
67
|
}, []>>, true>;
|
|
67
68
|
points: DB.MemberDecl<DB.Integer, true>;
|
|
69
|
+
basePoints: DB.MemberDecl<DB.Integer, false>;
|
|
68
70
|
}>, []>>>;
|
|
69
71
|
Skill: DB.EnumCase<DB.IncludeIdentifier<[], DB.TypeAlias<"SkillAdjustment", DB.Object<{
|
|
70
72
|
id: DB.MemberDecl<DB.ReferenceIdentifier, true>;
|
|
71
73
|
points: DB.MemberDecl<DB.Integer, true>;
|
|
74
|
+
basePoints: DB.MemberDecl<DB.Integer, false>;
|
|
72
75
|
}>, []>>>;
|
|
73
|
-
Spellwork: DB.EnumCase<DB.IncludeIdentifier<[], DB.TypeAlias<"
|
|
76
|
+
Spellwork: DB.EnumCase<DB.IncludeIdentifier<[], DB.TypeAlias<"SpellworkAdjustmentWithBase", DB.Object<{
|
|
74
77
|
id: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"SpellworkIdentifier", {
|
|
75
78
|
Spell: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
76
79
|
Ritual: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
77
80
|
}, []>>, true>;
|
|
78
81
|
points: DB.MemberDecl<DB.Integer, true>;
|
|
82
|
+
basePoints: DB.MemberDecl<DB.Integer, false>;
|
|
79
83
|
tradition: DB.MemberDecl<DB.ReferenceIdentifier, false>;
|
|
80
84
|
}>, []>>>;
|
|
81
85
|
}, []>>>, false>;
|
|
@@ -135,6 +139,7 @@ export declare const Curriculum: DB.Entity<"Curriculum", {
|
|
|
135
139
|
}, undefined>;
|
|
136
140
|
export declare const LessonPackage: DB.Entity<"LessonPackage", {
|
|
137
141
|
curriculum: DB.MemberDecl<DB.ReferenceIdentifier, true>;
|
|
142
|
+
apValue: DB.MemberDecl<DB.Integer, false>;
|
|
138
143
|
spellwork_changes: DB.MemberDecl<DB.Array<DB.IncludeIdentifier<[], DB.TypeAlias<"SpellworkChange", DB.Object<{
|
|
139
144
|
base: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"SpellworkAdjustment", DB.Object<{
|
|
140
145
|
id: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"SpellworkIdentifier", {
|
|
@@ -160,17 +165,20 @@ export declare const LessonPackage: DB.Entity<"LessonPackage", {
|
|
|
160
165
|
RangedCombatTechnique: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
161
166
|
}, []>>, true>;
|
|
162
167
|
points: DB.MemberDecl<DB.Integer, true>;
|
|
168
|
+
basePoints: DB.MemberDecl<DB.Integer, false>;
|
|
163
169
|
}>, []>>>;
|
|
164
170
|
Skill: DB.EnumCase<DB.IncludeIdentifier<[], DB.TypeAlias<"SkillAdjustment", DB.Object<{
|
|
165
171
|
id: DB.MemberDecl<DB.ReferenceIdentifier, true>;
|
|
166
172
|
points: DB.MemberDecl<DB.Integer, true>;
|
|
173
|
+
basePoints: DB.MemberDecl<DB.Integer, false>;
|
|
167
174
|
}>, []>>>;
|
|
168
|
-
Spellwork: DB.EnumCase<DB.IncludeIdentifier<[], DB.TypeAlias<"
|
|
175
|
+
Spellwork: DB.EnumCase<DB.IncludeIdentifier<[], DB.TypeAlias<"SpellworkAdjustmentWithBase", DB.Object<{
|
|
169
176
|
id: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"SpellworkIdentifier", {
|
|
170
177
|
Spell: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
171
178
|
Ritual: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
172
179
|
}, []>>, true>;
|
|
173
180
|
points: DB.MemberDecl<DB.Integer, true>;
|
|
181
|
+
basePoints: DB.MemberDecl<DB.Integer, false>;
|
|
174
182
|
tradition: DB.MemberDecl<DB.ReferenceIdentifier, false>;
|
|
175
183
|
}>, []>>>;
|
|
176
184
|
}, []>>>, false>;
|
package/lib/types/Lessons.js
CHANGED
|
@@ -145,6 +145,10 @@ export const LessonPackage = DB.Entity(import.meta.url, {
|
|
|
145
145
|
comment: "The associated curriculum.",
|
|
146
146
|
type: CurriculumIdentifier(),
|
|
147
147
|
}),
|
|
148
|
+
apValue: DB.Optional({
|
|
149
|
+
comment: "The AP value of the lesson package. This is only used to compare the generated AP value with the one in the book for error checking.",
|
|
150
|
+
type: DB.Integer({ minimum: 1 }),
|
|
151
|
+
}),
|
|
148
152
|
spellwork_changes: DB.Optional({
|
|
149
153
|
comment: "The spell values difference of the lesson package. This field reflects the changes (difference) to the field of the same name in the profession package. If a spell gets to SR 0 because of this, it will be removed completely.",
|
|
150
154
|
type: DB.Array(DB.IncludeIdentifier(SpellworkChange), { minItems: 1, uniqueItems: true }),
|
|
@@ -185,7 +189,7 @@ const AbilityAdjustment = DB.Enum(import.meta.url, {
|
|
|
185
189
|
values: () => ({
|
|
186
190
|
CombatTechnique: DB.EnumCase({ type: DB.IncludeIdentifier(CombatTechniqueAdjustment) }),
|
|
187
191
|
Skill: DB.EnumCase({ type: DB.IncludeIdentifier(SkillAdjustment) }),
|
|
188
|
-
Spellwork: DB.EnumCase({ type: DB.IncludeIdentifier(
|
|
192
|
+
Spellwork: DB.EnumCase({ type: DB.IncludeIdentifier(SpellworkAdjustmentWithBase) }),
|
|
189
193
|
}),
|
|
190
194
|
});
|
|
191
195
|
const CombatTechniqueAdjustment = DB.TypeAlias(import.meta.url, {
|
|
@@ -198,6 +202,10 @@ const CombatTechniqueAdjustment = DB.TypeAlias(import.meta.url, {
|
|
|
198
202
|
comment: "The combat technique points that will be added to the current combat technique rating.",
|
|
199
203
|
type: DB.Integer({ minimum: -6, maximum: 6 }),
|
|
200
204
|
}),
|
|
205
|
+
basePoints: DB.Optional({
|
|
206
|
+
comment: "The combat technique rating of the base profession package. This is only used to compare the derived rating from the profession package with the one in the book for error checking. Note that 6 is always added to that number, so to get a base rating of 10, this field should be 4.",
|
|
207
|
+
type: DB.Integer({ minimum: 0, maximum: 6 }),
|
|
208
|
+
}),
|
|
201
209
|
}),
|
|
202
210
|
});
|
|
203
211
|
const SkillAdjustment = DB.TypeAlias(import.meta.url, {
|
|
@@ -210,6 +218,10 @@ const SkillAdjustment = DB.TypeAlias(import.meta.url, {
|
|
|
210
218
|
comment: "The skill points that will be added to the current skill rating.",
|
|
211
219
|
type: DB.Integer({ minimum: -8, maximum: 8 }),
|
|
212
220
|
}),
|
|
221
|
+
basePoints: DB.Optional({
|
|
222
|
+
comment: "The skill rating of the base profession package. This is only used to compare the derived rating from the profession package with the one in the book for error checking.",
|
|
223
|
+
type: DB.Integer({ minimum: 0, maximum: 8 }),
|
|
224
|
+
}),
|
|
213
225
|
}),
|
|
214
226
|
});
|
|
215
227
|
const SpellworkAdjustment = DB.TypeAlias(import.meta.url, {
|
|
@@ -228,3 +240,23 @@ const SpellworkAdjustment = DB.TypeAlias(import.meta.url, {
|
|
|
228
240
|
}),
|
|
229
241
|
}),
|
|
230
242
|
});
|
|
243
|
+
const SpellworkAdjustmentWithBase = DB.TypeAlias(import.meta.url, {
|
|
244
|
+
name: "SpellworkAdjustmentWithBase",
|
|
245
|
+
type: () => DB.Object({
|
|
246
|
+
id: DB.Required({
|
|
247
|
+
type: DB.IncludeIdentifier(SpellworkIdentifier),
|
|
248
|
+
}),
|
|
249
|
+
points: DB.Required({
|
|
250
|
+
comment: "The skill points that will be added to the current skill rating. If a spell gets to a skill rating of 0 because of this, it will be removed completely.",
|
|
251
|
+
type: DB.Integer({ minimum: -10, maximum: 10 }),
|
|
252
|
+
}),
|
|
253
|
+
basePoints: DB.Optional({
|
|
254
|
+
comment: "The spell rating of the base profession package. This is only used to compare the derived rating from the profession package with the one in the book for error checking.",
|
|
255
|
+
type: DB.Integer({ minimum: 0, maximum: 10 }),
|
|
256
|
+
}),
|
|
257
|
+
tradition: DB.Optional({
|
|
258
|
+
comment: "The target tradition. If the target spell is not from the Guild Mage tradition, specify the tradition identifier here.",
|
|
259
|
+
type: MagicalTraditionIdentifier(),
|
|
260
|
+
}),
|
|
261
|
+
}),
|
|
262
|
+
});
|
package/lib/types/Locale.d.ts
CHANGED
|
@@ -1335,7 +1335,14 @@ export declare const Locale: DB.Entity<"Locale", {
|
|
|
1335
1335
|
"corresponding liturgical style special ability": null;
|
|
1336
1336
|
"corresponding magic style special ability": null;
|
|
1337
1337
|
"corresponding skill style special ability": null;
|
|
1338
|
+
"Favored Skills": null;
|
|
1339
|
+
"The primary attribute of this Tradition is {$attr}.": null;
|
|
1340
|
+
"This primary attribute of this Tradition is {$attr}; however, {$casters} use only half of this stat (rounded up) to calculate their base AE pool or purchase AE.": null;
|
|
1341
|
+
"Tradition ({$name}) has no associated primary attribute, meaning {$casters} receive no bonus to the AE pool and cannot purchase additional AE.": null;
|
|
1342
|
+
".input {$count :number} {{{$baseList}, and {$count} of your choice from the following list: {$selection}}}": null;
|
|
1338
1343
|
All: null;
|
|
1344
|
+
"All Combat Techniques": null;
|
|
1345
|
+
"All Combat Techniques used in hunting": null;
|
|
1339
1346
|
"All Close Combat Techniques": null;
|
|
1340
1347
|
"All Ranged Combat Techniques": null;
|
|
1341
1348
|
"Depends on combat style; both combat styles can be used only for their corresponding combat techniques": null;
|
package/lib/types/Locale.js
CHANGED
|
@@ -1369,8 +1369,15 @@ export const Locale = DB.Entity(import.meta.url, {
|
|
|
1369
1369
|
"corresponding liturgical style special ability": null,
|
|
1370
1370
|
"corresponding magic style special ability": null,
|
|
1371
1371
|
"corresponding skill style special ability": null,
|
|
1372
|
+
"Favored Skills": null,
|
|
1373
|
+
"The primary attribute of this Tradition is {$attr}.": null,
|
|
1374
|
+
"This primary attribute of this Tradition is {$attr}; however, {$casters} use only half of this stat (rounded up) to calculate their base AE pool or purchase AE.": null,
|
|
1375
|
+
"Tradition ({$name}) has no associated primary attribute, meaning {$casters} receive no bonus to the AE pool and cannot purchase additional AE.": null,
|
|
1376
|
+
".input {$count :number} {{{$baseList}, and {$count} of your choice from the following list: {$selection}}}": null,
|
|
1372
1377
|
// combat special ability -- applicable combat techniques
|
|
1373
1378
|
"All": null,
|
|
1379
|
+
"All Combat Techniques": null, // for favored combat techniques
|
|
1380
|
+
"All Combat Techniques used in hunting": null,
|
|
1374
1381
|
"All Close Combat Techniques": null,
|
|
1375
1382
|
"All Ranged Combat Techniques": null,
|
|
1376
1383
|
"Depends on combat style; both combat styles can be used only for their corresponding combat techniques": null,
|
package/lib/types/Race.d.ts
CHANGED
|
@@ -4,24 +4,6 @@ export declare const Race: DB.Entity<"Race", {
|
|
|
4
4
|
base_values: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"BaseValues", DB.NestedEntityMap<string, {
|
|
5
5
|
value: DB.MemberDecl<DB.Integer, true>;
|
|
6
6
|
}>, []>>, true>;
|
|
7
|
-
automatic_advantages: DB.MemberDecl<DB.Array<DB.IncludeIdentifier<DB.Param<string, DB.Type>[], DB.TypeAlias<"AutomaticAdvantageDisadvantage", DB.Object<{
|
|
8
|
-
id: DB.MemberDecl<DB.TypeArgument<DB.Param<"Identifier", DB.Type>>, true>;
|
|
9
|
-
}>, [Identifier: DB.Param<"Identifier", DB.Type>]>>>, false>;
|
|
10
|
-
automatic_disadvantages: DB.MemberDecl<DB.Array<DB.IncludeIdentifier<DB.Param<string, DB.Type>[], DB.TypeAlias<"AutomaticAdvantageDisadvantage", DB.Object<{
|
|
11
|
-
id: DB.MemberDecl<DB.TypeArgument<DB.Param<"Identifier", DB.Type>>, true>;
|
|
12
|
-
}>, [Identifier: DB.Param<"Identifier", DB.Type>]>>>, false>;
|
|
13
|
-
strongly_recommended_advantages: DB.MemberDecl<DB.Array<DB.IncludeIdentifier<DB.Param<string, DB.Type>[], DB.TypeAlias<"CommonnessRatedAdvantageDisadvantage", DB.Object<{
|
|
14
|
-
id: DB.MemberDecl<DB.TypeArgument<DB.Param<"Identifier", DB.Type>>, true>;
|
|
15
|
-
translations: DB.MemberDecl<DB.NestedEntityMap<"CommonnessRatedAdvantageDisadvantageTranslation", {
|
|
16
|
-
options: DB.MemberDecl<DB.String, true>;
|
|
17
|
-
}>, false>;
|
|
18
|
-
}>, [Identifier: DB.Param<"Identifier", DB.Type>]>>>, false>;
|
|
19
|
-
strongly_recommended_disadvantages: DB.MemberDecl<DB.Array<DB.IncludeIdentifier<DB.Param<string, DB.Type>[], DB.TypeAlias<"CommonnessRatedAdvantageDisadvantage", DB.Object<{
|
|
20
|
-
id: DB.MemberDecl<DB.TypeArgument<DB.Param<"Identifier", DB.Type>>, true>;
|
|
21
|
-
translations: DB.MemberDecl<DB.NestedEntityMap<"CommonnessRatedAdvantageDisadvantageTranslation", {
|
|
22
|
-
options: DB.MemberDecl<DB.String, true>;
|
|
23
|
-
}>, false>;
|
|
24
|
-
}>, [Identifier: DB.Param<"Identifier", DB.Type>]>>>, false>;
|
|
25
7
|
hairColorCount: DB.MemberDecl<DB.Integer, false>;
|
|
26
8
|
weight: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"RandomWeightGeneration", DB.Object<{
|
|
27
9
|
base: DB.MemberDecl<DB.Integer, true>;
|
|
@@ -55,6 +37,24 @@ export declare const Race: DB.Entity<"Race", {
|
|
|
55
37
|
}>, []>>>, false>;
|
|
56
38
|
}>, []>>, true>;
|
|
57
39
|
common_cultures: DB.MemberDecl<DB.Array<DB.ReferenceIdentifier>, false>;
|
|
40
|
+
automatic_advantages: DB.MemberDecl<DB.Array<DB.IncludeIdentifier<DB.Param<string, DB.Type>[], DB.TypeAlias<"AutomaticAdvantageDisadvantage", DB.Object<{
|
|
41
|
+
id: DB.MemberDecl<DB.TypeArgument<DB.Param<"Identifier", DB.Type>>, true>;
|
|
42
|
+
}>, [Identifier: DB.Param<"Identifier", DB.Type>]>>>, false>;
|
|
43
|
+
automatic_disadvantages: DB.MemberDecl<DB.Array<DB.IncludeIdentifier<DB.Param<string, DB.Type>[], DB.TypeAlias<"AutomaticAdvantageDisadvantage", DB.Object<{
|
|
44
|
+
id: DB.MemberDecl<DB.TypeArgument<DB.Param<"Identifier", DB.Type>>, true>;
|
|
45
|
+
}>, [Identifier: DB.Param<"Identifier", DB.Type>]>>>, false>;
|
|
46
|
+
strongly_recommended_advantages: DB.MemberDecl<DB.Array<DB.IncludeIdentifier<DB.Param<string, DB.Type>[], DB.TypeAlias<"CommonnessRatedAdvantageDisadvantage", DB.Object<{
|
|
47
|
+
id: DB.MemberDecl<DB.TypeArgument<DB.Param<"Identifier", DB.Type>>, true>;
|
|
48
|
+
translations: DB.MemberDecl<DB.NestedEntityMap<"CommonnessRatedAdvantageDisadvantageTranslation", {
|
|
49
|
+
options: DB.MemberDecl<DB.String, true>;
|
|
50
|
+
}>, false>;
|
|
51
|
+
}>, [Identifier: DB.Param<"Identifier", DB.Type>]>>>, false>;
|
|
52
|
+
strongly_recommended_disadvantages: DB.MemberDecl<DB.Array<DB.IncludeIdentifier<DB.Param<string, DB.Type>[], DB.TypeAlias<"CommonnessRatedAdvantageDisadvantage", DB.Object<{
|
|
53
|
+
id: DB.MemberDecl<DB.TypeArgument<DB.Param<"Identifier", DB.Type>>, true>;
|
|
54
|
+
translations: DB.MemberDecl<DB.NestedEntityMap<"CommonnessRatedAdvantageDisadvantageTranslation", {
|
|
55
|
+
options: DB.MemberDecl<DB.String, true>;
|
|
56
|
+
}>, false>;
|
|
57
|
+
}>, [Identifier: DB.Param<"Identifier", DB.Type>]>>>, false>;
|
|
58
58
|
common_advantages: DB.MemberDecl<DB.Array<DB.IncludeIdentifier<DB.Param<string, DB.Type>[], DB.TypeAlias<"CommonnessRatedAdvantageDisadvantage", DB.Object<{
|
|
59
59
|
id: DB.MemberDecl<DB.TypeArgument<DB.Param<"Identifier", DB.Type>>, true>;
|
|
60
60
|
translations: DB.MemberDecl<DB.NestedEntityMap<"CommonnessRatedAdvantageDisadvantageTranslation", {
|
|
@@ -90,6 +90,11 @@ export declare const Race: DB.Entity<"Race", {
|
|
|
90
90
|
}>, []>>, true>;
|
|
91
91
|
translations: DB.MemberDecl<DB.NestedEntityMap<"RaceVariantTranslation", {
|
|
92
92
|
name: DB.MemberDecl<DB.String, true>;
|
|
93
|
+
attribute_adjustments: DB.MemberDecl<DB.String, false>;
|
|
94
|
+
automatic_advantages: DB.MemberDecl<DB.String, false>;
|
|
95
|
+
automatic_disadvantages: DB.MemberDecl<DB.String, false>;
|
|
96
|
+
strongly_recommended_advantages: DB.MemberDecl<DB.String, false>;
|
|
97
|
+
strongly_recommended_disadvantages: DB.MemberDecl<DB.String, false>;
|
|
93
98
|
common_advantages: DB.MemberDecl<DB.String, false>;
|
|
94
99
|
common_disadvantages: DB.MemberDecl<DB.String, false>;
|
|
95
100
|
uncommon_advantages: DB.MemberDecl<DB.String, false>;
|
|
@@ -139,11 +144,6 @@ export declare const Race: DB.Entity<"Race", {
|
|
|
139
144
|
}>, []>>>, []>>, true>;
|
|
140
145
|
translations: DB.MemberDecl<DB.NestedEntityMap<"RaceTranslation", {
|
|
141
146
|
name: DB.MemberDecl<DB.String, true>;
|
|
142
|
-
attribute_adjustments: DB.MemberDecl<DB.String, true>;
|
|
143
|
-
automatic_advantages: DB.MemberDecl<DB.String, false>;
|
|
144
|
-
automatic_disadvantages: DB.MemberDecl<DB.String, false>;
|
|
145
|
-
strongly_recommended_advantages: DB.MemberDecl<DB.String, false>;
|
|
146
|
-
strongly_recommended_disadvantages: DB.MemberDecl<DB.String, false>;
|
|
147
147
|
hairColorLabel: DB.MemberDecl<DB.String, false>;
|
|
148
148
|
errata: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"Errata", DB.Array<DB.IncludeIdentifier<[], DB.TypeAlias<"Erratum", DB.Object<{
|
|
149
149
|
date: DB.MemberDecl<DB.Date, true>;
|
|
@@ -164,6 +164,24 @@ export declare const RaceVariant: DB.Entity<"RaceVariant", {
|
|
|
164
164
|
}>, []>>>, false>;
|
|
165
165
|
}>, []>>, true>;
|
|
166
166
|
common_cultures: DB.MemberDecl<DB.Array<DB.ReferenceIdentifier>, false>;
|
|
167
|
+
automatic_advantages: DB.MemberDecl<DB.Array<DB.IncludeIdentifier<DB.Param<string, DB.Type>[], DB.TypeAlias<"AutomaticAdvantageDisadvantage", DB.Object<{
|
|
168
|
+
id: DB.MemberDecl<DB.TypeArgument<DB.Param<"Identifier", DB.Type>>, true>;
|
|
169
|
+
}>, [Identifier: DB.Param<"Identifier", DB.Type>]>>>, false>;
|
|
170
|
+
automatic_disadvantages: DB.MemberDecl<DB.Array<DB.IncludeIdentifier<DB.Param<string, DB.Type>[], DB.TypeAlias<"AutomaticAdvantageDisadvantage", DB.Object<{
|
|
171
|
+
id: DB.MemberDecl<DB.TypeArgument<DB.Param<"Identifier", DB.Type>>, true>;
|
|
172
|
+
}>, [Identifier: DB.Param<"Identifier", DB.Type>]>>>, false>;
|
|
173
|
+
strongly_recommended_advantages: DB.MemberDecl<DB.Array<DB.IncludeIdentifier<DB.Param<string, DB.Type>[], DB.TypeAlias<"CommonnessRatedAdvantageDisadvantage", DB.Object<{
|
|
174
|
+
id: DB.MemberDecl<DB.TypeArgument<DB.Param<"Identifier", DB.Type>>, true>;
|
|
175
|
+
translations: DB.MemberDecl<DB.NestedEntityMap<"CommonnessRatedAdvantageDisadvantageTranslation", {
|
|
176
|
+
options: DB.MemberDecl<DB.String, true>;
|
|
177
|
+
}>, false>;
|
|
178
|
+
}>, [Identifier: DB.Param<"Identifier", DB.Type>]>>>, false>;
|
|
179
|
+
strongly_recommended_disadvantages: DB.MemberDecl<DB.Array<DB.IncludeIdentifier<DB.Param<string, DB.Type>[], DB.TypeAlias<"CommonnessRatedAdvantageDisadvantage", DB.Object<{
|
|
180
|
+
id: DB.MemberDecl<DB.TypeArgument<DB.Param<"Identifier", DB.Type>>, true>;
|
|
181
|
+
translations: DB.MemberDecl<DB.NestedEntityMap<"CommonnessRatedAdvantageDisadvantageTranslation", {
|
|
182
|
+
options: DB.MemberDecl<DB.String, true>;
|
|
183
|
+
}>, false>;
|
|
184
|
+
}>, [Identifier: DB.Param<"Identifier", DB.Type>]>>>, false>;
|
|
167
185
|
common_advantages: DB.MemberDecl<DB.Array<DB.IncludeIdentifier<DB.Param<string, DB.Type>[], DB.TypeAlias<"CommonnessRatedAdvantageDisadvantage", DB.Object<{
|
|
168
186
|
id: DB.MemberDecl<DB.TypeArgument<DB.Param<"Identifier", DB.Type>>, true>;
|
|
169
187
|
translations: DB.MemberDecl<DB.NestedEntityMap<"CommonnessRatedAdvantageDisadvantageTranslation", {
|
|
@@ -199,6 +217,11 @@ export declare const RaceVariant: DB.Entity<"RaceVariant", {
|
|
|
199
217
|
}>, []>>, true>;
|
|
200
218
|
translations: DB.MemberDecl<DB.NestedEntityMap<"RaceVariantTranslation", {
|
|
201
219
|
name: DB.MemberDecl<DB.String, true>;
|
|
220
|
+
attribute_adjustments: DB.MemberDecl<DB.String, false>;
|
|
221
|
+
automatic_advantages: DB.MemberDecl<DB.String, false>;
|
|
222
|
+
automatic_disadvantages: DB.MemberDecl<DB.String, false>;
|
|
223
|
+
strongly_recommended_advantages: DB.MemberDecl<DB.String, false>;
|
|
224
|
+
strongly_recommended_disadvantages: DB.MemberDecl<DB.String, false>;
|
|
202
225
|
common_advantages: DB.MemberDecl<DB.String, false>;
|
|
203
226
|
common_disadvantages: DB.MemberDecl<DB.String, false>;
|
|
204
227
|
uncommon_advantages: DB.MemberDecl<DB.String, false>;
|
package/lib/types/Race.js
CHANGED
|
@@ -20,24 +20,6 @@ export const Race = DB.Entity(import.meta.url, {
|
|
|
20
20
|
comment: "The race’s base values.",
|
|
21
21
|
type: DB.IncludeIdentifier(BaseValues),
|
|
22
22
|
}),
|
|
23
|
-
automatic_advantages: DB.Optional({
|
|
24
|
-
comment: "A list of automatically applied advantages. This does only work for advantages with no further configuration such as level or special selection.",
|
|
25
|
-
type: DB.Array(DB.GenIncludeIdentifier(AutomaticAdvantageDisadvantage, [AdvantageIdentifier()]), {
|
|
26
|
-
minItems: 1,
|
|
27
|
-
}),
|
|
28
|
-
}),
|
|
29
|
-
automatic_disadvantages: DB.Optional({
|
|
30
|
-
comment: "A list of automatically applied disadvantages. This does only work for disadvantages with no further configuration such as level or special selection.",
|
|
31
|
-
type: DB.Array(DB.GenIncludeIdentifier(AutomaticAdvantageDisadvantage, [DisadvantageIdentifier()]), { minItems: 1 }),
|
|
32
|
-
}),
|
|
33
|
-
strongly_recommended_advantages: DB.Optional({
|
|
34
|
-
comment: "A list of strongly recommended advantages.",
|
|
35
|
-
type: DB.Array(DB.GenIncludeIdentifier(CommonnessRatedAdvantageDisadvantage, [AdvantageIdentifier()]), { minItems: 1 }),
|
|
36
|
-
}),
|
|
37
|
-
strongly_recommended_disadvantages: DB.Optional({
|
|
38
|
-
comment: "A list of strongly recommended disadvantages.",
|
|
39
|
-
type: DB.Array(DB.GenIncludeIdentifier(CommonnessRatedAdvantageDisadvantage, [DisadvantageIdentifier()]), { minItems: 1 }),
|
|
40
|
-
}),
|
|
41
23
|
hairColorCount: DB.Optional({
|
|
42
24
|
comment: "How many different hair colors a race may have. By default, they have a single one that is for their whole body, but a race may have multiple if their hair color is different for different body parts. Additionally, if the hair color is labelled differently (e.g. scale color), there might be multiple colors for different body parts as well. This should only be set if the hair color count is higher than 1.",
|
|
43
25
|
type: DB.Integer({ minimum: 2 }),
|
|
@@ -75,26 +57,6 @@ export const Race = DB.Entity(import.meta.url, {
|
|
|
75
57
|
comment: "The race’s name.",
|
|
76
58
|
type: DB.String({ minLength: 1 }),
|
|
77
59
|
}),
|
|
78
|
-
attribute_adjustments: DB.Required({
|
|
79
|
-
comment: "The respective attribute adjustments text from the source book.",
|
|
80
|
-
type: DB.String({ minLength: 1 }),
|
|
81
|
-
}),
|
|
82
|
-
automatic_advantages: DB.Optional({
|
|
83
|
-
comment: "The respective automatic advantages text from the source book.",
|
|
84
|
-
type: DB.String({ minLength: 1 }),
|
|
85
|
-
}),
|
|
86
|
-
automatic_disadvantages: DB.Optional({
|
|
87
|
-
comment: "The respective automatic disadvantages text from the source book.",
|
|
88
|
-
type: DB.String({ minLength: 1 }),
|
|
89
|
-
}),
|
|
90
|
-
strongly_recommended_advantages: DB.Optional({
|
|
91
|
-
comment: "The respective strongly recommended advantages text from the source book.",
|
|
92
|
-
type: DB.String({ minLength: 1 }),
|
|
93
|
-
}),
|
|
94
|
-
strongly_recommended_disadvantages: DB.Optional({
|
|
95
|
-
comment: "The respective strongly recommended disadvantages text from the source book.",
|
|
96
|
-
type: DB.String({ minLength: 1 }),
|
|
97
|
-
}),
|
|
98
60
|
hairColorLabel: DB.Optional({
|
|
99
61
|
comment: "The label for hair colors if it is not a hair color in that sense: Some races may have different labels for hair color such as scale color.",
|
|
100
62
|
type: DB.String({ minLength: 1 }),
|
|
@@ -251,6 +213,24 @@ export const RaceVariant = DB.Entity(import.meta.url, {
|
|
|
251
213
|
comment: "The list of common cultures.",
|
|
252
214
|
type: DB.Array(CultureIdentifier(), { minItems: 1 }),
|
|
253
215
|
}),
|
|
216
|
+
automatic_advantages: DB.Optional({
|
|
217
|
+
comment: "A list of automatically applied advantages. This does only work for advantages with no further configuration such as level or special selection.",
|
|
218
|
+
type: DB.Array(DB.GenIncludeIdentifier(AutomaticAdvantageDisadvantage, [AdvantageIdentifier()]), {
|
|
219
|
+
minItems: 1,
|
|
220
|
+
}),
|
|
221
|
+
}),
|
|
222
|
+
automatic_disadvantages: DB.Optional({
|
|
223
|
+
comment: "A list of automatically applied disadvantages. This does only work for disadvantages with no further configuration such as level or special selection.",
|
|
224
|
+
type: DB.Array(DB.GenIncludeIdentifier(AutomaticAdvantageDisadvantage, [DisadvantageIdentifier()]), { minItems: 1 }),
|
|
225
|
+
}),
|
|
226
|
+
strongly_recommended_advantages: DB.Optional({
|
|
227
|
+
comment: "A list of strongly recommended advantages.",
|
|
228
|
+
type: DB.Array(DB.GenIncludeIdentifier(CommonnessRatedAdvantageDisadvantage, [AdvantageIdentifier()]), { minItems: 1 }),
|
|
229
|
+
}),
|
|
230
|
+
strongly_recommended_disadvantages: DB.Optional({
|
|
231
|
+
comment: "A list of strongly recommended disadvantages.",
|
|
232
|
+
type: DB.Array(DB.GenIncludeIdentifier(CommonnessRatedAdvantageDisadvantage, [DisadvantageIdentifier()]), { minItems: 1 }),
|
|
233
|
+
}),
|
|
254
234
|
common_advantages: DB.Optional({
|
|
255
235
|
comment: "A list of common advantages.",
|
|
256
236
|
type: DB.Array(DB.GenIncludeIdentifier(CommonnessRatedAdvantageDisadvantage, [AdvantageIdentifier()]), { minItems: 1 }),
|
|
@@ -284,6 +264,26 @@ export const RaceVariant = DB.Entity(import.meta.url, {
|
|
|
284
264
|
comment: "The race variant’s name. If this is the only variant for a base race and thus just provides the missing information without actually being able to select, fill in the name of the base race.",
|
|
285
265
|
type: DB.String({ minLength: 1 }),
|
|
286
266
|
}),
|
|
267
|
+
attribute_adjustments: DB.Optional({
|
|
268
|
+
comment: "The respective attribute adjustments text from the source book.",
|
|
269
|
+
type: DB.String({ minLength: 1 }),
|
|
270
|
+
}),
|
|
271
|
+
automatic_advantages: DB.Optional({
|
|
272
|
+
comment: "The respective automatic advantages text from the source book.",
|
|
273
|
+
type: DB.String({ minLength: 1 }),
|
|
274
|
+
}),
|
|
275
|
+
automatic_disadvantages: DB.Optional({
|
|
276
|
+
comment: "The respective automatic disadvantages text from the source book.",
|
|
277
|
+
type: DB.String({ minLength: 1 }),
|
|
278
|
+
}),
|
|
279
|
+
strongly_recommended_advantages: DB.Optional({
|
|
280
|
+
comment: "The respective strongly recommended advantages text from the source book.",
|
|
281
|
+
type: DB.String({ minLength: 1 }),
|
|
282
|
+
}),
|
|
283
|
+
strongly_recommended_disadvantages: DB.Optional({
|
|
284
|
+
comment: "The respective strongly recommended disadvantages text from the source book.",
|
|
285
|
+
type: DB.String({ minLength: 1 }),
|
|
286
|
+
}),
|
|
287
287
|
common_advantages: DB.Optional({
|
|
288
288
|
comment: "The respective common advantages text from the source book.",
|
|
289
289
|
type: DB.String({ minLength: 1 }),
|
|
@@ -947,7 +947,7 @@ export declare const MagicalTradition: DB.Entity<"MagicalTradition", {
|
|
|
947
947
|
}>, false>;
|
|
948
948
|
}, "parent">>, true>;
|
|
949
949
|
primary: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"PrimaryAttribute", DB.Object<{
|
|
950
|
-
id: DB.MemberDecl<DB.ReferenceIdentifier,
|
|
950
|
+
id: DB.MemberDecl<DB.ReferenceIdentifier, true>;
|
|
951
951
|
use_half_for_arcane_energy: DB.MemberDecl<DB.Boolean, true>;
|
|
952
952
|
}>, []>>, false>;
|
|
953
953
|
can_learn_cantrips: DB.MemberDecl<DB.Boolean, true>;
|
|
@@ -1119,6 +1119,7 @@ export declare const MagicalTradition: DB.Entity<"MagicalTradition", {
|
|
|
1119
1119
|
name: DB.MemberDecl<DB.String, true>;
|
|
1120
1120
|
name_for_arcane_spellworks: DB.MemberDecl<DB.String, false>;
|
|
1121
1121
|
name_in_library: DB.MemberDecl<DB.String, false>;
|
|
1122
|
+
nameOfSpellcasters: DB.MemberDecl<DB.String, true>;
|
|
1122
1123
|
special_rules: DB.MemberDecl<DB.Array<DB.IncludeIdentifier<[], DB.TypeAlias<"SpecialRule", DB.Object<{
|
|
1123
1124
|
label: DB.MemberDecl<DB.String, false>;
|
|
1124
1125
|
text: DB.MemberDecl<DB.String, true>;
|
|
@@ -1132,7 +1133,3 @@ export declare const MagicalTradition: DB.Entity<"MagicalTradition", {
|
|
|
1132
1133
|
}>, []>>>, []>>, false>;
|
|
1133
1134
|
}>, true>;
|
|
1134
1135
|
}, undefined>;
|
|
1135
|
-
export declare const PrimaryAttribute: DB.TypeAlias<"PrimaryAttribute", DB.Object<{
|
|
1136
|
-
id: DB.MemberDecl<DB.ReferenceIdentifier, false>;
|
|
1137
|
-
use_half_for_arcane_energy: DB.MemberDecl<DB.Boolean, true>;
|
|
1138
|
-
}>, []>;
|
|
@@ -76,6 +76,10 @@ export const MagicalTradition = DB.Entity(import.meta.url, {
|
|
|
76
76
|
type: DB.String({ minLength: 1 }),
|
|
77
77
|
}),
|
|
78
78
|
name_in_library,
|
|
79
|
+
nameOfSpellcasters: DB.Required({
|
|
80
|
+
comment: "The name of spellcasters of this tradition. This is used to derive special rules from the data set already for this tradition.",
|
|
81
|
+
type: DB.String({ minLength: 1 }),
|
|
82
|
+
}),
|
|
79
83
|
special_rules: DB.Required({
|
|
80
84
|
comment: "The special rules of the tradition. They should be sorted like they are in the book.",
|
|
81
85
|
type: DB.Array(DB.IncludeIdentifier(SpecialRule), { minItems: 1 }),
|
|
@@ -100,10 +104,10 @@ export const MagicalTradition = DB.Entity(import.meta.url, {
|
|
|
100
104
|
},
|
|
101
105
|
],
|
|
102
106
|
});
|
|
103
|
-
|
|
107
|
+
const PrimaryAttribute = DB.TypeAlias(import.meta.url, {
|
|
104
108
|
name: "PrimaryAttribute",
|
|
105
109
|
type: () => DB.Object({
|
|
106
|
-
id: DB.
|
|
110
|
+
id: DB.Required({
|
|
107
111
|
comment: "The attribute’s identifier.",
|
|
108
112
|
type: AttributeIdentifier(),
|
|
109
113
|
}),
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@optolith/database-schema",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.43.0",
|
|
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",
|