forked from vg-json-data/sm-json-data
-
Notifications
You must be signed in to change notification settings - Fork 0
/
m3-weapons.schema.json
125 lines (125 loc) · 4.88 KB
/
m3-weapons.schema.json
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
{
"$schema": "http://json-schema.org/draft-07/schema#",
"id": "https://raw.githubusercontent.com/miketrethewey/sm-json-data/master/schema/m3-weapons.schema.json",
"type": "object",
"title": "Super Metroid Weapon Schema",
"properties": {
"weapons": {
"type": "array",
"items": {
"$id": "#/properties/weapons/items",
"type": "object",
"title": "Weapon Object",
"description": "An object that describes a Super Metroid weapon. Each beam combo variation (including charged and chargeless variations) counts as one weapon.",
"required": [
"id",
"name",
"damage",
"cooldownFrames",
"useRequires",
"situational",
"hitsGroup",
"categories"
],
"properties": {
"id": {
"$id": "#/properties/weapons/items/properties/id",
"type": "integer",
"title": "Weapon ID",
"description": "Numerical identifier for this weapon, unique across the entire game",
"default": 0,
"examples": [
1
]
},
"name": {
"$id": "#/properties/weapons/items/properties/name",
"type": "string",
"title": "Weapon Name",
"description": "A name for the weapon, intended to be used as a recognizable ID. This is often the same as an associated item, but doesn't have to be.",
"default": "",
"examples": [
"Missile"
],
"pattern": "^(.*)$"
},
"damage": {
"$id": "#/properties/weapons/items/properties/damage",
"type": "integer",
"title": "Base Weapon Damage",
"description": "Amount of damage the weapon inflicts on an enemy with no weakness or resistance to it",
"default": 0,
"examples": [
50
]
},
"cooldownFrames": {
"$id": "#/properties/weapons/items/properties/cooldownFrames",
"type": "integer",
"title": "Cooldown Frames",
"description": "Number of frames Samus has to wait before the weapon can be used again",
"default": 0,
"examples": [
60
]
},
"useRequires": {
"$ref" : "m3-requirements.schema.json#/definitions/logicalRequirements",
"$id": "#/properties/weapons/items/properties/useRequires",
"title": "Weapon Use Requirements",
"description": "Equipment, tech, and flag requirements that are needed to be able to use this weapon"
},
"shotRequires": {
"$ref" : "m3-requirements.schema.json#/definitions/logicalRequirements",
"$id": "#/properties/weapons/items/properties/shotRequires",
"title": "Weapon Shot Requirements",
"description": "Additional Equipment, tech, and flag requirements that are needed, on top of the use requirements, for every shot fired with this weapon."
},
"situational": {
"$id": "#/properties/weapons/items/properties/situational",
"type": "boolean",
"title": "Situational",
"description": "If true, this weapon's usability depends on situational things, such as room layout. If false, this weapon is always usable when its requirements are met.",
"default": false
},
"hitsGroup": {
"$id": "#/properties/weapons/items/properties/hitsGroup",
"type": "boolean",
"title": "Hits Group",
"description": "If true, this weapon hits an entire group of enemies with every shot. Only likely to be relevant for weapons with ammo costs.",
"default": false
},
"categories": {
"$id": "#/properties/weapons/items/properties/categories",
"type": [
"array"
],
"title": "Weapon Categories",
"description": "An array of categories that apply to this weapon. Useful for grouping weapons together in an enemy's weaknesses or invulnerabilities",
"items": {
"$id": "#/properties/weapons/items/properties/categories/items",
"type": "string",
"enum": [
"All",
"Beam",
"ChargedBeam",
"UnchargedBeam",
"UnchargedSpazerBeam",
"UnchargedIceBeam",
"BeamNoPlasma",
"UnchargedBeamNoPlasma",
"PowerBombBlast",
"SpecialBeamAttack"
],
"title": "Weapon Category"
}
},
"note": {
"$ref" : "m3-note.schema.json#/definitions/note",
"$id": "#/properties/weapons/items/properties/note"
}
}
}
}
}
}