Worldshaper/content/schema/abilities.schema.json

89 lines
2.2 KiB
JSON
Raw Permalink Normal View History

2026-06-26 18:18:14 -04:00
{
"$schema": "http://json-schema.org/draft-07/schema#",
"title": "Ability Definitions",
"type": "object",
"additionalProperties": false,
"required": ["schemaVersion", "abilities"],
"properties": {
"schemaVersion": {
"type": "integer",
"minimum": 1
},
"abilities": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"required": ["id", "name", "targeting", "cost", "power", "statusEffectsOnHit"],
"properties": {
"id": {
"type": "string",
"minLength": 1
},
"name": {
"type": "string",
"minLength": 1
},
"targeting": {
"type": "object",
"additionalProperties": false,
"required": ["mode", "range", "requiresLos"],
"properties": {
"mode": {
"type": "string",
"minLength": 1
},
"range": {
"type": "number"
},
"requiresLos": {
"type": "boolean"
}
}
},
"cost": {
"type": "object",
"additionalProperties": false,
"required": ["mp", "ap"],
"properties": {
"mp": {
"type": "number"
},
"ap": {
"type": "number"
}
}
},
"power": {
"type": "object",
"additionalProperties": false,
"required": ["formula", "base", "scalingStat", "scaling"],
"properties": {
"formula": {
"type": "string",
"minLength": 1
},
"base": {
"type": "number"
},
"scalingStat": {
"type": "string",
"minLength": 1
},
"scaling": {
"type": "number"
}
}
},
"statusEffectsOnHit": {
"type": "array",
"items": {
"type": "object"
}
}
}
}
}
}
}