optolith-database-schema 0.1.27 → 0.2.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 +24 -0
- package/lib/types/Race.d.ts +3 -25
- package/lib/types/Race.js +0 -9
- package/lib/types/_Activatable.d.ts +170 -116
- package/lib/types/_Activatable.js +12 -9
- package/lib/types/_Dice.d.ts +23 -0
- package/lib/types/_Dice.js +9 -0
- package/lib/types/_Identifier.d.ts +9 -0
- package/lib/types/_Identifier.js +9 -0
- package/lib/types/equipment/Item.d.ts +308 -0
- package/lib/types/equipment/Item.js +35 -0
- package/lib/types/equipment/_Armor.d.ts +70 -0
- package/lib/types/equipment/_Armor.js +4 -0
- package/lib/types/equipment/_Weapon.d.ts +330 -0
- package/lib/types/equipment/_Weapon.js +4 -0
- package/package.json +1 -1
- package/schema/Race.schema.json +3 -31
- package/schema/_Activatable.schema.json +474 -289
- package/schema/_Dice.schema.json +34 -0
- package/schema/_Identifier.schema.json +28 -0
- package/schema/equipment/Item.schema.json +621 -0
- package/schema/equipment/_Armor.schema.json +125 -0
- package/schema/equipment/_Weapon.schema.json +664 -0
|
@@ -0,0 +1,664 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "http://json-schema.org/draft-07/schema",
|
|
3
|
+
"$id": "/equipment/_Weapon.schema.json",
|
|
4
|
+
"definitions": {
|
|
5
|
+
"StructurePoints": {
|
|
6
|
+
"title": "Structure Points",
|
|
7
|
+
"description": "The structure points of the item. Use an array if the item consists of\nmultiple components that have individual structure points.",
|
|
8
|
+
"type": "array",
|
|
9
|
+
"items": {
|
|
10
|
+
"type": "object",
|
|
11
|
+
"properties": {
|
|
12
|
+
"points": {
|
|
13
|
+
"description": "The structure points.",
|
|
14
|
+
"type": "integer",
|
|
15
|
+
"minimum": 1
|
|
16
|
+
}
|
|
17
|
+
},
|
|
18
|
+
"required": [
|
|
19
|
+
"points"
|
|
20
|
+
],
|
|
21
|
+
"additionalProperties": false
|
|
22
|
+
},
|
|
23
|
+
"minItems": 1
|
|
24
|
+
},
|
|
25
|
+
"SanctifiedBy": {
|
|
26
|
+
"description": "If the weapon is sanctified by a god and thus restricted to it's Blessed\nOnes.",
|
|
27
|
+
"type": "object",
|
|
28
|
+
"properties": {
|
|
29
|
+
"id": {
|
|
30
|
+
"description": "The tradition's identifier.",
|
|
31
|
+
"type": "integer",
|
|
32
|
+
"minimum": 1
|
|
33
|
+
}
|
|
34
|
+
},
|
|
35
|
+
"required": [
|
|
36
|
+
"id"
|
|
37
|
+
],
|
|
38
|
+
"additionalProperties": false
|
|
39
|
+
},
|
|
40
|
+
"RestrictedToCultures": {
|
|
41
|
+
"description": "Define if during character creation this weapon can only be bought by\ncharacters of a specific race or culture.",
|
|
42
|
+
"oneOf": [
|
|
43
|
+
{
|
|
44
|
+
"type": "object",
|
|
45
|
+
"properties": {
|
|
46
|
+
"tag": {
|
|
47
|
+
"const": "CulturesOfRace"
|
|
48
|
+
},
|
|
49
|
+
"id": {
|
|
50
|
+
"description": "The race's identifier.",
|
|
51
|
+
"type": "integer",
|
|
52
|
+
"minimum": 1
|
|
53
|
+
}
|
|
54
|
+
},
|
|
55
|
+
"required": [
|
|
56
|
+
"tag",
|
|
57
|
+
"id"
|
|
58
|
+
],
|
|
59
|
+
"additionalProperties": false
|
|
60
|
+
},
|
|
61
|
+
{
|
|
62
|
+
"type": "object",
|
|
63
|
+
"properties": {
|
|
64
|
+
"tag": {
|
|
65
|
+
"const": "Culture"
|
|
66
|
+
},
|
|
67
|
+
"id": {
|
|
68
|
+
"description": "The culture's identifier.",
|
|
69
|
+
"type": "integer",
|
|
70
|
+
"minimum": 1
|
|
71
|
+
}
|
|
72
|
+
},
|
|
73
|
+
"required": [
|
|
74
|
+
"tag",
|
|
75
|
+
"id"
|
|
76
|
+
],
|
|
77
|
+
"additionalProperties": false
|
|
78
|
+
},
|
|
79
|
+
{
|
|
80
|
+
"type": "object",
|
|
81
|
+
"properties": {
|
|
82
|
+
"tag": {
|
|
83
|
+
"const": "Cultures"
|
|
84
|
+
},
|
|
85
|
+
"list": {
|
|
86
|
+
"description": "The cultures' identifiers.",
|
|
87
|
+
"type": "object",
|
|
88
|
+
"properties": {
|
|
89
|
+
"id": {
|
|
90
|
+
"description": "The culture's identifier.",
|
|
91
|
+
"type": "integer",
|
|
92
|
+
"minimum": 1
|
|
93
|
+
}
|
|
94
|
+
},
|
|
95
|
+
"required": [
|
|
96
|
+
"id"
|
|
97
|
+
],
|
|
98
|
+
"additionalProperties": false
|
|
99
|
+
}
|
|
100
|
+
},
|
|
101
|
+
"required": [
|
|
102
|
+
"tag",
|
|
103
|
+
"list"
|
|
104
|
+
],
|
|
105
|
+
"additionalProperties": false
|
|
106
|
+
}
|
|
107
|
+
]
|
|
108
|
+
},
|
|
109
|
+
"PrimaryAttributeDamageThreshold": {
|
|
110
|
+
"description": "The primary attribute damage and threshold value. You can either use an\ninteger, an object or a pair. Use an integer if you just have to define a\nsingle threshold value for the default primary attribute of the combat\ntechnique. Use an object if you need to define the value only or if you need\nto define the value as well as a single different primary attribute than\nwhich the combat technique uses. Use the pair if you need to set the primary\nattributes to AGI and STR (the combat technique has AGI but this item has\nAGI/STR) and/or if you need to set different thresholds for AGI and STR (e.g.\nAGI 14/STR 15). If the same values are in the pair, they will be merged (AGI\n14/STR 14 will be AGI/STR 14).",
|
|
111
|
+
"oneOf": [
|
|
112
|
+
{
|
|
113
|
+
"type": "object",
|
|
114
|
+
"properties": {
|
|
115
|
+
"tag": {
|
|
116
|
+
"const": "Single"
|
|
117
|
+
},
|
|
118
|
+
"attribute": {
|
|
119
|
+
"description": "The primary attribute(s) if different from the default primary\nattribute(s) of the combat technique.",
|
|
120
|
+
"type": "array",
|
|
121
|
+
"items": {
|
|
122
|
+
"type": "object",
|
|
123
|
+
"properties": {
|
|
124
|
+
"id": {
|
|
125
|
+
"description": "The attribute's identifier.",
|
|
126
|
+
"type": "integer",
|
|
127
|
+
"minimum": 1
|
|
128
|
+
}
|
|
129
|
+
},
|
|
130
|
+
"required": [
|
|
131
|
+
"id"
|
|
132
|
+
],
|
|
133
|
+
"additionalProperties": false
|
|
134
|
+
},
|
|
135
|
+
"minItems": 1,
|
|
136
|
+
"uniqueItems": true
|
|
137
|
+
},
|
|
138
|
+
"threshold": {
|
|
139
|
+
"description": "The attribute value representing the damage threshold.",
|
|
140
|
+
"type": "integer",
|
|
141
|
+
"minimum": 1
|
|
142
|
+
}
|
|
143
|
+
},
|
|
144
|
+
"required": [
|
|
145
|
+
"tag",
|
|
146
|
+
"threshold"
|
|
147
|
+
],
|
|
148
|
+
"additionalProperties": false
|
|
149
|
+
},
|
|
150
|
+
{
|
|
151
|
+
"type": "object",
|
|
152
|
+
"properties": {
|
|
153
|
+
"tag": {
|
|
154
|
+
"const": "Differing"
|
|
155
|
+
},
|
|
156
|
+
"list": {
|
|
157
|
+
"description": "A list of primary attributes, each featuring a different threshold.",
|
|
158
|
+
"type": "array",
|
|
159
|
+
"items": {
|
|
160
|
+
"type": "object",
|
|
161
|
+
"properties": {
|
|
162
|
+
"attribute": {
|
|
163
|
+
"description": "The primary attribute.",
|
|
164
|
+
"type": "object",
|
|
165
|
+
"properties": {
|
|
166
|
+
"id": {
|
|
167
|
+
"description": "The attribute's identifier.",
|
|
168
|
+
"type": "integer",
|
|
169
|
+
"minimum": 1
|
|
170
|
+
}
|
|
171
|
+
},
|
|
172
|
+
"required": [
|
|
173
|
+
"id"
|
|
174
|
+
],
|
|
175
|
+
"additionalProperties": false
|
|
176
|
+
},
|
|
177
|
+
"threshold": {
|
|
178
|
+
"description": "The attribute value representing the damage threshold.",
|
|
179
|
+
"type": "integer",
|
|
180
|
+
"minimum": 1
|
|
181
|
+
}
|
|
182
|
+
},
|
|
183
|
+
"required": [
|
|
184
|
+
"attribute",
|
|
185
|
+
"threshold"
|
|
186
|
+
],
|
|
187
|
+
"additionalProperties": false
|
|
188
|
+
},
|
|
189
|
+
"minItems": 2,
|
|
190
|
+
"uniqueItems": true
|
|
191
|
+
}
|
|
192
|
+
},
|
|
193
|
+
"required": [
|
|
194
|
+
"tag",
|
|
195
|
+
"list"
|
|
196
|
+
],
|
|
197
|
+
"additionalProperties": false
|
|
198
|
+
}
|
|
199
|
+
]
|
|
200
|
+
},
|
|
201
|
+
"DamageMelee": {
|
|
202
|
+
"description": "The damage of a weapon consists of a random part using dice and an optional\nflat part.",
|
|
203
|
+
"type": "object",
|
|
204
|
+
"properties": {
|
|
205
|
+
"dice": {
|
|
206
|
+
"description": "How many dice of which type are rolled to get the damage.",
|
|
207
|
+
"$ref": "#/definitions/Dice"
|
|
208
|
+
},
|
|
209
|
+
"flat": {
|
|
210
|
+
"description": "Flat damage, if any. It gets added to the result of the dice rolls.",
|
|
211
|
+
"type": "integer"
|
|
212
|
+
}
|
|
213
|
+
},
|
|
214
|
+
"required": [
|
|
215
|
+
"dice"
|
|
216
|
+
],
|
|
217
|
+
"additionalProperties": false
|
|
218
|
+
},
|
|
219
|
+
"DamageRanged": {
|
|
220
|
+
"description": "The damage of a ranged weapon. It consists of a random part using dice and an\noptional flat part ny default. Some ranged weapons may work different so that\ndamage is either not applicable at all or it is outlined as *Special* and\nfurther defined in a description.",
|
|
221
|
+
"oneOf": [
|
|
222
|
+
{
|
|
223
|
+
"type": "object",
|
|
224
|
+
"properties": {
|
|
225
|
+
"tag": {
|
|
226
|
+
"const": "Default"
|
|
227
|
+
},
|
|
228
|
+
"dice": {
|
|
229
|
+
"description": "How many dice of which type are rolled to get the damage.",
|
|
230
|
+
"$ref": "#/definitions/Dice"
|
|
231
|
+
},
|
|
232
|
+
"flat": {
|
|
233
|
+
"description": "Flat damage, if any. It gets added to the result of the dice rolls.",
|
|
234
|
+
"type": "integer"
|
|
235
|
+
}
|
|
236
|
+
},
|
|
237
|
+
"required": [
|
|
238
|
+
"tag",
|
|
239
|
+
"dice"
|
|
240
|
+
],
|
|
241
|
+
"additionalProperties": false
|
|
242
|
+
},
|
|
243
|
+
{
|
|
244
|
+
"type": "object",
|
|
245
|
+
"properties": {
|
|
246
|
+
"tag": {
|
|
247
|
+
"const": "NotApplicable"
|
|
248
|
+
}
|
|
249
|
+
},
|
|
250
|
+
"required": [
|
|
251
|
+
"tag"
|
|
252
|
+
],
|
|
253
|
+
"additionalProperties": false
|
|
254
|
+
},
|
|
255
|
+
{
|
|
256
|
+
"type": "object",
|
|
257
|
+
"properties": {
|
|
258
|
+
"tag": {
|
|
259
|
+
"const": "Special"
|
|
260
|
+
}
|
|
261
|
+
},
|
|
262
|
+
"required": [
|
|
263
|
+
"tag"
|
|
264
|
+
],
|
|
265
|
+
"additionalProperties": false
|
|
266
|
+
}
|
|
267
|
+
]
|
|
268
|
+
},
|
|
269
|
+
"Attack": {
|
|
270
|
+
"description": "The AT modifier.",
|
|
271
|
+
"type": "integer"
|
|
272
|
+
},
|
|
273
|
+
"Parry": {
|
|
274
|
+
"description": "The PA modifier.",
|
|
275
|
+
"type": "integer"
|
|
276
|
+
},
|
|
277
|
+
"Reach": {
|
|
278
|
+
"description": "The reach of the weapon.",
|
|
279
|
+
"type": "integer",
|
|
280
|
+
"maximum": 4,
|
|
281
|
+
"minimum": 1
|
|
282
|
+
},
|
|
283
|
+
"Length": {
|
|
284
|
+
"description": "The length of the weapon in cm/halffingers.",
|
|
285
|
+
"type": "integer",
|
|
286
|
+
"minimum": 1
|
|
287
|
+
},
|
|
288
|
+
"ShieldSize": {
|
|
289
|
+
"oneOf": [
|
|
290
|
+
{
|
|
291
|
+
"type": "object",
|
|
292
|
+
"properties": {
|
|
293
|
+
"tag": {
|
|
294
|
+
"const": "Large"
|
|
295
|
+
},
|
|
296
|
+
"attack_penalty": {
|
|
297
|
+
"description": "The attack penalty from the shield.",
|
|
298
|
+
"type": "integer"
|
|
299
|
+
}
|
|
300
|
+
},
|
|
301
|
+
"required": [
|
|
302
|
+
"tag"
|
|
303
|
+
],
|
|
304
|
+
"additionalProperties": false
|
|
305
|
+
},
|
|
306
|
+
{
|
|
307
|
+
"type": "object",
|
|
308
|
+
"properties": {
|
|
309
|
+
"tag": {
|
|
310
|
+
"const": "Medium"
|
|
311
|
+
}
|
|
312
|
+
},
|
|
313
|
+
"required": [
|
|
314
|
+
"tag"
|
|
315
|
+
],
|
|
316
|
+
"additionalProperties": false
|
|
317
|
+
},
|
|
318
|
+
{
|
|
319
|
+
"type": "object",
|
|
320
|
+
"properties": {
|
|
321
|
+
"tag": {
|
|
322
|
+
"const": "Small"
|
|
323
|
+
}
|
|
324
|
+
},
|
|
325
|
+
"required": [
|
|
326
|
+
"tag"
|
|
327
|
+
],
|
|
328
|
+
"additionalProperties": false
|
|
329
|
+
}
|
|
330
|
+
]
|
|
331
|
+
},
|
|
332
|
+
"MeleeWeapon": {
|
|
333
|
+
"title": "Melee Weapon",
|
|
334
|
+
"type": "object",
|
|
335
|
+
"properties": {
|
|
336
|
+
"tag": {
|
|
337
|
+
"const": "Melee"
|
|
338
|
+
},
|
|
339
|
+
"combat_technique": {
|
|
340
|
+
"description": "The combat techniques and dependent values.",
|
|
341
|
+
"oneOf": [
|
|
342
|
+
{
|
|
343
|
+
"type": "object",
|
|
344
|
+
"properties": {
|
|
345
|
+
"tag": {
|
|
346
|
+
"const": "ChainWeapons"
|
|
347
|
+
},
|
|
348
|
+
"damage_threshold": {
|
|
349
|
+
"$ref": "#/definitions/PrimaryAttributeDamageThreshold"
|
|
350
|
+
},
|
|
351
|
+
"at": {
|
|
352
|
+
"$ref": "#/definitions/Attack"
|
|
353
|
+
},
|
|
354
|
+
"reach": {
|
|
355
|
+
"$ref": "#/definitions/Reach"
|
|
356
|
+
},
|
|
357
|
+
"length": {
|
|
358
|
+
"$ref": "#/definitions/Length"
|
|
359
|
+
}
|
|
360
|
+
},
|
|
361
|
+
"required": [
|
|
362
|
+
"tag",
|
|
363
|
+
"damage_threshold",
|
|
364
|
+
"at",
|
|
365
|
+
"reach",
|
|
366
|
+
"length"
|
|
367
|
+
],
|
|
368
|
+
"additionalProperties": false
|
|
369
|
+
},
|
|
370
|
+
{
|
|
371
|
+
"type": "object",
|
|
372
|
+
"properties": {
|
|
373
|
+
"tag": {
|
|
374
|
+
"const": "Whips"
|
|
375
|
+
},
|
|
376
|
+
"damage_threshold": {
|
|
377
|
+
"$ref": "#/definitions/PrimaryAttributeDamageThreshold"
|
|
378
|
+
},
|
|
379
|
+
"at": {
|
|
380
|
+
"$ref": "#/definitions/Attack"
|
|
381
|
+
},
|
|
382
|
+
"reach": {
|
|
383
|
+
"$ref": "#/definitions/Reach"
|
|
384
|
+
},
|
|
385
|
+
"length": {
|
|
386
|
+
"$ref": "#/definitions/Length"
|
|
387
|
+
}
|
|
388
|
+
},
|
|
389
|
+
"required": [
|
|
390
|
+
"tag",
|
|
391
|
+
"damage_threshold",
|
|
392
|
+
"at",
|
|
393
|
+
"reach",
|
|
394
|
+
"length"
|
|
395
|
+
],
|
|
396
|
+
"additionalProperties": false
|
|
397
|
+
},
|
|
398
|
+
{
|
|
399
|
+
"type": "object",
|
|
400
|
+
"properties": {
|
|
401
|
+
"tag": {
|
|
402
|
+
"const": "Lances"
|
|
403
|
+
},
|
|
404
|
+
"at": {
|
|
405
|
+
"$ref": "#/definitions/Attack"
|
|
406
|
+
},
|
|
407
|
+
"length": {
|
|
408
|
+
"$ref": "#/definitions/Length"
|
|
409
|
+
}
|
|
410
|
+
},
|
|
411
|
+
"required": [
|
|
412
|
+
"tag",
|
|
413
|
+
"at",
|
|
414
|
+
"length"
|
|
415
|
+
],
|
|
416
|
+
"additionalProperties": false
|
|
417
|
+
},
|
|
418
|
+
{
|
|
419
|
+
"type": "object",
|
|
420
|
+
"properties": {
|
|
421
|
+
"tag": {
|
|
422
|
+
"const": "Shields"
|
|
423
|
+
},
|
|
424
|
+
"size": {
|
|
425
|
+
"$ref": "#/definitions/ShieldSize"
|
|
426
|
+
},
|
|
427
|
+
"damage_threshold": {
|
|
428
|
+
"$ref": "#/definitions/PrimaryAttributeDamageThreshold"
|
|
429
|
+
},
|
|
430
|
+
"at": {
|
|
431
|
+
"$ref": "#/definitions/Attack"
|
|
432
|
+
},
|
|
433
|
+
"pa": {
|
|
434
|
+
"$ref": "#/definitions/Parry"
|
|
435
|
+
},
|
|
436
|
+
"reach": {
|
|
437
|
+
"$ref": "#/definitions/Reach"
|
|
438
|
+
}
|
|
439
|
+
},
|
|
440
|
+
"required": [
|
|
441
|
+
"tag",
|
|
442
|
+
"size",
|
|
443
|
+
"damage_threshold",
|
|
444
|
+
"at",
|
|
445
|
+
"pa",
|
|
446
|
+
"reach"
|
|
447
|
+
],
|
|
448
|
+
"additionalProperties": false
|
|
449
|
+
},
|
|
450
|
+
{
|
|
451
|
+
"type": "object",
|
|
452
|
+
"properties": {
|
|
453
|
+
"tag": {
|
|
454
|
+
"const": "Fans"
|
|
455
|
+
},
|
|
456
|
+
"size": {
|
|
457
|
+
"$ref": "#/definitions/ShieldSize"
|
|
458
|
+
},
|
|
459
|
+
"damage_threshold": {
|
|
460
|
+
"$ref": "#/definitions/PrimaryAttributeDamageThreshold"
|
|
461
|
+
},
|
|
462
|
+
"at": {
|
|
463
|
+
"$ref": "#/definitions/Attack"
|
|
464
|
+
},
|
|
465
|
+
"pa": {
|
|
466
|
+
"$ref": "#/definitions/Parry"
|
|
467
|
+
},
|
|
468
|
+
"reach": {
|
|
469
|
+
"$ref": "#/definitions/Reach"
|
|
470
|
+
},
|
|
471
|
+
"length": {
|
|
472
|
+
"$ref": "#/definitions/Length"
|
|
473
|
+
}
|
|
474
|
+
},
|
|
475
|
+
"required": [
|
|
476
|
+
"tag",
|
|
477
|
+
"size",
|
|
478
|
+
"damage_threshold",
|
|
479
|
+
"at",
|
|
480
|
+
"pa",
|
|
481
|
+
"reach",
|
|
482
|
+
"length"
|
|
483
|
+
],
|
|
484
|
+
"additionalProperties": false
|
|
485
|
+
},
|
|
486
|
+
{
|
|
487
|
+
"type": "object",
|
|
488
|
+
"properties": {
|
|
489
|
+
"tag": {
|
|
490
|
+
"const": "Default"
|
|
491
|
+
},
|
|
492
|
+
"id": {
|
|
493
|
+
"description": "The close combat technique's identifier.",
|
|
494
|
+
"type": "integer",
|
|
495
|
+
"minimum": 1
|
|
496
|
+
},
|
|
497
|
+
"damage_threshold": {
|
|
498
|
+
"$ref": "#/definitions/PrimaryAttributeDamageThreshold"
|
|
499
|
+
},
|
|
500
|
+
"at": {
|
|
501
|
+
"$ref": "#/definitions/Attack"
|
|
502
|
+
},
|
|
503
|
+
"pa": {
|
|
504
|
+
"$ref": "#/definitions/Parry"
|
|
505
|
+
},
|
|
506
|
+
"reach": {
|
|
507
|
+
"$ref": "#/definitions/Reach"
|
|
508
|
+
},
|
|
509
|
+
"length": {
|
|
510
|
+
"$ref": "#/definitions/Length"
|
|
511
|
+
}
|
|
512
|
+
},
|
|
513
|
+
"required": [
|
|
514
|
+
"tag",
|
|
515
|
+
"id",
|
|
516
|
+
"damage_threshold",
|
|
517
|
+
"at",
|
|
518
|
+
"pa",
|
|
519
|
+
"reach",
|
|
520
|
+
"length"
|
|
521
|
+
],
|
|
522
|
+
"additionalProperties": false
|
|
523
|
+
}
|
|
524
|
+
]
|
|
525
|
+
},
|
|
526
|
+
"damage": {
|
|
527
|
+
"$ref": "#/definitions/DamageMelee"
|
|
528
|
+
},
|
|
529
|
+
"is_parrying_weapon": {
|
|
530
|
+
"description": "Is the weapon a parrying weapon?",
|
|
531
|
+
"type": "boolean"
|
|
532
|
+
},
|
|
533
|
+
"is_two_handed_weapon": {
|
|
534
|
+
"description": "Is the weapon a two-handed weapon?",
|
|
535
|
+
"type": "boolean"
|
|
536
|
+
}
|
|
537
|
+
},
|
|
538
|
+
"required": [
|
|
539
|
+
"tag",
|
|
540
|
+
"combat_technique",
|
|
541
|
+
"damage",
|
|
542
|
+
"is_parrying_weapon",
|
|
543
|
+
"is_two_handed_weapon"
|
|
544
|
+
],
|
|
545
|
+
"additionalProperties": false
|
|
546
|
+
},
|
|
547
|
+
"RangedWeapon": {
|
|
548
|
+
"title": "Ranged Weapon",
|
|
549
|
+
"type": "object",
|
|
550
|
+
"properties": {
|
|
551
|
+
"tag": {
|
|
552
|
+
"const": "Ranged"
|
|
553
|
+
},
|
|
554
|
+
"combat_technique": {
|
|
555
|
+
"description": "The combat techniques and dependent values.",
|
|
556
|
+
"oneOf": [
|
|
557
|
+
{
|
|
558
|
+
"type": "object",
|
|
559
|
+
"properties": {
|
|
560
|
+
"tag": {
|
|
561
|
+
"const": "ThrownWeapons"
|
|
562
|
+
}
|
|
563
|
+
},
|
|
564
|
+
"required": [
|
|
565
|
+
"tag"
|
|
566
|
+
],
|
|
567
|
+
"additionalProperties": false
|
|
568
|
+
},
|
|
569
|
+
{
|
|
570
|
+
"type": "object",
|
|
571
|
+
"properties": {
|
|
572
|
+
"tag": {
|
|
573
|
+
"const": "Default"
|
|
574
|
+
},
|
|
575
|
+
"ammunition": {
|
|
576
|
+
"description": "The needed ammunition.",
|
|
577
|
+
"type": "object",
|
|
578
|
+
"properties": {
|
|
579
|
+
"id": {
|
|
580
|
+
"description": "The item's identifier.",
|
|
581
|
+
"type": "integer",
|
|
582
|
+
"minimum": 1
|
|
583
|
+
}
|
|
584
|
+
},
|
|
585
|
+
"required": [
|
|
586
|
+
"id"
|
|
587
|
+
],
|
|
588
|
+
"additionalProperties": false
|
|
589
|
+
}
|
|
590
|
+
},
|
|
591
|
+
"required": [
|
|
592
|
+
"tag",
|
|
593
|
+
"ammunition"
|
|
594
|
+
],
|
|
595
|
+
"additionalProperties": false
|
|
596
|
+
}
|
|
597
|
+
]
|
|
598
|
+
},
|
|
599
|
+
"damage": {
|
|
600
|
+
"$ref": "#/definitions/DamageRanged"
|
|
601
|
+
},
|
|
602
|
+
"range": {
|
|
603
|
+
"description": "The range brackets for the weapon: close, medium, far. Distances in m.",
|
|
604
|
+
"type": "object",
|
|
605
|
+
"properties": {
|
|
606
|
+
"close": {
|
|
607
|
+
"description": "The close range bracket for the weapon. Distance in m.",
|
|
608
|
+
"type": "integer",
|
|
609
|
+
"minimum": 1
|
|
610
|
+
},
|
|
611
|
+
"medium": {
|
|
612
|
+
"description": "The medium range bracket for the weapon. Distance in m.",
|
|
613
|
+
"type": "integer",
|
|
614
|
+
"minimum": 1
|
|
615
|
+
},
|
|
616
|
+
"far": {
|
|
617
|
+
"description": "The far range bracket for the weapon. Distance in m.",
|
|
618
|
+
"type": "integer",
|
|
619
|
+
"minimum": 1
|
|
620
|
+
}
|
|
621
|
+
},
|
|
622
|
+
"required": [
|
|
623
|
+
"close",
|
|
624
|
+
"medium",
|
|
625
|
+
"far"
|
|
626
|
+
],
|
|
627
|
+
"additionalProperties": false
|
|
628
|
+
},
|
|
629
|
+
"reload_time": {
|
|
630
|
+
"description": "One or multiple reload times.",
|
|
631
|
+
"type": "array",
|
|
632
|
+
"items": {
|
|
633
|
+
"type": "object",
|
|
634
|
+
"properties": {
|
|
635
|
+
"value": {
|
|
636
|
+
"description": "A reload time value in actions.",
|
|
637
|
+
"type": "integer",
|
|
638
|
+
"minimum": 1
|
|
639
|
+
}
|
|
640
|
+
},
|
|
641
|
+
"required": [
|
|
642
|
+
"value"
|
|
643
|
+
],
|
|
644
|
+
"additionalProperties": false
|
|
645
|
+
},
|
|
646
|
+
"minItems": 1,
|
|
647
|
+
"uniqueItems": true
|
|
648
|
+
},
|
|
649
|
+
"length": {
|
|
650
|
+
"$ref": "#/definitions/Length"
|
|
651
|
+
}
|
|
652
|
+
},
|
|
653
|
+
"required": [
|
|
654
|
+
"tag",
|
|
655
|
+
"combat_technique",
|
|
656
|
+
"damage",
|
|
657
|
+
"range",
|
|
658
|
+
"reload_time",
|
|
659
|
+
"length"
|
|
660
|
+
],
|
|
661
|
+
"additionalProperties": false
|
|
662
|
+
}
|
|
663
|
+
}
|
|
664
|
+
}
|