|
|
@@ -0,0 +1,172 @@
|
|
|
+{
|
|
|
+ "$schema": "http://json-schema.org/draft-04/schema#",
|
|
|
+ "properties": {
|
|
|
+ "allowsSpellResistance": {
|
|
|
+ "type": "boolean"
|
|
|
+ },
|
|
|
+ "area": {
|
|
|
+ "oneOf"[
|
|
|
+ {
|
|
|
+ "properties":{
|
|
|
+ "@type": {"type": "string", "enum": ["Line"]},
|
|
|
+ "distance": {"type": "integer"}
|
|
|
+ }
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "properties":{
|
|
|
+ "@type": {"type": "string", "enum": ["Emission"]},
|
|
|
+ "emit": {"type": "string", "enum": ["BURST", "EMANATION", "SPREAD", "NONE"]}
|
|
|
+ }
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "properties":{
|
|
|
+ "@type": {"type": "string", "enum": ["Sphere"]},
|
|
|
+ "radius": {"type": "integer"},
|
|
|
+ "emit": {"type": "string", "enum": ["BURST", "EMANATION", "SPREAD", "NONE"]},
|
|
|
+ "aroundYou": {"type": "boolean"}
|
|
|
+ }
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "properties":{
|
|
|
+ "@type": {"type": "string", "enum": ["Cylinder"]},
|
|
|
+ "radius": {"type": "integer"},
|
|
|
+ "height": {"type": "integer"}
|
|
|
+ }
|
|
|
+ }
|
|
|
+ ]
|
|
|
+ },
|
|
|
+ "castingTime": {
|
|
|
+ "type": "string"
|
|
|
+ },
|
|
|
+ "classToLevel": {
|
|
|
+ "patternProperties": {
|
|
|
+ "^.*$": {"type": "integer"}
|
|
|
+ },
|
|
|
+ "type": "object"
|
|
|
+ },
|
|
|
+ "components": {
|
|
|
+ "items": {
|
|
|
+ "type": "string",
|
|
|
+ "enum": ["V", "S", "M", "F", "DF", "M_DF", "F_DF", "XP"]
|
|
|
+ },
|
|
|
+ "type": "array"
|
|
|
+ },
|
|
|
+ "description": {
|
|
|
+ "type": "string"
|
|
|
+ },
|
|
|
+ "duration": {
|
|
|
+ "oneOf":[
|
|
|
+ {"type": "string"},
|
|
|
+ {
|
|
|
+ "dependencies":{
|
|
|
+ "per": ["step"]
|
|
|
+ }
|
|
|
+ "properties"{
|
|
|
+ "duration": {"type": "integer"},
|
|
|
+ "per": {"type": "integer"},
|
|
|
+ "step": {"type": "integer"},
|
|
|
+ "unit":{
|
|
|
+ "type": "string",
|
|
|
+ "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
|
|
|
+ },
|
|
|
+ "keywords": {
|
|
|
+ "items": {"type": "string"},
|
|
|
+ "type": "array"
|
|
|
+ },
|
|
|
+ "name": {
|
|
|
+ "type": "string"
|
|
|
+ },
|
|
|
+ "range": {
|
|
|
+ "oneOf": [
|
|
|
+ {
|
|
|
+ "type": "string",
|
|
|
+ "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
|
|
|
+ },
|
|
|
+ ]
|
|
|
+ },
|
|
|
+ "savingThrow": {
|
|
|
+ "type": "string"
|
|
|
+ },
|
|
|
+ "school": {
|
|
|
+ "type": "string"
|
|
|
+ },
|
|
|
+ "subSchool": {
|
|
|
+ "type": "string"
|
|
|
+ },
|
|
|
+ "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
|
|
|
+ }
|
|
|
+ ]
|
|
|
+ }
|
|
|
+ },
|
|
|
+ "required": [
|
|
|
+ "school",
|
|
|
+ "name",
|
|
|
+ "description",
|
|
|
+ "castingTime",
|
|
|
+ "effect",
|
|
|
+ "classToLevel",
|
|
|
+ "duration",
|
|
|
+ "range",
|
|
|
+ "components",
|
|
|
+ "keywords",
|
|
|
+ "savingThrow"
|
|
|
+ ],
|
|
|
+ "type": "object"
|
|
|
+}
|