mirror of
https://github.com/vcmi/vcmi.git
synced 2025-11-06 09:09:40 +02:00
Schemas rearranged
Artifact Schema rearranged Battlefield schema rearanged Bonus schema rearranged Faction Schema rearanged Hero Schema rearranged HeroClass schema rearranged MapHeader schema updated, something fishy in events Mod schema updated. Settings not complete Object schema rearranged Object schema rearranged object type schema rearranged obstacles schema rearranged Rivers schema updated roads schema updated script schema updated skill schema updated spell schema updated template schema update terrain schemas updated town buildings schema update town siege schema updated town structure schema updated
This commit is contained in:
@@ -31,7 +31,7 @@
|
||||
"$schema": "http://json-schema.org/draft-04/schema",
|
||||
"title" : "VCMI faction format",
|
||||
"description": "Json format for defining new faction (aka towns) in VCMI",
|
||||
"required" : [ "name", "alignment", "creatureBackground", "nativeTerrain" ],
|
||||
"required" : [ "name", "alignment", "nativeTerrain", "creatureBackground" ],
|
||||
"dependencies" : {
|
||||
"town" : [ "puzzleMap" ]
|
||||
},
|
||||
@@ -42,15 +42,19 @@
|
||||
"type" : "string",
|
||||
"description" : "Translatable name of town"
|
||||
},
|
||||
"index" : {
|
||||
"type" : "number",
|
||||
"description" : "Private field to break things, do not use."
|
||||
},
|
||||
"alignment": {
|
||||
"type":"string",
|
||||
"enum" : [ "good", "neutral", "evil" ],
|
||||
"description": "Town alignment, good, neutral or evil"
|
||||
},
|
||||
"nativeTerrain": {
|
||||
"type":"string",
|
||||
"description": "Native terrain for creatures. Creatures fighting on native terrain receive several bonuses"
|
||||
},
|
||||
"preferUndergroundPlacement": {
|
||||
"type":"boolean",
|
||||
"description": "Random map generator places player/cpu-owned towns underground if true is specified and on the ground otherwise. Parameter is unused for maps without underground. False by default."
|
||||
},
|
||||
"creatureBackground": {
|
||||
"type":"object",
|
||||
"additionalProperties" : false,
|
||||
@@ -69,13 +73,163 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"nativeTerrain": {
|
||||
"type":"string",
|
||||
"description": "Native terrain for creatures. Creatures fighting on native terrain receive several bonuses"
|
||||
},
|
||||
"preferUndergroundPlacement": {
|
||||
"type":"boolean",
|
||||
"description": "Random map generator places player/cpu-owned towns underground if true is specified and on the ground otherwise. Parameter is unused for maps without underground. False by default."
|
||||
"town": {
|
||||
"type":"object",
|
||||
"additionalProperties" : false,
|
||||
"required" : [
|
||||
"mapObject", "buildingsIcons", "buildings", "creatures", "guildWindow", "names",
|
||||
"hallBackground", "hallSlots", "horde", "mageGuild", "moatAbility", "defaultTavern", "tavernVideo", "guildBackground", "musicTheme", "siege", "structures", "townBackground", "warMachine"
|
||||
],
|
||||
"description": "town",
|
||||
"properties":{
|
||||
"creatures": {
|
||||
"type":"array",
|
||||
"minItems" : 7,
|
||||
"maxItems" : 7,
|
||||
"description" : "List of creatures available for recruitment on each level",
|
||||
"items": {
|
||||
"type":"array",
|
||||
"items" : { "type" : "string" }
|
||||
}
|
||||
},
|
||||
"hallSlots": {
|
||||
"type":"array",
|
||||
"description": "Description of town hall",
|
||||
"minItems" : 5,
|
||||
"maxItems" : 5,
|
||||
"items": {
|
||||
"type":"array",
|
||||
"minItems" : 1,
|
||||
"maxItems" : 4,
|
||||
"items" : {
|
||||
"type" : "array",
|
||||
"description" : "List of buildings available in one slot",
|
||||
"items" : { "type" : "string" }
|
||||
}
|
||||
}
|
||||
},
|
||||
"buildings": {
|
||||
"type" : "object",
|
||||
"additionalProperties" : {
|
||||
"$ref" : "townBuilding.json"
|
||||
}
|
||||
},
|
||||
"mageGuild": {
|
||||
"type":"number",
|
||||
"description": "Maximal level of mage guild"
|
||||
},
|
||||
"primaryResource": {
|
||||
"type":"string",
|
||||
"description": "Primary resource for this town. Produced by Silo and offered as starting bonus"
|
||||
},
|
||||
"warMachine": {
|
||||
"type":"string",
|
||||
"description": "Identifier of war machine produced by blacksmith in town"
|
||||
},
|
||||
"horde": {
|
||||
"type":"array",
|
||||
"maxItems" : 2,
|
||||
"description": "Levels of creatures that have hordes in town",
|
||||
"items": { "type":"number" }
|
||||
},
|
||||
"moatAbility": {
|
||||
"type":"string",
|
||||
"description": "Identifier of ability to use as town moat during siege"
|
||||
},
|
||||
"siege": {
|
||||
"$ref" : "townSiege.json"
|
||||
},
|
||||
"musicTheme": {
|
||||
"type":"string",
|
||||
"description": "Path to town music theme",
|
||||
"format" : "musicFile"
|
||||
},
|
||||
"tavernVideo" : {
|
||||
"type" : "string",
|
||||
"description" : "Video for tavern window",
|
||||
"format" : "videoFile"
|
||||
},
|
||||
"townBackground": {
|
||||
"type":"string",
|
||||
"description": "Background for town screen",
|
||||
"format" : "imageFile"
|
||||
},
|
||||
"guildWindow": {
|
||||
"type":"string",
|
||||
"description": "Image with small view on town from mage guild"
|
||||
},
|
||||
"guildBackground": {
|
||||
"type":"string",
|
||||
"description": "Image with background of mage guild",
|
||||
"format" : "imageFile"
|
||||
},
|
||||
"hallBackground": {
|
||||
"type":"string",
|
||||
"description": "background image for town hall",
|
||||
"format" : "imageFile"
|
||||
},
|
||||
"buildingsIcons": {
|
||||
"type" : "string",
|
||||
"description": "Path to .def file with building icons",
|
||||
"format" : "animationFile"
|
||||
},
|
||||
"mapObject" : {
|
||||
"properties" : {
|
||||
"filters" : {
|
||||
"type" : "object",
|
||||
"additionalProperties" : { "type" : "array" }
|
||||
}
|
||||
}
|
||||
},
|
||||
"structures": {
|
||||
"type" : "object",
|
||||
"additionalProperties" : {
|
||||
"$ref" : "townStructure.json"
|
||||
}
|
||||
},
|
||||
"icons": {
|
||||
"type":"object",
|
||||
"additionalProperties" : false,
|
||||
"description": "Town icons",
|
||||
"required" : [ "fort", "village" ],
|
||||
"properties":{
|
||||
"fort": {
|
||||
"$ref" : "#/definitions/townIconPair",
|
||||
"description": "Icons for town with built fort"
|
||||
},
|
||||
"village": {
|
||||
"$ref" : "#/definitions/townIconPair",
|
||||
"description": "Icons for town without fort"
|
||||
}
|
||||
}
|
||||
},
|
||||
"defaultTavern" : {
|
||||
"type" : "number",
|
||||
"description" : "Default chance for hero to appear in tavern, used only when value vas not set in tavern field",
|
||||
"minimum" : 0
|
||||
},
|
||||
"tavern" : {
|
||||
"type" : "object",
|
||||
"description" : "Hero classes available in tavern. Value indicates chance for hero of this class to appear",
|
||||
"additionalProperties" : {
|
||||
"type" : "number",
|
||||
"minimum" : 0
|
||||
}
|
||||
},
|
||||
"guildSpells" : {
|
||||
"type" : "object",
|
||||
"description" : "Spells available in mage guild. Value indicates chance for this spell to appear",
|
||||
"additionalProperties" : {
|
||||
"type" : "number"
|
||||
}
|
||||
},
|
||||
"names" : {
|
||||
"type" : "array",
|
||||
"description" : "Names for towns on adventure map",
|
||||
"minItems" : 1,
|
||||
"items" : { "type" : "string" }
|
||||
}
|
||||
}
|
||||
},
|
||||
"puzzleMap": {
|
||||
"type":"object",
|
||||
@@ -104,164 +258,9 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"town": {
|
||||
"type":"object",
|
||||
"additionalProperties" : false,
|
||||
"required" : [
|
||||
"mapObject", "buildingsIcons", "buildings", "creatures", "guildWindow", "names",
|
||||
"hallBackground", "hallSlots", "horde", "mageGuild", "moatAbility", "defaultTavern", "tavernVideo", "guildBackground", "musicTheme", "siege", "structures", "townBackground", "warMachine"
|
||||
],
|
||||
"description": "town",
|
||||
"properties":{
|
||||
"mapObject" : {
|
||||
"properties" : {
|
||||
"filters" : {
|
||||
"type" : "object",
|
||||
"additionalProperties" : { "type" : "array" }
|
||||
}
|
||||
}
|
||||
},
|
||||
"guildSpells" : {
|
||||
"type" : "object",
|
||||
"description" : "Spells available in mage guild. Value indicates chance for this spell to appear",
|
||||
"additionalProperties" : {
|
||||
"type" : "number"
|
||||
}
|
||||
},
|
||||
"defaultTavern" : {
|
||||
"type" : "number",
|
||||
"description" : "Default chance for hero to appear in tavern, used only when value vas not set in tavern field",
|
||||
"minimum" : 0
|
||||
},
|
||||
"tavern" : {
|
||||
"type" : "object",
|
||||
"description" : "Hero classes available in tavern. Value indicates chance for hero of this class to appear",
|
||||
"additionalProperties" : {
|
||||
"type" : "number",
|
||||
"minimum" : 0
|
||||
}
|
||||
},
|
||||
"tavernVideo" : {
|
||||
"type" : "string",
|
||||
"description" : "Video for tavern window",
|
||||
"format" : "videoFile"
|
||||
},
|
||||
"names" : {
|
||||
"type" : "array",
|
||||
"description" : "Names for towns on adventure map",
|
||||
"minItems" : 1,
|
||||
"items" : { "type" : "string" }
|
||||
},
|
||||
"buildingsIcons": {
|
||||
"type" : "string",
|
||||
"description": "Path to .def file with building icons",
|
||||
"format" : "animationFile"
|
||||
},
|
||||
"buildings": {
|
||||
"type" : "object",
|
||||
"additionalProperties" : {
|
||||
"$ref" : "townBuilding.json"
|
||||
}
|
||||
},
|
||||
"creatures": {
|
||||
"type":"array",
|
||||
"minItems" : 7,
|
||||
"maxItems" : 7,
|
||||
"description" : "List of creatures available for recruitment on each level",
|
||||
"items": {
|
||||
"type":"array",
|
||||
"items" : { "type" : "string" }
|
||||
}
|
||||
},
|
||||
"guildWindow": {
|
||||
"type":"string",
|
||||
"description": "Image with small view on town from mage guild"
|
||||
},
|
||||
"guildBackground": {
|
||||
"type":"string",
|
||||
"description": "Image with background of mage guild",
|
||||
"format" : "imageFile"
|
||||
},
|
||||
|
||||
"hallBackground": {
|
||||
"type":"string",
|
||||
"description": "background image for town hall",
|
||||
"format" : "imageFile"
|
||||
},
|
||||
"hallSlots": {
|
||||
"type":"array",
|
||||
"description": "Description of town hall",
|
||||
"minItems" : 5,
|
||||
"maxItems" : 5,
|
||||
"items": {
|
||||
"type":"array",
|
||||
"minItems" : 1,
|
||||
"maxItems" : 4,
|
||||
"items" : {
|
||||
"type" : "array",
|
||||
"description" : "List of buildings available in one slot",
|
||||
"items" : { "type" : "string" }
|
||||
}
|
||||
}
|
||||
},
|
||||
"horde": {
|
||||
"type":"array",
|
||||
"maxItems" : 2,
|
||||
"description": "Levels of creatures that have hordes in town",
|
||||
"items": { "type":"number" }
|
||||
},
|
||||
"icons": {
|
||||
"type":"object",
|
||||
"additionalProperties" : false,
|
||||
"description": "Town icons",
|
||||
"required" : [ "fort", "village" ],
|
||||
"properties":{
|
||||
"fort": {
|
||||
"$ref" : "#/definitions/townIconPair",
|
||||
"description": "Icons for town with built fort"
|
||||
},
|
||||
"village": {
|
||||
"$ref" : "#/definitions/townIconPair",
|
||||
"description": "Icons for town without fort"
|
||||
}
|
||||
}
|
||||
},
|
||||
"mageGuild": {
|
||||
"type":"number",
|
||||
"description": "Maximal level of mage guild"
|
||||
},
|
||||
"moatAbility": {
|
||||
"type":"string",
|
||||
"description": "Identifier of ability to use as town moat during siege"
|
||||
},
|
||||
"musicTheme": {
|
||||
"type":"string",
|
||||
"description": "Path to town music theme",
|
||||
"format" : "musicFile"
|
||||
},
|
||||
"siege": {
|
||||
"$ref" : "townSiege.json"
|
||||
},
|
||||
"structures": {
|
||||
"type" : "object",
|
||||
"additionalProperties" : {
|
||||
"$ref" : "townStructure.json"
|
||||
}
|
||||
},
|
||||
"townBackground": {
|
||||
"type":"string",
|
||||
"description": "Background for town screen",
|
||||
"format" : "imageFile"
|
||||
},
|
||||
"primaryResource": {
|
||||
"type":"string",
|
||||
"description": "Primary resource for this town. Produced by Silo and offered as starting bonus"
|
||||
},
|
||||
"warMachine": {
|
||||
"type":"string",
|
||||
"description": "Identifier of war machine produced by blacksmith in town"
|
||||
}
|
||||
}
|
||||
"index" : {
|
||||
"type" : "number",
|
||||
"description" : "Private field to break things, do not use."
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user