@optolith/database-schema 0.112.0 → 0.114.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 +27 -0
- package/gen/types.d.ts +120 -43
- package/lib/cache/activatableSelectOptions.d.ts +1 -1
- 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/DerivedCharacteristic.d.ts +7 -1
- package/lib/types/DerivedCharacteristic.js +10 -1
- package/lib/types/Locale.d.ts +11 -0
- package/lib/types/Locale.js +11 -0
- package/lib/types/Settings.d.ts +249 -118
- package/lib/types/Settings.js +71 -7
- package/package.json +2 -2
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,33 @@
|
|
|
2
2
|
|
|
3
3
|
All notable changes to this project will be documented in this file. See [commit-and-tag-version](https://github.com/absolute-version/commit-and-tag-version) for commit guidelines.
|
|
4
4
|
|
|
5
|
+
## [0.114.0](https://github.com/Optolith/database-schema/compare/v0.113.1...v0.114.0) (2026-10-30)
|
|
6
|
+
|
|
7
|
+
### ⚠ BREAKING CHANGES
|
|
8
|
+
|
|
9
|
+
* more data-driven logic from client
|
|
10
|
+
|
|
11
|
+
### Features
|
|
12
|
+
|
|
13
|
+
* more data-driven logic from client ([2126a3c](https://github.com/Optolith/database-schema/commit/2126a3c70cc826a96ff427aef0c12e8cc38239ea))
|
|
14
|
+
|
|
15
|
+
## [0.113.1](https://github.com/Optolith/database-schema/compare/v0.113.0...v0.113.1) (2026-10-26)
|
|
16
|
+
|
|
17
|
+
### Bug Fixes
|
|
18
|
+
|
|
19
|
+
* **cache:** missing sources for derived select options ([68347f2](https://github.com/Optolith/database-schema/commit/68347f21f6adfc62b4c755b4bc1ad5b8db0a543e))
|
|
20
|
+
|
|
21
|
+
## [0.113.0](https://github.com/Optolith/database-schema/compare/v0.112.0...v0.113.0) (2026-10-26)
|
|
22
|
+
|
|
23
|
+
### ⚠ BREAKING CHANGES
|
|
24
|
+
|
|
25
|
+
* pin enhancement focus rules in settings
|
|
26
|
+
|
|
27
|
+
### Features
|
|
28
|
+
|
|
29
|
+
* **cache:** include parent source refs in new applications and uses ([26a0c1a](https://github.com/Optolith/database-schema/commit/26a0c1a959dd7c5ced909cee03a13be67174cc5b))
|
|
30
|
+
* pin enhancement focus rules in settings ([711a7d5](https://github.com/Optolith/database-schema/commit/711a7d5ac1f008e0d684cb4a8e94c7c9209eae8a))
|
|
31
|
+
|
|
5
32
|
## [0.112.0](https://github.com/Optolith/database-schema/compare/v0.111.1...v0.112.0) (2026-10-24)
|
|
6
33
|
|
|
7
34
|
### ⚠ BREAKING CHANGES
|
package/gen/types.d.ts
CHANGED
|
@@ -324,6 +324,7 @@ export type EnumMap = {
|
|
|
324
324
|
DerivedCharacteristicModifierPrerequisiteGroup: DerivedCharacteristicModifierPrerequisiteGroup
|
|
325
325
|
DerivedCharacteristicPrerequisiteGroup: DerivedCharacteristicPrerequisiteGroup
|
|
326
326
|
DerivedCharacteristicPrimaryAttributeValue: DerivedCharacteristicPrimaryAttributeValue
|
|
327
|
+
DerivedCharacteristicPurchaseMaximumValue: DerivedCharacteristicPurchaseMaximumValue
|
|
327
328
|
DerivedCharacteristicSkillCheckPenalty: DerivedCharacteristicSkillCheckPenalty
|
|
328
329
|
DerivedCharacteristicType: DerivedCharacteristicType
|
|
329
330
|
DerivedPropertySpecializations: DerivedPropertySpecializations
|
|
@@ -622,6 +623,7 @@ export type TypeAliasMap = {
|
|
|
622
623
|
CombatAnimalPower: CombatAnimalPower
|
|
623
624
|
CombatTechniqueAdjustment: CombatTechniqueAdjustment
|
|
624
625
|
CombatTechniqueRating: CombatTechniqueRating
|
|
626
|
+
CombatTechniqueSettings: CombatTechniqueSettings
|
|
625
627
|
CombatTechniquesForAdventurePointsOption: CombatTechniquesForAdventurePointsOption
|
|
626
628
|
CombatTechniquesOptions: CombatTechniquesOptions
|
|
627
629
|
CombatTechniquesSelectOptionCategory: CombatTechniquesSelectOptionCategory
|
|
@@ -801,6 +803,7 @@ export type TypeAliasMap = {
|
|
|
801
803
|
LevelTypeConfigTranslation: LevelTypeConfigTranslation
|
|
802
804
|
LimitedBurningTime: LimitedBurningTime
|
|
803
805
|
LiturgicalChantRating: LiturgicalChantRating
|
|
806
|
+
LiturgicalChantSettings: LiturgicalChantSettings
|
|
804
807
|
LiturgiesOptions: LiturgiesOptions
|
|
805
808
|
LiturgyPrerequisites: LiturgyPrerequisites
|
|
806
809
|
LiturgyTraditionWithAspects: LiturgyTraditionWithAspects
|
|
@@ -983,6 +986,7 @@ export type TypeAliasMap = {
|
|
|
983
986
|
SkillCheck: SkillCheck
|
|
984
987
|
SkillRating: SkillRating
|
|
985
988
|
SkillSelectOptionCategoryCategory: SkillSelectOptionCategoryCategory
|
|
989
|
+
SkillSettings: SkillSettings
|
|
986
990
|
SkillsOptions: SkillsOptions
|
|
987
991
|
SkillsSelectOptionCategory: SkillsSelectOptionCategory
|
|
988
992
|
SlowCastingTime: SlowCastingTime
|
|
@@ -1008,6 +1012,7 @@ export type TypeAliasMap = {
|
|
|
1008
1012
|
SpellworkAdjustmentWithBase: SpellworkAdjustmentWithBase
|
|
1009
1013
|
SpellworkChange: SpellworkChange
|
|
1010
1014
|
SpellworkPrerequisites: SpellworkPrerequisites
|
|
1015
|
+
SpellworkSettings: SpellworkSettings
|
|
1011
1016
|
SpellworksForChosenProperty: SpellworksForChosenProperty
|
|
1012
1017
|
SpellworksOptions: SpellworksOptions
|
|
1013
1018
|
StandaloneCostMap: StandaloneCostMap
|
|
@@ -1526,6 +1531,7 @@ export interface Locale {
|
|
|
1526
1531
|
"Sort By": string
|
|
1527
1532
|
"Name": string
|
|
1528
1533
|
"Date Modified": string
|
|
1534
|
+
"Date Created": string
|
|
1529
1535
|
"Group": string
|
|
1530
1536
|
"Property": string
|
|
1531
1537
|
"general.filters.sort.bylocation": string
|
|
@@ -1976,6 +1982,8 @@ export interface Locale {
|
|
|
1976
1982
|
"Lost Total": string
|
|
1977
1983
|
"Bought Back": string
|
|
1978
1984
|
"Buy Back Permanently Lost Point": string
|
|
1985
|
+
"Permanently Lost {$energy}": string & { __params: { "energy": string } }
|
|
1986
|
+
"p{$energy}": string & { __params: { "energy": string } }
|
|
1979
1987
|
"Permanently Lost Life Points": string
|
|
1980
1988
|
"pLP": string
|
|
1981
1989
|
"Permanently Lost Arcane Energy": string
|
|
@@ -1991,7 +1999,9 @@ export interface Locale {
|
|
|
1991
1999
|
"Custom AP Cost": string
|
|
1992
2000
|
"AP Cost for {$category}": string & { __params: { "category": string } }
|
|
1993
2001
|
"Custom option": string
|
|
2002
|
+
"Show entries with unmet prerequisites": string
|
|
1994
2003
|
"specialabilities.nativetonguelevel": string
|
|
2004
|
+
"Adoruzepterzauber": string
|
|
1995
2005
|
"Advanced Combat Special Abilities": string
|
|
1996
2006
|
"Advanced Karma Special Abilities": string
|
|
1997
2007
|
"Advanced Magical Special Abilities": string
|
|
@@ -1999,6 +2009,7 @@ export interface Locale {
|
|
|
1999
2009
|
"Ancestor Glyphs": string
|
|
2000
2010
|
"Arcane Orb Enchantments": string
|
|
2001
2011
|
"Attire Enchantments": string
|
|
2012
|
+
"Beutelzauber": string
|
|
2002
2013
|
"Blessed Traditions": string
|
|
2003
2014
|
"Bowl Enchantments": string
|
|
2004
2015
|
"Brawling Special Abilities": string
|
|
@@ -2014,9 +2025,13 @@ export interface Locale {
|
|
|
2014
2025
|
"Fate Point Special Abilities": string
|
|
2015
2026
|
"Fools Hat Enchantments": string
|
|
2016
2027
|
"General Special Abilities": string
|
|
2028
|
+
"Haubenzauber": string
|
|
2029
|
+
"Hauerkettenzauber": string
|
|
2017
2030
|
"Instrument Enchantments": string
|
|
2018
2031
|
"Karma Special Abilities": string
|
|
2032
|
+
"Keulenzauber": string
|
|
2019
2033
|
"Krallenkettenzauber": string
|
|
2034
|
+
"Kristallkugelzauber": string
|
|
2020
2035
|
"Liturgical Style Special Abilities": string
|
|
2021
2036
|
"Lycantropic Gifts": string
|
|
2022
2037
|
"Magical Signs": string
|
|
@@ -2027,6 +2042,7 @@ export interface Locale {
|
|
|
2027
2042
|
"Pact Gifts": string
|
|
2028
2043
|
"Protective/Warding Circle Special Abilities": string
|
|
2029
2044
|
"Ring Enchantments": string
|
|
2045
|
+
"Schweinetrommelzauber": string
|
|
2030
2046
|
"Sermons": string
|
|
2031
2047
|
"Sex Special Abilities": string
|
|
2032
2048
|
"Sickle Rituals": string
|
|
@@ -4952,7 +4968,51 @@ export interface DerivedCharacteristicPurchase {
|
|
|
4952
4968
|
/**
|
|
4953
4969
|
* The maximum value that can be achieved for the derived characteristic through improvements.
|
|
4954
4970
|
*/
|
|
4955
|
-
maximum:
|
|
4971
|
+
maximum: DerivedCharacteristicPurchaseMaximumValue
|
|
4972
|
+
}
|
|
4973
|
+
|
|
4974
|
+
export type DerivedCharacteristicPurchaseMaximumValue =
|
|
4975
|
+
| {
|
|
4976
|
+
kind: "Attribute"
|
|
4977
|
+
Attribute: Attribute_ID
|
|
4978
|
+
}
|
|
4979
|
+
| {
|
|
4980
|
+
kind: "PrimaryAttribute"
|
|
4981
|
+
PrimaryAttribute: DerivedCharacteristicPrimaryAttributeValue
|
|
4982
|
+
}
|
|
4983
|
+
|
|
4984
|
+
export type DerivedCharacteristicPrimaryAttributeValue =
|
|
4985
|
+
| {
|
|
4986
|
+
kind: "Magical"
|
|
4987
|
+
}
|
|
4988
|
+
| {
|
|
4989
|
+
kind: "Blessed"
|
|
4990
|
+
}
|
|
4991
|
+
|
|
4992
|
+
export interface DerivedCharacteristicPermanentLoss {
|
|
4993
|
+
/**
|
|
4994
|
+
* If set, permanent losses to the derived characteristic can be bought back for the specified cost.
|
|
4995
|
+
*/
|
|
4996
|
+
canBeBoughtBack?: DerivedCharacteristicBuyBack
|
|
4997
|
+
}
|
|
4998
|
+
|
|
4999
|
+
export interface DerivedCharacteristicBuyBack {
|
|
5000
|
+
/**
|
|
5001
|
+
* The AP cost for buying back one point.
|
|
5002
|
+
*/
|
|
5003
|
+
cost: number
|
|
5004
|
+
}
|
|
5005
|
+
|
|
5006
|
+
export interface DerivedCharacteristicCalculation {
|
|
5007
|
+
/**
|
|
5008
|
+
* The base value for the calculation.
|
|
5009
|
+
*/
|
|
5010
|
+
base: DerivedCharacteristicBase
|
|
5011
|
+
|
|
5012
|
+
/**
|
|
5013
|
+
* A list of modifiers that are applied to the base value. The modifiers are applied in the order they appear in the list.
|
|
5014
|
+
*/
|
|
5015
|
+
modifiers?: DerivedCharacteristicModifier[]
|
|
4956
5016
|
}
|
|
4957
5017
|
|
|
4958
5018
|
export type DerivedCharacteristicBase = MathOperation<DerivedCharacteristicBaseValue>
|
|
@@ -5000,40 +5060,6 @@ export type DerivedCharacteristicBaseValue =
|
|
|
5000
5060
|
PrimaryAttribute: DerivedCharacteristicPrimaryAttributeValue
|
|
5001
5061
|
}
|
|
5002
5062
|
|
|
5003
|
-
export type DerivedCharacteristicPrimaryAttributeValue =
|
|
5004
|
-
| {
|
|
5005
|
-
kind: "Magical"
|
|
5006
|
-
}
|
|
5007
|
-
| {
|
|
5008
|
-
kind: "Blessed"
|
|
5009
|
-
}
|
|
5010
|
-
|
|
5011
|
-
export interface DerivedCharacteristicPermanentLoss {
|
|
5012
|
-
/**
|
|
5013
|
-
* If set, permanent losses to the derived characteristic can be bought back for the specified cost.
|
|
5014
|
-
*/
|
|
5015
|
-
canBeBoughtBack?: DerivedCharacteristicBuyBack
|
|
5016
|
-
}
|
|
5017
|
-
|
|
5018
|
-
export interface DerivedCharacteristicBuyBack {
|
|
5019
|
-
/**
|
|
5020
|
-
* The AP cost for buying back one point.
|
|
5021
|
-
*/
|
|
5022
|
-
cost: number
|
|
5023
|
-
}
|
|
5024
|
-
|
|
5025
|
-
export interface DerivedCharacteristicCalculation {
|
|
5026
|
-
/**
|
|
5027
|
-
* The base value for the calculation.
|
|
5028
|
-
*/
|
|
5029
|
-
base: DerivedCharacteristicBase
|
|
5030
|
-
|
|
5031
|
-
/**
|
|
5032
|
-
* A list of modifiers that are applied to the base value. The modifiers are applied in the order they appear in the list.
|
|
5033
|
-
*/
|
|
5034
|
-
modifiers?: DerivedCharacteristicModifier[]
|
|
5035
|
-
}
|
|
5036
|
-
|
|
5037
5063
|
export interface DerivedCharacteristicModifier {
|
|
5038
5064
|
/**
|
|
5039
5065
|
* The entry that, when active, causes the modifier.
|
|
@@ -29265,15 +29291,13 @@ export interface Settings {
|
|
|
29265
29291
|
*/
|
|
29266
29292
|
extendedBookDescriptionPublication: Publication_ID
|
|
29267
29293
|
|
|
29268
|
-
|
|
29269
|
-
* The entry that grants a bonus of 1 towards the maximum skill rating per selection.
|
|
29270
|
-
*/
|
|
29271
|
-
maximumSkillRatingBonusEntry: ActivatableIdentifier
|
|
29294
|
+
skills: SkillSettings
|
|
29272
29295
|
|
|
29273
|
-
|
|
29274
|
-
|
|
29275
|
-
|
|
29276
|
-
|
|
29296
|
+
combatTechniques: CombatTechniqueSettings
|
|
29297
|
+
|
|
29298
|
+
spellworks: SpellworkSettings
|
|
29299
|
+
|
|
29300
|
+
liturgicalChants: LiturgicalChantSettings
|
|
29277
29301
|
}
|
|
29278
29302
|
|
|
29279
29303
|
/**
|
|
@@ -29341,6 +29365,59 @@ export interface StyleSpecialAbilitySettings {
|
|
|
29341
29365
|
liturgical: FocusRule_ID
|
|
29342
29366
|
}
|
|
29343
29367
|
|
|
29368
|
+
export interface SkillSettings {
|
|
29369
|
+
/**
|
|
29370
|
+
* The entry that grants a bonus of 1 towards the maximum skill rating per selection.
|
|
29371
|
+
*/
|
|
29372
|
+
maximumSkillRatingBonusEntry: ActivatableIdentifier
|
|
29373
|
+
}
|
|
29374
|
+
|
|
29375
|
+
export interface CombatTechniqueSettings {
|
|
29376
|
+
/**
|
|
29377
|
+
* The entry that grants a bonus of 1 towards the maximum skill rating per selection.
|
|
29378
|
+
*/
|
|
29379
|
+
maximumCombatTechniqueRatingBonusEntry: ActivatableIdentifier
|
|
29380
|
+
|
|
29381
|
+
/**
|
|
29382
|
+
* The attribute that increases the attack value of a close combat technique.
|
|
29383
|
+
*/
|
|
29384
|
+
closeCombatTechniqueAttackAttribute: Attribute_ID
|
|
29385
|
+
}
|
|
29386
|
+
|
|
29387
|
+
export interface SpellworkSettings {
|
|
29388
|
+
/**
|
|
29389
|
+
* The entry that removes the maximum rating of 14 from spellworks for selected properties. It must provide the property as a selected option.
|
|
29390
|
+
*/
|
|
29391
|
+
maximumRatingUnlockEntry: ActivatableIdentifier
|
|
29392
|
+
|
|
29393
|
+
/**
|
|
29394
|
+
* Spell 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 focus rule must be generated for every entry.
|
|
29395
|
+
*/
|
|
29396
|
+
enhancementsFocusRule: FocusRule_ID
|
|
29397
|
+
}
|
|
29398
|
+
|
|
29399
|
+
export interface LiturgicalChantSettings {
|
|
29400
|
+
/**
|
|
29401
|
+
* The general aspect for church traditions.
|
|
29402
|
+
*/
|
|
29403
|
+
generalAspectForChurch: Aspect_ID
|
|
29404
|
+
|
|
29405
|
+
/**
|
|
29406
|
+
* The general aspect for shamanistic traditions.
|
|
29407
|
+
*/
|
|
29408
|
+
generalAspectForShamanistic: Aspect_ID
|
|
29409
|
+
|
|
29410
|
+
/**
|
|
29411
|
+
* The entry that removes the maximum rating of 14 from liturgical chants for selected aspects. It must provide the aspect as a selected option.
|
|
29412
|
+
*/
|
|
29413
|
+
maximumRatingUnlockEntry: ActivatableIdentifier
|
|
29414
|
+
|
|
29415
|
+
/**
|
|
29416
|
+
* 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 focus rule must be generated for every entry.
|
|
29417
|
+
*/
|
|
29418
|
+
enhancementsFocusRule: FocusRule_ID
|
|
29419
|
+
}
|
|
29420
|
+
|
|
29344
29421
|
export interface SexPractice {
|
|
29345
29422
|
/**
|
|
29346
29423
|
* References to where in which publications this entry has been defined. Entries may also be added or removed in later printings.
|
|
@@ -2,7 +2,7 @@ import { Case } from "tsondb/schema/gen";
|
|
|
2
2
|
import type { ActivatableIdentifier as ActivatableIdentifierType, GeneralSelectOption, RequirableSelectOptionIdentifier, TradeSecretAdventurePointsValue } from "../../gen/types.js";
|
|
3
3
|
import type { CacheBuilder } from "./internal.ts";
|
|
4
4
|
import type { ResolvedNewSkillApplication, ResolvedSkillUse } from "./newApplicationsAndUses.ts";
|
|
5
|
-
export type ResolvedSelectOptionIdentifier = RequirableSelectOptionIdentifier | Case<"Blessing" | "Cantrip" | "Script" | "Culture" | "SexPractice" | "HomunculusType" | "BlessedTradition" | "Disease" | "Poison" | "TargetCategory" | "Advantage", string>;
|
|
5
|
+
export type ResolvedSelectOptionIdentifier = RequirableSelectOptionIdentifier | Case<"Blessing" | "Cantrip" | "Script" | "Culture" | "SexPractice" | "HomunculusType" | "BlessedTradition" | "Disease" | "Poison" | "TargetCategory" | "Patron" | "Advantage", string>;
|
|
6
6
|
export type ResolvedSelectOption = {
|
|
7
7
|
id: ResolvedSelectOptionIdentifier;
|
|
8
8
|
content: Omit<GeneralSelectOption, "ap_value"> & {
|
|
@@ -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
|
};
|
|
@@ -12,7 +12,13 @@ export declare const DerivedCharacteristic: DB.Entity<"DerivedCharacteristic", {
|
|
|
12
12
|
C: DB.EnumCase<null>;
|
|
13
13
|
D: DB.EnumCase<null>;
|
|
14
14
|
}, []>>, true>;
|
|
15
|
-
maximum: DB.MemberDecl<DB.IncludeIdentifier<[], DB.
|
|
15
|
+
maximum: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"DerivedCharacteristicPurchaseMaximumValue", {
|
|
16
|
+
Attribute: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
17
|
+
PrimaryAttribute: DB.EnumCase<DB.IncludeIdentifier<[], DB.Enum<"DerivedCharacteristicPrimaryAttributeValue", {
|
|
18
|
+
Magical: DB.EnumCase<null>;
|
|
19
|
+
Blessed: DB.EnumCase<null>;
|
|
20
|
+
}, []>>>;
|
|
21
|
+
}, []>>, true>;
|
|
16
22
|
}>, []>>, false>;
|
|
17
23
|
permanentLoss: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"DerivedCharacteristicPermanentLoss", DB.Object<{
|
|
18
24
|
canBeBoughtBack: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"DerivedCharacteristicBuyBack", DB.Object<{
|
|
@@ -130,6 +130,15 @@ const DerivedCharacteristicBaseValue = DB.Enum(import.meta.url, {
|
|
|
130
130
|
}),
|
|
131
131
|
}),
|
|
132
132
|
});
|
|
133
|
+
const DerivedCharacteristicPurchaseMaximumValue = DB.Enum(import.meta.url, {
|
|
134
|
+
name: "DerivedCharacteristicPurchaseMaximumValue",
|
|
135
|
+
values: () => ({
|
|
136
|
+
Attribute: DB.EnumCase({ type: AttributeIdentifier() }),
|
|
137
|
+
PrimaryAttribute: DB.EnumCase({
|
|
138
|
+
type: DB.IncludeIdentifier(DerivedCharacteristicPrimaryAttributeValue),
|
|
139
|
+
}),
|
|
140
|
+
}),
|
|
141
|
+
});
|
|
133
142
|
const DerivedCharacteristicBase = DB.TypeAlias(import.meta.url, {
|
|
134
143
|
name: "DerivedCharacteristicBase",
|
|
135
144
|
type: () => DB.GenIncludeIdentifier(MathOperation, [DB.IncludeIdentifier(DerivedCharacteristicBaseValue)]),
|
|
@@ -194,7 +203,7 @@ const DerivedCharacteristicPurchase = DB.TypeAlias(import.meta.url, {
|
|
|
194
203
|
}),
|
|
195
204
|
maximum: DB.Required({
|
|
196
205
|
comment: "The maximum value that can be achieved for the derived characteristic through improvements.",
|
|
197
|
-
type: DB.IncludeIdentifier(
|
|
206
|
+
type: DB.IncludeIdentifier(DerivedCharacteristicPurchaseMaximumValue),
|
|
198
207
|
}),
|
|
199
208
|
}),
|
|
200
209
|
});
|
package/lib/types/Locale.d.ts
CHANGED
|
@@ -230,6 +230,7 @@ export declare const Locale: DB.Entity<"Locale", {
|
|
|
230
230
|
"Sort By": null;
|
|
231
231
|
Name: null;
|
|
232
232
|
"Date Modified": null;
|
|
233
|
+
"Date Created": null;
|
|
233
234
|
Group: null;
|
|
234
235
|
Property: null;
|
|
235
236
|
"general.filters.sort.bylocation": null;
|
|
@@ -748,6 +749,8 @@ export declare const Locale: DB.Entity<"Locale", {
|
|
|
748
749
|
"Lost Total": null;
|
|
749
750
|
"Bought Back": null;
|
|
750
751
|
"Buy Back Permanently Lost Point": null;
|
|
752
|
+
"Permanently Lost {$energy}": null;
|
|
753
|
+
"p{$energy}": null;
|
|
751
754
|
"Permanently Lost Life Points": null;
|
|
752
755
|
pLP: null;
|
|
753
756
|
"Permanently Lost Arcane Energy": null;
|
|
@@ -766,7 +769,9 @@ export declare const Locale: DB.Entity<"Locale", {
|
|
|
766
769
|
*/
|
|
767
770
|
"AP Cost for {$category}": null;
|
|
768
771
|
"Custom option": null;
|
|
772
|
+
"Show entries with unmet prerequisites": null;
|
|
769
773
|
"specialabilities.nativetonguelevel": null;
|
|
774
|
+
Adoruzepterzauber: null;
|
|
770
775
|
"Advanced Combat Special Abilities": null;
|
|
771
776
|
"Advanced Karma Special Abilities": null;
|
|
772
777
|
"Advanced Magical Special Abilities": null;
|
|
@@ -774,6 +779,7 @@ export declare const Locale: DB.Entity<"Locale", {
|
|
|
774
779
|
"Ancestor Glyphs": null;
|
|
775
780
|
"Arcane Orb Enchantments": null;
|
|
776
781
|
"Attire Enchantments": null;
|
|
782
|
+
Beutelzauber: null;
|
|
777
783
|
"Blessed Traditions": null;
|
|
778
784
|
"Bowl Enchantments": null;
|
|
779
785
|
"Brawling Special Abilities": null;
|
|
@@ -789,9 +795,13 @@ export declare const Locale: DB.Entity<"Locale", {
|
|
|
789
795
|
"Fate Point Special Abilities": null;
|
|
790
796
|
"Fools Hat Enchantments": null;
|
|
791
797
|
"General Special Abilities": null;
|
|
798
|
+
Haubenzauber: null;
|
|
799
|
+
Hauerkettenzauber: null;
|
|
792
800
|
"Instrument Enchantments": null;
|
|
793
801
|
"Karma Special Abilities": null;
|
|
802
|
+
Keulenzauber: null;
|
|
794
803
|
Krallenkettenzauber: null;
|
|
804
|
+
Kristallkugelzauber: null;
|
|
795
805
|
"Liturgical Style Special Abilities": null;
|
|
796
806
|
"Lycantropic Gifts": null;
|
|
797
807
|
"Magical Signs": null;
|
|
@@ -802,6 +812,7 @@ export declare const Locale: DB.Entity<"Locale", {
|
|
|
802
812
|
"Pact Gifts": null;
|
|
803
813
|
"Protective/Warding Circle Special Abilities": null;
|
|
804
814
|
"Ring Enchantments": null;
|
|
815
|
+
Schweinetrommelzauber: null;
|
|
805
816
|
Sermons: null;
|
|
806
817
|
"Sex Special Abilities": null;
|
|
807
818
|
"Sickle Rituals": null;
|
package/lib/types/Locale.js
CHANGED
|
@@ -251,6 +251,7 @@ export const Locale = DB.Entity(import.meta.url, {
|
|
|
251
251
|
"Sort By": null,
|
|
252
252
|
"Name": null,
|
|
253
253
|
"Date Modified": null,
|
|
254
|
+
"Date Created": null,
|
|
254
255
|
"Group": null,
|
|
255
256
|
"Property": null,
|
|
256
257
|
"general.filters.sort.bylocation": null,
|
|
@@ -772,6 +773,8 @@ export const Locale = DB.Entity(import.meta.url, {
|
|
|
772
773
|
"Lost Total": null,
|
|
773
774
|
"Bought Back": null,
|
|
774
775
|
"Buy Back Permanently Lost Point": null,
|
|
776
|
+
"Permanently Lost {$energy}": null,
|
|
777
|
+
"p{$energy}": null,
|
|
775
778
|
"Permanently Lost Life Points": null,
|
|
776
779
|
"pLP": null,
|
|
777
780
|
"Permanently Lost Arcane Energy": null,
|
|
@@ -790,7 +793,9 @@ export const Locale = DB.Entity(import.meta.url, {
|
|
|
790
793
|
*/
|
|
791
794
|
"AP Cost for {$category}": null,
|
|
792
795
|
"Custom option": null,
|
|
796
|
+
"Show entries with unmet prerequisites": null,
|
|
793
797
|
"specialabilities.nativetonguelevel": null,
|
|
798
|
+
"Adoruzepterzauber": null,
|
|
794
799
|
"Advanced Combat Special Abilities": null,
|
|
795
800
|
"Advanced Karma Special Abilities": null,
|
|
796
801
|
"Advanced Magical Special Abilities": null,
|
|
@@ -798,6 +803,7 @@ export const Locale = DB.Entity(import.meta.url, {
|
|
|
798
803
|
"Ancestor Glyphs": null,
|
|
799
804
|
"Arcane Orb Enchantments": null,
|
|
800
805
|
"Attire Enchantments": null,
|
|
806
|
+
"Beutelzauber": null,
|
|
801
807
|
"Blessed Traditions": null,
|
|
802
808
|
"Bowl Enchantments": null,
|
|
803
809
|
"Brawling Special Abilities": null,
|
|
@@ -813,9 +819,13 @@ export const Locale = DB.Entity(import.meta.url, {
|
|
|
813
819
|
"Fate Point Special Abilities": null,
|
|
814
820
|
"Fools Hat Enchantments": null,
|
|
815
821
|
"General Special Abilities": null,
|
|
822
|
+
"Haubenzauber": null,
|
|
823
|
+
"Hauerkettenzauber": null,
|
|
816
824
|
"Instrument Enchantments": null,
|
|
817
825
|
"Karma Special Abilities": null,
|
|
826
|
+
"Keulenzauber": null,
|
|
818
827
|
"Krallenkettenzauber": null,
|
|
828
|
+
"Kristallkugelzauber": null,
|
|
819
829
|
"Liturgical Style Special Abilities": null,
|
|
820
830
|
"Lycantropic Gifts": null,
|
|
821
831
|
"Magical Signs": null,
|
|
@@ -826,6 +836,7 @@ export const Locale = DB.Entity(import.meta.url, {
|
|
|
826
836
|
"Pact Gifts": null,
|
|
827
837
|
"Protective/Warding Circle Special Abilities": null,
|
|
828
838
|
"Ring Enchantments": null,
|
|
839
|
+
"Schweinetrommelzauber": null,
|
|
829
840
|
"Sermons": null,
|
|
830
841
|
"Sex Special Abilities": null,
|
|
831
842
|
"Sickle Rituals": null,
|
package/lib/types/Settings.d.ts
CHANGED
|
@@ -187,122 +187,253 @@ export declare const Settings: DB.SingletonEntity<"Settings", {
|
|
|
187
187
|
liturgical: DB.MemberDecl<DB.ReferenceIdentifier, true>;
|
|
188
188
|
}>, []>>, true>;
|
|
189
189
|
extendedBookDescriptionPublication: DB.MemberDecl<DB.ReferenceIdentifier, true>;
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
190
|
+
skills: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"SkillSettings", DB.Object<{
|
|
191
|
+
maximumSkillRatingBonusEntry: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"ActivatableIdentifier", {
|
|
192
|
+
Adoruzepterzauber: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
193
|
+
ArcaneOrbEnchantment: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
194
|
+
AttireEnchantment: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
195
|
+
Beutelzauber: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
196
|
+
BowlEnchantment: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
197
|
+
CauldronEnchantment: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
198
|
+
ChronicleEnchantment: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
199
|
+
DaggerRitual: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
200
|
+
FoolsHatEnchantment: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
201
|
+
Haubenzauber: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
202
|
+
Hauerkettenzauber: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
203
|
+
InstrumentEnchantment: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
204
|
+
Keulenzauber: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
205
|
+
Krallenkettenzauber: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
206
|
+
Kristallkugelzauber: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
207
|
+
OrbEnchantment: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
208
|
+
RingEnchantment: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
209
|
+
Schweinetrommelzauber: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
210
|
+
SickleRitual: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
211
|
+
SpellSwordEnchantment: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
212
|
+
StaffEnchantment: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
213
|
+
ToyEnchantment: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
214
|
+
Trinkhornzauber: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
215
|
+
WandEnchantment: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
216
|
+
WeaponEnchantment: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
217
|
+
AdvancedCombatSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
218
|
+
AdvancedKarmaSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
219
|
+
AdvancedMagicalSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
220
|
+
AdvancedSkillSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
221
|
+
AncestorGlyph: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
222
|
+
BlessedTradition: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
223
|
+
BrawlingSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
224
|
+
CeremonialItemSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
225
|
+
CombatSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
226
|
+
CombatStyleSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
227
|
+
CommandSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
228
|
+
FamiliarSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
229
|
+
FatePointSexSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
230
|
+
FatePointSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
231
|
+
GeneralSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
232
|
+
KarmaSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
233
|
+
LiturgicalStyleSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
234
|
+
LycantropicGift: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
235
|
+
MagicalSign: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
236
|
+
MagicalSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
237
|
+
MagicalTradition: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
238
|
+
MagicStyleSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
239
|
+
PactGift: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
240
|
+
ProtectiveWardingCircleSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
241
|
+
Sermon: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
242
|
+
SexSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
243
|
+
SikaryanDrainSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
244
|
+
SkillStyleSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
245
|
+
VampiricGift: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
246
|
+
Vision: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
247
|
+
Advantage: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
248
|
+
Disadvantage: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
249
|
+
}, []>>, true>;
|
|
250
|
+
}>, []>>, true>;
|
|
251
|
+
combatTechniques: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"CombatTechniqueSettings", DB.Object<{
|
|
252
|
+
maximumCombatTechniqueRatingBonusEntry: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"ActivatableIdentifier", {
|
|
253
|
+
Adoruzepterzauber: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
254
|
+
ArcaneOrbEnchantment: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
255
|
+
AttireEnchantment: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
256
|
+
Beutelzauber: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
257
|
+
BowlEnchantment: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
258
|
+
CauldronEnchantment: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
259
|
+
ChronicleEnchantment: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
260
|
+
DaggerRitual: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
261
|
+
FoolsHatEnchantment: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
262
|
+
Haubenzauber: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
263
|
+
Hauerkettenzauber: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
264
|
+
InstrumentEnchantment: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
265
|
+
Keulenzauber: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
266
|
+
Krallenkettenzauber: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
267
|
+
Kristallkugelzauber: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
268
|
+
OrbEnchantment: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
269
|
+
RingEnchantment: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
270
|
+
Schweinetrommelzauber: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
271
|
+
SickleRitual: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
272
|
+
SpellSwordEnchantment: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
273
|
+
StaffEnchantment: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
274
|
+
ToyEnchantment: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
275
|
+
Trinkhornzauber: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
276
|
+
WandEnchantment: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
277
|
+
WeaponEnchantment: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
278
|
+
AdvancedCombatSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
279
|
+
AdvancedKarmaSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
280
|
+
AdvancedMagicalSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
281
|
+
AdvancedSkillSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
282
|
+
AncestorGlyph: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
283
|
+
BlessedTradition: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
284
|
+
BrawlingSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
285
|
+
CeremonialItemSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
286
|
+
CombatSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
287
|
+
CombatStyleSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
288
|
+
CommandSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
289
|
+
FamiliarSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
290
|
+
FatePointSexSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
291
|
+
FatePointSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
292
|
+
GeneralSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
293
|
+
KarmaSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
294
|
+
LiturgicalStyleSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
295
|
+
LycantropicGift: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
296
|
+
MagicalSign: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
297
|
+
MagicalSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
298
|
+
MagicalTradition: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
299
|
+
MagicStyleSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
300
|
+
PactGift: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
301
|
+
ProtectiveWardingCircleSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
302
|
+
Sermon: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
303
|
+
SexSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
304
|
+
SikaryanDrainSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
305
|
+
SkillStyleSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
306
|
+
VampiricGift: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
307
|
+
Vision: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
308
|
+
Advantage: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
309
|
+
Disadvantage: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
310
|
+
}, []>>, true>;
|
|
311
|
+
closeCombatTechniqueAttackAttribute: DB.MemberDecl<DB.ReferenceIdentifier, true>;
|
|
312
|
+
}>, []>>, true>;
|
|
313
|
+
spellworks: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"SpellworkSettings", DB.Object<{
|
|
314
|
+
maximumRatingUnlockEntry: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"ActivatableIdentifier", {
|
|
315
|
+
Adoruzepterzauber: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
316
|
+
ArcaneOrbEnchantment: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
317
|
+
AttireEnchantment: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
318
|
+
Beutelzauber: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
319
|
+
BowlEnchantment: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
320
|
+
CauldronEnchantment: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
321
|
+
ChronicleEnchantment: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
322
|
+
DaggerRitual: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
323
|
+
FoolsHatEnchantment: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
324
|
+
Haubenzauber: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
325
|
+
Hauerkettenzauber: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
326
|
+
InstrumentEnchantment: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
327
|
+
Keulenzauber: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
328
|
+
Krallenkettenzauber: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
329
|
+
Kristallkugelzauber: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
330
|
+
OrbEnchantment: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
331
|
+
RingEnchantment: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
332
|
+
Schweinetrommelzauber: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
333
|
+
SickleRitual: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
334
|
+
SpellSwordEnchantment: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
335
|
+
StaffEnchantment: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
336
|
+
ToyEnchantment: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
337
|
+
Trinkhornzauber: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
338
|
+
WandEnchantment: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
339
|
+
WeaponEnchantment: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
340
|
+
AdvancedCombatSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
341
|
+
AdvancedKarmaSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
342
|
+
AdvancedMagicalSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
343
|
+
AdvancedSkillSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
344
|
+
AncestorGlyph: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
345
|
+
BlessedTradition: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
346
|
+
BrawlingSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
347
|
+
CeremonialItemSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
348
|
+
CombatSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
349
|
+
CombatStyleSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
350
|
+
CommandSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
351
|
+
FamiliarSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
352
|
+
FatePointSexSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
353
|
+
FatePointSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
354
|
+
GeneralSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
355
|
+
KarmaSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
356
|
+
LiturgicalStyleSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
357
|
+
LycantropicGift: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
358
|
+
MagicalSign: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
359
|
+
MagicalSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
360
|
+
MagicalTradition: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
361
|
+
MagicStyleSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
362
|
+
PactGift: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
363
|
+
ProtectiveWardingCircleSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
364
|
+
Sermon: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
365
|
+
SexSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
366
|
+
SikaryanDrainSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
367
|
+
SkillStyleSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
368
|
+
VampiricGift: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
369
|
+
Vision: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
370
|
+
Advantage: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
371
|
+
Disadvantage: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
372
|
+
}, []>>, true>;
|
|
373
|
+
enhancementsFocusRule: DB.MemberDecl<DB.ReferenceIdentifier, true>;
|
|
374
|
+
}>, []>>, true>;
|
|
375
|
+
liturgicalChants: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"LiturgicalChantSettings", DB.Object<{
|
|
376
|
+
generalAspectForChurch: DB.MemberDecl<DB.ReferenceIdentifier, true>;
|
|
377
|
+
generalAspectForShamanistic: DB.MemberDecl<DB.ReferenceIdentifier, true>;
|
|
378
|
+
maximumRatingUnlockEntry: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"ActivatableIdentifier", {
|
|
379
|
+
Adoruzepterzauber: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
380
|
+
ArcaneOrbEnchantment: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
381
|
+
AttireEnchantment: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
382
|
+
Beutelzauber: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
383
|
+
BowlEnchantment: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
384
|
+
CauldronEnchantment: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
385
|
+
ChronicleEnchantment: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
386
|
+
DaggerRitual: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
387
|
+
FoolsHatEnchantment: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
388
|
+
Haubenzauber: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
389
|
+
Hauerkettenzauber: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
390
|
+
InstrumentEnchantment: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
391
|
+
Keulenzauber: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
392
|
+
Krallenkettenzauber: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
393
|
+
Kristallkugelzauber: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
394
|
+
OrbEnchantment: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
395
|
+
RingEnchantment: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
396
|
+
Schweinetrommelzauber: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
397
|
+
SickleRitual: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
398
|
+
SpellSwordEnchantment: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
399
|
+
StaffEnchantment: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
400
|
+
ToyEnchantment: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
401
|
+
Trinkhornzauber: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
402
|
+
WandEnchantment: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
403
|
+
WeaponEnchantment: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
404
|
+
AdvancedCombatSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
405
|
+
AdvancedKarmaSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
406
|
+
AdvancedMagicalSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
407
|
+
AdvancedSkillSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
408
|
+
AncestorGlyph: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
409
|
+
BlessedTradition: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
410
|
+
BrawlingSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
411
|
+
CeremonialItemSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
412
|
+
CombatSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
413
|
+
CombatStyleSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
414
|
+
CommandSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
415
|
+
FamiliarSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
416
|
+
FatePointSexSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
417
|
+
FatePointSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
418
|
+
GeneralSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
419
|
+
KarmaSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
420
|
+
LiturgicalStyleSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
421
|
+
LycantropicGift: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
422
|
+
MagicalSign: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
423
|
+
MagicalSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
424
|
+
MagicalTradition: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
425
|
+
MagicStyleSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
426
|
+
PactGift: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
427
|
+
ProtectiveWardingCircleSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
428
|
+
Sermon: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
429
|
+
SexSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
430
|
+
SikaryanDrainSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
431
|
+
SkillStyleSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
432
|
+
VampiricGift: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
433
|
+
Vision: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
434
|
+
Advantage: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
435
|
+
Disadvantage: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
436
|
+
}, []>>, true>;
|
|
437
|
+
enhancementsFocusRule: DB.MemberDecl<DB.ReferenceIdentifier, true>;
|
|
438
|
+
}>, []>>, true>;
|
|
308
439
|
}>;
|
package/lib/types/Settings.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as DB from "tsondb/schema/dsl";
|
|
2
|
-
import { AdvantageIdentifier, DerivedCharacteristicIdentifier, ExperienceLevelIdentifier, FocusRuleIdentifier, PublicationIdentifier, } from "./_Identifier.js";
|
|
2
|
+
import { AdvantageIdentifier, AspectIdentifier, AttributeIdentifier, DerivedCharacteristicIdentifier, ExperienceLevelIdentifier, FocusRuleIdentifier, PublicationIdentifier, } from "./_Identifier.js";
|
|
3
3
|
import { ActivatableIdentifier, SpecialAbilityIdentifier } from "./_IdentifierGroup.js";
|
|
4
4
|
export const Settings = DB.SingletonEntity(import.meta.url, {
|
|
5
5
|
name: "Settings",
|
|
@@ -31,13 +31,21 @@ export const Settings = DB.SingletonEntity(import.meta.url, {
|
|
|
31
31
|
comment: "The publication that extends the description of books with additional information.",
|
|
32
32
|
type: PublicationIdentifier(),
|
|
33
33
|
}),
|
|
34
|
-
|
|
35
|
-
comment:
|
|
36
|
-
type: DB.IncludeIdentifier(
|
|
34
|
+
skills: DB.Required({
|
|
35
|
+
comment: SkillSettings.comment,
|
|
36
|
+
type: DB.IncludeIdentifier(SkillSettings),
|
|
37
37
|
}),
|
|
38
|
-
|
|
39
|
-
comment:
|
|
40
|
-
type: DB.IncludeIdentifier(
|
|
38
|
+
combatTechniques: DB.Required({
|
|
39
|
+
comment: CombatTechniqueSettings.comment,
|
|
40
|
+
type: DB.IncludeIdentifier(CombatTechniqueSettings),
|
|
41
|
+
}),
|
|
42
|
+
spellworks: DB.Required({
|
|
43
|
+
comment: SpellworkSettings.comment,
|
|
44
|
+
type: DB.IncludeIdentifier(SpellworkSettings),
|
|
45
|
+
}),
|
|
46
|
+
liturgicalChants: DB.Required({
|
|
47
|
+
comment: LiturgicalChantSettings.comment,
|
|
48
|
+
type: DB.IncludeIdentifier(LiturgicalChantSettings),
|
|
41
49
|
}),
|
|
42
50
|
}),
|
|
43
51
|
});
|
|
@@ -103,3 +111,59 @@ const StyleSpecialAbilitySettings = DB.TypeAlias(import.meta.url, {
|
|
|
103
111
|
}),
|
|
104
112
|
}),
|
|
105
113
|
});
|
|
114
|
+
const SkillSettings = DB.TypeAlias(import.meta.url, {
|
|
115
|
+
name: "SkillSettings",
|
|
116
|
+
type: () => DB.Object({
|
|
117
|
+
maximumSkillRatingBonusEntry: DB.Required({
|
|
118
|
+
comment: "The entry that grants a bonus of 1 towards the maximum skill rating per selection.",
|
|
119
|
+
type: DB.IncludeIdentifier(ActivatableIdentifier),
|
|
120
|
+
}),
|
|
121
|
+
}),
|
|
122
|
+
});
|
|
123
|
+
const CombatTechniqueSettings = DB.TypeAlias(import.meta.url, {
|
|
124
|
+
name: "CombatTechniqueSettings",
|
|
125
|
+
type: () => DB.Object({
|
|
126
|
+
maximumCombatTechniqueRatingBonusEntry: DB.Required({
|
|
127
|
+
comment: "The entry that grants a bonus of 1 towards the maximum skill rating per selection.",
|
|
128
|
+
type: DB.IncludeIdentifier(ActivatableIdentifier),
|
|
129
|
+
}),
|
|
130
|
+
closeCombatTechniqueAttackAttribute: DB.Required({
|
|
131
|
+
comment: "The attribute that increases the attack value of a close combat technique.",
|
|
132
|
+
type: AttributeIdentifier(),
|
|
133
|
+
}),
|
|
134
|
+
}),
|
|
135
|
+
});
|
|
136
|
+
const SpellworkSettings = DB.TypeAlias(import.meta.url, {
|
|
137
|
+
name: "SpellworkSettings",
|
|
138
|
+
type: () => DB.Object({
|
|
139
|
+
maximumRatingUnlockEntry: DB.Required({
|
|
140
|
+
comment: "The entry that removes the maximum rating of 14 from spellworks for selected properties. It must provide the property as a selected option.",
|
|
141
|
+
type: DB.IncludeIdentifier(ActivatableIdentifier),
|
|
142
|
+
}),
|
|
143
|
+
enhancementsFocusRule: DB.Required({
|
|
144
|
+
comment: "Spell 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 focus rule must be generated for every entry.",
|
|
145
|
+
type: FocusRuleIdentifier(),
|
|
146
|
+
}),
|
|
147
|
+
}),
|
|
148
|
+
});
|
|
149
|
+
const LiturgicalChantSettings = DB.TypeAlias(import.meta.url, {
|
|
150
|
+
name: "LiturgicalChantSettings",
|
|
151
|
+
type: () => DB.Object({
|
|
152
|
+
generalAspectForChurch: DB.Required({
|
|
153
|
+
comment: "The general aspect for church traditions.",
|
|
154
|
+
type: AspectIdentifier(),
|
|
155
|
+
}),
|
|
156
|
+
generalAspectForShamanistic: DB.Required({
|
|
157
|
+
comment: "The general aspect for shamanistic traditions.",
|
|
158
|
+
type: AspectIdentifier(),
|
|
159
|
+
}),
|
|
160
|
+
maximumRatingUnlockEntry: DB.Required({
|
|
161
|
+
comment: "The entry that removes the maximum rating of 14 from liturgical chants for selected aspects. It must provide the aspect as a selected option.",
|
|
162
|
+
type: DB.IncludeIdentifier(ActivatableIdentifier),
|
|
163
|
+
}),
|
|
164
|
+
enhancementsFocusRule: DB.Required({
|
|
165
|
+
comment: "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 focus rule must be generated for every entry.",
|
|
166
|
+
type: FocusRuleIdentifier(),
|
|
167
|
+
}),
|
|
168
|
+
}),
|
|
169
|
+
});
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@optolith/database-schema",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.114.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",
|
|
@@ -39,7 +39,7 @@
|
|
|
39
39
|
"license": "MPL-2.0",
|
|
40
40
|
"dependencies": {
|
|
41
41
|
"@elyukai/utils": "^0.3.6",
|
|
42
|
-
"tsondb": "^0.23.
|
|
42
|
+
"tsondb": "^0.23.4"
|
|
43
43
|
},
|
|
44
44
|
"devDependencies": {
|
|
45
45
|
"@elyukai/oxc-config": "^0.1.0",
|