{ "type" : "object", "$schema" : "http://json-schema.org/draft-04/schema", "title" : "VCMI hero class format", "description" : "Format used to define classes of heroes in VCMI", "required" : [ "name", "faction", "affinity", "commander", "animation", "mapObject", "primarySkills", "secondarySkills", "lowLevelChance", "highLevelChance", "defaultTavern", "tavern" ], "additionalProperties" : false, "properties" : { "name" : { "type" : "string", "description" : "Translatable name of hero class" }, "faction" : { "type" : "string", "description" : "Identifier of faction this class belongs to" }, "affinity" : { "type" : "string", "description" : "Affinity of hero class, might or magic", "enum" : [ "might", "magic"] }, "commander" : { "type" : "string", "description" : "Identifier of creature that is used as commander by heroes" }, "animation" : { "type" : "object", "additionalProperties" : false, "description" : "Files related to hero animation", "required" : [ "battle" ], "properties" : { "battle" : { "type" : "object", "additionalProperties" : false, "description" : "Hero animations for battle", "required" : [ "female", "male" ], "properties" : { "female" : { "type" : "string", "description" : "Female version", "format" : "animationFile" }, "male" : { "type" : "string", "description" : "Male version", "format" : "animationFile" } } } } }, "mapObject" : { // TODO: this entry should be merged with corresponding base entry in hero object type and validated as objectType // "$ref" : "objectType.json", "type" : "object", "properties" : { "filters" : { "type" : "object", "additionalProperties" : { "type" : "array" } } } }, "primarySkills" : { "type" : "object", "description" : "Initial primary skills of heroes", "additionalProperties" : { "type" : "number" } }, "secondarySkills" : { "type" : "object", "description" : "Chance to get specific secondary skill on level-up. All missing skills are considered to be banned", "additionalProperties" : { "type" : "number" } }, "lowLevelChance" : { "type" : "object", "description" : "Chance to get specific primary skill on level-up, applicable for levels less than 10", "additionalProperties" : { "type" : "number" } }, "highLevelChance" : { "type" : "object", "description" : "Chance to get specific primary skill on level-up, applicable for levels starting from 10", "additionalProperties" : { "type" : "number" } }, "defaultTavern" : { "type" : "number", "description" : "Default chance for hero to appear in tavern, used only when value vas not set in tavern field", "minimum" : 0 }, "tavern" : { "type" : "object", "description" : "Chance for this hero to appear in tavern of this factions. Reversed version of field \"tavern\" from town format", "additionalProperties" : { "type" : "number", "minimum" : 0 } }, "index" : { "type" : "number", "description" : "Private field to break things, do not use." } } }