Files
RustRaptor/schemas/mission-v1.json

229 lines
4.3 KiB
JSON

{
"$schema": "http://json-schema.org/draft-07/schema#",
"title": "MissionDef",
"type": "object",
"required": [
"duration",
"id",
"name"
],
"properties": {
"art": {
"default": null,
"anyOf": [
{
"$ref": "#/definitions/Art"
},
{
"type": "null"
}
]
},
"auto_complete": {
"default": true,
"type": "boolean"
},
"columns": {
"default": 0,
"type": "integer",
"format": "uint32",
"minimum": 0.0
},
"duration": {
"type": "integer",
"format": "uint64",
"minimum": 0.0
},
"id": {
"type": "string"
},
"layout": {
"default": [],
"type": "array",
"items": {
"type": "integer",
"format": "uint",
"minimum": 0.0
}
},
"legacy_map": {
"default": null,
"type": [
"integer",
"null"
],
"format": "uint32",
"minimum": 0.0
},
"music": {
"default": null,
"type": [
"integer",
"null"
],
"format": "uint32",
"minimum": 0.0
},
"music_track": {
"description": "Package music registry ID. Mutually exclusive with legacy `music`.",
"default": null,
"type": [
"string",
"null"
]
},
"name": {
"type": "string"
},
"next": {
"default": null,
"type": [
"string",
"null"
]
},
"script": {
"default": null,
"type": [
"string",
"null"
]
},
"spawns": {
"default": [],
"type": "array",
"items": {
"$ref": "#/definitions/SpawnDef"
}
},
"tiles": {
"default": [],
"type": "array",
"items": {
"$ref": "#/definitions/TileDef"
}
}
},
"additionalProperties": false,
"definitions": {
"Art": {
"type": "object",
"required": [
"logical_height",
"logical_width"
],
"properties": {
"asset": {
"type": [
"integer",
"null"
],
"format": "uint32",
"minimum": 0.0
},
"frames": {
"default": 1,
"type": "integer",
"format": "uint32",
"minimum": 0.0
},
"hd_png": {
"default": null,
"type": [
"string",
"null"
]
},
"logical_height": {
"type": "integer",
"format": "uint32",
"minimum": 0.0
},
"logical_width": {
"type": "integer",
"format": "uint32",
"minimum": 0.0
},
"nearest": {
"default": false,
"type": "boolean"
},
"png": {
"type": [
"string",
"null"
]
}
},
"additionalProperties": false
},
"SpawnDef": {
"type": "object",
"required": [
"enemy",
"tick",
"x",
"y"
],
"properties": {
"difficulty": {
"default": 0,
"type": "integer",
"format": "uint32",
"minimum": 0.0
},
"enemy": {
"type": "string"
},
"tick": {
"type": "integer",
"format": "uint64",
"minimum": 0.0
},
"x": {
"type": "integer",
"format": "int32"
},
"y": {
"type": "integer",
"format": "int32"
}
},
"additionalProperties": false
},
"TileDef": {
"type": "object",
"required": [
"art"
],
"properties": {
"art": {
"$ref": "#/definitions/Art"
},
"destroyed": {
"default": null,
"anyOf": [
{
"$ref": "#/definitions/Art"
},
{
"type": "null"
}
]
},
"health": {
"default": 0,
"type": "integer",
"format": "int32"
},
"reward": {
"default": 0,
"type": "integer",
"format": "uint32",
"minimum": 0.0
}
},
"additionalProperties": false
}
}
}