|
|
@@ -6,37 +6,10 @@
|
|
|
},
|
|
|
"area": {
|
|
|
"oneOf":[
|
|
|
- {
|
|
|
- "properties":{
|
|
|
- "@type": {"const": "Line"},
|
|
|
- "distance": {"type": "integer"}
|
|
|
- },
|
|
|
- "additionalProperties": false
|
|
|
- },
|
|
|
- {
|
|
|
- "properties":{
|
|
|
- "@type": {"const": "Emission"},
|
|
|
- "emit": {"enum": ["BURST", "EMANATION", "SPREAD", "NONE"]}
|
|
|
- },
|
|
|
- "additionalProperties": false
|
|
|
- },
|
|
|
- {
|
|
|
- "properties":{
|
|
|
- "@type": {"const": "Sphere"},
|
|
|
- "radius": {"type": "integer"},
|
|
|
- "emit": {"enum": ["BURST", "EMANATION", "SPREAD", "NONE"]},
|
|
|
- "aroundYou": {"type": "boolean"}
|
|
|
- },
|
|
|
- "additionalProperties": false
|
|
|
- },
|
|
|
- {
|
|
|
- "properties":{
|
|
|
- "@type": {"const": "Cylinder"},
|
|
|
- "radius": {"type": "integer"},
|
|
|
- "height": {"type": "integer"}
|
|
|
- },
|
|
|
- "additionalProperties": false
|
|
|
- }
|
|
|
+ {"$ref": "#/definitions/area/Line"},
|
|
|
+ {"$ref": "#/definitions/area/Emission"},
|
|
|
+ {"$ref": "#/definitions/area/Sphere"},
|
|
|
+ {"$ref": "#/definitions/area/Cylinder"}
|
|
|
]
|
|
|
},
|
|
|
"castingTime": {
|
|
|
@@ -60,45 +33,10 @@
|
|
|
"duration": {
|
|
|
"oneOf":[
|
|
|
{"type": "string"},
|
|
|
- {
|
|
|
- "dependencies":{
|
|
|
- "per": ["step"]
|
|
|
- },
|
|
|
- "properties":{
|
|
|
- "duration": {"type": "integer"},
|
|
|
- "per": {"type": "integer"},
|
|
|
- "step": {"type": "integer"},
|
|
|
- "unit":{
|
|
|
- "enum": ["round", "minute", "hour", "day"]
|
|
|
- }
|
|
|
- },
|
|
|
- "required": ["unit", "duration"],
|
|
|
- "type": "object",
|
|
|
- "additionalProperties": false
|
|
|
- }
|
|
|
+ {"$ref": "#/definitions/duration"}
|
|
|
]
|
|
|
},
|
|
|
- "effect": {
|
|
|
- "dependencies":{
|
|
|
- "beyond":["per", "resolved"],
|
|
|
- "count":["resolved"],
|
|
|
- "per":["resolved"],
|
|
|
- "step":["per", "resolved"],
|
|
|
- "upto":["per", "resolved"]
|
|
|
- },
|
|
|
- "properties": {
|
|
|
- "beyond": {"type": "integer"},
|
|
|
- "count": {"type": "integer"},
|
|
|
- "format": {"type": "string"},
|
|
|
- "per": {"type": "integer"},
|
|
|
- "resolved": {"type": "string"},
|
|
|
- "step": {"type": "integer"},
|
|
|
- "upto": {"type": "integer"}
|
|
|
- },
|
|
|
- "required": ["format"],
|
|
|
- "type": "object",
|
|
|
- "additionalProperties": false
|
|
|
- },
|
|
|
+ "effect": {"$ref": "#/definitions/effect"},
|
|
|
"keywords": {
|
|
|
"items": {"type": "string"},
|
|
|
"type": "array"
|
|
|
@@ -108,23 +46,8 @@
|
|
|
},
|
|
|
"range": {
|
|
|
"oneOf": [
|
|
|
- {
|
|
|
- "enum": ["Touch", "Close", "Medium", "Long", "Unlimited"]
|
|
|
- },
|
|
|
- {
|
|
|
- "dependencies": {
|
|
|
- "per": ["step"]
|
|
|
- },
|
|
|
- "properties": {
|
|
|
- "name": {"type": "string"},
|
|
|
- "range": {"type": "integer"},
|
|
|
- "per": {"type": "integer"},
|
|
|
- "step": {"type": "integer"}
|
|
|
- },
|
|
|
- "type": "object",
|
|
|
- "required": ["name", "range"],
|
|
|
- "additionalProperties": false
|
|
|
- }
|
|
|
+ {"enum": ["Touch", "Close", "Medium", "Long", "Unlimited"]},
|
|
|
+ {"$ref": "#/definitions/range"}
|
|
|
]
|
|
|
},
|
|
|
"savingThrow": {
|
|
|
@@ -138,21 +61,8 @@
|
|
|
},
|
|
|
"target": {
|
|
|
"oneOf":[
|
|
|
- {
|
|
|
- "type": "string"
|
|
|
- },
|
|
|
- {
|
|
|
- "properties": {
|
|
|
- "count": {"type": "integer"},
|
|
|
- "format": {"type": "string"},
|
|
|
- "per": {"type": "integer"},
|
|
|
- "resolved": {"type": "string"},
|
|
|
- "step": {"type": "integer"}
|
|
|
- },
|
|
|
- "required": ["format", "resolved", "count", "per", "step"],
|
|
|
- "type": "object",
|
|
|
- "additionalProperties": false
|
|
|
- }
|
|
|
+ {"type": "string"},
|
|
|
+ {"$ref": "#/definitions/target"}
|
|
|
]
|
|
|
}
|
|
|
},
|
|
|
@@ -169,6 +79,104 @@
|
|
|
"keywords",
|
|
|
"savingThrow"
|
|
|
],
|
|
|
- "type": "object"
|
|
|
+ "type": "object",
|
|
|
+ "definitions": {
|
|
|
+ "area": {
|
|
|
+ "Line": {
|
|
|
+ "properties":{
|
|
|
+ "@type": {"const": "Line"},
|
|
|
+ "distance": {"type": "integer"}
|
|
|
+ },
|
|
|
+ "additionalProperties": false
|
|
|
+ },
|
|
|
+ "Emission": {
|
|
|
+ "properties":{
|
|
|
+ "@type": {"const": "Emission"},
|
|
|
+ "emit": {"enum": ["BURST", "EMANATION", "SPREAD", "NONE"]}
|
|
|
+ },
|
|
|
+ "additionalProperties": false
|
|
|
+ },
|
|
|
+ "Sphere": {
|
|
|
+ "properties":{
|
|
|
+ "@type": {"const": "Sphere"},
|
|
|
+ "radius": {"type": "integer"},
|
|
|
+ "emit": {"enum": ["BURST", "EMANATION", "SPREAD", "NONE"]},
|
|
|
+ "aroundYou": {"type": "boolean"}
|
|
|
+ },
|
|
|
+ "additionalProperties": false
|
|
|
+ },
|
|
|
+ "Cylinder": {
|
|
|
+ "properties":{
|
|
|
+ "@type": {"const": "Cylinder"},
|
|
|
+ "radius": {"type": "integer"},
|
|
|
+ "height": {"type": "integer"}
|
|
|
+ },
|
|
|
+ "additionalProperties": false
|
|
|
+ }
|
|
|
+ },
|
|
|
+ "duration": {
|
|
|
+ "dependencies":{
|
|
|
+ "per": ["step"]
|
|
|
+ },
|
|
|
+ "properties":{
|
|
|
+ "duration": {"type": "integer"},
|
|
|
+ "per": {"type": "integer"},
|
|
|
+ "step": {"type": "integer"},
|
|
|
+ "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"},
|
|
|
+ "count": {"type": "integer"},
|
|
|
+ "format": {"type": "string"},
|
|
|
+ "per": {"type": "integer"},
|
|
|
+ "resolved": {"type": "string"},
|
|
|
+ "step": {"type": "integer"},
|
|
|
+ "upto": {"type": "integer"}
|
|
|
+ },
|
|
|
+ "required": ["format"],
|
|
|
+ "type": "object",
|
|
|
+ "additionalProperties": false
|
|
|
+ },
|
|
|
+ "range": {
|
|
|
+ "dependencies": {
|
|
|
+ "per": ["step"]
|
|
|
+ },
|
|
|
+ "properties": {
|
|
|
+ "name": {"type": "string"},
|
|
|
+ "range": {"type": "integer"},
|
|
|
+ "per": {"type": "integer"},
|
|
|
+ "step": {"type": "integer"}
|
|
|
+ },
|
|
|
+ "type": "object",
|
|
|
+ "required": ["name", "range"],
|
|
|
+ "additionalProperties": false
|
|
|
+ },
|
|
|
+ "target": {
|
|
|
+ "properties": {
|
|
|
+ "count": {"type": "integer"},
|
|
|
+ "format": {"type": "string"},
|
|
|
+ "per": {"type": "integer"},
|
|
|
+ "resolved": {"type": "string"},
|
|
|
+ "step": {"type": "integer"}
|
|
|
+ },
|
|
|
+ "required": ["format", "resolved", "count", "per", "step"],
|
|
|
+ "type": "object",
|
|
|
+ "additionalProperties": false
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|
|
|
|