Difference between revisions of "Town Format"
From VCMI Project Wiki
(→Faction node (root entry for town configuration)) |
|||
Line 3: | Line 3: | ||
== Faction node (root entry for town configuration) == | == Faction node (root entry for town configuration) == | ||
<syntaxhighlight lang="javascript"> | <syntaxhighlight lang="javascript"> | ||
+ | // Unique faction identifier. Should be unique. | ||
+ | "myTown" : | ||
{ | { | ||
− | "town" : { ... }, // | + | // Main part of town description, see below |
− | "nativeTerrain" : "", | + | // Optional but it should be present for playable faction |
− | + | "town" : { ... }, | |
− | " | + | |
+ | // Native terrain for this town. See config/terrains.json for identifiers | ||
+ | "nativeTerrain" : "grass", | ||
+ | |||
+ | // Localizable town name, e.g. "Rampart" | ||
+ | "name" : "", | ||
+ | |||
+ | // Faction alignment. Can be good, neutral (default) or evil. | ||
+ | "alignment" : "", | ||
+ | |||
+ | // Backgrounds for creature screen, two versions: 120px-height and 130-px height | ||
"creatureBackground" | "creatureBackground" | ||
{ | { | ||
+ | // Paths to background images | ||
"120px" : "", | "120px" : "", | ||
"130px" : "" | "130px" : "" | ||
} | } | ||
+ | |||
+ | // Town puzzle map | ||
"puzzleMap" : | "puzzleMap" : | ||
{ | { | ||
− | + | // Prefix for image names, e.g. "PUZCAS" for name "PUZCAS12.png" | |
+ | "prefix" : "", | ||
+ | // List of map pieces. First image will have name <prefix>00, second - <prefix>01 and so on | ||
"pieces" : | "pieces" : | ||
[ | [ | ||
{ | { | ||
+ | // Position of image on screen | ||
"x" : 0 | "x" : 0 | ||
"y" : 0 | "y" : 0 | ||
− | + | ||
− | } | + | //indicates order in which this image will be opened |
+ | "index" : 0 | ||
+ | }, | ||
... | ... | ||
] | ] |
Revision as of 20:13, 14 December 2012
Current version of town description format.
Contents
Current config structure
Faction node (root entry for town configuration)
// Unique faction identifier. Should be unique.
"myTown" :
{
// Main part of town description, see below
// Optional but it should be present for playable faction
"town" : { ... },
// Native terrain for this town. See config/terrains.json for identifiers
"nativeTerrain" : "grass",
// Localizable town name, e.g. "Rampart"
"name" : "",
// Faction alignment. Can be good, neutral (default) or evil.
"alignment" : "",
// Backgrounds for creature screen, two versions: 120px-height and 130-px height
"creatureBackground"
{
// Paths to background images
"120px" : "",
"130px" : ""
}
// Town puzzle map
"puzzleMap" :
{
// Prefix for image names, e.g. "PUZCAS" for name "PUZCAS12.png"
"prefix" : "",
// List of map pieces. First image will have name <prefix>00, second - <prefix>01 and so on
"pieces" :
[
{
// Position of image on screen
"x" : 0
"y" : 0
//indicates order in which this image will be opened
"index" : 0
},
...
]
]
}
Town node
{
"adventureMap" : // adventure map object animations
{
"village": "",
"castle" : "", // town with fortifications
"capitol": "" // town with both fort and capitol
},
"icons" : //icons, small and big. Built versions indicate constructed during this turn building.
{
"small" : "",
"smallBuilt" : "",
"big" : "",
"bigBuilt" : ""
},
"musicTheme" : "",
"structures" : // Structures. Represents visible graphical objects on town screen.
[
{ ... },
...
{ ... }
],
"names" : [ "", ""], // list of names for towns on adventure map
"townBackground": "", // background scenery
"guildWindow": "", // mage guild window
"buildingsIcons": "HALLCSTL.DEF", // Not sure what to do with this
"hallBackground": "", // Background image for town hall window
"hallSlots": // list of buildings available in each slot of town hall window
[
[ [ 10, 11, 12, 13 ], [ 7, 8, 9 ], [ 5, 22 ], [ 16 ] ],
[ [ 14, 15 ], [ 0, 1, 2, 3 ], [ 6, 17 ] ],
[ [ 21 ], [ 18, 19 ] ],
[ [ 30, 37 ], [ 31, 38 ], [ 32, 39 ], [ 33, 40 ] ],
[ [ 34, 41 ], [ 35, 42 ], [ 36, 43 ] ]
],
"creatures" : [ [0, 1], [2, 3] ], // List of creatures available on each tier
"buildings" : // Buildings, objects in town that affect available options
[
{ ... },
...
{ ... }
],
"siege" : { ... },
// Entries that should be replaced with autodetection
"horde" : [ 2, -1 ], // Which tiers in this town have creature hordes
"primaryResource" : 127, // Resource produced by resource silo, 127 = wood + ore
"mageGuild" : 4, // maximum level of mages guild
"warMachine" : 4 // war machine produced in town
}
Siege node
{
"shooter" : "" // shooter creature name
"shooterHeight" : 0, //crop height of the shooters
"towers":
{
"top" :
{
"tower" : { "x": 0, "y": 0},
"battlement" : { "x": 0, "y": 0},
"creature" : { "x": 0, "y": 0},
},
"keep" : { ... },
"bottom" : { ... }
},
"gate" :
{
"gate" : { "x": 0, "y": 0},
"arch" : { "x": 0, "y": 0}
},
"walls" : // destructible walls
{
"upper" : { "x": 0, "y": 0},
"upperMid" : { "x": 0, "y": 0},
"bottomMid" : { "x": 0, "y": 0},
"bottom" : { "x": 0, "y": 0}
},
"moat" : { "x": 0, "y": 0},
"static" : //static non-destructible walls
{
"bottom" : { "x": 0, "y": 0}, // sections between
"top" : { "x": 0, "y": 0}, // destructible walls
"background" : { "x": 0, "y": 0} //topmost wall behind hero
}
}
Building node
{
"id" : 0,
"name" : "",
"description" : "",
"upgrades" : 0, // optional, which building can be upgraded by this one
"requires" : [], // building requirements
"cost" : { ... },
//determine how this building can be built. Possible values are:
// normal - default value. Fulfill requirements, use resources, spend one day
// auto - building appears when all requirements are built
// special - building can not be built manually
// grail - building reqires grail to be built
"mode" : "auto"
}
Structure node
{
"base" : 0, // building this structure is based on. If null - structure will be present always.
"animation" : "", // def file with animation
"x" : 0,
"y" : 0,
"z" : 0, // used for blit order. Higher value places structure close to screen
"border" : "", // selection highlight
"area" : "" // used to detect building selection
}