@optolith/database-schema 0.89.0 → 0.90.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +12 -0
- package/gen/types.d.ts +404 -314
- package/lib/cache/activatableSelectOptions.js +21 -19
- package/lib/cache/ancestorBloodAdvantages.js +4 -1
- package/lib/cache/magicalAndBlessedAdvantagesAndDisadvantages.js +21 -22
- package/lib/cache/newApplicationsAndUses.js +4 -1
- package/lib/cache/tradeSecrets.js +1 -1
- package/lib/test.js +1 -0
- package/lib/types/AnimalDisease.js +1 -1
- package/lib/types/Attribute.js +1 -1
- package/lib/types/Culture.d.ts +8 -4
- package/lib/types/DerivedCharacteristic.js +3 -1
- package/lib/types/Disease.js +1 -1
- package/lib/types/Lessons.js +1 -1
- package/lib/types/Locale.js +1 -0
- package/lib/types/PatronCategory.js +1 -1
- package/lib/types/PersonalityTrait.js +1 -1
- package/lib/types/Profession.d.ts +16 -8
- package/lib/types/Race.d.ts +16 -8
- package/lib/types/TargetCategory.js +1 -1
- package/lib/types/_ActivatableNonMundane.js +1 -1
- package/lib/types/_ActivatableSelectOptionCategory.js +1 -1
- package/lib/types/_ActivatableSelectOptions.js +1 -1
- package/lib/types/_ActivatableSkill.d.ts +1 -1
- package/lib/types/_ActivatableSkill.js +1 -1
- package/lib/types/_ActivatableSkillApplicationsAndUses.js +1 -1
- package/lib/types/_ActivatableSkillCastingTime.js +2 -2
- package/lib/types/_ActivatableSkillDuration.js +2 -2
- package/lib/types/_ActivatableSkillTargetCategory.js +1 -1
- package/lib/types/_ArcaneTradition.js +1 -1
- package/lib/types/_CommonnessRatedAdvantageDisadvantage.d.ts +2 -1
- package/lib/types/_CommonnessRatedAdvantageDisadvantage.js +2 -2
- package/lib/types/_DiseasePoison.js +1 -1
- package/lib/types/_Enhancements.d.ts +1 -1
- package/lib/types/_Enhancements.js +1 -1
- package/lib/types/_IdentifierGroup.d.ts +23 -0
- package/lib/types/_IdentifierGroup.js +9 -1
- package/lib/types/_Prerequisite.d.ts +1 -1
- package/lib/types/_Prerequisite.js +1 -1
- package/lib/types/_ResponsiveText.js +2 -2
- package/lib/types/equipment/item/Elixir.js +1 -1
- package/lib/types/equipment/item/HerbalAid.js +2 -2
- package/lib/types/equipment/item/HerbalPreservation.js +3 -3
- package/lib/types/equipment/item/Plant.js +2 -2
- package/lib/types/equipment/item/Poison.js +1 -1
- package/lib/types/equipment/item/_Item.js +1 -1
- package/lib/types/equipment/item/sub/BotanicRegion.js +1 -1
- package/lib/types/equipment/item/sub/SubBiome.js +1 -1
- package/lib/types/magicalActions/AnimistPower_Tribe.js +1 -1
- package/lib/types/magicalActions/MagicalDance.d.ts +2 -2
- package/lib/types/magicalActions/MagicalMelody.d.ts +2 -2
- package/lib/types/magicalActions/_MusicTradition.d.ts +2 -2
- package/lib/types/magicalActions/_MusicTradition.js +2 -2
- package/lib/types/prerequisites/PrerequisiteGroups.js +7 -9
- package/lib/types/prerequisites/single/AnySpecialAbilityOfGroupPrerequisite.js +4 -6
- package/lib/types/source/Publication.js +1 -1
- package/lib/types/specialAbility/sub/MagicalTraditionSubgroup.js +1 -1
- package/lib/types/traditionArtifacts/_shared.js +1 -1
- package/package.json +10 -12
|
@@ -46,13 +46,6 @@ const getSkillishPrerequisites = (ps, id) => {
|
|
|
46
46
|
}
|
|
47
47
|
});
|
|
48
48
|
};
|
|
49
|
-
const getSkillishBindingCost = (bindingCost, id) => {
|
|
50
|
-
if (bindingCost === undefined) {
|
|
51
|
-
return undefined;
|
|
52
|
-
}
|
|
53
|
-
return (bindingCost.Fixed.map.find(mapping => equalsSkillishIdGroup(mapping.id, id))?.bindingCost ??
|
|
54
|
-
bindingCost.Fixed.default);
|
|
55
|
-
};
|
|
56
49
|
const equalsSkillishIdGroup = (a, b) => {
|
|
57
50
|
switch (a.kind) {
|
|
58
51
|
case "Skill":
|
|
@@ -73,6 +66,13 @@ const equalsSkillishIdGroup = (a, b) => {
|
|
|
73
66
|
return assertExhaustive(a);
|
|
74
67
|
}
|
|
75
68
|
};
|
|
69
|
+
const getSkillishBindingCost = (bindingCost, id) => {
|
|
70
|
+
if (bindingCost === undefined) {
|
|
71
|
+
return undefined;
|
|
72
|
+
}
|
|
73
|
+
return (bindingCost.Fixed.map.find(mapping => equalsSkillishIdGroup(mapping.id, id))?.bindingCost ??
|
|
74
|
+
bindingCost.Fixed.default);
|
|
75
|
+
};
|
|
76
76
|
const getApValueForSkillish = (config, id, ic) => {
|
|
77
77
|
if (config === undefined) {
|
|
78
78
|
return undefined;
|
|
@@ -103,7 +103,7 @@ const getApValueForSkillish = (config, id, ic) => {
|
|
|
103
103
|
}
|
|
104
104
|
};
|
|
105
105
|
const convertSkillApplicationOrUse = (entryId, id, applicationOrUse) => ({
|
|
106
|
-
id: fromUniformCase(entryId)
|
|
106
|
+
id: `${fromUniformCase(entryId)}+${applicationOrUse.id.toFixed()}`,
|
|
107
107
|
content: {
|
|
108
108
|
parent: entryId,
|
|
109
109
|
skills: [id],
|
|
@@ -223,13 +223,13 @@ const getDerivedSelectOptions = (selectOptionCategory, entryId, database) => {
|
|
|
223
223
|
const animalShapePaths = database.getAllInstanceContainersOfEntity("AnimalShapePath");
|
|
224
224
|
const animalShapeSizes = database.getAllInstanceContainersOfEntity("AnimalShapeSize");
|
|
225
225
|
const animalShapes = database.getAllInstanceContainersOfEntity("AnimalShape");
|
|
226
|
-
const pathsWithOrderedIds = animalShapePaths.reduce((acc, { id }) =>
|
|
227
|
-
|
|
228
|
-
[id]: animalShapes
|
|
226
|
+
const pathsWithOrderedIds = animalShapePaths.reduce((acc, { id }) => {
|
|
227
|
+
acc[id] = animalShapes
|
|
229
228
|
.toSorted(on(item => database.getInstanceContainerOfEntityById("AnimalShapeSize", item.content.size)
|
|
230
229
|
?.content.volume, compareNullish(compareNumber)))
|
|
231
|
-
.map(({ id }) =>
|
|
232
|
-
|
|
230
|
+
.map(({ id: shapeId }) => shapeId);
|
|
231
|
+
return acc;
|
|
232
|
+
}, {});
|
|
233
233
|
return animalShapes.map(({ id, content }) => {
|
|
234
234
|
const path = animalShapePaths.find(({ id: pathId }) => pathId === content.path);
|
|
235
235
|
const size = animalShapeSizes.find(({ id: sizeId }) => sizeId === content.size);
|
|
@@ -247,6 +247,7 @@ const getDerivedSelectOptions = (selectOptionCategory, entryId, database) => {
|
|
|
247
247
|
prerequisite: Case("Single", Case("Activatable", {
|
|
248
248
|
id: entryId,
|
|
249
249
|
active: false,
|
|
250
|
+
// oxlint-disable-next-line typescript/no-non-null-assertion
|
|
250
251
|
options: [Case("AnimalShape", pathsWithOrderedIds[pathId][0])],
|
|
251
252
|
})),
|
|
252
253
|
}))
|
|
@@ -257,6 +258,7 @@ const getDerivedSelectOptions = (selectOptionCategory, entryId, database) => {
|
|
|
257
258
|
id: entryId,
|
|
258
259
|
active: true,
|
|
259
260
|
options: [
|
|
261
|
+
// oxlint-disable-next-line typescript/no-non-null-assertion
|
|
260
262
|
Case("AnimalShape", pathsWithOrderedIds[path.id][pathIndex - 1]),
|
|
261
263
|
],
|
|
262
264
|
})),
|
|
@@ -404,7 +406,7 @@ const getDerivedSelectOptions = (selectOptionCategory, entryId, database) => {
|
|
|
404
406
|
}));
|
|
405
407
|
case "BlessedTraditions": {
|
|
406
408
|
const getPrerequisites = (blessedTradition) => {
|
|
407
|
-
if (selectOptionCategory.BlessedTraditions.require_principles &&
|
|
409
|
+
if (selectOptionCategory.BlessedTraditions.require_principles === true &&
|
|
408
410
|
blessedTradition.associated_principles_id !== undefined) {
|
|
409
411
|
const option = database.getInstanceContainerOfEntityById("GeneralSelectOption", blessedTradition.associated_principles_id);
|
|
410
412
|
if (option === undefined || option.content.parent.kind === "TradeSecret") {
|
|
@@ -454,7 +456,7 @@ const getDerivedSelectOptions = (selectOptionCategory, entryId, database) => {
|
|
|
454
456
|
newApplications: [],
|
|
455
457
|
uses: [],
|
|
456
458
|
});
|
|
457
|
-
const specific = selectOptionCategory.Elements
|
|
459
|
+
const { specific } = selectOptionCategory.Elements;
|
|
458
460
|
if (specific) {
|
|
459
461
|
return database
|
|
460
462
|
.getAllInstanceContainersOfEntity("Element")
|
|
@@ -720,8 +722,8 @@ const getDerivedSelectOptions = (selectOptionCategory, entryId, database) => {
|
|
|
720
722
|
newApplications: [],
|
|
721
723
|
uses: [],
|
|
722
724
|
});
|
|
723
|
-
const list = selectOptionCategory.TargetCategories
|
|
724
|
-
if (list) {
|
|
725
|
+
const { list } = selectOptionCategory.TargetCategories;
|
|
726
|
+
if (list.length > 0) {
|
|
725
727
|
return database
|
|
726
728
|
.getAllInstanceContainersOfEntity("TargetCategory")
|
|
727
729
|
.filter(({ id }) => list.some(ref => ref.id === id))
|
|
@@ -737,8 +739,8 @@ const getDerivedSelectOptions = (selectOptionCategory, entryId, database) => {
|
|
|
737
739
|
};
|
|
738
740
|
const getExplicitSelectOptions = (id, database) => database
|
|
739
741
|
.getAllChildInstanceContainersForParent("GeneralSelectOption", id)
|
|
740
|
-
.map(({ id, content }) => ({
|
|
741
|
-
id: Case("General",
|
|
742
|
+
.map(({ id: optionid, content }) => ({
|
|
743
|
+
id: Case("General", optionid),
|
|
742
744
|
content: {
|
|
743
745
|
...content,
|
|
744
746
|
ap_value: wrapPlainApValue(content.ap_value),
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { assertExhaustive } from "@elyukai/utils/typeSafety";
|
|
1
2
|
export const buildAncestorBloodAdvantagesCache = database => database
|
|
2
3
|
.getAllInstanceContainersOfEntity("Advantage")
|
|
3
4
|
.filter(({ content }) => content.prerequisites?.some(p => {
|
|
@@ -8,6 +9,8 @@ export const buildAncestorBloodAdvantagesCache = database => database
|
|
|
8
9
|
return p.prerequisite.Disjunction.list.some(d => d.kind === "NoOtherAncestorBloodAdvantage");
|
|
9
10
|
case "Group":
|
|
10
11
|
return p.prerequisite.Group.list.some(g => g.kind === "NoOtherAncestorBloodAdvantage");
|
|
12
|
+
default:
|
|
13
|
+
return assertExhaustive(p.prerequisite);
|
|
11
14
|
}
|
|
12
|
-
}))
|
|
15
|
+
}) ?? false)
|
|
13
16
|
.map(({ id }) => id);
|
|
@@ -69,19 +69,18 @@ const is = (settings, type, entry, getById, traversedIds) => {
|
|
|
69
69
|
return false;
|
|
70
70
|
}
|
|
71
71
|
const newTraversedIds = [...traversedIds, entry.id];
|
|
72
|
-
return
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
}));
|
|
72
|
+
return entry.content.prerequisites.some(prerequisite => {
|
|
73
|
+
switch (prerequisite.prerequisite.kind) {
|
|
74
|
+
case "Single":
|
|
75
|
+
return isPrerequisiteFor(settings, type, prerequisite.prerequisite.Single, getById, newTraversedIds);
|
|
76
|
+
case "Disjunction":
|
|
77
|
+
return prerequisite.prerequisite.Disjunction.list.some(p => isPrerequisiteFor(settings, type, p, getById, newTraversedIds));
|
|
78
|
+
case "Group":
|
|
79
|
+
return prerequisite.prerequisite.Group.list.some(p => isPrerequisiteFor(settings, type, p, getById, newTraversedIds));
|
|
80
|
+
default:
|
|
81
|
+
return assertExhaustive(prerequisite.prerequisite);
|
|
82
|
+
}
|
|
83
|
+
});
|
|
85
84
|
};
|
|
86
85
|
const entityKeyMap = {
|
|
87
86
|
Advantage: null,
|
|
@@ -95,12 +94,12 @@ const collectIds = (entity, type, database, settings) => database
|
|
|
95
94
|
.getAllInstanceContainersOfEntity(entity)
|
|
96
95
|
.filter(entry => is(settings, type, entry, database.getInstanceContainerOfEntityById.bind(database), []))
|
|
97
96
|
.map(({ id }) => id);
|
|
98
|
-
export const buildMagicalAndBlessedAdvantagesAndDisadvantagesCache = (database, settings) =>
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
]))
|
|
106
|
-
|
|
97
|
+
export const buildMagicalAndBlessedAdvantagesAndDisadvantagesCache = (database, settings) => Object.fromEntries(Object.keys(entityKeyMap).map((entity) => [
|
|
98
|
+
entity,
|
|
99
|
+
Object.fromEntries(Object.keys(typeKeyMap).map(
|
|
100
|
+
// oxlint-disable-next-line typescript/no-duplicate-type-constituents
|
|
101
|
+
(type) => [
|
|
102
|
+
type,
|
|
103
|
+
collectIds(entity, type, database, settings),
|
|
104
|
+
])),
|
|
105
|
+
]));
|
|
@@ -1,4 +1,7 @@
|
|
|
1
|
-
const groupByAffectedSkill = (entries, prev = {}) => entries.reduce((acc, entry) => entry.content.skills.reduce((acc1, skillId) =>
|
|
1
|
+
const groupByAffectedSkill = (entries, prev = {}) => entries.reduce((acc, entry) => entry.content.skills.reduce((acc1, skillId) => {
|
|
2
|
+
acc1[skillId] = [...(acc1[skillId] ?? []), entry];
|
|
3
|
+
return acc1;
|
|
4
|
+
}, acc), prev);
|
|
2
5
|
const addGeneratedEntries = (generatedSelectOptions, prev) => Object.values(generatedSelectOptions).reduce((acc, byInstance) => Object.values(byInstance).reduce((acc1, resolvedSelectOptions) => resolvedSelectOptions.reduce((acc2, selectOption) => ({
|
|
3
6
|
newApplications: groupByAffectedSkill(selectOption.newApplications, acc2.newApplications),
|
|
4
7
|
uses: groupByAffectedSkill(selectOption.uses, acc2.uses),
|
|
@@ -113,7 +113,7 @@ export const buildDerivedTradeSecretsCache = (database, settings) => {
|
|
|
113
113
|
if (container.content.source_type.kind === "AlchemicalPoison") {
|
|
114
114
|
addTradeSecretToHerbaryCache(entity, container, container.content.source_type.AlchemicalPoison.trade_secret);
|
|
115
115
|
}
|
|
116
|
-
else if (container.content.source_type.kind
|
|
116
|
+
else if (container.content.source_type.kind === "AnimalVenom" &&
|
|
117
117
|
container.content.source_type.AnimalVenom.complexity?.kind === "Complex") {
|
|
118
118
|
addTradeSecretToHerbaryCache(entity, container, container.content.source_type.AnimalVenom.complexity.Complex);
|
|
119
119
|
}
|
package/lib/test.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import * as DB from "tsondb/schema/dsl";
|
|
2
|
-
import { NestedTranslationMap } from "./Locale.js";
|
|
3
2
|
import { cause, Cause, DiseaseTranslation, level, resistance } from "./_DiseasePoison.js";
|
|
4
3
|
import { AnimalTypeIdentifier } from "./_Identifier.js";
|
|
4
|
+
import { NestedTranslationMap } from "./Locale.js";
|
|
5
5
|
import { src } from "./source/_PublicationRef.js";
|
|
6
6
|
export const AnimalDisease = DB.Entity(import.meta.url, {
|
|
7
7
|
name: "AnimalDisease",
|
package/lib/types/Attribute.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import * as DB from "tsondb/schema/dsl";
|
|
2
|
-
import { NestedTranslationMap } from "./Locale.js";
|
|
3
2
|
import { AttributeColor } from "./_Color.js";
|
|
3
|
+
import { NestedTranslationMap } from "./Locale.js";
|
|
4
4
|
export const Attribute = DB.Entity(import.meta.url, {
|
|
5
5
|
name: "Attribute",
|
|
6
6
|
namePlural: "Attributes",
|
package/lib/types/Culture.d.ts
CHANGED
|
@@ -54,7 +54,8 @@ export declare const Culture: DB.Entity<"Culture", {
|
|
|
54
54
|
max: DB.MemberDecl<DB.Integer, true>;
|
|
55
55
|
}>>;
|
|
56
56
|
}, []>>, false>;
|
|
57
|
-
options: DB.MemberDecl<DB.Array<DB.IncludeIdentifier<[], DB.Enum<"
|
|
57
|
+
options: DB.MemberDecl<DB.Array<DB.IncludeIdentifier<[], DB.Enum<"CommonnessSelectOptionIdentifier", {
|
|
58
|
+
SkillGroup: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
58
59
|
General: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
59
60
|
Race: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
60
61
|
Skill: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
@@ -91,7 +92,8 @@ export declare const Culture: DB.Entity<"Culture", {
|
|
|
91
92
|
max: DB.MemberDecl<DB.Integer, true>;
|
|
92
93
|
}>>;
|
|
93
94
|
}, []>>, false>;
|
|
94
|
-
options: DB.MemberDecl<DB.Array<DB.IncludeIdentifier<[], DB.Enum<"
|
|
95
|
+
options: DB.MemberDecl<DB.Array<DB.IncludeIdentifier<[], DB.Enum<"CommonnessSelectOptionIdentifier", {
|
|
96
|
+
SkillGroup: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
95
97
|
General: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
96
98
|
Race: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
97
99
|
Skill: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
@@ -128,7 +130,8 @@ export declare const Culture: DB.Entity<"Culture", {
|
|
|
128
130
|
max: DB.MemberDecl<DB.Integer, true>;
|
|
129
131
|
}>>;
|
|
130
132
|
}, []>>, false>;
|
|
131
|
-
options: DB.MemberDecl<DB.Array<DB.IncludeIdentifier<[], DB.Enum<"
|
|
133
|
+
options: DB.MemberDecl<DB.Array<DB.IncludeIdentifier<[], DB.Enum<"CommonnessSelectOptionIdentifier", {
|
|
134
|
+
SkillGroup: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
132
135
|
General: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
133
136
|
Race: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
134
137
|
Skill: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
@@ -165,7 +168,8 @@ export declare const Culture: DB.Entity<"Culture", {
|
|
|
165
168
|
max: DB.MemberDecl<DB.Integer, true>;
|
|
166
169
|
}>>;
|
|
167
170
|
}, []>>, false>;
|
|
168
|
-
options: DB.MemberDecl<DB.Array<DB.IncludeIdentifier<[], DB.Enum<"
|
|
171
|
+
options: DB.MemberDecl<DB.Array<DB.IncludeIdentifier<[], DB.Enum<"CommonnessSelectOptionIdentifier", {
|
|
172
|
+
SkillGroup: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
169
173
|
General: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
170
174
|
Race: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
171
175
|
Skill: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import { assertExhaustive } from "@elyukai/utils/typeSafety";
|
|
2
2
|
import * as DB from "tsondb/schema/dsl";
|
|
3
3
|
import { fromUniformCase } from "tsondb/schema/gen";
|
|
4
|
-
import { NestedTranslationMap } from "./Locale.js";
|
|
5
4
|
import { AttributeIdentifier } from "./_Identifier.js";
|
|
6
5
|
import { ImprovementCost } from "./_ImprovementCost.js";
|
|
7
6
|
import { MathOperation } from "./_MathExpression.js";
|
|
8
7
|
import { DerivedCharacteristicPrerequisites } from "./_Prerequisite.js";
|
|
8
|
+
import { NestedTranslationMap } from "./Locale.js";
|
|
9
9
|
import { DerivedCharacteristicModifierPrerequisiteGroup } from "./prerequisites/PrerequisiteGroups.js";
|
|
10
10
|
import { src } from "./source/_PublicationRef.js";
|
|
11
11
|
export const DerivedCharacteristic = DB.Entity(import.meta.url, {
|
|
@@ -155,6 +155,8 @@ export const calculationContainsRaceBase = (base) => {
|
|
|
155
155
|
const [left, right] = fromUniformCase(base);
|
|
156
156
|
return calculationContainsRaceBase(left) || calculationContainsRaceBase(right);
|
|
157
157
|
}
|
|
158
|
+
default:
|
|
159
|
+
return assertExhaustive(base);
|
|
158
160
|
}
|
|
159
161
|
};
|
|
160
162
|
const DerivedCharacteristicModifierOperation = DB.Enum(import.meta.url, {
|
package/lib/types/Disease.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import * as DB from "tsondb/schema/dsl";
|
|
2
|
-
import { NestedTranslationMap } from "./Locale.js";
|
|
3
2
|
import { cause, DiseaseTranslation, level, resistance } from "./_DiseasePoison.js";
|
|
4
3
|
import { RecipeTradeSecret } from "./equipment/item/_Herbary.js";
|
|
4
|
+
import { NestedTranslationMap } from "./Locale.js";
|
|
5
5
|
import { src } from "./source/_PublicationRef.js";
|
|
6
6
|
export const Disease = DB.Entity(import.meta.url, {
|
|
7
7
|
name: "Disease",
|
package/lib/types/Lessons.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import * as DB from "tsondb/schema/dsl";
|
|
2
|
-
import { NestedTranslationMap } from "./Locale.js";
|
|
3
2
|
import { CurriculumIdentifier, ElementIdentifier, GuidelineIdentifier, MagicalTraditionIdentifier, PropertyIdentifier, SkillIdentifier, } from "./_Identifier.js";
|
|
4
3
|
import { CombatTechniqueIdentifier, SpellworkIdentifier } from "./_IdentifierGroup.js";
|
|
4
|
+
import { NestedTranslationMap } from "./Locale.js";
|
|
5
5
|
import { Errata } from "./source/_Erratum.js";
|
|
6
6
|
import { src } from "./source/_PublicationRef.js";
|
|
7
7
|
export const Guideline = DB.Entity(import.meta.url, {
|
package/lib/types/Locale.js
CHANGED
|
@@ -21,6 +21,7 @@ export const Locale = DB.Entity(import.meta.url, {
|
|
|
21
21
|
type: DB.IncludeIdentifier(LocaleMeasurementAdjustments),
|
|
22
22
|
}),
|
|
23
23
|
translations: DB.Optional({
|
|
24
|
+
// oxlint-disable-next-line no-warning-comments
|
|
24
25
|
// TODO: Make Required again once translations are added for all locales
|
|
25
26
|
comment: "The translations strings for the locale.",
|
|
26
27
|
// prettier-ignore
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import * as DB from "tsondb/schema/dsl";
|
|
2
|
-
import { NestedTranslationMap } from "./Locale.js";
|
|
3
2
|
import { CultureIdentifier } from "./_Identifier.js";
|
|
3
|
+
import { NestedTranslationMap } from "./Locale.js";
|
|
4
4
|
export const PatronCategory = DB.Entity(import.meta.url, {
|
|
5
5
|
name: "PatronCategory",
|
|
6
6
|
namePlural: "PatronCategories",
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import * as DB from "tsondb/schema/dsl";
|
|
2
|
-
import { NestedTranslationMap } from "./Locale.js";
|
|
3
2
|
import { PersonalityTraitIdentifier } from "./_Identifier.js";
|
|
4
3
|
import { PersonalityTraitPrerequisites } from "./_Prerequisite.js";
|
|
4
|
+
import { NestedTranslationMap } from "./Locale.js";
|
|
5
5
|
import { Errata } from "./source/_Erratum.js";
|
|
6
6
|
import { src } from "./source/_PublicationRef.js";
|
|
7
7
|
export const PersonalityTrait = DB.Entity(import.meta.url, {
|
|
@@ -675,7 +675,8 @@ export declare const Profession: DB.Entity<"Profession", {
|
|
|
675
675
|
max: DB.MemberDecl<DB.Integer, true>;
|
|
676
676
|
}>>;
|
|
677
677
|
}, []>>, false>;
|
|
678
|
-
options: DB.MemberDecl<DB.Array<DB.IncludeIdentifier<[], DB.Enum<"
|
|
678
|
+
options: DB.MemberDecl<DB.Array<DB.IncludeIdentifier<[], DB.Enum<"CommonnessSelectOptionIdentifier", {
|
|
679
|
+
SkillGroup: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
679
680
|
General: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
680
681
|
Race: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
681
682
|
Skill: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
@@ -712,7 +713,8 @@ export declare const Profession: DB.Entity<"Profession", {
|
|
|
712
713
|
max: DB.MemberDecl<DB.Integer, true>;
|
|
713
714
|
}>>;
|
|
714
715
|
}, []>>, false>;
|
|
715
|
-
options: DB.MemberDecl<DB.Array<DB.IncludeIdentifier<[], DB.Enum<"
|
|
716
|
+
options: DB.MemberDecl<DB.Array<DB.IncludeIdentifier<[], DB.Enum<"CommonnessSelectOptionIdentifier", {
|
|
717
|
+
SkillGroup: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
716
718
|
General: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
717
719
|
Race: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
718
720
|
Skill: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
@@ -749,7 +751,8 @@ export declare const Profession: DB.Entity<"Profession", {
|
|
|
749
751
|
max: DB.MemberDecl<DB.Integer, true>;
|
|
750
752
|
}>>;
|
|
751
753
|
}, []>>, false>;
|
|
752
|
-
options: DB.MemberDecl<DB.Array<DB.IncludeIdentifier<[], DB.Enum<"
|
|
754
|
+
options: DB.MemberDecl<DB.Array<DB.IncludeIdentifier<[], DB.Enum<"CommonnessSelectOptionIdentifier", {
|
|
755
|
+
SkillGroup: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
753
756
|
General: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
754
757
|
Race: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
755
758
|
Skill: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
@@ -786,7 +789,8 @@ export declare const Profession: DB.Entity<"Profession", {
|
|
|
786
789
|
max: DB.MemberDecl<DB.Integer, true>;
|
|
787
790
|
}>>;
|
|
788
791
|
}, []>>, false>;
|
|
789
|
-
options: DB.MemberDecl<DB.Array<DB.IncludeIdentifier<[], DB.Enum<"
|
|
792
|
+
options: DB.MemberDecl<DB.Array<DB.IncludeIdentifier<[], DB.Enum<"CommonnessSelectOptionIdentifier", {
|
|
793
|
+
SkillGroup: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
790
794
|
General: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
791
795
|
Race: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
792
796
|
Skill: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
@@ -1542,7 +1546,8 @@ export declare const ProfessionVersion: DB.Entity<"ProfessionVersion", {
|
|
|
1542
1546
|
max: DB.MemberDecl<DB.Integer, true>;
|
|
1543
1547
|
}>>;
|
|
1544
1548
|
}, []>>, false>;
|
|
1545
|
-
options: DB.MemberDecl<DB.Array<DB.IncludeIdentifier<[], DB.Enum<"
|
|
1549
|
+
options: DB.MemberDecl<DB.Array<DB.IncludeIdentifier<[], DB.Enum<"CommonnessSelectOptionIdentifier", {
|
|
1550
|
+
SkillGroup: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
1546
1551
|
General: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
1547
1552
|
Race: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
1548
1553
|
Skill: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
@@ -1579,7 +1584,8 @@ export declare const ProfessionVersion: DB.Entity<"ProfessionVersion", {
|
|
|
1579
1584
|
max: DB.MemberDecl<DB.Integer, true>;
|
|
1580
1585
|
}>>;
|
|
1581
1586
|
}, []>>, false>;
|
|
1582
|
-
options: DB.MemberDecl<DB.Array<DB.IncludeIdentifier<[], DB.Enum<"
|
|
1587
|
+
options: DB.MemberDecl<DB.Array<DB.IncludeIdentifier<[], DB.Enum<"CommonnessSelectOptionIdentifier", {
|
|
1588
|
+
SkillGroup: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
1583
1589
|
General: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
1584
1590
|
Race: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
1585
1591
|
Skill: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
@@ -1616,7 +1622,8 @@ export declare const ProfessionVersion: DB.Entity<"ProfessionVersion", {
|
|
|
1616
1622
|
max: DB.MemberDecl<DB.Integer, true>;
|
|
1617
1623
|
}>>;
|
|
1618
1624
|
}, []>>, false>;
|
|
1619
|
-
options: DB.MemberDecl<DB.Array<DB.IncludeIdentifier<[], DB.Enum<"
|
|
1625
|
+
options: DB.MemberDecl<DB.Array<DB.IncludeIdentifier<[], DB.Enum<"CommonnessSelectOptionIdentifier", {
|
|
1626
|
+
SkillGroup: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
1620
1627
|
General: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
1621
1628
|
Race: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
1622
1629
|
Skill: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
@@ -1653,7 +1660,8 @@ export declare const ProfessionVersion: DB.Entity<"ProfessionVersion", {
|
|
|
1653
1660
|
max: DB.MemberDecl<DB.Integer, true>;
|
|
1654
1661
|
}>>;
|
|
1655
1662
|
}, []>>, false>;
|
|
1656
|
-
options: DB.MemberDecl<DB.Array<DB.IncludeIdentifier<[], DB.Enum<"
|
|
1663
|
+
options: DB.MemberDecl<DB.Array<DB.IncludeIdentifier<[], DB.Enum<"CommonnessSelectOptionIdentifier", {
|
|
1664
|
+
SkillGroup: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
1657
1665
|
General: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
1658
1666
|
Race: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
1659
1667
|
Skill: DB.EnumCase<DB.ReferenceIdentifier>;
|
package/lib/types/Race.d.ts
CHANGED
|
@@ -150,7 +150,8 @@ export declare const Race: DB.Entity<"Race", {
|
|
|
150
150
|
max: DB.MemberDecl<DB.Integer, true>;
|
|
151
151
|
}>>;
|
|
152
152
|
}, []>>, false>;
|
|
153
|
-
options: DB.MemberDecl<DB.Array<DB.IncludeIdentifier<[], DB.Enum<"
|
|
153
|
+
options: DB.MemberDecl<DB.Array<DB.IncludeIdentifier<[], DB.Enum<"CommonnessSelectOptionIdentifier", {
|
|
154
|
+
SkillGroup: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
154
155
|
General: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
155
156
|
Race: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
156
157
|
Skill: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
@@ -187,7 +188,8 @@ export declare const Race: DB.Entity<"Race", {
|
|
|
187
188
|
max: DB.MemberDecl<DB.Integer, true>;
|
|
188
189
|
}>>;
|
|
189
190
|
}, []>>, false>;
|
|
190
|
-
options: DB.MemberDecl<DB.Array<DB.IncludeIdentifier<[], DB.Enum<"
|
|
191
|
+
options: DB.MemberDecl<DB.Array<DB.IncludeIdentifier<[], DB.Enum<"CommonnessSelectOptionIdentifier", {
|
|
192
|
+
SkillGroup: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
191
193
|
General: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
192
194
|
Race: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
193
195
|
Skill: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
@@ -224,7 +226,8 @@ export declare const Race: DB.Entity<"Race", {
|
|
|
224
226
|
max: DB.MemberDecl<DB.Integer, true>;
|
|
225
227
|
}>>;
|
|
226
228
|
}, []>>, false>;
|
|
227
|
-
options: DB.MemberDecl<DB.Array<DB.IncludeIdentifier<[], DB.Enum<"
|
|
229
|
+
options: DB.MemberDecl<DB.Array<DB.IncludeIdentifier<[], DB.Enum<"CommonnessSelectOptionIdentifier", {
|
|
230
|
+
SkillGroup: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
228
231
|
General: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
229
232
|
Race: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
230
233
|
Skill: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
@@ -261,7 +264,8 @@ export declare const Race: DB.Entity<"Race", {
|
|
|
261
264
|
max: DB.MemberDecl<DB.Integer, true>;
|
|
262
265
|
}>>;
|
|
263
266
|
}, []>>, false>;
|
|
264
|
-
options: DB.MemberDecl<DB.Array<DB.IncludeIdentifier<[], DB.Enum<"
|
|
267
|
+
options: DB.MemberDecl<DB.Array<DB.IncludeIdentifier<[], DB.Enum<"CommonnessSelectOptionIdentifier", {
|
|
268
|
+
SkillGroup: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
265
269
|
General: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
266
270
|
Race: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
267
271
|
Skill: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
@@ -488,7 +492,8 @@ export declare const RaceVariant: DB.Entity<"RaceVariant", {
|
|
|
488
492
|
max: DB.MemberDecl<DB.Integer, true>;
|
|
489
493
|
}>>;
|
|
490
494
|
}, []>>, false>;
|
|
491
|
-
options: DB.MemberDecl<DB.Array<DB.IncludeIdentifier<[], DB.Enum<"
|
|
495
|
+
options: DB.MemberDecl<DB.Array<DB.IncludeIdentifier<[], DB.Enum<"CommonnessSelectOptionIdentifier", {
|
|
496
|
+
SkillGroup: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
492
497
|
General: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
493
498
|
Race: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
494
499
|
Skill: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
@@ -525,7 +530,8 @@ export declare const RaceVariant: DB.Entity<"RaceVariant", {
|
|
|
525
530
|
max: DB.MemberDecl<DB.Integer, true>;
|
|
526
531
|
}>>;
|
|
527
532
|
}, []>>, false>;
|
|
528
|
-
options: DB.MemberDecl<DB.Array<DB.IncludeIdentifier<[], DB.Enum<"
|
|
533
|
+
options: DB.MemberDecl<DB.Array<DB.IncludeIdentifier<[], DB.Enum<"CommonnessSelectOptionIdentifier", {
|
|
534
|
+
SkillGroup: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
529
535
|
General: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
530
536
|
Race: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
531
537
|
Skill: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
@@ -562,7 +568,8 @@ export declare const RaceVariant: DB.Entity<"RaceVariant", {
|
|
|
562
568
|
max: DB.MemberDecl<DB.Integer, true>;
|
|
563
569
|
}>>;
|
|
564
570
|
}, []>>, false>;
|
|
565
|
-
options: DB.MemberDecl<DB.Array<DB.IncludeIdentifier<[], DB.Enum<"
|
|
571
|
+
options: DB.MemberDecl<DB.Array<DB.IncludeIdentifier<[], DB.Enum<"CommonnessSelectOptionIdentifier", {
|
|
572
|
+
SkillGroup: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
566
573
|
General: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
567
574
|
Race: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
568
575
|
Skill: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
@@ -599,7 +606,8 @@ export declare const RaceVariant: DB.Entity<"RaceVariant", {
|
|
|
599
606
|
max: DB.MemberDecl<DB.Integer, true>;
|
|
600
607
|
}>>;
|
|
601
608
|
}, []>>, false>;
|
|
602
|
-
options: DB.MemberDecl<DB.Array<DB.IncludeIdentifier<[], DB.Enum<"
|
|
609
|
+
options: DB.MemberDecl<DB.Array<DB.IncludeIdentifier<[], DB.Enum<"CommonnessSelectOptionIdentifier", {
|
|
610
|
+
SkillGroup: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
603
611
|
General: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
604
612
|
Race: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
605
613
|
Skill: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import * as DB from "tsondb/schema/dsl";
|
|
2
|
-
import { NestedTranslationMap } from "./Locale.js";
|
|
3
2
|
import { TargetCategoryIdentifier } from "./_Identifier.js";
|
|
3
|
+
import { NestedTranslationMap } from "./Locale.js";
|
|
4
4
|
export const TargetCategory = DB.Entity(import.meta.url, {
|
|
5
5
|
name: "TargetCategory",
|
|
6
6
|
namePlural: "TargetCategories",
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import * as DB from "tsondb/schema/dsl";
|
|
2
|
-
import { NestedTranslationMap } from "./Locale.js";
|
|
3
2
|
import { StandaloneCostMap } from "./_ActivatableSkillCost.js";
|
|
4
3
|
import { DurationUnitValue } from "./_ActivatableSkillDuration.js";
|
|
5
4
|
import { ParameterMap } from "./_ActivatableSkillParameterMap.js";
|
|
6
5
|
import { AspectIdentifier, PropertyIdentifier } from "./_Identifier.js";
|
|
7
6
|
import { VolumePointsOptionReferenceIdentifier } from "./_IdentifierGroup.js";
|
|
8
7
|
import { ResponsiveText, ResponsiveTextOptional } from "./_ResponsiveText.js";
|
|
8
|
+
import { NestedTranslationMap } from "./Locale.js";
|
|
9
9
|
const EnchantmentCost = DB.Enum(import.meta.url, {
|
|
10
10
|
name: "EnchantmentCost",
|
|
11
11
|
values: () => ({
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import * as DB from "tsondb/schema/dsl";
|
|
2
|
-
import { NestedTranslationMap } from "./Locale.js";
|
|
3
2
|
import { CeremonyIdentifier, CloseCombatTechniqueIdentifier, ElementIdentifier, LiturgicalChantIdentifier, PropertyIdentifier, RangedCombatTechniqueIdentifier, RitualIdentifier, SkillGroupIdentifier, SkillIdentifier, SpellIdentifier, TargetCategoryIdentifier, } from "./_Identifier.js";
|
|
4
3
|
import { ActivatableIdentifier, CombatTechniqueIdentifier, SkillishIdentifier, } from "./_IdentifierGroup.js";
|
|
4
|
+
import { NestedTranslationMap } from "./Locale.js";
|
|
5
5
|
export const SelectOptionCategory = DB.Enum(import.meta.url, {
|
|
6
6
|
name: "SelectOptionCategory",
|
|
7
7
|
values: () => ({
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import { isEmpty, isNotEmpty } from "@elyukai/utils/array/nonEmpty";
|
|
2
2
|
import * as DB from "tsondb/schema/dsl";
|
|
3
3
|
import { Case, fromUniformCase, } from "tsondb/schema/gen";
|
|
4
|
-
import { NestedTranslationMap } from "./Locale.js";
|
|
5
4
|
import { SelectOptionCategory } from "./_ActivatableSelectOptionCategory.js";
|
|
6
5
|
import { NewSkillApplication, SkillUse } from "./_ActivatableSkillApplicationsAndUses.js";
|
|
7
6
|
import { SelectOptionParentIdentifier } from "./_IdentifierGroup.js";
|
|
8
7
|
import { GeneralPrerequisites } from "./_Prerequisite.js";
|
|
8
|
+
import { NestedTranslationMap } from "./Locale.js";
|
|
9
9
|
import { Errata } from "./source/_Erratum.js";
|
|
10
10
|
import { optionalSrc } from "./source/_PublicationRef.js";
|
|
11
11
|
const SelectOptions = DB.TypeAlias(import.meta.url, {
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import * as DB from "tsondb/schema/dsl";
|
|
2
|
-
import { NestedTranslationMap } from "./Locale.js";
|
|
3
2
|
import { SkillIdentifier } from "./_Identifier.js";
|
|
4
3
|
import { NewSkillApplicationOrUseParentIdentifier } from "./_IdentifierGroup.js";
|
|
4
|
+
import { NestedTranslationMap } from "./Locale.js";
|
|
5
5
|
export const NewSkillApplication = DB.Entity(import.meta.url, {
|
|
6
6
|
name: "NewSkillApplication",
|
|
7
7
|
namePlural: "NewSkillApplications",
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import * as DB from "tsondb/schema/dsl";
|
|
2
|
-
import { NestedTranslationMap } from "./Locale.js";
|
|
3
|
-
import { SlowSkillCastingTimeUnit } from "./SkillModificationLevel.js";
|
|
4
2
|
import { SkillModificationLevelIdentifier } from "./_Identifier.js";
|
|
5
3
|
import { ResponsiveTextOptional } from "./_ResponsiveText.js";
|
|
4
|
+
import { NestedTranslationMap } from "./Locale.js";
|
|
5
|
+
import { SlowSkillCastingTimeUnit } from "./SkillModificationLevel.js";
|
|
6
6
|
export const CastingTime = DB.GenEnum(import.meta.url, {
|
|
7
7
|
name: "CastingTime",
|
|
8
8
|
parameters: [DB.Param("NonModifiable")],
|
|
@@ -134,7 +134,7 @@ const CustomDurationUnit = DB.TypeAlias(import.meta.url, {
|
|
|
134
134
|
comment: "A translation for a numeric value of the custom duration unit, e.g. ‘3 days’. The translation string can and should make use of the `$value` and `$style` variables. The `$style` variable can be either `interval` or `default`.",
|
|
135
135
|
type: DB.String({
|
|
136
136
|
minLength: 1,
|
|
137
|
-
pattern: /^\.input \{\$value :number\}[\n ]\.input \{\$style :string\}
|
|
137
|
+
pattern: /^\.input \{\$value :number\}[\n ]\.input \{\$style :string\}/u,
|
|
138
138
|
}),
|
|
139
139
|
}),
|
|
140
140
|
full: DB.Required({
|
|
@@ -151,7 +151,7 @@ const CustomDurationUnit = DB.TypeAlias(import.meta.url, {
|
|
|
151
151
|
comment: "A translation for a numeric value of the custom duration unit for use in small spaces, e.g. ‘3 d.’. The translation string can and should make use of the `$value` and `$style` variables. The `$style` variable can be either `interval` or `default`.",
|
|
152
152
|
type: DB.String({
|
|
153
153
|
minLength: 1,
|
|
154
|
-
pattern: /^\.input \{\$value :number\}[\n ]\.input \{\$style :string\}
|
|
154
|
+
pattern: /^\.input \{\$value :number\}[\n ]\.input \{\$style :string\}/u,
|
|
155
155
|
}),
|
|
156
156
|
}),
|
|
157
157
|
compressed: DB.Required({
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import * as DB from "tsondb/schema/dsl";
|
|
2
|
-
import { NestedTranslationMap } from "./Locale.js";
|
|
3
2
|
import { TargetCategoryIdentifier } from "./_Identifier.js";
|
|
3
|
+
import { NestedTranslationMap } from "./Locale.js";
|
|
4
4
|
export const AffectedTargetCategories = DB.TypeAlias(import.meta.url, {
|
|
5
5
|
name: "AffectedTargetCategories",
|
|
6
6
|
comment: `The target category – the kind of creature or object – the skill affects.
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import * as DB from "tsondb/schema/dsl";
|
|
2
|
-
import { NestedTranslationMap } from "./Locale.js";
|
|
3
2
|
import { ArcaneTraditionPrerequisites } from "./_Prerequisite.js";
|
|
3
|
+
import { NestedTranslationMap } from "./Locale.js";
|
|
4
4
|
export const ArcaneTraditionType = (translationName) => () => DB.Object({
|
|
5
5
|
prerequisites: DB.Required({
|
|
6
6
|
type: DB.IncludeIdentifier(ArcaneTraditionPrerequisites),
|