@optolith/database-schema 0.111.1 → 0.113.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 +35 -0
- package/gen/types.d.ts +54 -3
- package/lib/cache/activatableSelectOptions.js +16 -16
- package/lib/cache/newApplicationsAndUses.d.ts +3 -1
- package/lib/cache/newApplicationsAndUses.js +15 -7
- package/lib/types/Settings.d.ts +122 -0
- package/lib/types/Settings.js +27 -1
- package/lib/types/Skill.js +5 -5
- package/lib/types/equipment/item/Armor.d.ts +19 -4
- package/lib/types/equipment/item/Armor.js +22 -3
- package/lib/types/equipment/item/ArmorAccessory.d.ts +6 -1
- package/lib/types/equipment/item/BandageOrRemedy.d.ts +6 -1
- package/lib/types/equipment/item/CeremonialItem.d.ts +6 -1
- package/lib/types/equipment/item/Clothes.d.ts +6 -1
- package/lib/types/equipment/item/Container.d.ts +6 -1
- package/lib/types/equipment/item/EquipmentOfBlessedOnes.d.ts +6 -1
- package/lib/types/equipment/item/IlluminationLightSource.d.ts +6 -1
- package/lib/types/equipment/item/IlluminationRefillOrSupply.d.ts +6 -1
- package/lib/types/equipment/item/Item.d.ts +6 -1
- package/lib/types/equipment/item/Liebesspielzeug.d.ts +6 -1
- package/lib/types/equipment/item/LuxuryGood.d.ts +6 -1
- package/lib/types/equipment/item/MagicalArtifact.d.ts +6 -1
- package/lib/types/equipment/item/MusicalInstrument.d.ts +6 -1
- package/lib/types/equipment/item/OrienteeringAid.d.ts +6 -1
- package/lib/types/equipment/item/RopeOrChain.d.ts +6 -1
- package/lib/types/equipment/item/Stationery.d.ts +6 -1
- package/lib/types/equipment/item/ThievesTool.d.ts +6 -1
- package/lib/types/equipment/item/TravelGearOrTool.d.ts +6 -1
- package/lib/types/equipment/item/WeaponAccessory.d.ts +6 -1
- package/lib/types/equipment/item/_Item.d.ts +12 -2
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,41 @@
|
|
|
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.113.1](https://github.com/Optolith/database-schema/compare/v0.113.0...v0.113.1) (2026-10-26)
|
|
6
|
+
|
|
7
|
+
### Bug Fixes
|
|
8
|
+
|
|
9
|
+
* **cache:** missing sources for derived select options ([68347f2](https://github.com/Optolith/database-schema/commit/68347f21f6adfc62b4c755b4bc1ad5b8db0a543e))
|
|
10
|
+
|
|
11
|
+
## [0.113.0](https://github.com/Optolith/database-schema/compare/v0.112.0...v0.113.0) (2026-10-26)
|
|
12
|
+
|
|
13
|
+
### ⚠ BREAKING CHANGES
|
|
14
|
+
|
|
15
|
+
* pin enhancement focus rules in settings
|
|
16
|
+
|
|
17
|
+
### Features
|
|
18
|
+
|
|
19
|
+
* **cache:** include parent source refs in new applications and uses ([26a0c1a](https://github.com/Optolith/database-schema/commit/26a0c1a959dd7c5ced909cee03a13be67174cc5b))
|
|
20
|
+
* pin enhancement focus rules in settings ([711a7d5](https://github.com/Optolith/database-schema/commit/711a7d5ac1f008e0d684cb4a8e94c7c9209eae8a))
|
|
21
|
+
|
|
22
|
+
## [0.112.0](https://github.com/Optolith/database-schema/compare/v0.111.1...v0.112.0) (2026-10-24)
|
|
23
|
+
|
|
24
|
+
### ⚠ BREAKING CHANGES
|
|
25
|
+
|
|
26
|
+
* custom additional penalties
|
|
27
|
+
* define skill and combat technique rating bonus entries
|
|
28
|
+
* optional armor weight
|
|
29
|
+
|
|
30
|
+
### Features
|
|
31
|
+
|
|
32
|
+
* custom additional penalties ([1c56824](https://github.com/Optolith/database-schema/commit/1c56824e11b36a9fdbc3b6cb57588dc0a684358e))
|
|
33
|
+
* define skill and combat technique rating bonus entries ([efe4a54](https://github.com/Optolith/database-schema/commit/efe4a549c01e4ee4ed8710f6447059a5b60cd0b9))
|
|
34
|
+
* optional armor weight ([35729c4](https://github.com/Optolith/database-schema/commit/35729c42a7dd7152be8c3146032a5e42a7ea915a))
|
|
35
|
+
|
|
36
|
+
### Bug Fixes
|
|
37
|
+
|
|
38
|
+
* skill descriptions support markdown ([1aeb838](https://github.com/Optolith/database-schema/commit/1aeb838e43bde7a31b8f34ff965b3e06ae3d2c82))
|
|
39
|
+
|
|
5
40
|
## [0.111.1](https://github.com/Optolith/database-schema/compare/v0.111.0...v0.111.1) (2026-10-18)
|
|
6
41
|
|
|
7
42
|
## [0.111.0](https://github.com/Optolith/database-schema/compare/v0.110.1...v0.111.0) (2026-10-18)
|
package/gen/types.d.ts
CHANGED
|
@@ -362,6 +362,7 @@ export type EnumMap = {
|
|
|
362
362
|
GoblinRitualPerformanceParameters: GoblinRitualPerformanceParameters
|
|
363
363
|
GoblinRitualRangeValue: GoblinRitualRangeValue
|
|
364
364
|
GradientColor: GradientColor
|
|
365
|
+
HasAdditionalPenalties: HasAdditionalPenalties
|
|
365
366
|
HerbalAidCombatUse: HerbalAidCombatUse
|
|
366
367
|
HerbalPreservationLongevity: HerbalPreservationLongevity
|
|
367
368
|
HerbalPreservationLongevityValue: HerbalPreservationLongevityValue
|
|
@@ -645,6 +646,7 @@ export type TypeAliasMap = {
|
|
|
645
646
|
CursesOptions: CursesOptions
|
|
646
647
|
CustomBannzeichenSuboption: CustomBannzeichenSuboption
|
|
647
648
|
CustomDurationUnit: CustomDurationUnit
|
|
649
|
+
CustomHasAdditionalPenalties: CustomHasAdditionalPenalties
|
|
648
650
|
CustomMagicalRuneSuboption: CustomMagicalRuneSuboption
|
|
649
651
|
DaggerRitualArcaneEnergyCost: DaggerRitualArcaneEnergyCost
|
|
650
652
|
DefaultEquipmentCategoryTypeRules: DefaultEquipmentCategoryTypeRules
|
|
@@ -684,6 +686,7 @@ export type TypeAliasMap = {
|
|
|
684
686
|
EnergyType: EnergyType
|
|
685
687
|
EnhancementPrerequisite: EnhancementPrerequisite
|
|
686
688
|
EnhancementPrerequisites: EnhancementPrerequisites
|
|
689
|
+
EnhancementsSettings: EnhancementsSettings
|
|
687
690
|
EquipmentPackageItem: EquipmentPackageItem
|
|
688
691
|
EquipmentPrerequisites: EquipmentPrerequisites
|
|
689
692
|
Errata: Errata
|
|
@@ -745,7 +748,6 @@ export type TypeAliasMap = {
|
|
|
745
748
|
GoblinRitualSustainedCost: GoblinRitualSustainedCost
|
|
746
749
|
GoblinRitualSustainedPerformanceParameters: GoblinRitualSustainedPerformanceParameters
|
|
747
750
|
GroupedCommonProfessions: GroupedCommonProfessions
|
|
748
|
-
HasAdditionalPenalties: HasAdditionalPenalties
|
|
749
751
|
HeadHitZone: HeadHitZone
|
|
750
752
|
HeadHitZoneCombinationPossibilities: HeadHitZoneCombinationPossibilities
|
|
751
753
|
HerbalAidRecipe: HerbalAidRecipe
|
|
@@ -24228,7 +24230,7 @@ export interface Armor {
|
|
|
24228
24230
|
/**
|
|
24229
24231
|
* The weight in kg.
|
|
24230
24232
|
*/
|
|
24231
|
-
weight
|
|
24233
|
+
weight?: Weight
|
|
24232
24234
|
|
|
24233
24235
|
/**
|
|
24234
24236
|
* The complexity of crafting the item.
|
|
@@ -24363,7 +24365,26 @@ export type Encumbrance = number
|
|
|
24363
24365
|
/**
|
|
24364
24366
|
* Does the armor have additional penalties (MOV -1, INI -1)?
|
|
24365
24367
|
*/
|
|
24366
|
-
export type HasAdditionalPenalties =
|
|
24368
|
+
export type HasAdditionalPenalties =
|
|
24369
|
+
| {
|
|
24370
|
+
kind: "Standard"
|
|
24371
|
+
Standard: boolean
|
|
24372
|
+
}
|
|
24373
|
+
| {
|
|
24374
|
+
kind: "Custom"
|
|
24375
|
+
Custom: CustomHasAdditionalPenalties
|
|
24376
|
+
}
|
|
24377
|
+
|
|
24378
|
+
export type CustomHasAdditionalPenalties = {
|
|
24379
|
+
[derivedCharacteristicId: string]: CustomAdditionalPenalty
|
|
24380
|
+
}
|
|
24381
|
+
|
|
24382
|
+
export interface CustomAdditionalPenalty {
|
|
24383
|
+
/**
|
|
24384
|
+
* The value of the additional penalty.
|
|
24385
|
+
*/
|
|
24386
|
+
value: number
|
|
24387
|
+
}
|
|
24367
24388
|
|
|
24368
24389
|
/**
|
|
24369
24390
|
* The armor type.
|
|
@@ -29240,10 +29261,25 @@ export interface Settings {
|
|
|
29240
29261
|
*/
|
|
29241
29262
|
styles: StyleSpecialAbilitySettings
|
|
29242
29263
|
|
|
29264
|
+
/**
|
|
29265
|
+
* Spell and Liturgical Chant Enhancements are part of focus rules. This type defines which focus rule must be enabled in order to use an enhancement. Essentially, this is a default prerequisite they must meet, but manually inserting them with every enhancement is a lot of work and error-prone. Therefore, in order to use an enhancement, prerequisites for the respective focus rule must be generated for every entry.
|
|
29266
|
+
*/
|
|
29267
|
+
enhancements: EnhancementsSettings
|
|
29268
|
+
|
|
29243
29269
|
/**
|
|
29244
29270
|
* The publication that extends the description of books with additional information.
|
|
29245
29271
|
*/
|
|
29246
29272
|
extendedBookDescriptionPublication: Publication_ID
|
|
29273
|
+
|
|
29274
|
+
/**
|
|
29275
|
+
* The entry that grants a bonus of 1 towards the maximum skill rating per selection.
|
|
29276
|
+
*/
|
|
29277
|
+
maximumSkillRatingBonusEntry: ActivatableIdentifier
|
|
29278
|
+
|
|
29279
|
+
/**
|
|
29280
|
+
* The entry that grants a bonus of 1 towards the maximum skill rating per selection.
|
|
29281
|
+
*/
|
|
29282
|
+
maximumCombatTechniqueRatingBonusEntry: ActivatableIdentifier
|
|
29247
29283
|
}
|
|
29248
29284
|
|
|
29249
29285
|
/**
|
|
@@ -29311,6 +29347,21 @@ export interface StyleSpecialAbilitySettings {
|
|
|
29311
29347
|
liturgical: FocusRule_ID
|
|
29312
29348
|
}
|
|
29313
29349
|
|
|
29350
|
+
/**
|
|
29351
|
+
* Spell and Liturgical Chant Enhancements are part of focus rules. This type defines which focus rule must be enabled in order to use an enhancement. Essentially, this is a default prerequisite they must meet, but manually inserting them with every enhancement is a lot of work and error-prone. Therefore, in order to use an enhancement, prerequisites for the respective focus rule must be generated for every entry.
|
|
29352
|
+
*/
|
|
29353
|
+
export interface EnhancementsSettings {
|
|
29354
|
+
/**
|
|
29355
|
+
* The focus rule for spell enhancements.
|
|
29356
|
+
*/
|
|
29357
|
+
spell: FocusRule_ID
|
|
29358
|
+
|
|
29359
|
+
/**
|
|
29360
|
+
* The focus rule for liturgical chant enhancements.
|
|
29361
|
+
*/
|
|
29362
|
+
liturgicalChant: FocusRule_ID
|
|
29363
|
+
}
|
|
29364
|
+
|
|
29314
29365
|
export interface SexPractice {
|
|
29315
29366
|
/**
|
|
29316
29367
|
* References to where in which publications this entry has been defined. Entries may also be added or removed in later printings.
|
|
@@ -102,11 +102,12 @@ const getApValueForSkillish = (config, id, ic) => {
|
|
|
102
102
|
return assertExhaustive(config);
|
|
103
103
|
}
|
|
104
104
|
};
|
|
105
|
-
const convertSkillApplicationOrUse = (entryId, id, applicationOrUse) => ({
|
|
105
|
+
const convertSkillApplicationOrUse = (entryId, id, applicationOrUse, src) => ({
|
|
106
106
|
id: `${fromUniformCase(entryId)}+${applicationOrUse.id.toFixed()}`,
|
|
107
107
|
content: {
|
|
108
108
|
parent: entryId,
|
|
109
109
|
skills: [id],
|
|
110
|
+
src,
|
|
110
111
|
translations: applicationOrUse.translations,
|
|
111
112
|
},
|
|
112
113
|
});
|
|
@@ -131,7 +132,7 @@ const getSpellworkFilter = (category) => {
|
|
|
131
132
|
}
|
|
132
133
|
});
|
|
133
134
|
};
|
|
134
|
-
const getDerivedSkillishSelectOptions = (database, entryId, entity, category, options, filter) => {
|
|
135
|
+
const getDerivedSkillishSelectOptions = (database, entryId, entity, category, options, filter, parentSrc) => {
|
|
135
136
|
const { prerequisites } = category;
|
|
136
137
|
const { bindingCost, ap_value } = options;
|
|
137
138
|
const instances = database.getAllInstanceContainersOfEntity(entity);
|
|
@@ -150,13 +151,12 @@ const getDerivedSkillishSelectOptions = (database, entryId, entity, category, op
|
|
|
150
151
|
name: t10n.name,
|
|
151
152
|
})),
|
|
152
153
|
},
|
|
153
|
-
newApplications: category.skill_applications?.map(app => convertSkillApplicationOrUse(entryId, id, app)) ??
|
|
154
|
-
|
|
155
|
-
uses: category.skill_uses?.map(use => convertSkillApplicationOrUse(entryId, id, use)) ?? [],
|
|
154
|
+
newApplications: category.skill_applications?.map(app => convertSkillApplicationOrUse(entryId, id, app, parentSrc)) ?? [],
|
|
155
|
+
uses: category.skill_uses?.map(use => convertSkillApplicationOrUse(entryId, id, use, parentSrc)) ?? [],
|
|
156
156
|
};
|
|
157
157
|
});
|
|
158
158
|
};
|
|
159
|
-
const getDerivedSelectOptions = (selectOptionCategory, entryId, database) => {
|
|
159
|
+
const getDerivedSelectOptions = (selectOptionCategory, entryId, database, parentSrc) => {
|
|
160
160
|
switch (selectOptionCategory.kind) {
|
|
161
161
|
case "Blessings":
|
|
162
162
|
return database
|
|
@@ -685,15 +685,15 @@ const getDerivedSelectOptions = (selectOptionCategory, entryId, database) => {
|
|
|
685
685
|
const matchesIdRequirement = category.Skills.specific === undefined ||
|
|
686
686
|
matchesSpecificSkillishIdList(category.Skills.specific, required => required === id);
|
|
687
687
|
return matchesGroupRequirement && matchesIdRequirement;
|
|
688
|
-
});
|
|
688
|
+
}, parentSrc);
|
|
689
689
|
case "Spells":
|
|
690
|
-
return getDerivedSkillishSelectOptions(database, entryId, "Spell", category.Spells, selectOptionCategory.Skills, getSpellworkFilter(category.Spells));
|
|
690
|
+
return getDerivedSkillishSelectOptions(database, entryId, "Spell", category.Spells, selectOptionCategory.Skills, getSpellworkFilter(category.Spells), parentSrc);
|
|
691
691
|
case "Rituals":
|
|
692
|
-
return getDerivedSkillishSelectOptions(database, entryId, "Ritual", category.Rituals, selectOptionCategory.Skills, getSpellworkFilter(category.Rituals));
|
|
692
|
+
return getDerivedSkillishSelectOptions(database, entryId, "Ritual", category.Rituals, selectOptionCategory.Skills, getSpellworkFilter(category.Rituals), parentSrc);
|
|
693
693
|
case "LiturgicalChants":
|
|
694
|
-
return getDerivedSkillishSelectOptions(database, entryId, "LiturgicalChant", category.LiturgicalChants, selectOptionCategory.Skills, getDefaultSkillishFilter(category.LiturgicalChants));
|
|
694
|
+
return getDerivedSkillishSelectOptions(database, entryId, "LiturgicalChant", category.LiturgicalChants, selectOptionCategory.Skills, getDefaultSkillishFilter(category.LiturgicalChants), parentSrc);
|
|
695
695
|
case "Ceremonies":
|
|
696
|
-
return getDerivedSkillishSelectOptions(database, entryId, "Ceremony", category.Ceremonies, selectOptionCategory.Skills, getDefaultSkillishFilter(category.Ceremonies));
|
|
696
|
+
return getDerivedSkillishSelectOptions(database, entryId, "Ceremony", category.Ceremonies, selectOptionCategory.Skills, getDefaultSkillishFilter(category.Ceremonies), parentSrc);
|
|
697
697
|
default:
|
|
698
698
|
return assertExhaustive(category);
|
|
699
699
|
}
|
|
@@ -702,9 +702,9 @@ const getDerivedSelectOptions = (selectOptionCategory, entryId, database) => {
|
|
|
702
702
|
return selectOptionCategory.CombatTechniques.categories.flatMap(category => {
|
|
703
703
|
switch (category.kind) {
|
|
704
704
|
case "CloseCombatTechniques":
|
|
705
|
-
return getDerivedSkillishSelectOptions(database, entryId, "CloseCombatTechnique", category.CloseCombatTechniques, selectOptionCategory.CombatTechniques, getDefaultSkillishFilter(category.CloseCombatTechniques));
|
|
705
|
+
return getDerivedSkillishSelectOptions(database, entryId, "CloseCombatTechnique", category.CloseCombatTechniques, selectOptionCategory.CombatTechniques, getDefaultSkillishFilter(category.CloseCombatTechniques), parentSrc);
|
|
706
706
|
case "RangedCombatTechniques":
|
|
707
|
-
return getDerivedSkillishSelectOptions(database, entryId, "RangedCombatTechnique", category.RangedCombatTechniques, selectOptionCategory.CombatTechniques, getDefaultSkillishFilter(category.RangedCombatTechniques));
|
|
707
|
+
return getDerivedSkillishSelectOptions(database, entryId, "RangedCombatTechnique", category.RangedCombatTechniques, selectOptionCategory.CombatTechniques, getDefaultSkillishFilter(category.RangedCombatTechniques), parentSrc);
|
|
708
708
|
default:
|
|
709
709
|
return assertExhaustive(category);
|
|
710
710
|
}
|
|
@@ -787,14 +787,14 @@ const getExplicitSelectOptions = (id, database) => database
|
|
|
787
787
|
newApplications: [], // database.getAllChildInstanceContainersForParent("NewSkillApplication", Case("GeneralSelectOption", id)), // prevent duplicates as these can already be queried from the database
|
|
788
788
|
uses: [], // database.getAllChildInstanceContainersForParent("SkillUse", Case("GeneralSelectOption", id)), // prevent duplicates as these can already be queried from the database
|
|
789
789
|
}));
|
|
790
|
-
const getSelectOptions = (selectOptions, id, database) => [
|
|
790
|
+
const getSelectOptions = (selectOptions, id, database, parentSrc) => [
|
|
791
791
|
...(selectOptions.derived === undefined
|
|
792
792
|
? []
|
|
793
|
-
: getDerivedSelectOptions(selectOptions.derived, id, database)),
|
|
793
|
+
: getDerivedSelectOptions(selectOptions.derived, id, database, parentSrc)),
|
|
794
794
|
...getExplicitSelectOptions(id, database),
|
|
795
795
|
];
|
|
796
796
|
const getSelectOptionsForResults = (database, entity, results) => results.reduce((acc, { id, content }) => {
|
|
797
|
-
const options = getSelectOptions(content.select_options ?? {}, Case(entity, id), database);
|
|
797
|
+
const options = getSelectOptions(content.select_options ?? {}, Case(entity, id), database, content.src);
|
|
798
798
|
if (options.length > 0) {
|
|
799
799
|
acc[id] = options;
|
|
800
800
|
}
|
|
@@ -1,16 +1,18 @@
|
|
|
1
|
-
import type { ActivatableIdentifier, NewSkillApplication, NewSkillApplicationOrUseParentIdentifier, Skill_ID, SkillUse } from "../../gen/types.js";
|
|
1
|
+
import type { ActivatableIdentifier, NewSkillApplication, NewSkillApplicationOrUseParentIdentifier, PublicationRefs, Skill_ID, SkillUse } from "../../gen/types.js";
|
|
2
2
|
import type { ActivatableSelectOptionsCache } from "./activatableSelectOptions.ts";
|
|
3
3
|
import type { CacheBuilder } from "./internal.ts";
|
|
4
4
|
export type ResolvedNewSkillApplication = {
|
|
5
5
|
id: string;
|
|
6
6
|
content: Omit<NewSkillApplication, "parent"> & {
|
|
7
7
|
parent: NewSkillApplicationOrUseParentIdentifier | ActivatableIdentifier;
|
|
8
|
+
src: PublicationRefs | undefined;
|
|
8
9
|
};
|
|
9
10
|
};
|
|
10
11
|
export type ResolvedSkillUse = {
|
|
11
12
|
id: string;
|
|
12
13
|
content: Omit<SkillUse, "parent"> & {
|
|
13
14
|
parent: NewSkillApplicationOrUseParentIdentifier | ActivatableIdentifier;
|
|
15
|
+
src: PublicationRefs | undefined;
|
|
14
16
|
};
|
|
15
17
|
};
|
|
16
18
|
export type NewApplicationsAndUsesCache = {
|
|
@@ -1,15 +1,23 @@
|
|
|
1
|
-
const groupByAffectedSkill = (entries, prev = {}) => entries
|
|
1
|
+
const groupByAffectedSkill = (database, entries, prev = {}) => entries
|
|
2
|
+
.map(entry => ({
|
|
3
|
+
...entry,
|
|
4
|
+
content: {
|
|
5
|
+
...entry.content,
|
|
6
|
+
src: database.getInstanceOfEntityById(entry.content.parent)?.src,
|
|
7
|
+
},
|
|
8
|
+
}))
|
|
9
|
+
.reduce((acc, entry) => entry.content.skills.reduce((acc1, skillId) => {
|
|
2
10
|
acc1[skillId] = [...(acc1[skillId] ?? []), entry];
|
|
3
11
|
return acc1;
|
|
4
12
|
}, acc), prev);
|
|
5
|
-
const addGeneratedEntries = (generatedSelectOptions, prev) => Object.values(generatedSelectOptions).reduce((acc, byInstance) => Object.values(byInstance).reduce((acc1, resolvedSelectOptions) => resolvedSelectOptions.reduce((acc2, selectOption) => ({
|
|
6
|
-
newApplications: groupByAffectedSkill(selectOption.newApplications, acc2.newApplications),
|
|
7
|
-
uses: groupByAffectedSkill(selectOption.uses, acc2.uses),
|
|
13
|
+
const addGeneratedEntries = (database, generatedSelectOptions, prev) => Object.values(generatedSelectOptions).reduce((acc, byInstance) => Object.values(byInstance).reduce((acc1, resolvedSelectOptions) => resolvedSelectOptions.reduce((acc2, selectOption) => ({
|
|
14
|
+
newApplications: groupByAffectedSkill(database, selectOption.newApplications, acc2.newApplications),
|
|
15
|
+
uses: groupByAffectedSkill(database, selectOption.uses, acc2.uses),
|
|
8
16
|
}), acc1), acc), prev);
|
|
9
17
|
export const buildNewApplicationsAndUsesCache = (database, _idMap, generatedSelectOptions) => {
|
|
10
18
|
const cache = {
|
|
11
|
-
newApplications: groupByAffectedSkill(database.getAllInstanceContainersOfEntity("NewSkillApplication")),
|
|
12
|
-
uses: groupByAffectedSkill(database.getAllInstanceContainersOfEntity("SkillUse")),
|
|
19
|
+
newApplications: groupByAffectedSkill(database, database.getAllInstanceContainersOfEntity("NewSkillApplication")),
|
|
20
|
+
uses: groupByAffectedSkill(database, database.getAllInstanceContainersOfEntity("SkillUse")),
|
|
13
21
|
};
|
|
14
|
-
return addGeneratedEntries(generatedSelectOptions, cache);
|
|
22
|
+
return addGeneratedEntries(database, generatedSelectOptions, cache);
|
|
15
23
|
};
|
package/lib/types/Settings.d.ts
CHANGED
|
@@ -186,5 +186,127 @@ export declare const Settings: DB.SingletonEntity<"Settings", {
|
|
|
186
186
|
magic: DB.MemberDecl<DB.ReferenceIdentifier, true>;
|
|
187
187
|
liturgical: DB.MemberDecl<DB.ReferenceIdentifier, true>;
|
|
188
188
|
}>, []>>, true>;
|
|
189
|
+
enhancements: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"EnhancementsSettings", DB.Object<{
|
|
190
|
+
spell: DB.MemberDecl<DB.ReferenceIdentifier, true>;
|
|
191
|
+
liturgicalChant: DB.MemberDecl<DB.ReferenceIdentifier, true>;
|
|
192
|
+
}>, []>>, true>;
|
|
189
193
|
extendedBookDescriptionPublication: DB.MemberDecl<DB.ReferenceIdentifier, true>;
|
|
194
|
+
maximumSkillRatingBonusEntry: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"ActivatableIdentifier", {
|
|
195
|
+
Adoruzepterzauber: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
196
|
+
ArcaneOrbEnchantment: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
197
|
+
AttireEnchantment: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
198
|
+
Beutelzauber: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
199
|
+
BowlEnchantment: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
200
|
+
CauldronEnchantment: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
201
|
+
ChronicleEnchantment: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
202
|
+
DaggerRitual: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
203
|
+
FoolsHatEnchantment: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
204
|
+
Haubenzauber: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
205
|
+
Hauerkettenzauber: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
206
|
+
InstrumentEnchantment: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
207
|
+
Keulenzauber: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
208
|
+
Krallenkettenzauber: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
209
|
+
Kristallkugelzauber: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
210
|
+
OrbEnchantment: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
211
|
+
RingEnchantment: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
212
|
+
Schweinetrommelzauber: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
213
|
+
SickleRitual: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
214
|
+
SpellSwordEnchantment: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
215
|
+
StaffEnchantment: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
216
|
+
ToyEnchantment: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
217
|
+
Trinkhornzauber: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
218
|
+
WandEnchantment: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
219
|
+
WeaponEnchantment: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
220
|
+
AdvancedCombatSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
221
|
+
AdvancedKarmaSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
222
|
+
AdvancedMagicalSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
223
|
+
AdvancedSkillSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
224
|
+
AncestorGlyph: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
225
|
+
BlessedTradition: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
226
|
+
BrawlingSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
227
|
+
CeremonialItemSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
228
|
+
CombatSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
229
|
+
CombatStyleSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
230
|
+
CommandSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
231
|
+
FamiliarSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
232
|
+
FatePointSexSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
233
|
+
FatePointSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
234
|
+
GeneralSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
235
|
+
KarmaSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
236
|
+
LiturgicalStyleSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
237
|
+
LycantropicGift: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
238
|
+
MagicalSign: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
239
|
+
MagicalSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
240
|
+
MagicalTradition: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
241
|
+
MagicStyleSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
242
|
+
PactGift: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
243
|
+
ProtectiveWardingCircleSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
244
|
+
Sermon: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
245
|
+
SexSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
246
|
+
SikaryanDrainSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
247
|
+
SkillStyleSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
248
|
+
VampiricGift: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
249
|
+
Vision: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
250
|
+
Advantage: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
251
|
+
Disadvantage: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
252
|
+
}, []>>, true>;
|
|
253
|
+
maximumCombatTechniqueRatingBonusEntry: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"ActivatableIdentifier", {
|
|
254
|
+
Adoruzepterzauber: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
255
|
+
ArcaneOrbEnchantment: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
256
|
+
AttireEnchantment: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
257
|
+
Beutelzauber: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
258
|
+
BowlEnchantment: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
259
|
+
CauldronEnchantment: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
260
|
+
ChronicleEnchantment: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
261
|
+
DaggerRitual: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
262
|
+
FoolsHatEnchantment: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
263
|
+
Haubenzauber: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
264
|
+
Hauerkettenzauber: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
265
|
+
InstrumentEnchantment: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
266
|
+
Keulenzauber: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
267
|
+
Krallenkettenzauber: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
268
|
+
Kristallkugelzauber: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
269
|
+
OrbEnchantment: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
270
|
+
RingEnchantment: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
271
|
+
Schweinetrommelzauber: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
272
|
+
SickleRitual: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
273
|
+
SpellSwordEnchantment: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
274
|
+
StaffEnchantment: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
275
|
+
ToyEnchantment: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
276
|
+
Trinkhornzauber: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
277
|
+
WandEnchantment: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
278
|
+
WeaponEnchantment: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
279
|
+
AdvancedCombatSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
280
|
+
AdvancedKarmaSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
281
|
+
AdvancedMagicalSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
282
|
+
AdvancedSkillSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
283
|
+
AncestorGlyph: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
284
|
+
BlessedTradition: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
285
|
+
BrawlingSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
286
|
+
CeremonialItemSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
287
|
+
CombatSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
288
|
+
CombatStyleSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
289
|
+
CommandSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
290
|
+
FamiliarSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
291
|
+
FatePointSexSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
292
|
+
FatePointSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
293
|
+
GeneralSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
294
|
+
KarmaSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
295
|
+
LiturgicalStyleSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
296
|
+
LycantropicGift: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
297
|
+
MagicalSign: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
298
|
+
MagicalSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
299
|
+
MagicalTradition: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
300
|
+
MagicStyleSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
301
|
+
PactGift: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
302
|
+
ProtectiveWardingCircleSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
303
|
+
Sermon: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
304
|
+
SexSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
305
|
+
SikaryanDrainSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
306
|
+
SkillStyleSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
307
|
+
VampiricGift: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
308
|
+
Vision: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
309
|
+
Advantage: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
310
|
+
Disadvantage: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
311
|
+
}, []>>, true>;
|
|
190
312
|
}>;
|
package/lib/types/Settings.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import * as DB from "tsondb/schema/dsl";
|
|
2
2
|
import { AdvantageIdentifier, DerivedCharacteristicIdentifier, ExperienceLevelIdentifier, FocusRuleIdentifier, PublicationIdentifier, } from "./_Identifier.js";
|
|
3
|
-
import { SpecialAbilityIdentifier } from "./_IdentifierGroup.js";
|
|
3
|
+
import { ActivatableIdentifier, SpecialAbilityIdentifier } from "./_IdentifierGroup.js";
|
|
4
4
|
export const Settings = DB.SingletonEntity(import.meta.url, {
|
|
5
5
|
name: "Settings",
|
|
6
6
|
type: () => DB.Object({
|
|
@@ -27,10 +27,22 @@ export const Settings = DB.SingletonEntity(import.meta.url, {
|
|
|
27
27
|
comment: StyleSpecialAbilitySettings.comment,
|
|
28
28
|
type: DB.IncludeIdentifier(StyleSpecialAbilitySettings),
|
|
29
29
|
}),
|
|
30
|
+
enhancements: DB.Required({
|
|
31
|
+
comment: EnhancementsSettings.comment,
|
|
32
|
+
type: DB.IncludeIdentifier(EnhancementsSettings),
|
|
33
|
+
}),
|
|
30
34
|
extendedBookDescriptionPublication: DB.Required({
|
|
31
35
|
comment: "The publication that extends the description of books with additional information.",
|
|
32
36
|
type: PublicationIdentifier(),
|
|
33
37
|
}),
|
|
38
|
+
maximumSkillRatingBonusEntry: DB.Required({
|
|
39
|
+
comment: "The entry that grants a bonus of 1 towards the maximum skill rating per selection.",
|
|
40
|
+
type: DB.IncludeIdentifier(ActivatableIdentifier),
|
|
41
|
+
}),
|
|
42
|
+
maximumCombatTechniqueRatingBonusEntry: DB.Required({
|
|
43
|
+
comment: "The entry that grants a bonus of 1 towards the maximum skill rating per selection.",
|
|
44
|
+
type: DB.IncludeIdentifier(ActivatableIdentifier),
|
|
45
|
+
}),
|
|
34
46
|
}),
|
|
35
47
|
});
|
|
36
48
|
const SupernaturalBaseAdvantageSettings = DB.TypeAlias(import.meta.url, {
|
|
@@ -95,3 +107,17 @@ const StyleSpecialAbilitySettings = DB.TypeAlias(import.meta.url, {
|
|
|
95
107
|
}),
|
|
96
108
|
}),
|
|
97
109
|
});
|
|
110
|
+
const EnhancementsSettings = DB.TypeAlias(import.meta.url, {
|
|
111
|
+
name: "EnhancementsSettings",
|
|
112
|
+
comment: "Spell and Liturgical Chant Enhancements are part of focus rules. This type defines which focus rule must be enabled in order to use an enhancement. Essentially, this is a default prerequisite they must meet, but manually inserting them with every enhancement is a lot of work and error-prone. Therefore, in order to use an enhancement, prerequisites for the respective focus rule must be generated for every entry.",
|
|
113
|
+
type: () => DB.Object({
|
|
114
|
+
spell: DB.Required({
|
|
115
|
+
comment: "The focus rule for spell enhancements.",
|
|
116
|
+
type: FocusRuleIdentifier(),
|
|
117
|
+
}),
|
|
118
|
+
liturgicalChant: DB.Required({
|
|
119
|
+
comment: "The focus rule for liturgical chant enhancements.",
|
|
120
|
+
type: FocusRuleIdentifier(),
|
|
121
|
+
}),
|
|
122
|
+
}),
|
|
123
|
+
});
|
package/lib/types/Skill.js
CHANGED
|
@@ -48,23 +48,23 @@ export const Skill = DB.Entity(import.meta.url, {
|
|
|
48
48
|
}),
|
|
49
49
|
tools: DB.Optional({
|
|
50
50
|
comment: "Mentions any tools from the equipment list that are necessary to employ the skill.",
|
|
51
|
-
type: DB.String({ minLength: 1 }),
|
|
51
|
+
type: DB.String({ minLength: 1, markdown: "inline" }),
|
|
52
52
|
}),
|
|
53
53
|
quality: DB.Required({
|
|
54
54
|
comment: "Gives examples of the effects that various QL might provide.",
|
|
55
|
-
type: DB.String({ minLength: 1 }),
|
|
55
|
+
type: DB.String({ minLength: 1, markdown: "inline" }),
|
|
56
56
|
}),
|
|
57
57
|
failed: DB.Required({
|
|
58
58
|
comment: "Lists examples of results for a failed check.",
|
|
59
|
-
type: DB.String({ minLength: 1 }),
|
|
59
|
+
type: DB.String({ minLength: 1, markdown: "inline" }),
|
|
60
60
|
}),
|
|
61
61
|
critical: DB.Required({
|
|
62
62
|
comment: "Lists examples of results for a critical success.",
|
|
63
|
-
type: DB.String({ minLength: 1 }),
|
|
63
|
+
type: DB.String({ minLength: 1, markdown: "inline" }),
|
|
64
64
|
}),
|
|
65
65
|
botch: DB.Required({
|
|
66
66
|
comment: "Lists examples of results for botches.",
|
|
67
|
-
type: DB.String({ minLength: 1 }),
|
|
67
|
+
type: DB.String({ minLength: 1, markdown: "inline" }),
|
|
68
68
|
}),
|
|
69
69
|
errata: DB.Optional({
|
|
70
70
|
type: DB.IncludeIdentifier(Errata),
|
|
@@ -22,7 +22,7 @@ export declare const Armor: DB.Entity<"Armor", {
|
|
|
22
22
|
}>, false>;
|
|
23
23
|
}>, []>>>;
|
|
24
24
|
}, []>>, true>;
|
|
25
|
-
weight: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"Weight", DB.Float, []>>,
|
|
25
|
+
weight: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"Weight", DB.Float, []>>, false>;
|
|
26
26
|
complexity: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"ArmorComplexity", {
|
|
27
27
|
Primitive: DB.EnumCase<null>;
|
|
28
28
|
Simple: DB.EnumCase<null>;
|
|
@@ -98,7 +98,12 @@ export declare const Armor: DB.Entity<"Armor", {
|
|
|
98
98
|
}, []>>, false>;
|
|
99
99
|
protection: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"Protection", DB.Integer, []>>, true>;
|
|
100
100
|
encumbrance: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"Encumbrance", DB.Integer, []>>, true>;
|
|
101
|
-
has_additional_penalties: DB.MemberDecl<DB.IncludeIdentifier<[], DB.
|
|
101
|
+
has_additional_penalties: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"HasAdditionalPenalties", {
|
|
102
|
+
Standard: DB.EnumCase<DB.Boolean>;
|
|
103
|
+
Custom: DB.EnumCase<DB.IncludeIdentifier<[], DB.TypeAlias<"CustomHasAdditionalPenalties", DB.NestedEntityMap<string, {
|
|
104
|
+
value: DB.MemberDecl<DB.Integer, true>;
|
|
105
|
+
}>, []>>>;
|
|
106
|
+
}, []>>, true>;
|
|
102
107
|
armorType: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"ArmorType", {
|
|
103
108
|
Standard: DB.EnumCase<DB.IncludeIdentifier<[], DB.TypeAlias<"StandardArmorType", DB.Object<{
|
|
104
109
|
sturdinessRating: DB.MemberDecl<DB.Integer, true>;
|
|
@@ -300,7 +305,12 @@ export declare const Armor: DB.Entity<"Armor", {
|
|
|
300
305
|
export declare const SecondaryArmor: DB.TypeAlias<"SecondaryArmor", DB.Object<{
|
|
301
306
|
protection: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"Protection", DB.Integer, []>>, true>;
|
|
302
307
|
encumbrance: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"Encumbrance", DB.Integer, []>>, true>;
|
|
303
|
-
has_additional_penalties: DB.MemberDecl<DB.IncludeIdentifier<[], DB.
|
|
308
|
+
has_additional_penalties: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"HasAdditionalPenalties", {
|
|
309
|
+
Standard: DB.EnumCase<DB.Boolean>;
|
|
310
|
+
Custom: DB.EnumCase<DB.IncludeIdentifier<[], DB.TypeAlias<"CustomHasAdditionalPenalties", DB.NestedEntityMap<string, {
|
|
311
|
+
value: DB.MemberDecl<DB.Integer, true>;
|
|
312
|
+
}>, []>>>;
|
|
313
|
+
}, []>>, true>;
|
|
304
314
|
armorType: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"ArmorType", {
|
|
305
315
|
Standard: DB.EnumCase<DB.IncludeIdentifier<[], DB.TypeAlias<"StandardArmorType", DB.Object<{
|
|
306
316
|
sturdinessRating: DB.MemberDecl<DB.Integer, true>;
|
|
@@ -378,4 +388,9 @@ export declare const SecondaryArmor: DB.TypeAlias<"SecondaryArmor", DB.Object<{
|
|
|
378
388
|
}>, []>;
|
|
379
389
|
export declare const Protection: DB.TypeAlias<"Protection", DB.Integer, []>;
|
|
380
390
|
export declare const Encumbrance: DB.TypeAlias<"Encumbrance", DB.Integer, []>;
|
|
381
|
-
export declare const HasAdditionalPenalties: DB.
|
|
391
|
+
export declare const HasAdditionalPenalties: DB.Enum<"HasAdditionalPenalties", {
|
|
392
|
+
Standard: DB.EnumCase<DB.Boolean>;
|
|
393
|
+
Custom: DB.EnumCase<DB.IncludeIdentifier<[], DB.TypeAlias<"CustomHasAdditionalPenalties", DB.NestedEntityMap<string, {
|
|
394
|
+
value: DB.MemberDecl<DB.Integer, true>;
|
|
395
|
+
}>, []>>>;
|
|
396
|
+
}, []>;
|
|
@@ -2,6 +2,7 @@ import { isNotNullish } from "@elyukai/utils/nullable";
|
|
|
2
2
|
import * as DB from "tsondb/schema/dsl";
|
|
3
3
|
import { ArmorIdentifier } from "../../_Identifier.js";
|
|
4
4
|
import { EquipmentPrerequisites } from "../../_Prerequisite.js";
|
|
5
|
+
import { DerivedCharacteristic } from "../../DerivedCharacteristic.js";
|
|
5
6
|
import { NestedTranslationMap } from "../../Locale.js";
|
|
6
7
|
import { Errata } from "../../source/_Erratum.js";
|
|
7
8
|
import { src } from "../../source/_PublicationRef.js";
|
|
@@ -14,7 +15,7 @@ export const Armor = DB.Entity(import.meta.url, {
|
|
|
14
15
|
comment: "The cost in silverthalers.",
|
|
15
16
|
type: DB.IncludeIdentifier(Cost),
|
|
16
17
|
}),
|
|
17
|
-
weight: DB.
|
|
18
|
+
weight: DB.Optional({
|
|
18
19
|
comment: "The weight in kg.",
|
|
19
20
|
type: DB.IncludeIdentifier(Weight),
|
|
20
21
|
}),
|
|
@@ -234,10 +235,28 @@ export const Encumbrance = DB.TypeAlias(import.meta.url, {
|
|
|
234
235
|
comment: "The ENC value.",
|
|
235
236
|
type: () => DB.Integer({ minimum: 0 }),
|
|
236
237
|
});
|
|
237
|
-
export const HasAdditionalPenalties = DB.
|
|
238
|
+
export const HasAdditionalPenalties = DB.Enum(import.meta.url, {
|
|
238
239
|
name: "HasAdditionalPenalties",
|
|
239
240
|
comment: "Does the armor have additional penalties (MOV -1, INI -1)?",
|
|
240
|
-
|
|
241
|
+
values: () => ({
|
|
242
|
+
Standard: DB.EnumCase({ type: DB.Boolean() }),
|
|
243
|
+
Custom: DB.EnumCase({ type: DB.IncludeIdentifier(CustomHasAdditionalPenalties) }),
|
|
244
|
+
}),
|
|
245
|
+
});
|
|
246
|
+
const CustomHasAdditionalPenalties = DB.TypeAlias(import.meta.url, {
|
|
247
|
+
name: "CustomHasAdditionalPenalties",
|
|
248
|
+
type: () => DB.NestedEntityMap({
|
|
249
|
+
name: "CustomAdditionalPenalty",
|
|
250
|
+
namePlural: "CustomAdditionalPenalties",
|
|
251
|
+
secondaryEntity: DerivedCharacteristic,
|
|
252
|
+
type: DB.Object({
|
|
253
|
+
value: DB.Required({
|
|
254
|
+
comment: "The value of the additional penalty.",
|
|
255
|
+
type: DB.Integer(),
|
|
256
|
+
}),
|
|
257
|
+
}),
|
|
258
|
+
minProperties: 1,
|
|
259
|
+
}),
|
|
241
260
|
});
|
|
242
261
|
const HitZone = DB.Enum(import.meta.url, {
|
|
243
262
|
name: "HitZone",
|
|
@@ -194,7 +194,12 @@ export declare const ArmorAccessory: DB.Entity<"ArmorAccessory", {
|
|
|
194
194
|
Armor: DB.EnumCase<DB.IncludeIdentifier<[], DB.TypeAlias<"SecondaryArmor", DB.Object<{
|
|
195
195
|
protection: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"Protection", DB.Integer, []>>, true>;
|
|
196
196
|
encumbrance: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"Encumbrance", DB.Integer, []>>, true>;
|
|
197
|
-
has_additional_penalties: DB.MemberDecl<DB.IncludeIdentifier<[], DB.
|
|
197
|
+
has_additional_penalties: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"HasAdditionalPenalties", {
|
|
198
|
+
Standard: DB.EnumCase<DB.Boolean>;
|
|
199
|
+
Custom: DB.EnumCase<DB.IncludeIdentifier<[], DB.TypeAlias<"CustomHasAdditionalPenalties", DB.NestedEntityMap<string, {
|
|
200
|
+
value: DB.MemberDecl<DB.Integer, true>;
|
|
201
|
+
}>, []>>>;
|
|
202
|
+
}, []>>, true>;
|
|
198
203
|
armorType: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"ArmorType", {
|
|
199
204
|
Standard: DB.EnumCase<DB.IncludeIdentifier<[], DB.TypeAlias<"StandardArmorType", DB.Object<{
|
|
200
205
|
sturdinessRating: DB.MemberDecl<DB.Integer, true>;
|
|
@@ -194,7 +194,12 @@ export declare const BandageOrRemedy: DB.Entity<"BandageOrRemedy", {
|
|
|
194
194
|
Armor: DB.EnumCase<DB.IncludeIdentifier<[], DB.TypeAlias<"SecondaryArmor", DB.Object<{
|
|
195
195
|
protection: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"Protection", DB.Integer, []>>, true>;
|
|
196
196
|
encumbrance: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"Encumbrance", DB.Integer, []>>, true>;
|
|
197
|
-
has_additional_penalties: DB.MemberDecl<DB.IncludeIdentifier<[], DB.
|
|
197
|
+
has_additional_penalties: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"HasAdditionalPenalties", {
|
|
198
|
+
Standard: DB.EnumCase<DB.Boolean>;
|
|
199
|
+
Custom: DB.EnumCase<DB.IncludeIdentifier<[], DB.TypeAlias<"CustomHasAdditionalPenalties", DB.NestedEntityMap<string, {
|
|
200
|
+
value: DB.MemberDecl<DB.Integer, true>;
|
|
201
|
+
}>, []>>>;
|
|
202
|
+
}, []>>, true>;
|
|
198
203
|
armorType: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"ArmorType", {
|
|
199
204
|
Standard: DB.EnumCase<DB.IncludeIdentifier<[], DB.TypeAlias<"StandardArmorType", DB.Object<{
|
|
200
205
|
sturdinessRating: DB.MemberDecl<DB.Integer, true>;
|
|
@@ -199,7 +199,12 @@ export declare const CeremonialItem: DB.Entity<"CeremonialItem", {
|
|
|
199
199
|
Armor: DB.EnumCase<DB.IncludeIdentifier<[], DB.TypeAlias<"SecondaryArmor", DB.Object<{
|
|
200
200
|
protection: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"Protection", DB.Integer, []>>, true>;
|
|
201
201
|
encumbrance: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"Encumbrance", DB.Integer, []>>, true>;
|
|
202
|
-
has_additional_penalties: DB.MemberDecl<DB.IncludeIdentifier<[], DB.
|
|
202
|
+
has_additional_penalties: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"HasAdditionalPenalties", {
|
|
203
|
+
Standard: DB.EnumCase<DB.Boolean>;
|
|
204
|
+
Custom: DB.EnumCase<DB.IncludeIdentifier<[], DB.TypeAlias<"CustomHasAdditionalPenalties", DB.NestedEntityMap<string, {
|
|
205
|
+
value: DB.MemberDecl<DB.Integer, true>;
|
|
206
|
+
}>, []>>>;
|
|
207
|
+
}, []>>, true>;
|
|
203
208
|
armorType: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"ArmorType", {
|
|
204
209
|
Standard: DB.EnumCase<DB.IncludeIdentifier<[], DB.TypeAlias<"StandardArmorType", DB.Object<{
|
|
205
210
|
sturdinessRating: DB.MemberDecl<DB.Integer, true>;
|
|
@@ -194,7 +194,12 @@ export declare const Clothes: DB.Entity<"Clothes", {
|
|
|
194
194
|
Armor: DB.EnumCase<DB.IncludeIdentifier<[], DB.TypeAlias<"SecondaryArmor", DB.Object<{
|
|
195
195
|
protection: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"Protection", DB.Integer, []>>, true>;
|
|
196
196
|
encumbrance: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"Encumbrance", DB.Integer, []>>, true>;
|
|
197
|
-
has_additional_penalties: DB.MemberDecl<DB.IncludeIdentifier<[], DB.
|
|
197
|
+
has_additional_penalties: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"HasAdditionalPenalties", {
|
|
198
|
+
Standard: DB.EnumCase<DB.Boolean>;
|
|
199
|
+
Custom: DB.EnumCase<DB.IncludeIdentifier<[], DB.TypeAlias<"CustomHasAdditionalPenalties", DB.NestedEntityMap<string, {
|
|
200
|
+
value: DB.MemberDecl<DB.Integer, true>;
|
|
201
|
+
}>, []>>>;
|
|
202
|
+
}, []>>, true>;
|
|
198
203
|
armorType: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"ArmorType", {
|
|
199
204
|
Standard: DB.EnumCase<DB.IncludeIdentifier<[], DB.TypeAlias<"StandardArmorType", DB.Object<{
|
|
200
205
|
sturdinessRating: DB.MemberDecl<DB.Integer, true>;
|
|
@@ -194,7 +194,12 @@ export declare const Container: DB.Entity<"Container", {
|
|
|
194
194
|
Armor: DB.EnumCase<DB.IncludeIdentifier<[], DB.TypeAlias<"SecondaryArmor", DB.Object<{
|
|
195
195
|
protection: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"Protection", DB.Integer, []>>, true>;
|
|
196
196
|
encumbrance: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"Encumbrance", DB.Integer, []>>, true>;
|
|
197
|
-
has_additional_penalties: DB.MemberDecl<DB.IncludeIdentifier<[], DB.
|
|
197
|
+
has_additional_penalties: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"HasAdditionalPenalties", {
|
|
198
|
+
Standard: DB.EnumCase<DB.Boolean>;
|
|
199
|
+
Custom: DB.EnumCase<DB.IncludeIdentifier<[], DB.TypeAlias<"CustomHasAdditionalPenalties", DB.NestedEntityMap<string, {
|
|
200
|
+
value: DB.MemberDecl<DB.Integer, true>;
|
|
201
|
+
}>, []>>>;
|
|
202
|
+
}, []>>, true>;
|
|
198
203
|
armorType: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"ArmorType", {
|
|
199
204
|
Standard: DB.EnumCase<DB.IncludeIdentifier<[], DB.TypeAlias<"StandardArmorType", DB.Object<{
|
|
200
205
|
sturdinessRating: DB.MemberDecl<DB.Integer, true>;
|
|
@@ -125,7 +125,12 @@ export declare const EquipmentOfBlessedOnes: DB.Entity<"EquipmentOfBlessedOnes",
|
|
|
125
125
|
Armor: DB.EnumCase<DB.IncludeIdentifier<[], DB.TypeAlias<"SecondaryArmor", DB.Object<{
|
|
126
126
|
protection: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"Protection", DB.Integer, []>>, true>;
|
|
127
127
|
encumbrance: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"Encumbrance", DB.Integer, []>>, true>;
|
|
128
|
-
has_additional_penalties: DB.MemberDecl<DB.IncludeIdentifier<[], DB.
|
|
128
|
+
has_additional_penalties: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"HasAdditionalPenalties", {
|
|
129
|
+
Standard: DB.EnumCase<DB.Boolean>;
|
|
130
|
+
Custom: DB.EnumCase<DB.IncludeIdentifier<[], DB.TypeAlias<"CustomHasAdditionalPenalties", DB.NestedEntityMap<string, {
|
|
131
|
+
value: DB.MemberDecl<DB.Integer, true>;
|
|
132
|
+
}>, []>>>;
|
|
133
|
+
}, []>>, true>;
|
|
129
134
|
armorType: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"ArmorType", {
|
|
130
135
|
Standard: DB.EnumCase<DB.IncludeIdentifier<[], DB.TypeAlias<"StandardArmorType", DB.Object<{
|
|
131
136
|
sturdinessRating: DB.MemberDecl<DB.Integer, true>;
|
|
@@ -203,7 +203,12 @@ export declare const IlluminationLightSource: DB.Entity<"IlluminationLightSource
|
|
|
203
203
|
Armor: DB.EnumCase<DB.IncludeIdentifier<[], DB.TypeAlias<"SecondaryArmor", DB.Object<{
|
|
204
204
|
protection: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"Protection", DB.Integer, []>>, true>;
|
|
205
205
|
encumbrance: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"Encumbrance", DB.Integer, []>>, true>;
|
|
206
|
-
has_additional_penalties: DB.MemberDecl<DB.IncludeIdentifier<[], DB.
|
|
206
|
+
has_additional_penalties: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"HasAdditionalPenalties", {
|
|
207
|
+
Standard: DB.EnumCase<DB.Boolean>;
|
|
208
|
+
Custom: DB.EnumCase<DB.IncludeIdentifier<[], DB.TypeAlias<"CustomHasAdditionalPenalties", DB.NestedEntityMap<string, {
|
|
209
|
+
value: DB.MemberDecl<DB.Integer, true>;
|
|
210
|
+
}>, []>>>;
|
|
211
|
+
}, []>>, true>;
|
|
207
212
|
armorType: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"ArmorType", {
|
|
208
213
|
Standard: DB.EnumCase<DB.IncludeIdentifier<[], DB.TypeAlias<"StandardArmorType", DB.Object<{
|
|
209
214
|
sturdinessRating: DB.MemberDecl<DB.Integer, true>;
|
|
@@ -194,7 +194,12 @@ export declare const IlluminationRefillOrSupply: DB.Entity<"IlluminationRefillOr
|
|
|
194
194
|
Armor: DB.EnumCase<DB.IncludeIdentifier<[], DB.TypeAlias<"SecondaryArmor", DB.Object<{
|
|
195
195
|
protection: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"Protection", DB.Integer, []>>, true>;
|
|
196
196
|
encumbrance: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"Encumbrance", DB.Integer, []>>, true>;
|
|
197
|
-
has_additional_penalties: DB.MemberDecl<DB.IncludeIdentifier<[], DB.
|
|
197
|
+
has_additional_penalties: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"HasAdditionalPenalties", {
|
|
198
|
+
Standard: DB.EnumCase<DB.Boolean>;
|
|
199
|
+
Custom: DB.EnumCase<DB.IncludeIdentifier<[], DB.TypeAlias<"CustomHasAdditionalPenalties", DB.NestedEntityMap<string, {
|
|
200
|
+
value: DB.MemberDecl<DB.Integer, true>;
|
|
201
|
+
}>, []>>>;
|
|
202
|
+
}, []>>, true>;
|
|
198
203
|
armorType: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"ArmorType", {
|
|
199
204
|
Standard: DB.EnumCase<DB.IncludeIdentifier<[], DB.TypeAlias<"StandardArmorType", DB.Object<{
|
|
200
205
|
sturdinessRating: DB.MemberDecl<DB.Integer, true>;
|
|
@@ -159,7 +159,12 @@ export declare const Item: DB.Entity<"Item", {
|
|
|
159
159
|
armorUse: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"SecondaryArmor", DB.Object<{
|
|
160
160
|
protection: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"Protection", DB.Integer, []>>, true>;
|
|
161
161
|
encumbrance: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"Encumbrance", DB.Integer, []>>, true>;
|
|
162
|
-
has_additional_penalties: DB.MemberDecl<DB.IncludeIdentifier<[], DB.
|
|
162
|
+
has_additional_penalties: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"HasAdditionalPenalties", {
|
|
163
|
+
Standard: DB.EnumCase<DB.Boolean>;
|
|
164
|
+
Custom: DB.EnumCase<DB.IncludeIdentifier<[], DB.TypeAlias<"CustomHasAdditionalPenalties", DB.NestedEntityMap<string, {
|
|
165
|
+
value: DB.MemberDecl<DB.Integer, true>;
|
|
166
|
+
}>, []>>>;
|
|
167
|
+
}, []>>, true>;
|
|
163
168
|
armorType: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"ArmorType", {
|
|
164
169
|
Standard: DB.EnumCase<DB.IncludeIdentifier<[], DB.TypeAlias<"StandardArmorType", DB.Object<{
|
|
165
170
|
sturdinessRating: DB.MemberDecl<DB.Integer, true>;
|
|
@@ -194,7 +194,12 @@ export declare const Liebesspielzeug: DB.Entity<"Liebesspielzeug", {
|
|
|
194
194
|
Armor: DB.EnumCase<DB.IncludeIdentifier<[], DB.TypeAlias<"SecondaryArmor", DB.Object<{
|
|
195
195
|
protection: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"Protection", DB.Integer, []>>, true>;
|
|
196
196
|
encumbrance: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"Encumbrance", DB.Integer, []>>, true>;
|
|
197
|
-
has_additional_penalties: DB.MemberDecl<DB.IncludeIdentifier<[], DB.
|
|
197
|
+
has_additional_penalties: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"HasAdditionalPenalties", {
|
|
198
|
+
Standard: DB.EnumCase<DB.Boolean>;
|
|
199
|
+
Custom: DB.EnumCase<DB.IncludeIdentifier<[], DB.TypeAlias<"CustomHasAdditionalPenalties", DB.NestedEntityMap<string, {
|
|
200
|
+
value: DB.MemberDecl<DB.Integer, true>;
|
|
201
|
+
}>, []>>>;
|
|
202
|
+
}, []>>, true>;
|
|
198
203
|
armorType: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"ArmorType", {
|
|
199
204
|
Standard: DB.EnumCase<DB.IncludeIdentifier<[], DB.TypeAlias<"StandardArmorType", DB.Object<{
|
|
200
205
|
sturdinessRating: DB.MemberDecl<DB.Integer, true>;
|
|
@@ -194,7 +194,12 @@ export declare const LuxuryGood: DB.Entity<"LuxuryGood", {
|
|
|
194
194
|
Armor: DB.EnumCase<DB.IncludeIdentifier<[], DB.TypeAlias<"SecondaryArmor", DB.Object<{
|
|
195
195
|
protection: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"Protection", DB.Integer, []>>, true>;
|
|
196
196
|
encumbrance: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"Encumbrance", DB.Integer, []>>, true>;
|
|
197
|
-
has_additional_penalties: DB.MemberDecl<DB.IncludeIdentifier<[], DB.
|
|
197
|
+
has_additional_penalties: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"HasAdditionalPenalties", {
|
|
198
|
+
Standard: DB.EnumCase<DB.Boolean>;
|
|
199
|
+
Custom: DB.EnumCase<DB.IncludeIdentifier<[], DB.TypeAlias<"CustomHasAdditionalPenalties", DB.NestedEntityMap<string, {
|
|
200
|
+
value: DB.MemberDecl<DB.Integer, true>;
|
|
201
|
+
}>, []>>>;
|
|
202
|
+
}, []>>, true>;
|
|
198
203
|
armorType: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"ArmorType", {
|
|
199
204
|
Standard: DB.EnumCase<DB.IncludeIdentifier<[], DB.TypeAlias<"StandardArmorType", DB.Object<{
|
|
200
205
|
sturdinessRating: DB.MemberDecl<DB.Integer, true>;
|
|
@@ -194,7 +194,12 @@ export declare const MagicalArtifact: DB.Entity<"MagicalArtifact", {
|
|
|
194
194
|
Armor: DB.EnumCase<DB.IncludeIdentifier<[], DB.TypeAlias<"SecondaryArmor", DB.Object<{
|
|
195
195
|
protection: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"Protection", DB.Integer, []>>, true>;
|
|
196
196
|
encumbrance: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"Encumbrance", DB.Integer, []>>, true>;
|
|
197
|
-
has_additional_penalties: DB.MemberDecl<DB.IncludeIdentifier<[], DB.
|
|
197
|
+
has_additional_penalties: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"HasAdditionalPenalties", {
|
|
198
|
+
Standard: DB.EnumCase<DB.Boolean>;
|
|
199
|
+
Custom: DB.EnumCase<DB.IncludeIdentifier<[], DB.TypeAlias<"CustomHasAdditionalPenalties", DB.NestedEntityMap<string, {
|
|
200
|
+
value: DB.MemberDecl<DB.Integer, true>;
|
|
201
|
+
}>, []>>>;
|
|
202
|
+
}, []>>, true>;
|
|
198
203
|
armorType: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"ArmorType", {
|
|
199
204
|
Standard: DB.EnumCase<DB.IncludeIdentifier<[], DB.TypeAlias<"StandardArmorType", DB.Object<{
|
|
200
205
|
sturdinessRating: DB.MemberDecl<DB.Integer, true>;
|
|
@@ -194,7 +194,12 @@ export declare const MusicalInstrument: DB.Entity<"MusicalInstrument", {
|
|
|
194
194
|
Armor: DB.EnumCase<DB.IncludeIdentifier<[], DB.TypeAlias<"SecondaryArmor", DB.Object<{
|
|
195
195
|
protection: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"Protection", DB.Integer, []>>, true>;
|
|
196
196
|
encumbrance: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"Encumbrance", DB.Integer, []>>, true>;
|
|
197
|
-
has_additional_penalties: DB.MemberDecl<DB.IncludeIdentifier<[], DB.
|
|
197
|
+
has_additional_penalties: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"HasAdditionalPenalties", {
|
|
198
|
+
Standard: DB.EnumCase<DB.Boolean>;
|
|
199
|
+
Custom: DB.EnumCase<DB.IncludeIdentifier<[], DB.TypeAlias<"CustomHasAdditionalPenalties", DB.NestedEntityMap<string, {
|
|
200
|
+
value: DB.MemberDecl<DB.Integer, true>;
|
|
201
|
+
}>, []>>>;
|
|
202
|
+
}, []>>, true>;
|
|
198
203
|
armorType: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"ArmorType", {
|
|
199
204
|
Standard: DB.EnumCase<DB.IncludeIdentifier<[], DB.TypeAlias<"StandardArmorType", DB.Object<{
|
|
200
205
|
sturdinessRating: DB.MemberDecl<DB.Integer, true>;
|
|
@@ -193,7 +193,12 @@ export declare const OrienteeringAid: import("tsondb/schema/dsl").Entity<string,
|
|
|
193
193
|
Armor: import("tsondb/schema/dsl").EnumCase<import("tsondb/schema/dsl").IncludeIdentifier<[], import("tsondb/schema/dsl").TypeAlias<"SecondaryArmor", import("tsondb/schema/dsl").Object<{
|
|
194
194
|
protection: import("tsondb/schema/dsl").MemberDecl<import("tsondb/schema/dsl").IncludeIdentifier<[], import("tsondb/schema/dsl").TypeAlias<"Protection", import("tsondb/schema/dsl").Integer, []>>, true>;
|
|
195
195
|
encumbrance: import("tsondb/schema/dsl").MemberDecl<import("tsondb/schema/dsl").IncludeIdentifier<[], import("tsondb/schema/dsl").TypeAlias<"Encumbrance", import("tsondb/schema/dsl").Integer, []>>, true>;
|
|
196
|
-
has_additional_penalties: import("tsondb/schema/dsl").MemberDecl<import("tsondb/schema/dsl").IncludeIdentifier<[], import("tsondb/schema/dsl").
|
|
196
|
+
has_additional_penalties: import("tsondb/schema/dsl").MemberDecl<import("tsondb/schema/dsl").IncludeIdentifier<[], import("tsondb/schema/dsl").Enum<"HasAdditionalPenalties", {
|
|
197
|
+
Standard: import("tsondb/schema/dsl").EnumCase<import("tsondb/schema/dsl").Boolean>;
|
|
198
|
+
Custom: import("tsondb/schema/dsl").EnumCase<import("tsondb/schema/dsl").IncludeIdentifier<[], import("tsondb/schema/dsl").TypeAlias<"CustomHasAdditionalPenalties", import("tsondb/schema/dsl").NestedEntityMap<string, {
|
|
199
|
+
value: import("tsondb/schema/dsl").MemberDecl<import("tsondb/schema/dsl").Integer, true>;
|
|
200
|
+
}>, []>>>;
|
|
201
|
+
}, []>>, true>;
|
|
197
202
|
armorType: import("tsondb/schema/dsl").MemberDecl<import("tsondb/schema/dsl").IncludeIdentifier<[], import("tsondb/schema/dsl").Enum<"ArmorType", {
|
|
198
203
|
Standard: import("tsondb/schema/dsl").EnumCase<import("tsondb/schema/dsl").IncludeIdentifier<[], import("tsondb/schema/dsl").TypeAlias<"StandardArmorType", import("tsondb/schema/dsl").Object<{
|
|
199
204
|
sturdinessRating: import("tsondb/schema/dsl").MemberDecl<import("tsondb/schema/dsl").Integer, true>;
|
|
@@ -193,7 +193,12 @@ export declare const RopeOrChain: import("tsondb/schema/dsl").Entity<string, {
|
|
|
193
193
|
Armor: import("tsondb/schema/dsl").EnumCase<import("tsondb/schema/dsl").IncludeIdentifier<[], import("tsondb/schema/dsl").TypeAlias<"SecondaryArmor", import("tsondb/schema/dsl").Object<{
|
|
194
194
|
protection: import("tsondb/schema/dsl").MemberDecl<import("tsondb/schema/dsl").IncludeIdentifier<[], import("tsondb/schema/dsl").TypeAlias<"Protection", import("tsondb/schema/dsl").Integer, []>>, true>;
|
|
195
195
|
encumbrance: import("tsondb/schema/dsl").MemberDecl<import("tsondb/schema/dsl").IncludeIdentifier<[], import("tsondb/schema/dsl").TypeAlias<"Encumbrance", import("tsondb/schema/dsl").Integer, []>>, true>;
|
|
196
|
-
has_additional_penalties: import("tsondb/schema/dsl").MemberDecl<import("tsondb/schema/dsl").IncludeIdentifier<[], import("tsondb/schema/dsl").
|
|
196
|
+
has_additional_penalties: import("tsondb/schema/dsl").MemberDecl<import("tsondb/schema/dsl").IncludeIdentifier<[], import("tsondb/schema/dsl").Enum<"HasAdditionalPenalties", {
|
|
197
|
+
Standard: import("tsondb/schema/dsl").EnumCase<import("tsondb/schema/dsl").Boolean>;
|
|
198
|
+
Custom: import("tsondb/schema/dsl").EnumCase<import("tsondb/schema/dsl").IncludeIdentifier<[], import("tsondb/schema/dsl").TypeAlias<"CustomHasAdditionalPenalties", import("tsondb/schema/dsl").NestedEntityMap<string, {
|
|
199
|
+
value: import("tsondb/schema/dsl").MemberDecl<import("tsondb/schema/dsl").Integer, true>;
|
|
200
|
+
}>, []>>>;
|
|
201
|
+
}, []>>, true>;
|
|
197
202
|
armorType: import("tsondb/schema/dsl").MemberDecl<import("tsondb/schema/dsl").IncludeIdentifier<[], import("tsondb/schema/dsl").Enum<"ArmorType", {
|
|
198
203
|
Standard: import("tsondb/schema/dsl").EnumCase<import("tsondb/schema/dsl").IncludeIdentifier<[], import("tsondb/schema/dsl").TypeAlias<"StandardArmorType", import("tsondb/schema/dsl").Object<{
|
|
199
204
|
sturdinessRating: import("tsondb/schema/dsl").MemberDecl<import("tsondb/schema/dsl").Integer, true>;
|
|
@@ -193,7 +193,12 @@ export declare const Stationery: import("tsondb/schema/dsl").Entity<string, {
|
|
|
193
193
|
Armor: import("tsondb/schema/dsl").EnumCase<import("tsondb/schema/dsl").IncludeIdentifier<[], import("tsondb/schema/dsl").TypeAlias<"SecondaryArmor", import("tsondb/schema/dsl").Object<{
|
|
194
194
|
protection: import("tsondb/schema/dsl").MemberDecl<import("tsondb/schema/dsl").IncludeIdentifier<[], import("tsondb/schema/dsl").TypeAlias<"Protection", import("tsondb/schema/dsl").Integer, []>>, true>;
|
|
195
195
|
encumbrance: import("tsondb/schema/dsl").MemberDecl<import("tsondb/schema/dsl").IncludeIdentifier<[], import("tsondb/schema/dsl").TypeAlias<"Encumbrance", import("tsondb/schema/dsl").Integer, []>>, true>;
|
|
196
|
-
has_additional_penalties: import("tsondb/schema/dsl").MemberDecl<import("tsondb/schema/dsl").IncludeIdentifier<[], import("tsondb/schema/dsl").
|
|
196
|
+
has_additional_penalties: import("tsondb/schema/dsl").MemberDecl<import("tsondb/schema/dsl").IncludeIdentifier<[], import("tsondb/schema/dsl").Enum<"HasAdditionalPenalties", {
|
|
197
|
+
Standard: import("tsondb/schema/dsl").EnumCase<import("tsondb/schema/dsl").Boolean>;
|
|
198
|
+
Custom: import("tsondb/schema/dsl").EnumCase<import("tsondb/schema/dsl").IncludeIdentifier<[], import("tsondb/schema/dsl").TypeAlias<"CustomHasAdditionalPenalties", import("tsondb/schema/dsl").NestedEntityMap<string, {
|
|
199
|
+
value: import("tsondb/schema/dsl").MemberDecl<import("tsondb/schema/dsl").Integer, true>;
|
|
200
|
+
}>, []>>>;
|
|
201
|
+
}, []>>, true>;
|
|
197
202
|
armorType: import("tsondb/schema/dsl").MemberDecl<import("tsondb/schema/dsl").IncludeIdentifier<[], import("tsondb/schema/dsl").Enum<"ArmorType", {
|
|
198
203
|
Standard: import("tsondb/schema/dsl").EnumCase<import("tsondb/schema/dsl").IncludeIdentifier<[], import("tsondb/schema/dsl").TypeAlias<"StandardArmorType", import("tsondb/schema/dsl").Object<{
|
|
199
204
|
sturdinessRating: import("tsondb/schema/dsl").MemberDecl<import("tsondb/schema/dsl").Integer, true>;
|
|
@@ -193,7 +193,12 @@ export declare const ThievesTool: import("tsondb/schema/dsl").Entity<string, {
|
|
|
193
193
|
Armor: import("tsondb/schema/dsl").EnumCase<import("tsondb/schema/dsl").IncludeIdentifier<[], import("tsondb/schema/dsl").TypeAlias<"SecondaryArmor", import("tsondb/schema/dsl").Object<{
|
|
194
194
|
protection: import("tsondb/schema/dsl").MemberDecl<import("tsondb/schema/dsl").IncludeIdentifier<[], import("tsondb/schema/dsl").TypeAlias<"Protection", import("tsondb/schema/dsl").Integer, []>>, true>;
|
|
195
195
|
encumbrance: import("tsondb/schema/dsl").MemberDecl<import("tsondb/schema/dsl").IncludeIdentifier<[], import("tsondb/schema/dsl").TypeAlias<"Encumbrance", import("tsondb/schema/dsl").Integer, []>>, true>;
|
|
196
|
-
has_additional_penalties: import("tsondb/schema/dsl").MemberDecl<import("tsondb/schema/dsl").IncludeIdentifier<[], import("tsondb/schema/dsl").
|
|
196
|
+
has_additional_penalties: import("tsondb/schema/dsl").MemberDecl<import("tsondb/schema/dsl").IncludeIdentifier<[], import("tsondb/schema/dsl").Enum<"HasAdditionalPenalties", {
|
|
197
|
+
Standard: import("tsondb/schema/dsl").EnumCase<import("tsondb/schema/dsl").Boolean>;
|
|
198
|
+
Custom: import("tsondb/schema/dsl").EnumCase<import("tsondb/schema/dsl").IncludeIdentifier<[], import("tsondb/schema/dsl").TypeAlias<"CustomHasAdditionalPenalties", import("tsondb/schema/dsl").NestedEntityMap<string, {
|
|
199
|
+
value: import("tsondb/schema/dsl").MemberDecl<import("tsondb/schema/dsl").Integer, true>;
|
|
200
|
+
}>, []>>>;
|
|
201
|
+
}, []>>, true>;
|
|
197
202
|
armorType: import("tsondb/schema/dsl").MemberDecl<import("tsondb/schema/dsl").IncludeIdentifier<[], import("tsondb/schema/dsl").Enum<"ArmorType", {
|
|
198
203
|
Standard: import("tsondb/schema/dsl").EnumCase<import("tsondb/schema/dsl").IncludeIdentifier<[], import("tsondb/schema/dsl").TypeAlias<"StandardArmorType", import("tsondb/schema/dsl").Object<{
|
|
199
204
|
sturdinessRating: import("tsondb/schema/dsl").MemberDecl<import("tsondb/schema/dsl").Integer, true>;
|
|
@@ -194,7 +194,12 @@ export declare const TravelGearOrTool: DB.Entity<"TravelGearOrTool", {
|
|
|
194
194
|
Armor: DB.EnumCase<DB.IncludeIdentifier<[], DB.TypeAlias<"SecondaryArmor", DB.Object<{
|
|
195
195
|
protection: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"Protection", DB.Integer, []>>, true>;
|
|
196
196
|
encumbrance: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"Encumbrance", DB.Integer, []>>, true>;
|
|
197
|
-
has_additional_penalties: DB.MemberDecl<DB.IncludeIdentifier<[], DB.
|
|
197
|
+
has_additional_penalties: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"HasAdditionalPenalties", {
|
|
198
|
+
Standard: DB.EnumCase<DB.Boolean>;
|
|
199
|
+
Custom: DB.EnumCase<DB.IncludeIdentifier<[], DB.TypeAlias<"CustomHasAdditionalPenalties", DB.NestedEntityMap<string, {
|
|
200
|
+
value: DB.MemberDecl<DB.Integer, true>;
|
|
201
|
+
}>, []>>>;
|
|
202
|
+
}, []>>, true>;
|
|
198
203
|
armorType: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"ArmorType", {
|
|
199
204
|
Standard: DB.EnumCase<DB.IncludeIdentifier<[], DB.TypeAlias<"StandardArmorType", DB.Object<{
|
|
200
205
|
sturdinessRating: DB.MemberDecl<DB.Integer, true>;
|
|
@@ -194,7 +194,12 @@ export declare const WeaponAccessory: DB.Entity<"WeaponAccessory", {
|
|
|
194
194
|
Armor: DB.EnumCase<DB.IncludeIdentifier<[], DB.TypeAlias<"SecondaryArmor", DB.Object<{
|
|
195
195
|
protection: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"Protection", DB.Integer, []>>, true>;
|
|
196
196
|
encumbrance: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"Encumbrance", DB.Integer, []>>, true>;
|
|
197
|
-
has_additional_penalties: DB.MemberDecl<DB.IncludeIdentifier<[], DB.
|
|
197
|
+
has_additional_penalties: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"HasAdditionalPenalties", {
|
|
198
|
+
Standard: DB.EnumCase<DB.Boolean>;
|
|
199
|
+
Custom: DB.EnumCase<DB.IncludeIdentifier<[], DB.TypeAlias<"CustomHasAdditionalPenalties", DB.NestedEntityMap<string, {
|
|
200
|
+
value: DB.MemberDecl<DB.Integer, true>;
|
|
201
|
+
}>, []>>>;
|
|
202
|
+
}, []>>, true>;
|
|
198
203
|
armorType: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"ArmorType", {
|
|
199
204
|
Standard: DB.EnumCase<DB.IncludeIdentifier<[], DB.TypeAlias<"StandardArmorType", DB.Object<{
|
|
200
205
|
sturdinessRating: DB.MemberDecl<DB.Integer, true>;
|
|
@@ -194,7 +194,12 @@ export declare const DefaultItem: (sourceUrl: string, singularName: string, plur
|
|
|
194
194
|
Armor: DB.EnumCase<DB.IncludeIdentifier<[], DB.TypeAlias<"SecondaryArmor", DB.Object<{
|
|
195
195
|
protection: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"Protection", DB.Integer, []>>, true>;
|
|
196
196
|
encumbrance: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"Encumbrance", DB.Integer, []>>, true>;
|
|
197
|
-
has_additional_penalties: DB.MemberDecl<DB.IncludeIdentifier<[], DB.
|
|
197
|
+
has_additional_penalties: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"HasAdditionalPenalties", {
|
|
198
|
+
Standard: DB.EnumCase<DB.Boolean>;
|
|
199
|
+
Custom: DB.EnumCase<DB.IncludeIdentifier<[], DB.TypeAlias<"CustomHasAdditionalPenalties", DB.NestedEntityMap<string, {
|
|
200
|
+
value: DB.MemberDecl<DB.Integer, true>;
|
|
201
|
+
}>, []>>>;
|
|
202
|
+
}, []>>, true>;
|
|
198
203
|
armorType: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"ArmorType", {
|
|
199
204
|
Standard: DB.EnumCase<DB.IncludeIdentifier<[], DB.TypeAlias<"StandardArmorType", DB.Object<{
|
|
200
205
|
sturdinessRating: DB.MemberDecl<DB.Integer, true>;
|
|
@@ -450,7 +455,12 @@ export declare const CombatUse: DB.Enum<"CombatUse", {
|
|
|
450
455
|
Armor: DB.EnumCase<DB.IncludeIdentifier<[], DB.TypeAlias<"SecondaryArmor", DB.Object<{
|
|
451
456
|
protection: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"Protection", DB.Integer, []>>, true>;
|
|
452
457
|
encumbrance: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"Encumbrance", DB.Integer, []>>, true>;
|
|
453
|
-
has_additional_penalties: DB.MemberDecl<DB.IncludeIdentifier<[], DB.
|
|
458
|
+
has_additional_penalties: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"HasAdditionalPenalties", {
|
|
459
|
+
Standard: DB.EnumCase<DB.Boolean>;
|
|
460
|
+
Custom: DB.EnumCase<DB.IncludeIdentifier<[], DB.TypeAlias<"CustomHasAdditionalPenalties", DB.NestedEntityMap<string, {
|
|
461
|
+
value: DB.MemberDecl<DB.Integer, true>;
|
|
462
|
+
}>, []>>>;
|
|
463
|
+
}, []>>, true>;
|
|
454
464
|
armorType: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"ArmorType", {
|
|
455
465
|
Standard: DB.EnumCase<DB.IncludeIdentifier<[], DB.TypeAlias<"StandardArmorType", DB.Object<{
|
|
456
466
|
sturdinessRating: DB.MemberDecl<DB.Integer, true>;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@optolith/database-schema",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.113.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",
|