@optolith/database-schema 0.74.0 → 0.75.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 (92) hide show
  1. package/CHANGELOG.md +15 -0
  2. package/gen/types.d.ts +418 -93
  3. package/lib/cache/activatableSelectOptions.js +70 -32
  4. package/lib/cache/index.d.ts +1 -10
  5. package/lib/cache/index.js +10 -6
  6. package/lib/cache/internal.d.ts +2 -2
  7. package/lib/cache/magicalAndBlessedAdvantagesAndDisadvantages.js +14 -14
  8. package/lib/cache/tradeSecrets.js +3 -3
  9. package/lib/main.d.ts +3 -1
  10. package/lib/main.js +1 -0
  11. package/lib/types/Advantage.d.ts +116 -2
  12. package/lib/types/AnimalDisease.d.ts +6 -3
  13. package/lib/types/Ceremony.d.ts +9 -4
  14. package/lib/types/Disadvantage.d.ts +116 -2
  15. package/lib/types/Disease.d.ts +6 -3
  16. package/lib/types/LiturgicalChant.d.ts +9 -4
  17. package/lib/types/Locale.d.ts +2 -2
  18. package/lib/types/Locale.js +2 -2
  19. package/lib/types/Ritual.d.ts +9 -4
  20. package/lib/types/Settings.d.ts +123 -0
  21. package/lib/types/Settings.js +55 -0
  22. package/lib/types/Spell.d.ts +9 -4
  23. package/lib/types/_ActivatableSelectOptionCategory.d.ts +232 -4
  24. package/lib/types/_ActivatableSelectOptionCategory.js +7 -7
  25. package/lib/types/_ActivatableSelectOptions.d.ts +116 -2
  26. package/lib/types/_DiseasePoison.d.ts +12 -6
  27. package/lib/types/_DiseasePoison.js +40 -5
  28. package/lib/types/_SkillCheck.d.ts +9 -4
  29. package/lib/types/_SkillCheck.js +51 -5
  30. package/lib/types/equipment/item/Poison.d.ts +6 -3
  31. package/lib/types/index.d.ts +1 -0
  32. package/lib/types/index.js +1 -0
  33. package/lib/types/magicalActions/AnimistPower.d.ts +9 -4
  34. package/lib/types/magicalActions/Curse.d.ts +9 -4
  35. package/lib/types/magicalActions/DominationRitual.d.ts +9 -4
  36. package/lib/types/magicalActions/ElvenMagicalSong.d.ts +9 -4
  37. package/lib/types/magicalActions/GoblinRitual.d.ts +9 -4
  38. package/lib/types/magicalActions/JesterTrick.d.ts +9 -4
  39. package/lib/types/magicalActions/MagicalMelody.d.ts +9 -4
  40. package/lib/types/magicalActions/ZibiljaRitual.d.ts +9 -4
  41. package/lib/types/specialAbility/AdvancedCombatSpecialAbility.d.ts +116 -2
  42. package/lib/types/specialAbility/AdvancedKarmaSpecialAbility.d.ts +116 -2
  43. package/lib/types/specialAbility/AdvancedMagicalSpecialAbility.d.ts +116 -2
  44. package/lib/types/specialAbility/AdvancedSkillSpecialAbility.d.ts +116 -2
  45. package/lib/types/specialAbility/AncestorGlyph.d.ts +116 -2
  46. package/lib/types/specialAbility/BlessedTradition.d.ts +116 -2
  47. package/lib/types/specialAbility/BrawlingSpecialAbility.d.ts +116 -2
  48. package/lib/types/specialAbility/CeremonialItemSpecialAbility.d.ts +116 -2
  49. package/lib/types/specialAbility/CombatSpecialAbility.d.ts +116 -2
  50. package/lib/types/specialAbility/CombatStyleSpecialAbility.d.ts +116 -2
  51. package/lib/types/specialAbility/CommandSpecialAbility.d.ts +116 -2
  52. package/lib/types/specialAbility/FamiliarSpecialAbility.d.ts +116 -2
  53. package/lib/types/specialAbility/FatePointSexSpecialAbility.d.ts +116 -2
  54. package/lib/types/specialAbility/FatePointSpecialAbility.d.ts +116 -2
  55. package/lib/types/specialAbility/GeneralSpecialAbility.d.ts +116 -2
  56. package/lib/types/specialAbility/KarmaSpecialAbility.d.ts +116 -2
  57. package/lib/types/specialAbility/LiturgicalStyleSpecialAbility.d.ts +116 -2
  58. package/lib/types/specialAbility/LycantropicGift.d.ts +116 -2
  59. package/lib/types/specialAbility/MagicStyleSpecialAbility.d.ts +116 -2
  60. package/lib/types/specialAbility/MagicalSpecialAbility.d.ts +116 -2
  61. package/lib/types/specialAbility/MagicalTradition.d.ts +116 -2
  62. package/lib/types/specialAbility/PactGift.d.ts +116 -2
  63. package/lib/types/specialAbility/ProtectiveWardingCircleSpecialAbility.d.ts +116 -2
  64. package/lib/types/specialAbility/Sermon.d.ts +116 -2
  65. package/lib/types/specialAbility/SexSpecialAbility.d.ts +116 -2
  66. package/lib/types/specialAbility/SikaryanDrainSpecialAbility.d.ts +116 -2
  67. package/lib/types/specialAbility/SkillStyleSpecialAbility.d.ts +116 -2
  68. package/lib/types/specialAbility/VampiricGift.d.ts +116 -2
  69. package/lib/types/specialAbility/Vision.d.ts +116 -2
  70. package/lib/types/specialAbility/sub/TradeSecret.d.ts +116 -2
  71. package/lib/types/traditionArtifacts/ArcaneOrbEnchantment.d.ts +116 -2
  72. package/lib/types/traditionArtifacts/AttireEnchantment.d.ts +116 -2
  73. package/lib/types/traditionArtifacts/Beutelzauber.d.ts +116 -2
  74. package/lib/types/traditionArtifacts/BowlEnchantment.d.ts +116 -2
  75. package/lib/types/traditionArtifacts/CauldronEnchantment.d.ts +116 -2
  76. package/lib/types/traditionArtifacts/ChronicleEnchantment.d.ts +116 -2
  77. package/lib/types/traditionArtifacts/DaggerRitual.d.ts +116 -2
  78. package/lib/types/traditionArtifacts/FoolsHatEnchantment.d.ts +116 -2
  79. package/lib/types/traditionArtifacts/Haubenzauber.d.ts +116 -2
  80. package/lib/types/traditionArtifacts/InstrumentEnchantment.d.ts +116 -2
  81. package/lib/types/traditionArtifacts/Krallenkettenzauber.d.ts +116 -2
  82. package/lib/types/traditionArtifacts/Kristallkugelzauber.d.ts +116 -2
  83. package/lib/types/traditionArtifacts/OrbEnchantment.d.ts +116 -2
  84. package/lib/types/traditionArtifacts/RingEnchantment.d.ts +116 -2
  85. package/lib/types/traditionArtifacts/SickleRitual.d.ts +116 -2
  86. package/lib/types/traditionArtifacts/SpellSwordEnchantment.d.ts +116 -2
  87. package/lib/types/traditionArtifacts/StaffEnchantment.d.ts +116 -2
  88. package/lib/types/traditionArtifacts/ToyEnchantment.d.ts +116 -2
  89. package/lib/types/traditionArtifacts/Trinkhornzauber.d.ts +116 -2
  90. package/lib/types/traditionArtifacts/WandEnchantment.d.ts +116 -2
  91. package/lib/types/traditionArtifacts/WeaponEnchantment.d.ts +116 -2
  92. package/package.json +6 -3
@@ -19,14 +19,128 @@ export declare const SelectOptionCategory: DB.Enum<"SelectOptionCategory", {
19
19
  specific: DB.MemberDecl<DB.Array<DB.ReferenceIdentifier>, false>;
20
20
  }>, []>>>;
21
21
  Properties: DB.EnumCase<DB.IncludeIdentifier<[], DB.TypeAlias<"PropertiesSelectOptionCategory", DB.Object<{
22
- require_knowledge: DB.MemberDecl<DB.Boolean, false>;
22
+ requireActiveSelectionOnEntry: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"ActivatableIdentifier", {
23
+ ArcaneOrbEnchantment: DB.EnumCase<DB.ReferenceIdentifier>;
24
+ AttireEnchantment: DB.EnumCase<DB.ReferenceIdentifier>;
25
+ Beutelzauber: DB.EnumCase<DB.ReferenceIdentifier>;
26
+ BowlEnchantment: DB.EnumCase<DB.ReferenceIdentifier>;
27
+ CauldronEnchantment: DB.EnumCase<DB.ReferenceIdentifier>;
28
+ ChronicleEnchantment: DB.EnumCase<DB.ReferenceIdentifier>;
29
+ DaggerRitual: DB.EnumCase<DB.ReferenceIdentifier>;
30
+ FoolsHatEnchantment: DB.EnumCase<DB.ReferenceIdentifier>;
31
+ Haubenzauber: DB.EnumCase<DB.ReferenceIdentifier>;
32
+ Hauerkettenzauber: DB.EnumCase<DB.ReferenceIdentifier>;
33
+ InstrumentEnchantment: DB.EnumCase<DB.ReferenceIdentifier>;
34
+ Keulenzauber: DB.EnumCase<DB.ReferenceIdentifier>;
35
+ Krallenkettenzauber: DB.EnumCase<DB.ReferenceIdentifier>;
36
+ Kristallkugelzauber: DB.EnumCase<DB.ReferenceIdentifier>;
37
+ OrbEnchantment: DB.EnumCase<DB.ReferenceIdentifier>;
38
+ RingEnchantment: DB.EnumCase<DB.ReferenceIdentifier>;
39
+ Schweinetrommelzauber: DB.EnumCase<DB.ReferenceIdentifier>;
40
+ SickleRitual: DB.EnumCase<DB.ReferenceIdentifier>;
41
+ SpellSwordEnchantment: DB.EnumCase<DB.ReferenceIdentifier>;
42
+ StaffEnchantment: DB.EnumCase<DB.ReferenceIdentifier>;
43
+ ToyEnchantment: DB.EnumCase<DB.ReferenceIdentifier>;
44
+ Trinkhornzauber: DB.EnumCase<DB.ReferenceIdentifier>;
45
+ WandEnchantment: DB.EnumCase<DB.ReferenceIdentifier>;
46
+ WeaponEnchantment: DB.EnumCase<DB.ReferenceIdentifier>;
47
+ AdvancedCombatSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
48
+ AdvancedKarmaSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
49
+ AdvancedMagicalSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
50
+ AdvancedSkillSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
51
+ AncestorGlyph: DB.EnumCase<DB.ReferenceIdentifier>;
52
+ BlessedTradition: DB.EnumCase<DB.ReferenceIdentifier>;
53
+ BrawlingSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
54
+ CeremonialItemSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
55
+ CombatSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
56
+ CombatStyleSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
57
+ CommandSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
58
+ FamiliarSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
59
+ FatePointSexSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
60
+ FatePointSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
61
+ GeneralSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
62
+ KarmaSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
63
+ LiturgicalStyleSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
64
+ LycantropicGift: DB.EnumCase<DB.ReferenceIdentifier>;
65
+ MagicalSign: DB.EnumCase<DB.ReferenceIdentifier>;
66
+ MagicalSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
67
+ MagicalTradition: DB.EnumCase<DB.ReferenceIdentifier>;
68
+ MagicStyleSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
69
+ PactGift: DB.EnumCase<DB.ReferenceIdentifier>;
70
+ ProtectiveWardingCircleSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
71
+ Sermon: DB.EnumCase<DB.ReferenceIdentifier>;
72
+ SexSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
73
+ SikaryanDrainSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
74
+ SkillStyleSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
75
+ VampiricGift: DB.EnumCase<DB.ReferenceIdentifier>;
76
+ Vision: DB.EnumCase<DB.ReferenceIdentifier>;
77
+ Advantage: DB.EnumCase<DB.ReferenceIdentifier>;
78
+ Disadvantage: DB.EnumCase<DB.ReferenceIdentifier>;
79
+ }, []>>, false>;
23
80
  require_minimum_spellworks_on: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"RequiredMinimumSkillsToBeOnSkillRating", DB.Object<{
24
81
  number: DB.MemberDecl<DB.Integer, true>;
25
82
  rating: DB.MemberDecl<DB.Integer, true>;
26
83
  }>, []>>, false>;
27
84
  }>, []>>>;
28
85
  Aspects: DB.EnumCase<DB.IncludeIdentifier<[], DB.TypeAlias<"AspectSelectOptionCategory", DB.Object<{
29
- require_knowledge: DB.MemberDecl<DB.Boolean, false>;
86
+ requireActiveSelectionOnEntry: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"ActivatableIdentifier", {
87
+ ArcaneOrbEnchantment: DB.EnumCase<DB.ReferenceIdentifier>;
88
+ AttireEnchantment: DB.EnumCase<DB.ReferenceIdentifier>;
89
+ Beutelzauber: DB.EnumCase<DB.ReferenceIdentifier>;
90
+ BowlEnchantment: DB.EnumCase<DB.ReferenceIdentifier>;
91
+ CauldronEnchantment: DB.EnumCase<DB.ReferenceIdentifier>;
92
+ ChronicleEnchantment: DB.EnumCase<DB.ReferenceIdentifier>;
93
+ DaggerRitual: DB.EnumCase<DB.ReferenceIdentifier>;
94
+ FoolsHatEnchantment: DB.EnumCase<DB.ReferenceIdentifier>;
95
+ Haubenzauber: DB.EnumCase<DB.ReferenceIdentifier>;
96
+ Hauerkettenzauber: DB.EnumCase<DB.ReferenceIdentifier>;
97
+ InstrumentEnchantment: DB.EnumCase<DB.ReferenceIdentifier>;
98
+ Keulenzauber: DB.EnumCase<DB.ReferenceIdentifier>;
99
+ Krallenkettenzauber: DB.EnumCase<DB.ReferenceIdentifier>;
100
+ Kristallkugelzauber: DB.EnumCase<DB.ReferenceIdentifier>;
101
+ OrbEnchantment: DB.EnumCase<DB.ReferenceIdentifier>;
102
+ RingEnchantment: DB.EnumCase<DB.ReferenceIdentifier>;
103
+ Schweinetrommelzauber: DB.EnumCase<DB.ReferenceIdentifier>;
104
+ SickleRitual: DB.EnumCase<DB.ReferenceIdentifier>;
105
+ SpellSwordEnchantment: DB.EnumCase<DB.ReferenceIdentifier>;
106
+ StaffEnchantment: DB.EnumCase<DB.ReferenceIdentifier>;
107
+ ToyEnchantment: DB.EnumCase<DB.ReferenceIdentifier>;
108
+ Trinkhornzauber: DB.EnumCase<DB.ReferenceIdentifier>;
109
+ WandEnchantment: DB.EnumCase<DB.ReferenceIdentifier>;
110
+ WeaponEnchantment: DB.EnumCase<DB.ReferenceIdentifier>;
111
+ AdvancedCombatSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
112
+ AdvancedKarmaSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
113
+ AdvancedMagicalSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
114
+ AdvancedSkillSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
115
+ AncestorGlyph: DB.EnumCase<DB.ReferenceIdentifier>;
116
+ BlessedTradition: DB.EnumCase<DB.ReferenceIdentifier>;
117
+ BrawlingSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
118
+ CeremonialItemSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
119
+ CombatSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
120
+ CombatStyleSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
121
+ CommandSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
122
+ FamiliarSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
123
+ FatePointSexSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
124
+ FatePointSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
125
+ GeneralSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
126
+ KarmaSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
127
+ LiturgicalStyleSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
128
+ LycantropicGift: DB.EnumCase<DB.ReferenceIdentifier>;
129
+ MagicalSign: DB.EnumCase<DB.ReferenceIdentifier>;
130
+ MagicalSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
131
+ MagicalTradition: DB.EnumCase<DB.ReferenceIdentifier>;
132
+ MagicStyleSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
133
+ PactGift: DB.EnumCase<DB.ReferenceIdentifier>;
134
+ ProtectiveWardingCircleSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
135
+ Sermon: DB.EnumCase<DB.ReferenceIdentifier>;
136
+ SexSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
137
+ SikaryanDrainSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
138
+ SkillStyleSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
139
+ VampiricGift: DB.EnumCase<DB.ReferenceIdentifier>;
140
+ Vision: DB.EnumCase<DB.ReferenceIdentifier>;
141
+ Advantage: DB.EnumCase<DB.ReferenceIdentifier>;
142
+ Disadvantage: DB.EnumCase<DB.ReferenceIdentifier>;
143
+ }, []>>, false>;
30
144
  use_master_of_suffix_as_name: DB.MemberDecl<DB.Boolean, false>;
31
145
  require_minimum_liturgies_on: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"RequiredMinimumSkillsToBeOnSkillRating", DB.Object<{
32
146
  number: DB.MemberDecl<DB.Integer, true>;
@@ -732,14 +846,128 @@ export declare const TradeSecretSelectOptionCategory: DB.Enum<"TradeSecretSelect
732
846
  specific: DB.MemberDecl<DB.Array<DB.ReferenceIdentifier>, false>;
733
847
  }>, []>>>;
734
848
  Properties: DB.EnumCase<DB.IncludeIdentifier<[], DB.TypeAlias<"PropertiesSelectOptionCategory", DB.Object<{
735
- require_knowledge: DB.MemberDecl<DB.Boolean, false>;
849
+ requireActiveSelectionOnEntry: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"ActivatableIdentifier", {
850
+ ArcaneOrbEnchantment: DB.EnumCase<DB.ReferenceIdentifier>;
851
+ AttireEnchantment: DB.EnumCase<DB.ReferenceIdentifier>;
852
+ Beutelzauber: DB.EnumCase<DB.ReferenceIdentifier>;
853
+ BowlEnchantment: DB.EnumCase<DB.ReferenceIdentifier>;
854
+ CauldronEnchantment: DB.EnumCase<DB.ReferenceIdentifier>;
855
+ ChronicleEnchantment: DB.EnumCase<DB.ReferenceIdentifier>;
856
+ DaggerRitual: DB.EnumCase<DB.ReferenceIdentifier>;
857
+ FoolsHatEnchantment: DB.EnumCase<DB.ReferenceIdentifier>;
858
+ Haubenzauber: DB.EnumCase<DB.ReferenceIdentifier>;
859
+ Hauerkettenzauber: DB.EnumCase<DB.ReferenceIdentifier>;
860
+ InstrumentEnchantment: DB.EnumCase<DB.ReferenceIdentifier>;
861
+ Keulenzauber: DB.EnumCase<DB.ReferenceIdentifier>;
862
+ Krallenkettenzauber: DB.EnumCase<DB.ReferenceIdentifier>;
863
+ Kristallkugelzauber: DB.EnumCase<DB.ReferenceIdentifier>;
864
+ OrbEnchantment: DB.EnumCase<DB.ReferenceIdentifier>;
865
+ RingEnchantment: DB.EnumCase<DB.ReferenceIdentifier>;
866
+ Schweinetrommelzauber: DB.EnumCase<DB.ReferenceIdentifier>;
867
+ SickleRitual: DB.EnumCase<DB.ReferenceIdentifier>;
868
+ SpellSwordEnchantment: DB.EnumCase<DB.ReferenceIdentifier>;
869
+ StaffEnchantment: DB.EnumCase<DB.ReferenceIdentifier>;
870
+ ToyEnchantment: DB.EnumCase<DB.ReferenceIdentifier>;
871
+ Trinkhornzauber: DB.EnumCase<DB.ReferenceIdentifier>;
872
+ WandEnchantment: DB.EnumCase<DB.ReferenceIdentifier>;
873
+ WeaponEnchantment: DB.EnumCase<DB.ReferenceIdentifier>;
874
+ AdvancedCombatSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
875
+ AdvancedKarmaSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
876
+ AdvancedMagicalSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
877
+ AdvancedSkillSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
878
+ AncestorGlyph: DB.EnumCase<DB.ReferenceIdentifier>;
879
+ BlessedTradition: DB.EnumCase<DB.ReferenceIdentifier>;
880
+ BrawlingSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
881
+ CeremonialItemSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
882
+ CombatSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
883
+ CombatStyleSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
884
+ CommandSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
885
+ FamiliarSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
886
+ FatePointSexSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
887
+ FatePointSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
888
+ GeneralSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
889
+ KarmaSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
890
+ LiturgicalStyleSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
891
+ LycantropicGift: DB.EnumCase<DB.ReferenceIdentifier>;
892
+ MagicalSign: DB.EnumCase<DB.ReferenceIdentifier>;
893
+ MagicalSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
894
+ MagicalTradition: DB.EnumCase<DB.ReferenceIdentifier>;
895
+ MagicStyleSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
896
+ PactGift: DB.EnumCase<DB.ReferenceIdentifier>;
897
+ ProtectiveWardingCircleSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
898
+ Sermon: DB.EnumCase<DB.ReferenceIdentifier>;
899
+ SexSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
900
+ SikaryanDrainSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
901
+ SkillStyleSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
902
+ VampiricGift: DB.EnumCase<DB.ReferenceIdentifier>;
903
+ Vision: DB.EnumCase<DB.ReferenceIdentifier>;
904
+ Advantage: DB.EnumCase<DB.ReferenceIdentifier>;
905
+ Disadvantage: DB.EnumCase<DB.ReferenceIdentifier>;
906
+ }, []>>, false>;
736
907
  require_minimum_spellworks_on: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"RequiredMinimumSkillsToBeOnSkillRating", DB.Object<{
737
908
  number: DB.MemberDecl<DB.Integer, true>;
738
909
  rating: DB.MemberDecl<DB.Integer, true>;
739
910
  }>, []>>, false>;
740
911
  }>, []>>>;
741
912
  Aspects: DB.EnumCase<DB.IncludeIdentifier<[], DB.TypeAlias<"AspectSelectOptionCategory", DB.Object<{
742
- require_knowledge: DB.MemberDecl<DB.Boolean, false>;
913
+ requireActiveSelectionOnEntry: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"ActivatableIdentifier", {
914
+ ArcaneOrbEnchantment: DB.EnumCase<DB.ReferenceIdentifier>;
915
+ AttireEnchantment: DB.EnumCase<DB.ReferenceIdentifier>;
916
+ Beutelzauber: DB.EnumCase<DB.ReferenceIdentifier>;
917
+ BowlEnchantment: DB.EnumCase<DB.ReferenceIdentifier>;
918
+ CauldronEnchantment: DB.EnumCase<DB.ReferenceIdentifier>;
919
+ ChronicleEnchantment: DB.EnumCase<DB.ReferenceIdentifier>;
920
+ DaggerRitual: DB.EnumCase<DB.ReferenceIdentifier>;
921
+ FoolsHatEnchantment: DB.EnumCase<DB.ReferenceIdentifier>;
922
+ Haubenzauber: DB.EnumCase<DB.ReferenceIdentifier>;
923
+ Hauerkettenzauber: DB.EnumCase<DB.ReferenceIdentifier>;
924
+ InstrumentEnchantment: DB.EnumCase<DB.ReferenceIdentifier>;
925
+ Keulenzauber: DB.EnumCase<DB.ReferenceIdentifier>;
926
+ Krallenkettenzauber: DB.EnumCase<DB.ReferenceIdentifier>;
927
+ Kristallkugelzauber: DB.EnumCase<DB.ReferenceIdentifier>;
928
+ OrbEnchantment: DB.EnumCase<DB.ReferenceIdentifier>;
929
+ RingEnchantment: DB.EnumCase<DB.ReferenceIdentifier>;
930
+ Schweinetrommelzauber: DB.EnumCase<DB.ReferenceIdentifier>;
931
+ SickleRitual: DB.EnumCase<DB.ReferenceIdentifier>;
932
+ SpellSwordEnchantment: DB.EnumCase<DB.ReferenceIdentifier>;
933
+ StaffEnchantment: DB.EnumCase<DB.ReferenceIdentifier>;
934
+ ToyEnchantment: DB.EnumCase<DB.ReferenceIdentifier>;
935
+ Trinkhornzauber: DB.EnumCase<DB.ReferenceIdentifier>;
936
+ WandEnchantment: DB.EnumCase<DB.ReferenceIdentifier>;
937
+ WeaponEnchantment: DB.EnumCase<DB.ReferenceIdentifier>;
938
+ AdvancedCombatSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
939
+ AdvancedKarmaSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
940
+ AdvancedMagicalSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
941
+ AdvancedSkillSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
942
+ AncestorGlyph: DB.EnumCase<DB.ReferenceIdentifier>;
943
+ BlessedTradition: DB.EnumCase<DB.ReferenceIdentifier>;
944
+ BrawlingSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
945
+ CeremonialItemSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
946
+ CombatSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
947
+ CombatStyleSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
948
+ CommandSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
949
+ FamiliarSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
950
+ FatePointSexSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
951
+ FatePointSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
952
+ GeneralSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
953
+ KarmaSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
954
+ LiturgicalStyleSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
955
+ LycantropicGift: DB.EnumCase<DB.ReferenceIdentifier>;
956
+ MagicalSign: DB.EnumCase<DB.ReferenceIdentifier>;
957
+ MagicalSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
958
+ MagicalTradition: DB.EnumCase<DB.ReferenceIdentifier>;
959
+ MagicStyleSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
960
+ PactGift: DB.EnumCase<DB.ReferenceIdentifier>;
961
+ ProtectiveWardingCircleSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
962
+ Sermon: DB.EnumCase<DB.ReferenceIdentifier>;
963
+ SexSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
964
+ SikaryanDrainSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
965
+ SkillStyleSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
966
+ VampiricGift: DB.EnumCase<DB.ReferenceIdentifier>;
967
+ Vision: DB.EnumCase<DB.ReferenceIdentifier>;
968
+ Advantage: DB.EnumCase<DB.ReferenceIdentifier>;
969
+ Disadvantage: DB.EnumCase<DB.ReferenceIdentifier>;
970
+ }, []>>, false>;
743
971
  use_master_of_suffix_as_name: DB.MemberDecl<DB.Boolean, false>;
744
972
  require_minimum_liturgies_on: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"RequiredMinimumSkillsToBeOnSkillRating", DB.Object<{
745
973
  number: DB.MemberDecl<DB.Integer, true>;
@@ -1,6 +1,6 @@
1
1
  import * as DB from "tsondb/schema/dsl";
2
2
  import { NestedTranslationMap } from "./Locale.js";
3
- import { CeremonyIdentifier, CloseCombatTechniqueIdentifier, ElementIdentifier, LiturgicalChantIdentifier, RangedCombatTechniqueIdentifier, RitualIdentifier, SkillGroupIdentifier, SkillIdentifier, SpellIdentifier, TargetCategoryIdentifier, PropertyIdentifier, } from "./_Identifier.js";
3
+ import { CeremonyIdentifier, CloseCombatTechniqueIdentifier, ElementIdentifier, LiturgicalChantIdentifier, PropertyIdentifier, RangedCombatTechniqueIdentifier, RitualIdentifier, SkillGroupIdentifier, SkillIdentifier, SpellIdentifier, TargetCategoryIdentifier, } from "./_Identifier.js";
4
4
  import { ActivatableIdentifier, CombatTechniqueIdentifier, SkillishIdentifier, } from "./_IdentifierGroup.js";
5
5
  export const SelectOptionCategory = DB.Enum(import.meta.url, {
6
6
  name: "SelectOptionCategory",
@@ -88,9 +88,9 @@ const ElementsSelectOptionCategory = DB.TypeAlias(import.meta.url, {
88
88
  const PropertiesSelectOptionCategory = DB.TypeAlias(import.meta.url, {
89
89
  name: "PropertiesSelectOptionCategory",
90
90
  type: () => DB.Object({
91
- require_knowledge: DB.Optional({
92
- comment: "Does each property require its corresponding property knowledge?",
93
- type: DB.Boolean(),
91
+ requireActiveSelectionOnEntry: DB.Optional({
92
+ comment: "Does each property require it to be active as a selection on an instance?",
93
+ type: DB.IncludeIdentifier(ActivatableIdentifier),
94
94
  }),
95
95
  require_minimum_spellworks_on: DB.Optional({
96
96
  comment: "Require a minimum number of spellworks of the respective property to be on a minimum skill rating.",
@@ -101,9 +101,9 @@ const PropertiesSelectOptionCategory = DB.TypeAlias(import.meta.url, {
101
101
  const AspectSelectOptionCategory = DB.TypeAlias(import.meta.url, {
102
102
  name: "AspectSelectOptionCategory",
103
103
  type: () => DB.Object({
104
- require_knowledge: DB.Optional({
105
- comment: "Does each aspect require its corresponding aspect knowledge?",
106
- type: DB.Boolean(),
104
+ requireActiveSelectionOnEntry: DB.Optional({
105
+ comment: "Does each aspect require it to be active as a selection on an instance?",
106
+ type: DB.IncludeIdentifier(ActivatableIdentifier),
107
107
  }),
108
108
  use_master_of_suffix_as_name: DB.Optional({
109
109
  comment: "The generated name should be the *Master of (Aspect)* suffix for this aspect instead of the aspect's name. If an aspect does not provide a suffix (such as the General aspect), it is automatically excluded from the list.",
@@ -20,14 +20,128 @@ export declare const select_options: DB.MemberDecl<DB.IncludeIdentifier<[], DB.T
20
20
  specific: DB.MemberDecl<DB.Array<DB.ReferenceIdentifier>, false>;
21
21
  }>, []>>>;
22
22
  Properties: DB.EnumCase<DB.IncludeIdentifier<[], DB.TypeAlias<"PropertiesSelectOptionCategory", DB.Object<{
23
- require_knowledge: DB.MemberDecl<DB.Boolean, false>;
23
+ requireActiveSelectionOnEntry: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"ActivatableIdentifier", {
24
+ ArcaneOrbEnchantment: DB.EnumCase<DB.ReferenceIdentifier>;
25
+ AttireEnchantment: DB.EnumCase<DB.ReferenceIdentifier>;
26
+ Beutelzauber: DB.EnumCase<DB.ReferenceIdentifier>;
27
+ BowlEnchantment: DB.EnumCase<DB.ReferenceIdentifier>;
28
+ CauldronEnchantment: DB.EnumCase<DB.ReferenceIdentifier>;
29
+ ChronicleEnchantment: DB.EnumCase<DB.ReferenceIdentifier>;
30
+ DaggerRitual: DB.EnumCase<DB.ReferenceIdentifier>;
31
+ FoolsHatEnchantment: DB.EnumCase<DB.ReferenceIdentifier>;
32
+ Haubenzauber: DB.EnumCase<DB.ReferenceIdentifier>;
33
+ Hauerkettenzauber: DB.EnumCase<DB.ReferenceIdentifier>;
34
+ InstrumentEnchantment: DB.EnumCase<DB.ReferenceIdentifier>;
35
+ Keulenzauber: DB.EnumCase<DB.ReferenceIdentifier>;
36
+ Krallenkettenzauber: DB.EnumCase<DB.ReferenceIdentifier>;
37
+ Kristallkugelzauber: DB.EnumCase<DB.ReferenceIdentifier>;
38
+ OrbEnchantment: DB.EnumCase<DB.ReferenceIdentifier>;
39
+ RingEnchantment: DB.EnumCase<DB.ReferenceIdentifier>;
40
+ Schweinetrommelzauber: DB.EnumCase<DB.ReferenceIdentifier>;
41
+ SickleRitual: DB.EnumCase<DB.ReferenceIdentifier>;
42
+ SpellSwordEnchantment: DB.EnumCase<DB.ReferenceIdentifier>;
43
+ StaffEnchantment: DB.EnumCase<DB.ReferenceIdentifier>;
44
+ ToyEnchantment: DB.EnumCase<DB.ReferenceIdentifier>;
45
+ Trinkhornzauber: DB.EnumCase<DB.ReferenceIdentifier>;
46
+ WandEnchantment: DB.EnumCase<DB.ReferenceIdentifier>;
47
+ WeaponEnchantment: DB.EnumCase<DB.ReferenceIdentifier>;
48
+ AdvancedCombatSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
49
+ AdvancedKarmaSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
50
+ AdvancedMagicalSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
51
+ AdvancedSkillSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
52
+ AncestorGlyph: DB.EnumCase<DB.ReferenceIdentifier>;
53
+ BlessedTradition: DB.EnumCase<DB.ReferenceIdentifier>;
54
+ BrawlingSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
55
+ CeremonialItemSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
56
+ CombatSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
57
+ CombatStyleSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
58
+ CommandSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
59
+ FamiliarSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
60
+ FatePointSexSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
61
+ FatePointSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
62
+ GeneralSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
63
+ KarmaSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
64
+ LiturgicalStyleSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
65
+ LycantropicGift: DB.EnumCase<DB.ReferenceIdentifier>;
66
+ MagicalSign: DB.EnumCase<DB.ReferenceIdentifier>;
67
+ MagicalSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
68
+ MagicalTradition: DB.EnumCase<DB.ReferenceIdentifier>;
69
+ MagicStyleSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
70
+ PactGift: DB.EnumCase<DB.ReferenceIdentifier>;
71
+ ProtectiveWardingCircleSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
72
+ Sermon: DB.EnumCase<DB.ReferenceIdentifier>;
73
+ SexSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
74
+ SikaryanDrainSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
75
+ SkillStyleSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
76
+ VampiricGift: DB.EnumCase<DB.ReferenceIdentifier>;
77
+ Vision: DB.EnumCase<DB.ReferenceIdentifier>;
78
+ Advantage: DB.EnumCase<DB.ReferenceIdentifier>;
79
+ Disadvantage: DB.EnumCase<DB.ReferenceIdentifier>;
80
+ }, []>>, false>;
24
81
  require_minimum_spellworks_on: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"RequiredMinimumSkillsToBeOnSkillRating", DB.Object<{
25
82
  number: DB.MemberDecl<DB.Integer, true>;
26
83
  rating: DB.MemberDecl<DB.Integer, true>;
27
84
  }>, []>>, false>;
28
85
  }>, []>>>;
29
86
  Aspects: DB.EnumCase<DB.IncludeIdentifier<[], DB.TypeAlias<"AspectSelectOptionCategory", DB.Object<{
30
- require_knowledge: DB.MemberDecl<DB.Boolean, false>;
87
+ requireActiveSelectionOnEntry: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"ActivatableIdentifier", {
88
+ ArcaneOrbEnchantment: DB.EnumCase<DB.ReferenceIdentifier>;
89
+ AttireEnchantment: DB.EnumCase<DB.ReferenceIdentifier>;
90
+ Beutelzauber: DB.EnumCase<DB.ReferenceIdentifier>;
91
+ BowlEnchantment: DB.EnumCase<DB.ReferenceIdentifier>;
92
+ CauldronEnchantment: DB.EnumCase<DB.ReferenceIdentifier>;
93
+ ChronicleEnchantment: DB.EnumCase<DB.ReferenceIdentifier>;
94
+ DaggerRitual: DB.EnumCase<DB.ReferenceIdentifier>;
95
+ FoolsHatEnchantment: DB.EnumCase<DB.ReferenceIdentifier>;
96
+ Haubenzauber: DB.EnumCase<DB.ReferenceIdentifier>;
97
+ Hauerkettenzauber: DB.EnumCase<DB.ReferenceIdentifier>;
98
+ InstrumentEnchantment: DB.EnumCase<DB.ReferenceIdentifier>;
99
+ Keulenzauber: DB.EnumCase<DB.ReferenceIdentifier>;
100
+ Krallenkettenzauber: DB.EnumCase<DB.ReferenceIdentifier>;
101
+ Kristallkugelzauber: DB.EnumCase<DB.ReferenceIdentifier>;
102
+ OrbEnchantment: DB.EnumCase<DB.ReferenceIdentifier>;
103
+ RingEnchantment: DB.EnumCase<DB.ReferenceIdentifier>;
104
+ Schweinetrommelzauber: DB.EnumCase<DB.ReferenceIdentifier>;
105
+ SickleRitual: DB.EnumCase<DB.ReferenceIdentifier>;
106
+ SpellSwordEnchantment: DB.EnumCase<DB.ReferenceIdentifier>;
107
+ StaffEnchantment: DB.EnumCase<DB.ReferenceIdentifier>;
108
+ ToyEnchantment: DB.EnumCase<DB.ReferenceIdentifier>;
109
+ Trinkhornzauber: DB.EnumCase<DB.ReferenceIdentifier>;
110
+ WandEnchantment: DB.EnumCase<DB.ReferenceIdentifier>;
111
+ WeaponEnchantment: DB.EnumCase<DB.ReferenceIdentifier>;
112
+ AdvancedCombatSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
113
+ AdvancedKarmaSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
114
+ AdvancedMagicalSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
115
+ AdvancedSkillSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
116
+ AncestorGlyph: DB.EnumCase<DB.ReferenceIdentifier>;
117
+ BlessedTradition: DB.EnumCase<DB.ReferenceIdentifier>;
118
+ BrawlingSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
119
+ CeremonialItemSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
120
+ CombatSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
121
+ CombatStyleSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
122
+ CommandSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
123
+ FamiliarSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
124
+ FatePointSexSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
125
+ FatePointSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
126
+ GeneralSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
127
+ KarmaSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
128
+ LiturgicalStyleSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
129
+ LycantropicGift: DB.EnumCase<DB.ReferenceIdentifier>;
130
+ MagicalSign: DB.EnumCase<DB.ReferenceIdentifier>;
131
+ MagicalSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
132
+ MagicalTradition: DB.EnumCase<DB.ReferenceIdentifier>;
133
+ MagicStyleSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
134
+ PactGift: DB.EnumCase<DB.ReferenceIdentifier>;
135
+ ProtectiveWardingCircleSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
136
+ Sermon: DB.EnumCase<DB.ReferenceIdentifier>;
137
+ SexSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
138
+ SikaryanDrainSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
139
+ SkillStyleSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
140
+ VampiricGift: DB.EnumCase<DB.ReferenceIdentifier>;
141
+ Vision: DB.EnumCase<DB.ReferenceIdentifier>;
142
+ Advantage: DB.EnumCase<DB.ReferenceIdentifier>;
143
+ Disadvantage: DB.EnumCase<DB.ReferenceIdentifier>;
144
+ }, []>>, false>;
31
145
  use_master_of_suffix_as_name: DB.MemberDecl<DB.Boolean, false>;
32
146
  require_minimum_liturgies_on: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"RequiredMinimumSkillsToBeOnSkillRating", DB.Object<{
33
147
  number: DB.MemberDecl<DB.Integer, true>;
@@ -4,14 +4,20 @@
4
4
  import * as DB from "tsondb/schema/dsl";
5
5
  export declare const level: DB.MemberDecl<DB.Integer, true>;
6
6
  export declare const Resistance: DB.Enum<"Resistance", {
7
- Spirit: DB.EnumCase<null>;
8
- Toughness: DB.EnumCase<null>;
9
- LowerOfSpiritAndToughness: DB.EnumCase<null>;
7
+ Single: DB.EnumCase<DB.IncludeIdentifier<[], DB.TypeAlias<"SingleResistance", DB.Object<{
8
+ derivedCharacteristic: DB.MemberDecl<DB.ReferenceIdentifier, true>;
9
+ }>, []>>>;
10
+ Minimum: DB.EnumCase<DB.IncludeIdentifier<[], DB.TypeAlias<"MinimumResistance", DB.Object<{
11
+ derivedCharacteristics: DB.MemberDecl<DB.Array<DB.ReferenceIdentifier>, true>;
12
+ }>, []>>>;
10
13
  }, []>;
11
14
  export declare const resistance: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"Resistance", {
12
- Spirit: DB.EnumCase<null>;
13
- Toughness: DB.EnumCase<null>;
14
- LowerOfSpiritAndToughness: DB.EnumCase<null>;
15
+ Single: DB.EnumCase<DB.IncludeIdentifier<[], DB.TypeAlias<"SingleResistance", DB.Object<{
16
+ derivedCharacteristic: DB.MemberDecl<DB.ReferenceIdentifier, true>;
17
+ }>, []>>>;
18
+ Minimum: DB.EnumCase<DB.IncludeIdentifier<[], DB.TypeAlias<"MinimumResistance", DB.Object<{
19
+ derivedCharacteristics: DB.MemberDecl<DB.Array<DB.ReferenceIdentifier>, true>;
20
+ }>, []>>>;
15
21
  }, []>>, true>;
16
22
  export declare const Cause: DB.TypeAlias<"Cause", DB.Object<{
17
23
  chance: DB.MemberDecl<DB.Integer, false>;
@@ -1,9 +1,11 @@
1
1
  /**
2
2
  * This file defines some shared types for different diseases and poisons.
3
3
  */
4
+ import { isNotNullish, nullableToArray } from "@elyukai/utils/nullable";
4
5
  import * as DB from "tsondb/schema/dsl";
5
6
  import { NestedTranslationMap } from "./Locale.js";
6
7
  import { AlternativeName } from "./_AlternativeNames.js";
8
+ import { DerivedCharacteristicIdentifier } from "./_Identifier.js";
7
9
  import { Errata } from "./source/_Erratum.js";
8
10
  export const level = DB.Required({
9
11
  comment: "The disease’s level.",
@@ -11,17 +13,50 @@ export const level = DB.Required({
11
13
  });
12
14
  export const Resistance = DB.Enum(import.meta.url, {
13
15
  name: "Resistance",
14
- comment: "Depending on the disease, apply Spirit or Toughness as a penalty to the disease roll. It may also happen that the lower of both is applied as a penalty.",
16
+ comment: "Depending on the disease or poison, apply a resistance as a penalty to the disease or poison roll. It may also happen that the minimum is applied as a penalty.",
15
17
  values: () => ({
16
- Spirit: DB.EnumCase({ type: null }),
17
- Toughness: DB.EnumCase({ type: null }),
18
- LowerOfSpiritAndToughness: DB.EnumCase({ type: null }),
18
+ Single: DB.EnumCase({
19
+ type: DB.IncludeIdentifier(SingleResistance),
20
+ }),
21
+ Minimum: DB.EnumCase({
22
+ type: DB.IncludeIdentifier(MinimumResistance),
23
+ }),
19
24
  }),
20
25
  });
21
26
  export const resistance = DB.Required({
22
- comment: "Depending on the disease, apply Spirit or Toughness as a penalty to the disease roll. It may also happen that the lower of both is applied as a penalty.",
27
+ comment: "Depending on the disease or poison, apply Spirit or Toughness as a penalty to the disease or poison roll. It may also happen that the minimum is applied as a penalty.",
23
28
  type: DB.IncludeIdentifier(Resistance),
24
29
  });
30
+ const checkDerivedCharacteristicIsResistance = (id, getInstanceById) => getInstanceById("DerivedCharacteristic", id)?.type?.kind !== "Resistance"
31
+ ? `The derived characteristic with the identifier "${id}" is not a resistance.`
32
+ : undefined;
33
+ const SingleResistance = DB.TypeAlias(import.meta.url, {
34
+ name: "SingleResistance",
35
+ comment: "A single derived characteristic that classifies as a resistance.",
36
+ type: () => DB.Object({
37
+ derivedCharacteristic: DB.Required({
38
+ comment: "The derived characteristic that is used for the skill check.",
39
+ type: DerivedCharacteristicIdentifier(),
40
+ }),
41
+ }),
42
+ customConstraints: ({ instanceContent, getInstanceById }) => nullableToArray(checkDerivedCharacteristicIsResistance(instanceContent.derivedCharacteristic, getInstanceById)),
43
+ });
44
+ const MinimumResistance = DB.TypeAlias(import.meta.url, {
45
+ name: "MinimumResistance",
46
+ comment: "Multiple derived characteristics that classify as resistances whose minimum value represents the actual resistance against the disease.",
47
+ type: () => DB.Object({
48
+ derivedCharacteristics: DB.Required({
49
+ comment: "The derived characteristic that is used for the skill check.",
50
+ type: DB.Array(DerivedCharacteristicIdentifier(), {
51
+ minItems: 2,
52
+ uniqueItems: true,
53
+ }),
54
+ }),
55
+ }),
56
+ customConstraints: ({ instanceContent, getInstanceById }) => instanceContent.derivedCharacteristics
57
+ .map(id => checkDerivedCharacteristicIsResistance(id, getInstanceById))
58
+ .filter(isNotNullish),
59
+ });
25
60
  export const Cause = DB.TypeAlias(import.meta.url, {
26
61
  name: "Cause",
27
62
  comment: "What causes the disease? The GM rolls 1D20 to see if a character gets infected. If the infection check succeeds, the GM makes a disease check to determine the severity of the infection.",
@@ -1,10 +1,15 @@
1
1
  import * as DB from "tsondb/schema/dsl";
2
2
  export declare const SkillCheck: DB.TypeAlias<"SkillCheck", DB.Array<DB.ReferenceIdentifier>, []>;
3
3
  export declare const SkillCheckPenalty: DB.Enum<"SkillCheckPenalty", {
4
- Spirit: DB.EnumCase<null>;
5
- HalfOfSpirit: DB.EnumCase<null>;
6
- Toughness: DB.EnumCase<null>;
7
- HigherOfSpiritAndToughness: DB.EnumCase<null>;
4
+ DerivedCharacteristic: DB.EnumCase<DB.IncludeIdentifier<[], DB.Enum<"DerivedCharacteristicSkillCheckPenalty", {
5
+ Single: DB.EnumCase<DB.IncludeIdentifier<[], DB.TypeAlias<"SingleDerivedCharacteristicSkillCheckPenalty", DB.Object<{
6
+ derivedCharacteristic: DB.MemberDecl<DB.ReferenceIdentifier, true>;
7
+ halved: DB.MemberDecl<DB.Boolean, true>;
8
+ }>, []>>>;
9
+ Maximum: DB.EnumCase<DB.IncludeIdentifier<[], DB.TypeAlias<"MaximumDerivedCharacteristicSkillCheckPenalty", DB.Object<{
10
+ derivedCharacteristics: DB.MemberDecl<DB.Array<DB.ReferenceIdentifier>, true>;
11
+ }>, []>>>;
12
+ }, []>>>;
8
13
  SummoningDifficulty: DB.EnumCase<null>;
9
14
  CreationDifficulty: DB.EnumCase<null>;
10
15
  Object: DB.EnumCase<null>;
@@ -1,5 +1,6 @@
1
+ import { isNotNullish, nullableToArray } from "@elyukai/utils/nullable";
1
2
  import * as DB from "tsondb/schema/dsl";
2
- import { AttributeIdentifier } from "./_Identifier.js";
3
+ import { AttributeIdentifier, DerivedCharacteristicIdentifier } from "./_Identifier.js";
3
4
  export const SkillCheck = DB.TypeAlias(import.meta.url, {
4
5
  name: "SkillCheck",
5
6
  comment: "The attributes’ identifiers of the skill check.",
@@ -12,12 +13,57 @@ export const SkillCheckPenalty = DB.Enum(import.meta.url, {
12
13
  name: "SkillCheckPenalty",
13
14
  comment: "A specific value that represents a penalty for the associated skill check.",
14
15
  values: () => ({
15
- Spirit: DB.EnumCase({ type: null }),
16
- HalfOfSpirit: DB.EnumCase({ type: null }),
17
- Toughness: DB.EnumCase({ type: null }),
18
- HigherOfSpiritAndToughness: DB.EnumCase({ type: null }),
16
+ DerivedCharacteristic: DB.EnumCase({
17
+ type: DB.IncludeIdentifier(DerivedCharacteristicSkillCheckPenalty),
18
+ }),
19
19
  SummoningDifficulty: DB.EnumCase({ type: null }),
20
20
  CreationDifficulty: DB.EnumCase({ type: null }),
21
21
  Object: DB.EnumCase({ type: null }),
22
22
  }),
23
23
  });
24
+ const DerivedCharacteristicSkillCheckPenalty = DB.Enum(import.meta.url, {
25
+ name: "DerivedCharacteristicSkillCheckPenalty",
26
+ comment: "A derived characteristic that classifies as a resistance that represents a penalty for the associated skill check.",
27
+ values: () => ({
28
+ Single: DB.EnumCase({
29
+ type: DB.IncludeIdentifier(SingleDerivedCharacteristicSkillCheckPenalty),
30
+ }),
31
+ Maximum: DB.EnumCase({
32
+ type: DB.IncludeIdentifier(MaximumDerivedCharacteristicSkillCheckPenalty),
33
+ }),
34
+ }),
35
+ });
36
+ const checkDerivedCharacteristicIsResistance = (id, getInstanceById) => getInstanceById("DerivedCharacteristic", id)?.type?.kind !== "Resistance"
37
+ ? `The derived characteristic with the identifier "${id}" is not a resistance.`
38
+ : undefined;
39
+ const SingleDerivedCharacteristicSkillCheckPenalty = DB.TypeAlias(import.meta.url, {
40
+ name: "SingleDerivedCharacteristicSkillCheckPenalty",
41
+ comment: "A single derived characteristic that classifies as a resistance that represents a penalty for the associated skill check. It may be halved for the skill check.",
42
+ type: () => DB.Object({
43
+ derivedCharacteristic: DB.Required({
44
+ comment: "The derived characteristic that is used for the skill check.",
45
+ type: DerivedCharacteristicIdentifier(),
46
+ }),
47
+ halved: DB.Required({
48
+ comment: "Is the penalty halved for this skill check?",
49
+ type: DB.Boolean(),
50
+ }),
51
+ }),
52
+ customConstraints: ({ instanceContent, getInstanceById }) => nullableToArray(checkDerivedCharacteristicIsResistance(instanceContent.derivedCharacteristic, getInstanceById)),
53
+ });
54
+ const MaximumDerivedCharacteristicSkillCheckPenalty = DB.TypeAlias(import.meta.url, {
55
+ name: "MaximumDerivedCharacteristicSkillCheckPenalty",
56
+ comment: "Multiple derived characteristics that classify as resistances whose maximum value represents a penalty for the associated skill check.",
57
+ type: () => DB.Object({
58
+ derivedCharacteristics: DB.Required({
59
+ comment: "The derived characteristic that is used for the skill check.",
60
+ type: DB.Array(DerivedCharacteristicIdentifier(), {
61
+ minItems: 2,
62
+ uniqueItems: true,
63
+ }),
64
+ }),
65
+ }),
66
+ customConstraints: ({ instanceContent, getInstanceById }) => instanceContent.derivedCharacteristics
67
+ .map(id => checkDerivedCharacteristicIsResistance(id, getInstanceById))
68
+ .filter(isNotNullish),
69
+ });
@@ -289,9 +289,12 @@ export declare const Poison: DB.Entity<"Poison", {
289
289
  }>, []>>>;
290
290
  }, []>>, true>;
291
291
  resistance: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"Resistance", {
292
- Spirit: DB.EnumCase<null>;
293
- Toughness: DB.EnumCase<null>;
294
- LowerOfSpiritAndToughness: DB.EnumCase<null>;
292
+ Single: DB.EnumCase<DB.IncludeIdentifier<[], DB.TypeAlias<"SingleResistance", DB.Object<{
293
+ derivedCharacteristic: DB.MemberDecl<DB.ReferenceIdentifier, true>;
294
+ }>, []>>>;
295
+ Minimum: DB.EnumCase<DB.IncludeIdentifier<[], DB.TypeAlias<"MinimumResistance", DB.Object<{
296
+ derivedCharacteristics: DB.MemberDecl<DB.Array<DB.ReferenceIdentifier>, true>;
297
+ }>, []>>>;
295
298
  }, []>>, true>;
296
299
  start: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"PoisonStart", {
297
300
  Immediate: DB.EnumCase<null>;