| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188 |
- {
- "$schema": "http://json-schema.org/draft-06/schema#",
- "properties": {
- "allowsSpellResistance": {
- "type": "boolean"
- },
- "area": {
- "oneOf":[
- {"$ref": "#/definitions/area/Line"},
- {"$ref": "#/definitions/area/Emission"},
- {"$ref": "#/definitions/area/Sphere"},
- {"$ref": "#/definitions/area/Cylinder"}
- ]
- },
- "castingTime": {
- "type": "string",
- "enum": ["Free", "Swift", "Move", "Standard", "Full"]
- },
- "classToLevel": {
- "patternProperties": {
- "^.*$": {"type": "integer", "minimum":0, "maximum":9}
- },
- "type": "object"
- },
- "components": {
- "items": {
- "enum": ["V", "S", "M", "F", "DF", "M_DF", "F_DF", "XP"]
- },
- "type": "array"
- },
- "description": {
- "type": "string"
- },
- "duration": {
- "oneOf":[
- {"type": "string"},
- {"$ref": "#/definitions/duration"}
- ]
- },
- "effect": {"$ref": "#/definitions/effect"},
- "keywords": {
- "items": {"type": "string"},
- "type": "array"
- },
- "name": {
- "type": "string"
- },
- "range": {
- "oneOf": [
- {"enum": ["Touch", "Close", "Medium", "Long", "Unlimited"]},
- {"$ref": "#/definitions/range"}
- ]
- },
- "savingThrow": {
- "type": "string"
- },
- "school": {
- "type": "string"
- },
- "subSchool": {
- "type": "string"
- },
- "target": {
- "oneOf":[
- {"type": "string"},
- {"$ref": "#/definitions/target"}
- ]
- }
- },
- "required": [
- "school",
- "name",
- "description",
- "castingTime",
- "effect",
- "classToLevel",
- "duration",
- "range",
- "components",
- "keywords",
- "savingThrow"
- ],
- "type": "object",
- "definitions": {
- "area": {
- "Line": {
- "properties":{
- "@type": {"const": "Line"},
- "distance": {"$ref": "file:common.json#/definitions/distance"}
- },
- "additionalProperties": false
- },
- "Emission": {
- "properties":{
- "@type": {"const": "Emission"},
- "emit": {"enum": ["BURST", "EMANATION", "SPREAD", "NONE"]}
- },
- "additionalProperties": false
- },
- "Sphere": {
- "properties":{
- "@type": {"const": "Sphere"},
- "radius": {
- "oneOf": [
- {"const": 0},
- {"$ref": "file:common.json#/definitions/distance"}
- ]
- },
- "emit": {"enum": ["BURST", "EMANATION", "SPREAD", "NONE"]},
- "aroundYou": {"type": "boolean"}
- },
- "additionalProperties": false
- },
- "Cylinder": {
- "properties":{
- "@type": {"const": "Cylinder"},
- "radius": {"$ref": "file:common.json#/definitions/distance"},
- "height": {"$ref": "file:common.json#/definitions/distance"}
- },
- "additionalProperties": false
- }
- },
- "duration": {
- "dependencies":{
- "per": ["step"]
- },
- "properties":{
- "duration": {"type": "integer", "exclusiveMinimum": 0},
- "per": {"type": "integer", "exclusiveMinimum": 0},
- "step": {"type": "integer", "exclusiveMinimum": 0},
- "unit":{
- "enum": ["round", "minute", "hour", "day"]
- }
- },
- "required": ["unit", "duration"],
- "type": "object",
- "additionalProperties": false
- },
- "effect": {
- "dependencies":{
- "beyond":["per", "resolved"],
- "count":["resolved"],
- "per":["resolved"],
- "step":["per", "resolved"],
- "upto":["per", "resolved"]
- },
- "properties": {
- "beyond": {"type": "integer", "exclusiveMinimum": 0},
- "count": {"type": "integer", "exclusiveMinimum": 0},
- "format": {"type": "string"},
- "per": {"type": "integer", "exclusiveMinimum": 0},
- "resolved": {"type": "string"},
- "step": {"type": "integer", "exclusiveMinimum": 0},
- "upto": {"type": "integer", "exclusiveMinimum": 0}
- },
- "required": ["format"],
- "type": "object",
- "additionalProperties": false
- },
- "range": {
- "dependencies": {
- "per": ["step"]
- },
- "properties": {
- "name": {"type": "string"},
- "range": {"$ref": "file:common.json#/definitions/distance"},
- "per": {"$ref": "file:common.json#/definitions/distance"},
- "step": {"type": "integer", "exclusiveMinimum": 0}
- },
- "type": "object",
- "required": ["name", "range"],
- "additionalProperties": false
- },
- "target": {
- "properties": {
- "count": {"type": "integer", "exclusiveMinimum": 0},
- "format": {"type": "string"},
- "per": {"type": "integer", "exclusiveMinimum": 0},
- "resolved": {"type": "string"},
- "step": {"type": "integer", "exclusiveMinimum": 0}
- },
- "required": ["format", "resolved", "count", "per", "step"],
- "type": "object",
- "additionalProperties": false
- }
- }
- }
|