| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200 |
- {
- "type" : "object",
- "$schema" : "http://json-schema.org/draft-04/schema",
- "title" : "VCMI hero format",
- "description" : "Format used to define new heroes in VCMI",
- "required" : [ "class", "army", "skills", "texts" ],
- "anyOf" : [
- {
- "required" : [ "images" ]
- },
- {
- "required" : [ "index" ]
- }
- ],
- "additionalProperties" : false,
- "properties" : {
- "special" : {
- "type" : "boolean",
- "description" : "If set to true hero will be unavailable on start and won't appear in taverns (campaign heroes)"
- },
- "class" : {
- "type" : "string",
- "description" : "Identifier of class this hero belongs to. Such as knight or battleMage"
- },
- "female" : {
- "type" : "boolean",
- "description" : "Set to true if the hero is female by default (can be changed in map editor)"
- },
- "battleImage" : {
- "type" : "string",
- "description" : "Custom animation to be used on battle, overrides hero class property",
- "format" : "animationFile"
- },
- "compatibilityIdentifiers" : {
- "type" : "array",
- "items" : {
- "type" : "string"
- },
- "description" : "Additional identifiers that may refer to this object, to provide compatibility after object has been renamed"
- },
- "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",
- "format" : "imageFile"
- },
- "small" : {
- "type" : "string",
- "description" : "Small version of portrait for use on adventure map",
- "format" : "imageFile"
- },
- "specialtyLarge" : {
- "type" : "string",
- "description" : "Large image of hero specilty, used in hero screen",
- "format" : "imageFile"
- },
- "specialtySmall" : {
- "type" : "string",
- "description" : "Small image of hero specialty for use in exchange screen",
- "format" : "imageFile"
- }
- }
- },
- "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",
- "minimum" : 1
- },
- "min" : {
- "type" : "number",
- "description" : "min",
- "minimum" : 1
- }
- }
- }
- },
- "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"
- }
- }
- }
- },
- "specialty" : {
- "type" : "object",
- "description" : "Description of hero specialty using bonus system",
- "additionalProperties" : false,
- "properties" : {
- "bonuses" : {
- "type" : "object",
- "description" : "List of bonuses added by this specialty. See bonus format for more details",
- "additionalProperties" : { "$ref" : "bonusInstance.json" }
- },
- "creature" : {
- "type" : "string",
- "description" : "Shortcut for defining creature specialty, using standard H3 rules."
- },
- "secondary" : {
- "type" : "string",
- "description" : "Shortcut for defining secondary skill specialty, using standard H3 rules."
- },
- "creatureLevel" : {
- "type" : "integer",
- "description" : "Assumed creature level for creature specialty"
- },
- "stepSize" : {
- "type" : "integer",
- "description" : "How creature or secondary skill specialty should grow per each step. Default is 5"
- }
- }
- },
- "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" : [ "name", "biography", "specialty" ],
- "properties" : {
- "name" : {
- "type" : "string",
- "description" : "Hero name"
- },
- "biography" : {
- "type" : "string",
- "description" : "Hero biography"
- },
- "specialty" : {
- "type" : "object",
- "additionalProperties" : false,
- "description" : "Hero specialty information",
- "required" : [ "name", "description", "tooltip" ],
- "properties" : {
- "name" : {
- "type" : "string",
- "description" : "Name of the specialty"
- },
- "description" : {
- "type" : "string",
- "description" : "Description visible when hovering over specialty icon"
- },
- "tooltip" : {
- "type" : "string",
- "description" : "Tooltip visible on clicking icon."
- }
- }
- }
- }
- },
- "index" : {
- "type" : "number",
- "description" : "Private field to break things, do not use."
- },
- "onlyOnWaterMap" : {
- "type" : "boolean",
- "description" : "If set to true, hero won't show up on a map with water"
- },
- "onlyOnMapWithoutWater" : {
- "type" : "boolean",
- "description" : "If set to true, hero will show up only if the map contains no water"
- }
- }
- }
|