optolith-database-schema 0.24.3 → 0.26.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 +25 -0
- package/gen/types.d.ts +49 -6
- package/lib/main.d.ts +7 -0
- package/lib/test.d.ts +1 -1
- package/lib/test.js +10 -1
- package/lib/types/Advantage.js +7 -0
- package/lib/types/AnimalDisease.js +6 -0
- package/lib/types/AnimalType.js +6 -0
- package/lib/types/ArcaneBardTradition.js +6 -0
- package/lib/types/ArcaneDancerTradition.js +6 -0
- package/lib/types/Aspect.js +6 -0
- package/lib/types/Attribute.js +10 -0
- package/lib/types/Blessing.js +6 -0
- package/lib/types/Cantrip.js +6 -0
- package/lib/types/Ceremony.js +6 -0
- package/lib/types/CombatTechnique.d.ts +79 -55
- package/lib/types/CombatTechnique.js +37 -7
- package/lib/types/Condition.js +6 -0
- package/lib/types/Continent.js +6 -0
- package/lib/types/Culture.js +6 -0
- package/lib/types/DerivedCharacteristic.js +10 -0
- package/lib/types/Disadvantage.js +7 -0
- package/lib/types/Disease.js +6 -0
- package/lib/types/Element.js +6 -0
- package/lib/types/ExperienceLevel.js +6 -0
- package/lib/types/EyeColor.js +6 -0
- package/lib/types/FamiliarsTrick.js +6 -0
- package/lib/types/HairColor.js +6 -0
- package/lib/types/Lessons.js +12 -0
- package/lib/types/LiturgicalChant.js +6 -0
- package/lib/types/Locale.js +10 -0
- package/lib/types/MetaCondition.js +6 -0
- package/lib/types/PactCategory.js +36 -0
- package/lib/types/Patron.js +6 -0
- package/lib/types/PatronCategory.js +6 -0
- package/lib/types/PersonalityTrait.js +6 -0
- package/lib/types/Profession.d.ts +25 -0
- package/lib/types/Profession.js +16 -0
- package/lib/types/Property.js +6 -0
- package/lib/types/Race.js +17 -0
- package/lib/types/Region.js +6 -0
- package/lib/types/Ritual.js +6 -0
- package/lib/types/Service.js +6 -0
- package/lib/types/SexPractice.js +6 -0
- package/lib/types/Skill.js +15 -0
- package/lib/types/SkillGroup.js +6 -0
- package/lib/types/SkillModificationLevel.js +8 -0
- package/lib/types/SocialStatus.js +7 -0
- package/lib/types/Spell.js +6 -0
- package/lib/types/State.js +6 -0
- package/lib/types/Talisman.js +6 -0
- package/lib/types/TargetCategory.js +6 -0
- package/lib/types/_ActivatableSelectOptions.js +11 -0
- package/lib/types/_Enhancements.js +11 -0
- package/lib/types/_Influence.js +6 -0
- package/lib/types/equipment/EquipmentPackage.js +6 -0
- package/lib/types/equipment/item/Ammunition.js +6 -0
- package/lib/types/equipment/item/Animal.js +6 -0
- package/lib/types/equipment/item/AnimalCare.js +6 -0
- package/lib/types/equipment/item/Armor.js +6 -0
- package/lib/types/equipment/item/BandageOrRemedy.js +16 -0
- package/lib/types/equipment/item/Book.js +6 -0
- package/lib/types/equipment/item/CeremonialItem.js +16 -0
- package/lib/types/equipment/item/Clothes.js +16 -0
- package/lib/types/equipment/item/Container.js +16 -0
- package/lib/types/equipment/item/Elixir.js +6 -0
- package/lib/types/equipment/item/EquipmentOfBlessedOnes.js +16 -0
- package/lib/types/equipment/item/GemOrPreciousStone.js +6 -0
- package/lib/types/equipment/item/IlluminationLightSource.js +16 -0
- package/lib/types/equipment/item/IlluminationRefillOrSupply.js +16 -0
- package/lib/types/equipment/item/Jewelry.js +6 -0
- package/lib/types/equipment/item/Laboratory.js +6 -0
- package/lib/types/equipment/item/Liebesspielzeug.js +16 -0
- package/lib/types/equipment/item/LuxuryGood.js +16 -0
- package/lib/types/equipment/item/MagicalArtifact.js +16 -0
- package/lib/types/equipment/item/MusicalInstrument.js +16 -0
- package/lib/types/equipment/item/Newspaper.js +6 -0
- package/lib/types/equipment/item/Poison.js +6 -0
- package/lib/types/equipment/item/ToolOfTheTrade.js +6 -0
- package/lib/types/equipment/item/TravelGearOrTool.js +16 -0
- package/lib/types/equipment/item/Vehicle.js +6 -0
- package/lib/types/equipment/item/Weapon.d.ts +45 -45
- package/lib/types/equipment/item/Weapon.js +13 -5
- package/lib/types/equipment/item/WeaponAccessory.js +16 -0
- package/lib/types/equipment/item/_Item.js +19 -1
- package/lib/types/equipment/item/_Weapon.d.ts +13 -4
- package/lib/types/equipment/item/_Weapon.js +32 -4
- package/lib/types/equipment/item/sub/ArmorType.js +6 -0
- package/lib/types/equipment/item/sub/Reach.js +6 -0
- package/lib/types/magicalActions/AnimistPower.js +6 -0
- package/lib/types/magicalActions/AnimistPower_Tribe.js +6 -0
- package/lib/types/magicalActions/Curse.js +6 -0
- package/lib/types/magicalActions/DominationRitual.js +6 -0
- package/lib/types/magicalActions/ElvenMagicalSong.js +6 -0
- package/lib/types/magicalActions/GeodeRitual.js +6 -0
- package/lib/types/magicalActions/JesterTrick.js +6 -0
- package/lib/types/magicalActions/MagicalDance.js +6 -0
- package/lib/types/magicalActions/MagicalMelody.js +6 -0
- package/lib/types/magicalActions/MagicalRune.js +6 -0
- package/lib/types/magicalActions/ZibiljaRitual.js +6 -0
- package/lib/types/rule/AlternativeRule.js +6 -0
- package/lib/types/rule/CoreRule.js +6 -0
- package/lib/types/rule/FocusRule.js +6 -0
- package/lib/types/rule/FocusRule_Subject.js +6 -0
- package/lib/types/rule/OptionalRule.js +6 -0
- package/lib/types/source/Publication.js +6 -0
- package/lib/types/specialAbility/AdvancedCombatSpecialAbility.js +7 -0
- package/lib/types/specialAbility/AdvancedKarmaSpecialAbility.js +7 -0
- package/lib/types/specialAbility/AdvancedMagicalSpecialAbility.js +7 -0
- package/lib/types/specialAbility/AdvancedSkillSpecialAbility.js +7 -0
- package/lib/types/specialAbility/AncestorGlyph.js +7 -0
- package/lib/types/specialAbility/BlessedTradition.js +7 -0
- package/lib/types/specialAbility/BrawlingSpecialAbility.js +7 -0
- package/lib/types/specialAbility/CeremonialItemSpecialAbility.js +12 -0
- package/lib/types/specialAbility/CombatSpecialAbility.js +7 -0
- package/lib/types/specialAbility/CombatStyleSpecialAbility.js +7 -0
- package/lib/types/specialAbility/CommandSpecialAbility.js +7 -0
- package/lib/types/specialAbility/FamiliarSpecialAbility.js +7 -0
- package/lib/types/specialAbility/FatePointSexSpecialAbility.js +7 -0
- package/lib/types/specialAbility/FatePointSpecialAbility.js +7 -0
- package/lib/types/specialAbility/GeneralSpecialAbility.js +7 -0
- package/lib/types/specialAbility/KarmaSpecialAbility.js +7 -0
- package/lib/types/specialAbility/LiturgicalStyleSpecialAbility.js +7 -0
- package/lib/types/specialAbility/LycantropicGift.js +7 -0
- package/lib/types/specialAbility/MagicStyleSpecialAbility.js +7 -0
- package/lib/types/specialAbility/MagicalSign.js +7 -0
- package/lib/types/specialAbility/MagicalSpecialAbility.js +7 -0
- package/lib/types/specialAbility/MagicalTradition.js +7 -0
- package/lib/types/specialAbility/PactGift.js +7 -0
- package/lib/types/specialAbility/ProtectiveWardingCircleSpecialAbility.js +7 -0
- package/lib/types/specialAbility/Sermon.js +7 -0
- package/lib/types/specialAbility/SexSpecialAbility.js +7 -0
- package/lib/types/specialAbility/SikaryanDrainSpecialAbility.js +7 -0
- package/lib/types/specialAbility/SkillStyleSpecialAbility.js +7 -0
- package/lib/types/specialAbility/VampiricGift.js +7 -0
- package/lib/types/specialAbility/Vision.js +7 -0
- package/lib/types/specialAbility/sub/Language.js +6 -0
- package/lib/types/specialAbility/sub/Script.js +6 -0
- package/lib/types/specialAbility/sub/TradeSecret.js +6 -0
- package/lib/types/traditionArtifacts/ArcaneOrbEnchantment.js +7 -0
- package/lib/types/traditionArtifacts/AttireEnchantment.js +7 -0
- package/lib/types/traditionArtifacts/Beutelzauber.js +7 -0
- package/lib/types/traditionArtifacts/BowlEnchantment.js +7 -0
- package/lib/types/traditionArtifacts/CauldronEnchantment.js +7 -0
- package/lib/types/traditionArtifacts/ChronicleEnchantment.js +7 -0
- package/lib/types/traditionArtifacts/DaggerRitual.js +7 -0
- package/lib/types/traditionArtifacts/FoolsHatEnchantment.js +7 -0
- package/lib/types/traditionArtifacts/Haubenzauber.js +7 -0
- package/lib/types/traditionArtifacts/InstrumentEnchantment.js +7 -0
- package/lib/types/traditionArtifacts/Krallenkettenzauber.js +7 -0
- package/lib/types/traditionArtifacts/Kristallkugelzauber.js +7 -0
- package/lib/types/traditionArtifacts/OrbEnchantment.js +7 -0
- package/lib/types/traditionArtifacts/RingEnchantment.js +7 -0
- package/lib/types/traditionArtifacts/SickleRitual.js +7 -0
- package/lib/types/traditionArtifacts/SpellSwordEnchantment.js +7 -0
- package/lib/types/traditionArtifacts/StaffEnchantment.js +7 -0
- package/lib/types/traditionArtifacts/ToyEnchantment.js +7 -0
- package/lib/types/traditionArtifacts/Trinkhornzauber.js +7 -0
- package/lib/types/traditionArtifacts/WandEnchantment.js +7 -0
- package/lib/types/traditionArtifacts/WeaponEnchantment.js +7 -0
- package/package.json +2 -2
|
@@ -76,6 +76,12 @@ export const Armor = Entity(import.meta.url, {
|
|
|
76
76
|
})),
|
|
77
77
|
}),
|
|
78
78
|
displayName: {},
|
|
79
|
+
uniqueConstraints: [
|
|
80
|
+
{
|
|
81
|
+
entityMapKeyPath: "translations",
|
|
82
|
+
keyPathInEntityMap: "name",
|
|
83
|
+
},
|
|
84
|
+
],
|
|
79
85
|
});
|
|
80
86
|
export const SecondaryArmor = TypeAlias(import.meta.url, {
|
|
81
87
|
name: "SecondaryArmor",
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { Entity, IncludeIdentifier, Object, Optional, Required } from "tsondb/schema/def";
|
|
2
2
|
import { src } from "../../source/_PublicationRef.js";
|
|
3
3
|
import { CombatUse, Complexity, Cost, DefaultItemTranslations, StructurePoints, Weight, } from "./_Item.js";
|
|
4
|
+
import { checkWeaponCombatTechniqueIntegrity } from "./_Weapon.js";
|
|
4
5
|
export const BandageOrRemedy = Entity(import.meta.url, {
|
|
5
6
|
name: "BandageOrRemedy",
|
|
6
7
|
namePlural: "BandagesAndRemedies",
|
|
@@ -29,4 +30,19 @@ export const BandageOrRemedy = Entity(import.meta.url, {
|
|
|
29
30
|
translations: DefaultItemTranslations("BandageOrRemedy"),
|
|
30
31
|
}),
|
|
31
32
|
displayName: {},
|
|
33
|
+
uniqueConstraints: [
|
|
34
|
+
{
|
|
35
|
+
entityMapKeyPath: "translations",
|
|
36
|
+
keyPathInEntityMap: "name",
|
|
37
|
+
},
|
|
38
|
+
],
|
|
39
|
+
customConstraints: ({ instanceContent, ...rest }) => {
|
|
40
|
+
if (instanceContent.combat_use && instanceContent.combat_use.kind === "Weapon") {
|
|
41
|
+
return checkWeaponCombatTechniqueIntegrity({
|
|
42
|
+
...rest,
|
|
43
|
+
instanceContent: instanceContent.combat_use.Weapon,
|
|
44
|
+
}, true);
|
|
45
|
+
}
|
|
46
|
+
return [];
|
|
47
|
+
},
|
|
32
48
|
});
|
|
@@ -60,6 +60,12 @@ export const Book = Entity(import.meta.url, {
|
|
|
60
60
|
})),
|
|
61
61
|
}),
|
|
62
62
|
displayName: {},
|
|
63
|
+
uniqueConstraints: [
|
|
64
|
+
{
|
|
65
|
+
entityMapKeyPath: "translations",
|
|
66
|
+
keyPathInEntityMap: "name",
|
|
67
|
+
},
|
|
68
|
+
],
|
|
63
69
|
});
|
|
64
70
|
const BookType = Enum(import.meta.url, {
|
|
65
71
|
name: "BookType",
|
|
@@ -2,6 +2,7 @@ import { Entity, IncludeIdentifier, Object, Optional, Required } from "tsondb/sc
|
|
|
2
2
|
import { BlessedTraditionIdentifier } from "../../_Identifier.js";
|
|
3
3
|
import { src } from "../../source/_PublicationRef.js";
|
|
4
4
|
import { CombatUse, Complexity, Cost, DefaultItemTranslations, StructurePoints, Weight, } from "./_Item.js";
|
|
5
|
+
import { checkWeaponCombatTechniqueIntegrity } from "./_Weapon.js";
|
|
5
6
|
export const CeremonialItem = Entity(import.meta.url, {
|
|
6
7
|
name: "CeremonialItem",
|
|
7
8
|
namePlural: "CeremonialItems",
|
|
@@ -34,4 +35,19 @@ export const CeremonialItem = Entity(import.meta.url, {
|
|
|
34
35
|
translations: DefaultItemTranslations("CeremonialItem"),
|
|
35
36
|
}),
|
|
36
37
|
displayName: {},
|
|
38
|
+
uniqueConstraints: [
|
|
39
|
+
{
|
|
40
|
+
entityMapKeyPath: "translations",
|
|
41
|
+
keyPathInEntityMap: "name",
|
|
42
|
+
},
|
|
43
|
+
],
|
|
44
|
+
customConstraints: ({ instanceContent, ...rest }) => {
|
|
45
|
+
if (instanceContent.combat_use && instanceContent.combat_use.kind === "Weapon") {
|
|
46
|
+
return checkWeaponCombatTechniqueIntegrity({
|
|
47
|
+
...rest,
|
|
48
|
+
instanceContent: instanceContent.combat_use.Weapon,
|
|
49
|
+
}, true);
|
|
50
|
+
}
|
|
51
|
+
return [];
|
|
52
|
+
},
|
|
37
53
|
});
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { Entity, IncludeIdentifier, Object, Optional, Required } from "tsondb/schema/def";
|
|
2
2
|
import { src } from "../../source/_PublicationRef.js";
|
|
3
3
|
import { CombatUse, Complexity, Cost, DefaultItemTranslations, StructurePoints, Weight, } from "./_Item.js";
|
|
4
|
+
import { checkWeaponCombatTechniqueIntegrity } from "./_Weapon.js";
|
|
4
5
|
export const Clothes = Entity(import.meta.url, {
|
|
5
6
|
name: "Clothes",
|
|
6
7
|
namePlural: "Clothes",
|
|
@@ -29,4 +30,19 @@ export const Clothes = Entity(import.meta.url, {
|
|
|
29
30
|
translations: DefaultItemTranslations("Clothes"),
|
|
30
31
|
}),
|
|
31
32
|
displayName: {},
|
|
33
|
+
uniqueConstraints: [
|
|
34
|
+
{
|
|
35
|
+
entityMapKeyPath: "translations",
|
|
36
|
+
keyPathInEntityMap: "name",
|
|
37
|
+
},
|
|
38
|
+
],
|
|
39
|
+
customConstraints: ({ instanceContent, ...rest }) => {
|
|
40
|
+
if (instanceContent.combat_use && instanceContent.combat_use.kind === "Weapon") {
|
|
41
|
+
return checkWeaponCombatTechniqueIntegrity({
|
|
42
|
+
...rest,
|
|
43
|
+
instanceContent: instanceContent.combat_use.Weapon,
|
|
44
|
+
}, true);
|
|
45
|
+
}
|
|
46
|
+
return [];
|
|
47
|
+
},
|
|
32
48
|
});
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { Entity, IncludeIdentifier, Object, Optional, Required } from "tsondb/schema/def";
|
|
2
2
|
import { src } from "../../source/_PublicationRef.js";
|
|
3
3
|
import { CombatUse, Complexity, Cost, DefaultItemTranslations, StructurePoints, Weight, } from "./_Item.js";
|
|
4
|
+
import { checkWeaponCombatTechniqueIntegrity } from "./_Weapon.js";
|
|
4
5
|
export const Container = Entity(import.meta.url, {
|
|
5
6
|
name: "Container",
|
|
6
7
|
namePlural: "Containers",
|
|
@@ -29,4 +30,19 @@ export const Container = Entity(import.meta.url, {
|
|
|
29
30
|
translations: DefaultItemTranslations("Container"),
|
|
30
31
|
}),
|
|
31
32
|
displayName: {},
|
|
33
|
+
uniqueConstraints: [
|
|
34
|
+
{
|
|
35
|
+
entityMapKeyPath: "translations",
|
|
36
|
+
keyPathInEntityMap: "name",
|
|
37
|
+
},
|
|
38
|
+
],
|
|
39
|
+
customConstraints: ({ instanceContent, ...rest }) => {
|
|
40
|
+
if (instanceContent.combat_use && instanceContent.combat_use.kind === "Weapon") {
|
|
41
|
+
return checkWeaponCombatTechniqueIntegrity({
|
|
42
|
+
...rest,
|
|
43
|
+
instanceContent: instanceContent.combat_use.Weapon,
|
|
44
|
+
}, true);
|
|
45
|
+
}
|
|
46
|
+
return [];
|
|
47
|
+
},
|
|
32
48
|
});
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { Entity, IncludeIdentifier, Object, Optional, Required } from "tsondb/schema/def";
|
|
2
2
|
import { src } from "../../source/_PublicationRef.js";
|
|
3
3
|
import { CombatUse, Cost, DefaultItemTranslations, RestrictedTo, StructurePoints } from "./_Item.js";
|
|
4
|
+
import { checkWeaponCombatTechniqueIntegrity } from "./_Weapon.js";
|
|
4
5
|
export const EquipmentOfBlessedOnes = Entity(import.meta.url, {
|
|
5
6
|
name: "EquipmentOfBlessedOnes",
|
|
6
7
|
namePlural: "EquipmentOfBlessedOnes",
|
|
@@ -25,4 +26,19 @@ export const EquipmentOfBlessedOnes = Entity(import.meta.url, {
|
|
|
25
26
|
translations: DefaultItemTranslations("EquipmentOfBlessedOnes"),
|
|
26
27
|
}),
|
|
27
28
|
displayName: {},
|
|
29
|
+
uniqueConstraints: [
|
|
30
|
+
{
|
|
31
|
+
entityMapKeyPath: "translations",
|
|
32
|
+
keyPathInEntityMap: "name",
|
|
33
|
+
},
|
|
34
|
+
],
|
|
35
|
+
customConstraints: ({ instanceContent, ...rest }) => {
|
|
36
|
+
if (instanceContent.combat_use && instanceContent.combat_use.kind === "Weapon") {
|
|
37
|
+
return checkWeaponCombatTechniqueIntegrity({
|
|
38
|
+
...rest,
|
|
39
|
+
instanceContent: instanceContent.combat_use.Weapon,
|
|
40
|
+
}, true);
|
|
41
|
+
}
|
|
42
|
+
return [];
|
|
43
|
+
},
|
|
28
44
|
});
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { Entity, Enum, EnumCase, Float, IncludeIdentifier, Object, Optional, Required, TypeAlias, } from "tsondb/schema/def";
|
|
2
2
|
import { src } from "../../source/_PublicationRef.js";
|
|
3
3
|
import { CombatUse, Complexity, Cost, DefaultItemTranslations, StructurePoints, Weight, } from "./_Item.js";
|
|
4
|
+
import { checkWeaponCombatTechniqueIntegrity } from "./_Weapon.js";
|
|
4
5
|
export const IlluminationLightSource = Entity(import.meta.url, {
|
|
5
6
|
name: "IlluminationLightSource",
|
|
6
7
|
namePlural: "IlluminationLightSources",
|
|
@@ -33,6 +34,21 @@ export const IlluminationLightSource = Entity(import.meta.url, {
|
|
|
33
34
|
translations: DefaultItemTranslations("IlluminationLightSource"),
|
|
34
35
|
}),
|
|
35
36
|
displayName: {},
|
|
37
|
+
uniqueConstraints: [
|
|
38
|
+
{
|
|
39
|
+
entityMapKeyPath: "translations",
|
|
40
|
+
keyPathInEntityMap: "name",
|
|
41
|
+
},
|
|
42
|
+
],
|
|
43
|
+
customConstraints: ({ instanceContent, ...rest }) => {
|
|
44
|
+
if (instanceContent.combat_use && instanceContent.combat_use.kind === "Weapon") {
|
|
45
|
+
return checkWeaponCombatTechniqueIntegrity({
|
|
46
|
+
...rest,
|
|
47
|
+
instanceContent: instanceContent.combat_use.Weapon,
|
|
48
|
+
}, true);
|
|
49
|
+
}
|
|
50
|
+
return [];
|
|
51
|
+
},
|
|
36
52
|
});
|
|
37
53
|
const BurningTime = Enum(import.meta.url, {
|
|
38
54
|
name: "BurningTime",
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { Entity, IncludeIdentifier, Object, Optional, Required } from "tsondb/schema/def";
|
|
2
2
|
import { src } from "../../source/_PublicationRef.js";
|
|
3
3
|
import { CombatUse, Complexity, Cost, DefaultItemTranslations, StructurePoints, Weight, } from "./_Item.js";
|
|
4
|
+
import { checkWeaponCombatTechniqueIntegrity } from "./_Weapon.js";
|
|
4
5
|
export const IlluminationRefillOrSupply = Entity(import.meta.url, {
|
|
5
6
|
name: "IlluminationRefillOrSupply",
|
|
6
7
|
namePlural: "IlluminationRefillsAndSupplies",
|
|
@@ -29,4 +30,19 @@ export const IlluminationRefillOrSupply = Entity(import.meta.url, {
|
|
|
29
30
|
translations: DefaultItemTranslations("IlluminationRefillOrSupply"),
|
|
30
31
|
}),
|
|
31
32
|
displayName: {},
|
|
33
|
+
uniqueConstraints: [
|
|
34
|
+
{
|
|
35
|
+
entityMapKeyPath: "translations",
|
|
36
|
+
keyPathInEntityMap: "name",
|
|
37
|
+
},
|
|
38
|
+
],
|
|
39
|
+
customConstraints: ({ instanceContent, ...rest }) => {
|
|
40
|
+
if (instanceContent.combat_use && instanceContent.combat_use.kind === "Weapon") {
|
|
41
|
+
return checkWeaponCombatTechniqueIntegrity({
|
|
42
|
+
...rest,
|
|
43
|
+
instanceContent: instanceContent.combat_use.Weapon,
|
|
44
|
+
}, true);
|
|
45
|
+
}
|
|
46
|
+
return [];
|
|
47
|
+
},
|
|
32
48
|
});
|
|
@@ -25,6 +25,12 @@ export const Jewelry = Entity(import.meta.url, {
|
|
|
25
25
|
translations: DefaultItemTranslations("Jewelry"),
|
|
26
26
|
}),
|
|
27
27
|
displayName: {},
|
|
28
|
+
uniqueConstraints: [
|
|
29
|
+
{
|
|
30
|
+
entityMapKeyPath: "translations",
|
|
31
|
+
keyPathInEntityMap: "name",
|
|
32
|
+
},
|
|
33
|
+
],
|
|
28
34
|
});
|
|
29
35
|
const JewelryMaterialDifference = GenTypeAlias(import.meta.url, {
|
|
30
36
|
name: "JewelryMaterialDifference",
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { Entity, IncludeIdentifier, Object, Optional, Required } from "tsondb/schema/def";
|
|
2
2
|
import { src } from "../../source/_PublicationRef.js";
|
|
3
3
|
import { CombatUse, Complexity, Cost, DefaultItemTranslations, StructurePoints, Weight, } from "./_Item.js";
|
|
4
|
+
import { checkWeaponCombatTechniqueIntegrity } from "./_Weapon.js";
|
|
4
5
|
export const Liebesspielzeug = Entity(import.meta.url, {
|
|
5
6
|
name: "Liebesspielzeug",
|
|
6
7
|
namePlural: "Liebesspielzeug",
|
|
@@ -29,4 +30,19 @@ export const Liebesspielzeug = Entity(import.meta.url, {
|
|
|
29
30
|
translations: DefaultItemTranslations("Liebesspielzeug"),
|
|
30
31
|
}),
|
|
31
32
|
displayName: {},
|
|
33
|
+
uniqueConstraints: [
|
|
34
|
+
{
|
|
35
|
+
entityMapKeyPath: "translations",
|
|
36
|
+
keyPathInEntityMap: "name",
|
|
37
|
+
},
|
|
38
|
+
],
|
|
39
|
+
customConstraints: ({ instanceContent, ...rest }) => {
|
|
40
|
+
if (instanceContent.combat_use && instanceContent.combat_use.kind === "Weapon") {
|
|
41
|
+
return checkWeaponCombatTechniqueIntegrity({
|
|
42
|
+
...rest,
|
|
43
|
+
instanceContent: instanceContent.combat_use.Weapon,
|
|
44
|
+
}, true);
|
|
45
|
+
}
|
|
46
|
+
return [];
|
|
47
|
+
},
|
|
32
48
|
});
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { Entity, IncludeIdentifier, Object, Optional, Required } from "tsondb/schema/def";
|
|
2
2
|
import { src } from "../../source/_PublicationRef.js";
|
|
3
3
|
import { CombatUse, Complexity, Cost, DefaultItemTranslations, StructurePoints, Weight, } from "./_Item.js";
|
|
4
|
+
import { checkWeaponCombatTechniqueIntegrity } from "./_Weapon.js";
|
|
4
5
|
export const LuxuryGood = Entity(import.meta.url, {
|
|
5
6
|
name: "LuxuryGood",
|
|
6
7
|
namePlural: "LuxuryGoods",
|
|
@@ -29,4 +30,19 @@ export const LuxuryGood = Entity(import.meta.url, {
|
|
|
29
30
|
translations: DefaultItemTranslations("LuxuryGood"),
|
|
30
31
|
}),
|
|
31
32
|
displayName: {},
|
|
33
|
+
uniqueConstraints: [
|
|
34
|
+
{
|
|
35
|
+
entityMapKeyPath: "translations",
|
|
36
|
+
keyPathInEntityMap: "name",
|
|
37
|
+
},
|
|
38
|
+
],
|
|
39
|
+
customConstraints: ({ instanceContent, ...rest }) => {
|
|
40
|
+
if (instanceContent.combat_use && instanceContent.combat_use.kind === "Weapon") {
|
|
41
|
+
return checkWeaponCombatTechniqueIntegrity({
|
|
42
|
+
...rest,
|
|
43
|
+
instanceContent: instanceContent.combat_use.Weapon,
|
|
44
|
+
}, true);
|
|
45
|
+
}
|
|
46
|
+
return [];
|
|
47
|
+
},
|
|
32
48
|
});
|
|
@@ -3,6 +3,7 @@ import { NestedTranslationMap } from "../../Locale.js";
|
|
|
3
3
|
import { Errata } from "../../source/_Erratum.js";
|
|
4
4
|
import { src } from "../../source/_PublicationRef.js";
|
|
5
5
|
import { CombatUse, Complexity, Cost, StructurePoints, Weight } from "./_Item.js";
|
|
6
|
+
import { checkWeaponCombatTechniqueIntegrity } from "./_Weapon.js";
|
|
6
7
|
export const MagicalArtifact = Entity(import.meta.url, {
|
|
7
8
|
name: "MagicalArtifact",
|
|
8
9
|
namePlural: "MagicalArtifacts",
|
|
@@ -63,4 +64,19 @@ export const MagicalArtifact = Entity(import.meta.url, {
|
|
|
63
64
|
})),
|
|
64
65
|
}),
|
|
65
66
|
displayName: {},
|
|
67
|
+
uniqueConstraints: [
|
|
68
|
+
{
|
|
69
|
+
entityMapKeyPath: "translations",
|
|
70
|
+
keyPathInEntityMap: "name",
|
|
71
|
+
},
|
|
72
|
+
],
|
|
73
|
+
customConstraints: ({ instanceContent, ...rest }) => {
|
|
74
|
+
if (instanceContent.combat_use && instanceContent.combat_use.kind === "Weapon") {
|
|
75
|
+
return checkWeaponCombatTechniqueIntegrity({
|
|
76
|
+
...rest,
|
|
77
|
+
instanceContent: instanceContent.combat_use.Weapon,
|
|
78
|
+
}, true);
|
|
79
|
+
}
|
|
80
|
+
return [];
|
|
81
|
+
},
|
|
66
82
|
});
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { Entity, IncludeIdentifier, Object, Optional, Required } from "tsondb/schema/def";
|
|
2
2
|
import { src } from "../../source/_PublicationRef.js";
|
|
3
3
|
import { CombatUse, Complexity, Cost, DefaultItemTranslations, StructurePoints, Weight, } from "./_Item.js";
|
|
4
|
+
import { checkWeaponCombatTechniqueIntegrity } from "./_Weapon.js";
|
|
4
5
|
export const MusicalInstrument = Entity(import.meta.url, {
|
|
5
6
|
name: "MusicalInstrument",
|
|
6
7
|
namePlural: "MusicalInstruments",
|
|
@@ -29,4 +30,19 @@ export const MusicalInstrument = Entity(import.meta.url, {
|
|
|
29
30
|
translations: DefaultItemTranslations("MusicalInstrument"),
|
|
30
31
|
}),
|
|
31
32
|
displayName: {},
|
|
33
|
+
uniqueConstraints: [
|
|
34
|
+
{
|
|
35
|
+
entityMapKeyPath: "translations",
|
|
36
|
+
keyPathInEntityMap: "name",
|
|
37
|
+
},
|
|
38
|
+
],
|
|
39
|
+
customConstraints: ({ instanceContent, ...rest }) => {
|
|
40
|
+
if (instanceContent.combat_use && instanceContent.combat_use.kind === "Weapon") {
|
|
41
|
+
return checkWeaponCombatTechniqueIntegrity({
|
|
42
|
+
...rest,
|
|
43
|
+
instanceContent: instanceContent.combat_use.Weapon,
|
|
44
|
+
}, true);
|
|
45
|
+
}
|
|
46
|
+
return [];
|
|
47
|
+
},
|
|
32
48
|
});
|
|
@@ -63,6 +63,12 @@ export const Poison = Entity(import.meta.url, {
|
|
|
63
63
|
})),
|
|
64
64
|
}),
|
|
65
65
|
displayName: {},
|
|
66
|
+
uniqueConstraints: [
|
|
67
|
+
{
|
|
68
|
+
entityMapKeyPath: "translations",
|
|
69
|
+
keyPathInEntityMap: "name",
|
|
70
|
+
},
|
|
71
|
+
],
|
|
66
72
|
});
|
|
67
73
|
const PoisonApplicationType = Enum(import.meta.url, {
|
|
68
74
|
name: "PoisonApplicationType",
|
|
@@ -25,4 +25,10 @@ export const ToolOfTheTrade = Entity(import.meta.url, {
|
|
|
25
25
|
translations: DefaultItemTranslations("ToolOfTheTrade"),
|
|
26
26
|
}),
|
|
27
27
|
displayName: {},
|
|
28
|
+
uniqueConstraints: [
|
|
29
|
+
{
|
|
30
|
+
entityMapKeyPath: "translations",
|
|
31
|
+
keyPathInEntityMap: "name",
|
|
32
|
+
},
|
|
33
|
+
],
|
|
28
34
|
});
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { Entity, IncludeIdentifier, Object, Optional, Required } from "tsondb/schema/def";
|
|
2
2
|
import { src } from "../../source/_PublicationRef.js";
|
|
3
3
|
import { CombatUse, Complexity, Cost, DefaultItemTranslations, StructurePoints, Weight, } from "./_Item.js";
|
|
4
|
+
import { checkWeaponCombatTechniqueIntegrity } from "./_Weapon.js";
|
|
4
5
|
export const TravelGearOrTool = Entity(import.meta.url, {
|
|
5
6
|
name: "TravelGearOrTool",
|
|
6
7
|
namePlural: "TravelGearAndTools",
|
|
@@ -29,4 +30,19 @@ export const TravelGearOrTool = Entity(import.meta.url, {
|
|
|
29
30
|
translations: DefaultItemTranslations("TravelGearOrTool"),
|
|
30
31
|
}),
|
|
31
32
|
displayName: {},
|
|
33
|
+
uniqueConstraints: [
|
|
34
|
+
{
|
|
35
|
+
entityMapKeyPath: "translations",
|
|
36
|
+
keyPathInEntityMap: "name",
|
|
37
|
+
},
|
|
38
|
+
],
|
|
39
|
+
customConstraints: ({ instanceContent, ...rest }) => {
|
|
40
|
+
if (instanceContent.combat_use && instanceContent.combat_use.kind === "Weapon") {
|
|
41
|
+
return checkWeaponCombatTechniqueIntegrity({
|
|
42
|
+
...rest,
|
|
43
|
+
instanceContent: instanceContent.combat_use.Weapon,
|
|
44
|
+
}, true);
|
|
45
|
+
}
|
|
46
|
+
return [];
|
|
47
|
+
},
|
|
32
48
|
});
|