| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363 |
- {
- "type" : "object",
- "$schema" : "http://json-schema.org/draft-04/schema",
- "title" : "VCMI map object format",
- "description" : "Description of map object class",
- "required" : [ "rewards" ],
- "additionalProperties" : false,
-
- "definitions" : {
- "value" : {
- "anyOf" : [
- {
- "type" : "number"
- },
- {
- "type" : "string" // variable name
- },
- {
- "type" : "array",
- "items" : {
- "$ref" : "#/definitions/value"
- }
- },
- {
- "type" : "object",
- "additionalProperties" : true,
- "properties" : {
- "amount" : { "$ref" : "#/definitions/value" },
- "min" : { "$ref" : "#/definitions/value" },
- "max" : { "$ref" : "#/definitions/value" }
- }
- }
- ]
- },
- "identifier" : {
- "anyOf" : [
- {
- "type" : "string"
- },
- {
- "type" : "object",
- "additionalProperties" : true,
- "properties" : {
- "type" : {
- "$ref" : "#/definitions/identifier"
- },
- "anyOf" : {
- "type" : "array",
- "items" : {
- "$ref" : "#/definitions/identifier"
- }
- },
- "noneOf" : {
- "type" : "array",
- "items" : {
- "$ref" : "#/definitions/identifier"
- }
- }
- }
- }
- ]
- },
- "identifierList" : {
- "type" : "array",
- "items" : {
- "$ref" : "#/definitions/identifier"
- }
- },
- "identifierWithValueList" : {
- "anyOf" : [
- {
- "type" : "array",
- "items" : {
- "allOf" : [
- { "$ref" : "#/definitions/identifier" },
- { "$ref" : "#/definitions/value" }
- ]
- }
- },
- {
- "type" : "object",
- "additionalProperties" : {
- "$ref" : "#/definitions/value"
- }
- }
- ]
- },
- "reward" : {
- "type" : "object",
- "additionalProperties" : false,
- "properties" : {
- "appearChance" : {
- "type" : "object",
- "additionalProperties" : false,
- "properties" : {
- "dice" : { "type" : "number" },
- "min" : { "type" : "number", "minimum" : 0, "exclusiveMaximum" : 100 },
- "max" : { "type" : "number", "exclusiveMinimum" : 0, "maximum" : 100 }
- }
- },
- "guards" : { "$ref" : "#/definitions/identifierWithValueList" },
-
- "limiter" : { "$ref" : "#/definitions/limiter" },
- "message" : { "$ref" : "#/definitions/message" },
- "description" : { "$ref" : "#/definitions/message" },
-
- "heroExperience" : { "$ref" : "#/definitions/value" },
- "heroLevel" : { "$ref" : "#/definitions/value" },
- "movePercentage" : { "$ref" : "#/definitions/value" },
- "movePoints" : { "$ref" : "#/definitions/value" },
- "manaPercentage" : { "$ref" : "#/definitions/value" },
- "manaPoints" : { "$ref" : "#/definitions/value" },
- "manaOverflowFactor" : { "$ref" : "#/definitions/value" },
- "removeObject" : { "type" : "boolean" },
- "bonuses" : {
- "type":"array",
- "description": "List of bonuses that will be granted to visiting hero",
- "items": { "$ref" : "bonusInstance.json" }
- },
- "commanderBonuses" : {
- "type":"array",
- "description": "List of bonuses that will be granted to commander of a visiting hero",
- "items": { "$ref" : "bonusInstance.json" }
- },
- "playerBonuses" : {
- "type":"array",
- "description": "List of bonuses that will be granted to player that owns visiting hero",
- "items": { "$ref" : "bonusInstance.json" }
- },
- "resources" : { "$ref" : "#/definitions/identifierWithValueList" },
- "secondary" : { "$ref" : "#/definitions/identifierWithValueList" },
- "creatures" : { "$ref" : "#/definitions/identifierWithValueList" },
- "takenCreatures" : { "$ref" : "#/definitions/identifierWithValueList" },
- "primary" : { "$ref" : "#/definitions/identifierWithValueList" },
- "artifacts" : { "$ref" : "#/definitions/identifierList" },
- "takenArtifacts" : { "$ref" : "#/definitions/identifierList" },
- "takenArtifactSlots" : { "$ref" : "#/definitions/identifierList" },
- "scrolls" : { "$ref" : "#/definitions/identifierList" },
- "takenScrolls" : { "$ref" : "#/definitions/identifierList" },
- "spells" : { "$ref" : "#/definitions/identifierList" },
- "spellCast" : {
- "type" : "object",
- "additionalProperties" : false,
- "properties" : {
- "spell" : { "$ref" : "#/definitions/identifier" },
- "schoolLevel" : { "type" : "number" }
- }
- },
- "revealTiles" : {
- "type" : "object",
- "additionalProperties" : false,
- "properties" : {
- "hide" : { "type" : "boolean" },
- "radius" : { "type" : "number" },
- "surface" : { "type" : "number" },
- "subterra" : { "type" : "number" },
- "water" : { "type" : "number" },
- "rock" : { "type" : "number" }
- }
- },
- "changeCreatures" : {
- "type" : "object",
- "additionalProperties" : { "type" : "string" }
- }
- }
- },
- "limiter" : {
- "type" : "object",
- "additionalProperties" : false,
- "properties" : {
- "dayOfWeek" : { "$ref" : "#/definitions/value" },
- "daysPassed" : { "$ref" : "#/definitions/value" },
- "heroExperience" : { "$ref" : "#/definitions/value" },
- "heroLevel" : { "$ref" : "#/definitions/value" },
- "manaPercentage" : { "$ref" : "#/definitions/value" },
- "manaPoints" : { "$ref" : "#/definitions/value" },
- "canLearnSkills" : { "type" : "boolean" },
- "commanderAlive" : { "type" : "boolean" },
- "hasExtraCreatures" : { "type" : "boolean" },
- "resources" : { "$ref" : "#/definitions/identifierWithValueList" },
- "secondary" : { "$ref" : "#/definitions/identifierWithValueList" },
- "creatures" : { "$ref" : "#/definitions/identifierWithValueList" },
- "canReceiveCreatures" : { "$ref" : "#/definitions/identifierWithValueList" },
- "primary" : { "$ref" : "#/definitions/identifierWithValueList" },
- "canLearnSpells" : { "$ref" : "#/definitions/identifierList" },
- "heroClasses" : { "$ref" : "#/definitions/identifierList" },
- "artifacts" : { "$ref" : "#/definitions/identifierList" },
- "scrolls" : { "$ref" : "#/definitions/identifierList" },
- "spells" : { "$ref" : "#/definitions/identifierList" },
- "colors" : { "$ref" : "#/definitions/identifierList" },
- "heroes" : { "$ref" : "#/definitions/identifierList" },
- "availableSlots" : { "$ref" : "#/definitions/identifierList" },
-
- "anyOf" : {
- "type" : "array",
- "items" : { "$ref" : "#/definitions/limiter" }
- },
- "allOf" : {
- "type" : "array",
- "items" : { "$ref" : "#/definitions/limiter" }
- },
- "noneOf" : {
- "type" : "array",
- "items" : { "$ref" : "#/definitions/limiter" }
- }
- }
- },
- "message" : {
- "anyOf" : [
- {
- "type" : "array",
- "items" : {
- "anyOf" : [
- { "type" : "number" },
- { "type" : "string" }
- ]
- }
- },
- {
- "type" : "number"
- },
- {
- "type" : "string"
- }
- ]
- },
- "variableList" : {
- "type" : "object",
- "additionalProperties" : {
- "$ref" : "#/definitions/identifier"
- }
- }
- },
- "properties" : {
- "rewards" : {
- "type" : "array",
- "items" : { "$ref" : "#/definitions/reward" }
- },
- "onVisited" : {
- "type" : "array",
- "items" : { "$ref" : "#/definitions/reward" }
- },
- "onEmpty" : {
- "type" : "array",
- "items" : { "$ref" : "#/definitions/reward" }
- },
-
- "variables" : {
- "type" : "object",
- "additionalProperties" : false,
- "properties" : {
- "number" : {
- "type" : "object",
- "additionalProperties" : {
- "$ref" : "#/definitions/value"
- }
- },
- "artifact" : {
- "$ref" : "#/definitions/variableList"
- },
- "spell" : {
- "$ref" : "#/definitions/variableList"
- },
- "primarySkill" : {
- "$ref" : "#/definitions/variableList"
- },
- "secondarySkill" : {
- "$ref" : "#/definitions/variableList"
- }
- }
- },
- "onGuardedMessage" : {
- "$ref" : "#/definitions/message"
- },
- "onSelectMessage" : {
- "$ref" : "#/definitions/message"
- },
- "description" : {
- "$ref" : "#/definitions/message"
- },
- "notVisitedTooltip" : {
- "$ref" : "#/definitions/message"
- },
- "visitedTooltip" : {
- "$ref" : "#/definitions/message"
- },
- "onVisitedMessage" : {
- "$ref" : "#/definitions/message"
- },
- "onEmptyMessage" : {
- "$ref" : "#/definitions/message"
- },
-
- "canRefuse": {
- "type" : "boolean"
- },
-
- "forceCombat": {
- "type" : "boolean"
- },
-
- "showScoutedPreview": {
- "type" : "boolean"
- },
-
- "showInInfobox": {
- "type" : "boolean"
- },
-
- "coastVisitable": {
- "type" : "boolean"
- },
-
- "visitMode": {
- "enum" : [ "unlimited", "once", "hero", "bonus", "limiter", "player", "playerGlobal" ],
- "type" : "string"
- },
-
- "guardsLayout": {
- "type" : "string"
- },
-
- "visitLimiter": { "$ref" : "#/definitions/limiter" },
-
- "selectMode": {
- "enum" : [ "selectFirst", "selectPlayer", "selectRandom", "selectAll" ],
- "type" : "string"
- },
-
- "resetParameters" : {
- "type" : "object",
- "additionalProperties" : false,
- "properties" : {
- "visitors" : { "type" : "boolean" },
- "rewards" : { "type" : "boolean" },
- "period" : { "type" : "number" }
- }
- },
-
- // Properties that might appear since this node is shared with object config
- "compatibilityIdentifiers" : { },
- "blockedVisitable" : { },
- "removable" : { },
- "aiValue" : { },
- "index" : { },
- "base" : { },
- "name" : { },
- "rmg" : { },
- "templates" : { },
- "battleground" : { },
- "sounds" : { }
- }
- }
|