255 lines
5.0 KiB
JSON
255 lines
5.0 KiB
JSON
{
|
|
"$ref": "#/definitions/GdRoot",
|
|
"$schema": "http://json-schema.org/draft-07/schema#",
|
|
"definitions": {
|
|
"EEnemySize": {
|
|
"enum": [
|
|
0,
|
|
1,
|
|
2
|
|
],
|
|
"type": "number"
|
|
},
|
|
"EProjectileEffectType": {
|
|
"const": 0,
|
|
"type": "number"
|
|
},
|
|
"GdEnemy": {
|
|
"additionalProperties": false,
|
|
"properties": {
|
|
"speed": {
|
|
"type": "number"
|
|
}
|
|
},
|
|
"required": [
|
|
"speed"
|
|
],
|
|
"type": "object"
|
|
},
|
|
"GdLevel": {
|
|
"additionalProperties": false,
|
|
"properties": {
|
|
"currency": {
|
|
"type": "number"
|
|
},
|
|
"enemyRoutes": {
|
|
"items": {
|
|
"items": {
|
|
"type": "number"
|
|
},
|
|
"type": "array"
|
|
},
|
|
"type": "array"
|
|
},
|
|
"enemySpawns": {
|
|
"items": {
|
|
"$ref": "#/definitions/Hex"
|
|
},
|
|
"type": "array"
|
|
},
|
|
"enemyTargets": {
|
|
"items": {
|
|
"$ref": "#/definitions/Hex"
|
|
},
|
|
"type": "array"
|
|
},
|
|
"radius": {
|
|
"type": "number"
|
|
},
|
|
"walls": {
|
|
"items": {
|
|
"$ref": "#/definitions/Hex"
|
|
},
|
|
"type": "array"
|
|
},
|
|
"waves": {
|
|
"items": {
|
|
"$ref": "#/definitions/GdWave"
|
|
},
|
|
"type": "array"
|
|
}
|
|
},
|
|
"required": [
|
|
"radius",
|
|
"currency",
|
|
"walls",
|
|
"enemySpawns",
|
|
"enemyTargets",
|
|
"enemyRoutes",
|
|
"waves"
|
|
],
|
|
"type": "object"
|
|
},
|
|
"GdProjectileEffect": {
|
|
"additionalProperties": false,
|
|
"properties": {
|
|
"amount": {
|
|
"type": "number"
|
|
},
|
|
"speed": {
|
|
"type": "number"
|
|
},
|
|
"type": {
|
|
"$ref": "#/definitions/EProjectileEffectType"
|
|
}
|
|
},
|
|
"required": [
|
|
"type",
|
|
"amount",
|
|
"speed"
|
|
],
|
|
"type": "object"
|
|
},
|
|
"GdRoot": {
|
|
"additionalProperties": false,
|
|
"properties": {
|
|
"enemies": {
|
|
"items": {
|
|
"$ref": "#/definitions/GdEnemy"
|
|
},
|
|
"type": "array"
|
|
},
|
|
"levels": {
|
|
"items": {
|
|
"$ref": "#/definitions/GdLevel"
|
|
},
|
|
"type": "array"
|
|
},
|
|
"simulation": {
|
|
"$ref": "#/definitions/GdSimulation"
|
|
},
|
|
"towers": {
|
|
"items": {
|
|
"$ref": "#/definitions/GdTower"
|
|
},
|
|
"type": "array"
|
|
}
|
|
},
|
|
"required": [
|
|
"enemies",
|
|
"towers",
|
|
"levels",
|
|
"simulation"
|
|
],
|
|
"type": "object"
|
|
},
|
|
"GdSimulation": {
|
|
"additionalProperties": false,
|
|
"properties": {
|
|
"spawnDelay": {
|
|
"type": "number"
|
|
},
|
|
"stepsPerSecond": {
|
|
"type": "number"
|
|
},
|
|
"waveDuration": {
|
|
"type": "number"
|
|
}
|
|
},
|
|
"required": [
|
|
"stepsPerSecond",
|
|
"waveDuration",
|
|
"spawnDelay"
|
|
],
|
|
"type": "object"
|
|
},
|
|
"GdTower": {
|
|
"additionalProperties": false,
|
|
"properties": {
|
|
"aoeEffect": {
|
|
"anyOf": [
|
|
{
|
|
"$ref": "#/definitions/GdProjectileEffect"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
]
|
|
},
|
|
"aoeRange": {
|
|
"type": "number"
|
|
},
|
|
"aoeRate": {
|
|
"type": "number"
|
|
},
|
|
"cost": {
|
|
"type": "number"
|
|
},
|
|
"projectileEffect": {
|
|
"anyOf": [
|
|
{
|
|
"$ref": "#/definitions/GdProjectileEffect"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
]
|
|
},
|
|
"projectileRange": {
|
|
"type": "number"
|
|
},
|
|
"projectileRate": {
|
|
"type": "number"
|
|
},
|
|
"projectileSize": {
|
|
"type": "number"
|
|
}
|
|
},
|
|
"required": [
|
|
"cost",
|
|
"projectileEffect",
|
|
"projectileRange",
|
|
"projectileRate",
|
|
"projectileSize",
|
|
"aoeEffect",
|
|
"aoeRange",
|
|
"aoeRate"
|
|
],
|
|
"type": "object"
|
|
},
|
|
"GdWave": {
|
|
"additionalProperties": false,
|
|
"properties": {
|
|
"amount": {
|
|
"type": "number"
|
|
},
|
|
"enemy": {
|
|
"type": "number"
|
|
},
|
|
"gain": {
|
|
"type": "number"
|
|
},
|
|
"hitpoints": {
|
|
"type": "number"
|
|
},
|
|
"size": {
|
|
"$ref": "#/definitions/EEnemySize"
|
|
}
|
|
},
|
|
"required": [
|
|
"enemy",
|
|
"size",
|
|
"amount",
|
|
"gain",
|
|
"hitpoints"
|
|
],
|
|
"type": "object"
|
|
},
|
|
"Hex": {
|
|
"additionalProperties": false,
|
|
"properties": {
|
|
"col": {
|
|
"type": "number"
|
|
},
|
|
"row": {
|
|
"type": "number"
|
|
}
|
|
},
|
|
"required": [
|
|
"col",
|
|
"row"
|
|
],
|
|
"type": "object"
|
|
}
|
|
}
|
|
} |