terrain.json 3.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160
  1. {
  2. "type" : "object",
  3. "$schema" : "http://json-schema.org/draft-04/schema",
  4. "title" : "VCMI terrain format",
  5. "description" : "Format used to define new terrains in VCMI",
  6. "required" : [ "text", "moveCost", "minimapUnblocked", "minimapBlocked", "music", "tiles", "type", "horseSound", "horseSoundPenalty", "shortIdentifier", "battleFields" ],
  7. "additionalProperties" : false,
  8. "properties" : {
  9. "text" :
  10. {
  11. "type" : "string",
  12. "description" : "Human-readable name of this terrain"
  13. },
  14. "shortIdentifier" :
  15. {
  16. "type" : "string",
  17. "description" : "Two-letters unique indentifier for this terrain. Used for map format"
  18. },
  19. "type" :
  20. {
  21. "type" : "array",
  22. "description" : "Type of this terrain. Can be land, water, subterranean or rock",
  23. "items" :
  24. {
  25. "enum" : ["WATER", "SUB", "ROCK", "SURFACE"],
  26. "type" : "string"
  27. }
  28. },
  29. "moveCost" :
  30. {
  31. "type" : "number",
  32. "description" : "How many movement points needed to move hero"
  33. },
  34. "tiles" :
  35. {
  36. "type" : "string",
  37. "description" : "Name of file with graphicks",
  38. "format" : "animationFile"
  39. },
  40. "rockTerrain" :
  41. {
  42. "type" : "string",
  43. "description" : "The name of rock type terrain which will be used as borders in the underground"
  44. },
  45. "river" :
  46. {
  47. "type" : "string",
  48. "description" : "River type which should be used for that terrain"
  49. },
  50. "paletteAnimation" : {
  51. "type" : "array",
  52. "description" : "If defined, terrain will be animated using palette color cycling effect",
  53. "items" :
  54. {
  55. "type" : "object",
  56. "additionalProperties" : false,
  57. "properties" : {
  58. "start" : {
  59. "type" : "number"
  60. },
  61. "length" : {
  62. "type" : "number"
  63. }
  64. }
  65. }
  66. },
  67. "battleFields" :
  68. {
  69. "type" : "array",
  70. "description" : "List of battleFields that can be used on this terrain",
  71. "items" :
  72. {
  73. "type" : "string"
  74. }
  75. },
  76. "minimapUnblocked" :
  77. {
  78. "type" : "array",
  79. "description" : "Color of terrain on minimap without unpassable objects. RGB triplet, 0-255 range",
  80. "minItems" : 3,
  81. "maxItems" : 3,
  82. "items" :
  83. {
  84. "type" : "number"
  85. }
  86. },
  87. "minimapBlocked" :
  88. {
  89. "type" : "array",
  90. "description" : "Color of terrain on minimap with unpassable objects. RGB triplet, 0-255 range",
  91. "minItems" : 3,
  92. "maxItems" : 3,
  93. "items" :
  94. {
  95. "type" : "number"
  96. }
  97. },
  98. "music" :
  99. {
  100. "type" : "string",
  101. "description" : "Music filename to play on this terrain on adventure map",
  102. "format" : "musicFile"
  103. },
  104. "sounds" :
  105. {
  106. "type" : "object",
  107. "description" : "List of sounds for this terrain",
  108. "additionalProperties" : false,
  109. "properties" :
  110. {
  111. "ambient" :
  112. {
  113. "type" : "array",
  114. "description" : "List of ambient sounds for this terrain",
  115. "items" :
  116. {
  117. "type" : "string",
  118. "format" : "soundFile"
  119. }
  120. }
  121. }
  122. },
  123. "horseSound" :
  124. {
  125. "type" : "string",
  126. "description" : "Hero movement sound for this terrain, version for moving on tiles with road",
  127. "format" : "soundFile"
  128. },
  129. "horseSoundPenalty" :
  130. {
  131. "type" : "string",
  132. "description" : "Hero movement sound for this terrain, version for moving on tiles without road",
  133. "format" : "soundFile"
  134. },
  135. "prohibitTransitions" :
  136. {
  137. "type" : "array",
  138. "description" : "List or terrain names, which is prohibited to make transition from/to",
  139. "items" :
  140. {
  141. "type" : "string"
  142. }
  143. },
  144. "transitionRequired" :
  145. {
  146. "type" : "boolean",
  147. "description" : "If sand/dirt transition required from/to other terrains"
  148. },
  149. "terrainViewPatterns" :
  150. {
  151. "type" : "string",
  152. "description" : "Represents layout of tile orientations in terrain tiles file"
  153. },
  154. "index" :
  155. {
  156. "type" : "number",
  157. "description" : "Internal, do not use"
  158. }
  159. }
  160. }