gameSettings.json 6.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200
  1. {
  2. "type" : "object",
  3. "$schema" : "http://json-schema.org/draft-04/schema",
  4. "title" : "VCMI game settings format",
  5. "description" : "Format used to define game settings in VCMI",
  6. "additionalProperties" : false,
  7. "properties" : {
  8. "textData" : {
  9. "type" : "object",
  10. "additionalProperties" : false,
  11. "properties" : {
  12. "heroClass" : { "type" : "number" },
  13. "artifact" : { "type" : "number" },
  14. "creature" : { "type" : "number" },
  15. "faction" : { "type" : "number" },
  16. "hero" : { "type" : "number" },
  17. "spell" : { "type" : "number" },
  18. "object" : { "type" : "number" },
  19. "terrain" : { "type" : "number" },
  20. "river" : { "type" : "number" },
  21. "road" : { "type" : "number" }
  22. }
  23. },
  24. "mapFormat" : {
  25. "type" : "object",
  26. "additionalProperties" : false,
  27. "properties" : {
  28. "restorationOfErathia" : { "type" : "object" },
  29. "armageddonsBlade" : { "type" : "object" },
  30. "shadowOfDeath" : { "type" : "object" },
  31. "chronicles" : { "type" : "object" },
  32. "jsonVCMI" : { "type" : "object" },
  33. "hornOfTheAbyss" : { "type" : "object" },
  34. "inTheWakeOfGods" : { "type" : "object" }
  35. }
  36. },
  37. "heroes" : {
  38. "type" : "object",
  39. "additionalProperties" : false,
  40. "properties" : {
  41. "perPlayerOnMapCap" : { "type" : "number" },
  42. "perPlayerTotalCap" : { "type" : "number" },
  43. "retreatOnWinWithoutTroops" : { "type" : "boolean" },
  44. "startingStackChances" : { "type" : "array" },
  45. "backpackSize" : { "type" : "number" },
  46. "tavernInvite" : { "type" : "boolean" },
  47. "minimalPrimarySkills" : { "type" : "array" },
  48. "movementCostBase" : { "type" : "number" },
  49. "movementPointsLand" : { "type" : "array" },
  50. "movementPointsSea" : { "type" : "array" },
  51. "skillPerHero" : { "type" : "number" },
  52. "specialtyCreatureGrowth" : { "type" : "number" },
  53. "specialtySecondarySkillGrowth" : { "type" : "number" },
  54. "baseScoutingRange" : { "type" : "number" },
  55. "levelupTotalSkillsAmount" : { "type" : "number" },
  56. "levelupUpgradedSkillsAmount" : { "type" : "number" }
  57. }
  58. },
  59. "towns" : {
  60. "type" : "object",
  61. "additionalProperties" : false,
  62. "properties" : {
  63. "buildingsPerTurnCap" : { "type" : "number" },
  64. "startingDwellingChances" : { "type" : "array" },
  65. "spellResearch" : { "type" : "boolean" },
  66. "spellResearchCost" : { "type" : "array" },
  67. "spellResearchPerDay" : { "type" : "array" },
  68. "spellResearchCostExponentPerResearch" : { "type" : "array" },
  69. "baseScoutingRange" : { "type" : "number" }
  70. }
  71. },
  72. "campaign": {
  73. "type" : "object",
  74. "additionalProperties" : false,
  75. "properties" : {
  76. "unlockAll" : { "type" : "boolean" }
  77. }
  78. },
  79. "combat": {
  80. "type" : "object",
  81. "additionalProperties" : false,
  82. "properties" : {
  83. "abilityBias" : { "type" : "number" },
  84. "goodMoraleChance" : { "type" : "array" },
  85. "badMoraleChance" : { "type" : "array" },
  86. "moraleDiceSize" : { "type" : "number" },
  87. "moraleBias" : { "type" : "number" },
  88. "goodLuckChance" : { "type" : "array" },
  89. "badLuckChance" : { "type" : "array" },
  90. "luckDiceSize" : { "type" : "number" },
  91. "luckBias" : { "type" : "number" },
  92. "backpackSize" : { "type" : "number" },
  93. "attackPointDamageFactor" : { "type" : "number" },
  94. "attackPointDamageFactorCap" : { "type" : "number" },
  95. "defensePointDamageFactor" : { "type" : "number" },
  96. "defensePointDamageFactorCap" : { "type" : "number" },
  97. "oneHexTriggersObstacles" : { "type" : "boolean" },
  98. "layouts" : { "type" : "object" },
  99. "areaShotCanTargetEmptyHex" : { "type" : "boolean" }
  100. }
  101. },
  102. "creatures": {
  103. "type" : "object",
  104. "additionalProperties" : false,
  105. "properties" : {
  106. "weeklyGrowthPercent" : { "type" : "number" },
  107. "weeklyGrowthCap" : { "type" : "number" },
  108. "dailyStackExperience" : { "type" : "number" },
  109. "allowRandomSpecialWeeks" : { "type" : "boolean" },
  110. "allowAllForDoubleMonth" : { "type" : "boolean" },
  111. "allowJoiningForFree" : { "type" : "boolean" },
  112. "joiningPercentage" : { "type" : "number" }
  113. }
  114. },
  115. "dwellings": {
  116. "type" : "object",
  117. "additionalProperties" : false,
  118. "properties" : {
  119. "accumulateWhenNeutral" : { "type" : "boolean" },
  120. "accumulateWhenOwned" : { "type" : "boolean" },
  121. "mergeOnRecruit" : { "type" : "boolean" }
  122. }
  123. },
  124. "markets": {
  125. "type" : "object",
  126. "additionalProperties" : false,
  127. "properties" : {
  128. "blackMarketRestockPeriod" : { "type" : "number" },
  129. "universityGoldCost" : { "type" : "number" }
  130. }
  131. },
  132. "mapObjects": {
  133. "type" : "object",
  134. "additionalProperties" : false,
  135. "properties" : {
  136. "h3BugQuestTakesEntireArmy" : { "type" : "boolean" }
  137. }
  138. },
  139. "banks": {
  140. "type" : "object",
  141. "additionalProperties" : false,
  142. "properties" : {
  143. "showGuardsComposition" : { "type" : "boolean" }
  144. }
  145. },
  146. "modules": {
  147. "type" : "object",
  148. "additionalProperties" : false,
  149. "properties" : {
  150. "stackExperience" : { "type" : "boolean" },
  151. "stackArtifact" : { "type" : "boolean" },
  152. "commanders" : { "type" : "boolean" }
  153. }
  154. },
  155. "pathfinder": {
  156. "type" : "object",
  157. "additionalProperties" : false,
  158. "properties" : {
  159. "ignoreGuards" : { "type" : "boolean" },
  160. "useBoat" : { "type" : "boolean" },
  161. "useMonolithTwoWay" : { "type" : "boolean" },
  162. "useMonolithOneWayUnique" : { "type" : "boolean" },
  163. "useMonolithOneWayRandom" : { "type" : "boolean" },
  164. "useWhirlpool" : { "type" : "boolean" },
  165. "originalFlyRules" : { "type" : "boolean" }
  166. }
  167. },
  168. "resources": {
  169. "type" : "object",
  170. "additionalProperties" : false,
  171. "properties" : {
  172. "weeklyBonusesAI" : { "type" : "object" }
  173. }
  174. },
  175. "spells": {
  176. "type" : "object",
  177. "additionalProperties" : false,
  178. "properties" : {
  179. "dimensionDoorTriggersGuards" : { "type" : "boolean" },
  180. "tomesGrantBannedSpells" : { "type" : "boolean" }
  181. }
  182. },
  183. "bonuses": {
  184. "type" : "object",
  185. "additionalProperties" : false,
  186. "properties" : {
  187. "global" : { "type" : "object" },
  188. "perHero" : { "type" : "object" }
  189. }
  190. },
  191. "interface": {
  192. "type" : "object",
  193. "additionalProperties" : false,
  194. "properties" : {
  195. "playerColoredBackground" : { "type" : "object" }
  196. }
  197. }
  198. }
  199. }