| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202 |
- {
- "$schema": "http://json-schema.org/draft-06/schema#",
- "properties": {
- "items": {
- "items": {
- "properties": {
- "name": {"type": "string"},
- "count": {"type": "integer", "minimum": 1},
- "countEquipped": {"type": "integer", "minimum": 0},
- "value": {"$ref": "#/definitions/money"},
- "page": {"type": "string"},
- "slot": {
- "allOf":[
- {"$ref": "#/definitions/slot"},
- {"not": {"enum": ["RING1", "RING2"]}}
- ]
- },
- "weight": {"type": "number"}
- },
- "oneOf": [
- {
- "properties": {
- "weapon": {"$ref": "#/definitions/weapon"},
- "armor": false
- }
- },
- {
- "properties": {
- "weapon": false,
- "armor": {"$ref": "#/definitions/armor"}
- }
- },
- {
- "properties": {"weapon": false, "armor": false}
- }
- ],
- "required": [
- "name",
- "count",
- "value",
- "weight"
- ],
- "type": "object"
- },
- "type": "array"
- },
- "equipment": {"$ref": "#/definitions/loadout"},
- "favorites": {
- "additionalProperties": {
- "$ref": "#/definitions/loadout"
- }
- },
- "wealth": {"$ref": "#/definitions/money"}
- },
- "definitions": {
- "loadout": {
- "propertyNames": {"$ref": "#/definitions/slot"},
- "properties": {
- "RING": false,
- "ONE_HAND": false,
- "TWO_HANDS": false
- },
- "additionalProperties": {"type": "string"},
- "type": "object"
- },
- "slot": {
- "type": "string",
- "enum": [
- "HEAD",
- "FACE",
- "NECK",
- "TORSO",
- "BODY",
- "WAIST",
- "SHOULDER",
- "ARM",
- "HAND",
- "RING",
- "RING1",
- "RING2",
- "FEET",
- "MAIN_HAND",
- "OFF_HAND",
- "ONE_HAND",
- "TWO_HANDS"
- ]
- },
- "enchantable": {
- "bonus": {
- "type": "string",
- "enum": [
- "+1", "+2", "+3", "+4", "+5"
- ]
- },
- "properties": {
- "masterwork": {"type": "boolean"},
- "bonus": {"$ref": "#/definitions/enchantable/bonus"},
- "enchantments": {
- "items": {
- "oneOf": [
- {
- "properties": {
- "name": {"type": "string"},
- "effectiveBonus": {"$ref": "#/definitions/enchantable/bonus"}
- },
- "required": ["name", "effectiveBonus"],
- "type": "object"
- },
- {
- "properties": {
- "name": {"type": "string"},
- "adHocValue": {"$ref": "#/definitions/money"}
- },
- "required": ["name", "adHocValue"],
- "type": "object"
- }
- ]
- },
- "type": "array"
- }
- }
- },
- "weapon": {
- "allOf": [
- {"$ref": "#/definitions/enchantable"},
- {
- "dependencies":{
- "secondaryCriticalDamage": ["secondaryDamage"]
- },
- "properties": {
- "damage": {"type": "string"},
- "secondaryDamage": {"type": "string"},
- "criticalThreat": {"type": "integer", "maximum": 20},
- "criticalDamage": {"type": "integer", "minimum": 2},
- "secondaryCriticalDamage": {"type": "integer", "minimum": 2},
- "range": {
- "oneOf": [
- {"type": "string", "const":"Melee"},
- {"$ref": "file:common.json#/definitions/distance"}
- ]
- },
- "type": {
- "type": "string",
- "enum": [
- "Slashing",
- "Piercing",
- "Bludgeoning"
- ]
- }
- },
- "required": [
- "damage",
- "type",
- "range",
- "criticalThreat",
- "criticalDamage"
- ],
- "type": "object"
- }
- ]
- },
- "armor": {
- "allOf": [
- {"$ref": "#/definitions/enchantable"},
- {
- "dependencies": {
- "speed": {"properties": {"type": {"not": {"const": "Shield"}}}}
- },
- "properties": {
- "acBonus": {"type": "integer", "minimum": 0},
- "type": {
- "type": "string",
- "enum": ["Light", "Medium", "Heavy", "Shield"]
- },
- "maxDex": {"type": "integer", "minimum": 0},
- "checkPenalty": {"type": "integer", "maximum": 0},
- "spellFailure": {"type": "integer", "minimum": 0, "maximum": 100},
- "speed": {"type": "integer"}
- },
- "required": [
- "bonus",
- "type",
- "checkPenalty",
- "spellFailure"
- ],
- "type": "object"
- }
- ]
- },
- "money": {
- "properties": {
- "pp": {"type": "integer", "minimum": 0},
- "gp": {"type": "integer", "minimum": 0},
- "sp": {"type": "integer", "minimum": 0},
- "cp": {"type": "integer", "minimum": 0}
- },
- "type": "object"
- }
- },
- "type": "object",
- "additionalProperties": false
- }
|