|
|
(15 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/}} |
− | <!--
| |
− | | |
− | Made schema hidden. Useful but only for developers. Should be implemented and moved to config file
| |
− | Ivan
| |
− | | |
− | 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>
| |
− | | |
− | -->
| |
− | <syntaxhighlight lang="javascript">
| |
− | // 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" : ""
| |
− | }
| |
− | }
| |
− | </syntaxhighlight>
| |
− | | |
− | {{Modding}}
| |