1
0
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:
krs
2023-05-19 21:04:31 +03:00
parent cb4cf224a9
commit 2e6cae80a9
23 changed files with 1056 additions and 1131 deletions

View File

@@ -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."
}
}
}