optolith-database-schema 0.16.4 → 0.16.5
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 +14 -0
- package/lib/cache/activatableSelectOptions.js +30 -19
- package/lib/cache/magicalAndBlessedAdvantagesAndDisadvantages.js +1 -0
- package/lib/types/UI.d.ts +44 -118
- package/lib/types/_Identifier.d.ts +18 -0
- package/lib/types/_IdentifierGroup.d.ts +4 -4
- package/package.json +1 -1
- package/schema/UI.schema.json +88 -249
- package/schema/_Identifier.schema.json +36 -0
- package/schema/_IdentifierGroup.schema.json +106 -91
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,20 @@
|
|
|
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.16.5](https://github.com/elyukai/optolith-database-schema/compare/v0.16.4...v0.16.5) (2024-02-29)
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
### Features
|
|
9
|
+
|
|
10
|
+
* add missing activatable and rated identifiers ([a34676b](https://github.com/elyukai/optolith-database-schema/commit/a34676b3c3a7d91621d285447eb913d6888e2c8e))
|
|
11
|
+
* convert many used keys to their english fallback and add some new keys ([ae07fd2](https://github.com/elyukai/optolith-database-schema/commit/ae07fd2b6def34c4a5269202a9ac3a3b8e735b37))
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
### Bug Fixes
|
|
15
|
+
|
|
16
|
+
* add missing identifier handling to magical and blessed advantages and disadvantages cache ([eba871a](https://github.com/elyukai/optolith-database-schema/commit/eba871a0e7ea803775a30c01e2d2c278bd60856f))
|
|
17
|
+
* applications and uses for select options ([c21b851](https://github.com/elyukai/optolith-database-schema/commit/c21b8512817204129a9213b330abc811b64dad13))
|
|
18
|
+
|
|
5
19
|
### [0.16.4](https://github.com/elyukai/optolith-database-schema/compare/v0.16.3...v0.16.4) (2024-01-21)
|
|
6
20
|
|
|
7
21
|
|
|
@@ -104,6 +104,11 @@ const getApValueForSkillish = (config, id, ic) => {
|
|
|
104
104
|
return assertExhaustive(config);
|
|
105
105
|
}
|
|
106
106
|
};
|
|
107
|
+
const convertSkillApplicationOrUse = (id, applicationOrUse) => ({
|
|
108
|
+
id: applicationOrUse.id,
|
|
109
|
+
skill: { tag: "Single", single: { id } },
|
|
110
|
+
translations: applicationOrUse.translations,
|
|
111
|
+
});
|
|
107
112
|
const getDerivedSelectOptions = (selectOptionCategory, entryId, database) => {
|
|
108
113
|
switch (selectOptionCategory.tag) {
|
|
109
114
|
case "Blessings":
|
|
@@ -529,16 +534,8 @@ const getDerivedSelectOptions = (selectOptionCategory, entryId, database) => {
|
|
|
529
534
|
const id = { tag: "Skill", skill: skill.id };
|
|
530
535
|
return {
|
|
531
536
|
id,
|
|
532
|
-
skill_uses: category.skills.skill_uses?.map(use => (
|
|
533
|
-
|
|
534
|
-
skill: { tag: "Single", single: { id } },
|
|
535
|
-
translations: use.translations,
|
|
536
|
-
})),
|
|
537
|
-
skill_applications: category.skills.skill_applications?.map(use => ({
|
|
538
|
-
id: use.id,
|
|
539
|
-
skill: { tag: "Single", single: { id } },
|
|
540
|
-
translations: use.translations,
|
|
541
|
-
})),
|
|
537
|
+
skill_uses: category.skills.skill_uses?.map(use => convertSkillApplicationOrUse(id, use)),
|
|
538
|
+
skill_applications: category.skills.skill_applications?.map(use => convertSkillApplicationOrUse(id, use)),
|
|
542
539
|
prerequisites: getSkillishPrerequisites(category.skills.prerequisites, id),
|
|
543
540
|
ap_value: getApValueForSkillish(category.skills.ap_value ?? apValueGen, id, skill.improvement_cost),
|
|
544
541
|
src: skill.src,
|
|
@@ -691,22 +688,36 @@ const getDerivedSelectOptions = (selectOptionCategory, entryId, database) => {
|
|
|
691
688
|
return assertExhaustive(selectOptionCategory);
|
|
692
689
|
}
|
|
693
690
|
};
|
|
691
|
+
const joinLocaleMaps = (a, b, join) => {
|
|
692
|
+
const combinedLocaleMap = {};
|
|
693
|
+
for (const key of new Set([...Object.keys(a), ...Object.keys(b)])) {
|
|
694
|
+
const newValue = join(a[key], b[key]);
|
|
695
|
+
if (newValue != null) {
|
|
696
|
+
combinedLocaleMap[key] = newValue;
|
|
697
|
+
}
|
|
698
|
+
}
|
|
699
|
+
return combinedLocaleMap;
|
|
700
|
+
};
|
|
694
701
|
const getExplicitSelectOptions = (explicitSelectOptions, database) => explicitSelectOptions
|
|
695
702
|
.map((explicitSelectOption) => {
|
|
696
703
|
switch (explicitSelectOption.tag) {
|
|
697
704
|
case "General":
|
|
698
705
|
return {
|
|
706
|
+
...explicitSelectOption.general,
|
|
699
707
|
id: { tag: "General", general: explicitSelectOption.general.id },
|
|
700
|
-
translations: explicitSelectOption.general.translations,
|
|
701
708
|
};
|
|
702
709
|
case "Skill": {
|
|
703
710
|
const skill = database.skills.find(p => p[0] === explicitSelectOption.skill.id.skill)?.[1];
|
|
704
711
|
if (skill === undefined) {
|
|
705
712
|
return undefined;
|
|
706
713
|
}
|
|
714
|
+
const id = { tag: "Skill", skill: explicitSelectOption.skill.id.skill };
|
|
707
715
|
return {
|
|
708
|
-
|
|
709
|
-
|
|
716
|
+
...explicitSelectOption.skill,
|
|
717
|
+
id,
|
|
718
|
+
skill_applications: explicitSelectOption.skill.skill_applications?.map(use => convertSkillApplicationOrUse(id, use)),
|
|
719
|
+
skill_uses: explicitSelectOption.skill.skill_uses?.map(use => convertSkillApplicationOrUse(id, use)),
|
|
720
|
+
translations: joinLocaleMaps(explicitSelectOption.skill.translations ?? {}, skill.translations, (explicit, base) => base === undefined ? undefined : { ...explicit, name: base.name }),
|
|
710
721
|
};
|
|
711
722
|
}
|
|
712
723
|
case "CombatTechnique":
|
|
@@ -718,10 +729,9 @@ const getExplicitSelectOptions = (explicitSelectOptions, database) => explicitSe
|
|
|
718
729
|
return undefined;
|
|
719
730
|
}
|
|
720
731
|
return {
|
|
732
|
+
...explicitSelectOption.combat_technique,
|
|
721
733
|
id: { tag: "CloseCombatTechnique", close_combat_technique: id },
|
|
722
|
-
translations:
|
|
723
|
-
name: t10n.name,
|
|
724
|
-
})),
|
|
734
|
+
translations: joinLocaleMaps(explicitSelectOption.combat_technique.translations ?? {}, closeCombatTechnique.translations, (explicit, base) => base === undefined ? undefined : { ...explicit, name: base.name }),
|
|
725
735
|
};
|
|
726
736
|
}
|
|
727
737
|
case "RangedCombatTechnique": {
|
|
@@ -731,10 +741,9 @@ const getExplicitSelectOptions = (explicitSelectOptions, database) => explicitSe
|
|
|
731
741
|
return undefined;
|
|
732
742
|
}
|
|
733
743
|
return {
|
|
744
|
+
...explicitSelectOption.combat_technique,
|
|
734
745
|
id: { tag: "RangedCombatTechnique", ranged_combat_technique: id },
|
|
735
|
-
translations:
|
|
736
|
-
name: t10n.name,
|
|
737
|
-
})),
|
|
746
|
+
translations: joinLocaleMaps(explicitSelectOption.combat_technique.translations ?? {}, rangedCombatTechnique.translations, (explicit, base) => base === undefined ? undefined : { ...explicit, name: base.name }),
|
|
738
747
|
};
|
|
739
748
|
}
|
|
740
749
|
default:
|
|
@@ -857,6 +866,8 @@ const getSelectOptionsForResults = (database, idTag, results) => results.reduce(
|
|
|
857
866
|
return { tag: "Krallenkettenzauber", krallenkettenzauber: id };
|
|
858
867
|
case "Trinkhornzauber":
|
|
859
868
|
return { tag: "Trinkhornzauber", trinkhornzauber: id };
|
|
869
|
+
case "MagicalSign":
|
|
870
|
+
return { tag: "MagicalSign", magical_sign: id };
|
|
860
871
|
default:
|
|
861
872
|
return assertExhaustive(idTag);
|
|
862
873
|
}
|
|
@@ -116,6 +116,7 @@ export const config = {
|
|
|
116
116
|
case "Krallenkettenzauber": return database.krallenkettenzauber.find(([entryId]) => entryId === id.krallenkettenzauber)?.[1];
|
|
117
117
|
case "LiturgicalStyleSpecialAbility": return database.liturgicalStyleSpecialAbilities.find(([entryId]) => entryId === id.liturgical_style_special_ability)?.[1];
|
|
118
118
|
case "LycantropicGift": return database.lycantropicGifts.find(([entryId]) => entryId === id.lycantropic_gift)?.[1];
|
|
119
|
+
case "MagicalSign": return database.magicalSigns.find(([entryId]) => entryId === id.magical_sign)?.[1];
|
|
119
120
|
case "MagicalSpecialAbility": return database.magicalSpecialAbilities.find(([entryId]) => entryId === id.magical_special_ability)?.[1];
|
|
120
121
|
case "MagicalTradition": return database.magicalTraditions.find(([entryId]) => entryId === id.magical_tradition)?.[1];
|
|
121
122
|
case "MagicStyleSpecialAbility": return database.magicStyleSpecialAbilities.find(([entryId]) => entryId === id.magic_style_special_ability)?.[1];
|
package/lib/types/UI.d.ts
CHANGED
|
@@ -60,7 +60,6 @@ export type UI = {
|
|
|
60
60
|
"Install Later": NonEmptyString;
|
|
61
61
|
"No update available": NonEmptyString;
|
|
62
62
|
"You're running the latest version available.": NonEmptyString;
|
|
63
|
-
"initialization.loadtableserror": NonEmptyString;
|
|
64
63
|
"Characters": NonEmptyString;
|
|
65
64
|
"Groups": NonEmptyString;
|
|
66
65
|
"Library": NonEmptyString;
|
|
@@ -211,6 +210,9 @@ export type UI = {
|
|
|
211
210
|
* - `0`: Length in cm
|
|
212
211
|
*/
|
|
213
212
|
"general.lengthvalue": NonEmptyString;
|
|
213
|
+
/**
|
|
214
|
+
* As in *2D6*.
|
|
215
|
+
*/
|
|
214
216
|
"D": NonEmptyString;
|
|
215
217
|
"general.none": NonEmptyString;
|
|
216
218
|
"general.or": NonEmptyString;
|
|
@@ -220,11 +222,6 @@ export type UI = {
|
|
|
220
222
|
"general.emptylistplaceholder": NonEmptyString;
|
|
221
223
|
"general.emptylistnoresultsplaceholder": NonEmptyString;
|
|
222
224
|
"No Results": NonEmptyString;
|
|
223
|
-
/**
|
|
224
|
-
* - `0`: Name of element
|
|
225
|
-
* - `1`: AP value
|
|
226
|
-
*/
|
|
227
|
-
"general.withapvalue": NonEmptyString;
|
|
228
225
|
"Search": NonEmptyString;
|
|
229
226
|
"Sort By": NonEmptyString;
|
|
230
227
|
"Name": NonEmptyString;
|
|
@@ -235,38 +232,26 @@ export type UI = {
|
|
|
235
232
|
"general.filters.sort.bycost": NonEmptyString;
|
|
236
233
|
"general.filters.sort.byweight": NonEmptyString;
|
|
237
234
|
"general.filters.showactivatedentries": NonEmptyString;
|
|
238
|
-
"general.dialogs.savebtn": NonEmptyString;
|
|
239
235
|
"Done": NonEmptyString;
|
|
240
|
-
"
|
|
241
|
-
"general.dialogs.yesbtn": NonEmptyString;
|
|
242
|
-
"general.dialogs.nobtn": NonEmptyString;
|
|
243
|
-
"general.dialogs.okbtn": NonEmptyString;
|
|
236
|
+
"OK": NonEmptyString;
|
|
244
237
|
"Cancel": NonEmptyString;
|
|
245
|
-
"
|
|
246
|
-
"
|
|
247
|
-
"general.dialogs.applybtn": NonEmptyString;
|
|
238
|
+
"Create": NonEmptyString;
|
|
239
|
+
"Apply": NonEmptyString;
|
|
248
240
|
"Add": NonEmptyString;
|
|
249
|
-
"
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
"
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
"
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
"general.dialogs.reachedaplimit.message": NonEmptyString;
|
|
264
|
-
"general.dialogs.reachedaplimit.advantages": NonEmptyString;
|
|
265
|
-
"general.dialogs.reachedaplimit.magicaladvantages": NonEmptyString;
|
|
266
|
-
"general.dialogs.reachedaplimit.blessedadvantages": NonEmptyString;
|
|
267
|
-
"general.dialogs.reachedaplimit.disadvantages": NonEmptyString;
|
|
268
|
-
"general.dialogs.reachedaplimit.magicaldisadvantages": NonEmptyString;
|
|
269
|
-
"general.dialogs.reachedaplimit.blesseddisadvantages": NonEmptyString;
|
|
241
|
+
"Not enough AP": NonEmptyString;
|
|
242
|
+
"You are missing {0} Adventure Points to do this.": PluralizationCategories;
|
|
243
|
+
"Exceeding Adventure Points limit for advantages": NonEmptyString;
|
|
244
|
+
"You cannot spend more than {0} AP on advantages. You would exceed this limit by {1} AP.": NonEmptyString;
|
|
245
|
+
"Exceeding Adventure Points limit for magical advantages": NonEmptyString;
|
|
246
|
+
"You cannot spend more than {0} AP on magical advantages. You would exceed this limit by {1} AP.": NonEmptyString;
|
|
247
|
+
"Exceeding Adventure Points limit for blessed advantages": NonEmptyString;
|
|
248
|
+
"You cannot spend more than {0} AP on blessed advantages. You would exceed this limit by {1} AP.": NonEmptyString;
|
|
249
|
+
"Exceeding Adventure Points limit for disadvantages": NonEmptyString;
|
|
250
|
+
"You cannot receive more than {0} AP from disadvantages. You would exceed this limit by {1} AP.": NonEmptyString;
|
|
251
|
+
"Exceeding Adventure Points limit for magical disadvantages": NonEmptyString;
|
|
252
|
+
"You cannot receive more than {0} AP from magical disadvantages. You would exceed this limit by {1} AP.": NonEmptyString;
|
|
253
|
+
"Exceeding Adventure Points limit for blessed disadvantages": NonEmptyString;
|
|
254
|
+
"You cannot receive more than {0} AP from blessed disadvantages. You would exceed this limit by {1} AP.": NonEmptyString;
|
|
270
255
|
"heroes.filters.origin.allheroes": NonEmptyString;
|
|
271
256
|
"heroes.filters.origin.ownheroes": NonEmptyString;
|
|
272
257
|
"heroes.filters.origin.sharedheroes": NonEmptyString;
|
|
@@ -320,7 +305,6 @@ export type UI = {
|
|
|
320
305
|
"wiki.filters.specialabilities.all": NonEmptyString;
|
|
321
306
|
"wiki.filters.itemtemplates": NonEmptyString;
|
|
322
307
|
"wiki.filters.itemtemplates.all": NonEmptyString;
|
|
323
|
-
"imprint.title": NonEmptyString;
|
|
324
308
|
"Edit Name": NonEmptyString;
|
|
325
309
|
"Change Name": NonEmptyString;
|
|
326
310
|
"Edit Profession Name": NonEmptyString;
|
|
@@ -356,6 +340,7 @@ export type UI = {
|
|
|
356
340
|
"Reroll Size": NonEmptyString;
|
|
357
341
|
"Reroll Weight": NonEmptyString;
|
|
358
342
|
"personaldata.cultureareaknowledge": NonEmptyString;
|
|
343
|
+
"You can save up no more than 10 AP to use later during the game, and you cannot begin the game with a negative AP balance.": NonEmptyString;
|
|
359
344
|
"sheets.printtopdfbtn": NonEmptyString;
|
|
360
345
|
"sheets.dialogs.pdfexportsavelocation.title": NonEmptyString;
|
|
361
346
|
"sheets.dialogs.pdfsaved": NonEmptyString;
|
|
@@ -769,55 +754,14 @@ export type UI = {
|
|
|
769
754
|
"How many points do you want to remove?": NonEmptyString;
|
|
770
755
|
"Remove": NonEmptyString;
|
|
771
756
|
"Permanently Spent": NonEmptyString;
|
|
772
|
-
"
|
|
773
|
-
"
|
|
774
|
-
"
|
|
775
|
-
"advantagesdisadvantages.afraidof": NonEmptyString;
|
|
776
|
-
"advantagesdisadvantages.immunityto": NonEmptyString;
|
|
777
|
-
"advantagesdisadvantages.hatredfor": NonEmptyString;
|
|
778
|
-
"advantagesdisadvantages.header.name": NonEmptyString;
|
|
779
|
-
"advantagesdisadvantages.header.adventurepoints": NonEmptyString;
|
|
780
|
-
"advantagesdisadvantages.header.adventurepoints.tooltip": NonEmptyString;
|
|
781
|
-
/**
|
|
782
|
-
* - `0`: Current AP spent on advantages
|
|
783
|
-
* - `1`: Maximum possible AP spent on advantages
|
|
784
|
-
*/
|
|
785
|
-
"advantagesdisadvantages.apspent.spentonadvantages": NonEmptyString;
|
|
786
|
-
/**
|
|
787
|
-
* - `0`: Current AP spent on magic advantages
|
|
788
|
-
* - `1`: Maximum possible AP spent on magic advantages
|
|
789
|
-
*/
|
|
790
|
-
"advantagesdisadvantages.apspent.spentonmagicadvantages": NonEmptyString;
|
|
791
|
-
/**
|
|
792
|
-
* - `0`: Current AP spent on blessed advantages
|
|
793
|
-
* - `1`: Maximum possible AP spent on blessed advantages
|
|
794
|
-
*/
|
|
795
|
-
"advantagesdisadvantages.apspent.spentonblessedadvantages": NonEmptyString;
|
|
796
|
-
/**
|
|
797
|
-
* - `0`: Current AP spent on disadvantages
|
|
798
|
-
* - `1`: Maximum possible AP spent on disadvantages
|
|
799
|
-
*/
|
|
800
|
-
"advantagesdisadvantages.apspent.spentondisadvantages": NonEmptyString;
|
|
801
|
-
/**
|
|
802
|
-
* - `0`: Current AP spent on magic disadvantages
|
|
803
|
-
* - `1`: Maximum possible AP spent on magic disadvantages
|
|
804
|
-
*/
|
|
805
|
-
"advantagesdisadvantages.apspent.spentonmagicdisadvantages": NonEmptyString;
|
|
806
|
-
/**
|
|
807
|
-
* - `0`: Current AP spent on blessed disadvantages
|
|
808
|
-
* - `1`: Maximum possible AP spent on blessed disadvantages
|
|
809
|
-
*/
|
|
810
|
-
"advantagesdisadvantages.apspent.spentonblesseddisadvantages": NonEmptyString;
|
|
811
|
-
"advantagesdisadvantages.dialogs.customcost.title": NonEmptyString;
|
|
757
|
+
"Common Advantages": NonEmptyString;
|
|
758
|
+
"Common Disadvantages": NonEmptyString;
|
|
759
|
+
"Custom AP Cost": NonEmptyString;
|
|
812
760
|
/**
|
|
813
761
|
* - `0`: Entry name
|
|
814
762
|
*/
|
|
815
|
-
"
|
|
816
|
-
"
|
|
817
|
-
"specialabilities.header.name": NonEmptyString;
|
|
818
|
-
"specialabilities.header.group": NonEmptyString;
|
|
819
|
-
"specialabilities.header.adventurepoints": NonEmptyString;
|
|
820
|
-
"specialabilities.header.adventurepoints.tooltip": NonEmptyString;
|
|
763
|
+
"AP Cost for {0}": NonEmptyString;
|
|
764
|
+
"Custom option": NonEmptyString;
|
|
821
765
|
"specialabilities.nativetonguelevel": NonEmptyString;
|
|
822
766
|
"inlinewiki.rule": NonEmptyString;
|
|
823
767
|
"inlinewiki.effect": NonEmptyString;
|
|
@@ -860,32 +804,24 @@ export type UI = {
|
|
|
860
804
|
* - `0`: Minimum social status
|
|
861
805
|
*/
|
|
862
806
|
"inlinewiki.socialstatusxorhigher": NonEmptyString;
|
|
863
|
-
"
|
|
864
|
-
"
|
|
865
|
-
"
|
|
866
|
-
"
|
|
867
|
-
"skills.header.group": NonEmptyString;
|
|
868
|
-
"skills.header.check": NonEmptyString;
|
|
869
|
-
"skills.header.improvementcost": NonEmptyString;
|
|
870
|
-
"skills.header.improvementcost.tooltip": NonEmptyString;
|
|
807
|
+
"Common Skills": NonEmptyString;
|
|
808
|
+
"SR": NonEmptyString;
|
|
809
|
+
"Skill Rating": NonEmptyString;
|
|
810
|
+
"IC": NonEmptyString;
|
|
871
811
|
"New Applications": NonEmptyString;
|
|
872
812
|
"Uses": NonEmptyString;
|
|
873
|
-
"
|
|
874
|
-
"
|
|
875
|
-
"
|
|
876
|
-
"
|
|
877
|
-
"
|
|
878
|
-
"
|
|
879
|
-
"
|
|
880
|
-
"
|
|
881
|
-
"
|
|
882
|
-
"
|
|
883
|
-
"
|
|
884
|
-
"
|
|
885
|
-
"combattechniques.header.attack": NonEmptyString;
|
|
886
|
-
"combattechniques.header.attack.tooltip": NonEmptyString;
|
|
887
|
-
"combattechniques.header.parry": NonEmptyString;
|
|
888
|
-
"combattechniques.header.parry.tooltip": NonEmptyString;
|
|
813
|
+
"Strongly Recommended": NonEmptyString;
|
|
814
|
+
"Common": NonEmptyString;
|
|
815
|
+
"Uncommon": NonEmptyString;
|
|
816
|
+
"Unfamiliar Spells": NonEmptyString;
|
|
817
|
+
"CTR": NonEmptyString;
|
|
818
|
+
"Combat Technique Rating": NonEmptyString;
|
|
819
|
+
"P": NonEmptyString;
|
|
820
|
+
"Primary Attribute(s)": NonEmptyString;
|
|
821
|
+
"AT": NonEmptyString;
|
|
822
|
+
"Attack": NonEmptyString;
|
|
823
|
+
"PA": NonEmptyString;
|
|
824
|
+
"Parry": NonEmptyString;
|
|
889
825
|
"Close Combat": NonEmptyString;
|
|
890
826
|
"Ranged Combat": NonEmptyString;
|
|
891
827
|
"inlinewiki.special": NonEmptyString;
|
|
@@ -901,18 +837,8 @@ export type UI = {
|
|
|
901
837
|
"Animist Powers": NonEmptyString;
|
|
902
838
|
"Geode Rituals": NonEmptyString;
|
|
903
839
|
"Zibilja Rituals": NonEmptyString;
|
|
904
|
-
"
|
|
905
|
-
"
|
|
906
|
-
"spells.header.property": NonEmptyString;
|
|
907
|
-
"spells.header.group": NonEmptyString;
|
|
908
|
-
"spells.header.skillrating": NonEmptyString;
|
|
909
|
-
"spells.header.skillrating.tooltip": NonEmptyString;
|
|
910
|
-
"spells.header.check": NonEmptyString;
|
|
911
|
-
"spells.header.checkmodifier": NonEmptyString;
|
|
912
|
-
"spells.header.checkmodifier.tooltip": NonEmptyString;
|
|
913
|
-
"spells.header.improvementcost": NonEmptyString;
|
|
914
|
-
"spells.header.improvementcost.tooltip": NonEmptyString;
|
|
915
|
-
"spells.groups.cantrip": NonEmptyString;
|
|
840
|
+
"Mod": NonEmptyString;
|
|
841
|
+
"Check Modifier": NonEmptyString;
|
|
916
842
|
"spells.traditions.general": NonEmptyString;
|
|
917
843
|
"magicalactions.animistforces.tribes.general": NonEmptyString;
|
|
918
844
|
"inlinewiki.castingtime": NonEmptyString;
|
|
@@ -547,6 +547,24 @@ export type TrinkhornzauberIdentifier = {
|
|
|
547
547
|
*/
|
|
548
548
|
trinkhornzauber: number;
|
|
549
549
|
};
|
|
550
|
+
export type MagicalRuneIdentifier = {
|
|
551
|
+
tag: "MagicalRune";
|
|
552
|
+
/**
|
|
553
|
+
* The magical rune’s identifier.
|
|
554
|
+
* @integer
|
|
555
|
+
* @minimum 1
|
|
556
|
+
*/
|
|
557
|
+
magical_rune: number;
|
|
558
|
+
};
|
|
559
|
+
export type MagicalSignIdentifier = {
|
|
560
|
+
tag: "MagicalSign";
|
|
561
|
+
/**
|
|
562
|
+
* The magical sign’s identifier.
|
|
563
|
+
* @integer
|
|
564
|
+
* @minimum 1
|
|
565
|
+
*/
|
|
566
|
+
magical_sign: number;
|
|
567
|
+
};
|
|
550
568
|
export type LanguageIdentifier = {
|
|
551
569
|
tag: "Language";
|
|
552
570
|
/**
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import * as Identifier from "./_Identifier.js";
|
|
2
|
-
export type ActivatableIdentifier = Identifier.AdvantageIdentifier | Identifier.DisadvantageIdentifier | Identifier.
|
|
3
|
-
export type SpecialAbilityIdentifier = Identifier.
|
|
2
|
+
export type ActivatableIdentifier = Identifier.AdvantageIdentifier | Identifier.DisadvantageIdentifier | Identifier.AdvancedCombatSpecialAbilityIdentifier | Identifier.AdvancedKarmaSpecialAbilityIdentifier | Identifier.AdvancedMagicalSpecialAbilityIdentifier | Identifier.AdvancedSkillSpecialAbilityIdentifier | Identifier.AncestorGlyphIdentifier | Identifier.ArcaneOrbEnchantmentIdentifier | Identifier.AttireEnchantmentIdentifier | Identifier.BlessedTraditionIdentifier | Identifier.BowlEnchantmentIdentifier | Identifier.BrawlingSpecialAbilityIdentifier | Identifier.CauldronEnchantmentIdentifier | Identifier.CeremonialItemSpecialAbilityIdentifier | Identifier.ChronicleEnchantmentIdentifier | Identifier.CombatSpecialAbilityIdentifier | Identifier.CombatStyleSpecialAbilityIdentifier | Identifier.CommandSpecialAbilityIdentifier | Identifier.DaggerRitualIdentifier | Identifier.FamiliarSpecialAbilityIdentifier | Identifier.FatePointSexSpecialAbilityIdentifier | Identifier.FatePointSpecialAbilityIdentifier | Identifier.FoolsHatEnchantmentIdentifier | Identifier.GeneralSpecialAbilityIdentifier | Identifier.InstrumentEnchantmentIdentifier | Identifier.KarmaSpecialAbilityIdentifier | Identifier.KrallenkettenzauberIdentifier | Identifier.LiturgicalStyleSpecialAbilityIdentifier | Identifier.LycantropicGiftIdentifier | Identifier.MagicalSignIdentifier | Identifier.MagicalSpecialAbilityIdentifier | Identifier.MagicalTraditionIdentifier | Identifier.MagicStyleSpecialAbilityIdentifier | Identifier.OrbEnchantmentIdentifier | Identifier.PactGiftIdentifier | Identifier.ProtectiveWardingCircleSpecialAbilityIdentifier | Identifier.RingEnchantmentIdentifier | Identifier.SermonIdentifier | Identifier.SexSpecialAbilityIdentifier | Identifier.SickleRitualIdentifier | Identifier.SikaryanDrainSpecialAbilityIdentifier | Identifier.SkillStyleSpecialAbilityIdentifier | Identifier.SpellSwordEnchantmentIdentifier | Identifier.StaffEnchantmentIdentifier | Identifier.ToyEnchantmentIdentifier | Identifier.TrinkhornzauberIdentifier | Identifier.VampiricGiftIdentifier | Identifier.VisionIdentifier | Identifier.WandEnchantmentIdentifier | Identifier.WeaponEnchantmentIdentifier;
|
|
3
|
+
export type SpecialAbilityIdentifier = Identifier.AdvancedCombatSpecialAbilityIdentifier | Identifier.AdvancedKarmaSpecialAbilityIdentifier | Identifier.AdvancedMagicalSpecialAbilityIdentifier | Identifier.AdvancedSkillSpecialAbilityIdentifier | Identifier.AncestorGlyphIdentifier | Identifier.ArcaneOrbEnchantmentIdentifier | Identifier.AttireEnchantmentIdentifier | Identifier.BlessedTraditionIdentifier | Identifier.BowlEnchantmentIdentifier | Identifier.BrawlingSpecialAbilityIdentifier | Identifier.CauldronEnchantmentIdentifier | Identifier.CeremonialItemSpecialAbilityIdentifier | Identifier.ChronicleEnchantmentIdentifier | Identifier.CombatSpecialAbilityIdentifier | Identifier.CombatStyleSpecialAbilityIdentifier | Identifier.CommandSpecialAbilityIdentifier | Identifier.DaggerRitualIdentifier | Identifier.FamiliarSpecialAbilityIdentifier | Identifier.FatePointSexSpecialAbilityIdentifier | Identifier.FatePointSpecialAbilityIdentifier | Identifier.FoolsHatEnchantmentIdentifier | Identifier.GeneralSpecialAbilityIdentifier | Identifier.InstrumentEnchantmentIdentifier | Identifier.KarmaSpecialAbilityIdentifier | Identifier.KrallenkettenzauberIdentifier | Identifier.LiturgicalStyleSpecialAbilityIdentifier | Identifier.LycantropicGiftIdentifier | Identifier.MagicalSignIdentifier | Identifier.MagicalSpecialAbilityIdentifier | Identifier.MagicalTraditionIdentifier | Identifier.MagicStyleSpecialAbilityIdentifier | Identifier.OrbEnchantmentIdentifier | Identifier.PactGiftIdentifier | Identifier.ProtectiveWardingCircleSpecialAbilityIdentifier | Identifier.RingEnchantmentIdentifier | Identifier.SermonIdentifier | Identifier.SexSpecialAbilityIdentifier | Identifier.SickleRitualIdentifier | Identifier.SikaryanDrainSpecialAbilityIdentifier | Identifier.SkillStyleSpecialAbilityIdentifier | Identifier.SpellSwordEnchantmentIdentifier | Identifier.StaffEnchantmentIdentifier | Identifier.ToyEnchantmentIdentifier | Identifier.TrinkhornzauberIdentifier | Identifier.VampiricGiftIdentifier | Identifier.VisionIdentifier | Identifier.WandEnchantmentIdentifier | Identifier.WeaponEnchantmentIdentifier;
|
|
4
4
|
export type CombatRelatedSpecialAbilityIdentifier = Identifier.CombatSpecialAbilityIdentifier | Identifier.CombatStyleSpecialAbilityIdentifier | Identifier.AdvancedCombatSpecialAbilityIdentifier | Identifier.CommandSpecialAbilityIdentifier;
|
|
5
5
|
export type TraditionIdentifier = Identifier.MagicalTraditionIdentifier | Identifier.BlessedTraditionIdentifier;
|
|
6
6
|
export type RatedIdentifier = Identifier.AttributeIdentifier | Identifier.SkillIdentifier | Identifier.CloseCombatTechniqueIdentifier | Identifier.RangedCombatTechniqueIdentifier | Identifier.SpellIdentifier | Identifier.RitualIdentifier | Identifier.LiturgicalChantIdentifier | Identifier.CeremonyIdentifier;
|
|
@@ -12,8 +12,8 @@ export type ExtensionRuleIdentifier = Identifier.FocusRuleIdentifier | Identifie
|
|
|
12
12
|
export type SkillWithEnhancementsIdentifier = Identifier.SpellIdentifier | Identifier.RitualIdentifier | Identifier.LiturgicalChantIdentifier | Identifier.CeremonyIdentifier;
|
|
13
13
|
export type SpellworkIdentifier = Identifier.SpellIdentifier | Identifier.RitualIdentifier;
|
|
14
14
|
export type LiturgyIdentifier = Identifier.LiturgicalChantIdentifier | Identifier.CeremonyIdentifier;
|
|
15
|
-
export type MagicalActionIdentifier = Identifier.CurseIdentifier | Identifier.ElvenMagicalSongIdentifier | Identifier.DominationRitualIdentifier | Identifier.MagicalMelodyIdentifier | Identifier.MagicalDanceIdentifier | Identifier.JesterTrickIdentifier | Identifier.AnimistPowerIdentifier | Identifier.GeodeRitualIdentifier | Identifier.ZibiljaRitualIdentifier;
|
|
16
|
-
export type SelectOptionIdentifier = Identifier.GeneralIdentifier | Identifier.BlessingIdentifier | Identifier.CantripIdentifier | Identifier.TradeSecretIdentifier | Identifier.ScriptIdentifier | Identifier.AnimalShapeIdentifier | Identifier.ArcaneBardTraditionIdentifier | Identifier.ArcaneDancerTraditionIdentifier | Identifier.SexPracticeIdentifier | Identifier.RaceIdentifier | Identifier.CultureIdentifier | Identifier.BlessedTraditionIdentifier | Identifier.ElementIdentifier | Identifier.PropertyIdentifier | Identifier.AspectIdentifier | Identifier.DiseaseIdentifier | Identifier.PoisonIdentifier | Identifier.LanguageIdentifier | Identifier.SkillIdentifier | Identifier.CloseCombatTechniqueIdentifier | Identifier.RangedCombatTechniqueIdentifier | Identifier.LiturgicalChantIdentifier | Identifier.CeremonyIdentifier | Identifier.SpellIdentifier | Identifier.RitualIdentifier | Identifier.TargetCategoryIdentifier;
|
|
15
|
+
export type MagicalActionIdentifier = Identifier.CurseIdentifier | Identifier.ElvenMagicalSongIdentifier | Identifier.DominationRitualIdentifier | Identifier.MagicalMelodyIdentifier | Identifier.MagicalDanceIdentifier | Identifier.JesterTrickIdentifier | Identifier.AnimistPowerIdentifier | Identifier.GeodeRitualIdentifier | Identifier.ZibiljaRitualIdentifier | Identifier.MagicalRuneIdentifier;
|
|
16
|
+
export type SelectOptionIdentifier = Identifier.GeneralIdentifier | Identifier.BlessingIdentifier | Identifier.CantripIdentifier | Identifier.TradeSecretIdentifier | Identifier.ScriptIdentifier | Identifier.AnimalShapeIdentifier | Identifier.ArcaneBardTraditionIdentifier | Identifier.ArcaneDancerTraditionIdentifier | Identifier.SexPracticeIdentifier | Identifier.RaceIdentifier | Identifier.CultureIdentifier | Identifier.BlessedTraditionIdentifier | Identifier.ElementIdentifier | Identifier.PropertyIdentifier | Identifier.AspectIdentifier | Identifier.DiseaseIdentifier | Identifier.PoisonIdentifier | Identifier.LanguageIdentifier | Identifier.SkillIdentifier | Identifier.CloseCombatTechniqueIdentifier | Identifier.RangedCombatTechniqueIdentifier | Identifier.LiturgicalChantIdentifier | Identifier.CeremonyIdentifier | Identifier.SpellIdentifier | Identifier.RitualIdentifier | Identifier.TargetCategoryIdentifier | Identifier.PatronIdentifier;
|
|
17
17
|
export type RequirableSelectOptionIdentifier = Identifier.GeneralIdentifier | Identifier.SkillIdentifier | Identifier.CloseCombatTechniqueIdentifier | Identifier.RangedCombatTechniqueIdentifier | Identifier.PropertyIdentifier | Identifier.AspectIdentifier | Identifier.LanguageIdentifier | Identifier.AnimalShapeIdentifier | Identifier.LiturgicalChantIdentifier | Identifier.CeremonyIdentifier | Identifier.SpellIdentifier | Identifier.RitualIdentifier;
|
|
18
18
|
export type CoreRuleDerivableContentIdentifier = Identifier.MagicalTraditionIdentifier | Identifier.FamiliarSpecialAbilityIdentifier | Identifier.MagicalSpecialAbilityIdentifier | Identifier.BlessedTraditionIdentifier;
|
|
19
19
|
export type EquipmentIdentifier = Identifier.AmmunitionIdentifier | Identifier.AnimalIdentifier | Identifier.AnimalCareIdentifier | Identifier.ArmorIdentifier | Identifier.BandageOrRemedyIdentifier | Identifier.BookIdentifier | Identifier.CeremonialItemIdentifier | Identifier.ClothesIdentifier | Identifier.ContainerIdentifier | Identifier.ElixirIdentifier | Identifier.EquipmentOfBlessedOnesIdentifier | Identifier.GemOrPreciousStoneIdentifier | Identifier.IlluminationLightSourceIdentifier | Identifier.IlluminationRefillsOrSuppliesIdentifier | Identifier.JewelryIdentifier | Identifier.LiebesspielzeugIdentifier | Identifier.LuxuryGoodIdentifier | Identifier.MagicalArtifactIdentifier | Identifier.MusicalInstrumentIdentifier | Identifier.OrienteeringAidIdentifier | Identifier.PoisonIdentifier | Identifier.RopeOrChainIdentifier | Identifier.StationaryIdentifier | Identifier.ThievesToolIdentifier | Identifier.ToolOfTheTradeIdentifier | Identifier.TravelGearOrToolIdentifier | Identifier.VehicleIdentifier | Identifier.WeaponIdentifier | Identifier.WeaponAccessoryIdentifier;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "optolith-database-schema",
|
|
3
|
-
"version": "0.16.
|
|
3
|
+
"version": "0.16.5",
|
|
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",
|