Creature Format
From VCMI Project Wiki
See thread http://forum.vcmi.eu/viewtopic.php?t=533 for discussion.
// camelCase unique creature identifier
"creatureName" :
{
// translatable names
"name" :
{
"singular" : "Creature",
"plural" : "Creatures"
},
"level" : 0,
// config name of faction. Examples: castle, rampart
"faction" : "",
// cost to recruit, zero values can be omitted.
"cost" :
{
"wood" : 0,
"mercury" : 0,
"ore" : 0,
"sulfur" : 0,
"crystal" : 0,
"gems" : 0,
"gold" : 0
},
// "value" of creature, used to determine for example army strength
"fightValue" : 0,
// "ai value" - how valuable this creature should be for AI
"aiValue" : 0,
// normal growth in town or external dwellings
"growth" : 0,
// growth bonus from horde building
// TODO: reconsider need of this field after configurable buildings support
"hordeGrowth" : 0,
// Creature stats in battle
"attack" : 0,
"defence" : 0,
"hitPoints" : 0,
"shots" : 0,
"speed" : 0,
"damage" :
{
"min" : 0,
"max" : 0
},
// spellpoints this creature has, how many times creature may cast its spells
"spellPoints" : 0,
// initial size of creature army on adventure map
"advMapAmount" :
{
"min" : 0,
"max" : 0
},
// Creature to which this creature can be upgraded
// Note that only one upgrade can be available from UI
"upgrades" :
[
"anotherCreature"
],
// Creature is 2-tiles in size on the battlefield
"doubleWide" : false,
// All creature abilities, using bonus format
"abilities" :
[
Bonus Format
],
"graphics" :
{
// name of file with creature battle animation
"animation" : ""
// animation parameters
// TODO: explain meaning and use them by engine
"timeBetweenFidgets" : 1.00,
"troopCountLocationOffset" : 0,
"attackClimaxFrame" : 0,
"animationTime" :
{
"walk" : 1.00,
"attack" : 1.00,
"flight" : 1.00
},
"missile" :
{
// name of file for missile
"animation" : "",
// missile should spin, e.g. for throwing axes
"spinning" : false,
"offset" :
{
"upperX" : 0,
"upperY" : 0,
"middleX" : 0,
"middleY" : 0,
"lowerX" : 0,
"lowerY" : 0
},
"frameAngles" : []
}
},
// names of sound files
"sound" :
{
"attack": "",
"defend": "",
"killed": "",
"move": "",
"shoot" : "",
"wince": "",
"moveStart" : "",
"moveEnd" : ""
}
}