@optolith/database-schema 0.78.0 → 0.79.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +17 -0
- package/gen/types.d.ts +163 -2
- package/lib/types/Advantage.d.ts +29 -0
- package/lib/types/Advantage.js +2 -1
- package/lib/types/Disadvantage.d.ts +29 -0
- package/lib/types/Disadvantage.js +2 -1
- package/lib/types/_ActivatableSelectOptions.d.ts +930 -1
- package/lib/types/_ActivatableSelectOptions.js +138 -117
- package/lib/types/equipment/item/Armor.d.ts +12 -1
- package/lib/types/equipment/item/Armor.js +14 -5
- package/lib/types/equipment/item/BandageOrRemedy.d.ts +12 -1
- package/lib/types/equipment/item/CeremonialItem.d.ts +12 -1
- package/lib/types/equipment/item/Clothes.d.ts +12 -1
- package/lib/types/equipment/item/Container.d.ts +12 -1
- package/lib/types/equipment/item/EquipmentCategory.d.ts +15 -0
- package/lib/types/equipment/item/EquipmentCategory.js +5 -0
- package/lib/types/equipment/item/EquipmentOfBlessedOnes.d.ts +12 -1
- package/lib/types/equipment/item/IlluminationLightSource.d.ts +21 -1
- package/lib/types/equipment/item/IlluminationLightSource.js +1 -1
- package/lib/types/equipment/item/IlluminationRefillOrSupply.d.ts +12 -1
- package/lib/types/equipment/item/Item.d.ts +21 -1
- package/lib/types/equipment/item/Item.js +19 -9
- package/lib/types/equipment/item/Liebesspielzeug.d.ts +12 -1
- package/lib/types/equipment/item/LuxuryGood.d.ts +12 -1
- package/lib/types/equipment/item/MagicalArtifact.d.ts +12 -1
- package/lib/types/equipment/item/MusicalInstrument.d.ts +12 -1
- package/lib/types/equipment/item/OrienteeringAid.d.ts +12 -1
- package/lib/types/equipment/item/RopeOrChain.d.ts +12 -1
- package/lib/types/equipment/item/Stationery.d.ts +12 -1
- package/lib/types/equipment/item/ThievesTool.d.ts +12 -1
- package/lib/types/equipment/item/TravelGearOrTool.d.ts +12 -1
- package/lib/types/equipment/item/WeaponAccessory.d.ts +12 -1
- package/lib/types/equipment/item/_Item.d.ts +24 -2
- package/lib/types/specialAbility/AdvancedCombatSpecialAbility.d.ts +29 -0
- package/lib/types/specialAbility/AdvancedCombatSpecialAbility.js +2 -1
- package/lib/types/specialAbility/AdvancedKarmaSpecialAbility.d.ts +29 -0
- package/lib/types/specialAbility/AdvancedKarmaSpecialAbility.js +2 -1
- package/lib/types/specialAbility/AdvancedMagicalSpecialAbility.d.ts +29 -0
- package/lib/types/specialAbility/AdvancedMagicalSpecialAbility.js +2 -1
- package/lib/types/specialAbility/AdvancedSkillSpecialAbility.d.ts +29 -0
- package/lib/types/specialAbility/AdvancedSkillSpecialAbility.js +2 -1
- package/lib/types/specialAbility/AncestorGlyph.d.ts +29 -0
- package/lib/types/specialAbility/AncestorGlyph.js +2 -1
- package/lib/types/specialAbility/BlessedTradition.d.ts +29 -0
- package/lib/types/specialAbility/BlessedTradition.js +2 -1
- package/lib/types/specialAbility/BrawlingSpecialAbility.d.ts +29 -0
- package/lib/types/specialAbility/BrawlingSpecialAbility.js +2 -1
- package/lib/types/specialAbility/CeremonialItemSpecialAbility.d.ts +29 -0
- package/lib/types/specialAbility/CeremonialItemSpecialAbility.js +2 -1
- package/lib/types/specialAbility/CombatSpecialAbility.d.ts +29 -0
- package/lib/types/specialAbility/CombatSpecialAbility.js +2 -1
- package/lib/types/specialAbility/CombatStyleSpecialAbility.d.ts +29 -0
- package/lib/types/specialAbility/CombatStyleSpecialAbility.js +3 -2
- package/lib/types/specialAbility/CommandSpecialAbility.d.ts +29 -0
- package/lib/types/specialAbility/CommandSpecialAbility.js +2 -1
- package/lib/types/specialAbility/FamiliarSpecialAbility.d.ts +29 -0
- package/lib/types/specialAbility/FamiliarSpecialAbility.js +2 -1
- package/lib/types/specialAbility/FatePointSexSpecialAbility.d.ts +29 -0
- package/lib/types/specialAbility/FatePointSexSpecialAbility.js +2 -1
- package/lib/types/specialAbility/FatePointSpecialAbility.d.ts +29 -0
- package/lib/types/specialAbility/FatePointSpecialAbility.js +2 -1
- package/lib/types/specialAbility/GeneralSpecialAbility.d.ts +29 -0
- package/lib/types/specialAbility/GeneralSpecialAbility.js +2 -1
- package/lib/types/specialAbility/KarmaSpecialAbility.d.ts +29 -0
- package/lib/types/specialAbility/KarmaSpecialAbility.js +2 -1
- package/lib/types/specialAbility/LiturgicalStyleSpecialAbility.d.ts +29 -0
- package/lib/types/specialAbility/LiturgicalStyleSpecialAbility.js +2 -1
- package/lib/types/specialAbility/LycantropicGift.d.ts +29 -0
- package/lib/types/specialAbility/LycantropicGift.js +2 -1
- package/lib/types/specialAbility/MagicStyleSpecialAbility.d.ts +29 -0
- package/lib/types/specialAbility/MagicStyleSpecialAbility.js +2 -1
- package/lib/types/specialAbility/MagicalSpecialAbility.d.ts +29 -0
- package/lib/types/specialAbility/MagicalSpecialAbility.js +2 -1
- package/lib/types/specialAbility/MagicalTradition.d.ts +29 -0
- package/lib/types/specialAbility/MagicalTradition.js +2 -1
- package/lib/types/specialAbility/PactGift.d.ts +29 -0
- package/lib/types/specialAbility/PactGift.js +2 -1
- package/lib/types/specialAbility/ProtectiveWardingCircleSpecialAbility.d.ts +29 -0
- package/lib/types/specialAbility/ProtectiveWardingCircleSpecialAbility.js +2 -1
- package/lib/types/specialAbility/Sermon.d.ts +29 -0
- package/lib/types/specialAbility/Sermon.js +2 -1
- package/lib/types/specialAbility/SexSpecialAbility.d.ts +29 -0
- package/lib/types/specialAbility/SexSpecialAbility.js +2 -1
- package/lib/types/specialAbility/SikaryanDrainSpecialAbility.d.ts +29 -0
- package/lib/types/specialAbility/SikaryanDrainSpecialAbility.js +2 -1
- package/lib/types/specialAbility/SkillStyleSpecialAbility.d.ts +29 -0
- package/lib/types/specialAbility/SkillStyleSpecialAbility.js +2 -1
- package/lib/types/specialAbility/VampiricGift.d.ts +29 -0
- package/lib/types/specialAbility/VampiricGift.js +2 -1
- package/lib/types/specialAbility/Vision.d.ts +29 -0
- package/lib/types/specialAbility/Vision.js +2 -1
- package/lib/types/traditionArtifacts/ArcaneOrbEnchantment.d.ts +1 -1493
- package/lib/types/traditionArtifacts/ArcaneOrbEnchantment.js +2 -34
- package/lib/types/traditionArtifacts/AttireEnchantment.d.ts +1 -1493
- package/lib/types/traditionArtifacts/AttireEnchantment.js +2 -34
- package/lib/types/traditionArtifacts/Beutelzauber.d.ts +1 -1493
- package/lib/types/traditionArtifacts/Beutelzauber.js +2 -34
- package/lib/types/traditionArtifacts/BowlEnchantment.d.ts +1 -1493
- package/lib/types/traditionArtifacts/BowlEnchantment.js +2 -34
- package/lib/types/traditionArtifacts/CauldronEnchantment.d.ts +1 -1493
- package/lib/types/traditionArtifacts/CauldronEnchantment.js +5 -36
- package/lib/types/traditionArtifacts/ChronicleEnchantment.d.ts +1 -1493
- package/lib/types/traditionArtifacts/ChronicleEnchantment.js +2 -34
- package/lib/types/traditionArtifacts/DaggerRitual.d.ts +1 -1499
- package/lib/types/traditionArtifacts/DaggerRitual.js +5 -34
- package/lib/types/traditionArtifacts/FoolsHatEnchantment.d.ts +1 -1493
- package/lib/types/traditionArtifacts/FoolsHatEnchantment.js +2 -34
- package/lib/types/traditionArtifacts/Haubenzauber.d.ts +1 -1493
- package/lib/types/traditionArtifacts/Haubenzauber.js +2 -34
- package/lib/types/traditionArtifacts/Hauerkettenzauber.d.ts +1 -464
- package/lib/types/traditionArtifacts/Hauerkettenzauber.js +2 -31
- package/lib/types/traditionArtifacts/InstrumentEnchantment.d.ts +1 -1493
- package/lib/types/traditionArtifacts/InstrumentEnchantment.js +2 -34
- package/lib/types/traditionArtifacts/Keulenzauber.d.ts +1 -464
- package/lib/types/traditionArtifacts/Keulenzauber.js +2 -31
- package/lib/types/traditionArtifacts/Krallenkettenzauber.d.ts +1 -1493
- package/lib/types/traditionArtifacts/Krallenkettenzauber.js +2 -34
- package/lib/types/traditionArtifacts/Kristallkugelzauber.d.ts +1 -1493
- package/lib/types/traditionArtifacts/Kristallkugelzauber.js +2 -34
- package/lib/types/traditionArtifacts/OrbEnchantment.d.ts +1 -1493
- package/lib/types/traditionArtifacts/OrbEnchantment.js +2 -34
- package/lib/types/traditionArtifacts/RingEnchantment.d.ts +1 -1493
- package/lib/types/traditionArtifacts/RingEnchantment.js +2 -34
- package/lib/types/traditionArtifacts/Schweinetrommelzauber.d.ts +1 -464
- package/lib/types/traditionArtifacts/Schweinetrommelzauber.js +2 -31
- package/lib/types/traditionArtifacts/SickleRitual.d.ts +1 -1493
- package/lib/types/traditionArtifacts/SickleRitual.js +2 -34
- package/lib/types/traditionArtifacts/SpellSwordEnchantment.d.ts +1 -1493
- package/lib/types/traditionArtifacts/SpellSwordEnchantment.js +2 -34
- package/lib/types/traditionArtifacts/StaffEnchantment.d.ts +1 -1493
- package/lib/types/traditionArtifacts/StaffEnchantment.js +2 -34
- package/lib/types/traditionArtifacts/ToyEnchantment.d.ts +1 -1493
- package/lib/types/traditionArtifacts/ToyEnchantment.js +2 -34
- package/lib/types/traditionArtifacts/Trinkhornzauber.d.ts +1 -1493
- package/lib/types/traditionArtifacts/Trinkhornzauber.js +2 -34
- package/lib/types/traditionArtifacts/WandEnchantment.d.ts +1 -1455
- package/lib/types/traditionArtifacts/WandEnchantment.js +3 -33
- package/lib/types/traditionArtifacts/WeaponEnchantment.d.ts +1 -1493
- package/lib/types/traditionArtifacts/WeaponEnchantment.js +2 -34
- package/lib/types/traditionArtifacts/_shared.d.ts +10 -0
- package/lib/types/traditionArtifacts/_shared.js +40 -3
- package/package.json +1 -1
|
@@ -18,6 +18,10 @@ Note that this is only a full definition of options for simple logic that can be
|
|
|
18
18
|
comment: `An entry category with optional further configuration. All available entries from the specified categories will be included as separate select options. You can also specify a set of groups that should only be included. Groups not mentioned will be excluded then.`,
|
|
19
19
|
type: DB.IncludeIdentifier(SelectOptionCategory),
|
|
20
20
|
}),
|
|
21
|
+
rules: DB.Optional({
|
|
22
|
+
comment: `Rules for how options can be selected and relate to each other. Defaults to a single predefined option if the entry has select options defined, otherwise undefined.`,
|
|
23
|
+
type: DB.IncludeIdentifier(SelectOptionRules),
|
|
24
|
+
}),
|
|
21
25
|
}, { minProperties: 1 }),
|
|
22
26
|
});
|
|
23
27
|
export const select_options = DB.Optional({
|
|
@@ -101,123 +105,140 @@ export const explicit_select_options = DB.Required({
|
|
|
101
105
|
Note that this is only a full definition of options for simple logic that can be made explicit using the more detailed configuration for both derived categories and explicit options. There are quite a few entries whose option logic cannot be fully represented here, so that it needs to be implemented manually.`,
|
|
102
106
|
type: DB.ChildEntities(GeneralSelectOption),
|
|
103
107
|
});
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
108
|
+
const ChildEntityForSelectOption = DB.Enum(import.meta.url, {
|
|
109
|
+
name: "ChildEntityForSelectOption",
|
|
110
|
+
comment: `The possible child entities for select options.`,
|
|
111
|
+
values: () => ({
|
|
112
|
+
SkillApplication: DB.EnumCase({ type: null }),
|
|
113
|
+
}),
|
|
114
|
+
});
|
|
115
|
+
const ChildSelectOptionRuleValue = DB.TypeAlias(import.meta.url, {
|
|
116
|
+
name: "ChildSelectOptionRuleValue",
|
|
117
|
+
type: () => DB.Object({
|
|
118
|
+
parentIndex: DB.Required({
|
|
119
|
+
comment: "The index of the parent select option in the list of selected options.",
|
|
120
|
+
type: DB.Integer({ minimum: 0 }),
|
|
121
|
+
}),
|
|
122
|
+
entity: DB.Required({
|
|
123
|
+
comment: "The entity you can choose from.",
|
|
124
|
+
type: DB.IncludeIdentifier(ChildEntityForSelectOption),
|
|
125
|
+
}),
|
|
126
|
+
}),
|
|
127
|
+
});
|
|
128
|
+
const PredefinedOrTextInputSelectOptionRuleValue = DB.TypeAlias(import.meta.url, {
|
|
129
|
+
name: "PredefinedOrTextInputSelectOptionRuleValue",
|
|
130
|
+
type: () => DB.Object({
|
|
131
|
+
translations: NestedTranslationMap(DB.Required, "PredefinedOrTextInputSelectOptionRuleValue", DB.Object({
|
|
132
|
+
inputLabel: DB.Required({
|
|
133
|
+
comment: "The label for the text input field.",
|
|
134
|
+
type: DB.String({ minLength: 1 }),
|
|
135
|
+
}),
|
|
136
|
+
optionLabel: DB.Required({
|
|
137
|
+
comment: "The label for the extra option in the list of select options that unlocks the text input field.",
|
|
138
|
+
type: DB.String({ minLength: 1 }),
|
|
139
|
+
}),
|
|
140
|
+
})),
|
|
141
|
+
}),
|
|
142
|
+
});
|
|
143
|
+
const TextInputSelectOptionRuleValue = DB.TypeAlias(import.meta.url, {
|
|
144
|
+
name: "TextInputSelectOptionRuleValue",
|
|
145
|
+
type: () => DB.Object({
|
|
146
|
+
translations: NestedTranslationMap(DB.Required, "TextInputSelectOptionRuleValue", DB.Object({
|
|
147
|
+
inputLabel: DB.Required({
|
|
148
|
+
comment: "The label for the text input field.",
|
|
149
|
+
type: DB.String({ minLength: 1 }),
|
|
150
|
+
}),
|
|
151
|
+
})),
|
|
152
|
+
}),
|
|
153
|
+
});
|
|
154
|
+
const SelectOptionRuleValue = DB.Enum(import.meta.url, {
|
|
155
|
+
name: "SelectOptionRuleValue",
|
|
156
|
+
comment: `The possible values for select option rules.`,
|
|
157
|
+
values: () => ({
|
|
158
|
+
Predefined: DB.EnumCase({
|
|
159
|
+
comment: "An entry that has been defined explicitly or derived from a category.",
|
|
160
|
+
type: null,
|
|
161
|
+
}),
|
|
162
|
+
PredefinedOrTextInput: DB.EnumCase({
|
|
163
|
+
comment: "An entry that has been defined explicitly or derived from a category, or a text input if the user sees none of the predefined options fit.",
|
|
164
|
+
type: DB.IncludeIdentifier(PredefinedOrTextInputSelectOptionRuleValue),
|
|
165
|
+
}),
|
|
166
|
+
Child: DB.EnumCase({
|
|
167
|
+
comment: "A child instance of a selected entry, e.g. a skill application for a skill.",
|
|
168
|
+
type: DB.IncludeIdentifier(ChildSelectOptionRuleValue),
|
|
169
|
+
}),
|
|
170
|
+
TextInput: DB.EnumCase({
|
|
171
|
+
comment: "A text input field that can be filled in by the user.",
|
|
172
|
+
type: DB.IncludeIdentifier(TextInputSelectOptionRuleValue),
|
|
173
|
+
}),
|
|
174
|
+
}),
|
|
175
|
+
});
|
|
176
|
+
const SelectOptionRuleMultiple = DB.Enum(import.meta.url, {
|
|
177
|
+
name: "SelectOptionRuleMultiple",
|
|
178
|
+
values: () => ({
|
|
179
|
+
Constant: DB.EnumCase({
|
|
180
|
+
comment: "A fixed number of options that have to be selected.",
|
|
181
|
+
type: DB.Integer({ minimum: 2 }),
|
|
182
|
+
}),
|
|
183
|
+
Range: DB.EnumCase({
|
|
184
|
+
comment: "A range of numbers of options that can be selected.",
|
|
185
|
+
type: DB.Object({
|
|
186
|
+
min: DB.Optional({
|
|
187
|
+
comment: "The minimum number of options that need to be selected. If left empty it defaults to 1.",
|
|
188
|
+
type: DB.Integer({ minimum: 2 }),
|
|
189
|
+
}),
|
|
190
|
+
max: DB.Required({
|
|
191
|
+
comment: "The maximum number of options that need to be selected.",
|
|
192
|
+
type: DB.Integer({ minimum: 2 }),
|
|
193
|
+
}),
|
|
194
|
+
}),
|
|
195
|
+
}),
|
|
196
|
+
}),
|
|
197
|
+
});
|
|
198
|
+
const SelectOptionRule = DB.TypeAlias(import.meta.url, {
|
|
199
|
+
name: "SelectOptionRule",
|
|
200
|
+
comment: `A rule for how options can be selected and relate to each other.`,
|
|
201
|
+
type: () => DB.Object({
|
|
202
|
+
value: DB.Required({
|
|
203
|
+
comment: "The value of the rule.",
|
|
204
|
+
type: DB.IncludeIdentifier(SelectOptionRuleValue),
|
|
205
|
+
}),
|
|
206
|
+
multiple: DB.Optional({
|
|
207
|
+
comment: "Sometimes, multiple options from a single list have to or can be chosen.",
|
|
208
|
+
type: DB.IncludeIdentifier(SelectOptionRuleMultiple),
|
|
209
|
+
}),
|
|
210
|
+
}),
|
|
211
|
+
});
|
|
212
|
+
export const SelectOptionRules = DB.TypeAlias(import.meta.url, {
|
|
213
|
+
name: "SelectOptionRules",
|
|
214
|
+
comment: `Rules for how options can be selected and relate to each other. Defaults to a single predefined option if the entry has select options defined, otherwise undefined.`,
|
|
215
|
+
type: () => DB.Array(DB.IncludeIdentifier(SelectOptionRule), { minItems: 1 }),
|
|
216
|
+
});
|
|
217
|
+
export const verifySelectOptionRules = (_entity, deps) => {
|
|
218
|
+
const errorMessages = [];
|
|
219
|
+
const rules = deps.instanceContent.select_options?.rules;
|
|
220
|
+
if (rules) {
|
|
221
|
+
const normalizedRules = rules.flatMap(rule => rule.multiple
|
|
222
|
+
? Array.from({
|
|
223
|
+
length: rule.multiple.kind === "Constant"
|
|
224
|
+
? rule.multiple.Constant
|
|
225
|
+
: rule.multiple.Range.max,
|
|
226
|
+
}, () => rule)
|
|
227
|
+
: [rule]);
|
|
228
|
+
for (const [ruleIndex, rule] of rules.entries()) {
|
|
229
|
+
if (rule.multiple?.kind === "Range" && ruleIndex !== rules.length - 1) {
|
|
230
|
+
errorMessages.push("A select option rule with a range of multiple options can only be the last rule in the list.");
|
|
231
|
+
}
|
|
232
|
+
if (rule.value.kind === "Child") {
|
|
233
|
+
const parentRule = normalizedRules[rule.value.Child.parentIndex];
|
|
234
|
+
if (!parentRule || parentRule.value.kind !== "Predefined") {
|
|
235
|
+
errorMessages.push("A child select option rule must reference a predefined select option rule as its parent.");
|
|
236
|
+
}
|
|
237
|
+
}
|
|
238
|
+
}
|
|
239
|
+
}
|
|
240
|
+
return errorMessages;
|
|
241
|
+
};
|
|
221
242
|
/**
|
|
222
243
|
* Stub for once option rules are formalized in the database schema.
|
|
223
244
|
*/
|
|
@@ -224,7 +224,18 @@ export declare const SecondaryArmor: DB.TypeAlias<"SecondaryArmor", DB.Object<{
|
|
|
224
224
|
protection: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"Protection", DB.Integer, []>>, true>;
|
|
225
225
|
encumbrance: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"Encumbrance", DB.Integer, []>>, true>;
|
|
226
226
|
has_additional_penalties: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"HasAdditionalPenalties", DB.Boolean, []>>, true>;
|
|
227
|
-
|
|
227
|
+
armorType: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"ArmorType", {
|
|
228
|
+
Standard: DB.EnumCase<DB.IncludeIdentifier<[], DB.TypeAlias<"StandardArmorType", DB.Object<{
|
|
229
|
+
sturdinessRating: DB.MemberDecl<DB.Integer, true>;
|
|
230
|
+
}>, []>>>;
|
|
231
|
+
StandardVariant: DB.EnumCase<DB.IncludeIdentifier<[], DB.TypeAlias<"StandardVariantArmorType", DB.Object<{
|
|
232
|
+
variantOf: DB.MemberDecl<DB.ReferenceIdentifier, true>;
|
|
233
|
+
sturdinessRating: DB.MemberDecl<DB.Integer, true>;
|
|
234
|
+
}>, []>>>;
|
|
235
|
+
Variant: DB.EnumCase<DB.IncludeIdentifier<[], DB.TypeAlias<"VariantArmorType", DB.Object<{
|
|
236
|
+
variantOf: DB.MemberDecl<DB.ReferenceIdentifier, true>;
|
|
237
|
+
}>, []>>>;
|
|
238
|
+
}, []>>, true>;
|
|
228
239
|
hit_zone: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"HitZone", {
|
|
229
240
|
Head: DB.EnumCase<DB.IncludeIdentifier<[], DB.TypeAlias<"HeadHitZone", DB.Object<{
|
|
230
241
|
combination_possibilities: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"HeadHitZoneCombinationPossibilities", DB.Object<{
|
|
@@ -112,7 +112,9 @@ const StandardArmorType = DB.TypeAlias(import.meta.url, {
|
|
|
112
112
|
}),
|
|
113
113
|
});
|
|
114
114
|
const validateArmorTypeReference = (deps) => [
|
|
115
|
-
deps.getInstanceById("Armor", deps.instanceContent.variantOf)?.armorType.kind !== "Standard"
|
|
115
|
+
deps.getInstanceById("Armor", deps.instanceContent.variantOf)?.armorType.kind !== "Standard" &&
|
|
116
|
+
deps.getInstanceById("Item", deps.instanceContent.variantOf)?.armorUse?.armorType.kind !==
|
|
117
|
+
"Standard"
|
|
116
118
|
? "The armor is a variant of a standard armor, but the referenced armor is not a standard armor."
|
|
117
119
|
: undefined,
|
|
118
120
|
].filter(isNotNullish);
|
|
@@ -157,9 +159,9 @@ export const SecondaryArmor = DB.TypeAlias(import.meta.url, {
|
|
|
157
159
|
comment: "Does the armor have additional penalties (MOV -1, INI -1)?",
|
|
158
160
|
type: DB.IncludeIdentifier(HasAdditionalPenalties),
|
|
159
161
|
}),
|
|
160
|
-
|
|
161
|
-
comment: "The
|
|
162
|
-
type:
|
|
162
|
+
armorType: DB.Required({
|
|
163
|
+
comment: "The armor type.",
|
|
164
|
+
type: DB.IncludeIdentifier(ArmorType),
|
|
163
165
|
}),
|
|
164
166
|
hit_zone: DB.Optional({
|
|
165
167
|
comment: "Specify if armor is only available for a specific hit zone.",
|
|
@@ -180,7 +182,14 @@ export const SecondaryArmor = DB.TypeAlias(import.meta.url, {
|
|
|
180
182
|
}),
|
|
181
183
|
}, { minProperties: 1 })),
|
|
182
184
|
}),
|
|
183
|
-
customConstraints:
|
|
185
|
+
customConstraints: ({ instanceContent, ...deps }) => instanceContent.armorType.kind !== "Standard"
|
|
186
|
+
? validateArmorTypeReference({
|
|
187
|
+
...deps,
|
|
188
|
+
instanceContent: instanceContent.armorType.kind === "Variant"
|
|
189
|
+
? instanceContent.armorType.Variant
|
|
190
|
+
: instanceContent.armorType.StandardVariant,
|
|
191
|
+
})
|
|
192
|
+
: [],
|
|
184
193
|
});
|
|
185
194
|
const ArmorComplexity = DB.Enum(import.meta.url, {
|
|
186
195
|
name: "ArmorComplexity",
|
|
@@ -148,7 +148,18 @@ export declare const BandageOrRemedy: DB.Entity<"BandageOrRemedy", {
|
|
|
148
148
|
protection: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"Protection", DB.Integer, []>>, true>;
|
|
149
149
|
encumbrance: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"Encumbrance", DB.Integer, []>>, true>;
|
|
150
150
|
has_additional_penalties: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"HasAdditionalPenalties", DB.Boolean, []>>, true>;
|
|
151
|
-
|
|
151
|
+
armorType: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"ArmorType", {
|
|
152
|
+
Standard: DB.EnumCase<DB.IncludeIdentifier<[], DB.TypeAlias<"StandardArmorType", DB.Object<{
|
|
153
|
+
sturdinessRating: DB.MemberDecl<DB.Integer, true>;
|
|
154
|
+
}>, []>>>;
|
|
155
|
+
StandardVariant: DB.EnumCase<DB.IncludeIdentifier<[], DB.TypeAlias<"StandardVariantArmorType", DB.Object<{
|
|
156
|
+
variantOf: DB.MemberDecl<DB.ReferenceIdentifier, true>;
|
|
157
|
+
sturdinessRating: DB.MemberDecl<DB.Integer, true>;
|
|
158
|
+
}>, []>>>;
|
|
159
|
+
Variant: DB.EnumCase<DB.IncludeIdentifier<[], DB.TypeAlias<"VariantArmorType", DB.Object<{
|
|
160
|
+
variantOf: DB.MemberDecl<DB.ReferenceIdentifier, true>;
|
|
161
|
+
}>, []>>>;
|
|
162
|
+
}, []>>, true>;
|
|
152
163
|
hit_zone: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"HitZone", {
|
|
153
164
|
Head: DB.EnumCase<DB.IncludeIdentifier<[], DB.TypeAlias<"HeadHitZone", DB.Object<{
|
|
154
165
|
combination_possibilities: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"HeadHitZoneCombinationPossibilities", DB.Object<{
|
|
@@ -149,7 +149,18 @@ export declare const CeremonialItem: DB.Entity<"CeremonialItem", {
|
|
|
149
149
|
protection: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"Protection", DB.Integer, []>>, true>;
|
|
150
150
|
encumbrance: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"Encumbrance", DB.Integer, []>>, true>;
|
|
151
151
|
has_additional_penalties: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"HasAdditionalPenalties", DB.Boolean, []>>, true>;
|
|
152
|
-
|
|
152
|
+
armorType: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"ArmorType", {
|
|
153
|
+
Standard: DB.EnumCase<DB.IncludeIdentifier<[], DB.TypeAlias<"StandardArmorType", DB.Object<{
|
|
154
|
+
sturdinessRating: DB.MemberDecl<DB.Integer, true>;
|
|
155
|
+
}>, []>>>;
|
|
156
|
+
StandardVariant: DB.EnumCase<DB.IncludeIdentifier<[], DB.TypeAlias<"StandardVariantArmorType", DB.Object<{
|
|
157
|
+
variantOf: DB.MemberDecl<DB.ReferenceIdentifier, true>;
|
|
158
|
+
sturdinessRating: DB.MemberDecl<DB.Integer, true>;
|
|
159
|
+
}>, []>>>;
|
|
160
|
+
Variant: DB.EnumCase<DB.IncludeIdentifier<[], DB.TypeAlias<"VariantArmorType", DB.Object<{
|
|
161
|
+
variantOf: DB.MemberDecl<DB.ReferenceIdentifier, true>;
|
|
162
|
+
}>, []>>>;
|
|
163
|
+
}, []>>, true>;
|
|
153
164
|
hit_zone: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"HitZone", {
|
|
154
165
|
Head: DB.EnumCase<DB.IncludeIdentifier<[], DB.TypeAlias<"HeadHitZone", DB.Object<{
|
|
155
166
|
combination_possibilities: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"HeadHitZoneCombinationPossibilities", DB.Object<{
|
|
@@ -148,7 +148,18 @@ export declare const Clothes: DB.Entity<"Clothes", {
|
|
|
148
148
|
protection: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"Protection", DB.Integer, []>>, true>;
|
|
149
149
|
encumbrance: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"Encumbrance", DB.Integer, []>>, true>;
|
|
150
150
|
has_additional_penalties: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"HasAdditionalPenalties", DB.Boolean, []>>, true>;
|
|
151
|
-
|
|
151
|
+
armorType: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"ArmorType", {
|
|
152
|
+
Standard: DB.EnumCase<DB.IncludeIdentifier<[], DB.TypeAlias<"StandardArmorType", DB.Object<{
|
|
153
|
+
sturdinessRating: DB.MemberDecl<DB.Integer, true>;
|
|
154
|
+
}>, []>>>;
|
|
155
|
+
StandardVariant: DB.EnumCase<DB.IncludeIdentifier<[], DB.TypeAlias<"StandardVariantArmorType", DB.Object<{
|
|
156
|
+
variantOf: DB.MemberDecl<DB.ReferenceIdentifier, true>;
|
|
157
|
+
sturdinessRating: DB.MemberDecl<DB.Integer, true>;
|
|
158
|
+
}>, []>>>;
|
|
159
|
+
Variant: DB.EnumCase<DB.IncludeIdentifier<[], DB.TypeAlias<"VariantArmorType", DB.Object<{
|
|
160
|
+
variantOf: DB.MemberDecl<DB.ReferenceIdentifier, true>;
|
|
161
|
+
}>, []>>>;
|
|
162
|
+
}, []>>, true>;
|
|
152
163
|
hit_zone: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"HitZone", {
|
|
153
164
|
Head: DB.EnumCase<DB.IncludeIdentifier<[], DB.TypeAlias<"HeadHitZone", DB.Object<{
|
|
154
165
|
combination_possibilities: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"HeadHitZoneCombinationPossibilities", DB.Object<{
|
|
@@ -148,7 +148,18 @@ export declare const Container: DB.Entity<"Container", {
|
|
|
148
148
|
protection: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"Protection", DB.Integer, []>>, true>;
|
|
149
149
|
encumbrance: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"Encumbrance", DB.Integer, []>>, true>;
|
|
150
150
|
has_additional_penalties: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"HasAdditionalPenalties", DB.Boolean, []>>, true>;
|
|
151
|
-
|
|
151
|
+
armorType: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"ArmorType", {
|
|
152
|
+
Standard: DB.EnumCase<DB.IncludeIdentifier<[], DB.TypeAlias<"StandardArmorType", DB.Object<{
|
|
153
|
+
sturdinessRating: DB.MemberDecl<DB.Integer, true>;
|
|
154
|
+
}>, []>>>;
|
|
155
|
+
StandardVariant: DB.EnumCase<DB.IncludeIdentifier<[], DB.TypeAlias<"StandardVariantArmorType", DB.Object<{
|
|
156
|
+
variantOf: DB.MemberDecl<DB.ReferenceIdentifier, true>;
|
|
157
|
+
sturdinessRating: DB.MemberDecl<DB.Integer, true>;
|
|
158
|
+
}>, []>>>;
|
|
159
|
+
Variant: DB.EnumCase<DB.IncludeIdentifier<[], DB.TypeAlias<"VariantArmorType", DB.Object<{
|
|
160
|
+
variantOf: DB.MemberDecl<DB.ReferenceIdentifier, true>;
|
|
161
|
+
}>, []>>>;
|
|
162
|
+
}, []>>, true>;
|
|
152
163
|
hit_zone: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"HitZone", {
|
|
153
164
|
Head: DB.EnumCase<DB.IncludeIdentifier<[], DB.TypeAlias<"HeadHitZone", DB.Object<{
|
|
154
165
|
combination_possibilities: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"HeadHitZoneCombinationPossibilities", DB.Object<{
|
|
@@ -33,6 +33,11 @@ declare const EquipmentCategoryType: DB.Enum<"EquipmentCategoryType", {
|
|
|
33
33
|
Optional: DB.EnumCase<null>;
|
|
34
34
|
Prohibited: DB.EnumCase<null>;
|
|
35
35
|
}, []>>, true>;
|
|
36
|
+
burningTime: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"ValueRule", {
|
|
37
|
+
Required: DB.EnumCase<null>;
|
|
38
|
+
Optional: DB.EnumCase<null>;
|
|
39
|
+
Prohibited: DB.EnumCase<null>;
|
|
40
|
+
}, []>>, true>;
|
|
36
41
|
}>, []>>>;
|
|
37
42
|
Special: DB.EnumCase<DB.IncludeIdentifier<[], DB.Enum<"SpecialEquipmentCategoryEntity", {
|
|
38
43
|
AnimalCare: DB.EnumCase<null>;
|
|
@@ -69,6 +74,11 @@ declare const DefaultEquipmentCategoryTypeRules: DB.TypeAlias<"DefaultEquipmentC
|
|
|
69
74
|
Optional: DB.EnumCase<null>;
|
|
70
75
|
Prohibited: DB.EnumCase<null>;
|
|
71
76
|
}, []>>, true>;
|
|
77
|
+
burningTime: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"ValueRule", {
|
|
78
|
+
Required: DB.EnumCase<null>;
|
|
79
|
+
Optional: DB.EnumCase<null>;
|
|
80
|
+
Prohibited: DB.EnumCase<null>;
|
|
81
|
+
}, []>>, true>;
|
|
72
82
|
}>, []>;
|
|
73
83
|
export declare const EquipmentCategory: DB.Entity<"EquipmentCategory", {
|
|
74
84
|
position: DB.MemberDecl<DB.Integer, true>;
|
|
@@ -98,6 +108,11 @@ export declare const EquipmentCategory: DB.Entity<"EquipmentCategory", {
|
|
|
98
108
|
Optional: DB.EnumCase<null>;
|
|
99
109
|
Prohibited: DB.EnumCase<null>;
|
|
100
110
|
}, []>>, true>;
|
|
111
|
+
burningTime: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"ValueRule", {
|
|
112
|
+
Required: DB.EnumCase<null>;
|
|
113
|
+
Optional: DB.EnumCase<null>;
|
|
114
|
+
Prohibited: DB.EnumCase<null>;
|
|
115
|
+
}, []>>, true>;
|
|
101
116
|
}>, []>>>;
|
|
102
117
|
Special: DB.EnumCase<DB.IncludeIdentifier<[], DB.Enum<"SpecialEquipmentCategoryEntity", {
|
|
103
118
|
AnimalCare: DB.EnumCase<null>;
|
|
@@ -68,6 +68,10 @@ const DefaultEquipmentCategoryTypeRules = DB.TypeAlias(import.meta.url, {
|
|
|
68
68
|
comment: "Presence of complexity to certain groups for items in this category.",
|
|
69
69
|
type: DB.IncludeIdentifier(ValueRule),
|
|
70
70
|
}),
|
|
71
|
+
burningTime: DB.Required({
|
|
72
|
+
comment: "Presence of burning time to certain groups for items in this category.",
|
|
73
|
+
type: DB.IncludeIdentifier(ValueRule),
|
|
74
|
+
}),
|
|
71
75
|
}),
|
|
72
76
|
});
|
|
73
77
|
const SpecialEquipmentCategoryEntity = DB.Enum(import.meta.url, {
|
|
@@ -128,4 +132,5 @@ export const mergeAllValueRules = (categories) => ({
|
|
|
128
132
|
structurePoints: { kind: mergeValueRules(categories.map(category => category.structurePoints)) },
|
|
129
133
|
weight: { kind: mergeValueRules(categories.map(category => category.weight)) },
|
|
130
134
|
complexity: { kind: mergeValueRules(categories.map(category => category.complexity)) },
|
|
135
|
+
burningTime: { kind: mergeValueRules(categories.map(category => category.burningTime)) },
|
|
131
136
|
});
|
|
@@ -121,7 +121,18 @@ export declare const EquipmentOfBlessedOnes: DB.Entity<"EquipmentOfBlessedOnes",
|
|
|
121
121
|
protection: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"Protection", DB.Integer, []>>, true>;
|
|
122
122
|
encumbrance: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"Encumbrance", DB.Integer, []>>, true>;
|
|
123
123
|
has_additional_penalties: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"HasAdditionalPenalties", DB.Boolean, []>>, true>;
|
|
124
|
-
|
|
124
|
+
armorType: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"ArmorType", {
|
|
125
|
+
Standard: DB.EnumCase<DB.IncludeIdentifier<[], DB.TypeAlias<"StandardArmorType", DB.Object<{
|
|
126
|
+
sturdinessRating: DB.MemberDecl<DB.Integer, true>;
|
|
127
|
+
}>, []>>>;
|
|
128
|
+
StandardVariant: DB.EnumCase<DB.IncludeIdentifier<[], DB.TypeAlias<"StandardVariantArmorType", DB.Object<{
|
|
129
|
+
variantOf: DB.MemberDecl<DB.ReferenceIdentifier, true>;
|
|
130
|
+
sturdinessRating: DB.MemberDecl<DB.Integer, true>;
|
|
131
|
+
}>, []>>>;
|
|
132
|
+
Variant: DB.EnumCase<DB.IncludeIdentifier<[], DB.TypeAlias<"VariantArmorType", DB.Object<{
|
|
133
|
+
variantOf: DB.MemberDecl<DB.ReferenceIdentifier, true>;
|
|
134
|
+
}>, []>>>;
|
|
135
|
+
}, []>>, true>;
|
|
125
136
|
hit_zone: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"HitZone", {
|
|
126
137
|
Head: DB.EnumCase<DB.IncludeIdentifier<[], DB.TypeAlias<"HeadHitZone", DB.Object<{
|
|
127
138
|
combination_possibilities: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"HeadHitZoneCombinationPossibilities", DB.Object<{
|
|
@@ -157,7 +157,18 @@ export declare const IlluminationLightSource: DB.Entity<"IlluminationLightSource
|
|
|
157
157
|
protection: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"Protection", DB.Integer, []>>, true>;
|
|
158
158
|
encumbrance: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"Encumbrance", DB.Integer, []>>, true>;
|
|
159
159
|
has_additional_penalties: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"HasAdditionalPenalties", DB.Boolean, []>>, true>;
|
|
160
|
-
|
|
160
|
+
armorType: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"ArmorType", {
|
|
161
|
+
Standard: DB.EnumCase<DB.IncludeIdentifier<[], DB.TypeAlias<"StandardArmorType", DB.Object<{
|
|
162
|
+
sturdinessRating: DB.MemberDecl<DB.Integer, true>;
|
|
163
|
+
}>, []>>>;
|
|
164
|
+
StandardVariant: DB.EnumCase<DB.IncludeIdentifier<[], DB.TypeAlias<"StandardVariantArmorType", DB.Object<{
|
|
165
|
+
variantOf: DB.MemberDecl<DB.ReferenceIdentifier, true>;
|
|
166
|
+
sturdinessRating: DB.MemberDecl<DB.Integer, true>;
|
|
167
|
+
}>, []>>>;
|
|
168
|
+
Variant: DB.EnumCase<DB.IncludeIdentifier<[], DB.TypeAlias<"VariantArmorType", DB.Object<{
|
|
169
|
+
variantOf: DB.MemberDecl<DB.ReferenceIdentifier, true>;
|
|
170
|
+
}>, []>>>;
|
|
171
|
+
}, []>>, true>;
|
|
161
172
|
hit_zone: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"HitZone", {
|
|
162
173
|
Head: DB.EnumCase<DB.IncludeIdentifier<[], DB.TypeAlias<"HeadHitZone", DB.Object<{
|
|
163
174
|
combination_possibilities: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"HeadHitZoneCombinationPossibilities", DB.Object<{
|
|
@@ -249,3 +260,12 @@ export declare const IlluminationLightSource: DB.Entity<"IlluminationLightSource
|
|
|
249
260
|
}>, []>>>, []>>, false>;
|
|
250
261
|
}>, true>;
|
|
251
262
|
}, undefined>;
|
|
263
|
+
export declare const BurningTime: DB.Enum<"BurningTime", {
|
|
264
|
+
Unlimited: DB.EnumCase<null>;
|
|
265
|
+
Limited: DB.EnumCase<DB.IncludeIdentifier<[], DB.TypeAlias<"LimitedBurningTime", DB.Object<{
|
|
266
|
+
value: DB.MemberDecl<DB.Float, true>;
|
|
267
|
+
unit: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"LimitedBurningTimeUnit", {
|
|
268
|
+
Hours: DB.EnumCase<null>;
|
|
269
|
+
}, []>>, true>;
|
|
270
|
+
}>, []>>>;
|
|
271
|
+
}, []>;
|
|
@@ -50,7 +50,7 @@ export const IlluminationLightSource = DB.Entity(import.meta.url, {
|
|
|
50
50
|
return [];
|
|
51
51
|
},
|
|
52
52
|
});
|
|
53
|
-
const BurningTime = DB.Enum(import.meta.url, {
|
|
53
|
+
export const BurningTime = DB.Enum(import.meta.url, {
|
|
54
54
|
name: "BurningTime",
|
|
55
55
|
values: () => ({
|
|
56
56
|
Unlimited: DB.EnumCase({ type: null }),
|
|
@@ -148,7 +148,18 @@ export declare const IlluminationRefillOrSupply: DB.Entity<"IlluminationRefillOr
|
|
|
148
148
|
protection: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"Protection", DB.Integer, []>>, true>;
|
|
149
149
|
encumbrance: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"Encumbrance", DB.Integer, []>>, true>;
|
|
150
150
|
has_additional_penalties: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"HasAdditionalPenalties", DB.Boolean, []>>, true>;
|
|
151
|
-
|
|
151
|
+
armorType: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"ArmorType", {
|
|
152
|
+
Standard: DB.EnumCase<DB.IncludeIdentifier<[], DB.TypeAlias<"StandardArmorType", DB.Object<{
|
|
153
|
+
sturdinessRating: DB.MemberDecl<DB.Integer, true>;
|
|
154
|
+
}>, []>>>;
|
|
155
|
+
StandardVariant: DB.EnumCase<DB.IncludeIdentifier<[], DB.TypeAlias<"StandardVariantArmorType", DB.Object<{
|
|
156
|
+
variantOf: DB.MemberDecl<DB.ReferenceIdentifier, true>;
|
|
157
|
+
sturdinessRating: DB.MemberDecl<DB.Integer, true>;
|
|
158
|
+
}>, []>>>;
|
|
159
|
+
Variant: DB.EnumCase<DB.IncludeIdentifier<[], DB.TypeAlias<"VariantArmorType", DB.Object<{
|
|
160
|
+
variantOf: DB.MemberDecl<DB.ReferenceIdentifier, true>;
|
|
161
|
+
}>, []>>>;
|
|
162
|
+
}, []>>, true>;
|
|
152
163
|
hit_zone: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"HitZone", {
|
|
153
164
|
Head: DB.EnumCase<DB.IncludeIdentifier<[], DB.TypeAlias<"HeadHitZone", DB.Object<{
|
|
154
165
|
combination_possibilities: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"HeadHitZoneCombinationPossibilities", DB.Object<{
|
|
@@ -71,6 +71,15 @@ export declare const Item: DB.Entity<"Item", {
|
|
|
71
71
|
structurePoints: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"StructurePoints", DB.Array<DB.IncludeIdentifier<[], DB.TypeAlias<"StructurePointsComponent", DB.Object<{
|
|
72
72
|
points: DB.MemberDecl<DB.Integer, true>;
|
|
73
73
|
}>, []>>>, []>>, true>;
|
|
74
|
+
burningTime: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"BurningTime", {
|
|
75
|
+
Unlimited: DB.EnumCase<null>;
|
|
76
|
+
Limited: DB.EnumCase<DB.IncludeIdentifier<[], DB.TypeAlias<"LimitedBurningTime", DB.Object<{
|
|
77
|
+
value: DB.MemberDecl<DB.Float, true>;
|
|
78
|
+
unit: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"LimitedBurningTimeUnit", {
|
|
79
|
+
Hours: DB.EnumCase<null>;
|
|
80
|
+
}, []>>, true>;
|
|
81
|
+
}>, []>>>;
|
|
82
|
+
}, []>>, false>;
|
|
74
83
|
meleeUses: DB.MemberDecl<DB.NestedEntityMap<string, {
|
|
75
84
|
damage: DB.MemberDecl<DB.TypeArgument<DB.Param<"Damage", DB.Type>>, true>;
|
|
76
85
|
damage_threshold: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"PrimaryAttributeDamageThreshold", {
|
|
@@ -120,7 +129,18 @@ export declare const Item: DB.Entity<"Item", {
|
|
|
120
129
|
protection: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"Protection", DB.Integer, []>>, true>;
|
|
121
130
|
encumbrance: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"Encumbrance", DB.Integer, []>>, true>;
|
|
122
131
|
has_additional_penalties: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"HasAdditionalPenalties", DB.Boolean, []>>, true>;
|
|
123
|
-
|
|
132
|
+
armorType: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"ArmorType", {
|
|
133
|
+
Standard: DB.EnumCase<DB.IncludeIdentifier<[], DB.TypeAlias<"StandardArmorType", DB.Object<{
|
|
134
|
+
sturdinessRating: DB.MemberDecl<DB.Integer, true>;
|
|
135
|
+
}>, []>>>;
|
|
136
|
+
StandardVariant: DB.EnumCase<DB.IncludeIdentifier<[], DB.TypeAlias<"StandardVariantArmorType", DB.Object<{
|
|
137
|
+
variantOf: DB.MemberDecl<DB.ReferenceIdentifier, true>;
|
|
138
|
+
sturdinessRating: DB.MemberDecl<DB.Integer, true>;
|
|
139
|
+
}>, []>>>;
|
|
140
|
+
Variant: DB.EnumCase<DB.IncludeIdentifier<[], DB.TypeAlias<"VariantArmorType", DB.Object<{
|
|
141
|
+
variantOf: DB.MemberDecl<DB.ReferenceIdentifier, true>;
|
|
142
|
+
}>, []>>>;
|
|
143
|
+
}, []>>, true>;
|
|
124
144
|
hit_zone: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"HitZone", {
|
|
125
145
|
Head: DB.EnumCase<DB.IncludeIdentifier<[], DB.TypeAlias<"HeadHitZone", DB.Object<{
|
|
126
146
|
combination_possibilities: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"HeadHitZoneCombinationPossibilities", DB.Object<{
|