@optolith/database-schema 0.76.0 → 0.77.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.
Files changed (37) hide show
  1. package/CHANGELOG.md +16 -0
  2. package/gen/types.d.ts +250 -0
  3. package/lib/main.js +2 -0
  4. package/lib/types/Attribute.js +1 -3
  5. package/lib/types/DerivedCharacteristic.js +1 -3
  6. package/lib/types/Locale.d.ts +7 -0
  7. package/lib/types/Locale.js +7 -0
  8. package/lib/types/SkillGroup.js +1 -3
  9. package/lib/types/SocialStatus.js +1 -0
  10. package/lib/types/Talisman.js +1 -1
  11. package/lib/types/_Identifier.d.ts +2 -0
  12. package/lib/types/_Identifier.js +4 -0
  13. package/lib/types/equipment/item/BandageOrRemedy.js +1 -1
  14. package/lib/types/equipment/item/CeremonialItem.js +1 -1
  15. package/lib/types/equipment/item/Clothes.js +1 -1
  16. package/lib/types/equipment/item/Container.js +1 -1
  17. package/lib/types/equipment/item/EquipmentCategory.d.ts +121 -0
  18. package/lib/types/equipment/item/EquipmentCategory.js +131 -0
  19. package/lib/types/equipment/item/EquipmentOfBlessedOnes.js +1 -1
  20. package/lib/types/equipment/item/IlluminationLightSource.js +1 -1
  21. package/lib/types/equipment/item/IlluminationRefillOrSupply.js +1 -1
  22. package/lib/types/equipment/item/Item.d.ts +287 -0
  23. package/lib/types/equipment/item/Item.js +167 -0
  24. package/lib/types/equipment/item/Liebesspielzeug.js +1 -1
  25. package/lib/types/equipment/item/LuxuryGood.js +1 -1
  26. package/lib/types/equipment/item/MagicalArtifact.js +1 -1
  27. package/lib/types/equipment/item/MusicalInstrument.js +1 -1
  28. package/lib/types/equipment/item/TravelGearOrTool.js +1 -1
  29. package/lib/types/equipment/item/Weapon.js +1 -1
  30. package/lib/types/equipment/item/WeaponAccessory.js +1 -1
  31. package/lib/types/equipment/item/_Item.js +1 -1
  32. package/lib/types/equipment/item/_Weapon.d.ts +2 -2
  33. package/lib/types/equipment/item/_Weapon.js +7 -4
  34. package/lib/types/equipment/item/sub/Reach.js +1 -3
  35. package/lib/types/index.d.ts +2 -0
  36. package/lib/types/index.js +2 -0
  37. package/package.json +9 -9
package/CHANGELOG.md CHANGED
@@ -2,6 +2,22 @@
2
2
 
3
3
  All notable changes to this project will be documented in this file. See [commit-and-tag-version](https://github.com/absolute-version/commit-and-tag-version) for commit guidelines.
4
4
 
5
+ ## [0.77.1](https://github.com/Optolith/database-schema/compare/v0.77.0...v0.77.1) (2026-10-03)
6
+
7
+ ### Features
8
+
9
+ * generic item and equipment category entities ([c154d95](https://github.com/Optolith/database-schema/commit/c154d955d161b02d8d43d13dad8a6b881a333e92))
10
+ * mark entities sortable by index value ([5c8dd28](https://github.com/Optolith/database-schema/commit/5c8dd28937e9176b431cb8e693e816e06fcfb8d5))
11
+
12
+ ## [0.77.0](https://github.com/Optolith/database-schema/compare/v0.76.0...v0.77.0) (2026-10-01)
13
+
14
+ ### ⚠ BREAKING CHANGES
15
+
16
+ * more profession translation parts
17
+
18
+ ### Features
19
+
20
+ * more profession translation parts ([9971ec0](https://github.com/Optolith/database-schema/commit/9971ec01fed1d93aa5fb4f163f9dd51a45affcac))
5
21
  ## [0.76.0](https://github.com/Optolith/database-schema/compare/v0.75.1...v0.76.0) (2026-09-30)
6
22
 
7
23
  ### ⚠ BREAKING CHANGES
package/gen/types.d.ts CHANGED
@@ -65,6 +65,7 @@ export type EntityMap = {
65
65
  Elixir: Elixir
66
66
  ElvenMagicalSong: ElvenMagicalSong
67
67
  Enhancement: Enhancement
68
+ EquipmentCategory: EquipmentCategory
68
69
  EquipmentOfBlessedOnes: EquipmentOfBlessedOnes
69
70
  EquipmentPackage: EquipmentPackage
70
71
  ExperienceLevel: ExperienceLevel
@@ -91,6 +92,7 @@ export type EntityMap = {
91
92
  IlluminationRefillOrSupply: IlluminationRefillOrSupply
92
93
  Influence: Influence
93
94
  InstrumentEnchantment: InstrumentEnchantment
95
+ Item: Item
94
96
  JesterTrick: JesterTrick
95
97
  Jewelry: Jewelry
96
98
  KarmaSpecialAbility: KarmaSpecialAbility
@@ -317,6 +319,7 @@ export type EnumMap = {
317
319
  EncumbranceInfluence: EncumbranceInfluence
318
320
  EnhancementAdventurePoints: EnhancementAdventurePoints
319
321
  EnhancementPrerequisiteGroup: EnhancementPrerequisiteGroup
322
+ EquipmentCategoryType: EquipmentCategoryType
320
323
  EquipmentIdentifier: EquipmentIdentifier
321
324
  ExpressionBasedParameterExpressionValue: ExpressionBasedParameterExpressionValue
322
325
  ExpressionBasedPoisonTimeExpressionValue: ExpressionBasedPoisonTimeExpressionValue
@@ -452,6 +455,7 @@ export type EnumMap = {
452
455
  SlowSkillCastingTimeUnit: SlowSkillCastingTimeUnit
453
456
  SpecialAbilityGroup: SpecialAbilityGroup
454
457
  SpecialAbilityIdentifier: SpecialAbilityIdentifier
458
+ SpecialEquipmentCategoryEntity: SpecialEquipmentCategoryEntity
455
459
  SpecificAffectedTargetCategoryIdentifier: SpecificAffectedTargetCategoryIdentifier
456
460
  SpecificFromSkillSelectOptionCategoryCategoryOperation: SpecificFromSkillSelectOptionCategoryCategoryOperation
457
461
  SpellFilter: SpellFilter
@@ -470,6 +474,7 @@ export type EnumMap = {
470
474
  TradeSecretSelectOptionCategory: TradeSecretSelectOptionCategory
471
475
  TribePrerequisiteGroup: TribePrerequisiteGroup
472
476
  ValueMapStyle: ValueMapStyle
477
+ ValueRule: ValueRule
473
478
  VariantOptionAction: VariantOptionAction<unknown>
474
479
  VariantSpecialAbilityAction: VariantSpecialAbilityAction
475
480
  Volume: Volume
@@ -503,6 +508,7 @@ export type TypeAliasMap = {
503
508
  AllApplicableCloseCombatTechniques: AllApplicableCloseCombatTechniques
504
509
  AllApplicableCombatTechniques: AllApplicableCombatTechniques
505
510
  AllApplicableRangedCombatTechniques: AllApplicableRangedCombatTechniques
511
+ AllowedCombatValues: AllowedCombatValues
506
512
  AlternativeName: AlternativeName
507
513
  AnimalFeed: AnimalFeed
508
514
  AnimalPowers: AnimalPowers
@@ -596,6 +602,7 @@ export type TypeAliasMap = {
596
602
  CustomDurationUnit: CustomDurationUnit
597
603
  CustomMagicalRuneSuboption: CustomMagicalRuneSuboption
598
604
  DaggerRitualArcaneEnergyCost: DaggerRitualArcaneEnergyCost
605
+ DefaultEquipmentCategoryTypeRules: DefaultEquipmentCategoryTypeRules
599
606
  DefaultPrimaryAttributeDamageThreshold: DefaultPrimaryAttributeDamageThreshold
600
607
  DefaultRangedDamage: DefaultRangedDamage
601
608
  DefiniteBookCostVariant: DefiniteBookCostVariant
@@ -2752,6 +2759,12 @@ export interface Locale {
2752
2759
  "The following advantages and disadvantages distinguish Aventurian {$race}. You should choose these advantages and disadvantages. If you don’t want to take them, talk to your GM.": string & { __params: { "race": string } }
2753
2760
  "Uncommon Advantages": string
2754
2761
  "Uncommon Disadvantages": string
2762
+ "all magical and Blessed One advantages": string
2763
+ "all magical and Blessed One disadvantages": string
2764
+ "all Blessed One advantages": string
2765
+ "all Blessed One disadvantages": string
2766
+ "all magical advantages": string
2767
+ "all magical disadvantages": string
2755
2768
  "Language": string
2756
2769
  "Script": string
2757
2770
  "Area Knowledge": string
@@ -2798,6 +2811,7 @@ export interface Locale {
2798
2811
  "{$count} more spellworks totaling {$apValue} AP": string & { __params: { "count": string; "apValue": string } }
2799
2812
  "{$count} from the following list": string & { __params: { "count": string } }
2800
2813
  "The Twelve Blessings": string
2814
+ ".input {$count :number} {{{$count} of the following liturgical chants {$rating}}}": string & { __params: { "count": number; "rating": string } }
2801
2815
  "except for {$list :list type=conjunction}": string & { __params: { "list": string[] } }
2802
2816
  "depends on selected tradition": string
2803
2817
  "Additional Prerequisites": string
@@ -24221,6 +24235,126 @@ export interface ElixirEffectForEachQualityLevel {
24221
24235
  qualityLevels: [string, string, string, string, string, string]
24222
24236
  }
24223
24237
 
24238
+ export interface EquipmentCategory {
24239
+ /**
24240
+ * The position of the category in the list. This has to be a unique value.
24241
+ */
24242
+ position: number
24243
+
24244
+ /**
24245
+ * The type of the equipment category.
24246
+ */
24247
+ type: EquipmentCategoryType
24248
+
24249
+ /**
24250
+ * All translations for the entry, identified by IETF language tag (BCP47).
24251
+ */
24252
+ translations: {
24253
+ [localeId: string]: EquipmentCategoryTranslation
24254
+ }
24255
+ }
24256
+
24257
+ /**
24258
+ * The entity’s identifier. A UUID or a locale code if it is registered as the locale entity.
24259
+ */
24260
+ export type EquipmentCategory_ID = string
24261
+
24262
+ export interface EquipmentCategoryTranslation {
24263
+ /**
24264
+ * The equipment category’s name.
24265
+ */
24266
+ name: string
24267
+ }
24268
+
24269
+ export type EquipmentCategoryType =
24270
+ | {
24271
+ kind: "Default"
24272
+ Default: DefaultEquipmentCategoryTypeRules
24273
+ }
24274
+ | {
24275
+ kind: "Special"
24276
+ Special: SpecialEquipmentCategoryEntity
24277
+ }
24278
+
24279
+ export interface DefaultEquipmentCategoryTypeRules {
24280
+ /**
24281
+ * The combat values that are allowed for this category. If any combat value is allowed and used, advantages, disadvantages and known item specifics are also allowed to be defined for the item.
24282
+ */
24283
+ combatValues: AllowedCombatValues
24284
+
24285
+ /**
24286
+ * Presence of restrictions to certain groups for items in this category.
24287
+ */
24288
+ restrictedTo: ValueRule
24289
+
24290
+ /**
24291
+ * Presence of structure points to certain groups for items in this category.
24292
+ */
24293
+ structurePoints: ValueRule
24294
+
24295
+ /**
24296
+ * Presence of weight to certain groups for items in this category.
24297
+ */
24298
+ weight: ValueRule
24299
+
24300
+ /**
24301
+ * Presence of complexity to certain groups for items in this category.
24302
+ */
24303
+ complexity: ValueRule
24304
+ }
24305
+
24306
+ /**
24307
+ * The combat values that are allowed for this category. If any combat value is allowed and used, advantages, disadvantages and known item specifics are also allowed to be defined for the item.
24308
+ */
24309
+ export interface AllowedCombatValues {
24310
+ /**
24311
+ * Is the item allowed to be used as a weapon?
24312
+ */
24313
+ isWeaponAllowed: boolean
24314
+
24315
+ /**
24316
+ * Is the item allowed to be used as an armor?
24317
+ */
24318
+ isArmorAllowed: boolean
24319
+ }
24320
+
24321
+ /**
24322
+ * Defines if an instance MUST/CAN/MUST NOT define a value for this parameter. If multiple rules apply to the same parameter, the order of precedence is Required > Optional > Prohibited.
24323
+ */
24324
+ export type ValueRule =
24325
+ | {
24326
+ kind: "Required"
24327
+ }
24328
+ | {
24329
+ kind: "Optional"
24330
+ }
24331
+ | {
24332
+ kind: "Prohibited"
24333
+ }
24334
+
24335
+ export type SpecialEquipmentCategoryEntity =
24336
+ | {
24337
+ kind: "AnimalCare"
24338
+ }
24339
+ | {
24340
+ kind: "Book"
24341
+ }
24342
+ | {
24343
+ kind: "Elixir"
24344
+ }
24345
+ | {
24346
+ kind: "GemOrPreciousStone"
24347
+ }
24348
+ | {
24349
+ kind: "Newspaper"
24350
+ }
24351
+ | {
24352
+ kind: "Poison"
24353
+ }
24354
+ | {
24355
+ kind: "WorkingSupernaturalCreature"
24356
+ }
24357
+
24224
24358
  export interface EquipmentOfBlessedOnes {
24225
24359
  /**
24226
24360
  * The cost in silverthalers.
@@ -26125,6 +26259,122 @@ export interface HomunculusTypeTranslation {
26125
26259
  name: string
26126
26260
  }
26127
26261
 
26262
+ export interface Item {
26263
+ /**
26264
+ * The categories this item belongs to.
26265
+ */
26266
+ categories: EquipmentCategory_ID[]
26267
+
26268
+ /**
26269
+ * The cost in silverthalers.
26270
+ */
26271
+ cost: Cost
26272
+
26273
+ /**
26274
+ * The weight in kg.
26275
+ */
26276
+ weight: Weight
26277
+
26278
+ /**
26279
+ * The complexity of crafting the item.
26280
+ */
26281
+ complexity?: Complexity
26282
+
26283
+ /**
26284
+ * The structure points of the item. Use an array if the item consists of multiple components that have individual structure points.
26285
+ */
26286
+ structurePoints: StructurePoints
26287
+
26288
+ /**
26289
+ * A list of stat blocks for each close combat technique this weapon can be used with.
26290
+ */
26291
+ meleeUses?: {
26292
+ [closeCombatTechniqueId: string]: MeleeWeaponUse2
26293
+ }
26294
+
26295
+ /**
26296
+ * A list of stat blocks for each ranged combat technique this weapon can be used with.
26297
+ */
26298
+ rangedUses?: {
26299
+ [rangedCombatTechniqueId: string]: RangedWeaponUse2
26300
+ }
26301
+
26302
+ /**
26303
+ * Stats for this item being used as an armor.
26304
+ */
26305
+ armorUse?: SecondaryArmor
26306
+
26307
+ /**
26308
+ * Define if during character creation this weapon can only be bought by a specific subset of characters.
26309
+ */
26310
+ restrictedTo?: RestrictedTo
26311
+
26312
+ /**
26313
+ * The weapon is a known item, which implies some additional values.
26314
+ */
26315
+ knownItemSpecifics?: KnownItemSpecifics
26316
+
26317
+ /**
26318
+ * References to where in which publications this entry has been defined. Entries may also be added or removed in later printings.
26319
+ */
26320
+ src: PublicationRefs
26321
+
26322
+ /**
26323
+ * All translations for the entry, identified by IETF language tag (BCP47).
26324
+ */
26325
+ translations: {
26326
+ [localeId: string]: ItemTranslation
26327
+ }
26328
+ }
26329
+
26330
+ /**
26331
+ * The entity’s identifier. A UUID or a locale code if it is registered as the locale entity.
26332
+ */
26333
+ export type Item_ID = string
26334
+
26335
+ export type MeleeWeaponUse2 = MeleeWeapon
26336
+
26337
+ export type RangedWeaponUse2 = RangedWeapon
26338
+
26339
+ export interface ItemTranslation {
26340
+ /**
26341
+ * The item’s name.
26342
+ */
26343
+ name: string
26344
+
26345
+ /**
26346
+ * An auxiliary name or label of the item, if available.
26347
+ */
26348
+ secondaryName?: string
26349
+
26350
+ /**
26351
+ * Note text.
26352
+ */
26353
+ note?: string
26354
+
26355
+ /**
26356
+ * Special rules text.
26357
+ */
26358
+ rules?: string
26359
+
26360
+ /**
26361
+ * The weapon advantage text.
26362
+ */
26363
+ advantage?: string
26364
+
26365
+ /**
26366
+ * The weapon disadvantage text.
26367
+ */
26368
+ disadvantage?: string
26369
+
26370
+ /**
26371
+ * The weapon is a known item, which implies some additional values.
26372
+ */
26373
+ knownItemSpecifics?: KnownItemSpecificsTranslation
26374
+
26375
+ errata?: Errata
26376
+ }
26377
+
26128
26378
  /**
26129
26379
  * Meta Conditions are rule elements that work like conditions in the sense that they have four levels with different effects, but which are not explicitly listed as conditions.
26130
26380
  */
package/lib/main.js CHANGED
@@ -63,6 +63,7 @@ export const schema = new Schema([
63
63
  Types.Element,
64
64
  Types.Elixir,
65
65
  Types.ElvenMagicalSong,
66
+ Types.EquipmentCategory,
66
67
  Types.EquipmentOfBlessedOnes,
67
68
  Types.EquipmentPackage,
68
69
  Types.ExperienceLevel,
@@ -87,6 +88,7 @@ export const schema = new Schema([
87
88
  Types.IlluminationLightSource,
88
89
  Types.IlluminationRefillOrSupply,
89
90
  Types.InstrumentEnchantment,
91
+ Types.Item,
90
92
  Types.JesterTrick,
91
93
  Types.Jewelry,
92
94
  Types.KarmaSpecialAbility,
@@ -30,9 +30,7 @@ export const Attribute = DB.Entity(import.meta.url, {
30
30
  })),
31
31
  }),
32
32
  instanceDisplayName: {},
33
- sortOrder: {
34
- keyPath: "position",
35
- },
33
+ sortOrder: { keyPath: "position", isIndex: true },
36
34
  uniqueConstraints: [
37
35
  {
38
36
  keyPath: "position",
@@ -48,9 +48,7 @@ export const DerivedCharacteristic = DB.Entity(import.meta.url, {
48
48
  })),
49
49
  }),
50
50
  instanceDisplayName: {},
51
- sortOrder: {
52
- keyPath: "position",
53
- },
51
+ sortOrder: { keyPath: "position", isIndex: true },
54
52
  uniqueConstraints: [
55
53
  {
56
54
  keyPath: "position",
@@ -1637,6 +1637,12 @@ export declare const Locale: DB.Entity<"Locale", {
1637
1637
  "The following advantages and disadvantages distinguish Aventurian {$race}. You should choose these advantages and disadvantages. If you don\u2019t want to take them, talk to your GM.": null;
1638
1638
  "Uncommon Advantages": null;
1639
1639
  "Uncommon Disadvantages": null;
1640
+ "all magical and Blessed One advantages": null;
1641
+ "all magical and Blessed One disadvantages": null;
1642
+ "all Blessed One advantages": null;
1643
+ "all Blessed One disadvantages": null;
1644
+ "all magical advantages": null;
1645
+ "all magical disadvantages": null;
1640
1646
  Language: null;
1641
1647
  Script: null;
1642
1648
  "Area Knowledge": null;
@@ -1683,6 +1689,7 @@ export declare const Locale: DB.Entity<"Locale", {
1683
1689
  "{$count} more spellworks totaling {$apValue} AP": null;
1684
1690
  "{$count} from the following list": null;
1685
1691
  "The Twelve Blessings": null;
1692
+ ".input {$count :number} {{{$count} of the following liturgical chants {$rating}}}": null;
1686
1693
  "except for {$list :list type=conjunction}": null;
1687
1694
  "depends on selected tradition": null;
1688
1695
  "Additional Prerequisites": null;
@@ -1687,6 +1687,12 @@ export const Locale = DB.Entity(import.meta.url, {
1687
1687
  "The following advantages and disadvantages distinguish Aventurian {$race}. You should choose these advantages and disadvantages. If you don’t want to take them, talk to your GM.": null,
1688
1688
  "Uncommon Advantages": null,
1689
1689
  "Uncommon Disadvantages": null,
1690
+ "all magical and Blessed One advantages": null,
1691
+ "all magical and Blessed One disadvantages": null,
1692
+ "all Blessed One advantages": null,
1693
+ "all Blessed One disadvantages": null,
1694
+ "all magical advantages": null,
1695
+ "all magical disadvantages": null,
1690
1696
  // cultures
1691
1697
  "Language": null,
1692
1698
  "Script": null,
@@ -1735,6 +1741,7 @@ export const Locale = DB.Entity(import.meta.url, {
1735
1741
  "{$count} more spellworks totaling {$apValue} AP": null,
1736
1742
  "{$count} from the following list": null,
1737
1743
  "The Twelve Blessings": null,
1744
+ ".input {$count :number} {{{$count} of the following liturgical chants {$rating}}}": null,
1738
1745
  "except for {$list :list type=conjunction}": null,
1739
1746
  "depends on selected tradition": null,
1740
1747
  "Additional Prerequisites": null,
@@ -30,9 +30,7 @@ export const SkillGroup = DB.Entity(import.meta.url, {
30
30
  })),
31
31
  }),
32
32
  instanceDisplayName: {},
33
- sortOrder: {
34
- keyPath: "position",
35
- },
33
+ sortOrder: { keyPath: "position", isIndex: true },
36
34
  uniqueConstraints: [
37
35
  {
38
36
  keyPath: "position",
@@ -16,6 +16,7 @@ export const SocialStatus = DB.Entity(import.meta.url, {
16
16
  })),
17
17
  }),
18
18
  instanceDisplayName: {},
19
+ sortOrder: { keyPath: "position", isIndex: true },
19
20
  uniqueConstraints: [
20
21
  { keyPath: "position" },
21
22
  {
@@ -81,7 +81,7 @@ export const Talisman = DB.Entity(import.meta.url, {
81
81
  instanceContent: instanceContent.combatUse,
82
82
  getDisplayNameAndId,
83
83
  getInstanceById,
84
- }, { secondary: true })
84
+ })
85
85
  : [],
86
86
  });
87
87
  const TalismanMeleeWeapon = DB.TypeAlias(import.meta.url, {
@@ -61,6 +61,7 @@ export declare const ElementIdentifier: () => R;
61
61
  export declare const ElixirIdentifier: () => R;
62
62
  export declare const ElvenMagicalSongIdentifier: () => R;
63
63
  export declare const EnhancementIdentifier: () => R;
64
+ export declare const EquipmentCategoryIdentifier: () => R;
64
65
  export declare const EquipmentOfBlessedOnesIdentifier: () => R;
65
66
  export declare const ExperienceLevelIdentifier: () => R;
66
67
  export declare const EyeColorIdentifier: () => R;
@@ -85,6 +86,7 @@ export declare const IlluminationLightSourceIdentifier: () => R;
85
86
  export declare const IlluminationRefillOrSupplyIdentifier: () => R;
86
87
  export declare const InfluenceIdentifier: () => R;
87
88
  export declare const InstrumentEnchantmentIdentifier: () => R;
89
+ export declare const ItemIdentifier: () => R;
88
90
  export declare const JesterTrickIdentifier: () => R;
89
91
  export declare const JewelryIdentifier: () => R;
90
92
  export declare const KarmaSpecialAbilityIdentifier: () => R;
@@ -30,12 +30,14 @@ import { Clothes } from "./equipment/item/Clothes.js";
30
30
  import { ClothingPackage } from "./equipment/item/ClothingPackage.js";
31
31
  import { Container } from "./equipment/item/Container.js";
32
32
  import { Elixir } from "./equipment/item/Elixir.js";
33
+ import { EquipmentCategory } from "./equipment/item/EquipmentCategory.js";
33
34
  import { EquipmentOfBlessedOnes } from "./equipment/item/EquipmentOfBlessedOnes.js";
34
35
  import { GemOrPreciousStone } from "./equipment/item/GemOrPreciousStone.js";
35
36
  import { HerbalAid } from "./equipment/item/HerbalAid.js";
36
37
  import { HerbalPreservation } from "./equipment/item/HerbalPreservation.js";
37
38
  import { IlluminationLightSource } from "./equipment/item/IlluminationLightSource.js";
38
39
  import { IlluminationRefillOrSupply } from "./equipment/item/IlluminationRefillOrSupply.js";
40
+ import { Item } from "./equipment/item/Item.js";
39
41
  import { Jewelry } from "./equipment/item/Jewelry.js";
40
42
  import { Laboratory } from "./equipment/item/Laboratory.js";
41
43
  import { Liebesspielzeug } from "./equipment/item/Liebesspielzeug.js";
@@ -225,6 +227,7 @@ export const ElementIdentifier = () => R(Element);
225
227
  export const ElixirIdentifier = () => R(Elixir);
226
228
  export const ElvenMagicalSongIdentifier = () => R(ElvenMagicalSong);
227
229
  export const EnhancementIdentifier = () => R(Enhancement);
230
+ export const EquipmentCategoryIdentifier = () => R(EquipmentCategory);
228
231
  export const EquipmentOfBlessedOnesIdentifier = () => R(EquipmentOfBlessedOnes);
229
232
  export const ExperienceLevelIdentifier = () => R(ExperienceLevel);
230
233
  export const EyeColorIdentifier = () => R(EyeColor);
@@ -249,6 +252,7 @@ export const IlluminationLightSourceIdentifier = () => R(IlluminationLightSource
249
252
  export const IlluminationRefillOrSupplyIdentifier = () => R(IlluminationRefillOrSupply);
250
253
  export const InfluenceIdentifier = () => R(Influence);
251
254
  export const InstrumentEnchantmentIdentifier = () => R(InstrumentEnchantment);
255
+ export const ItemIdentifier = () => R(Item);
252
256
  export const JesterTrickIdentifier = () => R(JesterTrick);
253
257
  export const JewelryIdentifier = () => R(Jewelry);
254
258
  export const KarmaSpecialAbilityIdentifier = () => R(KarmaSpecialAbility);
@@ -41,7 +41,7 @@ export const BandageOrRemedy = DB.Entity(import.meta.url, {
41
41
  return checkWeaponCombatTechniqueIntegrity({
42
42
  ...rest,
43
43
  instanceContent: instanceContent.combat_use.Weapon,
44
- }, { secondary: true });
44
+ });
45
45
  }
46
46
  return [];
47
47
  },
@@ -46,7 +46,7 @@ export const CeremonialItem = DB.Entity(import.meta.url, {
46
46
  return checkWeaponCombatTechniqueIntegrity({
47
47
  ...rest,
48
48
  instanceContent: instanceContent.combat_use.Weapon,
49
- }, { secondary: true });
49
+ });
50
50
  }
51
51
  return [];
52
52
  },
@@ -41,7 +41,7 @@ export const Clothes = DB.Entity(import.meta.url, {
41
41
  return checkWeaponCombatTechniqueIntegrity({
42
42
  ...rest,
43
43
  instanceContent: instanceContent.combat_use.Weapon,
44
- }, { secondary: true });
44
+ });
45
45
  }
46
46
  return [];
47
47
  },
@@ -41,7 +41,7 @@ export const Container = DB.Entity(import.meta.url, {
41
41
  return checkWeaponCombatTechniqueIntegrity({
42
42
  ...rest,
43
43
  instanceContent: instanceContent.combat_use.Weapon,
44
- }, { secondary: true });
44
+ });
45
45
  }
46
46
  return [];
47
47
  },
@@ -0,0 +1,121 @@
1
+ import type { NonEmptyArray } from "@elyukai/utils/array/nonEmpty";
2
+ import * as DB from "tsondb/schema/dsl";
3
+ import type { Case } from "tsondb/schema/gen";
4
+ import type { DefaultEquipmentCategoryTypeRules, EquipmentCategory as EquipmentCategoryType, ValueRule } from "../../../../gen/types.js";
5
+ declare const ValueRule: DB.Enum<"ValueRule", {
6
+ Required: DB.EnumCase<null>;
7
+ Optional: DB.EnumCase<null>;
8
+ Prohibited: DB.EnumCase<null>;
9
+ }, []>;
10
+ declare const EquipmentCategoryType: DB.Enum<"EquipmentCategoryType", {
11
+ Default: DB.EnumCase<DB.IncludeIdentifier<[], DB.TypeAlias<"DefaultEquipmentCategoryTypeRules", DB.Object<{
12
+ combatValues: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"AllowedCombatValues", DB.Object<{
13
+ isWeaponAllowed: DB.MemberDecl<DB.Boolean, true>;
14
+ isArmorAllowed: DB.MemberDecl<DB.Boolean, true>;
15
+ }>, []>>, true>;
16
+ restrictedTo: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"ValueRule", {
17
+ Required: DB.EnumCase<null>;
18
+ Optional: DB.EnumCase<null>;
19
+ Prohibited: DB.EnumCase<null>;
20
+ }, []>>, true>;
21
+ structurePoints: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"ValueRule", {
22
+ Required: DB.EnumCase<null>;
23
+ Optional: DB.EnumCase<null>;
24
+ Prohibited: DB.EnumCase<null>;
25
+ }, []>>, true>;
26
+ weight: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"ValueRule", {
27
+ Required: DB.EnumCase<null>;
28
+ Optional: DB.EnumCase<null>;
29
+ Prohibited: DB.EnumCase<null>;
30
+ }, []>>, true>;
31
+ complexity: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"ValueRule", {
32
+ Required: DB.EnumCase<null>;
33
+ Optional: DB.EnumCase<null>;
34
+ Prohibited: DB.EnumCase<null>;
35
+ }, []>>, true>;
36
+ }>, []>>>;
37
+ Special: DB.EnumCase<DB.IncludeIdentifier<[], DB.Enum<"SpecialEquipmentCategoryEntity", {
38
+ AnimalCare: DB.EnumCase<null>;
39
+ Book: DB.EnumCase<null>;
40
+ Elixir: DB.EnumCase<null>;
41
+ GemOrPreciousStone: DB.EnumCase<null>;
42
+ Newspaper: DB.EnumCase<null>;
43
+ Poison: DB.EnumCase<null>;
44
+ WorkingSupernaturalCreature: DB.EnumCase<null>;
45
+ }, []>>>;
46
+ }, []>;
47
+ declare const DefaultEquipmentCategoryTypeRules: DB.TypeAlias<"DefaultEquipmentCategoryTypeRules", DB.Object<{
48
+ combatValues: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"AllowedCombatValues", DB.Object<{
49
+ isWeaponAllowed: DB.MemberDecl<DB.Boolean, true>;
50
+ isArmorAllowed: DB.MemberDecl<DB.Boolean, true>;
51
+ }>, []>>, true>;
52
+ restrictedTo: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"ValueRule", {
53
+ Required: DB.EnumCase<null>;
54
+ Optional: DB.EnumCase<null>;
55
+ Prohibited: DB.EnumCase<null>;
56
+ }, []>>, true>;
57
+ structurePoints: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"ValueRule", {
58
+ Required: DB.EnumCase<null>;
59
+ Optional: DB.EnumCase<null>;
60
+ Prohibited: DB.EnumCase<null>;
61
+ }, []>>, true>;
62
+ weight: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"ValueRule", {
63
+ Required: DB.EnumCase<null>;
64
+ Optional: DB.EnumCase<null>;
65
+ Prohibited: DB.EnumCase<null>;
66
+ }, []>>, true>;
67
+ complexity: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"ValueRule", {
68
+ Required: DB.EnumCase<null>;
69
+ Optional: DB.EnumCase<null>;
70
+ Prohibited: DB.EnumCase<null>;
71
+ }, []>>, true>;
72
+ }>, []>;
73
+ export declare const EquipmentCategory: DB.Entity<"EquipmentCategory", {
74
+ position: DB.MemberDecl<DB.Integer, true>;
75
+ type: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"EquipmentCategoryType", {
76
+ Default: DB.EnumCase<DB.IncludeIdentifier<[], DB.TypeAlias<"DefaultEquipmentCategoryTypeRules", DB.Object<{
77
+ combatValues: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"AllowedCombatValues", DB.Object<{
78
+ isWeaponAllowed: DB.MemberDecl<DB.Boolean, true>;
79
+ isArmorAllowed: DB.MemberDecl<DB.Boolean, true>;
80
+ }>, []>>, true>;
81
+ restrictedTo: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"ValueRule", {
82
+ Required: DB.EnumCase<null>;
83
+ Optional: DB.EnumCase<null>;
84
+ Prohibited: DB.EnumCase<null>;
85
+ }, []>>, true>;
86
+ structurePoints: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"ValueRule", {
87
+ Required: DB.EnumCase<null>;
88
+ Optional: DB.EnumCase<null>;
89
+ Prohibited: DB.EnumCase<null>;
90
+ }, []>>, true>;
91
+ weight: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"ValueRule", {
92
+ Required: DB.EnumCase<null>;
93
+ Optional: DB.EnumCase<null>;
94
+ Prohibited: DB.EnumCase<null>;
95
+ }, []>>, true>;
96
+ complexity: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"ValueRule", {
97
+ Required: DB.EnumCase<null>;
98
+ Optional: DB.EnumCase<null>;
99
+ Prohibited: DB.EnumCase<null>;
100
+ }, []>>, true>;
101
+ }>, []>>>;
102
+ Special: DB.EnumCase<DB.IncludeIdentifier<[], DB.Enum<"SpecialEquipmentCategoryEntity", {
103
+ AnimalCare: DB.EnumCase<null>;
104
+ Book: DB.EnumCase<null>;
105
+ Elixir: DB.EnumCase<null>;
106
+ GemOrPreciousStone: DB.EnumCase<null>;
107
+ Newspaper: DB.EnumCase<null>;
108
+ Poison: DB.EnumCase<null>;
109
+ WorkingSupernaturalCreature: DB.EnumCase<null>;
110
+ }, []>>>;
111
+ }, []>>, true>;
112
+ translations: DB.MemberDecl<DB.NestedEntityMap<"EquipmentCategoryTranslation", {
113
+ name: DB.MemberDecl<DB.String, true>;
114
+ }>, true>;
115
+ }, undefined>;
116
+ export declare const isEquipmentCategoryOfDefaultType: (category: EquipmentCategoryType) => category is Omit<EquipmentCategoryType, "type"> & {
117
+ type: Case<"Default", DefaultEquipmentCategoryTypeRules>;
118
+ };
119
+ export declare const mergeValueRules: (categories: NonEmptyArray<ValueRule>) => ValueRule["kind"];
120
+ export declare const mergeAllValueRules: (categories: NonEmptyArray<DefaultEquipmentCategoryTypeRules>) => DefaultEquipmentCategoryTypeRules;
121
+ export {};