|
1 | 1 | { |
2 | 2 | "$schema": "http://json-schema.org/draft-07/schema#", |
3 | | - "id": "https://raw.githubusercontent.com/vg-json-data/sm-json-data/master/schema/m3-bossScenarios.schema.json", |
| 3 | + "$id": "https://raw.githubusercontent.com/vg-json-data/sm-json-data/master/schema/m3-bossScenarios.schema.json", |
4 | 4 | "type": "object", |
5 | 5 | "title": "Super Metroid Boss Scenario Schema", |
6 | 6 | "description": "A list of boss fight scenarios, which can each be resolved into an energy requirement", |
7 | 7 | "properties": { |
8 | 8 | "scenarios": { |
9 | 9 | "type": "array", |
10 | 10 | "items": { |
11 | | - "$id": "#/properties/scenarios/items", |
12 | 11 | "type": "object", |
13 | 12 | "title": "Scenario Object", |
14 | 13 | "description": "An object that describes one boss fight scenario. For a given item loadout, it can be resolved into a fight duration and an energy requirement.", |
|
21 | 20 | ], |
22 | 21 | "properties": { |
23 | 22 | "id": { |
24 | | - "$id": "#/properties/scenarios/items/properties/id", |
25 | 23 | "type": "integer", |
26 | 24 | "title": "Weapon ID", |
27 | 25 | "description": "Numerical identifier for this scenario, unique across the entire game", |
|
31 | 29 | ] |
32 | 30 | }, |
33 | 31 | "name": { |
34 | | - "$id": "#/properties/scenarios/items/properties/name", |
35 | 32 | "type": "string", |
36 | 33 | "title": "Scenario Name", |
37 | 34 | "description": "A name for the scenario, intended to be used as a recognizable ID for customization purposes", |
|
42 | 39 | "pattern": "^(.*)$" |
43 | 40 | }, |
44 | 41 | "boss": { |
45 | | - "$id": "#/properties/scenarios/items/properties/boss", |
46 | 42 | "type": "string", |
47 | 43 | "title": "Boss Name", |
48 | 44 | "description": "The name of the boss for which this scenario applies. Must match an entry in the bosses/main.json file.", |
|
53 | 49 | "pattern": "^(.*)$" |
54 | 50 | }, |
55 | 51 | "explicitWeapons": { |
56 | | - "$id": "#/properties/scenarios/items/properties/explicitWeapons", |
57 | 52 | "type": [ "array" ], |
58 | 53 | "title": "Explicit Weapons", |
59 | 54 | "description": "A list containing the only weapons that are applicable for this scenario. If this is missing, all non-situational weapons the boss takes damage from are applicable by default.", |
|
64 | 59 | } |
65 | 60 | }, |
66 | 61 | "excludedWeapons": { |
67 | | - "$id": "#/properties/scenarios/items/properties/excludedWeapons", |
68 | 62 | "type": [ "array" ], |
69 | 63 | "title": "Excluded Weapons", |
70 | 64 | "description": "A list containing weapons that are not applicable for this scenario, even though they would normally be based on the value of the explicitWeapons property.", |
|
76 | 70 | }, |
77 | 71 | "requires": { |
78 | 72 | "$ref" : "m3-requirements.schema.json#/definitions/logicalRequirements", |
79 | | - "$id": "#/properties/scenarios/items/properties/requires", |
80 | 73 | "title": "Scenario Requirements", |
81 | 74 | "description": "Equipment, tech, and flag requirements for this boss scenario to even be possible" |
82 | 75 | }, |
83 | 76 | "bossDodgeRate": { |
84 | | - "$id": "#/properties/scenarios/items/properties/bossDodgeRate", |
85 | 77 | "type": "number", |
86 | 78 | "title": "Boss Dodge Rate", |
87 | 79 | "description": "A value specific to the scenario which indicates a percentage of shots taken by Samus which are expected not to hit. This should be calculated separately from player accuracy values.", |
|
91 | 83 | ] |
92 | 84 | }, |
93 | 85 | "attackOpportunityDuration": { |
94 | | - "$id": "#/properties/scenarios/tems/properties/attackOpportunityDuration", |
95 | 86 | "type": "integer", |
96 | 87 | "title": "Attack Opportunity Duration", |
97 | 88 | "description": "Serves to indicate that the damage window is broken up into opportunities that last the specified amount of frames." |
98 | 89 | }, |
99 | 90 | "damageWindows": { |
100 | | - "$id": "#/properties/scenarios/items/properties/damageWindows", |
101 | 91 | "type": [ |
102 | 92 | "array", |
103 | 93 | "null" |
|
106 | 96 | "description": "An array of objects that describe how often Samus can hit the boss", |
107 | 97 | "default": null, |
108 | 98 | "items": { |
109 | | - "$id": "#/properties/scenarios/items/properties/damageWindows/items", |
110 | 99 | "type": "object", |
111 | 100 | "title": "Damage Window Object", |
112 | 101 | "description": "An object that describes a percentage of total fight time where Samus can attack, and the requirements that must be met in order to be able to use it.", |
113 | 102 | "required": [ "name", "requires", "windowPercent" ], |
114 | 103 | "properties": { |
115 | 104 | "name": { |
116 | | - "$id": "#/properties/scenarios/items/properties/damageWindows/items/properties/name", |
117 | 105 | "type": "string", |
118 | 106 | "title": "Damage Window Name", |
119 | 107 | "description": "A name for this damage window, intended to be used as a recognizable ID for customization purposes", |
|
124 | 112 | "pattern": "^(.*)$" |
125 | 113 | }, |
126 | 114 | "windowPercent": { |
127 | | - "$id": "#/properties/scenarios/items/properties/damageWindows/items/properties/windowPercent", |
128 | 115 | "type": "number", |
129 | 116 | "title": "Window Percent", |
130 | 117 | "description": "An amount of percentage points by which the damage window is widened if the requirements are met" |
131 | 118 | }, |
132 | 119 | "requires": { |
133 | 120 | "$ref" : "m3-requirements.schema.json#/definitions/logicalRequirements", |
134 | | - "$id": "#/properties/scenarios/items/properties/damageWindows/items/properties/requires", |
135 | 121 | "title": "Damage Window Requirements", |
136 | 122 | "description": "Equipment, tech, and flag requirements to use this damage window" |
137 | 123 | }, |
138 | 124 | "note": { |
139 | | - "$ref" : "m3-note.schema.json#/definitions/note", |
140 | | - "$id": "#/properties/scenarios/items/properties/damageWindows/items/properties/note" |
| 125 | + "$ref" : "m3-note.schema.json#/definitions/note" |
141 | 126 | }, |
142 | 127 | "devNote": { |
143 | | - "$ref" : "m3-note.schema.json#/definitions/devNote", |
144 | | - "$id": "#/properties/scenarios/items/properties/damageWindows/items/properties/devNote" |
| 128 | + "$ref" : "m3-note.schema.json#/definitions/devNote" |
145 | 129 | } |
146 | 130 | } |
147 | 131 | } |
148 | 132 | }, |
149 | 133 | "incomingDamage":{ |
150 | | - "$id": "#/properties/scenarios/items/properties/incomingDamage", |
151 | 134 | "type": [ |
152 | 135 | "array", |
153 | 136 | "null" |
|
156 | 139 | "description": "An array of objects that describe attacks that are expected to hit Samus, unless she meets some requirements", |
157 | 140 | "default": null, |
158 | 141 | "items": { |
159 | | - "$id": "#/properties/scenarios/items/properties/incomingDamage/items", |
160 | 142 | "type": "object", |
161 | 143 | "title": "Incoming Damage Object", |
162 | 144 | "description": "An object that describes one attack that is expected to hit Samus at a specific frequency, unless requirements are met", |
163 | 145 | "required": ["name", "attack", "frequencyFrames", "avoidingRequires"], |
164 | 146 | "properties": { |
165 | 147 | "name": { |
166 | | - "$id": "#/properties/scenarios/items/properties/incomingDamage/items/properties/name", |
167 | 148 | "type": "string", |
168 | 149 | "title": "Incoming Damage Name", |
169 | 150 | "description": "A name for this incoming damage, intended to be used as a recognizable ID for customization purposes", |
|
174 | 155 | "pattern": "^(.*)$" |
175 | 156 | }, |
176 | 157 | "attack": { |
177 | | - "$id": "#/properties/scenarios/items/properties/incomingDamage/items/properties/attack", |
178 | 158 | "type": "string", |
179 | 159 | "title": "Attack Name", |
180 | 160 | "description": "The name of the attack that will hit Samus. Should be the name of an attack the boss has.", |
|
185 | 165 | "pattern": "^(.*)$" |
186 | 166 | }, |
187 | 167 | "frequencyFrames": { |
188 | | - "$id": "#/properties/scenarios/items/properties/incomingDamage/items/properties/frequencyFrames", |
189 | 168 | "type": "integer", |
190 | 169 | "title": "Frequency Frames", |
191 | 170 | "description": "Indicates the frequency (in frames) at which Samus is expected to be hit by the attack" |
192 | 171 | }, |
193 | 172 | "avoidingRequires": { |
194 | 173 | "$ref" : "m3-requirements.schema.json#/definitions/logicalRequirements", |
195 | | - "$id": "#/properties/scenarios/items/properties/incomingDamage/items/properties/avoidingRequires", |
196 | 174 | "title": "Avoidance Requirements", |
197 | 175 | "description": "Equipment, tech, and flag requirements that are needed to avoid getting hit by the attack" |
198 | 176 | }, |
199 | 177 | "note": { |
200 | | - "$ref" : "m3-note.schema.json#/definitions/note", |
201 | | - "$id": "#/properties/scenarios/items/properties/incomingDamage/items/properties/note" |
| 178 | + "$ref" : "m3-note.schema.json#/definitions/note" |
202 | 179 | }, |
203 | 180 | "devNote": { |
204 | | - "$ref" : "m3-note.schema.json#/definitions/devNote", |
205 | | - "$id": "#/properties/scenarios/items/properties/incomingDamage/items/properties/devNote" |
| 181 | + "$ref" : "m3-note.schema.json#/definitions/devNote" |
206 | 182 | } |
207 | 183 | } |
208 | 184 | } |
209 | 185 | }, |
210 | 186 | "particleFrequencyFrames": { |
211 | | - "$id": "#/properties/scenarios/items/properties/particleFrequencyFrames", |
212 | 187 | "type": "integer", |
213 | 188 | "title": "Particle Frequency Frames", |
214 | 189 | "description": "Indicates the frequency (in frames), at which Samus will destroy a farmable particle spawned by the boss. This has a chance to yield energy drops.", |
|
218 | 193 | ] |
219 | 194 | }, |
220 | 195 | "note": { |
221 | | - "$ref" : "m3-note.schema.json#/definitions/note", |
222 | | - "$id": "#/properties/scenarios/items/properties/note" |
| 196 | + "$ref" : "m3-note.schema.json#/definitions/note" |
223 | 197 | }, |
224 | 198 | "devNote": { |
225 | | - "$ref" : "m3-note.schema.json#/definitions/devNote", |
226 | | - "$id": "#/properties/scenarios/items/properties/devNote" |
| 199 | + "$ref" : "m3-note.schema.json#/definitions/devNote" |
227 | 200 | } |
228 | 201 | } |
229 | 202 | } |
|
0 commit comments