optolith-database-schema 0.9.0 → 0.10.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 +20 -0
- package/lib/main.js +8 -3
- package/lib/types/Advantage.d.ts +13 -2
- package/lib/types/Disadvantage.d.ts +12 -2
- package/lib/types/Profession.d.ts +12 -2
- package/lib/types/Talisman.d.ts +6 -6
- package/lib/types/_Activatable.d.ts +111 -3
- package/lib/types/_Activatable.js +4 -35
- package/lib/types/_ActivatableSelectOptionCategory.d.ts +30 -0
- package/lib/types/equipment/item/Poison.d.ts +21 -1
- package/lib/types/equipment/item/Poison.js +1 -0
- package/lib/types/equipment/item/Weapon.d.ts +4 -3
- package/lib/types/equipment/item/sub/ArmorType.d.ts +3 -3
- package/lib/types/prerequisites/DisplayOption.d.ts +14 -0
- package/lib/types/prerequisites/PrerequisiteGroups.d.ts +23 -1
- package/lib/types/prerequisites/single/AncestorBloodPrerequisite.d.ts +5 -0
- package/lib/types/prerequisites/single/AncestorBloodPrerequisite.js +1 -0
- package/lib/types/prerequisites/single/RatedMinimumNumberPrerequisite.d.ts +67 -0
- package/lib/types/prerequisites/single/RatedMinimumNumberPrerequisite.js +6 -0
- package/lib/types/prerequisites/single/RatedPrerequisite.d.ts +0 -55
- package/lib/types/prerequisites/single/RatedSumPrerequisite.d.ts +19 -0
- package/lib/types/prerequisites/single/RatedSumPrerequisite.js +1 -0
- package/lib/types/prerequisites/single/SexualCharacteristicPrerequisite.d.ts +11 -0
- package/lib/types/prerequisites/single/SexualCharacteristicPrerequisite.js +5 -0
- package/lib/types/prerequisites/single/TextPrerequisite.d.ts +29 -0
- package/lib/types/prerequisites/single/TextPrerequisite.js +5 -0
- package/lib/types/specialAbility/AdvancedCombatSpecialAbility.d.ts +11 -0
- package/lib/types/specialAbility/CeremonialItemSpecialAbility.d.ts +7 -2
- package/lib/types/specialAbility/CombatSpecialAbility.d.ts +6 -2
- package/lib/types/specialAbility/FatePointSpecialAbility.d.ts +5 -0
- package/lib/types/specialAbility/GeneralSpecialAbility.d.ts +12 -2
- package/lib/types/specialAbility/KarmaSpecialAbility.d.ts +7 -2
- package/lib/types/specialAbility/MagicalSpecialAbility.d.ts +11 -2
- package/lib/types/specialAbility/SikaryanDrainSpecialAbility.d.ts +5 -0
- package/lib/types/specialAbility/VampiricGift.d.ts +7 -2
- package/lib/types/traditionArtifacts/ArcaneOrbEnchantment.d.ts +2 -2
- package/lib/types/traditionArtifacts/AttireEnchantment.d.ts +2 -2
- package/lib/types/traditionArtifacts/BowlEnchantment.d.ts +2 -2
- package/lib/types/traditionArtifacts/CauldronEnchantment.d.ts +2 -2
- package/lib/types/traditionArtifacts/ChronicleEnchantment.d.ts +2 -2
- package/lib/types/traditionArtifacts/DaggerRitual.d.ts +2 -2
- package/lib/types/traditionArtifacts/FoolsHatEnchantment.d.ts +2 -2
- package/lib/types/traditionArtifacts/InstrumentEnchantment.d.ts +2 -2
- package/lib/types/traditionArtifacts/Krallenkettenzauber.d.ts +2 -2
- package/lib/types/traditionArtifacts/OrbEnchantment.d.ts +2 -2
- package/lib/types/traditionArtifacts/RingEnchantment.d.ts +2 -2
- package/lib/types/traditionArtifacts/SickleRitual.d.ts +2 -2
- package/lib/types/traditionArtifacts/SpellSwordEnchantment.d.ts +7 -2
- package/lib/types/traditionArtifacts/StaffEnchantment.d.ts +12 -2
- package/lib/types/traditionArtifacts/ToyEnchantment.d.ts +2 -2
- package/lib/types/traditionArtifacts/Trinkhornzauber.d.ts +2 -2
- package/lib/types/traditionArtifacts/WandEnchantment.d.ts +2 -2
- package/lib/types/traditionArtifacts/WeaponEnchantment.d.ts +2 -2
- package/lib/validation/schema.js +2 -2
- package/package.json +1 -1
- package/schema/Advantage.schema.json +11 -0
- package/schema/Disadvantage.schema.json +8 -0
- package/schema/Profession.schema.json +8 -0
- package/schema/Talisman.schema.json +2 -4
- package/schema/_Activatable.schema.json +166 -0
- package/schema/_ActivatableSelectOptionCategory.schema.json +141 -0
- package/schema/equipment/item/Poison.schema.json +55 -1
- package/schema/equipment/item/Weapon.schema.json +5 -1
- package/schema/equipment/item/sub/ArmorType.schema.json +1 -2
- package/schema/prerequisites/DisplayOption.schema.json +4 -0
- package/schema/prerequisites/PrerequisiteGroups.schema.json +98 -2
- package/schema/prerequisites/single/AncestorBloodPrerequisite.schema.json +14 -0
- package/schema/prerequisites/single/RatedMinimumNumberPrerequisite.schema.json +166 -0
- package/schema/prerequisites/single/RatedPrerequisite.schema.json +0 -125
- package/schema/prerequisites/single/RatedSumPrerequisite.schema.json +33 -0
- package/schema/prerequisites/single/SexualCharacteristicPrerequisite.schema.json +26 -0
- package/schema/prerequisites/single/TextPrerequisite.schema.json +14 -0
- package/schema/specialAbility/AdvancedCombatSpecialAbility.schema.json +8 -0
- package/schema/specialAbility/CeremonialItemSpecialAbility.schema.json +4 -0
- package/schema/specialAbility/CombatSpecialAbility.schema.json +4 -0
- package/schema/specialAbility/FatePointSpecialAbility.schema.json +4 -0
- package/schema/specialAbility/GeneralSpecialAbility.schema.json +8 -0
- package/schema/specialAbility/KarmaSpecialAbility.schema.json +4 -0
- package/schema/specialAbility/MagicalSpecialAbility.schema.json +8 -0
- package/schema/specialAbility/SikaryanDrainSpecialAbility.schema.json +4 -0
- package/schema/specialAbility/VampiricGift.schema.json +4 -0
- package/schema/traditionArtifacts/SpellSwordEnchantment.schema.json +4 -0
- package/schema/traditionArtifacts/StaffEnchantment.schema.json +8 -0
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,26 @@
|
|
|
2
2
|
|
|
3
3
|
All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines.
|
|
4
4
|
|
|
5
|
+
## [0.10.0](https://github.com/elyukai/optolith-database-schema/compare/v0.9.0...v0.10.0) (2023-05-01)
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
### ⚠ BREAKING CHANGES
|
|
9
|
+
|
|
10
|
+
* finish schema
|
|
11
|
+
|
|
12
|
+
### Features
|
|
13
|
+
|
|
14
|
+
* finish schema ([0ea6a83](https://github.com/elyukai/optolith-database-schema/commit/0ea6a838e22651b0e24708dcb10143db3c4300ca))
|
|
15
|
+
* sort errors by file path, with numbers in ascending order ([abc0bb1](https://github.com/elyukai/optolith-database-schema/commit/abc0bb13fd1d8d72237725ea37031c5697adaab9))
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
### Bug Fixes
|
|
19
|
+
|
|
20
|
+
* allow numbers in names ([4f6b2ae](https://github.com/elyukai/optolith-database-schema/commit/4f6b2aea2dba9a92a77b2667ed98617c233bbef1))
|
|
21
|
+
* ignore hidden files ([230326f](https://github.com/elyukai/optolith-database-schema/commit/230326ff25c3faee88f614c3380396070efb1516))
|
|
22
|
+
* the file name id may be 0 for custom entries ([8b1144e](https://github.com/elyukai/optolith-database-schema/commit/8b1144e6f13b46a9ef5aa1824d987ab70cfb8a95))
|
|
23
|
+
* uppercase letters should be allowed after the first letter ([50b2020](https://github.com/elyukai/optolith-database-schema/commit/50b2020bd6ed81c44d944cb8048b966c72b8fb38))
|
|
24
|
+
|
|
5
25
|
## [0.9.0](https://github.com/elyukai/optolith-database-schema/compare/v0.8.1...v0.9.0) (2023-01-14)
|
|
6
26
|
|
|
7
27
|
|
package/lib/main.js
CHANGED
|
@@ -8,10 +8,12 @@ import { jsonSchemaDir } from "../config/directories.js";
|
|
|
8
8
|
import { typeValidatorMap } from "./config.js";
|
|
9
9
|
const readdirRecursive = async (dirPath) => {
|
|
10
10
|
const directoryEntries = await readdir(dirPath, { withFileTypes: true });
|
|
11
|
-
const flattenedRecursivePaths = await Promise.all(directoryEntries
|
|
11
|
+
const flattenedRecursivePaths = await Promise.all(directoryEntries
|
|
12
|
+
.filter(dirEntry => !dirEntry.name.startsWith("."))
|
|
13
|
+
.map(async (dirEntry) => {
|
|
12
14
|
const absoluteEntryPath = join(dirPath, dirEntry.name);
|
|
13
15
|
if (dirEntry.isDirectory()) {
|
|
14
|
-
return await readdirRecursive(absoluteEntryPath);
|
|
16
|
+
return (await readdirRecursive(absoluteEntryPath));
|
|
15
17
|
}
|
|
16
18
|
else if (dirEntry.isFile()) {
|
|
17
19
|
return [absoluteEntryPath];
|
|
@@ -39,7 +41,9 @@ const collator = Intl.Collator(undefined, { numeric: true });
|
|
|
39
41
|
const readDataFileAssocsFromDirectory = async (dirPath) => {
|
|
40
42
|
const filenames = await readdir(dirPath);
|
|
41
43
|
filenames.sort(collator.compare);
|
|
42
|
-
return await Promise.all(filenames
|
|
44
|
+
return await Promise.all(filenames
|
|
45
|
+
.filter(fileName => !fileName.startsWith("."))
|
|
46
|
+
.map(async (fileName) => {
|
|
43
47
|
const filePath = join(dirPath, fileName);
|
|
44
48
|
try {
|
|
45
49
|
const fileContent = YAML.parse(await readFile(join(dirPath, fileName), "utf-8"));
|
|
@@ -111,6 +115,7 @@ export const validate = async (entityDirPaths, checkIntegrity) => {
|
|
|
111
115
|
export const printErrors = (errorsByFile, printOptions = {}) => {
|
|
112
116
|
const { verbose = false } = printOptions;
|
|
113
117
|
return Object.entries(errorsByFile)
|
|
118
|
+
.sort(([filePathA], [filePathB]) => collator.compare(filePathA, filePathB))
|
|
114
119
|
.flatMap(([filePath, errors]) => {
|
|
115
120
|
if (verbose) {
|
|
116
121
|
return filterNullable([
|
package/lib/types/Advantage.d.ts
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* @main Advantage
|
|
3
3
|
*/
|
|
4
|
-
import { Errata } from "./source/_Erratum.js";
|
|
5
|
-
import { PublicationRefs } from "./source/_PublicationRef.js";
|
|
6
4
|
import * as Activatable from "./_Activatable.js";
|
|
7
5
|
import { LocaleMap } from "./_LocaleMap.js";
|
|
8
6
|
import { AdvantageDisadvantagePrerequisites } from "./_Prerequisite.js";
|
|
7
|
+
import { Errata } from "./source/_Erratum.js";
|
|
8
|
+
import { PublicationRefs } from "./source/_PublicationRef.js";
|
|
9
9
|
/**
|
|
10
10
|
* @title Advantage
|
|
11
11
|
*/
|
|
@@ -39,6 +39,10 @@ export declare type Advantage = {
|
|
|
39
39
|
export declare type AdvantageTranslation = {
|
|
40
40
|
name: Activatable.Name;
|
|
41
41
|
name_in_library?: Activatable.NameInLibrary;
|
|
42
|
+
/**
|
|
43
|
+
* A string that is used as a label for an input field.
|
|
44
|
+
*/
|
|
45
|
+
input?: Activatable.Input;
|
|
42
46
|
rules: Activatable.Rules;
|
|
43
47
|
/**
|
|
44
48
|
* The range.
|
|
@@ -46,6 +50,13 @@ export declare type AdvantageTranslation = {
|
|
|
46
50
|
* @minLength 1
|
|
47
51
|
*/
|
|
48
52
|
range?: string;
|
|
53
|
+
ap_value?: Activatable.AdventurePointsValueReplacement;
|
|
54
|
+
/**
|
|
55
|
+
* A string that gets appended to the default AP Value text with a preceding
|
|
56
|
+
* space. This always happens if present, even if the generated AP Value text
|
|
57
|
+
* is replaced.
|
|
58
|
+
*/
|
|
59
|
+
ap_value_append?: Activatable.AdventurePointsValueAppend;
|
|
49
60
|
errata?: Errata;
|
|
50
61
|
};
|
|
51
62
|
export declare const validateSchema: import("../validation/schema.js").TypeValidator<Advantage>;
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* @main Disadvantage
|
|
3
3
|
*/
|
|
4
|
-
import { Errata } from "./source/_Erratum.js";
|
|
5
|
-
import { PublicationRefs } from "./source/_PublicationRef.js";
|
|
6
4
|
import * as Activatable from "./_Activatable.js";
|
|
7
5
|
import { LocaleMap } from "./_LocaleMap.js";
|
|
8
6
|
import { AdvantageDisadvantagePrerequisites } from "./_Prerequisite.js";
|
|
7
|
+
import { Errata } from "./source/_Erratum.js";
|
|
8
|
+
import { PublicationRefs } from "./source/_PublicationRef.js";
|
|
9
9
|
/**
|
|
10
10
|
* @title Disadvantage
|
|
11
11
|
*/
|
|
@@ -35,6 +35,10 @@ export declare type Disadvantage = {
|
|
|
35
35
|
export declare type DisadvantageTranslation = {
|
|
36
36
|
name: Activatable.Name;
|
|
37
37
|
name_in_library?: Activatable.NameInLibrary;
|
|
38
|
+
/**
|
|
39
|
+
* A string that is used as a label for an input field.
|
|
40
|
+
*/
|
|
41
|
+
input?: Activatable.Input;
|
|
38
42
|
rules: Activatable.Rules;
|
|
39
43
|
/**
|
|
40
44
|
* The range.
|
|
@@ -42,6 +46,12 @@ export declare type DisadvantageTranslation = {
|
|
|
42
46
|
* @minLength 1
|
|
43
47
|
*/
|
|
44
48
|
range?: string;
|
|
49
|
+
/**
|
|
50
|
+
* A string that gets appended to the default AP Value text with a preceding
|
|
51
|
+
* space. This always happens if present, even if the generated AP Value text
|
|
52
|
+
* is replaced.
|
|
53
|
+
*/
|
|
54
|
+
ap_value_append?: Activatable.AdventurePointsValueAppend;
|
|
45
55
|
errata?: Errata;
|
|
46
56
|
};
|
|
47
57
|
export declare const validateSchema: import("../validation/schema.js").TypeValidator<Disadvantage>;
|
|
@@ -1,8 +1,6 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* @main Profession
|
|
3
3
|
*/
|
|
4
|
-
import { Errata } from "./source/_Erratum.js";
|
|
5
|
-
import { PublicationRefs } from "./source/_PublicationRef.js";
|
|
6
4
|
import { CommonnessRatedAdvantageDisadvantage } from "./_CommonnessRatedAdvantageDisadvantage.js";
|
|
7
5
|
import { AdvantageIdentifier, DisadvantageIdentifier, SkillIdentifier } from "./_Identifier.js";
|
|
8
6
|
import { CombatTechniqueIdentifier, LiturgyIdentifier, MagicalActionIdentifier, RequirableSelectOptionIdentifier, SpecialAbilityIdentifier, SpellworkIdentifier } from "./_IdentifierGroup.js";
|
|
@@ -10,6 +8,8 @@ import { LocaleMap } from "./_LocaleMap.js";
|
|
|
10
8
|
import { NonEmptyString } from "./_NonEmptyString.js";
|
|
11
9
|
import { ProfessionPrerequisites } from "./_Prerequisite.js";
|
|
12
10
|
import { CantripReference, CombatTechniqueReference, CurriculumReference, MagicalTraditionReference, SkillGroupReference, SkillReference } from "./_SimpleReferences.js";
|
|
11
|
+
import { Errata } from "./source/_Erratum.js";
|
|
12
|
+
import { PublicationRefs } from "./source/_PublicationRef.js";
|
|
13
13
|
/**
|
|
14
14
|
* @title Profession
|
|
15
15
|
*/
|
|
@@ -294,6 +294,16 @@ export declare type ProfessionVariantTranslation = {
|
|
|
294
294
|
* Name of the profession variant.
|
|
295
295
|
*/
|
|
296
296
|
name: ProfessionName;
|
|
297
|
+
/**
|
|
298
|
+
* A text that replaces the generated text for the profession variant.
|
|
299
|
+
*/
|
|
300
|
+
full_text?: NonEmptyString;
|
|
301
|
+
/**
|
|
302
|
+
* A text that is appended to the generated text for the profession variant.
|
|
303
|
+
*
|
|
304
|
+
* Has no effect when `full_text` is set.
|
|
305
|
+
*/
|
|
306
|
+
concluding_text?: NonEmptyString;
|
|
297
307
|
};
|
|
298
308
|
export declare type SpecialAbility = {
|
|
299
309
|
tag: "Fixed";
|
package/lib/types/Talisman.d.ts
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* @main Talisman
|
|
3
3
|
*/
|
|
4
|
-
import { Errata } from "./source/_Erratum.js";
|
|
5
|
-
import { PublicationRefs } from "./source/_PublicationRef.js";
|
|
6
4
|
import { LocaleMap } from "./_LocaleMap.js";
|
|
7
5
|
import { NonEmptyMarkdown, NonEmptyString } from "./_NonEmptyString.js";
|
|
8
6
|
import { BlessedTraditionReference } from "./_SimpleReferences.js";
|
|
7
|
+
import { Errata } from "./source/_Erratum.js";
|
|
8
|
+
import { PublicationRefs } from "./source/_PublicationRef.js";
|
|
9
9
|
/**
|
|
10
10
|
* @title Talisman
|
|
11
11
|
*/
|
|
@@ -22,16 +22,16 @@ export declare type Talisman = {
|
|
|
22
22
|
*/
|
|
23
23
|
tradition: BlessedTraditionReference[];
|
|
24
24
|
/**
|
|
25
|
-
* The talisman type.
|
|
25
|
+
* The talisman type, if any.
|
|
26
26
|
*/
|
|
27
|
-
type
|
|
27
|
+
type?: TalismanType;
|
|
28
28
|
/**
|
|
29
|
-
* The AP value for the required trade secret.
|
|
29
|
+
* The AP value for the required trade secret, if possible.
|
|
30
30
|
* @integer
|
|
31
31
|
* @minimum 5
|
|
32
32
|
* @multipleOf 5
|
|
33
33
|
*/
|
|
34
|
-
ap_value
|
|
34
|
+
ap_value?: number;
|
|
35
35
|
src: PublicationRefs;
|
|
36
36
|
/**
|
|
37
37
|
* All translations for the entry, identified by IETF language tag (BCP47).
|
|
@@ -2,9 +2,6 @@
|
|
|
2
2
|
* General type specifications used by multiple activatable entries.
|
|
3
3
|
* @title Activatable
|
|
4
4
|
*/
|
|
5
|
-
import { DisplayOption } from "./prerequisites/DisplayOption.js";
|
|
6
|
-
import { Errata } from "./source/_Erratum.js";
|
|
7
|
-
import { PublicationRefs } from "./source/_PublicationRef.js";
|
|
8
5
|
import { SelectOptionCategory, SkillApplicationOrUse } from "./_ActivatableSelectOptionCategory.js";
|
|
9
6
|
import { DurationUnitValue } from "./_ActivatableSkillDuration.js";
|
|
10
7
|
import { MagicalTraditionIdentifier, PatronIdentifier, SkillIdentifier } from "./_Identifier.js";
|
|
@@ -14,6 +11,9 @@ import { NonEmptyMarkdown, NonEmptyString } from "./_NonEmptyString.js";
|
|
|
14
11
|
import { GeneralPrerequisites } from "./_Prerequisite.js";
|
|
15
12
|
import { ResponsiveText, ResponsiveTextOptional } from "./_ResponsiveText.js";
|
|
16
13
|
import { AdvancedSpecialAbilityReference, AspectReference, CloseCombatTechniqueReference, CombatTechniqueReference, PropertyReference, RaceReference, RangedCombatTechniqueReference, SkillReference, WeaponReference } from "./_SimpleReferences.js";
|
|
14
|
+
import { DisplayOption } from "./prerequisites/DisplayOption.js";
|
|
15
|
+
import { Errata } from "./source/_Erratum.js";
|
|
16
|
+
import { PublicationRefs } from "./source/_PublicationRef.js";
|
|
17
17
|
/**
|
|
18
18
|
* The activatable entry's identifier. An unique, increasing integer.
|
|
19
19
|
* @integer
|
|
@@ -124,6 +124,13 @@ export declare type ExplicitGeneralSelectOption = {
|
|
|
124
124
|
*/
|
|
125
125
|
skill_uses?: SkillUses;
|
|
126
126
|
prerequisites?: GeneralPrerequisites;
|
|
127
|
+
/**
|
|
128
|
+
* Specific binding cost for the select option. Only has an effect if the
|
|
129
|
+
* associated entry supports binding costs.
|
|
130
|
+
* @integer
|
|
131
|
+
* @minimum 0
|
|
132
|
+
*/
|
|
133
|
+
binding_cost?: number;
|
|
127
134
|
/**
|
|
128
135
|
* Specific AP cost for the select option.
|
|
129
136
|
* @integer
|
|
@@ -181,6 +188,13 @@ export declare type ExplicitSkillSelectOption = {
|
|
|
181
188
|
*/
|
|
182
189
|
skill_uses?: SkillApplicationOrUse[];
|
|
183
190
|
prerequisites?: GeneralPrerequisites;
|
|
191
|
+
/**
|
|
192
|
+
* Specific binding cost for the select option. Only has an effect if the
|
|
193
|
+
* associated entry supports binding costs.
|
|
194
|
+
* @integer
|
|
195
|
+
* @minimum 0
|
|
196
|
+
*/
|
|
197
|
+
binding_cost?: number;
|
|
184
198
|
/**
|
|
185
199
|
* Specific AP cost for the select option.
|
|
186
200
|
* @integer
|
|
@@ -205,6 +219,13 @@ export declare type ExplicitCombatTechniqueSelectOption = {
|
|
|
205
219
|
*/
|
|
206
220
|
id: CombatTechniqueIdentifier;
|
|
207
221
|
prerequisites?: GeneralPrerequisites;
|
|
222
|
+
/**
|
|
223
|
+
* Specific binding cost for the select option. Only has an effect if the
|
|
224
|
+
* associated entry supports binding costs.
|
|
225
|
+
* @integer
|
|
226
|
+
* @minimum 0
|
|
227
|
+
*/
|
|
228
|
+
binding_cost?: number;
|
|
208
229
|
/**
|
|
209
230
|
* Specific AP cost for the select option.
|
|
210
231
|
* @integer
|
|
@@ -649,11 +670,31 @@ export declare type ActivationAndHalfIntervalArcaneEnergyCost = {
|
|
|
649
670
|
interval: DurationUnitValue;
|
|
650
671
|
};
|
|
651
672
|
export declare type IndefiniteArcaneEnergyCost = {
|
|
673
|
+
/**
|
|
674
|
+
* Specified if the indefinite AP cost description needs to be modified by a
|
|
675
|
+
* certain value.
|
|
676
|
+
*/
|
|
677
|
+
modifier?: IndefiniteArcaneEnergyCostModifier;
|
|
652
678
|
/**
|
|
653
679
|
* All translations for the entry, identified by IETF language tag (BCP47).
|
|
654
680
|
*/
|
|
655
681
|
translations: LocaleMap<IndefiniteArcaneEnergyCostTranslation>;
|
|
656
682
|
};
|
|
683
|
+
export declare type IndefiniteArcaneEnergyCostModifier = {
|
|
684
|
+
/**
|
|
685
|
+
* The arithmetic how to apply the `value` to the `base`.
|
|
686
|
+
*/
|
|
687
|
+
arithmetic: IndefiniteArcaneEnergyCostModifierArithmetic;
|
|
688
|
+
/**
|
|
689
|
+
* The value that is applied to the `base` using the defined `arithmetic`.
|
|
690
|
+
* @integer
|
|
691
|
+
* @minimum 1
|
|
692
|
+
*/
|
|
693
|
+
value: number;
|
|
694
|
+
};
|
|
695
|
+
export declare enum IndefiniteArcaneEnergyCostModifierArithmetic {
|
|
696
|
+
Add = "Add"
|
|
697
|
+
}
|
|
657
698
|
export declare type IndefiniteArcaneEnergyCostTranslation = {
|
|
658
699
|
/**
|
|
659
700
|
* A description of where the cost come from.
|
|
@@ -744,6 +785,9 @@ export declare type Volume = {
|
|
|
744
785
|
} | {
|
|
745
786
|
tag: "Map";
|
|
746
787
|
map: VolumeMap;
|
|
788
|
+
} | {
|
|
789
|
+
tag: "DerivedFromSelection";
|
|
790
|
+
derived_from_selection: VolumeDerivedFromSelection;
|
|
747
791
|
};
|
|
748
792
|
export declare type FixedVolume = {
|
|
749
793
|
/**
|
|
@@ -885,6 +929,14 @@ export declare type VolumeMapOptionTranslation = {
|
|
|
885
929
|
*/
|
|
886
930
|
label_standalone?: NonEmptyString;
|
|
887
931
|
};
|
|
932
|
+
export declare type VolumeDerivedFromSelection = {
|
|
933
|
+
/**
|
|
934
|
+
* The volume for the selection if it does not define a specific one.
|
|
935
|
+
* @integer
|
|
936
|
+
* @minimum 0
|
|
937
|
+
*/
|
|
938
|
+
fallback: number;
|
|
939
|
+
};
|
|
888
940
|
/**
|
|
889
941
|
* The binding cost for an enchantment.
|
|
890
942
|
*/
|
|
@@ -897,6 +949,9 @@ export declare type BindingCost = {
|
|
|
897
949
|
} | {
|
|
898
950
|
tag: "Map";
|
|
899
951
|
map: BindingCostMap;
|
|
952
|
+
} | {
|
|
953
|
+
tag: "DerivedFromSelection";
|
|
954
|
+
derived_from_selection: BindingCostDerivedFromSelection;
|
|
900
955
|
};
|
|
901
956
|
export declare type FixedBindingCost = {
|
|
902
957
|
/**
|
|
@@ -998,6 +1053,14 @@ export declare type BindingCostMapOptionTranslation = {
|
|
|
998
1053
|
*/
|
|
999
1054
|
label_standalone?: NonEmptyString;
|
|
1000
1055
|
};
|
|
1056
|
+
export declare type BindingCostDerivedFromSelection = {
|
|
1057
|
+
/**
|
|
1058
|
+
* The binding cost for the selection if it does not define a specific one.
|
|
1059
|
+
* @integer
|
|
1060
|
+
* @minimum 0
|
|
1061
|
+
*/
|
|
1062
|
+
fallback: number;
|
|
1063
|
+
};
|
|
1001
1064
|
/**
|
|
1002
1065
|
* The magic property's identifier. `DependingOnProperty` can only be used if
|
|
1003
1066
|
* the special ability has an option to select a property.
|
|
@@ -1095,6 +1158,11 @@ export declare type AdvancedSpecialAbilities<Identifier> = [
|
|
|
1095
1158
|
AdvancedSpecialAbility<Identifier>,
|
|
1096
1159
|
AdvancedSpecialAbility<Identifier>
|
|
1097
1160
|
];
|
|
1161
|
+
/**
|
|
1162
|
+
* The prerequisites text. It is only used if the text cannot be generated from
|
|
1163
|
+
* the given information.
|
|
1164
|
+
*/
|
|
1165
|
+
export declare type PrerequisitesReplacement = NonEmptyMarkdown;
|
|
1098
1166
|
export declare type ApplicableCombatTechniques = {
|
|
1099
1167
|
tag: "None";
|
|
1100
1168
|
none: {};
|
|
@@ -1252,6 +1320,9 @@ export declare type AdventurePointsValue = {
|
|
|
1252
1320
|
} | {
|
|
1253
1321
|
tag: "ByLevel";
|
|
1254
1322
|
by_level: AdventurePointsValueByLevel;
|
|
1323
|
+
} | {
|
|
1324
|
+
tag: "DerivedFromSelection";
|
|
1325
|
+
derived_from_selection: AdventurePointsDerivedFromSelection;
|
|
1255
1326
|
} | {
|
|
1256
1327
|
tag: "Indefinite";
|
|
1257
1328
|
indefinite: {};
|
|
@@ -1267,9 +1338,46 @@ export declare type FixedAdventurePointsValue = AdventurePointsSingleValue;
|
|
|
1267
1338
|
* @minItems 2
|
|
1268
1339
|
*/
|
|
1269
1340
|
export declare type AdventurePointsValueByLevel = AdventurePointsSingleValue[];
|
|
1341
|
+
/**
|
|
1342
|
+
* The adventure points value is derived from the selection of the special
|
|
1343
|
+
* ability. Its display value may be able to be derived from the given
|
|
1344
|
+
* information for the select options. If that is not the case or the generated
|
|
1345
|
+
* text would not match the original one, a replacement text can be provided.
|
|
1346
|
+
*/
|
|
1347
|
+
export declare type AdventurePointsDerivedFromSelection = {
|
|
1348
|
+
/**
|
|
1349
|
+
* All translations for the entry, identified by IETF language tag (BCP47).
|
|
1350
|
+
*/
|
|
1351
|
+
translations?: LocaleMap<AdventurePointsDerivedFromSelectionTranslation>;
|
|
1352
|
+
};
|
|
1353
|
+
/**
|
|
1354
|
+
* @minProperties 1
|
|
1355
|
+
*/
|
|
1356
|
+
export declare type AdventurePointsDerivedFromSelectionTranslation = {
|
|
1357
|
+
/**
|
|
1358
|
+
* A replacement for the generated text if it would not match the original
|
|
1359
|
+
* one.
|
|
1360
|
+
*/
|
|
1361
|
+
replacement?: NonEmptyMarkdown;
|
|
1362
|
+
};
|
|
1270
1363
|
/**
|
|
1271
1364
|
* A single adventure points value.
|
|
1272
1365
|
* @integer
|
|
1273
1366
|
* @minimum 0
|
|
1274
1367
|
*/
|
|
1275
1368
|
export declare type AdventurePointsSingleValue = number;
|
|
1369
|
+
/**
|
|
1370
|
+
* A string that is used as a label for an input field.
|
|
1371
|
+
*/
|
|
1372
|
+
export declare type Input = NonEmptyString;
|
|
1373
|
+
/**
|
|
1374
|
+
* The AP value. It is only used if the text cannot be generated from the given
|
|
1375
|
+
* information.
|
|
1376
|
+
*/
|
|
1377
|
+
export declare type AdventurePointsValueReplacement = NonEmptyMarkdown;
|
|
1378
|
+
/**
|
|
1379
|
+
* A string that gets appended to the default AP Value text with a preceding
|
|
1380
|
+
* space. This always happens if present, even if the generated AP Value text is
|
|
1381
|
+
* replaced.
|
|
1382
|
+
*/
|
|
1383
|
+
export declare type AdventurePointsValueAppend = NonEmptyMarkdown;
|
|
@@ -38,38 +38,7 @@ export var FixedArcaneEnergyCostPerLevel;
|
|
|
38
38
|
FixedArcaneEnergyCostPerLevel["Compressed"] = "Compressed";
|
|
39
39
|
FixedArcaneEnergyCostPerLevel["Verbose"] = "Verbose";
|
|
40
40
|
})(FixedArcaneEnergyCostPerLevel || (FixedArcaneEnergyCostPerLevel = {}));
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
// },
|
|
46
|
-
// "AdvancedSpecialAbilitiesAppend": {
|
|
47
|
-
// "description": "An addition to the default advanced special abilities text. Markdown is available.",
|
|
48
|
-
// "type": "string",
|
|
49
|
-
// "minLength": 1
|
|
50
|
-
// },
|
|
51
|
-
// "ApValueReplacement": {
|
|
52
|
-
// "description": "The AP value. Only use this if the text provides different information than `X adventure points`, e.g. for Special Ability Property Knowledge it is \"10 adventure points for the first *Property Knowledge*, 20 adventure points for the second, 40 adventure points for the third\". Markdown is available.",
|
|
53
|
-
// "type": "string",
|
|
54
|
-
// "minLength": 1
|
|
55
|
-
// },
|
|
56
|
-
// "ApValueAppend": {
|
|
57
|
-
// "description": "An addition to the default AP value schema. Only use this if the text provides information appended to `X adventure points` and if `apValue` is not used. Markdown is available.",
|
|
58
|
-
// "type": "string",
|
|
59
|
-
// "minLength": 1
|
|
60
|
-
// },
|
|
61
|
-
// "PrerequisitesReplacement": {
|
|
62
|
-
// "description": "Use if text cannot be generated by the app. Markdown is available.",
|
|
63
|
-
// "type": "string",
|
|
64
|
-
// "minLength": 1
|
|
65
|
-
// },
|
|
66
|
-
// "PrerequisitesStart": {
|
|
67
|
-
// "description": "Prepends the provided string to the main prerequisites string. No effect if `prerequisites` field is used in l10n file. Markdown is available.",
|
|
68
|
-
// "type": "string",
|
|
69
|
-
// "minLength": 1
|
|
70
|
-
// },
|
|
71
|
-
// "PrerequisitesEnd": {
|
|
72
|
-
// "description": "Appends the provided string to the main prerequisites string. No effect if `prerequisites` field is used in l10n table. Markdown is available.",
|
|
73
|
-
// "type": "string",
|
|
74
|
-
// "minLength": 1
|
|
75
|
-
// }
|
|
41
|
+
export var IndefiniteArcaneEnergyCostModifierArithmetic;
|
|
42
|
+
(function (IndefiniteArcaneEnergyCostModifierArithmetic) {
|
|
43
|
+
IndefiniteArcaneEnergyCostModifierArithmetic["Add"] = "Add";
|
|
44
|
+
})(IndefiniteArcaneEnergyCostModifierArithmetic || (IndefiniteArcaneEnergyCostModifierArithmetic = {}));
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { TargetCategoryIdentifier } from "./_Identifier.js";
|
|
1
2
|
import { ActivatableIdentifier, CombatTechniqueIdentifier, SkillIdentifier } from "./_IdentifierGroup.js";
|
|
2
3
|
import { LocaleMap } from "./_LocaleMap.js";
|
|
3
4
|
import { CeremonyReference, CloseCombatTechniqueReference, ElementReference, LiturgicalChantReference, RangedCombatTechniqueReference, RitualReference, SkillGroupReference, SpellReference } from "./_SimpleReferences.js";
|
|
@@ -31,6 +32,9 @@ export declare type SelectOptionCategory = {
|
|
|
31
32
|
} | {
|
|
32
33
|
tag: "Cultures";
|
|
33
34
|
cultures: {};
|
|
35
|
+
} | {
|
|
36
|
+
tag: "RacesAndCultures";
|
|
37
|
+
races_and_cultures: {};
|
|
34
38
|
} | {
|
|
35
39
|
tag: "BlessedTraditions";
|
|
36
40
|
blessed_traditions: BlessedTraditionsSelectOptionCategory;
|
|
@@ -58,6 +62,9 @@ export declare type SelectOptionCategory = {
|
|
|
58
62
|
} | {
|
|
59
63
|
tag: "CombatTechniques";
|
|
60
64
|
combat_techniques: CombatTechniquesSelectOptionCategory;
|
|
65
|
+
} | {
|
|
66
|
+
tag: "TargetCategories";
|
|
67
|
+
target_categories: TargetCategoriesSelectOptionCategory;
|
|
61
68
|
};
|
|
62
69
|
export declare type BlessedTraditionsSelectOptionCategory = {
|
|
63
70
|
/**
|
|
@@ -201,6 +208,10 @@ export declare type SkillSelectOptionCategoryCategory = {
|
|
|
201
208
|
* @minItems 1
|
|
202
209
|
*/
|
|
203
210
|
prerequisites?: SkillSelectOptionCategoryPrerequisite[];
|
|
211
|
+
/**
|
|
212
|
+
* Generate AP values for each entry.
|
|
213
|
+
*/
|
|
214
|
+
ap_value?: AdventurePointsValue<CombatTechniqueIdentifier>;
|
|
204
215
|
};
|
|
205
216
|
export declare type CombatTechniquesSelectOptionCategory = {
|
|
206
217
|
/**
|
|
@@ -357,3 +368,22 @@ export declare type FixedAdventurePointsValueMapping<Identifier> = {
|
|
|
357
368
|
*/
|
|
358
369
|
ap_value: number;
|
|
359
370
|
};
|
|
371
|
+
export declare type TargetCategoriesSelectOptionCategory = {
|
|
372
|
+
/**
|
|
373
|
+
* A list of combat technique categories.
|
|
374
|
+
* @minItems 1
|
|
375
|
+
*/
|
|
376
|
+
list: SpecificTargetCategory[];
|
|
377
|
+
};
|
|
378
|
+
export declare type SpecificTargetCategory = {
|
|
379
|
+
/**
|
|
380
|
+
* The target category’s identifier.
|
|
381
|
+
*/
|
|
382
|
+
id: TargetCategoryIdentifier;
|
|
383
|
+
/**
|
|
384
|
+
* The volume for this specific selection.
|
|
385
|
+
* @integer
|
|
386
|
+
* @minimum 0
|
|
387
|
+
*/
|
|
388
|
+
volume?: number;
|
|
389
|
+
};
|
|
@@ -81,6 +81,9 @@ export declare type PoisonDuration = {
|
|
|
81
81
|
} | {
|
|
82
82
|
tag: "DiceBased";
|
|
83
83
|
dice_based: DiceBasedPoisonTime;
|
|
84
|
+
} | {
|
|
85
|
+
tag: "Indefinite";
|
|
86
|
+
indefinite: IndefinitePoisonTime;
|
|
84
87
|
};
|
|
85
88
|
export declare type ConstantPoisonTime = {
|
|
86
89
|
value: number;
|
|
@@ -93,8 +96,21 @@ export declare type DiceBasedPoisonTime = {
|
|
|
93
96
|
export declare enum PoisonTimeUnit {
|
|
94
97
|
CombatRounds = "CombatRounds",
|
|
95
98
|
Minutes = "Minutes",
|
|
96
|
-
Hours = "Hours"
|
|
99
|
+
Hours = "Hours",
|
|
100
|
+
Days = "Days"
|
|
97
101
|
}
|
|
102
|
+
export declare type IndefinitePoisonTime = {
|
|
103
|
+
/**
|
|
104
|
+
* All translations for the entry, identified by IETF language tag (BCP47).
|
|
105
|
+
*/
|
|
106
|
+
translations: LocaleMap<IndefinitePoisonTimeTranslation>;
|
|
107
|
+
};
|
|
108
|
+
export declare type IndefinitePoisonTimeTranslation = {
|
|
109
|
+
/**
|
|
110
|
+
* A description of the duration.
|
|
111
|
+
*/
|
|
112
|
+
description: NonEmptyMarkdown;
|
|
113
|
+
};
|
|
98
114
|
export declare type PoisonSourceType = {
|
|
99
115
|
tag: "AnimalVenom";
|
|
100
116
|
animal_venom: AnimalVenom;
|
|
@@ -119,6 +135,10 @@ export declare type AnimalVenom = {
|
|
|
119
135
|
* @maximum 6
|
|
120
136
|
*/
|
|
121
137
|
level: number;
|
|
138
|
+
/**
|
|
139
|
+
* If `false`, the poison cannot be extracted.
|
|
140
|
+
*/
|
|
141
|
+
is_extractable?: false;
|
|
122
142
|
};
|
|
123
143
|
export declare type AlchemicalPoison = {
|
|
124
144
|
/**
|
|
@@ -14,6 +14,7 @@ export var PoisonTimeUnit;
|
|
|
14
14
|
PoisonTimeUnit["CombatRounds"] = "CombatRounds";
|
|
15
15
|
PoisonTimeUnit["Minutes"] = "Minutes";
|
|
16
16
|
PoisonTimeUnit["Hours"] = "Hours";
|
|
17
|
+
PoisonTimeUnit["Days"] = "Days";
|
|
17
18
|
})(PoisonTimeUnit || (PoisonTimeUnit = {}));
|
|
18
19
|
export var QualityLevelDemonicPoisonLevelSource;
|
|
19
20
|
(function (QualityLevelDemonicPoisonLevelSource) {
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* @main Weapon
|
|
3
3
|
*/
|
|
4
|
-
import { Errata } from "../../source/_Erratum.js";
|
|
5
|
-
import { PublicationRefs } from "../../source/_PublicationRef.js";
|
|
6
4
|
import { LocaleMap } from "../../_LocaleMap.js";
|
|
7
5
|
import { NonEmptyMarkdown, NonEmptyString } from "../../_NonEmptyString.js";
|
|
8
6
|
import { BlessedTraditionReference, CultureReference, MagicalTraditionReference, RaceReference } from "../../_SimpleReferences.js";
|
|
7
|
+
import { Errata } from "../../source/_Erratum.js";
|
|
8
|
+
import { PublicationRefs } from "../../source/_PublicationRef.js";
|
|
9
9
|
import { Complexity, Cost, StructurePoints, Weight } from "./_Item.js";
|
|
10
10
|
import { MeleeWeapon } from "./_MeleeWeapon.js";
|
|
11
11
|
import { RangedWeapon } from "./_RangedWeapon.js";
|
|
@@ -142,8 +142,9 @@ export declare type WeaponUseValues = {
|
|
|
142
142
|
/**
|
|
143
143
|
* If the weapon is sanctified by a god and thus restricted to it's Blessed
|
|
144
144
|
* Ones.
|
|
145
|
+
* @minItems 1
|
|
145
146
|
*/
|
|
146
|
-
export declare type SanctifiedBy = BlessedTraditionReference;
|
|
147
|
+
export declare type SanctifiedBy = BlessedTraditionReference[];
|
|
147
148
|
/**
|
|
148
149
|
* Define if during character creation this weapon can only be bought by
|
|
149
150
|
* characters of a specific race or culture.
|
|
@@ -14,14 +14,14 @@ export declare type ArmorType = {
|
|
|
14
14
|
*/
|
|
15
15
|
id: number;
|
|
16
16
|
/**
|
|
17
|
-
*
|
|
18
|
-
* durable the armor. Rolling higher than this rating during a sturdiness
|
|
17
|
+
* An armor type can have a *sturdiness rating*. The higher the rating, the
|
|
18
|
+
* more durable the armor. Rolling higher than this rating during a sturdiness
|
|
19
19
|
* check means the armor receives one level of the new condition *Wear*.
|
|
20
20
|
* @integer
|
|
21
21
|
* @minimum 1
|
|
22
22
|
* @msximum 20
|
|
23
23
|
*/
|
|
24
|
-
sturdiness_rating
|
|
24
|
+
sturdiness_rating?: number;
|
|
25
25
|
/**
|
|
26
26
|
* All translations for the entry, identified by IETF language tag (BCP47).
|
|
27
27
|
*/
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { LocaleMap } from "../_LocaleMap.js";
|
|
2
2
|
import { NonEmptyString } from "../_NonEmptyString.js";
|
|
3
|
+
import { SentenceType } from "./single/TextPrerequisite.js";
|
|
3
4
|
/**
|
|
4
5
|
* @title Display Option
|
|
5
6
|
*/
|
|
@@ -11,6 +12,19 @@ export declare type DisplayOption = {
|
|
|
11
12
|
replace_with: ReplacementDisplayOption;
|
|
12
13
|
};
|
|
13
14
|
export declare type ReplacementDisplayOption = {
|
|
15
|
+
/**
|
|
16
|
+
* If the replacement text is a sentence or sentence-like fragment, this
|
|
17
|
+
* property ensures it is integrated into the prerequisite string correctly.
|
|
18
|
+
*
|
|
19
|
+
* A standalone sentence is connected to the previous prerequisite string with
|
|
20
|
+
* a period and a period is also added at the end of the sentence
|
|
21
|
+
* automatically, if it is not present. A connected sentence is connected to
|
|
22
|
+
* the previous prerequisite string with a semicolon and a period is not added
|
|
23
|
+
* to the end of the sentence. In this case, if there are prerequisites after
|
|
24
|
+
* this one, they will be connected using a semicolon again, unless a
|
|
25
|
+
* different punctuation mark is present at the end of the given text.
|
|
26
|
+
*/
|
|
27
|
+
sentence_type?: SentenceType;
|
|
14
28
|
/**
|
|
15
29
|
* All translations for the entry, identified by IETF language tag (BCP47).
|
|
16
30
|
*/
|