|
|
| (23 intermediate revisions by 6 users not shown) |
| Line 1: |
Line 1: |
| − | This is only a proposal and not official information by the VCMI team. See thread http://forum.vcmi.eu/viewtopic.php?t=533.
| + | {{Template:MovedToWebpage|https://vcmi.eu/modders/Entities_Format/Creature_Format/}} |
| − | | |
| − | todo:
| |
| − | * remove deprecated attributes once implemented in town config
| |
| − | * creature experience
| |
| − | * abilities exact syntax
| |
| − | | |
| − | Creature abilities use [[Bonus Format]].
| |
| − | | |
| − | Json schema (see http://json-schema.org/)
| |
| − | <pre>
| |
| − | {
| |
| − | "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" : ""
| |
| − | }
| |
| − | }
| |
| − | }
| |
| − | }
| |
| − | }
| |
| − | }
| |
| − | }
| |
| − | </pre>
| |
| − | | |
| − | long version (83 lines):
| |
| − | <pre>
| |
| − | {
| |
| − | {
| |
| − | // mandatory
| |
| − | "name" :
| |
| − | {
| |
| − | "reference" : "", // name (for configs), should be camel case version of interface name. Examples: Pikeman, RoyalGriffin
| |
| − | "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
| |
| − | }
| |
| − | </pre>
| |
| − | pikeman long (39 lines):
| |
| − | <pre>
| |
| − | {
| |
| − | "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"
| |
| − | }
| |
| − | }
| |
| − | }
| |
| − | </pre>
| |