Creature Format
From VCMI Project Wiki
This is only a proposal and not official information by the VCMI team. See thread http://forum.vcmi.eu/viewtopic.php?t=533.
todo:
- remove deprecated attributes once implemented in town config
- better name for amm, something more self-documenting
- decide on long vs short format
- exact syntax for abilities (longer term?)
- creature experience
long version (83 lines):
{ "" : // name (for configs), should be camel case version of interface name. Examples: Pikeman, RoyalGriffin { // mandatory "names" : ["", ""], // interface names: singular, plural "level" : 0, "faction" : "", // config name of faction. Examples: Castle, Rampart "cost" : 0, // gold. If other, use optional longer syntax "fightValue" : 0, "aiValue" : 0, "growth" : 0, "hitPoints" : 0, "speed" : 0, "attack" : 0, "defence" : 0, "damage" : [0, 0], // damage min, max. If same use single integer "amm" : [0, 0], // adventure map amount. If same use single integer "graphics" : { "animation" : "" // name of def file }, // optional "upgrades" : "", // config name of creature that this creature can be upgraded to "cost" : { "Wood" : 0, "Mercury" : 0, "Ore" : 0, "Sulfur" : 0, "Crystal" : 0, "Gems" : 0, "Gold" : 0 }, "doubleWide" : false, // if creature needs two hexes "shots" : 0, "spellPoints" : 0, "abilities" : { }, "graphics" : { "timeBetweenFidgets" : 1.00, "troopCountLocationOffset" : 0, "attackClimaxFrame" : 0, "animationTime" : { "walk" : 1.00, "attack" : 1.00, "flight" : 1.00 }, "backgrounds" : { "120" : "", // if empty, uses faction background "130" : "" // if empty, uses faction background }, "missile" : { "animation" : "", // name of def file for missile "spin" : false, "offset" : { "upperX" : 0, "upperY" : 0, "middleX" : 0, "middleY" : 0, "lowerX" : 0, "lowerY" : 0 }, "missileFrameAngles" : [] } }, "sounds" : // names of sound files { "attack": "", "defend": "", "killed": "", "move": "", "shoot" : "", "wince": "", "ext1" : "", "ext2" : "", "moveStart" : "", "moveEnd" : "" }, // deprecated, move to town config "hordeGrowth" : 0, // growth bonus from horde building "turretShooter" : false // if used in turret }, // more creatures }
pikeman long (39 lines):
{ "Pikeman" : { "names" : ["Pikeman", "Pikemen"], "level" : 1, "faction" : "Castle", "upgrades" : "Halberdier", "cost" : 60, "fightValue" : 100, "aiValue" : 80, "growth" : 14, "hitPoints" : 10, "speed" : 4, "attack" : 4, "defence" : 5, "damage" : [1, 3], "amm" : [20, 50], "abilities" : { "CHARGE_IMMUNITY" : {} }, "graphics" : { "animation" : "CPKMAN.DEF", "animationTime" : { "walk" : 1.15 } }, "sound" : { "attack": "PIKEATTK.wav", "defend": "PIKEDFND.wav", "killed": "PIKEKILL.wav", "move": "PIKEMOVE.wav", "wince": "PIKEWNCE.wav" } } }
short version (65 lines):
{ "" : { // mandatory "names" : ["", ""], "level" : 0, "faction" : "", "cost" : 0, "fightValue" : 0, "aiValue" : 0, "growth" : 0, "hitPoints" : 0, "speed" : 0, "attack" : 0, "defence" : 0, "damage" : [0, 0], "amm" : [0, 0], "animation" : "", // optional "upgrades" : "", "cost" : { "Wood" : 0, "Mercury" : 0, "Ore" : 0, "Sulfur" : 0, "Crystal" : 0, "Gems" : 0, "Gold" : 0 }, "doubleWide" : false, "shots" : 0, "spellPoints" : 0, "abilities" : { }, "timeBetweenFidgets" : 1.00, "troopCountLocationOffset" : 0, "attackClimaxFrame" : 0, "animationTimeWalk" : 1.00, "animationTimeAttack" : 1.00, "animationTimeFlight" : 1.00, "background120" : "", "background130" : "", "missileAnimation" : "", "missileSpin" : false, "missileOffsetUpperX" : 0, "missileOffsetUpperY" : 0, "missileOffsetMiddleX" : 0, "missileOffsetMiddleY" : 0, "missileOffsetLowerX" : 0, "missileOffsetLowerY" : 0, "missileFrameAngles" : [], "soundAttack": "", "soundDefend": "", "soundKilled": "", "soundMove": "", "soundShoot" : "", "soundWince": "", "soundExt1" : "", "soundExt2" : "", "soundMoveStart" : "", "soundMoveEnd" : "", // deprecated "hordeGrowth" : 0, "turretShooter" : false } }
pikeman short (30 lines):
{ "Pikeman" : { "names" : ["Pikeman", "Pikemen"], "level" : 1, "faction" : "Castle", "upgrades" : "Halberdier", "cost" : 60, "fightValue" : 100, "aiValue" : 80, "growth" : 14, "hitPoints" : 10, "speed" : 4, "attack" : 4, "defence" : 5, "damage" : [1, 3], "amm" : [20, 50], "abilities" : { "CHARGE_IMMUNITY" : {} }, "animation" : "CPKMAN.DEF", "animationTimeWalk" : 1.15, "soundAttack": "PIKEATTK.wav", "soundDefend": "PIKEDFND.wav", "soundKilled": "PIKEKILL.wav", "soundMove": "PIKEMOVE.wav", "soundWince": "PIKEWNCE.wav" } }