| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284 |
- {
- "type":"object",
- "$schema": "http://json-schema.org/draft-04/schema",
- "title" : "VCMI creature format",
- "description": "Json format for defining new creatures in VCMI",
- "required" : [ "faction" ],
- "anyOf" : [
- {
- "disabled" : { "enum" : [ true ] }
- },
- {
- "required" : [
- "name", "cost", "level", "fightValue", "aiValue",
- "attack", "defense", "hitPoints", "speed", "damage", "advMapAmount",
- "graphics", "sound"
- ]
- }
- ],
-
- "additionalProperties" : false,
- "properties":{
- "name": {
- "type":"object",
- "additionalProperties" : false,
- "description": "Translatable names for this creature",
- "required" : [ "singular", "plural" ],
- "properties":{
- "singular": {
- "type":"string",
- "description": "Singular version"
- },
- "plural": {
- "type":"string",
- "description": "Plural version"
- }
- }
- },
- "abilityText" : {
- "type" : "string",
- "description" : "Text version of creature abilities. Used only with original creature window"
- },
- "index" : {
- "type" : "number",
- "description" : "Private field to break things, do not use."
- },
- "extraNames" : {
- "type" : "array",
- "items" : { "type" : "string" },
- "description" : "Private field to break things, do not use."
- },
- "faction": {
- "type":"string",
- "description": "Faction this creature belongs to. Examples: castle, rampart"
- },
- "cost": {
- "type":"object",
- "additionalProperties" : false,
- "description": "Cost to recruit this creature",
- "properties":{
- "wood": { "type":"number"},
- "mercury": { "type":"number"},
- "ore": { "type":"number"},
- "sulfur": { "type":"number"},
- "crystal": { "type":"number"},
- "gems": { "type":"number"},
- "gold": { "type":"number"}
- }
- },
- "special": {
- "type":"boolean",
- "description": "Marks this object as special and not available by default"
- },
- "disabled": {
- "type":"boolean",
- "description": "Object is competely disabled and may not be even loaded in-game"
- },
- "level": { "type":"number"},
- "fightValue": {
- "type":"number",
- "description": " \"value\" of creature, used to determine for example army strength"
- },
- "aiValue": {
- "type":"number",
- "description": "Describes how valuable this creature is to AI. Usually similar to fightValue"
- },
- "growth": {
- "type":"number",
- "description": "Basic growth of this creature in town or in external dwellings"
- },
- "horde": {
- "type":"number",
- "description": "Bonus growth of this creature from built horde"
- },
- "attack": { "type":"number" },
- "defense": { "type":"number" },
- "hitPoints": { "type":"number" },
- "speed": { "type":"number" },
- "shots": { "type":"number" },
- "damage": {
- "type":"object",
- "additionalProperties" : false,
- "properties":{
- "max": { "type":"number" },
- "min": { "type":"number" }
- }
- },
- "spellPoints": {
- "type":"number",
- "description": "Spell points this creature has (usually equal to number of casts)"
- },
- "advMapAmount": {
- "type":"object",
- "additionalProperties" : false,
- "description" : "Initial size of random stacks on adventure map",
- "properties":{
- "min": { "type":"number" },
- "max": { "type":"number" }
- }
- },
- "upgrades": {
- "type":"array",
- "description": "List of creatures to which this one can be upgraded",
- "items": { "type":"string" }
- },
- "doubleWide": {
- "type":"boolean",
- "description": "If set, creature will be two tiles wide on battlefield"
- },
- "hasDoubleWeek": {
- "type":"boolean",
- "description": "creature may receive \"week of\" events"
- },
- "abilities": {
- "description": "Creature abilities described using Bonus system",
- "type":"object",
- "additionalProperties": {
- "$ref" : "vcmi:bonus"
- }
- },
- "stackExperience": {
- "type":"array",
- "description": "Stack experience, using bonus system",
- "items":{
- "type":"object",
- "additionalProperties" : false,
- "required" : [ "bonus", "values" ],
- "description": "0",
- "properties":{
- "bonus": {"$ref" : "vcmi:bonus" },
- "values": {
- "type":"array",
- "minItems" : 10,
- "maxItems" : 10,
- "description": "Strength of the bonus",
- "anyOf" : [
- { "items": { "type" : "number" } },
- { "items": { "type" : "boolean" } }
- ]
- }
- }
- }
- },
- "graphics": {
- "type":"object",
- "additionalProperties" : false,
- "description": "Describes how this creature looks like during battles",
- "required" : [
- "animationTime", "animation", "timeBetweenFidgets"
- ],
- "properties":{
- "animationTime": {
- "type":"object",
- "additionalProperties" : false,
- "required" : [ "attack", "flight", "walk", "idle" ],
- "description": "Length of several animations",
- "properties":{
- "attack": {
- "type":"number",
- "description": "attack"
- },
- "idle": {
- "type":"number",
- "description": "idle"
- },
- "flight": {
- "type":"number",
- "description": "flight"
- },
- "walk": {
- "type":"number",
- "description": "walk"
- }
- }
- },
- "iconLarge": {
- "type":"string",
- "description": "Large icon for this creature, used for example in town screen",
- "format" : "imageFile"
- },
- "iconSmall": {
- "type":"string",
- "description": "Small icon for this creature, used for example in exchange screen",
- "format" : "imageFile"
- },
- "map": {
- "type":"string",
- "description": ".def file with animation of this creature on adventure map",
- "format" : "defFile"
- },
- "animation": {
- "type":"string",
- "description": ".def file with animation of this creature in battles",
- "format" : "defFile"
- },
- "missile": {
- "type":"object",
- "additionalProperties" : false,
- "required" : [ "projectile", "frameAngles", "offset", "attackClimaxFrame" ],
- "description": "Missile description for archers",
- "properties":{
- "projectile": {
- "type":"string",
- "description": "Path to projectile animation",
- "format" : "defFile"
- },
- "frameAngles": {
- "type":"array",
- "description": "Angles of missile images, should go from 90 to -90",
- "minItems" : 1,
- "items": {
- "minimum" : -90,
- "maximum" : 90,
- "type":"number"
- }
- },
- "offset": {
- "type":"object",
- "additionalProperties" : false,
- "required" : [ "lowerX", "lowerY", "middleX", "middleY", "upperX", "upperY" ],
- "description": "Position where projectile image appears during shooting in specific direction",
- "properties":{
- "lowerX": { "type":"number" },
- "lowerY": { "type":"number" },
- "middleX": { "type":"number" },
- "middleY": { "type":"number" },
- "upperX": { "type":"number" },
- "upperY": { "type":"number" }
- }
- },
- "attackClimaxFrame": {
- "type":"number",
- "description": "Frame from attack animation during which creature deals damage"
- }
- }
- },
- "timeBetweenFidgets": {
- "type":"number",
- "description": "How often creature will play idling animation"
- },
- "troopCountLocationOffset": {
- "type":"number",
- "description": "Position of troop count label?"
- }
- }
- },
- "sound": {
- "type":"object",
- "additionalProperties" : false,
- "description": "Various sound files associated with this creature",
- "properties":{
- "attack": { "type":"string", "format" : "soundFile" },
- "defend": { "type":"string", "format" : "soundFile" },
- "killed": { "type":"string", "format" : "soundFile" },
- "startMoving": { "type":"string", "format" : "soundFile" },
- "endMoving": { "type":"string", "format" : "soundFile" },
- "move": { "type":"string", "format" : "soundFile" },
- "shoot": { "type":"string", "format" : "soundFile" },
- "wince": { "type":"string", "format" : "soundFile" }
- }
- }
- }
- }
|