mirror of
https://github.com/vcmi/vcmi.git
synced 2024-12-24 22:14:36 +02:00
cf4b3c91cb
- found situation where JsonNode parser won't report warning: comma after last element in arrays or objects. Fixed this in our config files but parser change is disabled for now due to huge number of warnings from mods.
175 lines
4.2 KiB
JSON
175 lines
4.2 KiB
JSON
{
|
|
"type":"object",
|
|
"$schema": "http://json-schema.org/draft-04/schema",
|
|
"title" : "VCMI hero format",
|
|
"description" : "Format used to define new heroes in VCMI",
|
|
"required": [ "army", "class", "skills", "texts" ],
|
|
|
|
"oneOf" : [
|
|
{
|
|
"required" : [ "images" ]
|
|
},
|
|
{
|
|
"required" : [ "index" ]
|
|
}
|
|
],
|
|
|
|
"additionalProperties" : false,
|
|
"properties":{
|
|
"army": {
|
|
"type":"array",
|
|
"description": "Initial hero army when recruited in tavern",
|
|
"minItems" : 1,
|
|
"maxItems" : 3,
|
|
"items": {
|
|
"type":"object",
|
|
"additionalProperties" : false,
|
|
"required" : [ "creature", "min", "max" ],
|
|
"properties":{
|
|
"creature": {
|
|
"type":"string",
|
|
"description": "creature"
|
|
},
|
|
"max": {
|
|
"type":"number",
|
|
"description": "max"
|
|
},
|
|
"min": {
|
|
"type":"number",
|
|
"description": "min"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"index" : {
|
|
"type" : "number",
|
|
"description" : "Private field to break things, do not use."
|
|
},
|
|
"special": {
|
|
"type":"boolean",
|
|
"description": "Marks this object as special and not available by default"
|
|
},
|
|
"class": {
|
|
"type":"string",
|
|
"description": "Hero class, e.g. knight or battleMage"
|
|
},
|
|
"female": {
|
|
"type":"boolean",
|
|
"description": "This hero is female (changeable via editor)"
|
|
},
|
|
"images": {
|
|
"type":"object",
|
|
"additionalProperties" : false,
|
|
"description": "images",
|
|
"required": [ "large", "small", "specialtyLarge", "specialtySmall" ],
|
|
"properties":{
|
|
"large": {
|
|
"type":"string",
|
|
"description": "Large version of portrait for use in hero screen"
|
|
},
|
|
"small": {
|
|
"type":"string",
|
|
"description": "Small version of portrait for use on adventure map"
|
|
},
|
|
"specialtyLarge": {
|
|
"type":"string",
|
|
"description": "Large image of hero specilty, used in hero screen"
|
|
},
|
|
"specialtySmall": {
|
|
"type":"string",
|
|
"description": "Small image of hero specialty for use in exchange screen"
|
|
}
|
|
}
|
|
},
|
|
"skills": {
|
|
"type":"array",
|
|
"description": "List of skills initially known by hero",
|
|
"maxItems" : 8,
|
|
"items": {
|
|
"type":"object",
|
|
"additionalProperties" : false,
|
|
"required" : [ "level", "skill" ],
|
|
"properties":{
|
|
"level": {
|
|
"type":"string",
|
|
"description": "level",
|
|
"enum" : [ "basic", "advanced", "expert" ]
|
|
},
|
|
"skill": {
|
|
"type":"string",
|
|
"description": "skill"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"specialties" :
|
|
{
|
|
"type" : "array",
|
|
"description" : "Specialty format used for OH3 heroes. Use \"specialty\" instead",
|
|
"additionalItems" : true
|
|
},
|
|
"specialty": {
|
|
"type":"array",
|
|
"description": "Description of hero specialty using bonus system",
|
|
"items": {
|
|
"type":"object",
|
|
"additionalProperties" : false,
|
|
"required" : [ "bonuses" ],
|
|
"properties":{
|
|
"growsWithLevel" : {
|
|
"type" : "boolean",
|
|
"description" : "Specialty growth with level, so far only SECONDARY_SKILL_PREMY and PRIMATY SKILL with creature limiter can grow"
|
|
},
|
|
"bonuses": {
|
|
"type":"array",
|
|
"description": "List of bonuses",
|
|
"items": { "$ref" : "vcmi:bonus" }
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"spellbook": {
|
|
"type":"array",
|
|
"description": "List of starting spells, if available. This entry (even empty) will also grant spellbook",
|
|
"items": { "type":"string" }
|
|
},
|
|
"texts": {
|
|
"type":"object",
|
|
"additionalProperties" : false,
|
|
"description": "All translatable texts related to hero",
|
|
"required" : [ "biography", "name", "specialty" ],
|
|
"properties":{
|
|
"biography": {
|
|
"type":"string",
|
|
"description": "Hero biography"
|
|
},
|
|
"name": {
|
|
"type":"string",
|
|
"description": "Hero name"
|
|
},
|
|
"specialty": {
|
|
"type":"object",
|
|
"additionalProperties" : false,
|
|
"description": "Hero specialty information",
|
|
"required" : [ "description", "name", "tooltip" ],
|
|
"properties":{
|
|
"description": {
|
|
"type":"string",
|
|
"description": "Description visible when hovering over specialty icon"
|
|
},
|
|
"name": {
|
|
"type":"string",
|
|
"description": "Name of the specialty"
|
|
},
|
|
"tooltip": {
|
|
"type":"string",
|
|
"description": "Tooltip visible on clicking icon."
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|