@optolith/database-schema 0.54.0 → 0.56.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 +18 -0
- package/gen/types.d.ts +48 -29
- package/lib/types/Locale.d.ts +7 -0
- package/lib/types/Locale.js +7 -0
- package/lib/types/specialAbility/AdvancedCombatSpecialAbility.d.ts +4 -0
- package/lib/types/specialAbility/AdvancedCombatSpecialAbility.js +2 -1
- package/lib/types/specialAbility/BlessedTradition.d.ts +6 -5
- package/lib/types/specialAbility/BlessedTradition.js +11 -5
- package/package.json +3 -2
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,24 @@
|
|
|
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.56.0](https://github.com/Optolith/database-schema/compare/v0.55.0...v0.56.0) (2026-09-08)
|
|
6
|
+
|
|
7
|
+
### ⚠ BREAKING CHANGES
|
|
8
|
+
|
|
9
|
+
* advanced combat special ability type and labels
|
|
10
|
+
|
|
11
|
+
### Features
|
|
12
|
+
|
|
13
|
+
* advanced combat special ability type and labels ([b953514](https://github.com/Optolith/database-schema/commit/b95351409bb2a7d0e4af365b299e3a2bccf0a3a4))
|
|
14
|
+
## [0.55.0](https://github.com/Optolith/database-schema/compare/v0.54.0...v0.55.0) (2026-09-08)
|
|
15
|
+
|
|
16
|
+
### ⚠ BREAKING CHANGES
|
|
17
|
+
|
|
18
|
+
* restricted blessing translations and restructuring
|
|
19
|
+
|
|
20
|
+
### Features
|
|
21
|
+
|
|
22
|
+
* restricted blessing translations and restructuring ([f1867b7](https://github.com/Optolith/database-schema/commit/f1867b7b085a6219b13e5446b61ccf3b75878cba))
|
|
5
23
|
## [0.54.0](https://github.com/Optolith/database-schema/compare/v0.53.0...v0.54.0) (2026-09-08)
|
|
6
24
|
|
|
7
25
|
### ⚠ BREAKING CHANGES
|
package/gen/types.d.ts
CHANGED
|
@@ -548,6 +548,7 @@ export type TypeAliasMap = {
|
|
|
548
548
|
Cause: Cause
|
|
549
549
|
CheckResultBasedModifier: CheckResultBasedModifier
|
|
550
550
|
ChildNode: ChildNode
|
|
551
|
+
ChurchBlessedTradition: ChurchBlessedTradition
|
|
551
552
|
CloseCombatTechniqueSpecialRules: CloseCombatTechniqueSpecialRules
|
|
552
553
|
CombatAnimalPower: CombatAnimalPower
|
|
553
554
|
CombatTechniqueAdjustment: CombatTechniqueAdjustment
|
|
@@ -960,6 +961,11 @@ export interface AdvancedCombatSpecialAbility {
|
|
|
960
961
|
*/
|
|
961
962
|
usage_type: CombatSpecialAbilityUsageType
|
|
962
963
|
|
|
964
|
+
/**
|
|
965
|
+
* The definition of if the combat special ability can be used when armed or when unarmed.
|
|
966
|
+
*/
|
|
967
|
+
type: CombatSpecialAbilityType
|
|
968
|
+
|
|
963
969
|
/**
|
|
964
970
|
* Definitions for possible options for the activatable entry, derived from entry categories.
|
|
965
971
|
*
|
|
@@ -1086,6 +1092,17 @@ export type CombatSpecialAbilityUsageType =
|
|
|
1086
1092
|
kind: "SpecialManeuver"
|
|
1087
1093
|
}
|
|
1088
1094
|
|
|
1095
|
+
/**
|
|
1096
|
+
* The definition of if the combat special ability can be used when armed or when unarmed.
|
|
1097
|
+
*/
|
|
1098
|
+
export type CombatSpecialAbilityType =
|
|
1099
|
+
| {
|
|
1100
|
+
kind: "Armed"
|
|
1101
|
+
}
|
|
1102
|
+
| {
|
|
1103
|
+
kind: "Unarmed"
|
|
1104
|
+
}
|
|
1105
|
+
|
|
1089
1106
|
/**
|
|
1090
1107
|
* Definitions for possible options for the activatable entry. They can either be derived from entry categories or be defined explicitly. Both can happen as well, but if there is an explicitly defined select option and a derived select option has the same identifier (which may only happen if skill or combat technique identifiers are used for explicit select options), the explicit definition overwrites the derived option.
|
|
1091
1108
|
*
|
|
@@ -2381,6 +2398,8 @@ export interface Locale {
|
|
|
2381
2398
|
"Active": string
|
|
2382
2399
|
"Basic Maneuver": string
|
|
2383
2400
|
"Special Maneuver": string
|
|
2401
|
+
"AC": string
|
|
2402
|
+
"UC": string
|
|
2384
2403
|
"Volume": string
|
|
2385
2404
|
"Penalty": string
|
|
2386
2405
|
"Binding Cost": string
|
|
@@ -2391,6 +2410,11 @@ export interface Locale {
|
|
|
2391
2410
|
"corresponding liturgical style special ability": string
|
|
2392
2411
|
"corresponding magic style special ability": string
|
|
2393
2412
|
"corresponding skill style special ability": string
|
|
2413
|
+
"No Blessings": string
|
|
2414
|
+
"Restricted Blessings": string
|
|
2415
|
+
"Strongly Restricted Blessings": string
|
|
2416
|
+
"{$nameOfBlessedOnes} cannot use blessings.": string & { __params: { "nameOfBlessedOnes": StringableTranslationParameter } }
|
|
2417
|
+
"{$nameOfBlessedOnes} cannot use {$blessings :list type=disjunction}.": string & { __params: { "nameOfBlessedOnes": StringableTranslationParameter; "blessings": StringableTranslationParameter } }
|
|
2394
2418
|
"Favored Skills": string
|
|
2395
2419
|
"The primary attribute of this Tradition is {$attr}.": string & { __params: { "attr": StringableTranslationParameter } }
|
|
2396
2420
|
"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 } }
|
|
@@ -7562,11 +7586,6 @@ export interface BlessedTradition {
|
|
|
7562
7586
|
*/
|
|
7563
7587
|
primaryBlessing?: Blessing_ID
|
|
7564
7588
|
|
|
7565
|
-
/**
|
|
7566
|
-
* If a tradition restricts the possible blessings, the blessings that are **not** allowed.
|
|
7567
|
-
*/
|
|
7568
|
-
restricted_blessings?: RestrictedBlessings
|
|
7569
|
-
|
|
7570
7589
|
/**
|
|
7571
7590
|
* A list of favored combat techniques.
|
|
7572
7591
|
*/
|
|
@@ -7790,19 +7809,6 @@ export interface IndefiniteBlessingDurationTranslation {
|
|
|
7790
7809
|
description: string
|
|
7791
7810
|
}
|
|
7792
7811
|
|
|
7793
|
-
/**
|
|
7794
|
-
* If a tradition restricts the possible blessings, the blessings that are **not** allowed.
|
|
7795
|
-
*/
|
|
7796
|
-
export type RestrictedBlessings =
|
|
7797
|
-
| {
|
|
7798
|
-
kind: "Three"
|
|
7799
|
-
Three: [Blessing_ID, Blessing_ID, Blessing_ID]
|
|
7800
|
-
}
|
|
7801
|
-
| {
|
|
7802
|
-
kind: "Six"
|
|
7803
|
-
Six: [Blessing_ID, Blessing_ID, Blessing_ID, Blessing_ID, Blessing_ID, Blessing_ID]
|
|
7804
|
-
}
|
|
7805
|
-
|
|
7806
7812
|
export type FavoredCombatTechniques =
|
|
7807
7813
|
| {
|
|
7808
7814
|
kind: "All"
|
|
@@ -7853,12 +7859,36 @@ export interface FavoredSkillsSelection {
|
|
|
7853
7859
|
export type BlessedTraditionType =
|
|
7854
7860
|
| {
|
|
7855
7861
|
kind: "Church"
|
|
7862
|
+
Church: ChurchBlessedTradition
|
|
7856
7863
|
}
|
|
7857
7864
|
| {
|
|
7858
7865
|
kind: "Shamanistic"
|
|
7859
7866
|
Shamanistic: ShamanisticBlessedTradition
|
|
7860
7867
|
}
|
|
7861
7868
|
|
|
7869
|
+
/**
|
|
7870
|
+
* Additional rules for church traditions.
|
|
7871
|
+
*/
|
|
7872
|
+
export interface ChurchBlessedTradition {
|
|
7873
|
+
/**
|
|
7874
|
+
* If a tradition restricts the possible blessings, the blessings that are **not** allowed.
|
|
7875
|
+
*/
|
|
7876
|
+
restrictedBlessings?: RestrictedBlessings
|
|
7877
|
+
}
|
|
7878
|
+
|
|
7879
|
+
/**
|
|
7880
|
+
* If a tradition restricts the possible blessings, the blessings that are **not** allowed.
|
|
7881
|
+
*/
|
|
7882
|
+
export type RestrictedBlessings =
|
|
7883
|
+
| {
|
|
7884
|
+
kind: "Three"
|
|
7885
|
+
Three: [Blessing_ID, Blessing_ID, Blessing_ID]
|
|
7886
|
+
}
|
|
7887
|
+
| {
|
|
7888
|
+
kind: "Six"
|
|
7889
|
+
Six: [Blessing_ID, Blessing_ID, Blessing_ID, Blessing_ID, Blessing_ID, Blessing_ID]
|
|
7890
|
+
}
|
|
7891
|
+
|
|
7862
7892
|
/**
|
|
7863
7893
|
* Additional rules for shamanistic traditions.
|
|
7864
7894
|
*/
|
|
@@ -13459,17 +13489,6 @@ export type CombatSpecialAbilityTypeUsageType =
|
|
|
13459
13489
|
kind: "Active"
|
|
13460
13490
|
}
|
|
13461
13491
|
|
|
13462
|
-
/**
|
|
13463
|
-
* The definition of if the combat special ability can be used when armed or when unarmed.
|
|
13464
|
-
*/
|
|
13465
|
-
export type CombatSpecialAbilityType =
|
|
13466
|
-
| {
|
|
13467
|
-
kind: "Armed"
|
|
13468
|
-
}
|
|
13469
|
-
| {
|
|
13470
|
-
kind: "Unarmed"
|
|
13471
|
-
}
|
|
13472
|
-
|
|
13473
13492
|
/**
|
|
13474
13493
|
* A reference to an advanced special ability.
|
|
13475
13494
|
*/
|
package/lib/types/Locale.d.ts
CHANGED
|
@@ -1332,6 +1332,8 @@ export declare const Locale: DB.Entity<"Locale", {
|
|
|
1332
1332
|
Active: null;
|
|
1333
1333
|
"Basic Maneuver": null;
|
|
1334
1334
|
"Special Maneuver": null;
|
|
1335
|
+
AC: null;
|
|
1336
|
+
UC: null;
|
|
1335
1337
|
Volume: null;
|
|
1336
1338
|
Penalty: null;
|
|
1337
1339
|
"Binding Cost": null;
|
|
@@ -1342,6 +1344,11 @@ export declare const Locale: DB.Entity<"Locale", {
|
|
|
1342
1344
|
"corresponding liturgical style special ability": null;
|
|
1343
1345
|
"corresponding magic style special ability": null;
|
|
1344
1346
|
"corresponding skill style special ability": null;
|
|
1347
|
+
"No Blessings": null;
|
|
1348
|
+
"Restricted Blessings": null;
|
|
1349
|
+
"Strongly Restricted Blessings": null;
|
|
1350
|
+
"{$nameOfBlessedOnes} cannot use blessings.": null;
|
|
1351
|
+
"{$nameOfBlessedOnes} cannot use {$blessings :list type=disjunction}.": null;
|
|
1345
1352
|
"Favored Skills": null;
|
|
1346
1353
|
"The primary attribute of this Tradition is {$attr}.": null;
|
|
1347
1354
|
"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;
|
package/lib/types/Locale.js
CHANGED
|
@@ -1366,6 +1366,8 @@ export const Locale = DB.Entity(import.meta.url, {
|
|
|
1366
1366
|
"Active": null,
|
|
1367
1367
|
"Basic Maneuver": null,
|
|
1368
1368
|
"Special Maneuver": null,
|
|
1369
|
+
"AC": null,
|
|
1370
|
+
"UC": null,
|
|
1369
1371
|
"Volume": null,
|
|
1370
1372
|
"Penalty": null,
|
|
1371
1373
|
"Binding Cost": null,
|
|
@@ -1376,6 +1378,11 @@ export const Locale = DB.Entity(import.meta.url, {
|
|
|
1376
1378
|
"corresponding liturgical style special ability": null,
|
|
1377
1379
|
"corresponding magic style special ability": null,
|
|
1378
1380
|
"corresponding skill style special ability": null,
|
|
1381
|
+
"No Blessings": null,
|
|
1382
|
+
"Restricted Blessings": null,
|
|
1383
|
+
"Strongly Restricted Blessings": null,
|
|
1384
|
+
"{$nameOfBlessedOnes} cannot use blessings.": null,
|
|
1385
|
+
"{$nameOfBlessedOnes} cannot use {$blessings :list type=disjunction}.": null,
|
|
1379
1386
|
"Favored Skills": null,
|
|
1380
1387
|
"The primary attribute of this Tradition is {$attr}.": null,
|
|
1381
1388
|
"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,
|
|
@@ -13,6 +13,10 @@ export declare const AdvancedCombatSpecialAbility: DB.Entity<"AdvancedCombatSpec
|
|
|
13
13
|
BasicManeuver: DB.EnumCase<null>;
|
|
14
14
|
SpecialManeuver: DB.EnumCase<null>;
|
|
15
15
|
}, []>>, true>;
|
|
16
|
+
type: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"CombatSpecialAbilityType", {
|
|
17
|
+
Armed: DB.EnumCase<null>;
|
|
18
|
+
Unarmed: DB.EnumCase<null>;
|
|
19
|
+
}, []>>, true>;
|
|
16
20
|
select_options: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"SelectOptions", DB.Object<{
|
|
17
21
|
derived: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"SelectOptionCategory", {
|
|
18
22
|
Blessings: DB.EnumCase<null>;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import * as DB from "tsondb/schema/dsl";
|
|
2
2
|
import { input, levels, maximum, name, name_in_library, rules } from "../_Activatable.js";
|
|
3
3
|
import { ap_value, ap_value_append, ap_value_l10n } from "../_ActivatableAdventurePointsValue.js";
|
|
4
|
-
import { combat_techniques, penalty, special_ability_usage_type } from "../_ActivatableCombat.js";
|
|
4
|
+
import { combat_techniques, penalty, special_ability_usage_type, type, } from "../_ActivatableCombat.js";
|
|
5
5
|
import { activatableDisplayNameCustomizer, nameBuilderRules } from "../_ActivatableNames.js";
|
|
6
6
|
import { explicit_select_options, select_options } from "../_ActivatableSelectOptions.js";
|
|
7
7
|
import { skill_applications, skill_uses } from "../_ActivatableSkillApplicationsAndUses.js";
|
|
@@ -17,6 +17,7 @@ export const AdvancedCombatSpecialAbility = DB.Entity(import.meta.url, {
|
|
|
17
17
|
levels,
|
|
18
18
|
nameBuilderRules,
|
|
19
19
|
usage_type: special_ability_usage_type,
|
|
20
|
+
type,
|
|
20
21
|
select_options,
|
|
21
22
|
explicit_select_options,
|
|
22
23
|
skill_applications,
|
|
@@ -968,10 +968,6 @@ export declare const BlessedTradition: DB.Entity<"BlessedTradition", {
|
|
|
968
968
|
primary: DB.MemberDecl<DB.ReferenceIdentifier, false>;
|
|
969
969
|
aspects: DB.MemberDecl<DB.Array<DB.ReferenceIdentifier>, false>;
|
|
970
970
|
primaryBlessing: DB.MemberDecl<DB.ReferenceIdentifier, false>;
|
|
971
|
-
restricted_blessings: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"RestrictedBlessings", {
|
|
972
|
-
Three: DB.EnumCase<DB.Array<DB.ReferenceIdentifier>>;
|
|
973
|
-
Six: DB.EnumCase<DB.Array<DB.ReferenceIdentifier>>;
|
|
974
|
-
}, []>>, false>;
|
|
975
971
|
favored_combat_techniques: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"FavoredCombatTechniques", {
|
|
976
972
|
All: DB.EnumCase<null>;
|
|
977
973
|
AllClose: DB.EnumCase<null>;
|
|
@@ -989,7 +985,12 @@ export declare const BlessedTradition: DB.Entity<"BlessedTradition", {
|
|
|
989
985
|
options: DB.MemberDecl<DB.Array<DB.ReferenceIdentifier>, true>;
|
|
990
986
|
}>, []>>, false>;
|
|
991
987
|
type: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"BlessedTraditionType", {
|
|
992
|
-
Church: DB.EnumCase<
|
|
988
|
+
Church: DB.EnumCase<DB.IncludeIdentifier<[], DB.TypeAlias<"ChurchBlessedTradition", DB.Object<{
|
|
989
|
+
restrictedBlessings: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"RestrictedBlessings", {
|
|
990
|
+
Three: DB.EnumCase<DB.Array<DB.ReferenceIdentifier>>;
|
|
991
|
+
Six: DB.EnumCase<DB.Array<DB.ReferenceIdentifier>>;
|
|
992
|
+
}, []>>, false>;
|
|
993
|
+
}>, []>>>;
|
|
993
994
|
Shamanistic: DB.EnumCase<DB.IncludeIdentifier<[], DB.TypeAlias<"ShamanisticBlessedTradition", DB.Object<{
|
|
994
995
|
can_use_bone_mace_as_ceremonial_item: DB.MemberDecl<DB.Boolean, true>;
|
|
995
996
|
}>, []>>>;
|
|
@@ -31,10 +31,6 @@ export const BlessedTradition = DB.Entity(import.meta.url, {
|
|
|
31
31
|
comment: "The tradition’s primary blessing. Leave empty if the tradition does not have one.",
|
|
32
32
|
type: BlessingIdentifier(),
|
|
33
33
|
}),
|
|
34
|
-
restricted_blessings: DB.Optional({
|
|
35
|
-
comment: "If a tradition restricts the possible blessings, the blessings that are **not** allowed.",
|
|
36
|
-
type: DB.IncludeIdentifier(RestrictedBlessings),
|
|
37
|
-
}),
|
|
38
34
|
favored_combat_techniques: DB.Optional({
|
|
39
35
|
comment: "A list of favored combat techniques.",
|
|
40
36
|
type: DB.IncludeIdentifier(FavoredCombatTechniques),
|
|
@@ -138,10 +134,20 @@ const BlessedTraditionType = DB.Enum(import.meta.url, {
|
|
|
138
134
|
name: "BlessedTraditionType",
|
|
139
135
|
comment: "The type of the tradition. May be either church or shamanistic.",
|
|
140
136
|
values: () => ({
|
|
141
|
-
Church: DB.EnumCase({ type:
|
|
137
|
+
Church: DB.EnumCase({ type: DB.IncludeIdentifier(ChurchBlessedTradition) }),
|
|
142
138
|
Shamanistic: DB.EnumCase({ type: DB.IncludeIdentifier(ShamanisticBlessedTradition) }),
|
|
143
139
|
}),
|
|
144
140
|
});
|
|
141
|
+
const ChurchBlessedTradition = DB.TypeAlias(import.meta.url, {
|
|
142
|
+
name: "ChurchBlessedTradition",
|
|
143
|
+
comment: "Additional rules for church traditions.",
|
|
144
|
+
type: () => DB.Object({
|
|
145
|
+
restrictedBlessings: DB.Optional({
|
|
146
|
+
comment: "If a tradition restricts the possible blessings, the blessings that are **not** allowed.",
|
|
147
|
+
type: DB.IncludeIdentifier(RestrictedBlessings),
|
|
148
|
+
}),
|
|
149
|
+
}),
|
|
150
|
+
});
|
|
145
151
|
const ShamanisticBlessedTradition = DB.TypeAlias(import.meta.url, {
|
|
146
152
|
name: "ShamanisticBlessedTradition",
|
|
147
153
|
comment: "Additional rules for shamanistic traditions.",
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@optolith/database-schema",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.56.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",
|
|
@@ -50,7 +50,8 @@
|
|
|
50
50
|
"globals": "^17.12.0",
|
|
51
51
|
"nodemon": "^3.1.14",
|
|
52
52
|
"prettier": "^3.9.6",
|
|
53
|
-
"typescript": "
|
|
53
|
+
"typescript": "npm:@typescript/typescript6@^6.0.2",
|
|
54
|
+
"typescript-7": "npm:typescript@^7.0.2",
|
|
54
55
|
"typescript-eslint": "^8.70.0"
|
|
55
56
|
},
|
|
56
57
|
"repository": "github:Optolith/database-schema",
|