@optolith/database-schema 0.99.0 → 0.101.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +40 -0
- package/gen/types.d.ts +628 -123
- package/lib/main.js +1 -0
- package/lib/types/Culture.d.ts +312 -152
- package/lib/types/Locale.d.ts +8 -1
- package/lib/types/Locale.js +5 -0
- package/lib/types/Profession.d.ts +807 -466
- package/lib/types/Profession.js +20 -0
- package/lib/types/Race.d.ts +624 -304
- package/lib/types/_ActivatableAdvanced.d.ts +28 -0
- package/lib/types/_ActivatableAdvanced.js +57 -1
- package/lib/types/_ActivatableCombat.d.ts +45 -41
- package/lib/types/_ActivatableCombat.js +71 -77
- package/lib/types/_CommonnessRatedAdvantageDisadvantage.d.ts +80 -2
- package/lib/types/_CommonnessRatedAdvantageDisadvantage.js +58 -3
- package/lib/types/_Identifier.d.ts +1 -0
- package/lib/types/_Identifier.js +2 -0
- package/lib/types/_IdentifierGroup.d.ts +1 -0
- package/lib/types/_IdentifierGroup.js +2 -1
- package/lib/types/equipment/EquipmentPackage.d.ts +1 -0
- package/lib/types/equipment/item/ItemComponent.d.ts +128 -0
- package/lib/types/equipment/item/ItemComponent.js +316 -0
- package/lib/types/index.d.ts +1 -0
- package/lib/types/index.js +1 -0
- package/lib/types/prerequisites/PrerequisiteGroups.d.ts +80 -5
- package/lib/types/prerequisites/PrerequisiteGroups.js +5 -1
- package/lib/types/prerequisites/single/RatedMinimumNumberPrerequisite.js +2 -2
- package/lib/types/prerequisites/single/RatedMinimumNumberPrerequisiteForProfession.d.ts +150 -0
- package/lib/types/prerequisites/single/RatedMinimumNumberPrerequisiteForProfession.js +53 -0
- package/lib/types/specialAbility/AdvancedCombatSpecialAbility.d.ts +42 -41
- package/lib/types/specialAbility/BrawlingSpecialAbility.d.ts +42 -41
- package/lib/types/specialAbility/CombatSpecialAbility.d.ts +42 -41
- package/lib/types/specialAbility/CombatStyleSpecialAbility.d.ts +70 -41
- package/lib/types/specialAbility/CommandSpecialAbility.d.ts +42 -41
- package/lib/types/specialAbility/LiturgicalStyleSpecialAbility.d.ts +28 -0
- package/lib/types/specialAbility/MagicStyleSpecialAbility.d.ts +28 -0
- package/lib/types/specialAbility/MagicalTradition.d.ts +1 -0
- package/lib/types/specialAbility/MagicalTradition.js +5 -1
- package/lib/types/specialAbility/SkillStyleSpecialAbility.d.ts +28 -0
- package/package.json +2 -2
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { sortObjectKeys } from "@elyukai/utils/object";
|
|
2
2
|
import * as DB from "tsondb/schema/dsl";
|
|
3
|
-
import { AdvancedCombatSpecialAbilityIdentifier, AdvancedKarmaSpecialAbilityIdentifier, AdvancedMagicalSpecialAbilityIdentifier, AdvancedSkillSpecialAbilityIdentifier, AdvantageIdentifier, AmmunitionIdentifier, AncestorGlyphIdentifier, AnimalCareIdentifier, AnimalIdentifier, AnimalShapeIdentifier, AnimalShapeSizeIdentifier, AnimistPowerIdentifier, ArcaneBardTraditionIdentifier, ArcaneDancerTraditionIdentifier, ArcaneOrbEnchantmentIdentifier, ArmorAccessoryIdentifier, ArmorIdentifier, AspectIdentifier, AttireEnchantmentIdentifier, AttributeIdentifier, BandageOrRemedyIdentifier, BannzeichenIdentifier, BeutelzauberIdentifier, BlessedTraditionIdentifier, BlessingIdentifier, BookIdentifier, BowlEnchantmentIdentifier, BrawlingSpecialAbilityIdentifier, CantripIdentifier, CauldronEnchantmentIdentifier, CeremonialItemIdentifier, CeremonialItemSpecialAbilityIdentifier, CeremonyIdentifier, ChronicleEnchantmentIdentifier, CloseCombatTechniqueIdentifier, ClothesIdentifier, ClothingPackageIdentifier, CombatSpecialAbilityIdentifier, CombatStyleSpecialAbilityIdentifier, CommandSpecialAbilityIdentifier, ContainerIdentifier, CultureIdentifier, CurseIdentifier, DaggerRitualIdentifier, DisadvantageIdentifier, DiseaseIdentifier, DominationRitualIdentifier, ElementIdentifier, ElixirIdentifier, ElvenMagicalSongIdentifier, EnhancementIdentifier, EquipmentOfBlessedOnesIdentifier, FamiliarSpecialAbilityIdentifier, FatePointSexSpecialAbilityIdentifier, FatePointSpecialAbilityIdentifier, FocusRuleIdentifier, FoolsHatEnchantmentIdentifier, GemOrPreciousStoneIdentifier, GeneralIdentifier, GeneralSpecialAbilityIdentifier, GeodeRitualIdentifier, GoblinRitualIdentifier, HaubenzauberIdentifier, HauerkettenzauberIdentifier, IlluminationLightSourceIdentifier, IlluminationRefillOrSupplyIdentifier, InstrumentEnchantmentIdentifier, JesterTrickIdentifier, JewelryIdentifier, KarmaSpecialAbilityIdentifier, KeulenzauberIdentifier, KrallenkettenzauberIdentifier, KristallkugelzauberIdentifier, LaboratoryIdentifier, LanguageIdentifier, LiebesspielzeugIdentifier, LiturgicalChantIdentifier, LiturgicalStyleSpecialAbilityIdentifier, LuxuryGoodIdentifier, LycantropicGiftIdentifier, MagicalArtifactIdentifier, MagicalDanceIdentifier, MagicalMelodyIdentifier, MagicalRuneIdentifier, MagicalSignIdentifier, MagicalSpecialAbilityIdentifier, MagicalTraditionIdentifier, MagicStyleSpecialAbilityIdentifier, MusicalInstrumentIdentifier, NewspaperIdentifier, OptionalRuleIdentifier, OrbEnchantmentIdentifier, OrienteeringAidIdentifier, PactGiftIdentifier, PatronIdentifier, PoisonIdentifier, PropertyIdentifier, ProtectiveWardingCircleSpecialAbilityIdentifier, RaceIdentifier, RangedCombatTechniqueIdentifier, RingEnchantmentIdentifier, RitualIdentifier, RopeOrChainIdentifier, SchweinetrommelzauberIdentifier, ScriptIdentifier, SermonIdentifier, SexPracticeIdentifier, SexSpecialAbilityIdentifier, SickleRitualIdentifier, SikaryanDrainSpecialAbilityIdentifier, SkillApplicationIdentifier, SkillGroupIdentifier, SkillIdentifier, SkillStyleSpecialAbilityIdentifier, SpellIdentifier, SpellSwordEnchantmentIdentifier, StaffEnchantmentIdentifier, StationeryIdentifier, TargetCategoryIdentifier, ThievesToolIdentifier, ToolOfTheTradeIdentifier, ToyEnchantmentIdentifier, TradeSecretIdentifier, TravelGearOrToolIdentifier, TrinkhornzauberIdentifier, VampiricGiftIdentifier, VehicleIdentifier, VisionIdentifier, WandEnchantmentIdentifier, WeaponAccessoryIdentifier, WeaponEnchantmentIdentifier, WeaponIdentifier, WorkingSupernaturalCreatureIdentifier, ZibiljaRitualIdentifier, } from "./_Identifier.js";
|
|
3
|
+
import { AdvancedCombatSpecialAbilityIdentifier, AdvancedKarmaSpecialAbilityIdentifier, AdvancedMagicalSpecialAbilityIdentifier, AdvancedSkillSpecialAbilityIdentifier, AdvantageIdentifier, AmmunitionIdentifier, AncestorGlyphIdentifier, AnimalCareIdentifier, AnimalIdentifier, AnimalShapeIdentifier, AnimalShapeSizeIdentifier, AnimistPowerIdentifier, ArcaneBardTraditionIdentifier, ArcaneDancerTraditionIdentifier, ArcaneOrbEnchantmentIdentifier, ArmorAccessoryIdentifier, ArmorIdentifier, AspectIdentifier, AttireEnchantmentIdentifier, AttributeIdentifier, BandageOrRemedyIdentifier, BannzeichenIdentifier, BeutelzauberIdentifier, BlessedTraditionIdentifier, BlessingIdentifier, BookIdentifier, BowlEnchantmentIdentifier, BrawlingSpecialAbilityIdentifier, CantripIdentifier, CauldronEnchantmentIdentifier, CeremonialItemIdentifier, CeremonialItemSpecialAbilityIdentifier, CeremonyIdentifier, ChronicleEnchantmentIdentifier, CloseCombatTechniqueIdentifier, ClothesIdentifier, ClothingPackageIdentifier, CombatSpecialAbilityIdentifier, CombatStyleSpecialAbilityIdentifier, CommandSpecialAbilityIdentifier, ContainerIdentifier, CultureIdentifier, CurseIdentifier, DaggerRitualIdentifier, DisadvantageIdentifier, DiseaseIdentifier, DominationRitualIdentifier, ElementIdentifier, ElixirIdentifier, ElvenMagicalSongIdentifier, EnhancementIdentifier, EquipmentOfBlessedOnesIdentifier, FamiliarSpecialAbilityIdentifier, FatePointSexSpecialAbilityIdentifier, FatePointSpecialAbilityIdentifier, FocusRuleIdentifier, FoolsHatEnchantmentIdentifier, GemOrPreciousStoneIdentifier, GeneralIdentifier, GeneralSpecialAbilityIdentifier, GeodeRitualIdentifier, GoblinRitualIdentifier, HaubenzauberIdentifier, HauerkettenzauberIdentifier, IlluminationLightSourceIdentifier, IlluminationRefillOrSupplyIdentifier, InstrumentEnchantmentIdentifier, ItemComponentIdentifier, JesterTrickIdentifier, JewelryIdentifier, KarmaSpecialAbilityIdentifier, KeulenzauberIdentifier, KrallenkettenzauberIdentifier, KristallkugelzauberIdentifier, LaboratoryIdentifier, LanguageIdentifier, LiebesspielzeugIdentifier, LiturgicalChantIdentifier, LiturgicalStyleSpecialAbilityIdentifier, LuxuryGoodIdentifier, LycantropicGiftIdentifier, MagicalArtifactIdentifier, MagicalDanceIdentifier, MagicalMelodyIdentifier, MagicalRuneIdentifier, MagicalSignIdentifier, MagicalSpecialAbilityIdentifier, MagicalTraditionIdentifier, MagicStyleSpecialAbilityIdentifier, MusicalInstrumentIdentifier, NewspaperIdentifier, OptionalRuleIdentifier, OrbEnchantmentIdentifier, OrienteeringAidIdentifier, PactGiftIdentifier, PatronIdentifier, PoisonIdentifier, PropertyIdentifier, ProtectiveWardingCircleSpecialAbilityIdentifier, RaceIdentifier, RangedCombatTechniqueIdentifier, RingEnchantmentIdentifier, RitualIdentifier, RopeOrChainIdentifier, SchweinetrommelzauberIdentifier, ScriptIdentifier, SermonIdentifier, SexPracticeIdentifier, SexSpecialAbilityIdentifier, SickleRitualIdentifier, SikaryanDrainSpecialAbilityIdentifier, SkillApplicationIdentifier, SkillGroupIdentifier, SkillIdentifier, SkillStyleSpecialAbilityIdentifier, SpellIdentifier, SpellSwordEnchantmentIdentifier, StaffEnchantmentIdentifier, StationeryIdentifier, TargetCategoryIdentifier, ThievesToolIdentifier, ToolOfTheTradeIdentifier, ToyEnchantmentIdentifier, TradeSecretIdentifier, TravelGearOrToolIdentifier, TrinkhornzauberIdentifier, VampiricGiftIdentifier, VehicleIdentifier, VisionIdentifier, WandEnchantmentIdentifier, WeaponAccessoryIdentifier, WeaponEnchantmentIdentifier, WeaponIdentifier, WorkingSupernaturalCreatureIdentifier, ZibiljaRitualIdentifier, } from "./_Identifier.js";
|
|
4
4
|
export const ActivatableIdentifier = DB.Enum(import.meta.url, {
|
|
5
5
|
name: "ActivatableIdentifier",
|
|
6
6
|
values: () => ({
|
|
@@ -322,6 +322,7 @@ export const EquipmentIdentifier = DB.Enum(import.meta.url, {
|
|
|
322
322
|
GemOrPreciousStone: DB.EnumCase({ type: GemOrPreciousStoneIdentifier() }),
|
|
323
323
|
IlluminationLightSource: DB.EnumCase({ type: IlluminationLightSourceIdentifier() }),
|
|
324
324
|
IlluminationRefillOrSupply: DB.EnumCase({ type: IlluminationRefillOrSupplyIdentifier() }),
|
|
325
|
+
ItemComponent: DB.EnumCase({ type: ItemComponentIdentifier() }),
|
|
325
326
|
Jewelry: DB.EnumCase({ type: JewelryIdentifier() }),
|
|
326
327
|
Laboratory: DB.EnumCase({ type: LaboratoryIdentifier() }),
|
|
327
328
|
Liebesspielzeug: DB.EnumCase({ type: LiebesspielzeugIdentifier() }),
|
|
@@ -18,6 +18,7 @@ export declare const EquipmentPackage: DB.Entity<"EquipmentPackage", {
|
|
|
18
18
|
GemOrPreciousStone: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
19
19
|
IlluminationLightSource: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
20
20
|
IlluminationRefillOrSupply: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
21
|
+
ItemComponent: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
21
22
|
Jewelry: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
22
23
|
Laboratory: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
23
24
|
Liebesspielzeug: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
@@ -0,0 +1,128 @@
|
|
|
1
|
+
import * as DB from "tsondb/schema/dsl";
|
|
2
|
+
export declare const ItemComponent: DB.Entity<"ItemComponent", {
|
|
3
|
+
options: DB.MemberDecl<DB.ChildEntities<DB.Entity<"ItemComponentOption", {
|
|
4
|
+
parent: DB.MemberDecl<DB.ReferenceIdentifier, true>;
|
|
5
|
+
cost: DB.MemberDecl<DB.Float, true>;
|
|
6
|
+
translations: DB.MemberDecl<DB.NestedEntityMap<"ItemComponentOptionTranslation", {
|
|
7
|
+
label: DB.MemberDecl<DB.String, true>;
|
|
8
|
+
}>, true>;
|
|
9
|
+
}, "parent">>, true>;
|
|
10
|
+
cost: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"ItemComponentCost", {
|
|
11
|
+
Fixed: DB.EnumCase<DB.IncludeIdentifier<[], DB.TypeAlias<"FixedCost", DB.Object<{
|
|
12
|
+
value: DB.MemberDecl<DB.Float, true>;
|
|
13
|
+
translations: DB.MemberDecl<DB.NestedEntityMap<"FixedCostTranslation", {
|
|
14
|
+
wrap_in_text: DB.MemberDecl<DB.String, true>;
|
|
15
|
+
}>, false>;
|
|
16
|
+
}>, []>>>;
|
|
17
|
+
ByCombatTechnique: DB.EnumCase<DB.IncludeIdentifier<[], DB.TypeAlias<"ItemComponentCostByCombatTechnique", DB.Object<{
|
|
18
|
+
close: DB.MemberDecl<DB.NestedEntityMap<string, {
|
|
19
|
+
value: DB.MemberDecl<DB.Float, true>;
|
|
20
|
+
translations: DB.MemberDecl<DB.NestedEntityMap<"ItemComponentCostByCloseCombatTechniqueTranslation", {
|
|
21
|
+
label: DB.MemberDecl<DB.String, true>;
|
|
22
|
+
}>, false>;
|
|
23
|
+
}>, false>;
|
|
24
|
+
ranged: DB.MemberDecl<DB.NestedEntityMap<string, {
|
|
25
|
+
value: DB.MemberDecl<DB.Float, true>;
|
|
26
|
+
translations: DB.MemberDecl<DB.NestedEntityMap<"ItemComponentCostByRangedCombatTechniqueTranslation", {
|
|
27
|
+
label: DB.MemberDecl<DB.String, true>;
|
|
28
|
+
}>, false>;
|
|
29
|
+
}>, false>;
|
|
30
|
+
}>, []>>>;
|
|
31
|
+
Factor: DB.EnumCase<DB.Float>;
|
|
32
|
+
DerivedFromOption: DB.EnumCase<null>;
|
|
33
|
+
}, []>>, true>;
|
|
34
|
+
weight: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"Weight", DB.Float, []>>, false>;
|
|
35
|
+
applicableItems: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"ApplicableItems", {
|
|
36
|
+
MeleeWeapon: DB.EnumCase<DB.IncludeIdentifier<[], DB.TypeAlias<"ApplicableMeleeWeapons", DB.Object<{
|
|
37
|
+
weapons: DB.MemberDecl<DB.Array<DB.ReferenceIdentifier>, false>;
|
|
38
|
+
combatTechniques: DB.MemberDecl<DB.Array<DB.ReferenceIdentifier>, false>;
|
|
39
|
+
category: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"ApplicableMeleeWeaponCategory", {
|
|
40
|
+
HasMetalSurface: DB.EnumCase<null>;
|
|
41
|
+
HasMetalBladeOrTip: DB.EnumCase<null>;
|
|
42
|
+
}, []>>, false>;
|
|
43
|
+
}>, []>>>;
|
|
44
|
+
RangedWeapon: DB.EnumCase<DB.IncludeIdentifier<[], DB.TypeAlias<"ApplicableRangedWeapons", DB.Object<{
|
|
45
|
+
weapons: DB.MemberDecl<DB.Array<DB.ReferenceIdentifier>, false>;
|
|
46
|
+
combatTechniques: DB.MemberDecl<DB.Array<DB.ReferenceIdentifier>, false>;
|
|
47
|
+
minimumReloadTime: DB.MemberDecl<DB.Integer, false>;
|
|
48
|
+
usesBullets: DB.MemberDecl<DB.Boolean, false>;
|
|
49
|
+
}>, []>>>;
|
|
50
|
+
Ammunition: DB.EnumCase<DB.IncludeIdentifier<[], DB.TypeAlias<"ApplicableAmmunition", DB.Object<{
|
|
51
|
+
ammunition: DB.MemberDecl<DB.Array<DB.ReferenceIdentifier>, false>;
|
|
52
|
+
invertAmmunition: DB.MemberDecl<DB.Boolean, false>;
|
|
53
|
+
category: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"ApplicableAmmunitionCategory", {
|
|
54
|
+
ArrowOrBolt: DB.EnumCase<null>;
|
|
55
|
+
}, []>>, false>;
|
|
56
|
+
}>, []>>>;
|
|
57
|
+
Armor: DB.EnumCase<DB.IncludeIdentifier<[], DB.TypeAlias<"ApplicableArmor", DB.Object<{
|
|
58
|
+
armor: DB.MemberDecl<DB.Array<DB.ReferenceIdentifier>, false>;
|
|
59
|
+
category: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"ApplicableArmorCategory", {
|
|
60
|
+
Metal: DB.EnumCase<null>;
|
|
61
|
+
}, []>>, false>;
|
|
62
|
+
}>, []>>>;
|
|
63
|
+
}, []>>, true>;
|
|
64
|
+
incompatibleWith: DB.MemberDecl<DB.Array<DB.ReferenceIdentifier>, false>;
|
|
65
|
+
rules: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"ItemComponentRules", DB.Object<{
|
|
66
|
+
baseItemModifications: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"ItemComponentBaseItemModifications", DB.Object<{
|
|
67
|
+
damagePoints: DB.MemberDecl<DB.Integer, false>;
|
|
68
|
+
attackModifier: DB.MemberDecl<DB.Integer, false>;
|
|
69
|
+
parryModifier: DB.MemberDecl<DB.Integer, false>;
|
|
70
|
+
protection: DB.MemberDecl<DB.Integer, false>;
|
|
71
|
+
encumbrance: DB.MemberDecl<DB.Integer, false>;
|
|
72
|
+
range: DB.MemberDecl<DB.Integer, false>;
|
|
73
|
+
reloadTime: DB.MemberDecl<DB.Integer, false>;
|
|
74
|
+
weight: DB.MemberDecl<DB.Float, false>;
|
|
75
|
+
breakingPointRating: DB.MemberDecl<DB.Integer, false>;
|
|
76
|
+
}>, []>>, false>;
|
|
77
|
+
}>, []>>, false>;
|
|
78
|
+
src: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"PublicationRefs", DB.Array<DB.IncludeIdentifier<[], DB.TypeAlias<"PublicationRef", DB.Object<{
|
|
79
|
+
id: DB.MemberDecl<DB.ReferenceIdentifier, true>;
|
|
80
|
+
occurrences: DB.MemberDecl<DB.NestedEntityMap<string, {
|
|
81
|
+
initial: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"InitialOccurrence", DB.Object<{
|
|
82
|
+
printing: DB.MemberDecl<DB.Integer, false>;
|
|
83
|
+
pages: DB.MemberDecl<DB.Array<DB.IncludeIdentifier<[], DB.TypeAlias<"PageRange", DB.Object<{
|
|
84
|
+
first_page: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"Page", {
|
|
85
|
+
InsideCoverFront: DB.EnumCase<null>;
|
|
86
|
+
InsideCoverBack: DB.EnumCase<null>;
|
|
87
|
+
Numbered: DB.EnumCase<DB.Integer>;
|
|
88
|
+
}, []>>, true>;
|
|
89
|
+
last_page: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"Page", {
|
|
90
|
+
InsideCoverFront: DB.EnumCase<null>;
|
|
91
|
+
InsideCoverBack: DB.EnumCase<null>;
|
|
92
|
+
Numbered: DB.EnumCase<DB.Integer>;
|
|
93
|
+
}, []>>, false>;
|
|
94
|
+
}>, []>>>, true>;
|
|
95
|
+
isRemoved: DB.MemberDecl<DB.Boolean, false>;
|
|
96
|
+
}>, []>>, true>;
|
|
97
|
+
revisions: DB.MemberDecl<DB.Array<DB.IncludeIdentifier<[], DB.Enum<"Revision", {
|
|
98
|
+
Since: DB.EnumCase<DB.IncludeIdentifier<[], DB.TypeAlias<"Since", DB.Object<{
|
|
99
|
+
printing: DB.MemberDecl<DB.Integer, true>;
|
|
100
|
+
pages: DB.MemberDecl<DB.Array<DB.IncludeIdentifier<[], DB.TypeAlias<"PageRange", DB.Object<{
|
|
101
|
+
first_page: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"Page", {
|
|
102
|
+
InsideCoverFront: DB.EnumCase<null>;
|
|
103
|
+
InsideCoverBack: DB.EnumCase<null>;
|
|
104
|
+
Numbered: DB.EnumCase<DB.Integer>;
|
|
105
|
+
}, []>>, true>;
|
|
106
|
+
last_page: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"Page", {
|
|
107
|
+
InsideCoverFront: DB.EnumCase<null>;
|
|
108
|
+
InsideCoverBack: DB.EnumCase<null>;
|
|
109
|
+
Numbered: DB.EnumCase<DB.Integer>;
|
|
110
|
+
}, []>>, false>;
|
|
111
|
+
}>, []>>>, true>;
|
|
112
|
+
}>, []>>>;
|
|
113
|
+
Deprecated: DB.EnumCase<DB.IncludeIdentifier<[], DB.TypeAlias<"Deprecation", DB.Object<{
|
|
114
|
+
printing: DB.MemberDecl<DB.Integer, true>;
|
|
115
|
+
}>, []>>>;
|
|
116
|
+
}, []>>>, false>;
|
|
117
|
+
}>, true>;
|
|
118
|
+
}>, []>>>, []>>, true>;
|
|
119
|
+
translations: DB.MemberDecl<DB.NestedEntityMap<"ItemComponentTranslation", {
|
|
120
|
+
name: DB.MemberDecl<DB.String, true>;
|
|
121
|
+
rules: DB.MemberDecl<DB.String, false>;
|
|
122
|
+
applicableItems: DB.MemberDecl<DB.String, false>;
|
|
123
|
+
errata: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"Errata", DB.Array<DB.IncludeIdentifier<[], DB.TypeAlias<"Erratum", DB.Object<{
|
|
124
|
+
date: DB.MemberDecl<DB.Date, true>;
|
|
125
|
+
description: DB.MemberDecl<DB.String, true>;
|
|
126
|
+
}>, []>>>, []>>, false>;
|
|
127
|
+
}>, true>;
|
|
128
|
+
}, undefined>;
|
|
@@ -0,0 +1,316 @@
|
|
|
1
|
+
import * as DB from "tsondb/schema/dsl";
|
|
2
|
+
import { AmmunitionIdentifier, ArmorIdentifier, CloseCombatTechniqueIdentifier, ItemComponentIdentifier, RangedCombatTechniqueIdentifier, WeaponIdentifier, } from "../../_Identifier.js";
|
|
3
|
+
import { CloseCombatTechnique, RangedCombatTechnique } from "../../CombatTechnique.js";
|
|
4
|
+
import { NestedTranslationMap } from "../../Locale.js";
|
|
5
|
+
import { Errata } from "../../source/_Erratum.js";
|
|
6
|
+
import { src } from "../../source/_PublicationRef.js";
|
|
7
|
+
import { FixedCost, Weight } from "./_Item.js";
|
|
8
|
+
export const ItemComponent = DB.Entity(import.meta.url, {
|
|
9
|
+
name: "ItemComponent",
|
|
10
|
+
namePlural: "ItemComponents",
|
|
11
|
+
type: () => DB.Object({
|
|
12
|
+
options: DB.Required({
|
|
13
|
+
type: DB.ChildEntities(ItemComponentOption),
|
|
14
|
+
}),
|
|
15
|
+
cost: DB.Required({
|
|
16
|
+
comment: ItemComponentCost.comment,
|
|
17
|
+
type: DB.IncludeIdentifier(ItemComponentCost),
|
|
18
|
+
}),
|
|
19
|
+
weight: DB.Optional({
|
|
20
|
+
comment: "The weight in kg.",
|
|
21
|
+
type: DB.IncludeIdentifier(Weight),
|
|
22
|
+
}),
|
|
23
|
+
applicableItems: DB.Required({
|
|
24
|
+
comment: "The items the component can be applied to.",
|
|
25
|
+
type: DB.IncludeIdentifier(ApplicableItems),
|
|
26
|
+
}),
|
|
27
|
+
incompatibleWith: DB.Optional({
|
|
28
|
+
comment: "Other components this component is not compatible with.",
|
|
29
|
+
type: DB.Array(ItemComponentIdentifier(), {
|
|
30
|
+
minItems: 1,
|
|
31
|
+
uniqueItems: true,
|
|
32
|
+
}),
|
|
33
|
+
}),
|
|
34
|
+
rules: DB.Optional({
|
|
35
|
+
comment: "Special rules for the item component.",
|
|
36
|
+
type: DB.IncludeIdentifier(ItemComponentRules),
|
|
37
|
+
}),
|
|
38
|
+
src,
|
|
39
|
+
translations: NestedTranslationMap(DB.Required, "ItemComponent", DB.Object({
|
|
40
|
+
name: DB.Required({
|
|
41
|
+
comment: "The item’s name.",
|
|
42
|
+
type: DB.String({ minLength: 1 }),
|
|
43
|
+
}),
|
|
44
|
+
rules: DB.Optional({
|
|
45
|
+
comment: "Special rules text.",
|
|
46
|
+
type: DB.String({ minLength: 1, markdown: "block" }),
|
|
47
|
+
}),
|
|
48
|
+
applicableItems: DB.Optional({
|
|
49
|
+
comment: "The items the component can be applied to. Used if the generated text is not sufficient.",
|
|
50
|
+
type: DB.String({ minLength: 1, markdown: "inline" }),
|
|
51
|
+
}),
|
|
52
|
+
errata: DB.Optional({
|
|
53
|
+
type: DB.IncludeIdentifier(Errata),
|
|
54
|
+
}),
|
|
55
|
+
})),
|
|
56
|
+
}),
|
|
57
|
+
instanceDisplayName: {},
|
|
58
|
+
uniqueConstraints: [
|
|
59
|
+
{
|
|
60
|
+
entityMapKeyPath: "translations",
|
|
61
|
+
keyPathInEntityMap: "name",
|
|
62
|
+
},
|
|
63
|
+
],
|
|
64
|
+
});
|
|
65
|
+
const ItemComponentOption = DB.Entity(import.meta.url, {
|
|
66
|
+
name: "ItemComponentOption",
|
|
67
|
+
namePlural: "ItemComponentOptions",
|
|
68
|
+
type: () => DB.Object({
|
|
69
|
+
parent: DB.Required({
|
|
70
|
+
comment: "The item component this option belongs to.",
|
|
71
|
+
type: ItemComponentIdentifier(),
|
|
72
|
+
}),
|
|
73
|
+
cost: DB.Required({
|
|
74
|
+
comment: "The cost in silverthalers.",
|
|
75
|
+
type: DB.Float({ minimum: { value: 0, isExclusive: true } }),
|
|
76
|
+
}),
|
|
77
|
+
translations: NestedTranslationMap(DB.Required, "ItemComponentOption", DB.Object({
|
|
78
|
+
label: DB.Required({
|
|
79
|
+
comment: "The label for the option.",
|
|
80
|
+
type: DB.String({ minLength: 1 }),
|
|
81
|
+
}),
|
|
82
|
+
})),
|
|
83
|
+
}),
|
|
84
|
+
instanceDisplayName: { pathInLocaleMap: "label" },
|
|
85
|
+
parentReferenceKey: "parent",
|
|
86
|
+
});
|
|
87
|
+
const ItemComponentCost = DB.Enum(import.meta.url, {
|
|
88
|
+
name: "ItemComponentCost",
|
|
89
|
+
comment: "The cost in silverthalers.",
|
|
90
|
+
values: () => ({
|
|
91
|
+
Fixed: DB.EnumCase({
|
|
92
|
+
comment: "The cost is a fixed amount of silverthalers.",
|
|
93
|
+
type: DB.IncludeIdentifier(FixedCost),
|
|
94
|
+
}),
|
|
95
|
+
ByCombatTechnique: DB.EnumCase({
|
|
96
|
+
comment: "The cost depends on the combat technique of the item it is applied to.",
|
|
97
|
+
type: DB.IncludeIdentifier(ItemComponentCostByCombatTechnique),
|
|
98
|
+
}),
|
|
99
|
+
Factor: DB.EnumCase({
|
|
100
|
+
comment: "The cost is a percentage of the cost of the item it is applied to.",
|
|
101
|
+
type: DB.Float({ minimum: { value: 0, isExclusive: true } }),
|
|
102
|
+
}),
|
|
103
|
+
DerivedFromOption: DB.EnumCase({
|
|
104
|
+
comment: "The cost depends on the selected option.",
|
|
105
|
+
type: null,
|
|
106
|
+
}),
|
|
107
|
+
}),
|
|
108
|
+
});
|
|
109
|
+
const ItemComponentCostByCombatTechnique = DB.TypeAlias(import.meta.url, {
|
|
110
|
+
name: "ItemComponentCostByCombatTechnique",
|
|
111
|
+
type: () => DB.Object({
|
|
112
|
+
close: DB.Optional({
|
|
113
|
+
comment: "The cost in silverthalers for close combat techniques.",
|
|
114
|
+
type: DB.NestedEntityMap({
|
|
115
|
+
name: "ItemComponentCostByCloseCombatTechnique",
|
|
116
|
+
namePlural: "ItemComponentCostsByCloseCombatTechnique",
|
|
117
|
+
secondaryEntity: CloseCombatTechnique,
|
|
118
|
+
type: DB.Object({
|
|
119
|
+
value: DB.Required({
|
|
120
|
+
comment: "The cost in silverthalers for the close combat technique.",
|
|
121
|
+
type: DB.Float({ minimum: { value: 0, isExclusive: true } }),
|
|
122
|
+
}),
|
|
123
|
+
translations: NestedTranslationMap(DB.Optional, "ItemComponentCostByCloseCombatTechnique", DB.IncludeIdentifier(ItemComponentCostByCombatTechniqueTranslation)),
|
|
124
|
+
}),
|
|
125
|
+
}),
|
|
126
|
+
}),
|
|
127
|
+
ranged: DB.Optional({
|
|
128
|
+
comment: "The cost in silverthalers for ranged combat techniques.",
|
|
129
|
+
type: DB.NestedEntityMap({
|
|
130
|
+
name: "ItemComponentCostByRangedCombatTechnique",
|
|
131
|
+
namePlural: "ItemComponentCostsByRangedCombatTechnique",
|
|
132
|
+
secondaryEntity: RangedCombatTechnique,
|
|
133
|
+
type: DB.Object({
|
|
134
|
+
value: DB.Required({
|
|
135
|
+
comment: "The cost in silverthalers for the ranged combat technique.",
|
|
136
|
+
type: DB.Float({ minimum: { value: 0, isExclusive: true } }),
|
|
137
|
+
}),
|
|
138
|
+
translations: NestedTranslationMap(DB.Optional, "ItemComponentCostByRangedCombatTechnique", DB.IncludeIdentifier(ItemComponentCostByCombatTechniqueTranslation)),
|
|
139
|
+
}),
|
|
140
|
+
}),
|
|
141
|
+
}),
|
|
142
|
+
}, { minProperties: 1 }),
|
|
143
|
+
});
|
|
144
|
+
const ItemComponentCostByCombatTechniqueTranslation = DB.TypeAlias(import.meta.url, {
|
|
145
|
+
name: "ItemComponentCostByCombatTechniqueTranslation",
|
|
146
|
+
type: () => DB.Object({
|
|
147
|
+
label: DB.Required({
|
|
148
|
+
comment: "The label for cost, if different from the name of the combat technique.",
|
|
149
|
+
type: DB.String({ minLength: 1 }),
|
|
150
|
+
}),
|
|
151
|
+
}),
|
|
152
|
+
});
|
|
153
|
+
const ApplicableItems = DB.Enum(import.meta.url, {
|
|
154
|
+
name: "ApplicableItems",
|
|
155
|
+
comment: "The items the component can be applied to.",
|
|
156
|
+
values: () => ({
|
|
157
|
+
MeleeWeapon: DB.EnumCase({ type: DB.IncludeIdentifier(ApplicableMeleeWeapons) }),
|
|
158
|
+
RangedWeapon: DB.EnumCase({ type: DB.IncludeIdentifier(ApplicableRangedWeapons) }),
|
|
159
|
+
Ammunition: DB.EnumCase({ type: DB.IncludeIdentifier(ApplicableAmmunition) }),
|
|
160
|
+
Armor: DB.EnumCase({ type: DB.IncludeIdentifier(ApplicableArmor) }),
|
|
161
|
+
}),
|
|
162
|
+
});
|
|
163
|
+
const ApplicableMeleeWeapons = DB.TypeAlias(import.meta.url, {
|
|
164
|
+
name: "ApplicableMeleeWeapons",
|
|
165
|
+
type: () => DB.Object({
|
|
166
|
+
weapons: DB.Optional({
|
|
167
|
+
comment: "Specific weapons this component can be applied to.",
|
|
168
|
+
type: DB.Array(WeaponIdentifier(), {
|
|
169
|
+
minItems: 1,
|
|
170
|
+
uniqueItems: true,
|
|
171
|
+
}),
|
|
172
|
+
}),
|
|
173
|
+
combatTechniques: DB.Optional({
|
|
174
|
+
comment: "Weapons of combat techniques this component can be applied to.",
|
|
175
|
+
type: DB.Array(CloseCombatTechniqueIdentifier(), {
|
|
176
|
+
minItems: 1,
|
|
177
|
+
uniqueItems: true,
|
|
178
|
+
}),
|
|
179
|
+
}),
|
|
180
|
+
category: DB.Optional({
|
|
181
|
+
comment: "The category of weapons this component can be applied to.",
|
|
182
|
+
type: DB.IncludeIdentifier(ApplicableMeleeWeaponCategory),
|
|
183
|
+
}),
|
|
184
|
+
}, { minProperties: 1 }),
|
|
185
|
+
});
|
|
186
|
+
const ApplicableMeleeWeaponCategory = DB.Enum(import.meta.url, {
|
|
187
|
+
name: "ApplicableMeleeWeaponCategory",
|
|
188
|
+
values: () => ({
|
|
189
|
+
HasMetalSurface: DB.EnumCase({ type: null }),
|
|
190
|
+
HasMetalBladeOrTip: DB.EnumCase({ type: null }),
|
|
191
|
+
}),
|
|
192
|
+
});
|
|
193
|
+
const ApplicableRangedWeapons = DB.TypeAlias(import.meta.url, {
|
|
194
|
+
name: "ApplicableRangedWeapons",
|
|
195
|
+
type: () => DB.Object({
|
|
196
|
+
weapons: DB.Optional({
|
|
197
|
+
comment: "Specific weapons this component can be applied to.",
|
|
198
|
+
type: DB.Array(WeaponIdentifier(), {
|
|
199
|
+
minItems: 1,
|
|
200
|
+
uniqueItems: true,
|
|
201
|
+
}),
|
|
202
|
+
}),
|
|
203
|
+
combatTechniques: DB.Optional({
|
|
204
|
+
comment: "Weapons of combat techniques this component can be applied to.",
|
|
205
|
+
type: DB.Array(RangedCombatTechniqueIdentifier(), {
|
|
206
|
+
minItems: 1,
|
|
207
|
+
uniqueItems: true,
|
|
208
|
+
}),
|
|
209
|
+
}),
|
|
210
|
+
minimumReloadTime: DB.Optional({
|
|
211
|
+
comment: "The minimum reload time a crossbow must have for it to be compatible with this component.",
|
|
212
|
+
type: DB.Integer({ minimum: 1 }),
|
|
213
|
+
}),
|
|
214
|
+
usesBullets: DB.Optional({
|
|
215
|
+
comment: "Whether the crossbow must use bullets to be compatible with this component.",
|
|
216
|
+
type: DB.Boolean(),
|
|
217
|
+
}),
|
|
218
|
+
}, { minProperties: 1 }),
|
|
219
|
+
});
|
|
220
|
+
const ApplicableAmmunition = DB.TypeAlias(import.meta.url, {
|
|
221
|
+
name: "ApplicableAmmunition",
|
|
222
|
+
type: () => DB.Object({
|
|
223
|
+
ammunition: DB.Optional({
|
|
224
|
+
comment: "Specific ammunition this component can be applied to.",
|
|
225
|
+
type: DB.Array(AmmunitionIdentifier(), {
|
|
226
|
+
minItems: 1,
|
|
227
|
+
uniqueItems: true,
|
|
228
|
+
}),
|
|
229
|
+
}),
|
|
230
|
+
invertAmmunition: DB.Optional({
|
|
231
|
+
comment: "Whether the list of ammunition is inverted, i.e. whether the component can be applied to all ammunition – or those of the specified category – except for the listed ammunition.",
|
|
232
|
+
type: DB.Boolean(),
|
|
233
|
+
}),
|
|
234
|
+
category: DB.Optional({
|
|
235
|
+
comment: "The category of weapons this component can be applied to.",
|
|
236
|
+
type: DB.IncludeIdentifier(ApplicableAmmunitionCategory),
|
|
237
|
+
}),
|
|
238
|
+
}, { minProperties: 1 }),
|
|
239
|
+
});
|
|
240
|
+
const ApplicableAmmunitionCategory = DB.Enum(import.meta.url, {
|
|
241
|
+
name: "ApplicableAmmunitionCategory",
|
|
242
|
+
values: () => ({
|
|
243
|
+
ArrowOrBolt: DB.EnumCase({ type: null }),
|
|
244
|
+
}),
|
|
245
|
+
});
|
|
246
|
+
const ApplicableArmor = DB.TypeAlias(import.meta.url, {
|
|
247
|
+
name: "ApplicableArmor",
|
|
248
|
+
type: () => DB.Object({
|
|
249
|
+
armor: DB.Optional({
|
|
250
|
+
comment: "Specific armor this component can be applied to.",
|
|
251
|
+
type: DB.Array(ArmorIdentifier(), {
|
|
252
|
+
minItems: 1,
|
|
253
|
+
uniqueItems: true,
|
|
254
|
+
}),
|
|
255
|
+
}),
|
|
256
|
+
category: DB.Optional({
|
|
257
|
+
comment: "The category of weapons this component can be applied to.",
|
|
258
|
+
type: DB.IncludeIdentifier(ApplicableArmorCategory),
|
|
259
|
+
}),
|
|
260
|
+
}),
|
|
261
|
+
});
|
|
262
|
+
const ApplicableArmorCategory = DB.Enum(import.meta.url, {
|
|
263
|
+
name: "ApplicableArmorCategory",
|
|
264
|
+
values: () => ({
|
|
265
|
+
Metal: DB.EnumCase({ type: null }),
|
|
266
|
+
}),
|
|
267
|
+
});
|
|
268
|
+
const ItemComponentRules = DB.TypeAlias(import.meta.url, {
|
|
269
|
+
name: "ItemComponentRules",
|
|
270
|
+
type: () => DB.Object({
|
|
271
|
+
baseItemModifications: DB.Optional({
|
|
272
|
+
type: DB.IncludeIdentifier(ItemComponentBaseItemModifications),
|
|
273
|
+
}),
|
|
274
|
+
}, { minProperties: 1 }),
|
|
275
|
+
});
|
|
276
|
+
const ItemComponentBaseItemModifications = DB.TypeAlias(import.meta.url, {
|
|
277
|
+
name: "ItemComponentBaseItemModifications",
|
|
278
|
+
type: () => DB.Object({
|
|
279
|
+
damagePoints: DB.Optional({
|
|
280
|
+
comment: "The damage points added to the damage points of the base item. Negative values lower the damage points.",
|
|
281
|
+
type: DB.Integer(),
|
|
282
|
+
}),
|
|
283
|
+
attackModifier: DB.Optional({
|
|
284
|
+
comment: "The attack modifier added to the attack modifier of the base item. Negative values lower the attack modifier.",
|
|
285
|
+
type: DB.Integer(),
|
|
286
|
+
}),
|
|
287
|
+
parryModifier: DB.Optional({
|
|
288
|
+
comment: "The parry modifier added to the parry modifier of the base item. Negative values lower the parry modifier.",
|
|
289
|
+
type: DB.Integer(),
|
|
290
|
+
}),
|
|
291
|
+
protection: DB.Optional({
|
|
292
|
+
comment: "The protection added to the protection of the base item. Negative values lower the protection.",
|
|
293
|
+
type: DB.Integer(),
|
|
294
|
+
}),
|
|
295
|
+
encumbrance: DB.Optional({
|
|
296
|
+
comment: "The encumbrance added to the encumbrance of the base item. Negative values lower the encumbrance.",
|
|
297
|
+
type: DB.Integer(),
|
|
298
|
+
}),
|
|
299
|
+
range: DB.Optional({
|
|
300
|
+
comment: "The range added to the range of the base item. Negative values lower the range.",
|
|
301
|
+
type: DB.Integer(),
|
|
302
|
+
}),
|
|
303
|
+
reloadTime: DB.Optional({
|
|
304
|
+
comment: "The reload time added to the reload time of the base item. Negative values lower the reload time.",
|
|
305
|
+
type: DB.Integer(),
|
|
306
|
+
}),
|
|
307
|
+
weight: DB.Optional({
|
|
308
|
+
comment: "The weight added to the weight of the base item. Negative values lower the weight.",
|
|
309
|
+
type: DB.Float(),
|
|
310
|
+
}),
|
|
311
|
+
breakingPointRating: DB.Optional({
|
|
312
|
+
comment: "The breaking point rating added to the breaking point rating of the base item. Negative values lower the breaking point rating.",
|
|
313
|
+
type: DB.Integer(),
|
|
314
|
+
}),
|
|
315
|
+
}, { minProperties: 1 }),
|
|
316
|
+
});
|
package/lib/types/index.d.ts
CHANGED
|
@@ -37,6 +37,7 @@ export { HerbalPreservation } from "./equipment/item/HerbalPreservation.js";
|
|
|
37
37
|
export { IlluminationLightSource } from "./equipment/item/IlluminationLightSource.js";
|
|
38
38
|
export { IlluminationRefillOrSupply } from "./equipment/item/IlluminationRefillOrSupply.js";
|
|
39
39
|
export { Item } from "./equipment/item/Item.js";
|
|
40
|
+
export { ItemComponent } from "./equipment/item/ItemComponent.ts";
|
|
40
41
|
export { Jewelry } from "./equipment/item/Jewelry.js";
|
|
41
42
|
export { Laboratory } from "./equipment/item/Laboratory.js";
|
|
42
43
|
export { Liebesspielzeug } from "./equipment/item/Liebesspielzeug.js";
|
package/lib/types/index.js
CHANGED
|
@@ -37,6 +37,7 @@ export { HerbalPreservation } from "./equipment/item/HerbalPreservation.js";
|
|
|
37
37
|
export { IlluminationLightSource } from "./equipment/item/IlluminationLightSource.js";
|
|
38
38
|
export { IlluminationRefillOrSupply } from "./equipment/item/IlluminationRefillOrSupply.js";
|
|
39
39
|
export { Item } from "./equipment/item/Item.js";
|
|
40
|
+
export { ItemComponent } from "./equipment/item/ItemComponent.js";
|
|
40
41
|
export { Jewelry } from "./equipment/item/Jewelry.js";
|
|
41
42
|
export { Laboratory } from "./equipment/item/Laboratory.js";
|
|
42
43
|
export { Liebesspielzeug } from "./equipment/item/Liebesspielzeug.js";
|
|
@@ -762,6 +762,25 @@ export declare const ProfessionPrerequisiteGroup: DB.Enum<"ProfessionPrerequisit
|
|
|
762
762
|
}>, []>>>;
|
|
763
763
|
}, []>>, false>;
|
|
764
764
|
}>, []>>>;
|
|
765
|
+
Rule: DB.EnumCase<DB.IncludeIdentifier<[], DB.TypeAlias<"RulePrerequisite", DB.Object<{
|
|
766
|
+
id: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"ExtensionRuleIdentifier", {
|
|
767
|
+
FocusRule: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
768
|
+
OptionalRule: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
769
|
+
}, []>>, true>;
|
|
770
|
+
active: DB.MemberDecl<DB.Boolean, true>;
|
|
771
|
+
display_option: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"DisplayOption", {
|
|
772
|
+
Hide: DB.EnumCase<null>;
|
|
773
|
+
ReplaceWith: DB.EnumCase<DB.IncludeIdentifier<[], DB.TypeAlias<"ReplacementDisplayOption", DB.Object<{
|
|
774
|
+
sentence_type: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"SentenceType", {
|
|
775
|
+
Standalone: DB.EnumCase<null>;
|
|
776
|
+
Connected: DB.EnumCase<null>;
|
|
777
|
+
}, []>>, false>;
|
|
778
|
+
translations: DB.MemberDecl<DB.NestedEntityMap<"ReplacementDisplayOptionTranslation", {
|
|
779
|
+
replacement: DB.MemberDecl<DB.String, true>;
|
|
780
|
+
}>, true>;
|
|
781
|
+
}>, []>>>;
|
|
782
|
+
}, []>>, false>;
|
|
783
|
+
}>, []>>>;
|
|
765
784
|
Activatable: DB.EnumCase<DB.IncludeIdentifier<[], DB.TypeAlias<"ActivatablePrerequisite", DB.Object<{
|
|
766
785
|
id: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"ActivatableIdentifier", {
|
|
767
786
|
ArcaneOrbEnchantment: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
@@ -925,10 +944,10 @@ export declare const ProfessionPrerequisiteGroup: DB.Enum<"ProfessionPrerequisit
|
|
|
925
944
|
}>, []>>>;
|
|
926
945
|
}, []>>, false>;
|
|
927
946
|
}>, []>>>;
|
|
928
|
-
RatedMinimumNumber: DB.EnumCase<DB.IncludeIdentifier<[], DB.TypeAlias<"
|
|
947
|
+
RatedMinimumNumber: DB.EnumCase<DB.IncludeIdentifier<[], DB.TypeAlias<"RatedMinimumNumberPrerequisiteForProfession", DB.Object<{
|
|
929
948
|
number: DB.MemberDecl<DB.Integer, true>;
|
|
930
949
|
value: DB.MemberDecl<DB.Integer, true>;
|
|
931
|
-
targets: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"
|
|
950
|
+
targets: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"RatedMinimumNumberPrerequisiteTargetForProfession", {
|
|
932
951
|
Skills: DB.EnumCase<DB.IncludeIdentifier<[], DB.TypeAlias<"RatedMinimumNumberPrerequisiteSkillsTarget", DB.Object<{
|
|
933
952
|
targets: DB.MemberDecl<DB.Array<DB.ReferenceIdentifier>, true>;
|
|
934
953
|
}>, []>>>;
|
|
@@ -939,9 +958,65 @@ export declare const ProfessionPrerequisiteGroup: DB.Enum<"ProfessionPrerequisit
|
|
|
939
958
|
Ranged: DB.EnumCase<null>;
|
|
940
959
|
}, []>>, true>;
|
|
941
960
|
}>, []>>>;
|
|
942
|
-
Spellworks: DB.EnumCase<DB.IncludeIdentifier<[], DB.
|
|
943
|
-
|
|
944
|
-
|
|
961
|
+
Spellworks: DB.EnumCase<DB.IncludeIdentifier<[], DB.Enum<"RatedMinimumNumberPrerequisiteSpellworksTargetForProfession", {
|
|
962
|
+
Specific: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
963
|
+
SelectOptions: DB.EnumCase<DB.IncludeIdentifier<[], DB.Enum<"SpecialAbilityIdentifier", {
|
|
964
|
+
ArcaneOrbEnchantment: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
965
|
+
AttireEnchantment: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
966
|
+
Beutelzauber: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
967
|
+
BowlEnchantment: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
968
|
+
CauldronEnchantment: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
969
|
+
ChronicleEnchantment: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
970
|
+
DaggerRitual: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
971
|
+
FoolsHatEnchantment: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
972
|
+
Haubenzauber: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
973
|
+
Hauerkettenzauber: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
974
|
+
InstrumentEnchantment: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
975
|
+
Keulenzauber: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
976
|
+
Krallenkettenzauber: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
977
|
+
Kristallkugelzauber: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
978
|
+
OrbEnchantment: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
979
|
+
RingEnchantment: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
980
|
+
Schweinetrommelzauber: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
981
|
+
SickleRitual: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
982
|
+
SpellSwordEnchantment: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
983
|
+
StaffEnchantment: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
984
|
+
ToyEnchantment: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
985
|
+
Trinkhornzauber: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
986
|
+
WandEnchantment: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
987
|
+
WeaponEnchantment: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
988
|
+
AdvancedCombatSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
989
|
+
AdvancedKarmaSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
990
|
+
AdvancedMagicalSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
991
|
+
AdvancedSkillSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
992
|
+
AncestorGlyph: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
993
|
+
BlessedTradition: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
994
|
+
BrawlingSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
995
|
+
CeremonialItemSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
996
|
+
CombatSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
997
|
+
CombatStyleSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
998
|
+
CommandSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
999
|
+
FamiliarSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
1000
|
+
FatePointSexSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
1001
|
+
FatePointSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
1002
|
+
GeneralSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
1003
|
+
KarmaSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
1004
|
+
LiturgicalStyleSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
1005
|
+
LycantropicGift: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
1006
|
+
MagicalSign: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
1007
|
+
MagicalSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
1008
|
+
MagicalTradition: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
1009
|
+
MagicStyleSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
1010
|
+
PactGift: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
1011
|
+
ProtectiveWardingCircleSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
1012
|
+
Sermon: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
1013
|
+
SexSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
1014
|
+
SikaryanDrainSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
1015
|
+
SkillStyleSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
1016
|
+
VampiricGift: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
1017
|
+
Vision: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
1018
|
+
}, []>>>;
|
|
1019
|
+
}, []>>>;
|
|
945
1020
|
Liturgies: DB.EnumCase<DB.IncludeIdentifier<[], DB.TypeAlias<"RatedMinimumNumberPrerequisiteLiturgiesTarget", DB.Object<{
|
|
946
1021
|
aspect: DB.MemberDecl<DB.ReferenceIdentifier, true>;
|
|
947
1022
|
}>, []>>>;
|
|
@@ -15,6 +15,7 @@ import { ProfessionPrerequisite } from "./single/ProfessionPrerequisite.js";
|
|
|
15
15
|
import { PublicationPrerequisite } from "./single/PublicationPrerequisite.js";
|
|
16
16
|
import { RacePrerequisite } from "./single/RacePrerequisite.js";
|
|
17
17
|
import { RatedMinimumNumberPrerequisite } from "./single/RatedMinimumNumberPrerequisite.js";
|
|
18
|
+
import { RatedMinimumNumberPrerequisiteForProfession } from "./single/RatedMinimumNumberPrerequisiteForProfession.js";
|
|
18
19
|
import { RatedPrerequisite } from "./single/RatedPrerequisite.js";
|
|
19
20
|
import { RatedSumPrerequisite } from "./single/RatedSumPrerequisite.js";
|
|
20
21
|
import { RulePrerequisite } from "./single/RulePrerequisite.js";
|
|
@@ -88,9 +89,12 @@ export const ProfessionPrerequisiteGroup = DB.Enum(import.meta.url, {
|
|
|
88
89
|
Sex: DB.EnumCase({ type: DB.IncludeIdentifier(SexPrerequisite) }),
|
|
89
90
|
Race: DB.EnumCase({ type: DB.IncludeIdentifier(RacePrerequisite) }),
|
|
90
91
|
Culture: DB.EnumCase({ type: DB.IncludeIdentifier(CulturePrerequisite) }),
|
|
92
|
+
Rule: DB.EnumCase({ type: DB.IncludeIdentifier(RulePrerequisite) }),
|
|
91
93
|
Activatable: DB.EnumCase({ type: DB.IncludeIdentifier(ActivatablePrerequisite) }),
|
|
92
94
|
Rated: DB.EnumCase({ type: DB.IncludeIdentifier(RatedPrerequisite) }),
|
|
93
|
-
RatedMinimumNumber: DB.EnumCase({
|
|
95
|
+
RatedMinimumNumber: DB.EnumCase({
|
|
96
|
+
type: DB.IncludeIdentifier(RatedMinimumNumberPrerequisiteForProfession),
|
|
97
|
+
}),
|
|
94
98
|
Energy: DB.EnumCase({ type: DB.IncludeIdentifier(EnergyPrerequisite) }),
|
|
95
99
|
}),
|
|
96
100
|
});
|
|
@@ -66,7 +66,7 @@ export const RatedMinimumNumberPrerequisiteSpellworksTarget = DB.TypeAlias(impor
|
|
|
66
66
|
name: "RatedMinimumNumberPrerequisiteSpellworksTarget",
|
|
67
67
|
type: () => DB.Object({
|
|
68
68
|
property: DB.Required({
|
|
69
|
-
comment: "The
|
|
69
|
+
comment: "The property of which the spells are taken into account for satisfying the prerequisite.",
|
|
70
70
|
type: PropertyIdentifier(),
|
|
71
71
|
}),
|
|
72
72
|
}),
|
|
@@ -75,7 +75,7 @@ export const RatedMinimumNumberPrerequisiteLiturgiesTarget = DB.TypeAlias(import
|
|
|
75
75
|
name: "RatedMinimumNumberPrerequisiteLiturgiesTarget",
|
|
76
76
|
type: () => DB.Object({
|
|
77
77
|
aspect: DB.Required({
|
|
78
|
-
comment: "The
|
|
78
|
+
comment: "The aspect of which the liturgical chants are taken into account for satisfying the prerequisite.",
|
|
79
79
|
type: AspectIdentifier(),
|
|
80
80
|
}),
|
|
81
81
|
}),
|