|
|
(19 intermediate revisions by 4 users not shown) |
Line 1: |
Line 1: |
− | See thread http://forum.vcmi.eu/viewtopic.php?t=533 for discussion.
| + | {{Template:MovedToWebpage|https://vcmi.eu/modders/Entities_Format/Creature_Format/}} |
− | | |
− | todo:
| |
− | * remove deprecated attributes once implemented in town config
| |
− | | |
− | Creature abilities use [[Bonus Format]].
| |
− | | |
− | Json schema (see http://json-schema.org/)
| |
− | <syntaxhighlight lang="javascript">
| |
− | {
| |
− | "type" : "object",
| |
− | "additionalProperties" :
| |
− | {
| |
− | "type" : "object",
| |
− | "additionalProperties" : false,
| |
− | "properties" :
| |
− | {
| |
− | "name" :
| |
− | {
| |
− | "type" : "object",
| |
− | "additionalProperties" : false,
| |
− | "properties" :
| |
− | {
| |
− | "singular" :
| |
− | {
| |
− | "type" : "string"
| |
− | },
| |
− | "plural" :
| |
− | {
| |
− | "type" : "string"
| |
− | }
| |
− | }
| |
− | },
| |
− | "level" :
| |
− | {
| |
− | "type" : "integer"
| |
− | },
| |
− | "faction" :
| |
− | {
| |
− | "type" : "string"
| |
− | },
| |
− | "cost" :
| |
− | {
| |
− | "type" : "object",
| |
− | "additionalProperties" :
| |
− | {
| |
− | "type" : "integer",
| |
− | "minimum" : 0
| |
− | }
| |
− | },
| |
− | "fightValue" :
| |
− | {
| |
− | "type" : "integer",
| |
− | "minimum" : 0
| |
− | },
| |
− | "aiValue" :
| |
− | {
| |
− | "type" : "integer",
| |
− | "minimum" : 0
| |
− | },
| |
− | "growth" :
| |
− | {
| |
− | "type" : "integer",
| |
− | "minimum" : 1
| |
− | },
| |
− | "hitPoints" :
| |
− | {
| |
− | "type" : "integer",
| |
− | "minimum" : 1
| |
− | },
| |
− | "speed" :
| |
− | {
| |
− | "type" : "integer",
| |
− | "minimum" : 0
| |
− | },
| |
− | "attack" :
| |
− | {
| |
− | "type" : "integer",
| |
− | "minimum" : 0
| |
− | },
| |
− | "defence" :
| |
− | {
| |
− | "type" : "integer",
| |
− | "minimum" : 0
| |
− | },
| |
− | "shots" :
| |
− | {
| |
− | "type" : "integer",
| |
− | "minimum" : 0,
| |
− | "default" : 0
| |
− | },
| |
− | "spellPoints" :
| |
− | {
| |
− | "type" : "integer",
| |
− | "minimum" : 0,
| |
− | "default" : 0
| |
− | },
| |
− | "doubleWide" :
| |
− | {
| |
− | "type" : "boolean",
| |
− | "default" : false
| |
− | },
| |
− | "damage" :
| |
− | {
| |
− | "type" : "object",
| |
− | "additionalProperties" : false,
| |
− | "properties" :
| |
− | {
| |
− | "min" :
| |
− | {
| |
− | "type" : "integer",
| |
− | "minimum" : 0
| |
− | },
| |
− | "max" :
| |
− | {
| |
− | "type" : "integer",
| |
− | "minimum" : 0
| |
− | }
| |
− | }
| |
− | },
| |
− | "advMapAmount" :
| |
− | {
| |
− | "type" : "object",
| |
− | "additionalProperties" : false,
| |
− | "properties" :
| |
− | {
| |
− | "min" :
| |
− | {
| |
− | "type" : "integer",
| |
− | "minimum" : 0
| |
− | },
| |
− | "max" :
| |
− | {
| |
− | "type" : "integer",
| |
− | "minimum" : 0
| |
− | }
| |
− | }
| |
− | },
| |
− | "upgrades" :
| |
− | {
| |
− | "type" : "object",
| |
− | "additionalProperties" :
| |
− | {
| |
− | "type" : "boolean"
| |
− | }
| |
− | },
| |
− | "graphics" :
| |
− | {
| |
− | "type" : "object",
| |
− | "additionalProperties" : false,
| |
− | "properties" :
| |
− | {
| |
− | "animation" :
| |
− | {
| |
− | "type" : "string"
| |
− | },
| |
− | "timeBetweenFidgets" :
| |
− | {
| |
− | "type" : "number",
| |
− | "default" : 1.0
| |
− | },
| |
− | "troopCountLocationOffset" :
| |
− | {
| |
− | "type" : "integer",
| |
− | "default" : 0
| |
− | },
| |
− | "animationTime" :
| |
− | {
| |
− | "type" : "object",
| |
− | "additionalProperties" : false,
| |
− | "properties" :
| |
− | {
| |
− | "walk" :
| |
− | {
| |
− | "type" : "number",
| |
− | "default" : 1.0
| |
− | },
| |
− | "attack" :
| |
− | {
| |
− | "type" : "number",
| |
− | "default" : 1.0
| |
− | },
| |
− | "flight" :
| |
− | {
| |
− | "type" : "number",
| |
− | "default" : 1.0
| |
− | }
| |
− | }
| |
− | },
| |
− | "background" :
| |
− | {
| |
− | "type" : "object",
| |
− | "additionalProperties" : false,
| |
− | "properties" :
| |
− | {
| |
− | "120" :
| |
− | {
| |
− | "type" : "string",
| |
− | "default" : ""
| |
− | },
| |
− | "130" :
| |
− | {
| |
− | "type" : "string",
| |
− | "default" : ""
| |
− | }
| |
− | }
| |
− | },
| |
− | "missile" :
| |
− | {
| |
− | "type" : "object",
| |
− | "additionalProperties" : false,
| |
− | "properties" :
| |
− | {
| |
− | "animation" :
| |
− | {
| |
− | "type" : "string",
| |
− | "default" : ""
| |
− | },
| |
− | "spinning" :
| |
− | {
| |
− | "type" : "boolean",
| |
− | "default" : false
| |
− | },
| |
− | "offset" :
| |
− | {
| |
− | "type" : "object",
| |
− | "additionalProperties" : false,
| |
− | "properties" :
| |
− | {
| |
− | "upperX" :
| |
− | {
| |
− | "type" : "integer",
| |
− | "default" : 0
| |
− | },
| |
− | "upperY" :
| |
− | {
| |
− | "type" : "integer",
| |
− | "default" : 0
| |
− | },
| |
− | "middleX" :
| |
− | {
| |
− | "type" : "integer",
| |
− | "default" : 0
| |
− | },
| |
− | "middleY" :
| |
− | {
| |
− | "type" : "integer",
| |
− | "default" : 0
| |
− | },
| |
− | "lowerX" :
| |
− | {
| |
− | "type" : "integer",
| |
− | "default" : 0
| |
− | },
| |
− | "lowerY" :
| |
− | {
| |
− | "type" : "integer",
| |
− | "default" : 0
| |
− | }
| |
− | }
| |
− | },
| |
− | "frameAngles" :
| |
− | {
| |
− | "type" : "array",
| |
− | "additionalItems" : false,
| |
− | "items" :
| |
− | {
| |
− | "type" : "number"
| |
− | }
| |
− | }
| |
− | }
| |
− | }
| |
− | }
| |
− | },
| |
− | "sound" :
| |
− | {
| |
− | "type" : "object",
| |
− | "additionalProperties" : false,
| |
− | "properties" :
| |
− | {
| |
− | "attack" :
| |
− | {
| |
− | "type" : "string",
| |
− | "default" : ""
| |
− | },
| |
− | "defend" :
| |
− | {
| |
− | "type" : "string",
| |
− | "default" : ""
| |
− | },
| |
− | "killed" :
| |
− | {
| |
− | "type" : "string",
| |
− | "default" : ""
| |
− | },
| |
− | "move" :
| |
− | {
| |
− | "type" : "string",
| |
− | "default" : ""
| |
− | },
| |
− | "moveStart" :
| |
− | {
| |
− | "type" : "string",
| |
− | "default" : ""
| |
− | },
| |
− | "moveEnd" :
| |
− | {
| |
− | "type" : "string",
| |
− | "default" : ""
| |
− | },
| |
− | "shoot" :
| |
− | {
| |
− | "type" : "string",
| |
− | "default" : ""
| |
− | },
| |
− | "wince" :
| |
− | {
| |
− | "type" : "string",
| |
− | "default" : ""
| |
− | }
| |
− | }
| |
− | },
| |
− | "abilities" :
| |
− | {
| |
− | "type" : ["object", "null"],
| |
− | "additionalProperties" :
| |
− | {
| |
− | "type" : "object",
| |
− | "additionalProperties" : false,
| |
− | "properties" :
| |
− | {
| |
− | "type" :
| |
− | {
| |
− | "type" : "string"
| |
− | },
| |
− | "subtype" :
| |
− | {
| |
− | "type" : "integer"
| |
− | },
| |
− | "value" :
| |
− | {
| |
− | "type" : "integer"
| |
− | },
| |
− | "valueType" :
| |
− | {
| |
− | "type" : "string"
| |
− | },
| |
− | "addInfo" :
| |
− | {
| |
− | "type" : "integer"
| |
− | },
| |
− | "effectRange" :
| |
− | {
| |
− | "type" : "integer"
| |
− | },
| |
− | "description" :
| |
− | {
| |
− | "type" : "string",
| |
− | "default" : ""
| |
− | }
| |
− | }
| |
− | }
| |
− | }
| |
− | }
| |
− | }
| |
− | }
| |
− | </syntaxhighlight>
| |
− | | |
− | long version (83 lines):
| |
− | <syntaxhighlight lang="javascript">
| |
− | {
| |
− | "creatureName" : // should be camel case version of interface name. Examples: Pikeman, RoyalGriffin. Do not change after its released
| |
− | {
| |
− | // mandatory
| |
− | "name" :
| |
− | {
| |
− | "singular" : "",
| |
− | "plural" : ""
| |
− | },
| |
− | "level" : 0,
| |
− | "faction" : "", // config name of faction. Examples: Castle, Rampart
| |
− | "cost" : // cost, zero values can be omitted. Keys are the ids of the resources
| |
− | {
| |
− | "Wood" : 0,
| |
− | "Mercury" : 0,
| |
− | "Ore" : 0,
| |
− | "Sulfur" : 0,
| |
− | "Crystal" : 0,
| |
− | "Gems" : 0,
| |
− | "Gold" : 0
| |
− | },
| |
− | "fightValue" : 0,
| |
− | "aiValue" : 0,
| |
− | "growth" : 0,
| |
− | "hitPoints" : 0,
| |
− | "speed" : 0,
| |
− | "attack" : 0,
| |
− | "defence" : 0,
| |
− | "damage" :
| |
− | {
| |
− | "min" : 0,
| |
− | "max" : 0
| |
− | },
| |
− | "advMapAmount" :
| |
− | {
| |
− | "min" : 0,
| |
− | "max" : 0
| |
− | },
| |
− | "graphics" :
| |
− | {
| |
− | "animation" : "" // name of def file
| |
− | },
| |
− | | |
− | // optional
| |
− | "upgrades" : [], // keys are names of creatures that this can be upgraded to
| |
− | "doubleWide" : false,
| |
− | "shots" : 0,
| |
− | "spellPoints" : 0,
| |
− | "abilities" :
| |
− | {
| |
− | },
| |
− | "graphics" :
| |
− | {
| |
− | "timeBetweenFidgets" : 1.00,
| |
− | "troopCountLocationOffset" : 0,
| |
− | "attackClimaxFrame" : 0,
| |
− | "animationTime" :
| |
− | {
| |
− | "walk" : 1.00,
| |
− | "attack" : 1.00,
| |
− | "flight" : 1.00
| |
− | },
| |
− | "background" :
| |
− | {
| |
− | "120" : "", // if empty, uses faction background
| |
− | "130" : "" // if empty, uses faction background
| |
− | },
| |
− | "missile" :
| |
− | {
| |
− | "animation" : "", // name of def file for missile
| |
− | "spinning" : false,
| |
− | "offset" :
| |
− | {
| |
− | "upperX" : 0,
| |
− | "upperY" : 0,
| |
− | "middleX" : 0,
| |
− | "middleY" : 0,
| |
− | "lowerX" : 0,
| |
− | "lowerY" : 0
| |
− | },
| |
− | "frameAngles" : []
| |
− | }
| |
− | },
| |
− | "sound" : // names of sound files
| |
− | {
| |
− | "attack": "",
| |
− | "defend": "",
| |
− | "killed": "",
| |
− | "move": "",
| |
− | "shoot" : "",
| |
− | "wince": "",
| |
− | "moveStart" : "",
| |
− | "moveEnd" : ""
| |
− | },
| |
− | | |
− | // deprecated, move to town config
| |
− | "hordeGrowth" : 0, // growth bonus from horde building
| |
− | "turretShooter" : false // if used in turret
| |
− | },
| |
− | // more creatures
| |
− | }
| |
− | </syntaxhighlight>
| |
− | pikeman long (39 lines):
| |
− | <syntaxhighlight lang="javascript">
| |
− | {
| |
− | "Pikeman" :
| |
− | {
| |
− | "name" :
| |
− | {
| |
− | "singular" : "Pikeman",
| |
− | "plural" : "Pikemen"
| |
− | },
| |
− | "level" : 1,
| |
− | "faction" : "Castle",
| |
− | "upgrades" :
| |
− | {
| |
− | "Halberdier" : true
| |
− | },
| |
− | "cost" :
| |
− | {
| |
− | "Gold" : 60
| |
− | },
| |
− | "fightValue" : 100,
| |
− | "aiValue" : 80,
| |
− | "growth" : 14,
| |
− | "hitPoints" : 10,
| |
− | "speed" : 4,
| |
− | "attack" : 4,
| |
− | "defence" : 5,
| |
− | "damage" :
| |
− | {
| |
− | "min" : 1,
| |
− | "max" : 3
| |
− | },
| |
− | "advMapAmount" :
| |
− | {
| |
− | "min" : 20,
| |
− | "max" : 50
| |
− | },
| |
− | "abilities" : // this is subject to change
| |
− | {
| |
− | "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"
| |
− | }
| |
− | }
| |
− | }
| |
− | </syntaxhighlight>
| |