|
|
(4 intermediate revisions by 3 users not shown) |
Line 1: |
Line 1: |
− | Schema in git: [https://github.com/vcmi/vcmi/blob/develop/config/schemas/creature.json config/schemas/creature.json]
| + | {{Template:MovedToWebpage|https://vcmi.eu/modders/Entities_Format/Creature_Format/}} |
− | ==Required data==
| |
− | In order to make functional creature you also need:
| |
− | ===Animation===
| |
− | * Battle animation (1 def file)
| |
− | * Set of rendered projectiles (1 def files, shooters only)
| |
− | * Adventure map animation (1 def file)
| |
− | ===Images===
| |
− | * Small portrait for hero exchange window (1 image)
| |
− | * Large portrait for hero window (1 image)
| |
− | ===Sounds===
| |
− | * Set of sounds (up to 8 sounds)
| |
− | ==Format==
| |
− | <syntaxhighlight lang="javascript">
| |
− | // camelCase unique creature identifier
| |
− | "creatureName" :
| |
− | {
| |
− | // translatable names
| |
− | "name" :
| |
− | {
| |
− | "singular" : "Creature",
| |
− | "plural" : "Creatures"
| |
− | },
| |
− | "level" : 0,
| |
− | | |
− | // if set to true creature will not appear in-game randomly (e.g. as neutral creature)
| |
− | "special" : true,
| |
− |
| |
− | // 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" :
| |
− | [
| |
− | "someName1" : Bonus Format,
| |
− | "someName2" : Bonus Format
| |
− | ],
| |
− | | |
− | "hasDoubleWeek": true,
| |
− |
| |
− | "graphics" :
| |
− | {
| |
− | // name of file with creature battle animation
| |
− | "animation" : "",
| |
− | // adventure map animation def
| |
− | "map" : "",
| |
− | // path to small icon for tooltips & hero exchange window
| |
− | "iconSmall" : "",
| |
− | // path to large icon, used on town screen and in hero screen
| |
− | "iconLarge" : "",
| |
− |
| |
− | // animation parameters
| |
− | | |
− | // how often creature should play idle animation
| |
− | "timeBetweenFidgets" : 1.00,
| |
− | // unused H3 property
| |
− | "troopCountLocationOffset" : 0,
| |
− | "animationTime" :
| |
− | {
| |
− | // movement animation time.
| |
− | "walk" : 1.00,
| |
− | | |
− | // idle animation time. For H3 creatures this value is always 10
| |
− | "idle" : 10.00,
| |
− | | |
− | // ranged attack animation time. Applicable to shooting and casting animation
| |
− | // NOTE: does NOT affects melee attacks
| |
− | // This is H3 behaviour, for proper synchronization of attack/defense animations
| |
− | "attack" : 1.00,
| |
− | | |
− | // How far flying creature should move during one "round" of movement animation
| |
− | // This is multiplier to base value (200 pixels)
| |
− | "flight" : 1.00
| |
− | },
| |
− | "missile" :
| |
− | {
| |
− | // name of file for missile
| |
− | "animation" : "",
| |
− | // Frame at which shooter shoots his projectile (e.g. releases arrow)
| |
− | "attackClimaxFrame" : 0,
| |
− | | |
− | // offsets between position of shooter and position where projectile should appear
| |
− | "offset" :
| |
− | {
| |
− | "upperX" : 0,
| |
− | "upperY" : 0,
| |
− | "middleX" : 0,
| |
− | "middleY" : 0,
| |
− | "lowerX" : 0,
| |
− | "lowerY" : 0
| |
− | },
| |
− | // angles from which frames in .def file were rendered, -90...90 range
| |
− | // Example below will work for file that contains following frames:
| |
− | // 1) facing top, 2) facing top-right, 3)facing right,
| |
− | // 4) facing bottom-right 5) facing bottom.
| |
− | "frameAngles" : [ -90, -45, 0, 45, 90]
| |
− | }
| |
− | },
| |
− | | |
− | // names of sound files
| |
− | "sound" :
| |
− | {
| |
− | // Creature attack enemy in melee (counter-)attack
| |
− | "attack": "",
| |
− | // Creature in "defend mode" is attacked
| |
− | "defend": "",
| |
− | // Creature killed
| |
− | "killed": "",
| |
− | // Plays in loop during creature movement
| |
− | "move": "",
| |
− | // Shooters only, creature shoots
| |
− | "shoot" : "",
| |
− | // Creature not in "defend mode" is under attack
| |
− | "wince": "",
| |
− |
| |
− | // Creature start/end movement or teleports
| |
− | "startMoving" : "",
| |
− | "endMoving" : ""
| |
− | }
| |
− | }
| |
− | </syntaxhighlight>
| |
− | | |
− | {{Modding}}
| |