optolith-database-schema 0.2.0 → 0.2.3
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 +26 -0
- package/lib/types/Advantage.d.ts +1 -1
- package/lib/types/Disadvantage.d.ts +1 -1
- package/lib/types/_Activatable.d.ts +104 -52
- package/lib/types/_Activatable.js +12 -0
- package/lib/types/_Identifier.d.ts +2 -2
- package/lib/types/_Identifier.js +3 -2
- package/lib/types/prerequisites/single/StatePrerequisite.d.ts +1 -1
- package/lib/types/prerequisites/single/TextPrerequisite.d.ts +1 -1
- package/package.json +1 -1
- package/schema/Advantage.schema.json +1 -1
- package/schema/Disadvantage.schema.json +1 -1
- package/schema/_Activatable.schema.json +287 -223
- package/schema/prerequisites/single/StatePrerequisite.schema.json +1 -1
- package/schema/prerequisites/single/TextPrerequisite.schema.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,32 @@
|
|
|
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.2.3](https://github.com/elyukai/optolith-database-schema/compare/v0.2.2...v0.2.3) (2022-03-29)
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
### Features
|
|
9
|
+
|
|
10
|
+
* allow dis-/advantages to not contribute to maximum AP value ([9e401d0](https://github.com/elyukai/optolith-database-schema/commit/9e401d0be40797a5758220233af6c162d1ce76fb))
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
### Bug Fixes
|
|
14
|
+
|
|
15
|
+
* state prerequisite should have unique tag ([7710fd5](https://github.com/elyukai/optolith-database-schema/commit/7710fd538582b85cd67cb81b2f791774102d17db))
|
|
16
|
+
|
|
17
|
+
### [0.2.2](https://github.com/elyukai/optolith-database-schema/compare/v0.2.1...v0.2.2) (2022-03-29)
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
### Features
|
|
21
|
+
|
|
22
|
+
* add offset option for deriving AP value from improvement cost ([f556207](https://github.com/elyukai/optolith-database-schema/commit/f55620751b7a68383c74ba8c4256d11802ab99c7))
|
|
23
|
+
|
|
24
|
+
### [0.2.1](https://github.com/elyukai/optolith-database-schema/compare/v0.2.0...v0.2.1) (2022-03-29)
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
### Bug Fixes
|
|
28
|
+
|
|
29
|
+
* category names and prerequisites should be defined separately ([eb312fe](https://github.com/elyukai/optolith-database-schema/commit/eb312fe2fc9973ef6be36937ebd8af8c8bf30e60))
|
|
30
|
+
|
|
5
31
|
## [0.2.0](https://github.com/elyukai/optolith-database-schema/compare/v0.1.28...v0.2.0) (2022-03-29)
|
|
6
32
|
|
|
7
33
|
|
package/lib/types/Advantage.d.ts
CHANGED
|
@@ -16,7 +16,7 @@ export declare type Advantage = {
|
|
|
16
16
|
skill_uses?: Activatable.SkillUses;
|
|
17
17
|
maximum?: Activatable.Maximum;
|
|
18
18
|
prerequisites?: AdvantageDisadvantagePrerequisites;
|
|
19
|
-
ap_value: Activatable.
|
|
19
|
+
ap_value: Activatable.AdventurePointsValueAdvantagesDisadvantages;
|
|
20
20
|
/**
|
|
21
21
|
* Does this advantage not count towards the maximum of AP to be spent
|
|
22
22
|
* on advantages?
|
|
@@ -14,7 +14,7 @@ export declare type Disadvantage = {
|
|
|
14
14
|
select_options?: Activatable.SelectOptions;
|
|
15
15
|
maximum?: Activatable.Maximum;
|
|
16
16
|
prerequisites?: AdvantageDisadvantagePrerequisites;
|
|
17
|
-
ap_value: Activatable.
|
|
17
|
+
ap_value: Activatable.AdventurePointsValueAdvantagesDisadvantages;
|
|
18
18
|
/**
|
|
19
19
|
* Does this disadvantage not count towards the maximum of AP to be granted by
|
|
20
20
|
* disadvantages?
|
|
@@ -6,7 +6,7 @@ import { DisplayOption } from "./prerequisites/DisplayOption.js";
|
|
|
6
6
|
import { Errata } from "./source/_Erratum.js";
|
|
7
7
|
import { PublicationRefs } from "./source/_PublicationRef.js";
|
|
8
8
|
import { Duration } from "./_ActivatableSkill.js";
|
|
9
|
-
import { ActivatableIdentifier, AdvancedSpecialAbilityRestrictedOptionIdentifier, CombatRelatedSpecialAbilityIdentifier, CombatTechniqueIdentifier,
|
|
9
|
+
import { ActivatableIdentifier, AdvancedSpecialAbilityRestrictedOptionIdentifier, CombatRelatedSpecialAbilityIdentifier, CombatTechniqueIdentifier, MagicalTraditionIdentifier, PatronIdentifier, SkillIdentifier, VolumePointsOptionReferenceIdentifier } from "./_Identifier.js";
|
|
10
10
|
import { GeneralPrerequisites } from "./_Prerequisite.js";
|
|
11
11
|
/**
|
|
12
12
|
* The activatable entry's identifier. An unique, increasing integer.
|
|
@@ -316,8 +316,13 @@ declare type CategoryOption = {
|
|
|
316
316
|
};
|
|
317
317
|
};
|
|
318
318
|
}[];
|
|
319
|
+
/**
|
|
320
|
+
* Generate prerequisites for each entry of the category.
|
|
321
|
+
* @minItems 1
|
|
322
|
+
*/
|
|
323
|
+
prerequisites?: (OptionSkillSelfPrerequisite | OptionOptionPrerequisite)[];
|
|
319
324
|
} | {
|
|
320
|
-
tag:
|
|
325
|
+
tag: SkillWithEnhancementsCategory;
|
|
321
326
|
/**
|
|
322
327
|
* Only include (`Intersection`) or exclude (`Difference`) specific
|
|
323
328
|
* entries.
|
|
@@ -343,60 +348,70 @@ declare type CategoryOption = {
|
|
|
343
348
|
id: number;
|
|
344
349
|
}[];
|
|
345
350
|
};
|
|
351
|
+
/**
|
|
352
|
+
* Generate prerequisites for each entry of the category.
|
|
353
|
+
* @minItems 1
|
|
354
|
+
*/
|
|
355
|
+
prerequisites?: (OptionSkillSelfPrerequisite | OptionOptionPrerequisite)[];
|
|
346
356
|
})[];
|
|
347
357
|
/**
|
|
348
|
-
* Generate
|
|
349
|
-
* @minItems 1
|
|
358
|
+
* Generate AP values for each entry.
|
|
350
359
|
*/
|
|
351
|
-
|
|
360
|
+
ap_value?: OptionSkillDeriveAdventurePointsValue<SkillIdentifier>;
|
|
361
|
+
} | {
|
|
362
|
+
tag: "CombatTechniques";
|
|
352
363
|
/**
|
|
353
|
-
*
|
|
364
|
+
* A list of combat technique categories.
|
|
365
|
+
* @minItems 1
|
|
354
366
|
*/
|
|
355
|
-
|
|
356
|
-
tag:
|
|
367
|
+
categories: {
|
|
368
|
+
tag: CombatTechniqueCategory;
|
|
357
369
|
/**
|
|
358
|
-
*
|
|
359
|
-
*
|
|
370
|
+
* Only include (`Intersection`) or exclude (`Difference`) specific
|
|
371
|
+
* entries.
|
|
360
372
|
*/
|
|
361
|
-
|
|
362
|
-
|
|
373
|
+
specific?: {
|
|
374
|
+
operation: {
|
|
375
|
+
tag: "Intersection";
|
|
376
|
+
} | {
|
|
377
|
+
tag: "Difference";
|
|
378
|
+
};
|
|
363
379
|
/**
|
|
364
|
-
*
|
|
365
|
-
*
|
|
380
|
+
* The list of specific entries.
|
|
381
|
+
* @minItems 1
|
|
382
|
+
* @uniqueItems
|
|
366
383
|
*/
|
|
367
|
-
|
|
368
|
-
operation: {
|
|
369
|
-
tag: "Intersection";
|
|
370
|
-
} | {
|
|
371
|
-
tag: "Difference";
|
|
372
|
-
};
|
|
384
|
+
list: {
|
|
373
385
|
/**
|
|
374
|
-
* The
|
|
375
|
-
* @
|
|
376
|
-
* @
|
|
386
|
+
* The entry's identifier.
|
|
387
|
+
* @integer
|
|
388
|
+
* @minimum 1
|
|
389
|
+
* @maximum 59
|
|
377
390
|
*/
|
|
378
|
-
|
|
379
|
-
|
|
380
|
-
|
|
381
|
-
* @integer
|
|
382
|
-
* @minimum 1
|
|
383
|
-
* @maximum 59
|
|
384
|
-
*/
|
|
385
|
-
id: number;
|
|
386
|
-
}[];
|
|
387
|
-
};
|
|
388
|
-
}[];
|
|
391
|
+
id: number;
|
|
392
|
+
}[];
|
|
393
|
+
};
|
|
389
394
|
/**
|
|
390
395
|
* Generate prerequisites for each entry of the category.
|
|
391
396
|
* @minItems 1
|
|
392
397
|
*/
|
|
393
398
|
prerequisites?: (OptionSkillSelfPrerequisite | OptionOptionPrerequisite)[];
|
|
394
|
-
|
|
395
|
-
|
|
396
|
-
|
|
397
|
-
|
|
398
|
-
|
|
399
|
+
}[];
|
|
400
|
+
/**
|
|
401
|
+
* Generate AP values for each entry.
|
|
402
|
+
*/
|
|
403
|
+
ap_value?: OptionSkillDeriveAdventurePointsValue<CombatTechniqueIdentifier>;
|
|
399
404
|
};
|
|
405
|
+
declare enum SkillWithEnhancementsCategory {
|
|
406
|
+
Spells = "Spells",
|
|
407
|
+
Rituals = "Rituals",
|
|
408
|
+
LiturgicalChants = "LiturgicalChants",
|
|
409
|
+
Ceremonies = "Ceremonies"
|
|
410
|
+
}
|
|
411
|
+
declare enum CombatTechniqueCategory {
|
|
412
|
+
CloseCombatTechniques = "CloseCombatTechniques",
|
|
413
|
+
RangedCombatTechniques = "RangedCombatTechniques"
|
|
414
|
+
}
|
|
400
415
|
declare type OptionSkillSelfPrerequisite = {
|
|
401
416
|
tag: "Self";
|
|
402
417
|
/**
|
|
@@ -430,14 +445,27 @@ declare type OptionOptionPrerequisite = {
|
|
|
430
445
|
* Generate AP values for each entry.
|
|
431
446
|
*/
|
|
432
447
|
declare type OptionSkillDeriveAdventurePointsValue<Identifier> = {
|
|
448
|
+
/**
|
|
449
|
+
* Derive the cost from the improvement cost of each entry.
|
|
450
|
+
*
|
|
451
|
+
* AP Value = Improvement Cost × `multiplier` + `offset`
|
|
452
|
+
*/
|
|
433
453
|
tag: "DerivedFromImprovementCost";
|
|
434
454
|
/**
|
|
435
455
|
* This number is multiplied with the improvement cost of the entry
|
|
436
456
|
* (A = 1 to D = 4).
|
|
437
457
|
* @integer
|
|
438
458
|
* @minimum 2
|
|
459
|
+
* @default 1
|
|
439
460
|
*/
|
|
440
461
|
multiplier?: number;
|
|
462
|
+
/**
|
|
463
|
+
* This number is added to the maybe multiplied improvement cost of the
|
|
464
|
+
* entry.
|
|
465
|
+
* @integer
|
|
466
|
+
* @default 0
|
|
467
|
+
*/
|
|
468
|
+
offset?: number;
|
|
441
469
|
} | {
|
|
442
470
|
tag: "Fixed";
|
|
443
471
|
/**
|
|
@@ -1786,25 +1814,49 @@ export declare type AdventurePointsValue = {
|
|
|
1786
1814
|
*/
|
|
1787
1815
|
values: AdventurePointsSingleValue[];
|
|
1788
1816
|
} | {
|
|
1789
|
-
tag: "ByImprovementCost";
|
|
1790
1817
|
/**
|
|
1791
|
-
*
|
|
1792
|
-
|
|
1793
|
-
|
|
1794
|
-
|
|
1795
|
-
|
|
1796
|
-
|
|
1797
|
-
|
|
1798
|
-
|
|
1799
|
-
|
|
1800
|
-
|
|
1801
|
-
|
|
1802
|
-
|
|
1818
|
+
* Used if AP value is defined by the selected option(s) or special rules.
|
|
1819
|
+
*/
|
|
1820
|
+
tag: "Indefinite";
|
|
1821
|
+
};
|
|
1822
|
+
export declare type AdventurePointsValueAdvantagesDisadvantages = {
|
|
1823
|
+
tag: "Fixed";
|
|
1824
|
+
/**
|
|
1825
|
+
* A fixed adventure points value. If the entry has levels, this is the cost
|
|
1826
|
+
* for each level as well.
|
|
1827
|
+
*/
|
|
1828
|
+
value: AdventurePointsSingleValue;
|
|
1829
|
+
/**
|
|
1830
|
+
* The AP Value of the entry does not contribute to the AP maximum for
|
|
1831
|
+
* advantages or disadvantages, so it may also be bought if the maximum has
|
|
1832
|
+
* already been reached.
|
|
1833
|
+
*/
|
|
1834
|
+
does_not_contribute_to_maximum?: true;
|
|
1835
|
+
} | {
|
|
1836
|
+
tag: "ByLevel";
|
|
1837
|
+
/**
|
|
1838
|
+
* An entry with levels may have different costs for each level. The length
|
|
1839
|
+
* of the list must match the amount of levels the special ability has.
|
|
1840
|
+
* @minItems 2
|
|
1841
|
+
*/
|
|
1842
|
+
values: AdventurePointsSingleValue[];
|
|
1843
|
+
/**
|
|
1844
|
+
* The AP Value of the entry does not contribute to the AP maximum for
|
|
1845
|
+
* advantages or disadvantages, so it may also be bought if the maximum has
|
|
1846
|
+
* already been reached.
|
|
1847
|
+
*/
|
|
1848
|
+
does_not_contribute_to_maximum?: true;
|
|
1803
1849
|
} | {
|
|
1804
1850
|
/**
|
|
1805
1851
|
* Used if AP value is defined by the selected option(s) or special rules.
|
|
1806
1852
|
*/
|
|
1807
1853
|
tag: "Indefinite";
|
|
1854
|
+
/**
|
|
1855
|
+
* The AP Value of the entry does not contribute to the AP maximum for
|
|
1856
|
+
* advantages or disadvantages, so it may also be bought if the maximum has
|
|
1857
|
+
* already been reached.
|
|
1858
|
+
*/
|
|
1859
|
+
does_not_contribute_to_maximum?: true;
|
|
1808
1860
|
};
|
|
1809
1861
|
/**
|
|
1810
1862
|
* A single adventure points value.
|
|
@@ -2,6 +2,18 @@
|
|
|
2
2
|
* General type specifications used by multiple activatable entries.
|
|
3
3
|
* @title Activatable
|
|
4
4
|
*/
|
|
5
|
+
var SkillWithEnhancementsCategory;
|
|
6
|
+
(function (SkillWithEnhancementsCategory) {
|
|
7
|
+
SkillWithEnhancementsCategory["Spells"] = "Spells";
|
|
8
|
+
SkillWithEnhancementsCategory["Rituals"] = "Rituals";
|
|
9
|
+
SkillWithEnhancementsCategory["LiturgicalChants"] = "LiturgicalChants";
|
|
10
|
+
SkillWithEnhancementsCategory["Ceremonies"] = "Ceremonies";
|
|
11
|
+
})(SkillWithEnhancementsCategory || (SkillWithEnhancementsCategory = {}));
|
|
12
|
+
var CombatTechniqueCategory;
|
|
13
|
+
(function (CombatTechniqueCategory) {
|
|
14
|
+
CombatTechniqueCategory["CloseCombatTechniques"] = "CloseCombatTechniques";
|
|
15
|
+
CombatTechniqueCategory["RangedCombatTechniques"] = "RangedCombatTechniques";
|
|
16
|
+
})(CombatTechniqueCategory || (CombatTechniqueCategory = {}));
|
|
5
17
|
export {};
|
|
6
18
|
// "Input": {
|
|
7
19
|
// "description": "A string that is used as a placeholder text for an input field.",
|
|
@@ -124,7 +124,7 @@ declare enum VolumePointsOptionReferenceTag {
|
|
|
124
124
|
General = "General",
|
|
125
125
|
AnimalShapeSize = "AnimalShapeSize"
|
|
126
126
|
}
|
|
127
|
-
|
|
127
|
+
declare enum CombatTechniqueTag {
|
|
128
128
|
CloseCombatTechnique = "CloseCombatTechnique",
|
|
129
129
|
RangedCombatTechnique = "RangedCombatTechnique"
|
|
130
130
|
}
|
|
@@ -138,7 +138,7 @@ declare enum ExtensionRuleTag {
|
|
|
138
138
|
FocusRule = "FocusRule",
|
|
139
139
|
OptionalRule = "OptionalRule"
|
|
140
140
|
}
|
|
141
|
-
|
|
141
|
+
declare enum SkillWithEnhancementsTag {
|
|
142
142
|
Spell = "Spell",
|
|
143
143
|
Ritual = "Ritual",
|
|
144
144
|
LiturgicalChant = "LiturgicalChant",
|
package/lib/types/_Identifier.js
CHANGED
|
@@ -131,7 +131,7 @@ var VolumePointsOptionReferenceTag;
|
|
|
131
131
|
VolumePointsOptionReferenceTag["General"] = "General";
|
|
132
132
|
VolumePointsOptionReferenceTag["AnimalShapeSize"] = "AnimalShapeSize";
|
|
133
133
|
})(VolumePointsOptionReferenceTag || (VolumePointsOptionReferenceTag = {}));
|
|
134
|
-
|
|
134
|
+
var CombatTechniqueTag;
|
|
135
135
|
(function (CombatTechniqueTag) {
|
|
136
136
|
CombatTechniqueTag["CloseCombatTechnique"] = "CloseCombatTechnique";
|
|
137
137
|
CombatTechniqueTag["RangedCombatTechnique"] = "RangedCombatTechnique";
|
|
@@ -149,7 +149,7 @@ var ExtensionRuleTag;
|
|
|
149
149
|
ExtensionRuleTag["FocusRule"] = "FocusRule";
|
|
150
150
|
ExtensionRuleTag["OptionalRule"] = "OptionalRule";
|
|
151
151
|
})(ExtensionRuleTag || (ExtensionRuleTag = {}));
|
|
152
|
-
|
|
152
|
+
var SkillWithEnhancementsTag;
|
|
153
153
|
(function (SkillWithEnhancementsTag) {
|
|
154
154
|
SkillWithEnhancementsTag["Spell"] = "Spell";
|
|
155
155
|
SkillWithEnhancementsTag["Ritual"] = "Ritual";
|
|
@@ -194,3 +194,4 @@ var CoreRuleDerivableContentTag;
|
|
|
194
194
|
CoreRuleDerivableContentTag["MagicalSpecialAbility"] = "MagicalSpecialAbility";
|
|
195
195
|
CoreRuleDerivableContentTag["BlessedTradition"] = "BlessedTradition";
|
|
196
196
|
})(CoreRuleDerivableContentTag || (CoreRuleDerivableContentTag = {}));
|
|
197
|
+
export {};
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
* background information – or the referenced entities were not made available
|
|
4
4
|
* for use yet – e.g. races –, but which should be displayed, because it is part
|
|
5
5
|
* of the prerequisite string from the sources.
|
|
6
|
-
* @title
|
|
6
|
+
* @title Text Prerequisite
|
|
7
7
|
*/
|
|
8
8
|
export declare type TextPrerequisite = {
|
|
9
9
|
tag: "Text";
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "optolith-database-schema",
|
|
3
|
-
"version": "0.2.
|
|
3
|
+
"version": "0.2.3",
|
|
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",
|
|
@@ -29,7 +29,7 @@
|
|
|
29
29
|
"$ref": "./_Prerequisite.schema.json#/definitions/AdvantageDisadvantagePrerequisites"
|
|
30
30
|
},
|
|
31
31
|
"ap_value": {
|
|
32
|
-
"$ref": "./_Activatable.schema.json#/definitions/
|
|
32
|
+
"$ref": "./_Activatable.schema.json#/definitions/AdventurePointsValueAdvantagesDisadvantages"
|
|
33
33
|
},
|
|
34
34
|
"has_no_maximum_spent_influence": {
|
|
35
35
|
"description": "Does this advantage not count towards the maximum of AP to be spent\non advantages?",
|
|
@@ -23,7 +23,7 @@
|
|
|
23
23
|
"$ref": "./_Prerequisite.schema.json#/definitions/AdvantageDisadvantagePrerequisites"
|
|
24
24
|
},
|
|
25
25
|
"ap_value": {
|
|
26
|
-
"$ref": "./_Activatable.schema.json#/definitions/
|
|
26
|
+
"$ref": "./_Activatable.schema.json#/definitions/AdventurePointsValueAdvantagesDisadvantages"
|
|
27
27
|
},
|
|
28
28
|
"has_no_maximum_spent_influence": {
|
|
29
29
|
"description": "Does this disadvantage not count towards the maximum of AP to be granted by\ndisadvantages?",
|
|
@@ -527,6 +527,21 @@
|
|
|
527
527
|
"additionalProperties": false
|
|
528
528
|
},
|
|
529
529
|
"minItems": 1
|
|
530
|
+
},
|
|
531
|
+
"prerequisites": {
|
|
532
|
+
"description": "Generate prerequisites for each entry of the category.",
|
|
533
|
+
"type": "array",
|
|
534
|
+
"items": {
|
|
535
|
+
"oneOf": [
|
|
536
|
+
{
|
|
537
|
+
"$ref": "#/definitions/OptionSkillSelfPrerequisite"
|
|
538
|
+
},
|
|
539
|
+
{
|
|
540
|
+
"$ref": "#/definitions/OptionOptionPrerequisite"
|
|
541
|
+
}
|
|
542
|
+
]
|
|
543
|
+
},
|
|
544
|
+
"minItems": 1
|
|
530
545
|
}
|
|
531
546
|
},
|
|
532
547
|
"required": [
|
|
@@ -538,7 +553,7 @@
|
|
|
538
553
|
"type": "object",
|
|
539
554
|
"properties": {
|
|
540
555
|
"tag": {
|
|
541
|
-
"$ref": "
|
|
556
|
+
"$ref": "#/definitions/SkillWithEnhancementsCategory"
|
|
542
557
|
},
|
|
543
558
|
"specific": {
|
|
544
559
|
"description": "Only include (`Intersection`) or exclude (`Difference`) specific\nentries.",
|
|
@@ -599,6 +614,21 @@
|
|
|
599
614
|
"list"
|
|
600
615
|
],
|
|
601
616
|
"additionalProperties": false
|
|
617
|
+
},
|
|
618
|
+
"prerequisites": {
|
|
619
|
+
"description": "Generate prerequisites for each entry of the category.",
|
|
620
|
+
"type": "array",
|
|
621
|
+
"items": {
|
|
622
|
+
"oneOf": [
|
|
623
|
+
{
|
|
624
|
+
"$ref": "#/definitions/OptionSkillSelfPrerequisite"
|
|
625
|
+
},
|
|
626
|
+
{
|
|
627
|
+
"$ref": "#/definitions/OptionOptionPrerequisite"
|
|
628
|
+
}
|
|
629
|
+
]
|
|
630
|
+
},
|
|
631
|
+
"minItems": 1
|
|
602
632
|
}
|
|
603
633
|
},
|
|
604
634
|
"required": [
|
|
@@ -610,252 +640,242 @@
|
|
|
610
640
|
},
|
|
611
641
|
"minItems": 1
|
|
612
642
|
},
|
|
613
|
-
"prerequisites": {
|
|
614
|
-
"description": "Generate prerequisites for each entry of the category.",
|
|
615
|
-
"type": "array",
|
|
616
|
-
"items": {
|
|
617
|
-
"oneOf": [
|
|
618
|
-
{
|
|
619
|
-
"$ref": "#/definitions/OptionSkillSelfPrerequisite"
|
|
620
|
-
},
|
|
621
|
-
{
|
|
622
|
-
"$ref": "#/definitions/OptionOptionPrerequisite"
|
|
623
|
-
}
|
|
624
|
-
]
|
|
625
|
-
},
|
|
626
|
-
"minItems": 1
|
|
627
|
-
},
|
|
628
643
|
"ap_value": {
|
|
629
644
|
"description": "Generate AP values for each entry.",
|
|
630
645
|
"oneOf": [
|
|
631
646
|
{
|
|
632
|
-
"
|
|
633
|
-
"
|
|
634
|
-
{
|
|
635
|
-
"
|
|
636
|
-
"
|
|
637
|
-
"tag": {
|
|
638
|
-
"const": "DerivedFromImprovementCost"
|
|
639
|
-
},
|
|
640
|
-
"multiplier": {
|
|
641
|
-
"description": "This number is multiplied with the improvement cost of the entry\n(A = 1 to D = 4).",
|
|
642
|
-
"type": "integer",
|
|
643
|
-
"minimum": 2
|
|
644
|
-
}
|
|
645
|
-
},
|
|
646
|
-
"required": [
|
|
647
|
-
"tag"
|
|
648
|
-
],
|
|
649
|
-
"additionalProperties": false
|
|
647
|
+
"type": "object",
|
|
648
|
+
"properties": {
|
|
649
|
+
"tag": {
|
|
650
|
+
"description": "Derive the cost from the improvement cost of each entry.\n\nAP Value = Improvement Cost × `multiplier` + `offset`",
|
|
651
|
+
"const": "DerivedFromImprovementCost"
|
|
650
652
|
},
|
|
651
|
-
{
|
|
652
|
-
"
|
|
653
|
-
"
|
|
654
|
-
|
|
655
|
-
|
|
656
|
-
|
|
657
|
-
|
|
658
|
-
|
|
659
|
-
"type": "array",
|
|
660
|
-
"items": {
|
|
661
|
-
"type": "object",
|
|
662
|
-
"properties": {
|
|
663
|
-
"id": {
|
|
664
|
-
"$ref": "./_Identifier.schema.json#/definitions/SkillIdentifier"
|
|
665
|
-
},
|
|
666
|
-
"ap_value": {
|
|
667
|
-
"description": "The AP value for the specified entry.",
|
|
668
|
-
"type": "integer",
|
|
669
|
-
"minimum": 1
|
|
670
|
-
}
|
|
671
|
-
},
|
|
672
|
-
"required": [
|
|
673
|
-
"id",
|
|
674
|
-
"ap_value"
|
|
675
|
-
],
|
|
676
|
-
"additionalProperties": false
|
|
677
|
-
}
|
|
678
|
-
},
|
|
679
|
-
"default": {
|
|
680
|
-
"description": "The default value of an entry. Used as a fallback if no value is\nfound in `list`.",
|
|
681
|
-
"type": "integer",
|
|
682
|
-
"minimum": 1
|
|
683
|
-
}
|
|
684
|
-
},
|
|
685
|
-
"required": [
|
|
686
|
-
"tag",
|
|
687
|
-
"map",
|
|
688
|
-
"default"
|
|
689
|
-
],
|
|
690
|
-
"additionalProperties": false
|
|
653
|
+
"multiplier": {
|
|
654
|
+
"description": "This number is multiplied with the improvement cost of the entry\n(A = 1 to D = 4).",
|
|
655
|
+
"type": "integer",
|
|
656
|
+
"minimum": 2
|
|
657
|
+
},
|
|
658
|
+
"offset": {
|
|
659
|
+
"description": "This number is added to the maybe multiplied improvement cost of the\nentry.",
|
|
660
|
+
"type": "integer"
|
|
691
661
|
}
|
|
692
|
-
|
|
662
|
+
},
|
|
663
|
+
"required": [
|
|
664
|
+
"tag"
|
|
665
|
+
],
|
|
666
|
+
"additionalProperties": false
|
|
693
667
|
},
|
|
694
668
|
{
|
|
695
669
|
"type": "object",
|
|
696
670
|
"properties": {
|
|
697
671
|
"tag": {
|
|
698
|
-
"const": "
|
|
672
|
+
"const": "Fixed"
|
|
699
673
|
},
|
|
700
|
-
"
|
|
701
|
-
"description": "A
|
|
674
|
+
"map": {
|
|
675
|
+
"description": "A mapping of skill identifiers to their specific AP values.",
|
|
702
676
|
"type": "array",
|
|
703
677
|
"items": {
|
|
704
678
|
"type": "object",
|
|
705
679
|
"properties": {
|
|
706
|
-
"
|
|
707
|
-
"$ref": "./_Identifier.schema.json#/definitions/
|
|
680
|
+
"id": {
|
|
681
|
+
"$ref": "./_Identifier.schema.json#/definitions/SkillIdentifier"
|
|
708
682
|
},
|
|
709
|
-
"
|
|
710
|
-
"description": "
|
|
711
|
-
"type": "
|
|
712
|
-
"
|
|
713
|
-
"operation": {
|
|
714
|
-
"oneOf": [
|
|
715
|
-
{
|
|
716
|
-
"type": "object",
|
|
717
|
-
"properties": {
|
|
718
|
-
"tag": {
|
|
719
|
-
"const": "Intersection"
|
|
720
|
-
}
|
|
721
|
-
},
|
|
722
|
-
"required": [
|
|
723
|
-
"tag"
|
|
724
|
-
],
|
|
725
|
-
"additionalProperties": false
|
|
726
|
-
},
|
|
727
|
-
{
|
|
728
|
-
"type": "object",
|
|
729
|
-
"properties": {
|
|
730
|
-
"tag": {
|
|
731
|
-
"const": "Difference"
|
|
732
|
-
}
|
|
733
|
-
},
|
|
734
|
-
"required": [
|
|
735
|
-
"tag"
|
|
736
|
-
],
|
|
737
|
-
"additionalProperties": false
|
|
738
|
-
}
|
|
739
|
-
]
|
|
740
|
-
},
|
|
741
|
-
"list": {
|
|
742
|
-
"description": "The list of specific entries.",
|
|
743
|
-
"type": "array",
|
|
744
|
-
"items": {
|
|
745
|
-
"type": "object",
|
|
746
|
-
"properties": {
|
|
747
|
-
"id": {
|
|
748
|
-
"description": "The entry's identifier.",
|
|
749
|
-
"type": "integer",
|
|
750
|
-
"maximum": 59,
|
|
751
|
-
"minimum": 1
|
|
752
|
-
}
|
|
753
|
-
},
|
|
754
|
-
"required": [
|
|
755
|
-
"id"
|
|
756
|
-
],
|
|
757
|
-
"additionalProperties": false
|
|
758
|
-
},
|
|
759
|
-
"minItems": 1,
|
|
760
|
-
"uniqueItems": true
|
|
761
|
-
}
|
|
762
|
-
},
|
|
763
|
-
"required": [
|
|
764
|
-
"operation",
|
|
765
|
-
"list"
|
|
766
|
-
],
|
|
767
|
-
"additionalProperties": false
|
|
683
|
+
"ap_value": {
|
|
684
|
+
"description": "The AP value for the specified entry.",
|
|
685
|
+
"type": "integer",
|
|
686
|
+
"minimum": 1
|
|
768
687
|
}
|
|
769
688
|
},
|
|
770
689
|
"required": [
|
|
771
|
-
"
|
|
690
|
+
"id",
|
|
691
|
+
"ap_value"
|
|
772
692
|
],
|
|
773
693
|
"additionalProperties": false
|
|
774
|
-
}
|
|
775
|
-
"minItems": 1
|
|
694
|
+
}
|
|
776
695
|
},
|
|
777
|
-
"
|
|
778
|
-
"description": "
|
|
779
|
-
"type": "
|
|
780
|
-
"
|
|
696
|
+
"default": {
|
|
697
|
+
"description": "The default value of an entry. Used as a fallback if no value is\nfound in `list`.",
|
|
698
|
+
"type": "integer",
|
|
699
|
+
"minimum": 1
|
|
700
|
+
}
|
|
701
|
+
},
|
|
702
|
+
"required": [
|
|
703
|
+
"tag",
|
|
704
|
+
"map",
|
|
705
|
+
"default"
|
|
706
|
+
],
|
|
707
|
+
"additionalProperties": false
|
|
708
|
+
}
|
|
709
|
+
]
|
|
710
|
+
}
|
|
711
|
+
},
|
|
712
|
+
"required": [
|
|
713
|
+
"tag",
|
|
714
|
+
"categories"
|
|
715
|
+
],
|
|
716
|
+
"additionalProperties": false
|
|
717
|
+
},
|
|
718
|
+
{
|
|
719
|
+
"type": "object",
|
|
720
|
+
"properties": {
|
|
721
|
+
"tag": {
|
|
722
|
+
"const": "CombatTechniques"
|
|
723
|
+
},
|
|
724
|
+
"categories": {
|
|
725
|
+
"description": "A list of combat technique categories.",
|
|
726
|
+
"type": "array",
|
|
727
|
+
"items": {
|
|
728
|
+
"type": "object",
|
|
729
|
+
"properties": {
|
|
730
|
+
"tag": {
|
|
731
|
+
"$ref": "#/definitions/CombatTechniqueCategory"
|
|
732
|
+
},
|
|
733
|
+
"specific": {
|
|
734
|
+
"description": "Only include (`Intersection`) or exclude (`Difference`) specific\nentries.",
|
|
735
|
+
"type": "object",
|
|
736
|
+
"properties": {
|
|
737
|
+
"operation": {
|
|
781
738
|
"oneOf": [
|
|
782
739
|
{
|
|
783
|
-
"
|
|
740
|
+
"type": "object",
|
|
741
|
+
"properties": {
|
|
742
|
+
"tag": {
|
|
743
|
+
"const": "Intersection"
|
|
744
|
+
}
|
|
745
|
+
},
|
|
746
|
+
"required": [
|
|
747
|
+
"tag"
|
|
748
|
+
],
|
|
749
|
+
"additionalProperties": false
|
|
784
750
|
},
|
|
785
751
|
{
|
|
786
|
-
"
|
|
752
|
+
"type": "object",
|
|
753
|
+
"properties": {
|
|
754
|
+
"tag": {
|
|
755
|
+
"const": "Difference"
|
|
756
|
+
}
|
|
757
|
+
},
|
|
758
|
+
"required": [
|
|
759
|
+
"tag"
|
|
760
|
+
],
|
|
761
|
+
"additionalProperties": false
|
|
787
762
|
}
|
|
788
763
|
]
|
|
789
764
|
},
|
|
790
|
-
"
|
|
791
|
-
|
|
792
|
-
|
|
793
|
-
|
|
794
|
-
"oneOf": [
|
|
795
|
-
{
|
|
765
|
+
"list": {
|
|
766
|
+
"description": "The list of specific entries.",
|
|
767
|
+
"type": "array",
|
|
768
|
+
"items": {
|
|
796
769
|
"type": "object",
|
|
797
770
|
"properties": {
|
|
798
|
-
"
|
|
799
|
-
"
|
|
800
|
-
},
|
|
801
|
-
"multiplier": {
|
|
802
|
-
"description": "This number is multiplied with the improvement cost of the entry\n(A = 1 to D = 4).",
|
|
771
|
+
"id": {
|
|
772
|
+
"description": "The entry's identifier.",
|
|
803
773
|
"type": "integer",
|
|
804
|
-
"
|
|
774
|
+
"maximum": 59,
|
|
775
|
+
"minimum": 1
|
|
805
776
|
}
|
|
806
777
|
},
|
|
807
778
|
"required": [
|
|
808
|
-
"
|
|
779
|
+
"id"
|
|
809
780
|
],
|
|
810
781
|
"additionalProperties": false
|
|
811
782
|
},
|
|
783
|
+
"minItems": 1,
|
|
784
|
+
"uniqueItems": true
|
|
785
|
+
}
|
|
786
|
+
},
|
|
787
|
+
"required": [
|
|
788
|
+
"operation",
|
|
789
|
+
"list"
|
|
790
|
+
],
|
|
791
|
+
"additionalProperties": false
|
|
792
|
+
},
|
|
793
|
+
"prerequisites": {
|
|
794
|
+
"description": "Generate prerequisites for each entry of the category.",
|
|
795
|
+
"type": "array",
|
|
796
|
+
"items": {
|
|
797
|
+
"oneOf": [
|
|
812
798
|
{
|
|
813
|
-
"
|
|
814
|
-
|
|
815
|
-
|
|
816
|
-
|
|
817
|
-
},
|
|
818
|
-
"map": {
|
|
819
|
-
"description": "A mapping of skill identifiers to their specific AP values.",
|
|
820
|
-
"type": "array",
|
|
821
|
-
"items": {
|
|
822
|
-
"type": "object",
|
|
823
|
-
"properties": {
|
|
824
|
-
"id": {
|
|
825
|
-
"$ref": "./_Identifier.schema.json#/definitions/CombatTechniqueIdentifier"
|
|
826
|
-
},
|
|
827
|
-
"ap_value": {
|
|
828
|
-
"description": "The AP value for the specified entry.",
|
|
829
|
-
"type": "integer",
|
|
830
|
-
"minimum": 1
|
|
831
|
-
}
|
|
832
|
-
},
|
|
833
|
-
"required": [
|
|
834
|
-
"id",
|
|
835
|
-
"ap_value"
|
|
836
|
-
],
|
|
837
|
-
"additionalProperties": false
|
|
838
|
-
}
|
|
839
|
-
},
|
|
840
|
-
"default": {
|
|
841
|
-
"description": "The default value of an entry. Used as a fallback if no value is\nfound in `list`.",
|
|
842
|
-
"type": "integer",
|
|
843
|
-
"minimum": 1
|
|
844
|
-
}
|
|
845
|
-
},
|
|
846
|
-
"required": [
|
|
847
|
-
"tag",
|
|
848
|
-
"map",
|
|
849
|
-
"default"
|
|
850
|
-
],
|
|
851
|
-
"additionalProperties": false
|
|
799
|
+
"$ref": "#/definitions/OptionSkillSelfPrerequisite"
|
|
800
|
+
},
|
|
801
|
+
{
|
|
802
|
+
"$ref": "#/definitions/OptionOptionPrerequisite"
|
|
852
803
|
}
|
|
853
804
|
]
|
|
805
|
+
},
|
|
806
|
+
"minItems": 1
|
|
807
|
+
}
|
|
808
|
+
},
|
|
809
|
+
"required": [
|
|
810
|
+
"tag"
|
|
811
|
+
],
|
|
812
|
+
"additionalProperties": false
|
|
813
|
+
},
|
|
814
|
+
"minItems": 1
|
|
815
|
+
},
|
|
816
|
+
"ap_value": {
|
|
817
|
+
"description": "Generate AP values for each entry.",
|
|
818
|
+
"oneOf": [
|
|
819
|
+
{
|
|
820
|
+
"type": "object",
|
|
821
|
+
"properties": {
|
|
822
|
+
"tag": {
|
|
823
|
+
"description": "Derive the cost from the improvement cost of each entry.\n\nAP Value = Improvement Cost × `multiplier` + `offset`",
|
|
824
|
+
"const": "DerivedFromImprovementCost"
|
|
825
|
+
},
|
|
826
|
+
"multiplier": {
|
|
827
|
+
"description": "This number is multiplied with the improvement cost of the entry\n(A = 1 to D = 4).",
|
|
828
|
+
"type": "integer",
|
|
829
|
+
"minimum": 2
|
|
830
|
+
},
|
|
831
|
+
"offset": {
|
|
832
|
+
"description": "This number is added to the maybe multiplied improvement cost of the\nentry.",
|
|
833
|
+
"type": "integer"
|
|
834
|
+
}
|
|
835
|
+
},
|
|
836
|
+
"required": [
|
|
837
|
+
"tag"
|
|
838
|
+
],
|
|
839
|
+
"additionalProperties": false
|
|
840
|
+
},
|
|
841
|
+
{
|
|
842
|
+
"type": "object",
|
|
843
|
+
"properties": {
|
|
844
|
+
"tag": {
|
|
845
|
+
"const": "Fixed"
|
|
846
|
+
},
|
|
847
|
+
"map": {
|
|
848
|
+
"description": "A mapping of skill identifiers to their specific AP values.",
|
|
849
|
+
"type": "array",
|
|
850
|
+
"items": {
|
|
851
|
+
"type": "object",
|
|
852
|
+
"properties": {
|
|
853
|
+
"id": {
|
|
854
|
+
"$ref": "./_Identifier.schema.json#/definitions/CombatTechniqueIdentifier"
|
|
855
|
+
},
|
|
856
|
+
"ap_value": {
|
|
857
|
+
"description": "The AP value for the specified entry.",
|
|
858
|
+
"type": "integer",
|
|
859
|
+
"minimum": 1
|
|
860
|
+
}
|
|
861
|
+
},
|
|
862
|
+
"required": [
|
|
863
|
+
"id",
|
|
864
|
+
"ap_value"
|
|
865
|
+
],
|
|
866
|
+
"additionalProperties": false
|
|
867
|
+
}
|
|
868
|
+
},
|
|
869
|
+
"default": {
|
|
870
|
+
"description": "The default value of an entry. Used as a fallback if no value is\nfound in `list`.",
|
|
871
|
+
"type": "integer",
|
|
872
|
+
"minimum": 1
|
|
854
873
|
}
|
|
855
874
|
},
|
|
856
875
|
"required": [
|
|
857
876
|
"tag",
|
|
858
|
-
"
|
|
877
|
+
"map",
|
|
878
|
+
"default"
|
|
859
879
|
],
|
|
860
880
|
"additionalProperties": false
|
|
861
881
|
}
|
|
@@ -870,6 +890,20 @@
|
|
|
870
890
|
}
|
|
871
891
|
]
|
|
872
892
|
},
|
|
893
|
+
"SkillWithEnhancementsCategory": {
|
|
894
|
+
"enum": [
|
|
895
|
+
"Spells",
|
|
896
|
+
"Rituals",
|
|
897
|
+
"LiturgicalChants",
|
|
898
|
+
"Ceremonies"
|
|
899
|
+
]
|
|
900
|
+
},
|
|
901
|
+
"CombatTechniqueCategory": {
|
|
902
|
+
"enum": [
|
|
903
|
+
"CloseCombatTechniques",
|
|
904
|
+
"RangedCombatTechniques"
|
|
905
|
+
]
|
|
906
|
+
},
|
|
873
907
|
"OptionSkillSelfPrerequisite": {
|
|
874
908
|
"type": "object",
|
|
875
909
|
"properties": {
|
|
@@ -3294,31 +3328,57 @@
|
|
|
3294
3328
|
"type": "object",
|
|
3295
3329
|
"properties": {
|
|
3296
3330
|
"tag": {
|
|
3297
|
-
"
|
|
3331
|
+
"description": "Used if AP value is defined by the selected option(s) or special rules.",
|
|
3332
|
+
"const": "Indefinite"
|
|
3333
|
+
}
|
|
3334
|
+
},
|
|
3335
|
+
"required": [
|
|
3336
|
+
"tag"
|
|
3337
|
+
],
|
|
3338
|
+
"additionalProperties": false
|
|
3339
|
+
}
|
|
3340
|
+
]
|
|
3341
|
+
},
|
|
3342
|
+
"AdventurePointsValueAdvantagesDisadvantages": {
|
|
3343
|
+
"oneOf": [
|
|
3344
|
+
{
|
|
3345
|
+
"type": "object",
|
|
3346
|
+
"properties": {
|
|
3347
|
+
"tag": {
|
|
3348
|
+
"const": "Fixed"
|
|
3349
|
+
},
|
|
3350
|
+
"value": {
|
|
3351
|
+
"description": "A fixed adventure points value. If the entry has levels, this is the cost\nfor each level as well.",
|
|
3352
|
+
"$ref": "#/definitions/AdventurePointsSingleValue"
|
|
3353
|
+
},
|
|
3354
|
+
"does_not_contribute_to_maximum": {
|
|
3355
|
+
"description": "The AP Value of the entry does not contribute to the AP maximum for\nadvantages or disadvantages, so it may also be bought if the maximum has\nalready been reached.",
|
|
3356
|
+
"const": true
|
|
3357
|
+
}
|
|
3358
|
+
},
|
|
3359
|
+
"required": [
|
|
3360
|
+
"tag",
|
|
3361
|
+
"value"
|
|
3362
|
+
],
|
|
3363
|
+
"additionalProperties": false
|
|
3364
|
+
},
|
|
3365
|
+
{
|
|
3366
|
+
"type": "object",
|
|
3367
|
+
"properties": {
|
|
3368
|
+
"tag": {
|
|
3369
|
+
"const": "ByLevel"
|
|
3298
3370
|
},
|
|
3299
3371
|
"values": {
|
|
3300
|
-
"description": "An entry with
|
|
3301
|
-
"type": "
|
|
3302
|
-
"
|
|
3303
|
-
"
|
|
3304
|
-
"$ref": "#/definitions/AdventurePointsSingleValue"
|
|
3305
|
-
},
|
|
3306
|
-
"B": {
|
|
3307
|
-
"$ref": "#/definitions/AdventurePointsSingleValue"
|
|
3308
|
-
},
|
|
3309
|
-
"C": {
|
|
3310
|
-
"$ref": "#/definitions/AdventurePointsSingleValue"
|
|
3311
|
-
},
|
|
3312
|
-
"D": {
|
|
3313
|
-
"$ref": "#/definitions/AdventurePointsSingleValue"
|
|
3314
|
-
}
|
|
3372
|
+
"description": "An entry with levels may have different costs for each level. The length\nof the list must match the amount of levels the special ability has.",
|
|
3373
|
+
"type": "array",
|
|
3374
|
+
"items": {
|
|
3375
|
+
"$ref": "#/definitions/AdventurePointsSingleValue"
|
|
3315
3376
|
},
|
|
3316
|
-
"
|
|
3317
|
-
|
|
3318
|
-
|
|
3319
|
-
|
|
3320
|
-
|
|
3321
|
-
"additionalProperties": false
|
|
3377
|
+
"minItems": 2
|
|
3378
|
+
},
|
|
3379
|
+
"does_not_contribute_to_maximum": {
|
|
3380
|
+
"description": "The AP Value of the entry does not contribute to the AP maximum for\nadvantages or disadvantages, so it may also be bought if the maximum has\nalready been reached.",
|
|
3381
|
+
"const": true
|
|
3322
3382
|
}
|
|
3323
3383
|
},
|
|
3324
3384
|
"required": [
|
|
@@ -3333,6 +3393,10 @@
|
|
|
3333
3393
|
"tag": {
|
|
3334
3394
|
"description": "Used if AP value is defined by the selected option(s) or special rules.",
|
|
3335
3395
|
"const": "Indefinite"
|
|
3396
|
+
},
|
|
3397
|
+
"does_not_contribute_to_maximum": {
|
|
3398
|
+
"description": "The AP Value of the entry does not contribute to the AP maximum for\nadvantages or disadvantages, so it may also be bought if the maximum has\nalready been reached.",
|
|
3399
|
+
"const": true
|
|
3336
3400
|
}
|
|
3337
3401
|
},
|
|
3338
3402
|
"required": [
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
"$id": "/prerequisites/single/TextPrerequisite.schema.json",
|
|
4
4
|
"definitions": {
|
|
5
5
|
"TextPrerequisite": {
|
|
6
|
-
"title": "
|
|
6
|
+
"title": "Text Prerequisite",
|
|
7
7
|
"description": "A prerequisite that is either not verifyable in general – e.g. roleplay or\nbackground information – or the referenced entities were not made available\nfor use yet – e.g. races –, but which should be displayed, because it is part\nof the prerequisite string from the sources.",
|
|
8
8
|
"type": "object",
|
|
9
9
|
"properties": {
|