{ "type" : "object", "additionalProperties" : false, "$schema" : "http://json-schema.org/draft-04/schema", "title" : "VCMI town building format", "description" : "Format used to define town buildings in VCMI", "definitions" : { "buildingRequirement" : { "type" : "array", "items" : [ { "description" : "First item that indicates type of following expression", "type" : "string" } ], "additionalItems" : { "description" : "Following items that contain expression elements", "$ref" : "#/definitions/buidingRequirement" } } }, "properties" : { "id" : { "type" : "number", "description" : "Numeric identifier of this building" }, "name" : { "description" : "Name of this building", "type" : "string" }, "description" : { "description" : "Full decsription of this building", "type" : "string" }, "type" : { "type" : "string", "description" : "Subtype for some special buildings" }, "mode" : { "type" : "string", "enum" : [ "normal", "auto", "special", "grail" ], "description" : "Mode in which this building will be built" }, "height" : { "type" : "string", "enum" : [ "skyship", "high", "average", "low"], "description" : "Height for lookout towers and some grails" }, "requires" : { "$ref" : "#/definitions/buildingRequirement", "description" : "List of town buildings that must be built before this one" }, "upgrades" : { "description" : "If this building is upgrade, identifier of base building", "type" : "string" }, "cost" : { "type" : "object", "additionalProperties" : false, "description" : "Cost to build this building", "properties" : { "gold" : { "type" : "number"}, "wood" : { "type" : "number"}, "ore" : { "type" : "number"}, "mercury" : { "type" : "number"}, "sulfur" : { "type" : "number"}, "crystal" : { "type" : "number"}, "gems" : { "type" : "number"} } }, "produce" : { "type" : "object", "additionalProperties" : false, "description" : "Resources this building produce each day", "properties" : { "gold" : { "type" : "number"}, "wood" : { "type" : "number"}, "ore" : { "type" : "number"}, "mercury" : { "type" : "number"}, "sulfur" : { "type" : "number"}, "crystal" : { "type" : "number"}, "gems" : { "type" : "number"} } }, "overrides" : { "type" : "array", "items" : [ { "description" : "The buildings which bonuses should be overridden with bonuses of the current building", "type" : "string" } ] }, "bonuses" : { "type" : "array", "description" : "Bonuses, provided by this special building on build using bonus system", "items" : { "$ref" : "bonus.json" } }, "onVisitBonuses" : { "type" : "array", "description" : "Bonuses, provided by this special building on hero visit and applied to the visiting hero", "items" : { "$ref" : "bonus.json" } } } }